From 6e34b3dbc81947e96761192e23560ef48d26c22b Mon Sep 17 00:00:00 2001 From: Michael Leonard Date: Tue, 2 Apr 2024 15:10:20 -0500 Subject: [PATCH] Documentation preparation for GitHub - Remove all source files from master branch - Add top-level README for master branch - Add LICENSE file - Add CODE_OF_CONDUCT file We will also need a CONTRIBUTING guide, but this will be added after the GitHub project space is created. Signed-off-by: Michael Leonard --- CODE_OF_CONDUCT.md | 93 + LICENSE.md | 29 + README.md | 31 + docs/PMIC-LLD_Manifest.html | 310 - .../manual_test_results_ccs.zip | Bin 5229889 -> 0 bytes .../leo2p0OTA_VVCM_debug.txt | 248 - docs/ota_feature_scripts/readme.txt | 15 - docs/pmic_lld-arch.rst | 508 - docs/pmic_lld-design.rst | 8529 -------- docs/pmic_lld_arch_diagram/Boot_Sequence.png | Bin 41869 -> 0 bytes .../PMIC_Driver_Software_Architecture.png | Bin 97230 -> 0 bytes .../Software_Block_Diagram.png | Bin 197664 -> 0 bytes .../Communication_Interface_call_graph.png | Bin 38212 -> 0 bytes .../Interrupt_Handling.png | Bin 90236 -> 0 bytes .../PMIC_Driver_Instance_Management.png | Bin 52563 -> 0 bytes .../PMIC_Driver_Software_Architecture.png | Bin 97230 -> 0 bytes .../PMIC_LLD_Directory_Structure.png | Bin 155083 -> 0 bytes .../Platform_Integration.png | Bin 35355 -> 0 bytes .../gpio_control_operation_flow.png | Bin 47464 -> 0 bytes include/cfg/lp8764x/pmic_core_lp8764x.h | 127 - include/cfg/lp8764x/pmic_gpio_lp8764x.h | 177 - include/cfg/lp8764x/pmic_irq_lp8764x.h | 248 - include/cfg/lp8764x/pmic_power_lp8764x.h | 619 - include/cfg/tps6594x/pmic_core_tps6594x.h | 164 - include/cfg/tps6594x/pmic_gpio_tps6594x.h | 207 - include/cfg/tps6594x/pmic_irq_tps6594x.h | 298 - include/cfg/tps6594x/pmic_power_tps6594x.h | 763 - include/pmic_core.h | 1282 -- include/pmic_esm.h | 501 - include/pmic_fsm.h | 745 - include/pmic_gpio.h | 481 - include/pmic_irq.h | 375 - include/pmic_power.h | 1415 -- include/pmic_rtc.h | 926 - include/pmic_types.h | 188 - include/pmic_wdg.h | 802 - makefile | 50 - makefile_standalone | 100 - pmic.h | 523 - pmic_component.mk | 310 - pmic_mainpage.h | 83 - src/cfg/lp8764x/pmic_gpio_lp8764x.c | 247 - src/cfg/lp8764x/pmic_gpio_lp8764x_priv.h | 154 - src/cfg/lp8764x/pmic_irq_lp8764x.c | 1244 -- src/cfg/lp8764x/pmic_irq_lp8764x_priv.h | 124 - src/cfg/lp8764x/pmic_power_lp8764x.c | 730 - src/cfg/lp8764x/pmic_power_lp8764x_priv.h | 283 - src/cfg/tps6594x/pmic_gpio_tps6594x.c | 382 - src/cfg/tps6594x/pmic_gpio_tps6594x_priv.h | 163 - src/cfg/tps6594x/pmic_irq_tps6594x.c | 1733 -- src/cfg/tps6594x/pmic_irq_tps6594x_priv.h | 258 - src/cfg/tps6594x/pmic_power_tps6594x.c | 891 - src/cfg/tps6594x/pmic_power_tps6594x_priv.h | 262 - src/cfg/tps6594x/pmic_rtc_tps6594x_priv.h | 341 - src/makefile | 79 - src/pmic_core.c | 3909 ---- src/pmic_core_priv.h | 568 - src/pmic_esm.c | 1742 -- src/pmic_esm_priv.h | 152 - src/pmic_fsm.c | 1790 -- src/pmic_fsm_priv.h | 171 - src/pmic_gpio.c | 1668 -- src/pmic_gpio_priv.h | 427 - src/pmic_io.c | 625 - src/pmic_io_priv.h | 143 - src/pmic_irq_priv.h | 565 - src/pmic_irq_status.c | 1353 -- src/pmic_power.c | 6413 ------ src/pmic_power_priv.h | 1018 - src/pmic_rtc.c | 3450 --- src/pmic_rtc_priv.h | 139 - src/pmic_wdg.c | 2407 --- src/pmic_wdg_priv.h | 247 - test/benchmark_test/makefile | 85 - test/benchmark_test/pmic_ut_benchmark.c | 883 - test/benchmark_test/pmic_ut_benchmark.h | 87 - test/common/pmic_ut_common.c | 2718 --- test/common/pmic_ut_common.h | 470 - test/esm_test/makefile | 84 - test/esm_test/pmic_ut_esm.c | 5700 ----- test/esm_test/pmic_ut_esm.h | 51 - test/fsm_mcu_test/j7200/linker_mcu1_0.lds | 102 - test/fsm_mcu_test/j7200/linker_mcu1_1.lds | 102 - test/fsm_mcu_test/j721e/linker_mcu1_0.lds | 102 - test/fsm_mcu_test/j721e/linker_mcu1_1.lds | 102 - test/fsm_mcu_test/makefile | 85 - test/fsm_mcu_test/pmic_ut_fsm_mcu.c | 559 - test/fsm_mcu_test/pmic_ut_fsm_mcu.h | 46 - test/fsm_test/makefile | 84 - test/fsm_test/pmic_ut_fsm.c | 3417 --- test/fsm_test/pmic_ut_fsm.h | 51 - test/gpio_test/makefile | 84 - test/gpio_test/pmic_ut_gpio.c | 9961 --------- test/gpio_test/pmic_ut_gpio.h | 51 - test/misc_test/makefile | 84 - test/misc_test/pmic_ut_misc.c | 7530 ------- test/misc_test/pmic_ut_misc.h | 65 - test/power_test/makefile | 85 - test/power_test/pmic_ut_power.c | 17841 ---------------- test/power_test/pmic_ut_power.h | 80 - test/rtc_test/makefile | 84 - test/rtc_test/pmic_ut_rtc.c | 6066 ------ test/rtc_test/pmic_ut_rtc.h | 102 - test/stress_test/makefile | 84 - test/stress_test/pmic_ut_stress.c | 1394 -- test/stress_test/pmic_ut_stress.h | 68 - test/wdg_test/makefile | 84 - test/wdg_test/pmic_ut_wdg.c | 4239 ---- test/wdg_test/pmic_ut_wdg.h | 84 - 109 files changed, 153 insertions(+), 116386 deletions(-) create mode 100644 CODE_OF_CONDUCT.md create mode 100644 LICENSE.md create mode 100644 README.md delete mode 100644 docs/PMIC-LLD_Manifest.html delete mode 100644 docs/dynamic_code_coverage_test_results/manual_test_results_ccs.zip delete mode 100644 docs/ota_feature_scripts/leo2p0OTA_VVCM_debug.txt delete mode 100644 docs/ota_feature_scripts/readme.txt delete mode 100644 docs/pmic_lld-arch.rst delete mode 100644 docs/pmic_lld-design.rst delete mode 100644 docs/pmic_lld_arch_diagram/Boot_Sequence.png delete mode 100644 docs/pmic_lld_arch_diagram/PMIC_Driver_Software_Architecture.png delete mode 100644 docs/pmic_lld_arch_diagram/Software_Block_Diagram.png delete mode 100644 docs/pmic_lld_design_diagram/Communication_Interface_call_graph.png delete mode 100644 docs/pmic_lld_design_diagram/Interrupt_Handling.png delete mode 100644 docs/pmic_lld_design_diagram/PMIC_Driver_Instance_Management.png delete mode 100644 docs/pmic_lld_design_diagram/PMIC_Driver_Software_Architecture.png delete mode 100644 docs/pmic_lld_design_diagram/PMIC_LLD_Directory_Structure.png delete mode 100644 docs/pmic_lld_design_diagram/Platform_Integration.png delete mode 100644 docs/pmic_lld_design_diagram/gpio_control_operation_flow.png delete mode 100644 include/cfg/lp8764x/pmic_core_lp8764x.h delete mode 100644 include/cfg/lp8764x/pmic_gpio_lp8764x.h delete mode 100644 include/cfg/lp8764x/pmic_irq_lp8764x.h delete mode 100644 include/cfg/lp8764x/pmic_power_lp8764x.h delete mode 100644 include/cfg/tps6594x/pmic_core_tps6594x.h delete mode 100644 include/cfg/tps6594x/pmic_gpio_tps6594x.h delete mode 100644 include/cfg/tps6594x/pmic_irq_tps6594x.h delete mode 100644 include/cfg/tps6594x/pmic_power_tps6594x.h delete mode 100644 include/pmic_core.h delete mode 100644 include/pmic_esm.h delete mode 100644 include/pmic_fsm.h delete mode 100644 include/pmic_gpio.h delete mode 100644 include/pmic_irq.h delete mode 100644 include/pmic_power.h delete mode 100644 include/pmic_rtc.h delete mode 100644 include/pmic_types.h delete mode 100644 include/pmic_wdg.h delete mode 100644 makefile delete mode 100644 makefile_standalone delete mode 100644 pmic.h delete mode 100644 pmic_component.mk delete mode 100644 pmic_mainpage.h delete mode 100644 src/cfg/lp8764x/pmic_gpio_lp8764x.c delete mode 100644 src/cfg/lp8764x/pmic_gpio_lp8764x_priv.h delete mode 100644 src/cfg/lp8764x/pmic_irq_lp8764x.c delete mode 100644 src/cfg/lp8764x/pmic_irq_lp8764x_priv.h delete mode 100644 src/cfg/lp8764x/pmic_power_lp8764x.c delete mode 100644 src/cfg/lp8764x/pmic_power_lp8764x_priv.h delete mode 100644 src/cfg/tps6594x/pmic_gpio_tps6594x.c delete mode 100644 src/cfg/tps6594x/pmic_gpio_tps6594x_priv.h delete mode 100644 src/cfg/tps6594x/pmic_irq_tps6594x.c delete mode 100644 src/cfg/tps6594x/pmic_irq_tps6594x_priv.h delete mode 100644 src/cfg/tps6594x/pmic_power_tps6594x.c delete mode 100644 src/cfg/tps6594x/pmic_power_tps6594x_priv.h delete mode 100644 src/cfg/tps6594x/pmic_rtc_tps6594x_priv.h delete mode 100644 src/makefile delete mode 100644 src/pmic_core.c delete mode 100644 src/pmic_core_priv.h delete mode 100644 src/pmic_esm.c delete mode 100644 src/pmic_esm_priv.h delete mode 100644 src/pmic_fsm.c delete mode 100644 src/pmic_fsm_priv.h delete mode 100644 src/pmic_gpio.c delete mode 100644 src/pmic_gpio_priv.h delete mode 100644 src/pmic_io.c delete mode 100644 src/pmic_io_priv.h delete mode 100644 src/pmic_irq_priv.h delete mode 100644 src/pmic_irq_status.c delete mode 100644 src/pmic_power.c delete mode 100644 src/pmic_power_priv.h delete mode 100644 src/pmic_rtc.c delete mode 100644 src/pmic_rtc_priv.h delete mode 100644 src/pmic_wdg.c delete mode 100644 src/pmic_wdg_priv.h delete mode 100644 test/benchmark_test/makefile delete mode 100644 test/benchmark_test/pmic_ut_benchmark.c delete mode 100644 test/benchmark_test/pmic_ut_benchmark.h delete mode 100644 test/common/pmic_ut_common.c delete mode 100644 test/common/pmic_ut_common.h delete mode 100644 test/esm_test/makefile delete mode 100644 test/esm_test/pmic_ut_esm.c delete mode 100644 test/esm_test/pmic_ut_esm.h delete mode 100644 test/fsm_mcu_test/j7200/linker_mcu1_0.lds delete mode 100644 test/fsm_mcu_test/j7200/linker_mcu1_1.lds delete mode 100644 test/fsm_mcu_test/j721e/linker_mcu1_0.lds delete mode 100644 test/fsm_mcu_test/j721e/linker_mcu1_1.lds delete mode 100644 test/fsm_mcu_test/makefile delete mode 100644 test/fsm_mcu_test/pmic_ut_fsm_mcu.c delete mode 100644 test/fsm_mcu_test/pmic_ut_fsm_mcu.h delete mode 100644 test/fsm_test/makefile delete mode 100644 test/fsm_test/pmic_ut_fsm.c delete mode 100644 test/fsm_test/pmic_ut_fsm.h delete mode 100644 test/gpio_test/makefile delete mode 100644 test/gpio_test/pmic_ut_gpio.c delete mode 100644 test/gpio_test/pmic_ut_gpio.h delete mode 100644 test/misc_test/makefile delete mode 100644 test/misc_test/pmic_ut_misc.c delete mode 100644 test/misc_test/pmic_ut_misc.h delete mode 100644 test/power_test/makefile delete mode 100644 test/power_test/pmic_ut_power.c delete mode 100644 test/power_test/pmic_ut_power.h delete mode 100644 test/rtc_test/makefile delete mode 100644 test/rtc_test/pmic_ut_rtc.c delete mode 100644 test/rtc_test/pmic_ut_rtc.h delete mode 100644 test/stress_test/makefile delete mode 100644 test/stress_test/pmic_ut_stress.c delete mode 100644 test/stress_test/pmic_ut_stress.h delete mode 100644 test/wdg_test/makefile delete mode 100644 test/wdg_test/pmic_ut_wdg.c delete mode 100644 test/wdg_test/pmic_ut_wdg.h diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..3044e89 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,93 @@ +![](https://raw.githubusercontent.com/TexasInstruments/texasinstruments.github.io/main/documents/TI_document_header.png) + +# Scope + +This Code of Conduct applies to all community spaces on the Texas Instruments +Organizational page. It further applies when an individual is officially +representing the community in public spaces. Examples of representing our +community include using an official e-mail address, posting via an official +social media account, or acting as an appointed representative at an online or +offline event. + +## Version + +This is version 1.0 of the Code of Conduct. + +# Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, caste, color, religion, or sexual +identity and orientation. + +We further pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +# Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the overall + community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or advances of + any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email address, + without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +# Enforcement + +The Texas Instruments Project maintainers have the right and responsibility to +remove, edit, or reject comments, commits, code, wiki edits, issues, and other +contributions that are not aligned to this Code of Conduct, and will +communicate reasons for moderation decisions when appropriate. + +Texas Instruments Project maintainers who do not follow or enforce the Code of +Conduct in good faith may face temporary or permanent repercussions as +determined by other members of the Texas Instruments Oversight Team. + +## Enforcement Guidelines + +The Project Maintainers will take appropriate action as deemed necessary based +upon a review of the incident. These actions can include: + +* Removal of the content in question +* A warning to those involved and a review of how it volated the Code of Conduct +* A temporary ban from the Community +* A permanent ban from the Community + +## Reporting a Code of Conduct Issue + +The Project Maintainers from Texas Instruments will review and investigate all +complaints, and will respond in a way, as noted in the Enforcement Guidelines +above, that they deem appropriate to the circumstances. All complaints will +be reviewed and investigated promptly and fairly. + +They are further obligated to maintain confidentiality with regard to the +reporter of an incident. Further details of specific enforcement policies may +be posted separately. + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the Project Maintainers responsible for enforcement at: +**tiosscoc@list.ti.com**. + +# Attribution + +This Code of Conduct is adapted from the Contributor Covenant available at: + +- Homepage: https://www.contributor-covenant.org +- v2.1: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..ed84939 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,29 @@ +Copyright (c) 2024 Texas Instruments Incorporated - http://www.ti.com + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the + distribution. + + Neither the name of Texas Instruments Incorporated nor the names of + its contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..83296a5 --- /dev/null +++ b/README.md @@ -0,0 +1,31 @@ +# Texas Instruments PMIC Low-Level Drivers (pmic-lld) + +PMIC LLD is designed to support the control and configuration of various Texas +Instruments power management ICs (PMICs) in a platform, processor, and OS +agnostic manner. + +PMICs supported by this driver are intended for automotive and industrial +applications and this driver is designed in compliance with the ISO 26262 +functional safety standard. + +Architecturally, PMIC LLD provides a well-defined API that abstracts low-level +details of the PMIC, allowing users to configure and control device features +without the need to worry about register and bit-field level details. + +## Device Support Branches + +Device support is subdivided based on feature set: + +| Part Number | Friendly Name | Support Branch | +| ----------- | ------------- | ------------------------ | +| TPS6594x | Leo | `device/leo-hera-burton` | +| LP8764x | Hera | `device/leo-hera-burton` | +| TPS6522x | Burton | `device/leo-hera-burton` | +| TPS653860xx | Blackbird | `device/blackbird` | + +## Contributing + +Contributions are accepted through GitHub pull requests, Texas Instruments +reserves the right to modify or reject contributions for any reason. + +See CODE_OF_CONDUCT.md and CONTRIBUTING.md for more information. diff --git a/docs/PMIC-LLD_Manifest.html b/docs/PMIC-LLD_Manifest.html deleted file mode 100644 index 621ccf1..0000000 --- a/docs/PMIC-LLD_Manifest.html +++ /dev/null @@ -1,310 +0,0 @@ - - - - - - - - - Manifest File - - - - - -
-
- -
- -
-
- -

-PMIC Low Level Driver Manifest -

- -

-2020-24-09 -

- -

-Manifest ID - SRAS00007519 -

- -
- -

Legend

-

(explanation of the fields in the Manifest Table below)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Software Name - -The name of the application or file -
-Version - -Version of the application or file -
-License Type - -Type of license(s) under which TI will be providing - -software to the licensee (e.g. BSD-3-Clause, GPL-2.0, TI TSPA License, TI - -Commercial License). The license could be under Commercial terms or Open Source. See Open Source Reference License Disclaimer in - -the Disclaimers Section. Whenever possible, TI will use an SPDX Short Identifier for an Open Source - -License. TI Commercial license terms are not usually included in the manifest and are conveyed through a variety - -of means such as a clickwrap license upon install, - -a signed license agreement and so forth. -
-Location - -The directory name and path on the media or a specific file where the Software is located. Typically fully qualified path names - -are not used and instead the relevant top level directory of the application is given. - -A notation often used in the manifests is [as installed]/directory/*. Note that the asterisk implies that all - -files under that directory are licensed as the License Type field denotes. Any exceptions to this will - -generally be denoted as [as installed]/directory/* except as noted below which means as shown in subsequent rows of - -the manifest. -
-Delivered As - -This field will either be “Sourceâ€, “Binary†or “Source - -and Binary†and is the primary form the content of the Software is delivered - -in. If the Software is delivered in an archive format, this field - -applies to the contents of the archive. If the word Limited is used - -with Source, as in “Limited Source†or “Limited Source and Binary†then - -only portions of the Source for the application are provided. -
-Modified by TI - -This field will either be “Yes†or “Noâ€. A “Yes†means - -TI has made changes to the Software. A “No†means TI has not made any - -changes. Note: This field is not applicable for Software “Obtained - -from†TI. -
-Obtained from - -This field specifies from where or from whom TI obtained - -the Software. It may be a URL to an Open Source site, a 3rd - -party licensor, or TI. See Links Disclaimer in the Disclaimers - -Section. -
- -
- -

Disclaimers

- -

Export Control Classification Number (ECCN)

- -

Any use of ECCNs listed in the Manifest is at the user’s risk - -and without recourse to TI. Your - -company, as the exporter of record, is responsible for determining the - -correct classification of any item at - -the time of export. Any export classification by TI of Software is for - -TI’s internal use only and shall not be construed as a representation - -or warranty - -regarding the proper export classification for such Software or whether - -an export - -license or other documentation is required for exporting such Software

- -

Links in the Manifest

- -

Any - -links appearing on this Manifest - -(for example in the “Obtained from†field) were verified at the time - -the Manifest was created. TI makes no guarantee that any listed links - -will - -remain active in the future.

- -

Open Source License References

- -

Your company is responsible for confirming the - -applicable license terms for any open source Software - -listed in this Manifest that was not “Obtained from†TI. Any open - -source license - -specified in this Manifest for Software that was - -not “Obtained from†TI is for TI’s internal use only and shall not be - -construed as a representation or warranty regarding the proper open - -source license terms - -for such Software.

- - -

Export Information

- -

ECCN for Software included in this release:

-Publicly Available - -
- - - - -

- PMIC Low Level Driver Manifest Table -

- See the Legend above for a description of these columns. -

- - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Software NameVersionLicense TypeDelivered AsModified by TI
- PMIC LLD - - 7.1.0 - - BSD-3-Clause - - Source and Binary - - N/A - Location - [as_installed]/pdk_jacinto_[version]/packages/ti/drv/pmic/* -
Obtained from - TI -
- -

-

-

- - -

- -

Credits

- - - -
- -

Licenses

-
-

- PMIC Low Level Driver Licenses -


-
---------------------------------------------------------

BSD-3-Clause

/*
* Copyright (c) 2020, Texas Instruments Incorporated
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* * Neither the name of Texas Instruments Incorporated nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

---------------------------------------------------------

-
- - -
- -
-

TI is a global semiconductor design and manufacturing company. Innovate - - with 100,000+ analog ICs and embedded processors, along with software, tools - - and the industry's largest sales/support staff.

-
- - - \ No newline at end of file diff --git a/docs/dynamic_code_coverage_test_results/manual_test_results_ccs.zip b/docs/dynamic_code_coverage_test_results/manual_test_results_ccs.zip deleted file mode 100644 index 7473d20d2295af21d2133a4e8038bebf2bc7bce8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5229889 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 z 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

v~Jnr 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 z%0Ato)*SK^Q=8;kNqdO&EvfM(LAS^*!(${+vwZUf{_;&A2-#}__}wjOeZ0GC;eIUP zz=)GaLiRFZjzK8t#Hxd*y6lsA$9|pQhCmHrOukZq&^{##yN^Jnq)$=i5hv#6!ifC5 zHy$zG18v&pnnUT*gLA!^mMbf3lNBDs_rSi)X%Iqs-15h&a#g z&hWd=RuHY(Zz78bjEIrh6zS3~=&1xhT4#dRgf6&yf1947#{sxNtFe= zGb&$RV5Ql4CM>UiWM!z(*MM4Ms;9rUy2i?*5}#uPfo&d3)^36%NreZdZ|Hk!F6-bIH)O%fZPkQ)2H$(%~?Bj~KG%$b8n5EKwI%+RObPIFiKlynILvst*sF2cYc(ZF+I-x9;RuU=v3LXwg|c)wi@ilW>sMr zoFFFxgzn}=ARzupi>GYrtdc7N-)XmcoPE}U;xW}Hqh#tLox~rHxQt~r>|A8x#)`~2 ziC47VNSwsd8tTNGe;;DgwW~!HRyLy(X^Q$mr&%yl1O6OoQ|3%DZ6MO}IGW)rp5`(5 z!MaN*bS^B2hG0ilI%L{?dfAHTgBiz)l3zd71&g&npAd@ zS8dxWDZ@Bkbc-?1RB=6+e+)*=f%xg1-PD8?5SYv#QFM>qL24TCwnny39mc z8nDEFFpc>j<~nw7vWgrvSk8gJfl|DTQWc?W%AY9m<|wl50q#pAU?wz9HDp@fQW@&r z&pE30C7KHWrsLaNFe2`zy;(2ho>FMYGB8ncx=ECe_z=Ous7pQa3YyNU$-m}UewCLU z*KpB?s{^=p?fI(q)$H}<+deH8Ti$5lM(t?oeiPRSyw%to8r;u?kn$ulrC@kVpcKw5 z4H(mp_5)^x&pLT|%ixT_aeDK$fP3x5@pu%{V$zT1E=$gZ`4SI+U06^?1D6f>9~px(9rXFgJmTd`wnZosZEfGFtSF!ie)4l4wiLzI2P> z%@rEGj&0huSrl5P!~}Rt)CyfvaiF)p6wc6iqca)Zs!2RFAD<;XT%b`_Ou5hL&a;1h zx!9xGKb73db!Od4O)w`qZmlTC$_D!8zfH%9ll*!cc_c z=)1~NqgPw*^3XprJ>bONh(y7PpRK1r-I{{DD+=MFrR~`jb~wR~I`0 z%gfQBU&Ywo60YRIFbpX@9U?y!R|u8@73g0Hp7pbyWwHXUCdeWt z)d5+>+w3j~P&LAV!6GEX2-Qi}0HoM_Q$_mRDt`|uR}Fs(GV`uM=~7Enwo(Dg)?SRf z%@(}}VR0uN6S0ii-V>a15t?abnWwpafN<{7ds#yfH6i2%>*cCGQEr_b#v%%qtw$lF z1&alJl|d~LMbx-bM(5^Iai<=?WKi(72n-tG5}!xL%mxZ0R_QdE^C(yq#Ty|YN&}+<)T)%(+B<52`c<=FI-dMexHn5&Vtss3 zS_wTr(k`}Mx}iwg&lLHHerW#WZCRHp`!Sg6bS87a63sAeV8)E^$176faWT9N(x}S{ zhCMf!a;a4}k}EAjbSiX41NtF&z`VJueJYF$3IC@WG*oPUoaiqE?#~`zc5>RQYuFaS zxQbBZ)ZENfMB-&E0uUJQWVezj8*?>aZVKEAdTHq?oAy?`c1st?k<%)~Z7X4S?$DNAH+NTiH0a$ILT z^?+bdN*Y6$a^AFvwGhr+W%+~sq9f1Quq5;OiQXoF+!mPJMpG3rmmG`asF;$3P(jtF ze#!-ePEVt^&**u;ZZnyjc|bk$AUlRy@7jDX0d;yvTG&*Jq)>J~J^|cfv%1nT2uCX!~-Z zZZHMz;Ilp}=~@;s{PrXfb48B$C8l4A2v`NBP`S}`fQEY8J%Gf;E`C5uV5-(gwWQJ+ z=DcM>2~5pY(I+EKbm;9X4PJa@d!_0~tG=!&hn^N7mlu#7il)rf0I5b(v56l@#_1O$ zBAegeno9k7zH5+|7jfjGd`@e^gkI}Y(d4^6GJ_+R7KtxuvVD_H49L%GAT^B!ScLQT zW+lqD{dTdd9`9xfcF{1OgG%ADn>5}{+Etp>e{bxsrWLPJ5 z;es@gU&dv~!vZ$jC(NqH-4^Ou4TEbiYDso7qsHLL*`iRZ0nkwk@^~Lh92iI z=oInhIVHVV4l9v7}s9rPUC^)rx8^TzVVg>$sC#FDf@DDc&fsK$^T z4bUqcdwY)aF`;-|c#wLH3O$c3KvIyt-|q9#4fHd#jw;#bXDt*rQ+&vGUC{)(_|{XC zpe>4W9_qX!!YUkACKPwSfyJ~{&PY6-+QEn?fl|1tz%(j$3u=cUT?cC-`k>XQ_bHoD zDVKC0c25(C#zO(4LPCCla@AUjcZ9-mUrpYn%BNoMH{^K}0LSyg`#c}THC$I zKERhZ4`M~U55qZd+0Q`wQYm`5GRbnA*zn46_^g8L2tzCK@DPKyb_gaZLZ|MvKmoBg zsnK<<&n$m(cXbo-nCoc~BEr|dg9+W47Y095&bL4wTK0m_O-L7>j~B2WueT^CJtl=H ze6ym<2c(DorEox&cP;FwvUvKjR2?qHcpPaSucK-mJtQj~cOl6AzpWlH1{m)RUieb4 zNv$lyJ0x)l)i!V&`l51M9lr4okeMNoHD3Zyg>_|AKWQt2vY&g6OD#spuhn@^J}m*L z=Y{R#BCGVIM;P>4StG{{h_L?-fN386c&Eu)S*)2_Ekq~r{COFV@- z86;ABsC7KkVTBpdtcy-((7ISDV$4s-0Gt`#9A z!4y|FFY=6ii&myIe;kcRVI|?L;-;iU-bvS-d zMaAHRkGs^+M9~Y8^=xMvE+Dr$_`O&|QE)ww4&xj-%Oh=51WPuF#BA>ts1VOjnU%M)w_q8fF*G&7Q@?lm;u)266vVR#!xYdL|CbsKwkQ!N!` zp48=|*0msBeI_W2cpsPAkZuY)k$R?qOBAj|5Z<;8TnyeIm~cDhGuZ9Vqzh;Z7g9P; z!Y@0dn~Gv$l&2m^gI<572>I0T!loC%mpxo!pEy|x(fq#LJZ(g&-lX_0F_jP>FmBH` z_Fk6g!C&dE|tMv zajkk9nPpw#56o_XsxjZ=N=>4sF^WKj`K5g+sl*x$uh9Pu09a+#+hxPgQKZx*)rEHy8~0_4$>5*>=_g1=~T1)oD^*CF#q-p z6DdF-Fg>I7T3tyQVPbq?G_tQ=yOa;KcSfz%s#r%AFG8}~3@l83!o4V~c5z@_lZjn%L>?dwdN8 zjN}~yLTe>cSA7=SCo29iY*vx41Y6UB*<=HM3zSj_okY-3W=U`TRT%nA$*yov9zt5Q z8;)f_T)CRFu`z2s1w)T|dOl71oZ;41shs%^i9lqZ3S)zy_i&0s&n&H^I9+x{7Bj&B zsPm1ukhgZ8vYp5fYfu$9Zg6S=qFJL#@N_UL71Q-x`Lw?vcXwh&B@IL+4P|_86;mwM z3^X9OU=_ui7rZ~_LY9P7!jh@8*L}YR*-P}vVjx`zSTidXll)AyrrUD41T0;zt=wP4 z&A=12EfUY~r?v%8(Sv_1<|fgvIjjQF-f^+IR4dIQya?_Cn3&-qqmk5&z}1Nr3^335 z`KAMrs>4BiBJ2Tl1|7CE~XujNplZYEH!pX^ChY#aSVE=Av&oz+Gb!=C(N9WRQ{E z&n?E%lJd}GHl5cb98vuz*`cjTweeXgQC@kvd-2Jehl@c7Wdy1@?;Yp;#S+=Z{QqfP z7yq=DV?G?x`*0n_rfvsQ#Mx>y;nd{s zh@6r|Rw|X_=zqacXB&*x^21eG)Fx@ipnvJVC&QyQ)~hraFB4ew2YnzT$T_S2vSa?3 z?AOraGZa~rKN0=M1Hy9=dzN|N0P6P38L4qAg6OZ3sm-;yq!?T=bTJ zxsPlr1d9t%hy4e!foD$?sU=Xv|4itP4!=4C!sFlK(ncXLtW5O*cYn>8L#h$8_;&_u z6grAKv11@&t*7YD!2Hm)J^7xP{n4S1g0C95kTPTCOJy}pM$xjA4P^tt4`On}@X@OA z$UT)Ex_>5^$l#K=iK5-G-F<;c^6mhAmsS&o@jEj*joe@BAsBZe22;x9HA=ep-}=t~ zu_pC9Q}>?~m4D!U|2K4|--$N=z<-b2MPS|C6!)Kvm;%NhbRh`zkGjy`H@zpL4?Mp! z=U-L+KIlmdYlqOa-E6r+JB?e!d+JlxmXuT0rVrudV#d1Jot+YBon$#k6G4cU$2Z(9=P>uIMpaYug*r=zat?V)NtbZ~aAg4>;p z(^w9vlIQM#b*FT0PO?bZI6;1XJXXed=!8xjzrCiO1nysqC1xOZ*0nD`HnuNPMx|}2 zCJp=-NH{Qea0?RP_V`Oq7RzB|i8&(0_3zPrN{rIjMIV{vSiE6rBpE2Mv12b2j>PhP z&(l4eh}4?A+}u1aMv1tzT~K6Dp-C-MG0Hi*d*|pVjca5XD7UCO0x;R<^1r=kgDk?` zTNa0>dyTK|a`w6|vy`K5gyer$HGj~4|?T(Yprm!_y=I@G^Y zZhk+a-3g<0df={^Bo9`{5~U?FV;)3|1_sq0IEGV&JpgL5Ly4!&OH%N#up zdOzzt7?1XiCMi>qC;(qF#-i2reF>^KEUhg`ey>_E5AhskZtUE!Rw}OVstdo_YYf6y z(-~8_cHH=|&71%NdEnI!w?_LKM4&Bn3lHb$j0@ESZVHiZ=Y45<)s}oG+i+@AZ<#=z zv&Fcnt;g+pvMc}zH6t6DCKXW6BY)d?P%}Y0)%gAKCH(10Uc;pqk;haB=bdmv*Bt5R z#D)I@!8u3O$HjKVt7^Uq*yI(M3iF@&R2Mw3zEpAi&M;&n%CzD#s2$XE%v>0^;gnc! zrUy^*&?;zs;IdEYZF|7+2hpa~yow-UOo!v==`_U>g(!XH#y^m3&Umzfkf!`M-G5SS zQeq(BlP<)8*YARzc3NvPmqI*fUKqSoq7Fn8i`&8}Z(Z@MG|L?yZ<+JlBx4-hxSHnS zk?xexsaLjCz6Hz*PzvI4ZAdP>;O#Q;)@1Nb)Zp{!Jkz!B3A?xksKPIq`_na>D3JxUdiH4MBC zbppneK7q~b9LBPf;5{hAg1d%~>D=16W;vxc%~2wEa9Q-86%@KoH?!nD_||`4o+e5Q zmy$mw5r;f_`zHe$%q*h}8r8_7GuP`=rzK&idbLVg270W)%4O_jM$cKtQX( z%?!oD?>&Dl%KXm5xnGUS@FeGRozzgi({gSm_LC`6j|T^7>X6jS7w6k$-zJBpg{W)~ zh|AK!w*}!yJ7+mw0RzbqMhRYeZZi6hQ>XP#0z1!(*Tl+`%t`n z;TC+79U`ivQj4N!S0NLWjWUIlN+%dgZ+w1^F@6|AOCtwH@FDk1TO%PhH$ZBX0%zZPO1qQm6D z704(PWTRSW62lKL0U?aec6C3hXjY4eY($y4G}gR&jRcr@vHc0K(-GxAz!U){1LP@Vh>PkkP1d-lueu$G@#hoqpR} zgR<%`=%C+OpW8kDB*uv5Uc0|vn;gtF{Y6fGxJ*P9qzb?d*}YHaM>D=5y6C*{7DAAI_8G2zS@xXFw+K%`%19 zK4LX_G`GzdX~G=!S-|l|lxo%)O1-6u4?Gv~BQUe4n0lvevGEX#gicL`MQ?Zp%Ry-=^Z3h4=QqV3nF7=nr^Us&o7%i zWa18e+>znjnXzOw%?@% zGg+-l+l8HUFKwL|p`&Xd`BjUzaXRyx!tC&DARbfy?0kk^AI@eJHe`xkkI0$1V=sNt zphO2OqC$hqQG~JIz+tBx(Ell3esewV(8lCSdUrFy`M2VWlvzaEzs@oG^(Z)WgZHC9 zg@3`DU&TO)qV}NpM9=KQTA^-zwh?|$+b2t(aF@&6II}`hzP9w(FG<}SQoweDJbFYZ{=T%MLAd78DeeMu&{ zHufr}`SRh;N@vcOtueZ2wJ|4;c`!5>M)C8N@c9egtha|87^D9I(<&=LG(;dNRP*ku+LQeoljzZJqU9kuPb|?H z^SS_2rF4_WPy1y87ZaCqwXx^B;%o^?N1YTB<&uV@oF-eYF`CGJ;jC-M>3nC2#P>1i zUH9$Q&+R1HFVg$P!9X!4I;YWXA>Zx-?3RR^d;$59a10n%H8Qrd(<7Cis+(VH6~y`# z+mvdSL;W=`Dp;ekYytPUUJ{(;=|*~gG?vcGYTg$IJko!v5=BW?+NSqW>k|rY5$p36IF+^I@S!I3DbLJX5-OjoJ6AXF5Te1 zv(l@O)>Xx7>J5VuiCLxLQ{V&Isw~nA!?4BM74nIQ?0)+4G-1QY&*Eww`T|P)ZQYEk zV;{JnmI+2(MQAkLHB%*Jt{w)8IDD$D7jLUO9$sLpnyw%_a^$156O4O}0^@x$Qh&qS zRmMg2rC|hD1Qd|`0|Ej9(kk6bH_{E#-JOFXEg;e{bPh4X5YkH5ki!fiAPqwaL)Yx+ z)_?c6yTARgyPxmOJ@0+qIL~>`d(Z7-`fSIl{9=gHb6B+Rp;u*w<^=n#)rbT43Jg%yKqd2J))C0G_R$6~e| z6{no8jQvJdaRAO)Yb|#HgC?&WAM50_X4*p1F;lUnoV$z{tG6ENWSr_d7*ZC{8w?1F z*mFISpxA9F7o#G4E^*6*$^!iQfQ8L$T^t@7X)}7;tGM%?5o5h&gVC-^iEqOP<0@rV zkC%b9am;xrBL0@lj+;L8Y4ue`!p*hhwfYrqu1Pe1xqPCC>x`oI#xVVv++sxlV^35$ zAT0+@RAD+BFuXjgBMX;Cyu+ynJ2B_8=#XuYih^Aj=#ecI-pB8-il4Q=nZ!YN~E5#mV5W()6M zfBMX6+KHOn%dl;K%CM4>h4iRZcV~W&smkEZIPFL8vVg|wBz_CcrKeklVd1~_!-v%C%)6oal}i%c!Rqsdp|Hii7% zRZ)=B-0nf~i$vaVZ>2eml@II0yoi<&F8zc$ODZK=EcEgvy(aIkx==aobmhXj4Lq)S zwgceLW#xT*%3R$80h^g>o}XZRfr5=667Ki)sFH{8Efvnp5HD)STW(}`H*r7^UH%4+ z?(tW~D(vI28m(h_X~-~J)>=Mz#qb8F)_PKGX6v|p!%*gObXhKKpP&-RQlR#sQgt5W z=H$?`M;C&>D9@wh^&$9rg-luOo=SgbcZn445BaU9u~v1b+bK-_?%{MSP7=!PH;0o> za;ob@vlZZ~j!qs&?~O7{AoQP@(lLz2==+v&-#ai-YT8I@JQ+>MTcI9wmAG&^c_xKjp1_yJ3yxX{1 zYN*dT#-on4qiUZwp!Y!`SOkrq^I8ISsUL9e3*m9a(PvJ?XxCLr2XmJ;ycF)g^GbOb zXWBXQN4tMH1n9V3i8o#=Y%`TUQ@ahZHL>*{(zIMD*UBd(;eR1h&Eqr_!n6vV5Eed3l38=McRX9jvx@u5QC* zvh_SKs7WVAFh}x(I$u1!K%8UW4)jTQnFph=ss=?HW2{rzHH8!Bt=(=il(FV+^{PKX zg6Cn~T3Qz(N@S9uAs{XZ3^wtPaT(sZ)4#mh7zNtm!&O%GOO9<5HR@l13+NED`T#p| z#Ffis5fi(v=6j5d=Gergo*DnI2u-& zPh=+;nW)2IcQw<$vFV=Z=oW#DvQjvpoqV{u6gw4b-IMXsh^@tt5q~F)gH^iR)-@0P zZd2|i<84Z-NWL5zP3U;DmY@|9OK_gx)*|-@0^ahBjlPE;6)fZmx z&Uvhk? zXhd*L!@!=D3O-SZI}G-I*Sk5ZDb)>oWuT?)M3&;;Qpr|b*)%gxJ=C^_FS5-e(0F#s zM$Tj{%?bx(UBX6FI2emxKXiAJEz1XKDj};0mTxi{G21jxwI%dqcz2V#!d^QNBoVZ$l3T6fs{qdzV660VvCBTyrl(8uf&Z4-ydiF-T2U{u#jP5bv(`h&amkJ~V&+OqN|hL#!FL}%70zX1%5@AzSJ zAzyn1`KThv9P6V>F|0Ry)a{`9#tBgc&HXB)%4{(uVCTcg;?=g6Cl*?j7<+sSn)f;B zBM4SIDS6wQ?z2!dHp$5b`hy1laZ>6?wHR*zSfJLlD{u0UbLueQFu917Z@0m};TVr( ze&>ns8?fFklnq-vp_v%k&&&>gm9V@i1!I|Gw9 zBgL9ql9Xe^iOsuD+@g+_mv0O~lCN&XFeDusc19I9Q+|>PeN0JPA@&q);2A zQJ%*<;kF(S(Qk9~U>)E4DX(ScQVMdj0``$W8UNUUWnB4=f(3dR0k;!zIq?Z5tLn(FaFdOs!M9Q$muJuyHscEewBBa(e1A|u=2pT z4nt!mAB2)_tsSfNq6e4Ru=wR$G@1^cPRxiEO5DcGf1@)SVIE`a@O9MYD?P3WHnE)5%PIT(x;|$* zcx%69^Q-#@kf*d4F|Blemtqf`*b$$eMUX&uXV|@dC~86TI)C$Zm;HIbikHocy9IC6 zXf1pp?LoID-QnVO+?WG)y}!1jx#MPhh7Wy=JD6?~I-c`C>duwFEbO#v*&}{ALgg?~ z6JORZRFZY~Q@X(7%m-4vqRW}A7j+SP0Uo0Ay0*PhKiZl3`2-}(RU6(Bqv>Bc)y&ge zVf$?E9Y;>nokx9g)nXMe1T@^c)JkKN7{MOYS}l9@rqaG~R)0@lkQ`o!Ydk1 znrkY3LlEFR-1Mw_a7Do%vZsGD&UEp%yT4gG!PQB1D zd+UR4VY3x$W$mfRvlnU`wrpGynC~%{l^lp$$lf(EdTXabLohW$@&XSh#&NLRldM0q zSx5c|vg+C01QZ@NChbPPV!adTZ%DwcMxjRuf(jVs<6mtaNMB|44Dcx*;os_(JC23~ z>o|H-i?d6{)|Sj8%Y~=nEM`+nngXgFZYMgPqGr#-$Lc3i>vWCoaybr9scz%*@4k7t zP2x8*yMoo!xxjhTzjJqk?XQUXv22l?qN+p8&dpwhn+1P)-%2O&hQ>Q@7ZcKj137qh zSfj&X(DV=ZQsL^IZjP^o0G0>qAxyufGtB!(p%J!8+<1~dusd?cUYZhReTfqp>m?b( z5>N+(>@R%}7Cvj#5Xt^41j_8KlaR>H$= z8nU-%;PLS_v*H$n#&^(fu*1$^IO^UZ5P-Zg}{ zg6uz0dqnbcSLDlsUxl9hrokd8GX66j18OTtuI$gwbE-~K0K|C9wf zuHKxYrvNvZqgNPs2Ny3cI#9BWW~tOZOIm#i)h>Gz=FoYlPN7~4`5$hQ-AA|yem=;* zxEaq)@1-Q#Iro@X60kei(RNwKbCx=)et$ds2r_wn^qfAF4w}nLGDaEhg@?HT`OiQg z#sI*zKU2>-uYacI|0RJ)GKg9RUFkIMt2gB=ax1 z{ip&J$i7?r6`9kHn;~%UP-)-oBlHC+0)Ren)anvhDxZ{eKV$tcvd@MnJ|LTP`NQ|b zzqvc$F5af_@s&}>aTRI>rfaE*KiZwnU+KpT;65>S7(U&6BLUM~3rzQA$`7L=M{0M> zZSSb6WLKT6m%u@AQV|_&GRp1nmne@p<>RWMk;8T+^Y*8m+1Vm(wJWF!QUbzB`se5e zaC)`xWY4>KasckgNj7jL)82SP?=z4~JAsUy{hFy!;^{KZN$GqT5ho?ZXmYkgLV4Fo z=`#ik&wY=Gr`pF7JKex+@%)w#me=;8gXFk$)yZOXUu8uNurHE2c2dAMpbnBD%8;&# z4fPit$ck#SYaOu1T8f$bb&2bB46Mb$f0+w?6EnI;aD98yg}j7y$2v4aN$#V%U9Hh3 z6Z=k$CjM_6J&cyDi(=x55vT|KZD%3X{5{#7iUQIwwK%TNSB>d_mU+Uk2~B2N?QH!*r|}@(bXOYa`F0VOk#nNZ`%hK&; z7;uOPxw18zd9rvT4cHo5JdrK;4G%aO&S?k^_mg_2&ac2H;$C=QEL0Glz6fZKFS~v_P6{R zD<>U8ujXDQ>9sDC)1UXtPaG)oH1)aqbd#9)n_j!JiI$nj^pc+GnVyJLP9k9-Hs z_to-8smM8Nh$Q#B_w1-DAqGWD9{I%m^-tvQO#uw1?)cs*%O&4vnmg@U`7a59 zEoGI9mPGP+)Y>i)#UKwxB)+3F*J2}7HH5!!W@BKL)k~ZgPP<2g_gUdrVe_fIeYAKM z2@cp$zv+=XZ{EKI01gC0%#kKmIgO|dl54AF4j9U%ZR##*xy`e05>v63RJ>x_X0aQM z$ais}BYd7^I$x1toiD|UL?}d!$T(EVXeQssIDViVeCfXTyZ8Z$+`5kWejkHUc9>6s z<(lZ?`G`IwNe_L1zF?C4VQX@pEO})Xw7mijUPG@Cb$0(?yG2yz`!PY{Sbm}>ntWC^0St@dKF%)%V?f1nNZdi1u3rG`Y@STI_rq+E9Uo4zrq zN)Td~zd>fAf;<<|N_nTjwnxVBunyMc?_WXWbeV=MP&)d=<86pk{sCRKD$mcjaOva} zP-B!+S>k|(Z=o`u>MZxdN8^(OW5P>%e^Wn-Ax~O%aM&iwj5BO+w*Z0-;fW%!-sbpP zKnOP1V&SKey)PlF{a~B?J5g0Nr8ZxR{EQnjT;(m*AvLW2ZRvZ|To;eMxzl>V0(m8zZz3-+g~H$XB5SW^WD zVLrR#kPHqwj5hmmhSJ(6xojoPG2GGmF6HCeXcJV3v zuKR-LeQUdJmoyKp+OV@!Lur(}g#=i?yrh5Kt@BCK9rBm;7NUReE?UX`hrA=}?#P-# zNz`};nkV=h{lz>0#kzPxWO_3wd6}CoFZ75u6A2X91swACsap7ixQzF{;7T^%chBs-Yas z4>I9;f!JI?!3P~ZYPDFqioZHEzhae3Ul9TXUvK$2q(V~2=3*UF$+aS#j*OQAiy~f? zc3L}KJtlCijQS>?yY#6xIwMnoU){D-f}2-d>M_5TA+(4VI*^8hA(jliy7dFZ*(tI6E6 zrd+b2iX1fHy2}^vmII8APsrs!!xk^QdCq1pSo2D4Rhh&yHd*OL5y`o!Vl$ZoEtdn9 zr(-MwA)eakFM=v)!du$i2E4Dy8md8Q$0}0ku)c>Nq;)@hwgY_JMI!?yRK-)UOc*74GW<6Svw__TCMJtS*2FSDBgjkmOzU>z&K(i&sh%&Dsf}!?*4<# zi|L(*nDf@d&jN0Vf;-6E6TMG&h!+*Z(?!#ll;szhrYK9tYVisd`pFZOTlBhua7nu& zpd}hFOMw@r;o?uspT8V+>{)k@Yy6uyO%$NiW2CFi>H5^%s1GS1qucX?CB0oXRWnclcYA&MhXcl=rO zbIfZusQL5eGY{r<3O7ytG>wXEAxAuBE6v+6D!h55vrseN{*`F*^{j2xrSO*lh!V|6 zu5NAGpq7}_s=s#~)#E&%w8Z6AmFtCM(3$l9d7RmW%juVt#p_+lkd?G{sQ6hqJ-Wus z|1=BTNq@t0Ne}Q@B>-LZq?Eh!^zEQ!DZ@h`u!kIhJXEye$~T#>U@*(fVv1!eOwyGK z>pNt&Wf}GNMXW5B#7Ld~u#lix&Kh*z$xagTwLS?D;&J2}Nz9E^WDa;1LrHz48T?~M zCbc&pK-b+_2$=Vr3#y;|Z^iSuUCB5NKBnxd|RyTQV7qb_XJ-n}IR|63&_YzmH zXBK>ROw*a^*Ev(5W#^r;s_uFPwd75L0v_ZBtXTYiBH=2S0=RS^a6{jUS}{JSUpSFR zJkIM%Qd+VvxUpJENQ?2Qunw%SZMvdT_mDo$wdiMm4h{7zG}Mxi;lIS0nl(igO)G1I zgyEI>0faSdzgr~asAA7X=Y}n8K}N?rt`5;VVI3zX9fu2mRl3iI`HOyi;PzAcW?aB} zApm^}81?NqfS@B`VAb{le2mh1ta}o}34@u{_UM8SK&l-e4)yW4j5faEu&&q&cVHk7{=s@W!^+cb~@mMa}H~>hn5-a9Qn$jTXAslP zUwuSdUGzD|;kbaNY2syN^;nk*4WXxp$u+H9Nv@>R9yst$%yx}p z036Fpj*2TlIR+5==i6LNtydmAGHDVs9}YR{#;Ps`RsYWdXA22?#a{gO$&<#REqw7| z2liN_cf?4ldX}tVy}DlSjT2h@A)ef%fFYUTG<6{2c78y-(N3MVu7%8bJu$z3Arre% zVxT1s{iE&Mc`Scgohf2ppwAm6mPUh@a=q6^gZ6R*<~#g?9m*Uf`c#~knx43k&yZ@h z=o~)NF=9$B%xRN~4GyVL=V!ZpPc#W9Z4A_iFm={W?~H~#p3JjYBVhm^!0h$i32Uf+ z7wipbp*I(!=*6HPr3+^_fXnQ_AIG^H^yoqKMdN%Jto37n;#5d5f7`<(o}ry6w@R}f z<`C_guXhGSbt4BOoOU^u&tj0eBK-a<1-#ylcJ@Cw?0LWjF_y zSi<2>yU@GlCO+`q6P$W&Kpr-kG|O83y9dhNJfU%U7q*URv0QP4yXTo7IkS@mQ=2Q+ zj^SVta3XY*X_y@O+NSrN^z{@wa9wL20Z#471?TfjrmI;%GZ{>!l4#k~Ef7-$; zReynA09>`1`Js76)({~mgcc6`K)pcBc3Jy(G>8jtljzPyZs^Ty$7ycR4{_H3bi$R% z>37F(E2k1@4)ossXWVjsW)xhswVr~9APt?M+G?6?2@7?5+QHw^ru(M0@qo82qP4Wl zzPoM(pZ5afU+}a-oMOC%pFOj1G$qFnk$#fG%FeA{#p+{ramgLv_OJ-~jhI%ZkND6{ zvxdJrvomr4`j%YO(|GrJL8CU{iO95@Vf%s*kc#+iS)Nwp^n4|c*%z;DZ=$N9C77wn zr~M9P%LZCVD=lI_3LRIka{unZ#`sOy)7ffKnGc>3)c)DcoBAHs`6hgQ!60Jt-TpSz z7SZvv6p)Ik^D-5dH)^cmT+7^DZ+D-oAyAF0y6tYT@cfJUNtJY5)A$N?-;&(IPNDMy zKHc7EZPnjCzt6S-aZW!t)$^?s7Q_npr3XRVj1$0fg($#r$iX42)Ay*~AqoY*7EB7g zu?3t;o~QC$hAmz(1HL;-Yyd9#!Pn{?d!Fb7*Yits3-~-6&B+fYTTqJ?T$sGvRdmAl zUZ*|v5^H1dHIDN$DaYYAbwcv5f>jW`*)-CXV)0BA+X3a6!+}~u;!H=reNcCHglT#w zJ3%#ek_Ag>dzvQSBqxkb`lql-e>OB~)9D5inQpF?P0pJ*z^fx2E7a6p8ED@9u$LJP zd?k=cGn@ns@sQLye!M$bMqw*bG*!kugIBTBrgrbc?nL!6l5Qi;AGmyqwYK7 zKLhcxngaT&M9cRg=V|K)0Zg?`3ITg^G9`PALO-#uEQ5dU`34|5*i zA?7kAPaB_D^uMqUbKN-mXyV7?zlyAPeuoxDImE)~ofFDkNeX{<3l{ayxcn65L2aNr^R!`HV1Qxbd=M=V-&Y<(Idi6`8v zmARPwx*dy4Dxs3ui(|9b_dW-e9^Ol99xWCQ%y; z;nCpB1xdS+Dh>+v7`6Oy$(8-3s5SoB~=;===QUvG09@8A=Y8MsoyQp5Fr` zx&GZlEP7os&3|lOzY2VEyl%5Q2PDW}B=8{j4SdqiKm?Ox2nkw{W1k0!}y*bUZYo@+k zxjTdY{iBJ^HwK>Dd;KEdW~`rZx9~>HaSo);3vroxItf6209`{M$a!Ro!oLbyuW`Ih z0GibIr@4oxVcQG4#xcMVxqJv1)V3%=d#NVefg~4o1;{P}E%u6N&c*glv_=hDX620| zGd+&yebPVC+Fr%y^r(8!oius%wS8Nw*jXpjx{#$o|TgF0n4d6lA2q^ONvGROyTDix#irx*QBqBFusBJ zBGON7^Vv!6NBhyF{2}SO+4VCB*mD#gQ@f4tyDLc)HE~CF!@ngU(T7AmVoGy*8W8^^ zt!MfswFsyw@BK20KV&d`i=6;9C8GW96-h+JPq_)lGArQ`JWbod z=HQ+J2=y469N+qs^8~m~oG2sB*lF{1=c8tQ%6_rRzQTP4tv)&w_3D*}`HU24%Ln9z z7S?!9IIm{~+wN7pw{Euy%Q0%bp!v1LNsQ-qzYf1ZnT@Z=SLwS`@>6^)F)>*w%J;2! z5P7pLT707&_Cq!eR_MC#LASz5pOdQE=b`nybp?fbMl42{U~kfNp0s;2j5ZaOD0eC# z@)-N$wQwJB3Jg84cp-wb)z1dzO1sau4Nf>ZG>}rge#b2(PiiuC?%jV9R1DFa)TT^( zf*pR{vjQipN^jFG_rj+xm1R5PP}eL}v(x!^bt4NL$c;(Jv^LU@u0EZX2kkr$0WkS! zU+EefYVg~huS0Vsf&k4GF70{<5gVmlysybp_4UdUjKY=@y5#4=55zHJPBlyI987ee z5^)hC0d_S#=Wt(rvR@3RI>wglP;oR}OBL0zx%2$+oM6ROA zePKp96YO^@2fi(Ynh(^XH?86!yf&Q?VNLvV-UWe8E;gO#PgP43(%zgep!QHNErEXk zH700p?}+vaoZ3;1J<_YU39GW^KCA|n2y1K_%vKsZ>@b%+iP+h(c7Rpv$~GL{EV;Yi zQvR^#+;DsNjLH%cSOl-HdnW`^Z8SVS?!NDnx{~o==tFsz_JjC@0|ITZXmdy5D8BF(kK z#{U7|9aa!`|E+2{;-u0B zR3^T+$zA)9OB9D)jsnJA4Qlwv8EX8h;Wvn3FuQEzx(Gp#r*k;&N8Zam2dV(z3~2jL z70eqSUmr`Q{A2Sk81kr^l|b^X zu|+$s&ZI#RY{uNP0BIweD;8SFZlqPGi%6(EFIg7Gbah6H0##Jw1}?sR=Y!)m5*QiA z4sNq$b5~7sbD#)!son2fNz*is+#5bMG)7iKRBG9RWS5as#`*Rcoe!0Im@~`2Ey)K@ zux6N*$6*jd45yz}`&a4G8Bo)tmQ{cp+4?yDUD3Bgd5`vBYQBSO=G!Y(jTRd`-5^mN ztzBb-Y_Qt=uN+qOY=5Ma)Q7J#g%YhXm(I>kFiy8%%<5)495zRasd z`|$UmbrL1$<}UNElAy%PGHI(_7j&k)SYjd*f8P(g(Lrxeo|^>6UbY-}$r?Yyw1tuu^I9Q#jAqk#=bhz1Ifsza*q4Uf8oi^PV+D)xyUOeS?b{^^P*1X0vJv95yD9 z+8ZYUj0O-#z+^U9ermNwO6T}Wt@cy+izK;8vQ6krcDrd@jfMk`a|e8fTh6=GBhujB z%x~8G?H1HpX3~z{FC~&bB)A}=Ue8C@kF_<&A3mQVGl*Qrc4$crbHb|c77Lwk!Q0PD z6PfeBj(+YyGZT9+6<3$PrBZ}ojbr^QF#7TMBf34W22#=1)}#=tDr!(YmZ*YiCXw+d zE(z<*yTmFbPjQ2a;y`%^6}mhVrjZv5HL^L)6ZVy|bIz%c@73}SUmbbM0A4Q(%Gq+9 z2Fv!41*BmzEs%G_;rMN~4qKd#(GRQA&Q#t1B+qJnUu*g)r?jbp5M{5IOp-U}E|_kn zMi`on^ZZ>Kei9egOcbQp@z6)o6hXGywIeZq@Qr~lTEO3;%Zolmbt|&$^+l10d9H!; z4hV@Pm^9K!Gm@`)1`)QH5*w;(5PogP1$-m*xOj%H`ATZ?WgbZ5sLux?Jyd19Q^w7nkeCbi3sriYVIb;F#d-aR^c04la2jrJ zRojV3ACi@IjhPF3&GI|6f2O7~iqnF9`OI14(gqs)mLYq5J~Dby#H{=9(c21L@g!0N zW7qb01U1j-`<1zgM29Wa@t7G$;5h|k=fwU2zU8F0XO&^Ng6 z`3*k(Xm`*IvSfvcL{ixV)U;H)A#O^9C5;+v7T%?Q3J78K*H;G;waLu0WOW9p+R_Zx z(3ZRjFP^2HqFmqR0IC?%PSRVG_8rUQ9@zv_iIJOuziQ+4WU!n++|A_Fw^r2gh)sN0 zWONJ~x_pI-)vq_n+Kt9DaTR_-^xARNBDl?=5qN!2;9uaS*A_v3^}{fziM^$>)y6c6 z2!X%dpJeVbzb=D%_-4~ae%Gr3MJ=8%tHA3K9YZedP4TG2&AYZ-)Bs4|>?A|K)~6IK zo+C-9v@%(o!m4_zOgn)&O1%ccGZ|RS{CMU?eTkHoEya|4--NWYqkSBEkR#=rO)eY! z`sHb-0$y3+^`d#|^K%u;%euSaHE-@cnme|k0P?1pQs>D0vu+qW#TRI`7ueL(ihhFM zlnK4ge#4ExiV&W-_Va0M8r3&B90hhfV(%)gegzkKpD;{HHzNI4Dzk1{-G|tHfMM+< zzauo~=}<%v1VlQeW9eO%4(aZ00jZ^w6cD&YFMb!^?_PKJx<8J8faiH; zp6`5T=9&3^<~`#O?UDNZI_tW)=xva0tKeZcwK#LO;y;Pf$K={l1V6uh!4>0W%#u#~ zAvT;P`32&9Zt*MD>0`!U`gkC=lmYX{9-q4GeuEhK1cjfM;MbTDx9YDaeo8+8rmX)A zVEUgEQ~%(F+#MTxX>t$&XTM8S&0@Dcn-Eg$hyC&u$trCpuAB#Q1Dxm_3;w{02=s7tYM-NG+t+DG>a ziS0Yh*{7#Dsd@;p5Bi0}J>A!vZ|>dX*$w+PShsR^%a8AVzl9WktOQi6PwWly>}YUW z+h;JO0xCPIP@3_JaPtJ&>!nwQ9oTl51#8L2`OF00z8lYLjt=jTi zviN$b#LM~PISzve`GriBTbSo@?3B6}oB5{a<_kbqfrSxnYt^lt2=t-91Ep~LBS0@k zp=ErTiuSnjxzIqrFiRcP>Gv^O@45hO2-E=f#{N$47b#l5$zJ>Yh9zAK6x!XJeyJGq zadP!RPJeE%i#N_*49xtkg&ZLLSB7U!(yn4-h~-(I>@up{+5LpzBICoT+%Mc#K)=2q z^E9;PGAV7gx9e+_=v7&2fjgir8cxVho8ChS*cp~pq`wr+xn3 zg?bvJ39eP2O>Gr>3=Ry2P8*I3b<-0wu`4RH7BVq*SsyX7Vxc0KA%~@^kdSf$fSL7a zeFL0AoQQBjZ24RHs9$ICi_W>f2n)#6%ExQTEvtCpfKifymAIfOeF+is zDgd?L*pBbL-x-^?4-9HsswJ<3!k)=DQO0n_tY^7J1?YH0m=|Gb;;-L{2N7!;D}pYu zX+;x#GWiVb-D?pCRW@OzvcYi}PnMd5YCSvaS`F)pIv)>_<~DE~8?~#E_PR(nJ;R&V z(yzK-jx%LIIcAk&XTm7nWrm0@0oo218<2j?aQflBtP824cos`w&51+UT3$evGG@73 z#;M+8on)DRwmN6krlOp^N^`gqkiEZ2+)ZRQfsExE7v~auA~E->OInj+WaG$5j)lz6ouGvy&)$dd^G+u4aURqS7}f&JJ*~(nUMtA8niiZ=d8ZJKLE(ShFlnu zyd2bR|LX3$9tmOl4p?qBe8gQ{ec)}ezp!uk(HoBLyHNJW9(oyUljTeCi%6#fS^eCH zy;@`fCP2MMHeAUhs8RND>)%sy_PrRZhZVLg<|mUDH&g^`D|Lm_<1DLhkmB-ey|pP^ zth&dzMa66g&SbuU>tNxT?jDt~VlR4labRJn>{fr*S~kz!5sMLc4{ql_Xkc z@~gdF^z}d9Np~0L#NqR58C$0TjWVs^yCE{mhjMs#Bi5qQmX7+Al+|zQ#5X9XLMDT( z7Ec-%<}XIkwN_9mDFviWIOd`od5AemM9iBWm}2gOUM&!v*aJfw6#yc{t#fJw50!4< zHoJE6A?gFg&=U`pbc3_15N59oja7^zAlNu;Qx8r2;uEp=9IYsY7AGb;Dud1XQPxKr<)miY5 zVmKBvzK*u>`!XIiiI@H1okxO^Eapw)GZKLk3xKA~hMk;q*y6Ksay4FLGTaV?jx@#j z{1Vw5GmOz>6Mi_V^C=$2@kqJ!y@%#77X-rOtU0FRrHjxs?IfD33=5VzORl(}boKfr zj+6ZeU_LZXX)m~WcnlC9o($CeHv|TR6Zdeg!65+@cRYzB1;WkKM5vqixQOE`?e&KH zq6|svZ3*^ls@kjXta~&?zT(#UZdro$b+8``@0Qra2TY+;;g>BgTsYfRke1Z?r(cbE z_f$W(t+2YsmZJdzJcIEWpg>zUX)|~5V4QQ0=}x|`^)*gab=TA!$irS^k!4>qm7DJq z->cdB5?7KmSm^b*Wyc*|Z*L{{$}VZl3p0?rQG}sjnwD8wX3SQm&NIx`&{oKfQ}Nxt zkeYed0K|>E;Y8ZBXF7+w!kKa29Hsw8QXseav!t*;JW({L57jp{l1v5KwIh%K8JN>a zTb!+MTIU=#Xcj9s7#q;lG6c>!S~kOVVx6Cj2Jn5No#+Fd%Oq;CyxJ&Z+pNVa^s0;O z-=1YEs8CKsuXd%F9biwrXm)h=hm4LgpG;{>h%CjC6U~A~GJmI|AD+m*$GYi!1Lc-A zA~5JyB)u+obD0C6jChPjByWT;e}lJ#>%}lT$N@qD>?^CwxF(Vnz`5 zP-a|N!(l{vgtNYKhrL_IC6b_4I9~V$UK_{_xQq1U=?4;YTndOYb_7*Wm5l1l`OD=3 zzuq_mXaWuklvV6NsX&^K>XELY8JSM0*jU*k?JqLIMsR1pzJv$ogtewClH^>BDeU65 zvP4s?S+4W4mv(kkKdv&5t+`v7Iia&*K9`FkPrJo#;k#8*t#cQo4dk6dJ~(SD;a@Hk zAk{;LYvpBgCsR92zkRXA4%7VSN>#ykFUI!SloD9f)8+$yP_s-x2fQQ?UBS`|A2UNM zJ>f&t+?SXf*q@q1&@jAFc&>Kd7Bx`=HSZ6u?Y4>8x$74OxL+9lz^#d;I1&MbyWr6$}mdfQfNGs}ttY z{E(SaJh$xLp|X@%B{l~qmJz7~jBrP%mZm9n9A5T@E&&o}=+4ds_!e`uts%y0d5@(d z+uD>zr>JNJLtX&nrodvUs!GQG(Lk-=Zrh~c4k9mYS_}Zd-^D$oEl(o6r;5DJs2929 zh6F1egbc+zlBkkRcu{Tg811kcf#}ikkKEZTsa7y~_rxFi)pM}HBc7a;VLX^AzjWJ6 zrn!Uwoz!#jhn8UF`Hv>rE2%_%OKV9%OitZqwvy>zRGHn^K!xh{4I+&FWrzOTD$BQq zbiky-0T;?fE4w%8uMVMiVj3=>E;z5#R_WHP^jT9t8(x*>xW8qIQ?VHIoOmt_URDg* zJu&T46mXBA70JJnKC;+Hoz?0muZS|3;Zn!$mCWVNVb~vq>1@WAoAgsucCL(zDHGn# z8xm2Q)Ldw+f51wZ3^m?z-7I$*ED(tv)#)n_0)KrheOV^oRCm`gp_d7Y$kj-b`i{X-RqtdqcMLPJ8n<61Quta~vC7xXEl954! ze#h6J+0^_~8tqp~U_%~ufCr@%S;NAuOo5^?BnWcG!A9yV0(!88D>Bqo@#ZDzU~$9O zWG{Pz?TGBz$yYa*bd^mk+OzxUkpu}LT1xIX8!v13zClGu{HH)dReh(xoSY;@z-$I-znY2UST3R`ztB`rNFOSaQjy>cE4Z%+W=`(|#1 zC6{wXbn<%>=B!#IWa1wC2_`P)hzTnjnb$B@^jN7ZGP%0B`%RllbM}i21)89yk1oEn z?^37&Z11$U{NwfO75~;co{kyC`Z|)&C7<*YrcYePdnxrp_)IjNk8YUdH-2j)^PDGq z4i}fUVEMGHZ7fAGoS1eVjEECY~gu_3PKf9CmxG~ z$BtgVSSA;!w_vp2>`wCRBop3dE_ylDkmn|s0q3OoR59A$vv6|$6xYMcRUb45yC#Ln5S7n_SxAbs!zf{|S%c(3DK3{*P|L%tq9C$_-umD)C zoAdwo{-^)q3m5i}`qOgbs~jE4H*E@NL@R4mbxp);=wg-g2%nj=XIp8NGvo<8>unu*&4jhr-!KiYV{4FW zjsrlrs_b3wf}Y1?qxUv|!`F)|rgfQH^TglSYk2|7OiFc!2{4^@(-U@(5S3qjPRu@> zl%DGuOVkb?JV=XuhMNU-FNE^=T00$? zyW=4N<1Nr#k)ot^>xCIG&-0p1@JRRgP1N8j5<5Sz?G~C|w94PC+A+ML-Z)QK7c%Tn zwDg(N!*<+tFXvg#`qbE}DHbjenl!s>_f2Me*k%-?hK9LU!}wvVuGn^xx&kwiXCRzCqNo zR*yn91l1$OT0Elh%Bov+WtpS#l9L9p5Wgs?W_EV%c!8;Kk3})Sh>=K0x$x0eCN!a9 z0ROGEn3Ok8jyY+a7DOYF#WK_Jv!7A%)2JCYt#OkS7E*Ivb7&af|d=MZTzOqvcNzjukKom;?sx+?~#!f@J zQvQfW@cJ2`lKw`(pz8&x8S2TPQ8Ph-@6F$e4v{Ae0rf3g)cEk*OEpPegUUv2xO(}9 zo0%rUZ-<^dCI`1zHm{@25tLu>BYDG}ey=9D-6hh^9N8_=tM^ErmU+v8&HX&L0RV z);QH_Jkxb8W_e31Rv-YB>s+Wu#{+j#<09L^urdoJrjpK+^f=eHAtS`KR=IDU z(<@Y}#p5Z01pfBPIvRqkJ$gy%1W7HKLXV1XDQt)g+T`b{-+aH|#0eM>=*Gp))X0O4 z4?dPfv?_x`RDNf*afe^Fh9huGc8D^nFKJkr1l=lnSVaROB3Q3V?a@CRxH3Gen#5(k znTY=E@nkxqsFc+alxdeD6Jn{tx!~_rnzl|yGg>C}roS2u`>GYAVPO#6&8`JD^h|hl zeWa-?Dw+$jzaPAqZQLOHYQQv7^0n2$*P#cypZYk5+}-$}TjJM-2578-uhEV$a7^G` zJ6UwII23GrJ4EE)&u;Uq7n&J3u@JJ!(AkgVOExx@+?Yo|IodC_T`>#d%^l9taC}yP z`Y138cA*nOdFMr?jK=1>iHd8jPg|kYKq)<%wxTK1@OQVRZ~=DktH>Qqx1a1s)i(7I z0a6qqRj6&aV$Y;;W`tDabRhME=W13fLp?RG%?@_aUS(mB#fllS^`m5z2@NkJhJUvW zS1;ZgstWxc46Kr^X4xj((91;hJaR=bvNx9mRX=ze({0V{CN{1gE?|b#SzAsi$I#if zLp$8rxYfYicH0G!(<*#`T>q!mK|575wKw1!6>}iHM!=Dh#}yuamT8lF4%w){5!X!e?KCp9>pH zWU|_y9;nfjniRzHUZY1%_z`NsrY)_0CrFE&Y3bS)5Ia8+Y^E@S56Byn&ABNFiW7h! zx}^#IEBaCd!;IaDqiKeH7rBrv;-nkM9OqQ&`dBUN5CI4my{sb+$vWr83pd-Np>MfoN)`>Kt9;&E6_3Ld0mhL2UqEQ!&tSj zzUmnNlp6)XL=>E{~fSm-}>$Qy07O7 z(Y6;?qHAEiw3!`Y>I2Hct1%<WFUZ+LEs$4qMmvvAfsE5lzxts!8 zK;DxVNzYR&NnV;Mb!QO)uu(%l@gj@Nv!1xNxRL8H=)a0%P!(B;Km4gjvc}tG?GaC! zna!japq5GU;61%%kR)DRp{+_AvGP@{i~1Cvl`(q(%;QVhyEy6y?%C8QC78Kx#7vWW z(oLo%-?FGH{v9%`tojQ3mo1^)<6?O5wJ2w+cJS>PVwJ|noG5wnx*_ga&^UVKw0UHr zLrGI%To%)hEI?s>##R8w=<6m@&@qgXf#-2sX3P`t)1uYl?~OcJ^W=Zr?qKXpZ|q`} zkM!KzUN4@f>{bpT7z_E-lrg)M5=CScbG7(DdidKV5*cn*N|-TTYOedUk;-?sQTY~w zi$8b`ai^Ma-57;7xiTyOve~4&VrU@e8Ve1~d+dONHt3Y(_t7<``M5d#>Y!UGaijWF znj9UxE_1c>Qf}NO@P@xCqk%HYZ5%O1-uM->w}M?J3CG21lBh6et891=uzWSaN&ANv zD>0w_SNBW}BH(Lz<#_76e(H1IUtFhwN4B6%_Vq^ds-BDOQ~h3J8yBHutCrNTRhlUPZ{ODY!3Zm4g(N*WX-X_UT>iyU`M8s{J`k!r`D8on-2c;FH}BM0^z z)UPZcsmD_JnHUWZj^iniZ2>Qo=q{H_7vrL&04Anx z(I1A-rtXqdwd)87`9(6r7O# zJT;djewz-FSsUFqAgq3V6w?rB)a?-ZQt;`h17(w>unmXSMls95+M3gGL1#SdrP;83 zl=Rg*(AzKXwrKV2_BC9FpJcYYE$pIM{qR6^ASqQyxh9@Z;PvJy>!gGyPFP@F$x0j8 zE>l5Fu8J8CtfLV*Wqc2J6OV-x^6K*qln+D{56tS!8& zpCz$Qg9?qVh*y(7Dd;G;Ul>a^pl>6~BXJIEoY=c`@1^5$@C0r~3#T&{8kkr-$vjY0 zdIwD$J`!FQ*9couqgSBb=O)5W8(!DI2GVU&sXFrlxflE=0eb^%W%g@nr)mOH>KSpDPRG?+c$Q{Lm2= zGXA(r1pk7%#|Od$p+A;Y>Ecn@MZ<=R*hen?_Q0=dH(a{k9QhIV8$IT?v&R2$N6F9K z8lM7wy;H-7QSpEHLZc}|aW_XNhv<-=kJH`5X>y}wt1DE8noHEqVO9DusHy-LcsY4; z!qVZ5u`stxw|79jU+x5{?RA;r%7NLq5s8a@s?m@yPU>{eU#Qu_nS#3VHs1-_(W?HA#nF zQb|<#hEuF`H_qV0_Au)KNmpR6GCYc)eBgMhpyiEib&F$Got0M$ss=bx-sNuTI?)&6 zaw&%mwnJ#K+1pWVIf+}q&J>CUo(ut1LKUI;|D4Q_y;sXNwPUSw*W>+xE=QiX|Dt=r zbn#YhJ)qmJidG}V&i&cu&$?+~XdoitCQSD(%o|-n} zLBoT4=vVcTxy4d~t8SYnGcFsem7`9N1Qr9P?RkV)s-v;+hg`Mq&^h|ixe2U$TqRi- zcMf@Qofi;);Kj%@`+o$o2~3~LV@p@DzR~|;i?g={bKogbeS10uRv_>#`O}rE=A9bn z3e4&5Qhz6U0)w|ewZM>>4T;2=lOCcVyam?2QMr`R4aa=vjKS+K_i@!+X6V52D=%QL zv!OR#Ah-dknn`dZh5Oiiwo0p^rhfCJ)lOAX-MP|<%;xQCgg^0W3d>9P)uscD-w+{~ zlU2&0Ap`?#T2he)#@o4`zMz1>?&EsO^EWkOIU1ax&b5nOq-_j@q4BG%YAj;+OT;;P||EGK9Ps?(y8v$z;t&Gt6`!!-aM z#$13BlHz=5_SgORQKO5Wp&|VDEKNm+0bV(u*T8jU4f60E^XnGmjpnHiL36|cd zPHTVJ?zLYNcE1~?1{i!172cdZ{JmP%P6Vy zvJ!eHZ~Svep~J#p9dp&X%q~g2XBt&@`+ZgGO0_5W$ZO%WeD44!__Kyuk=ANuHn%J;O%@Jyl}A$v)#+=O z_BC;*SDq3}lvvDlO+gh!ysZ;S?4lJ;sw=X&V?y(fz6HA8`6FkdY&7jQC9b(G82+GJ z(o6gEKZ&Wv%jCXV%ej^D)?A65@pxsjcUIB*M?S>X-=;9S_4Qw?D?BknKh%}`-E7Fa z;<=aOpbal5$YD(ZieJU;q$ z%3^Ga)(oi(80@p^)1Py1^BY=<#62z6w-Hp8++JjZyDqLu@$_pEn*$b_?E;GPIGXd$ zq_-x-X?pa+I?I$b6D(;g2^PdKMBVjTL)D?Erd9q-VjVF{p$cr&%hmUDwZ`F{${NQln`N?&C4jg^H0@9)U~aorLucV`0t1&P;oh_ z`{gWMX*1Vy;+{X9Wp!HWh~~~dg>PH&>g<-&@Dz$YB~xcB4_*(|%q4tk%QED7JRB_ns^Z~#uG!!wO#;cWKIXM%t?VHxN)ohH`avRs)iXRF%ZDe)9)sM}}mJ3*VOA`-D9>r#6>wYudDm5i&| zUEcUfB^P^(v4g zu(g?dr^8;k>OoZ>Mq|TRnh@YoR&!5DrIscGIW>-;Q?0!W49V@%${$D9S#uY%s;QhN z3v_|GO}?kI59xClFG+gh_R}0K4+`^Z2t{C0pi4|<+jg>J=|w+b6tyQB1yya|JuXM) z__jzL4+_${ z-2G_bwy>RA(B)Z^kdc_OeZe~b`WB?vV|;vry_9RI7WdD0vBXU#uw)saVBV8c+DOZ7 z|DBKXMS1p!K8GH;Qg8m51N|t9Z(?Cq_u~<-28yLs{wclUH#5CTC2qLOMxaB);ur}2 z5E9uDhT{8>|DcXPmDx4{5SO}i_(PIl(snk?sJK=*P!F-tlrzGqP~3WBSh~e@)c)J^ z$2q=#dA7#}p88foEM5~_T%v0?)4=^Q;*pJRxF`Id>ZvVKowK^7SeV4ME~@8I^V3vh zIj(waFyxXl%nm8sFG`yO4SX?)Y9Dd!K9#hSUNM-2c!f9yZ*fiRY#P>1~$t$Kz&tQNA}urt+zalAhP10fnV(e$V^LMaIh0ly*2rW+~v0UCY zKD;%ZX?HSa`_ivgk%u|Ae+oK)Ub#Q{9a@vCVZ#HYMw6-i?YZsLz=%67OMFg;c9sz? zf^1qc;~L#!zsK%;y9#|@gTFcy@YJ<6%8I1cn1;qUR;J@y#{R8jBGDZuZm`p6W!c8vkSsX4&Lgnro!Ptz?9?jXJckce z_S_|-bSrmYWvTkX`!|?uiWWrnd*tMtv6?;JQA<($aHYbhk9~x%7Zi~GaI(7{ey%Gy zDUcM`8Fn5~78ac=H9Hf7eur8n>*D@FYwb%z6c7&*@pO-Y^61ay%Ik%r_Id6(eZRtN zp0AvcL-+_aa1Fu5YIwnV5eEN6Y_Se@3neXqA)l@$Dy6?RlS;Vf#n|wOj=GJ;_5L_! zG%E~go{8sy;@!1h?jGnolbw!@Tyx2%^ntJr&g6d z1oEkD3!U%a>3EO$Ov)%EUxooiAEYexlJ&*(2#mWRt88IOB0%8my6(I`L{*n>d+P30 zG6-8)LyaleV8%c0NfTmY!V0Lo;?{}n-g=B=YippYjrCBnZla7T3?OfTaYd7!r35S0 zyb}Bc^gtNvn(I<5NJtpwlGckB1$b`@tr2SR)xiZfsS^ae{ShVTN;A|5b^5OakJH3E zwtGVOAD{V~8a*HB^5>Uxa3&BS=+U05P|>2^?TY@#0!__zF{XEGwRqdMk=$ZC9SRph zd}#B=lX`oXKN`rOdx|1+%o~pq5^e1N*LL_QELS6OKrHWsUIlxz95I)fAk}VMFQ1;9}jc>YY(sV zUEa;Qk%PErV1y-FaIm*O)hiUb`D!`Y<1!}?Vtlng@4aHMnb0Kc+T*$_6f*j1p&KNx zuRPRyhhQHd!Adq{=XTMg?oJ5EgR-3DFAC?2$b(2${mCy}z~;r{TvWIVeIO4KJ!VNB ze1r`nl^}O7T+sK~U88kL9^m*y2TJUlxxP{|PX`*#pf$((1(&5}svc(m)HlpImJR>tbOdqOv!_~zFNZ(f3eSBp^y`6aT)NUa5I4h2w2&Gwc#SRGCul7 z8RFySVD9b9OJsqr<{(&3?qjR)ks#Iw1W|@huvd(iFFOWOq$5avQ>e<_I6-+(YZ(k% zC?0tbNBUpvyS554e}_ieVQg6moB3%{Vf`-g9|A&`C|j zSyPL>(kyoU8Oynant!pdG13qhYoQj_LJ`Y+Nd#0;ybId|2vxCdr!gH8h4tJdAI?TP z`AaQObiw@#7s@YS+shY;49G`GgmB8qojz4vyLSl803jc?mHLKb>-@qh!0a6&ZXbxv zF^LWYO6RzF;R3hB(H`L==~cAtJA^81>vBmrwo@VkcN?+yzI?(q$uWog#{Kt(a#wSpepteYBje96`gDyz zS)%YaRmAc`%DWkb%}wy)4_3-wp2zvQ)Okz&`1D5)pgZp<&jbEj53?x#=&gcNmOs%f zR=>-RdG=?Qv41}YPvJQoFo@OKgc_S!UBO=I3HG=Wf2Yqum*V_Uov$D0vB8L8%_VFt zCA33|*syQ=`SVd5Ys4S_mXpN3`RC7b;@?~jyVG}2cl4fP>uBynx*99-4L_-r-~2M$ zvOmk^;qrd<!qKU!D;6#f3A!g#{VrKP9oZY_7rkhJJF4j&W7J{_L#f z6GZG!x32rG@4We{5&oy#D@x{Pt~7P+y!Sb6esXy2kGV1t-|1s%QBwK&`UoX%W*(u^ zmISts|)+@vnX{mf^P^f&on z|JSFva%j?Vi36MB*zo)PfA}`yKu+GR1o6z9Y=t%t5@Aex1@{w!{4PKIX-X&8y=36q z=(s=mS<`ezM=X=d(C`EU$s(JNjjS+%5D=ah=ljW)#?R`|m!ik>|D$~?+o@c< z3kl*gS${0j{8p($Yo@f=Gpdzu~7)L2_NXm`r$>LbOsV{L=azNdLFQ=WZ;&F-_D zoz{JC^8T_fepYFF5;5vM>3zmD`xU`+ym{73`N88TzP9!4w6OyD@;a}XmV(0kjll}A ze(x?+4D~>s9_PfNZkJy3^s|NcMr+;vnpk~wnMVVxZiKpWJ4@^sb~#H#PCnD*S=D!csPChgJmEZ^d4of|q=Kr|Fwy9NrSslixhZo4!C54L&gIx!z~ zgna+N+I2@Y^Hr#TyoIRU=$Vq12yEFIR?|$FRykM#iPtjp%oF~bLwyhGN z>An^loRLWJHu(ZFub$V2u#Pg;Z3H>_|p# zm*PVi)J-%|kC+7@k{I(Kbv(HZLTw=i(4G+?Xe478PlE#)Geq#0X&N;EOtz0sJX-%G z2-4#|U-#bK;$zMLQ`q*w7h+0H^dVFn5~m2lMKQ*!kwj%Ar4dF%0QeOc^;;aMN26ttU$tGgFw-=929jZ| z#3GM>zlDuJUg}U#oSbxKo)ZNvN?2QJg1j3V!p#eU-!fwmKrt0l!SFRL)H5bB=vV-w zfI)gOz1awvi2%}P?ZNoMXbcg&WDmkah_=%dXcIZB?B3C!Oo9k(9>NRODF(dTfxQE4 z+D^lU6BRlxBju5!as|PSHz&oeDG~2UGvDg$py$Q}gT2j^vNAA2$glj!tq;s;RGwyF zRvTLfAzLydK4jc%-&#l01k#<7P~r_*hb|6IU6bLK8AFvf@cns`e?BwAT}!>&4SK~U z;sHReFn!$lgtZwK{*`k<6%_!-1>X1z%OvP&H_%6K2PkzO+_*kBW4R<#B)w?{S}h0wxS-2sH>=N+k{d+b%59FTV~Mo_Lt)2cY61z zwuO{IIT&2ku4>!$1R#jSpq&S-4W!RTroWvzNEMns#N8rNGjD^}>00hSJV?476a@+m z#qjkPWCxK4ZbjhJ&9Ls$5;?u48}VY%OhrFHq*90wT;haacX;Dk9y84RilZ4&(DFLo|It77~zCdz? zNn7oSkaby6-N>!*t6N?!qT7hsDf?(AMRU?{RntvRb=R;+H*al7OR-oMY8bMHyovMl zK+1ZslA(GwQb?NEaIU3(@!RbiP$U}#KesIux=9$A?A_{JF*noqDox^pws%L3T-6dZ zWn#?~kSb!`L@TDZ5^0+O^m%-vjVv>MDoP1uYw2HH9BIt+FDmhi&Wg^&SjQgPl{n^G zZu<7E?KbCQO#faZVapi-;FW4U;qJsnER^1!F|`dLn*tZR%4zelE`g;5NGSl_sC=zF zcRIs0DfROf=KV~}0F`8}NJEfC;x(}aseQdc?-ak>3*b2C^}$*P6VB_w zIBGLKy4yb5fD+LadfL!{^Jr`UIV&6l-;qgEq^&o!j8GVLyrA|G%dJNg+fqvL-s!Jk znQLMcBY+BVs4aZ36mS@<6m1>(m!W(2^N0kIMMt^HvT?i~F442F@5H_lkaXoyC)qKt zjQUMTyXQvrdAV5N*y7QgrV}nGp zz;POQMZ`gmKVP>Xdsc31d-dLeUKR`(A$c`CMlPe4on#!90+5S5%DprK{OJN2dc30R zhOQ#52SBcQ=Rnat0>8(wpG~j=<^B2U^eb^KHKd0J{>}%BEJR4KHf8y%qN+NB>)S}` zo2F7Jma1;OftA6ro_-tHKwA#m1nLPpIW*W#hZ;x8v!}!*mL7CQ$SBM@Bercm-iaI_ znAT6BF3I_9zafbDKMIz19xFNQUKK9mOI`NyMOFAw1Xm?!Wzjf6h9H1^2MRuMGN(7u zt;Ynia6*wrjs*qkV%|5?sxqr@YF_mnwW+%~d|hW1d?#pj*7d7;YF`_Z zG9a;nV02PBk~Fx2l^*%9pA&;FpR^>%>dj+-WW2R`4HDYY|Dl$CDsX`eAg8KRpT3UR zs_v$5tl=pGi98;YGhSvdD`v4-9uEkHz(sIo>u6%cW?VV7skYLpnQuZEJB|FHYl!K_ zt%U0heOeAP8*@X`NpZRcS%_(>TjZl z0Xrv%$n9K*S=m%lKR*+DQEiI1=tnytIVOd96&*K+TfI5GdKz8LCii(_zj^R=y+Mk( z%iWMj=o6iKF#($4dOw(k`GLH}yaP>rnH2}poS%I#Pn%2)%}xib&ZQ{iUh}bFDXdBz z$rggli!~NxAG2edQwjFs>lpP+X>FV}OJogBWx};TU9hVUWgo!_uiM@F=w=Qhu(4Zo6n7NWs?;-Ld@1RT_)6pA}6w(T*sb}#Q7_Xxtq z#O)k{ZcDjQ0-%k?r`v>$FH^u2uPLI_6DG9m8<~WTKc@X~9n$MZ<$UQ!-#&876CoaX z-g?YCVy-MnHh`L$7&ToUEtRsfuU&U123}(~2$7-Zr)q4>+Qg@C!&AG++16tuti6IF z&__zBo_)+%`=ywG@>Ws4S^>BUNhh#xremvzY?T&06u$;zi%RZw9_XNVzx{Xur>~oJ zC(jXmL!dm>-yfT^0Zq?f#8hl-*yg@Yrp&+sX-g6C*|C~8ryG0yIUK{rPod(1j|R3C zqo4io%d}Av+lDb$?mk)d{J_bPNnQ^AU})cg?JRu=bQAV{S}p{%$&R$X%Zy zGeyR<_Z*aZ0u1!wdsavsz6t>o5TtQfjl+5@|-wpIF*_$kXpy2Y@+s||II*uXKIe}d(s>g7auR{(W$ zE$+tRP1=)6J79BSM)>PkRTGnwCW^8$U@g{kUPo%;seZ7MUk&4=?wu~*_Mqh?B z^<4}@FV{4OhUcq!)Y8A)SRG&-g_cf>R`y}YelbB@G2&zCE=&)3bVD1q6KNBQkOl3j zEo2R(-TpLyp^SgR;D#2H21e*ggMef|!Nft+7q!>g;1?w7OU4|W2*INyQZh^Thw3m+ zllqVTZC;x#gq+_QX4Qo&(t_j+)Q>&XaTCc1@7YiM^R#ys=-Uy><&I6(e+u zI3nbBVc#qTNk+H5_B@dv1BZ1mePxnmX`@Cf(U^~eR(brn%yHOXR_t;Wh-cVjxyU59 z2yotX-L#ZZvK8v(^R{_e6`*J$z760q#;j@aBp1>=ilPYFWK*O~;G6;|8x(fH9H3GUr?phg_-28o=mOKGFrhBOY zX@r6iP|&Y3X2}vToE&ffbrx`l8*#8`7>cJnUmMIm*n)ZwrKUzvcWh@QuP%L-X8MS9 zXYEX2`Z#JJ-Y#89$GC9`UD(3Rs8RsXORE0HHWq>_gwWN6m~`)OS-ouKQG4ePpsHF^ zhHiYV7?bk}dE%-&-pk@*55HC|^e={D<7!oy^k9V$1KXNz!qV@pZpBfsNNO(dv7-BI zu58)xW@3JYVl8n1E`?V@u6D=BLYM1^V6f-=ptVw$yVO@%DDLii#(6P3t2zozU!;3(b=`b`I$-)i}rSt=;BWBg_6pPO-x^H_jshE_OqGrvm zSa)?0XSv}oV&AkG%y9qdJyI2ty6_1IE-u@TI$O@Tb1OCUVrf%@vW_LlMQf7=+?G(h zy46TvLm|y#52$tz>5a=~L$DK#mNh0%kLWAVm9 zklg(djWcl!$KXlos758@kKjL|X`6F)ms80R&g*RTNrT^tQ310UxvV#b^}JUt9>0Mx z?5u&?nq#l&5@7vE``Apa|4+`nhcL_j(r27*2UQ@nx$yZm6xTNmbPmJHMO5U?JQ{meH6uV(#xs&=2--8EZu=la+%qdBZzuBXUa; zOb`TjBry)fMXhO;llTgdipl1sHQw=2J&|2p_Hx<`YS-=LFX%dUH$ktBmb`!mv0FGr zOa1!7a&^cSQ(StM!}&+VLv5okk9-XXEf^7lZ_DvGo9aW|)kFS#ZO|et!_$&v+S|)8 zI7*0Y;Rh@hBBw&L)iBi?MOYvsh(`x~mlm-c_SCcR#zA=|)e{bGLk!RVu0Hl=mz^UJ zuTyb9`Q2#hldL6|`_FYfbXqD%z?!lhIyWO6g9G6BW%>Hc8QSF+JrERgARJ@xnmqM- z-3TkeA*ejEMLw1@&oa7JTw77EhZ+DsU_jUIG^w0k5U|h{#Sr?MFBw z!qkYvICj-|DQxMD4{~d(zR&#t*tmPtMNPXT)zn$;+65`@W#Q!rn6?(?G*3Gf(84IQs1O%>xk-Q0wEEs zz8}s?YbG>kcS{BUH*}R^g&ygYL$&0hW0nS)tNltZvrvm_iHxB6(!*~E{ zivXal>1aIl(O$Qep%qw%D@Qgz3KQp5yp@0Y%^Ri!x*adYQB@u@Cy)b4FflT}LCh~N zX}DY2AtcL9>Jsqy9KIBnX}~ePl#gH4(jM-pYihdhxmI6c+hs39EqX2~?(Z{oZKJH< z;-8ZYSjhnDa=?C>>0{Xs%rJ&BbmK1F0E<{|FjAHaduKpuLiBJ~S5O~7jw$q}*Vt9Y znO1%k?CNp{U#WJgndQ#$BOZV7b*K>JYiIcg6I8bBsmJ5eTqf3o@4Ar$Bad+lm;YWK zX8uoiHWTuj7U$qJ%*Ju!$f~uiFkphZT*1(A_<>f+JhV6I_?o2f;9C-#*vG3^2k+Pp?uM= z%r7y(^@RMw>B*Otl#z}1gLtBIH(UK`l_cg(MJM`RP($;cBIpLQoP0sjt1@nX29_vk z6NPtbpy>@$QYow4%VAvhRF))j*Vc>K;5(MqWHE^{Z@6<`vhJ1z>ZKo%{JD#b?o#`N zAT~u2>X7{n^V>PR{pS^CpfA=c6eEkYo#z8yHry1IdeXe|M{bE6cB6&x9zwgJ&eC`Z zZLS~iDg^R-G8Mc{OupTsu}3m5wi?Glt$%KyIn5NI(~a1XpSuVOxsOftJ@{RHeyw8% z{X;%n(6|1vqCH{2oYPxy<6j#P&X*l|`;j~~bFiH>VE)f#@B4q(D5$gTt3-#uFW6M# z3dXa#&qo+DFZtsV7RG6pGVg1Wc6T%|ye2(5iku6Z^gsQ4-DXST>lbqtPXH7R_OSl^ zkbA2937>VVi@z0b|Id%s*1nxoS2CKwoMIl3{nZZ0e0uEAziHT5SdYdP7oVRR?sX|* z`*}y@Z=1WVhXbJ*oA22-2Rl%n{@D|;RbT0gFFMrK;k}i5V1i90Y8Cd%H4#>j?wzs` z93>Kj`nD(ghajZHpy zNQM@@&ACvYAJU8%+^Sa{6Ol)S58KC$u;&t5O{IQXIt#0Me za3MlJ^DO?6pB?*LO+=xuN)RdICf~=erNJT++-2SFC?=uAwgSL3d}4psA|}rMqxBnk z>4;2Y()?cla&g~hf$3`6Ccltrdjz>=gHVbh@b%X!GxjAM-E}Ma`SXs;T`C-KAESd> z--i<`k>jD}SerK3;hKA|ki2(y>+Z`DD}sZm_q^PvOdpgq3n+NQA$llc9w68lJ^TP? zv!E=#8>1ahnO8m0J#qbq8E%{lC$xLzqSiRC)Ax!0_Pj@FihBa{n1c`#u@;u*Q@H>5 z8Lp%Ena?zce>dl34lyV^7-QYfGTrvekmY}f_Kf1x`%I_)`u2ZGn*X}t6J~DV(3?jz ze8bi0mXM&9+1xLSg5RBN#XJ;YV8#<(YYb)IEay0xQ#~7#F%sSP5avu)4}xD>9mRC+zD|%U}Y<&-PhjGFTfgj0}vWr8boC{X5*z72(it3Bo zQ%+dE{_uc!7zj+C=O`9?rf{lte&TU*zNb-ptDSkrgRZv|u7U-Qu$VXak4$!MJ?Yyq`~F}~jFBB)*^L7oD6^NTlX{xpb69tG$6 z*i*7U%}xKvmy^5xV*09AGCQ9lNq>n_pH)T?m1Y{Q<~Z>bIKHVzt3R;RwFii0Jr~Uv z&gp$HK|-yOd(4)W5pp9VbTMl|`{2+O%2nwkpL3@?qrP(7rNvqYgrPnp6+W!ri05@G z@vCk8Xw_m8_yU{=Z}zVUFN!f7A;_(~={*r=@6jq>UHIlt^`24w?Zs1?9S!*td-QPl zt@S7%b+ubBD<({jK)tTc9*%jSn^d@0dDJ%Fq#oOKT#7Ep!+nJ@eI@C*;b7 zsne4O-SD#6t>eUdgSx}MsHFudY+AO-D zjdQuqa7CQdsg^t|nUf)jp{7BSw)cm6T{QYw9|StuN%URJ26;V^p4dN#wDr_*NIIc0 z{2;mcmRN4pr(4H2_Xl27!{z#F=H0q%e#|0!p-*jPXXlTh>j$6rd0Of41RnDg6-5(# z75Uq7;@|`JBkDd92@a24J>RhJeG=4s^7OXr z#3=Ig!X$vx7~9$FG5M0;Eq%`(#RvG?Q|c@t$|@L}hrRbFCi9b=O45VWk9+a4!Y6u9 zp1e}=%H(yagnO86w)YLZ5eph!^1|=ABP}2A(st~3{QMg0XJFD2g{qTrTOaF zS{EkW$&55R-_2^kKIyE2n(2GoVBN#M0p~5e9Dd=2T>S;zl!NgmEr;J$#Jjv2#)wgG z086GSQ~M0IzD)z*W+~jdMl%{40)2Jl2}S&zf9BGt+e+GgzJkv0IIfYhi}B3UG0$i^ zh+ci1aHwpv3fI0a&IL!TtcF>^*|ZAv@!_GUzRA{-UUQSlj}yIlI+m|Rl6|Bt#Va&T zV@=`;g+Fi}Xz%MzVQ@ET#~-gB)%}OThY$~i7A^T%CnOg0BqHRYzSd8dIIVEf(h2Ix zfq_Md&gR~pj!|hxB^GiP&AL`|@97O{UG{eTqc+#Z7dLR`J{fKfvW*=$6XT9}{g}JW z{J0oJ6sL9Hp{!`<cvEbI;8uv@ZsTtr)imDKs0MF*l% z8Ee_je_(A)PmG*#n22%B&>GIV(bYuwEEP~2bX*I2zFpqOOpV(YuiHf37a=o)pTTQ6Q?EYK@++ReEkEdpO z^1Qe_ z=Vudx3^hLfa|Nt*m?c;3@6po~Z*0L-18U>+J*Rq(sCe z%=lE=;}udRO!ZX8`DBXO>|u$R#@@|lS*3YRF0{=hQ)?T07r%v7cYEm^VVBVuE7$dk z>eG6AlC-lsLbZ1|;0jT~Uaq3XxoTko++IHYeO?th65lO1{GDK#w-X>CH%%0AFHc^} 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%0A3r-UIi7POd;CMR|MTA9JL34;sqk0sjaT1n2%!eL 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


cl=;0J0zQrvXciAT3L(^=VRCXI0vU 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�gi3Q;b5F}>@7+#nn zB!wo1^B9=qB+Fhd`sk27t6$PGXsi6ep=AB!T+5ife%|qcEb5A;bQ-t)#qkB9Lzt3J zT-E)WeBqt(SRv&W3u+4ABT?Esu`6SYEJ$me!gI#d@gC4+%R3@4@)Yoku&b78P(&>7(abOET~lX>0)WV zHy%b7rR-kDY$;N7x2?&?@Hj2MixiOQS6m;2+$limZo9@2lh6Ip>Z?xVW6f+96N##q zKwxuv?l@+MZ|$)~>7<<5HQ&92ttL(y=p=R7Vg+$4>}KlG*JNNVxMBCu@a(R!I_+mpS~I*|=L`m`h5F4WSzCSE=KLrsqJ+6n95FcI&IJ zK@DDw{E?G{&IaM*IB9apk?M^Iay#5_T;ib*Hpa9$U=}J^ys*&_TSEv#fbt&M&?x7Q zL8tx{es2xv?Pr9ze8c5s2r1`Jo@(rHVt*sHN2UwZ9@O~z%|?P&4Zqp)%yqLP;7#G$ z#U{ud!*Ao_J?aC9-Hdtr$v4uEV?$=G)FC>M?Xd~xE?=L`VQJlA$3h?)(5l(9PXJu? z1*}}LK_j)bGs1Rd5@nrDPy}4B=I}1z{(4*ECEBdn$bb=q^ENqg?aGkj~gr&S7e0x$uc=-fLR4iWJi`3!|UCT{4TxElGD_C3i z8smgr+kVYFl80TvNZ_oZ3Y(Z+98SNhZQM?~lYiYqu0#5pC)irHSOX=H=iZnwuXiLy z&*MXc%|Y;>e><$yz$R+Xp3TmsoKJzZNxmDYxe#ca4&ljv;VPF#HTu+|;D=LUI^w7! ztcPdUDK>8#s5jlX2JCY`YBDg((g)TGMOc&`bxn`{VLW91~yW47P#Mf&1s zI8Q~R3wPOu+#oyf8HEgE(n&GnmxAoWDfcS%@ma<*OE+`X@ufi#}`?1sB(wk=&2m3%5_Ix31S#I8M!KBq+rG34Xq)K z11f@bIxY@>oLL&KVr;zR#>!U=_@XkuW@d5?VlR-ce;EtI^E@OvFNrBm*BUf-#F_hq zmsnq}v5^6zM3OjtLoyVEhe)P?wG4W$9H_%LY?U>+!CtVup+L%`8hz`H4X2RAzB+`; zA7uQMK1xhxh~j^AKPl1Pm+!8K(JG&II*D#&m^{Z)1}J2R&)1d7s>xF9_2$zl1t|ak zGxX2v*qp_@X;6skrRnnxV#s9{6~7UK(-iXQTk~-m2BGL?ig4MOz1RB+Df&JF0plAG zyvL>czGJyMHt503BivKZ?g^CrHPF$PufN<%-ox%idHK%w`)wlZO2)O%s0!BP*4y9z z-BcQR2s?I}jXYPTg#_&^+s07V9zE?eOczLIOW(@O_qAQ?wUk*7>WR5E5nrnr{X|l~ z&nCT;%|IP678&4-X_x1RCGS7;E*Q7rJ%Wvt55Y`eV_0)0cZj@)Ad^63H z3T|9honI4srqgf7UddTBaMwHDfO~?d?!$LfX9qj z_5|)HynAgySp*a*WUI3jnD1rle*85>dp4ze4@MR(OazX*Y$qeO37~UhCu)|0c+@W7 zcxuwvlqolc%3i45lBA3ql21x$mvNE``;TESbXpz$G$hcLQB;Wq8;&Hk?9rBQ6raf`-oR1by;2DxOunv?&CgbMp?!AA{#v{B zPiW-s*M8}TcJpX5z7+S7>yV27%0joCGRC+iJC#0!Zc{*IMIeAMje-+KiVOz>ky`n! zk#_hg8Z$3*8mCj}tGm;Cx|j`hlZ~h&8r_w7zV~JHKe_7Y?E@;fz5>mFg`#x7X$|?J0YN^flEV5++23zb3s(U0gDR#bz=^3^L zBhhU-ee$lwVlQdYr6WKTDr5~LopGY*%!O&5u2X2@dB*S7V^M+ML*H0kZm{6G5UB-h z37iJN`{3L+fRtZ_GO&3V(?wNw$a!-6s7oHTN6MdE93>(;XZVg2@(UGs6;O)1?XL$D zZEZvXX@!KxzAw5t6cvf9`Q_kQSrJi1?I7Lxk9UP`CH6|TujHk78Q1`LAd0e)pVwO> zgFK_(sAjjW!Cwub4Ppji0>eC#JT44BS2h{w*m*cH)#;d1_nMWa=CeNYk|(S6-q_H> z;f-Ul%t>Y6ytl~1NZE*`?WY*WrCh>w%qx!C9O2m_SJq`7=&oXu{ZC~9XsLn#olGcG z4HLFe8Z8~R{QHlB4%WVa$gmRMC+fqf!QU5XJgdS)p%7q$_mFp<;}-6=zj-&ummFbi z(K}@s4B)dsoM&TP5JFm1fb7 zl`bslxy$%G)+cYdw!>#xRVK&L)dwBkFZugrPkCk+(b#3BtjC$+0%AF&%H!eW0x?u$2%+DHojZCL(q zqvgN_&F?_Tv?2Y(Hki~a-1Rr%>@@w#>B`>%x~$sTAWefroOTkuyDV&Ip5?qT>JS)-n#6TS#Xfjd%9|GX@Ujp@IvR$ufY_1Ddjm>;kA`WG(K z>G(rus^qr>F>8sg=$SOglVy{!J;D6QpQQMQ?VsWPc7FZZrTKO0xeP6HUtfHBZTl26 zf{FMo{`m?Wt(G#Jz2(*3w=&tSGpn!daPVre{U2rgW`ZE*ZDq*A5u|9WJh4RX_|HKd zwSOD*EikBXc=vk!6i=GO^~JS?h^7Yq-?2qUzkThBw{GJ30N%|jlixC1eLBwyP>LW8 zajE*$A5Q}jbA_XRp>z2sodpPgDDJ*&;a>5pW}OF#UQh1H<4un)PJS*AeZ6HpDs{IL z0$o%CndES+K9w&QB&N~+90s2b)ONqQI%#yP+mZ$?rfN}BfU3Ju*fw$Y&~847_b&d{%k=bqUBr-uEBVf*F7q1SxkX!maj2NXg@sXyWu*p`5GT zz#d0X-nt(Bt>Jey~hbzKb_*arBW3ZwO24G8Yc2{lkGtS z!+QDeyAqEFmmF}Yby)$V0T)NjuSa~Z>nx&uwjt{dJ>lIX5`7Kfe zYmeU@anY9b`vCj&aqrZ|q)0UWGQ^Jt20i;*N1-sFTsycs9@t~P;Qr%LZ~=uF>o~zW z#JPBnZ?Krp50^~uH`3OFK-;sBr)g}5ek$RZlI(Ye*ufL+4ZB~C&c($w3AZ3#o8NDI z2ql;#PW{RbwGL2ptzxy}ZuR;}^qY;JP z>yu7Aq8-8co9g^SQvWo~bdK8moPDhs|J%!w_A5?#9CF_79)2d_6XXiytgpL8Pwni3 zo&&~Y&+Z?T_%YQIj?RHqFDm5Ms!4QK&vaSKdXZ`c8l1zg3FFchJ5MA+DxeT4d3Gbl zlSv_L@ZrVk#@N`X4(sV%LLS@m01cm`-Q0{cl|AWlK9kWE7^%;;Uf9B|D+kID`pqK9 zXd+Zrpi_lD2_gSSc^C8WJ^gCdbKu& z<-FQJ=n`F(2PZfMad|N&soby}Us%|E3~Ck$lEz|jw*t?sf4cU3LEu6IKc3ItZR(oC z-6?|PQc~O!!`23ys|UokXKZxLG|0?wpsEAuT&9q?zRqph9eh;AVMy@=y-fN|Umto; zRnwO136V1^1n-#E#ZYlUADo`g`5zpNEBq!Wxk4&AyT*6-K(uYrp(i?z9G#27_?5&( z+udiF2ml>&eDt<$=TuCPcJ^8N=NuDv7#3gAD~T4ie&}AR8ClMJL^$muLR(oWQDh6r zPq?L(;aL$kzVQ(AZ6sYTbV?cS>So-|J2o~F{gIu#^~`OscuBRv#p}$$O#N{*s_?d~ z+8ysDo+N~9&C|Wf2%I*)hX-Eb&-UKq+oPSG^^hH~wXg#CcRdG~_lZ3rMDL@@UnugM|e4Q#7SiW)TdtafD8XZCWKL zR0R3$y@)w`6{NW(`@XDb%BgnYHVKPB&Wo&H!girgA~$XtN%2bc(+uxD z>iM>Zw0_)Ik!lZw)A`$14NlYa$?88IJyNmpNNseY@1BHXUb58ZFNtmLj}I0vXRhDG zIr@w$K@aP&a0)#IztC#X+oyECZid&EHEDyABKnvvhg@p|;dFe7!o z*${U_SF1z2ckdjUPabdk#C7eBQZVjPrqU~+j_rDe+stom7(C!HfH#&Tix3|~f1^i5WXsh@1QX~$V%?xlH#9L(MHIOy@t z-Ku%|R?9YBGO@pJ(@~Or9i<=j@sgr3Z^8U2-IINlJg)Q225?Ygx*$(c6@SMQxhvnl zBpxiUl4t(RpDMzbaBe{P)cJu_JLGxJX5ZguXOB`;DJy~4eDLo$vp4$2tSE7mq*o;+ zqkv=I?!{Im_~;|J`ph&yBc`s5t=i^y5~hNbcv%)P-cF2Cp8_ndw${^8PKI*{KI*wh zU2n2F5iYyY`|(t6+|GHW7O^r3LTrh+)aDZkc$)gH?RE9_2w&a4?kr*E-^n~viM6}S zbX?sCk~d=sFMX96y4G#PWqEhSa_`GChQQt_kI0)MS^HAln!chCL?ga?nszE$W^Wc5r3onmOofM8UU=Y;ET2HwH7t+xl$V!%Ij_>AG>-q3vLOAHV%` z$+0-JuDQoQ=vT2972UrJD+muO()M;)csf>>9_3;t-P~wFVk@%l$^Ck5 zENw~kkD12)xyeUALYbR~H+nW~@Npa8x$HME7 z_wZs?dCp^Ibr=f7Y})Vw!h(I82p6!ShRd$6-Uq9(v{9_M+u)(0=6B zDy5d2Qo1{uIQCZ?pKm%gGI@?LBVgTthg;f79$ek;4k{LnJ5=Sx8G zxzd35O>#-`+k40s{()9u#xRGcFHVAo&xGpFgZc^8yD~vVrz`Oq!Rd*z?2m6mm*F`t zv2ig_Zj94bCb|^~sgBNQnvPAEL57j{oAYi4j*?GUy!K({jSiL#*_Ozxyb%%?DK2s& zAVcES$r-6oSQNkJ#bdfX?2{^-JI3#pcT`fc$FA}nyKVKd7puW@y=Z?y%%SpI>yy(m zQiKuGs@lMLfvCs1QR)Oq&rS`KtkdVxK~~XboKKzQUjKFKEYXgP`-Qy$)3fb7 zB7kHF(}xcYjTXz8juuS^W-)tS@rapk1@=~2KV21=-!5kAYXT*cdNNb585O936fc;^ zJsx$VzD6b6vFmkg#&Pt)T57F>YJ!Q1xyG2{aS0h!`1tIEIMonOtohWxd zJ&I|9IW1w@|Lz5rBYnCD6YBoYgjZO_A1Wqaw729oHB|{uTqmm=U6I$2s!)BsFcXuf zlCT(yg^Zaz624qr%GG996}zEZs++QHV?A%wv35GMZ~XAQ7GLnT9eXqb3(x(fPFWby zwQI9O!=Lu;DnbPOORE!|xb0uoDuh;$6y-7qvm4Yh-O0$b1SKF>bOpO^Q&aqd0$ zob&sgGcN;;PP9UY>TZ$D;~dHrVF9%&X`}sQWy<0?fZ@y2 zh3@iNy^auh!`a??KKSTa)mUFG#eE)3iGZlKjOac;^CfK?;nOot@|RcM9LKdcC+6V_ld?%E$J(~ z3`B9?kfN-Fd;HG3#f-k*Z1`7FZi4RQ|9SJw%LU=w=Hx$69Nun6OJ6$oi`*-Vw?mh?$~aOhCiLnW zsE0SpBpZ5+W?q`{g~(rr)q}JZzkW0>_fhHmW{x>r@43(71`vytwL(UUwgw?y$>xH z^GRsbKO@aNdL3T}>y0VRZail~vYq&3KdN%}Dd>EWi0R#O#|s^lQPsbc@jd!dIAwmn z?G%4mEBk6xOT}A<`i{G&<;zTsAAPWb-ems=T(2~}8!Y_z5=0*mPfZ@p->FkHR1ZUX ztL3BRP;88YfDo_zJe31{-Q*?ula0cnD9?r#IoDi|YR2>CuQjQZ0Lr`&u zziUirM_;_fVRkQtq&?L#?dbhn=v&IUzevDU>ta4uZRyoksT@RK*U*ZmN)HB3l%~!$>xUmZOCa5Y(|H2H7Zw+*uSB@3wD>#q^h(plY0@ zG_XZU8Y3{^vbZ;^gcf>~vMfTD$o8G~Rv?d^Q}5(vbz>IJ#(w~4m~tDu0R+7JZ}Niz%V?z{I>HodK6>4(&O-6K$|=cICyXkU4=^~^7D zIQca|J%+M(9gBzlPgzA=%gX5kVpVGsa1Ge8uuJTZ7yB84y-5kZ2=RCySn90xl8 zp%m-lXM*>gCQJ{XqPkLeBSHGJ)`=kEq!gm1VumsU3!2r#MM0tSvaag!U51riMdH8M zKtl_uN0Z#1R;_7;y%SL$O4DD1{fQB>w%y-;_WSm?as10D+bMnn0By?xOV(un2OGjn zjDF~=&mdMi#p2g)hBlVUIUE_P?H`gV@%S0E67dkSpK9S7oV0aN)OJ7S*WrQJ8ybZG zIY7q0yvL2k-nV5%%{@GE@o&yt*5=_I>sF)wt=X#XY81aTdmJal!knz0&W*-Nmk7a9 zbF&>78bYR})zaddPRB_v55$S2l9pvOFgIcfFd1K|^ttp;+)3JX( zuyDNx{=e)<3(7Ik)qe!8U&VvpkIeDS7AUV%{1HjQPidbY?>zjI?|8!SJ?|Q`toQ)0 zKiP~PhcFbdUH!l0>i_?MY0~~bn)^ENQnoIWmdV5l%s2gS%2Q@$FV*H>aVGhql#W4g z;PPp@PVMldxFr}3RB>TyXO^XJ#PL!bw~4M_6#0BTsc)z&aTzqz93Vp~MgE2C zWQb83x;fG9dEf&OwY{$}lxl=T=yF#5n>)9PY(&Jaj~gvPiaiK{k5m}6<9CGYHAl;z zz_w{VCnrKBa>I<=y-|5MLjm^^FM@tZp37hWnkTzdPUk%pT$eDhZm@H@o5vFo&K9he zTN0>}M6pvW$U@xQw^zeIyaE+JxV+H!nme-`Yk9KkCa**NSTAl0@+tOZWE{6l{ zKb0mOor&_eRhA?ldL>~~?LGeKi!<_X8#Y(Uf498^qpl-Gt=izpEuko1>4pmtl1+-h zenN$x+vlQ@+g=gDpZ%F5L0PDW@KZv9F8B19!Ruxf9~n`8O;Zm9bNnz$@$?K{^W>nK z#PZr5WMd2L5WTgfu{XZDygO)rbLrWuo_nBxoB1FhI$>%UOu%t(18icrPTp?+TNd&^ zU=sej=9t9;*c$9FHA0;B+&hI*Q#v3X7OrpPWZ$!D!H2(DlacsaE+9A}+C0gzBOUCp z3G-I-*X7i%IuFD;W>Q0^GGg7hBpH&U5(M$(8UJY6DAO*q5h&j9p7;rJK!`tJws=NmT&L&aca2**8WS%m5wm1ZwptN_=HEh%@*Z!b-*ObA!ceR7# zix%ZgW`O&Yv+#--kG=%+Opna?4^6d?i7b7hyyxO~{+!JqJ#42TpGKq}awfbJwB$?LAV1W{t5t1bXN+tM~&X2B}*kj>-wHWD^E3RbJHKsMKLnp zI9P4C++K9(NC4W^hEn4DR3v*EMW_;`Dq&4CkbhUmYg~nAsZBGmy7A8wKI8Ihxl|%< zQ#zGrM-V#U5F{H1QpN@$j49+)vXf5U1*5cp7q#|8Eer4%GTCuc0mm`D`($0(p2f&n zH7L0}u6Ls(oH9X2ZeujMSZ*#7s$M#tRNV%+vpMzHEj=A7v^TNuEKyl`x2FM45CH+L zAZX{_;I_ycP2$Ma>iAjg`8?Cr6~BCX&A()BZom4{M;&%F_;FphM{%r=Vjb!mwyoWUANe*t#0;Yn(GT^R>8zJD@uD_;6N)$${@fKF zZhw%=AL$5Zal@ywc?Q0pOX)@2PWQRB-SqGh^9a`GX9Rha-G?Tfqpdiar_H070$Rn~ z3nJ%42om?^JM-@L*nS=npRK;zlcmyLkv)Q6?4v@T)HfQQSFe|Y*G3UmC$(9k!L?A1m8Y0h6n_GlNK(spaL=r?JTHV^f=?G<>`rb#3#GA^m z^m|>xm+Mk=KR@5P_+*BTx^i?>Vs^R7iOBm#`$xdH(`>=w3ZP`7rU|vV@KzRmY+ioQ+0b)n{ zJljHz$f{}vN^`D<^XV5Uw%$oTQHu;_dhiI@(B%V=jv~k;$Iwsr^r(ErN5>$>I_Sm3 zjPlQ^20fm*`;yo;s^sd)eRA?V-#e6HaEa$d8A{Z*qH+e7vUTF~0-2FIOh08f80!8$=>oq_`csjM z-okGGJqaP$cse}YltNCV@C3g8dbZ%!qZO-OJA5%ES-wKN#1cwPLHC++1i=R`OOp>} zjImO(Tbt6-%Aj8*hl)y9GHePJ78Erf&Mq9~+xZRC7^R1iWGLvWg!uB;u`SI-gyc8p zbwW>+(^2@00aB|;B+yq7<12uC=r4*sDYd0dYJB?PWRzJH)!~3TZDot^Z|-?W(th@= zsfhfF(MLz!vl2^hE%gw&Ya%E8nIcJd0=lpzJ0NBFcM6A*cy9=%AzsSGFlNn&3Eb|O z-S4q*Fgks>65;|ace@xqr%DylK|A4bpiL4Ol4E(iM6%YBjO-j?rGMwWgE3eOo!SYO z6V$+Twz*e@WTOy1?xxqnw@xbp>DGVDk-z?j6&y3)RjE@v*#&Yvi|wt|*Nm1ewo(_C z5bU^TWKLzcGl!gIoAPbkK}}&%5rZSoj^EG-`8fskcz{nU>mYdFDH zyg5;FNT6NTN+hsPfsg*NRw8z&7$@FX>Vox}r(}03+N*3W6Uolbdw(vj+b@lrJP*G&mYuq=}6c<;Dvaa1CnAH!o^>4L9?*&rb)TBni-6q;^aeLNhM z>`L$70j@dWYU|Bab=E4tRoS+AO-&&zB_}jc$jQcS-UuK~q{?6dZ zzBF!dF4T7U6nuFcOYFsR9iu2oz&T)2U#~;B!dVf~&PB!>C0B#C7}6hwlRGArPVN@% z0cVpHE@XVwz!5EJ;VqJC?qpBrdrZBPS#!>*yug@l3zo46ll|>?8cbFgisv&-cqyY_ zny9h`73P#h{6#-RPmFYTt8$U@qo=%RxG&ZiQsR3KB|>YTM{ciEBpV^r%BJC_kEA~> zuHqy_4k!S4K z!SYFFe|ZqX2IhNu3fDpO4jv*;6V0+6-G$k<#aS?>?78RB_@}pcYdeLc7))rL70<%?22KUn-E8sx)Kqy4;$>)at! z$tk%6Lf|7LKKL6On`JiBf?RP9yLkGV)1CgMN6ghvYqQ$8*JO@Y! zO|gp|?mTdlxnVFe&U@9I_H~u)ATCp$2&JFjorNy!K9R!Y+x>#Uf}fI}{W=3>MFd8= z#;Qy=Ut2aIz#vlIl&O)Dd)_>g&lp)1z!v4jc3c%`ZBr$gnVpFSXnFU7D3@EFH|9kP znl5sxn(f+0ji0oVEm*O-UJ2upwOsZ}s5$OXti6$q{EQ%Cp9L((JMTL=^m|{~!F>Rp zI_+9NfdIcXfrNL$%JW^abc`ClIC-NAB^9lm#Xt(e7OG*zOpMNifFD23o`6Yy=a0F= zFP_f(NH!~wJg|rIo*A3nT-Odd{6z=rpze|p3uV!}c(wkRtA z#jeB7*a)kJ3LK6fxa%m7mr8#wM<+tKzKvDRWFY<7{bzXh50E(WCC_z^2f++a1RG?F zbY)-Gsj~;^G^;ObPH>(t-~F3IbhoF7dG*k>19I1i^0L>Lc!+!#1Qp;{%V{9F-=4gT zJapdk@>g4~|HRu!AH+h7Db>D4t@bi2jHAKGeW?_It?u|c?X*1G+#=6@^ukG-n|qft&|Sib>|h-IVw^M}FO?(oDwL7vLViP!ab zwMBvbp0`4KBeC0TUr1MMgf4u)-Mnwf&F5Bh8u9`s_ZyI8m6gnTV0N)dA3>i9gm z=d?#m7&jS%7PoM6Ap-kyZZ&|H_^r)9$@=$^^#8m0pU^7+U$tZtU)uB*41@2yR`$Ss zNh{l5q>59^Ib__Lq_S2v$@448&=(4iOUfmWHMYAiTUI_YW;;NVbAeuSl4rG#t~|SW zzcaMO&(1`WXU}r@Ee~zL{X94)Sw^d1fABCeA$JG*r0_g*^)!A4Z5&&G6lhr0)Y|nO#bsoMisXdW z$#wVOvGk`Hq-88pT zjxx>z(0^Y5SvMzqL{3E5k&z4l()g)Q{|A^yzcFZA(tlqDB}(6HLr+>6SCtmr*$$~pjWbRB))dP33MqGv&(7Q*48NZx{zNjcg{`hF!^WrDfD zqRe5E7^zA)-(7Ph6pzC}Y|Fbz3MST>xCxJ8*unI3>oxj0jxU|8tCZYw7PFqwD-oU43`@SKusKzj9%*T4^~|dn?Gc&+V41@iaRSINB` zy8lzdkc~Q7AG$74t;=D~mx-+w>9ylQ&1cuQ!_9Ux-R)T;QgUJy=|%-Y<378gcQ^C`_(fNRc} z*l6H;g04NaEoIYw({%6JGMQD@s<>HSj&2~IlIMnf?yIZ>iJA!y5VmZyz`Ig|kXhek zU)qdugBWjsvYntz_MGOB3P@x;S>7%d{9A)9&9A9izI#37uSwvDkb)Z-h!VDQWRKQT zuO8!az%*Y>v@m}(V*Qtz)Ao&$EwZN4YQm%tOh!yO4ooK~klQnJWf&Y7x6iQSxJD@M zdK?*l3Wc(7)yasyu;_L;n;H<7W4f4}oYYrgiC46Dapb=bmf8sDOAb8?BQwtUp)V*& z38i`piD4#J`J@rpS*ZswKka;EQ{XcoOok~8q9Az{E2^^gmYz?lt8=v*z0WXA(lLM&{&KJ+kgpN9r<&=v)_t$Nv16FETP-EKF82|g)Q)+>USr(t zc}QdHkR!w;&@Is3GLJlTs7h-k-!AT#mG=CE0;hpbIsk(G7NChoHi zLanpI_&5Ur%O+T78WBtjmQj=FW&{cDb0sf!k7dUB@KGfiYH>q z_>W&JgyI#GEjWqSM84{78%omGCy7#852xk%HH}ER8M~OrNxWsR=@)^-Z%9PQJK1 zyV*$>rf|BKQUCP*P`akxTP)IfFdLqd3(65JE63ABaU#c`hXW0-Qlk>zpqM+Iq$(lT z=XIF_kaOT{)#1Sy53czf#u=rd?4feFfKqPf3$7{;lZ#z`vah^6)CT<=-@iU#JH`HC z{oBDV!oSIbEycdg&tg zAoT_8mSDg5;c1zADYAUoOCX@U6zp0lA?rR^#T++R+veNN%VU*Zgym+q7=I)L+TQV@O|ch<{jC~@GJo%p-FVcNOSf}kZkms8 zH)CR55K^JA3lo03vn=1p7*B_D?T}w*fYKvz2#8>%5Z?UwoF(sn(DnbMIez8<=3j4* zhQI*4{0*vJswu4}K%$e`ZGeC~r&D$kx@FwwdJ%MP;c)*l?^j zbKe^&QdS}eurG_5jY)L1$H%weKS#E!lgQLz`BG#ZXPSow$PH}_c=CSg>6 z<>#{G?>=nTufwyyP$M=5>wXyWK+k5eCeD&+OAlQLKEq2mU}L<7OSnZ_AobaY`b3kM z5grGOQAzotg#n_LL%Td`gFA)zS6*bs-+7VVS6<{o+x$CxIyCTnR_lm#hr9E;rF$#Y zgu5kR@MKN-@h6)q!ZN-$bwG~5;6|qWit>D!eJ%6nlR-YtXYUBsE$i2oEKPDh6NO3h zFWxV)9JXF3b6%8^Y+hW;ev?7GDMv*Z%3xWX`CK|L2Jl7vaF@4xtL@WPi9m-|L~{F= z@63xqJW7)c-GasXIdToDTbO8b+6azj!GM>qAk@Zo0tl)O$N=|vgL-`7`S8W=T^_>2 zokD_N>jB=ZM^6~>Y~hPQ8G561Ckd{Ll~d4Fe7(|jT`kV zfxDK|J2q17mjTn*9y?#TP6adNOed!*5W~lQbFure~;@(m;3@@VO+u=!LgK|8VQehV? zqg4B&Vat6lT*hfhaPXSu`raKj=_$(qA^9cVr8Yh+t++$SZfNg=&pRHTLby5Ftn+jmEjTyt!U4N+GPYE!d|7smHK1QZrp>}|Iql@%CQ%ujPZGf?+|8Ew}v z3ca3bQF;${OnF|o2XkVh)+xSF`RTyd@l9@kB73LIhuBmSeLBuqL{%Qu^3WX+kC&p- zSTsNxkduNDy1kURwnLb~9v~JmSU~&ckzucT%K+&b-x6rMTZ~?#*`!d^jte)!YI5%@ zfGa?9*M=lY%(y@_t9-*Zoce__;_LU0W;RS{Uo(E9WBj_4W^cr%jbsC=1K2!1TwP8{ zmxS|jmYOgm=yu0r*=j}Mq24OJ2M*jp$KAZ6iuMlpGHqDeKSg#%>RCAtlY^>9v|3TU zd-hmQi77Y8xa0#n7?lOS~eq_yjwd zv9Aa%AQ#o(SjF!O6OzjclaJK!3X`mQYvvci1(GGk7BN*Pk4{p7%rvI*R32Hm%GQv*af%31w9Wu$@})2a z@5*ceOuW?LKb7Y=TUIt7TR7&(YM*V&K;l%Z4*lLHfBh5%5HvcM0CDv6U*f|aMu^+ zvW)1QNT${4PRYcZq&W|2jq{A3Z6#KAp7Hs zALPiLjQf8G!7vBClAM$&93Md*i3w;D4Z>2rj`zu%JIKqWqUeV!ls%QOozX&Ojh{Uc z>zQQM3oc^Yt<8S*2Xmyl$%cH`>)Z7u%n@r)sRc zVD$O~nm^I|k@3`e3_W|`IHr+kLVk=?Mqeys$3yqK^7n2AdMW%^Alk39)^NM}q-y5~ zcou!1He>*}chq(?0u*p!B@u_ifX8sifr?$Yfz`Rg_^y3v8b7Jm6E*J3n1RAI^!tL; z5We}V`L1JiQzb5Aa2Z@bO$i){5?A_ptbjt9BRj!@4+jFXpUpe0ROP-hS{l@g^ZtoB zqDdaIuE{Q|Y$V@(@>;(Tzjb*7rn=r%K^?A9&Y}8hofRdgpd?gGT*%hHr4)p-l43xe>1^G@@HO4hfcg{ztTFzI=;J{j zfzIk@8K+M%KI^iE$4&~hh!)f+l!+o3yK}04;rqm`KZ@qhul%jBv6HW2vONYfLYi~S z=8Hlyp|(NfSN|1^*pFl>rj$-uM4)jD_Qfw zOS`81vNr`d#E8trCO?Cc^f^ENn0oCN(f)8O$+TLcWSUWWu`+FyIoQ`BdhBhJ9+B)0n&-x zZDEs*sVT4;bw_Gs_Q|Vy=9`?>Z0wX|nzkbuPxlFG;eAcAkKOZqdf@(^RbO5^Mr7G8 zc-qqvlO74*gv(H27oD(N_mfTI;gku!@v3p4*`e`4ycn@Tb<=KEbh-o-6K#wq;LF$3 z`W@R$bi>j7_Y$Ydn=ck3q;dU_1W(^O%QZ1ML~%R|EOFZCTua6)d{QRQjxViKDVwNd zkq-yTPDL{vo*ZpF>s%mtV`|;XXO+wHb{ycBtt1)b0m10%aa5KlWZ*_OfD{7bL z@C8E350bu$CiygC=?>`<7*UtCS$)pf43jBPayq*(+S*Dt@7S#pfB9#Nv_7EJJVyo5vL2$JSdUX%Sa~)da`$=QROO3H+S05S9M%MGlpP2;Z|&8% z2+eaFo-J9NFLlJ3ZWwKyeYG7jPloNN8?+Dzb*`e6tIeyTC&yG}n`)Q8@1n-YS|J2X z`;h~=?5zJ-Q+5UpHl{jPtyHCtc)5&QOjIYo&o6#JEzFWCP_??xg;BUZk}{a^4tw3C z|IAs{R4YojEFX`Yyvg4TH;bk-W2tI<=9EKLm2=6`a5z4X1Ir=%oH$fJSIEccM;`e~j_CXAVJ4M2$}c zaTZG(y~{2!G$2+cCUd$?$hEXJ_A4`Y*+lk2h*Md*6^Uo^Gy~|v*Xj1A!u)1!Ihn+r z2aAhrPi+hBZHu_IMHwlWAu%Q2!W$I?Ulbg;k-Rh=+-QvD_itKwScs_(mFVSG=1+|4 zFin9F}iVi+!0*S^7_`ijC;U!P_);aF#|7^2n z3Weok{3U5rlpx-@ke@f>+ml}|t+Xsbh`k5grR7)!p{_8Jhurh#71q-ef%q&_)F#zh z5?Q`=nsn5c08e$%`|%=Hooj0po%8Embg`?cMLaxLv}9RKR9Sg)-wSKvM+A9 zgKqX!cOwl`&N<#+towtlN%xyDyL>3H&@YkXgFcl}k5GB{5Q)TMZU-tSKv;B5I~mq6 zReC}Q#3+{GTr>WZ4oOU@SnK0^rI2rWroc#vsX+e0(D36xLUojcn)$`40tYaycG9h4 z%KN0}q3xNI+JiSVQC~`9^bhDZ1)p{eUe87HPgi)j>tJ+NnMnmn$6A{FK>MR<>1Ijhk%i(=XeH2BlR&# zGZwqV=)89PYtqgS%7ZntezFc$>72th+$hb4%YFo44lBIJ=8|r5?^+1Zs_bF?6YObHSCaBn<1|9Bsr2TCHkMOO97U^tGRDo=4zRs^4 z$p&9P^gZ=@pvig!S39SZg`>94owkhhP}d4b$ch6uG|Oo};e#jVD8No-JUk1av3Pr*F2P@$biy zKS8;kEaCNJ$z1WqVsox<|S-kh2g2K%ascEdhOTu%iNW#!Z>X#Y^CP{h6N=Y&k4BK2kDSOWLTKx(O;Rl>ZqvRG)xGHl!}5NAt(aUQW66wA`Q|F z(lK;Oqo61q64FSCFm$K1bPpW@5;HJJ!@$6f`%`At?LB+;>^b~1dgtEzec$`M@jUN4 z0b%P%Pebvh2NV$Yt_7yd8qHE%Fpa z;j@v%RG$M++lB~e5!?EmUk^a{1qFm0KC8WoqI;3G)fEdcr%iXbIBoCss)4$b$eWu! zJHz)CRiMZ>r63Qg3P%p!V%t1GUgKHn1G>?C!mn7LKdL|dFI>i=`Uc)$EZ zP&<1+5opHk_RCYaI$|q)@K*Oahu2bjpvWXX7l*L%#xjhcpYUqz_iaf#k-Zds5l=<_ z`R-~4Zn>%>-2|>1pI%IOxPK&#`IKGMc2)T*UU%4L^-=Tp8;L+o=@$*86`Y|@sb6XO z#v2J5G6qgKoo-HzUfP77eb;0Xvnz?7x-^g>3$@4EEy=4nPW&DT$4Sv48#Xw)d1k}K z;k$c8a-Aay-d6jSwsml->DA;}eE#a@pE#GP7dv1Ig2(iC!HN;aE&P39RNb%t6+z zD;fMQy5E+kIfmTl-YPd{VQl0*;`j_Xo1l96HqXPpzT7D`uhLCu%{?&;XU&R2Tc9u7 zx3%3D_m8um4?=mrO`$YJ#URgw{*p=EOFcQ2-JU6>)521k+|3K7pViD|_Mj;k5vIvG zDHBgGmh$mbF&5VvY*)uK5NPr*^mWCRCY328$b$W*W=*tRPFjQ2J!R8v%!ovSj39BM zQDH{B%hQJJd~)`OW&Ro(J`4{q}nIqpGW z-?o}rAXCnj{9!54$&ySCbMwVF?`2$B-!Pn_aEle-grDF2Y8fYT#(JQDN!CjUa}lB@wqZ6+_?uX zs0$x?le^RKoDtEyX0ubuSB}A5A5E<{S7yfnedg3>WU0wh0P&h{xVr;5PCQl2#pDnf zJDbbp*|09ucDcSk%eeM?Y8NVLJ8s~|oy`W$fiQCtr$LcjYwvh1 zz&gm~!I4*Qmi$*7jZe_0;{Bh#4ZsOFsI`a5fG=qpYob^jN~>Q-4$N`6%$mEEG`{e* zknNvLU@YjNl5n4&p`UZ&p3%~sTp*pSIq{meEWBHGYLnYH_~=Rf(3!TBe~Y^B zU4i!Wov9gq_=$48a;wO0Ww{wOpL!xGt|Fy$SbAqzBnN@s0eUzK-|;nfdY^SieoYHlttGmzWdMCryEI}LsxdhS$Wo3TSxNki@*4H z`P$J}BNu0*F*Y)o3L=gM?^ZfnWxO1R~ zbd>Z4lSN)wJ(%`NKP1>0;qK4-)D~iEl7hHh;jcmV>nF<2111ThSWXTw-@C@?;9^+5 z1pjdRZR=vfDl6xb5x#^$GcWoxokN8?U6TXv7P#N^2l)YXppv=9hKn6!{rTzY5w)HY zwNkMwW+YC0=_dEwv9n1Seeyu0+v;a|&*+F40HBIE=Bb^#YRh{hAjYOfJA z@n`{M%?s+0yb#XW+x8>%p+M?Es%g9|b?c&xplj^&)s>9g+a zCBc>sEk8RC7N_UI6%c~q9ShU-*2>J z1Zu{FRclI4X}@O^^jVOQ)sBG+l)irbUHg(%X<)Sltw)7O&vhut%C}LD3I-*PK=J|2 z@ACtbJ7M3NuTALt(dZ7%V7=B}dRk5hv{_p(ACqHJ@GknMm8ktWDmh8-gm9yq<2xTX zXu}Z4;s8=GwCx+qV@Hy@Saj}nh0i0g2L`5~sG%{UzMq8>Yj^2lA}e+Qy|h^kUa_6= zrL0_#p_Xb80~>g-LftHo8dOV^_3=G#S!Rtq@lRZ{klE(Gsw0Bk(YqryCOHy8P+99= z{*1vt%nm5;50u{Ptpl+o&wMm%9=T%U0L~^WGGR0)7i|f_NFIBdoIToSCq-$q7$&j= zK6^H9|Iz>KmqqW$o?CPSjs>uzgJ5)}lv~s+Vjq&{^AQb=-n#uFgz+ZSthW@V_q9AuUh zeG9mJVRg`u&quJZWs#6)fk^uHDxs^S_J(00&dRfC*ov1CyK28pY3s!_hdCpNt<%KWz^`5Jimgb2zJ;>Z z?8;0JEUZknt{e7kiuc!3FORFkt(}Mxr^zNGScfxTU6`Kibj;|n$c=eZ=V$xD+}0|| z!f=*z8F@sQS>{%~5_%f~U_c)J}|M!V%NMh!J{4{aB!ZQU^G` z`?1z^eY5}8Pi%6YW3xX7!`sWtvDQNl*@kJ|4X$KiMzat+)7Wth=Um=i$jW3-k0HAh=YeayF-!T3V%=f-LH<&m zbBSX&J=w*9JwpX~F5ONttX&ArS6z<7)}6dL?RByUnv;6%{q-ko9#&#u>J|RkUIuujj?ktq3wrMLnB5>-*VGw3{=3EP zYnEmZRC3JD^z4&EOgQzgYwn}h=+~>9yqq^C%b}I9CAeR~)&iuovH<$!<+8)H12HAf zua}5H)s$ygyAx|0(Tj}S9gLOzj&Z75$SFxToa#dJ8-n)wIsy|p7RQLYcC_- z`a!p_WmG31K`5xz9<$|o2=2uvD;^KzJf*p&KTV{2l({-bO@InW%SaY&6eJ@^Cn<)P zZr`MGbpe>b0UwEN@s0<=h2uGKb}%d-_A)zih8N8<-CZNUQpPTzq_>~AQL%Qq?{b@U zIwj%j+N_b!&r<2y`M!9PrS;neI@c{M@l?7dr7T%AEd*pCqote*^VQ^~C~d)wr9<@s zY6YRCIjd-F|pm63@!|H@U%6zJHfI*CvJ@#R2H z%G-EDK?%dL_(uCo*>5EXDS9URa>@C6lTX|@OY4ju`s(87g#Iko@NWH9`d6~1nsWV7 z`d9KGOMlBB33E)=y8z1kkvI_SW*s9dbto9DT0s^82Sry@P#>mjy(ow!OVH4lt1P;6 z`$-VJ#eS^o*F33zHaMY9g5Q>v80!%IT;*Jae{hF zQ4b|aFyiScE{Ix zx7)R0{O&+&BCfk7lWTbr)!wdk_}O5QAdeXL(Sz!V7nfDcZX~A5^5E(&+}F*4wm2K;M1Pbt=iqd~_&Z$)0e7 zlR!*d=0%oj@ME@~Dv_rqkn8;lS29zeqsi@FfoZ%p#oW1C`s6a00yD(UdxOnZOuF82*&MV)Fq@vVjIep22n5g_7pyC$Iwl&01PM;4BEVka0|2|d|rx_=kE z^!)?(J7r!menm=2g|Xs1a_r19BU(!1oEY0m5=4Z5dbbQ^ZAz*B@QG4BL#PtlbjLd* zTYbTC*52C*rX#?;v)xbB2VHJe&wkE$ygpxWIHI**(_JJ4MH+og2(XF6)Cf@Kq;!IM zs9%aPeYgUKNM2-vRk;-=Fx7vwUWfsQc%)ez3wy%`E`nrQR8{pdCqZIEI=heTo0Worh z9pg|z?}t2u7$o0JYHGjSPDC9Y$lX8UO1P+H7XEo8H$Es_I(YN7N?d{XsUoEz@8{>Y zDgEslN%F1)TXtI}bg109ve=ILB{16VR+NjQ>&YOHy zsri$YT2DlAargskUnzj8uxWtdZP{KGOSNV)BxoN;sq%qSuD*K5^VIAUU9IQor5Q%9 z1kTL#cID~Vn+aD3J}|d_@UIV~o=ADYb2sdDx6?Ih z{RXlRhY;HV@EiZ(*=X|zH8i4P&l&OEy^X9m!b=2XB=z4^1%#{JM?$UE$4!& zddUgi>xbq#7CHhlKo%sMr_{k_>`aVraAKO410)_fYdc+Y%H+EANw&bd=Nmo$2f#F8 z3xjK%?Ik;2vY(KB`4?Q{+UyFWqC!Xb*o{bAH=4P-^&h0hk!0WK_~Z3lCetKkdFH_U zz4RW7=8>EUdSNLmODRd&oXf$)`!ud5oed$RzEa6|JB74cnRJ{JEs}8DD1b zf~&ZRDLSCVlq-#d9+)cE5O6J!ez>{8ml4-%Tj^pc7PONmFwp9gRdT&!L>;LPm#{jA zX|4B-l;FCM`|-Gi9jsR&F>$9Q-tjX${DoRAW<22*u_LmG_A^DxH6^S+;{HQa0po{} zOq*7GI=gZm$#`>DfQ?@3$(m*lgtOKY(v&vBZyhLUsZ(L50BPGXo&AOCMU);ZK zvGq#D+Fgs#QQ@?=8N2lS!X*iBi@CWaBd78hp6jXQn3+j-6)fbbEZeF)u5@I9S?Xk0 z7~d!)xm#EQsqB1IGp)XCHM^F~1dma%y*hQ!ac#K~ih4%H2b;a4=jm`S*JV5xIY__Sk4SjkR7gH6DMP|dUcR@i#n(3GC9!}o z0RnOF`7Gv76)X}FyCR7DY*Y9@oiyTX2&GY56RWPQtUQ<7a5k1E1_|x9?niVXduZ@TcQho_E-iU%?p|1o*4Mdoj+5xOi!kG>#o89?rom2 z0nOceHXBzk|FAe8l*MUa?QS8NRXEomkd%xayMU8`C+Tjk0hwXc6BRhubh4LZ$peTj zrrd$YK8UT2C75&6!^1M00iK_1q%3L`o|yuA?Ol3GCC8p;9si)mgSJ+vwYK_dr~$sN zqGyy(*q&tMn(bK#&SAi}*pL-Xei>gpOG#tDC@blLFx>vHS>`^jc`D8JR~40do^G_< z<*&~!2J4Z89))V8Q}1BT4U6!oNAhPA5)(Vwmrx>lO~kPat6V-}KOs+MKbBZ@lS_hS z$@UPkPj<%XiH@!RTHh(kBnvU>?fN?J&+A63hW9SL>;CeHi{P2LoJ^bj^|jQtW?JK) zLWDG0U7+g|krtWyRb)O-Ax_U@&E+7+2}fUg`&ERP&mY=BRUkwozLDAfv{=`)|u^|6T#L z?l06KIVKnuRxno+ZHy|A&c6IJQBI&Xc?T)8nfRN2ez=CS+PbGBa0#V$1fM&10Kq^y zMO=W-^q0z(f(PialBK3N+J4tHG#aJ7! zqo+=hYS=5fnM;lA-%f6|{ra|d*1EWKIIxLv(A1#n^W=Zm3xB{oXJ#=Cx|}H} z^ajIw5KUP^SIsp2Yydw%z`r5=>M`6I2F$EW=E%1X^bP&KdI(OYLhb7D!`}!*JghP% zZrp8dq<**5x3#C>4|^c^8CKK`WM37OLSol9C0qp z9gT!y(u7Ic>r$bKOno@#c7_z&d}Y_w{Zi^)30yN1O*H3@4iwjn9Rx^+i-12gd{*A#M1!H5S&c=~vj6C)x%Ri=p_! zO+OI;Gt5$?+sKibGj*1I)4lKI-mQn;9!=F|TleRaUZUae21>B~F)4`eA)^SB!oN5W z=NG3heELk-e6fAc+@LP{rVRMf07w0EM13Bk3l(yWLLA>>dpEkY^woVfcPfVf-EJPdNAM1n;~;5FI2aGm+^ZvCui;MxxM|s)gWB-Ob7uD`rpLnm z3Ow#ohnv{gF2xiZ_P$&L|55uE_1QA}!fI^?ZJh&R(QWblO}CVKuFGls@mS}#`b*k&X9r2!jv-o~ zeTXcIDkW#fChqG94Db6w#?N}Nz4Zm2dO1nz`R2|ycKLUf4~TsO2J#b8Zy|%;P_UWkRD$-CWljqJ z3vd@)ST&Hkg&xL5&fiINpH$TN8wL7fhNAwn#~^)(Pqh;={TM6{%UBc=KwT90PiRTO z+mS=`n@c=6|6+elJ4=a&wSuB!*|UgS?HRYk3<&c@4J6%B&Ug+bmmd?a4o5GfESKi< z#bNENZEUBku=4WXf$+$A+wCqOk1?Gzt$K^%{9#n6NMMJY$H?vM$XKz@m%@LAVIy7B zz$jR{hqU~^-7wN0hs;za0mL=d3h*71QzWm|;`fglY{H)x_+$<6Kb{j|^YJTsp50N= z?dNa5QssGp2fcd)l`o`W?Y3_8@7WQOQMjngn>$)p5{~n`g@xD9(yot~`}ke{8}ZEJ z0j3~8&lqCZ_r7$P^}&Iq7SfF0(%xEEQEo>T@!05ZIQ!)4`f)=gMg%Q1PsRHix3*ML7 zCJqz|vHU~Yy8Vu^|EhNey%Ff|j26p~d9!+tPjwuFhV;iD+2?2YObZ2&1BP zx$6AV+~NEV)1qh@vti?OwTqX@70SOb?tg-|`a4*=cE=-bT_Ub4$6SOhoP@QP_X!$z zp*LO|{_!{7w0`}Q!?UJ?LznoTF z?z#w_{UJ!WdCg1aJujg}KsrWLaX3QiH}R>pzF*(G$*_u%?2j92IDYi|+kC6TA86bM zHtutrwlyA(8X(ki!q%MU7?P4_MFf2AJ9#-CvvzpC-jI2~cE8V7Ql-s-|0ydnS<^A5 zJq!Yl6#(EaamTsMZ;!U+2t#Gz%@p62(f` zM8jqx?H*21F2{-!g z+pP({f48<0Mn7SXIX1f+R(Sk9w1Jn_%zv=@w1LETkJK(`ZBjO9FQ2c;yqd-Y+1%cLxSoOd+{MBrje-(K&o)vfC!hGs#g4J4V;XZnd``&waB1sqC$(JX3a^}f~zLIBq z-X2BI$HwJZqg@Pm6Y9)Es{E`lojh1kyJ-Be-#$_adF(Xz)Q>MKP2eOI6M&%ily~Y8 z>!8Xhk2MM9RkCe9{E$%BlWpyqmx#|Dc#Di>UbX;FXEK1X;Sn?!uW`lujX0B}LQ@vj z?m|X<1y0=bV}<%6OBVLb>xp$%CJ2Y?tomYm(ieZ(72#A~z2lD5;iR}djnoLQWkjavZ876gb(u#*#|=-}=5|*}^Agoa zj5dyWK+CKe(B`Q5as>e^8M8o6pa~1kj-;K}XE)vDHfI9a`$iX?f`s9Z*;FL*K;!(W=2JIt0Vqa!B=QFd{E3;&yvGoP5?Xdl*s%`VFVm zn^?P|GMav;l?~f1C3D+&jhieY-^WD10UK9*-Pe3+fdk2~T7g#{({~y2ucWaltpxml zHMrtVSbpTAp;BVOYLmmVfP78B*4IsrYpFL+10mrt9t$c03U+(S?CFVwJ3tkyG)SaH&4`sAWZ`a zlU!IOIVn#iOdLuRnsIXi6Z}z6oA0ej{n;DJ>o8{ThR;7=Xfc=pVAptDkQ{nSqXP&W zI~QJDa#e%reall`e}1Q03eWCN$o7j_)-KdzALe(nqCE6P?9(eS*zd*l-K7LJf;GMpD{w>d)-2-?wU zv~L&O1ZYo|WwBVVw?N(wjmmbi6q4(DUv2({o0fg6!X#uNjPU)|$gwep5T84X&GDHZ z^F@p~H9pQcwv|)yr4e3rKVf-=<3E)u@xzG%wU}>&Zg?vmlGh7Tcf9O7Ru_F_;m|Ru zqCDM7x(CSNZ-BAjHr_XH0^Yh&ZKs?@=@@0soLL+RFMSqdEj{;MX##8~H6?6}q>M-K zPBVU}Ga6H}E;ITr#t^X~VxFv;veb+g+T3S4T7pAuSk5lj1jgr{+TFF&h|6-~O6nsx ztRZP!EWVLh!{z%NR|m_qKWP zKQ5YFfn_ccaqu^~cV5T8sfWanQ)d=iXm@|-dk@2Io0hmJw+DskzK^7`MS4z&SDP$9 ziQu1u$I!D}qb~*nk?OrNN9?)cyVXMC-Rp)(PCb2Pa9nQCjkt;g4jpNw=vX7q19!aL zkG_9w)m0T4?;^|O*Y}5VSo1aC6c4Bz5~=lpt$L%j_~T^cHM1VEKlQy!UbOmb445y! z1HZ|to{KxA`90f*f^JkR^Vp2QRb(hqbxh=hNUaoKr%?b&sBb*+Jvbv$H)Y%mW*mG2(n3D(szunA8iAB}afOBIhs-I** z)-e0rX$A+Wry8lpp}u=fv2a$w88_0QVP5cA-8_qVj#jX3)@Y?@@SiA*IaQBQp}9P1DZ z)BDly)w{^+5!E+cgn`iU!Mc5c)9y4{p%W^7# z%=odfsSJaIug+W6SrV>Dn}2w6EG$uNxgnl7S0CeYyGNHqMTbk(c+-^j^$I;l24Qv+ zlq>j0ssQ9pToxq;f{R|Xm3ns(=^7n{PZ|3pDG_J$vK|Ym{0*<5;k&0{aN5y$(%E=c zn=@iQxYiK-MR8p7M{-_)vGEXM|7RngaMhM8!NGFocmO`QqyAD!MknLtE6riejb`R3 zwkv6s6PF9qn-(0*oXcQuJlqSy!ad}vd>WM!yUej={jJ%=j)m3njNA(-OW#juHK^il zjWQ=H>&a7jR$o6TV^h(XWzhZA+a@==$%6nXACa3FIM~UNry-|8L}S zPDG(&GxtEkAO5Oh(H>lko(k=FjFi?{f7CAH0a|;S_k2M4BX6Ue)!=k#UUU478RY3S z8?aY${S&J?I{bQOgP*h&IeN<;rtnrlV5BfM*cDNRigp$iP2zSlTbK)@q_n9EiyFcv+na&-2b#tyX zGxwU{5E^sn4VhRcX`BB*jd);ghsaW+QTjdoWyV?cChZpUYro5uOCvj4*$pIUVGFVJnBg(Efy>yo&HM~vP4|Vy zP}gyO-Wj>(Zw}&?nBBua*Hl0s%Jx(hW(0?PwKT1ZYp z-P+(C>B6rVD+|K9BzT%F^@_!%652?`AT#%jLFTuGyu_%-`QbXP`(_VXcf+goTx+{J z*o8=5F1i;TmyrCZjI^8;6km#vtSkimP_rJiK2iHS3;Xdg*z|8yph$Ke#g-;H{l7?3 z@2@b=-0<$gMUpr}1OsoOm5wMr6-NG-U2BB_i}UAQYu1laOPnd}Q;|J>)Ho<+Kse&J z!HS!){U!0|gB8!}W$fpxtwzgIUs92OAv5Cb6xx6ny zl2}jCNi2fDBC$LMk~ZJ=9Vn#=WGGG`XCavWwhn_wmX-+LnSVIAXuzy`4AHpMwk0hb zZaiiBx#@f16&h;f7Gk5eP!z=!eZ&Ab9Pfzvk!6HvzX)S|WLJr#cHP1X-6)+q2D$E| z7$5{48k=2~n#|>u;M6-|3H}gVmZ@z%Dj@17{=hKU^mBT(69F2p(tv7^zJUqvxwj3O zpa4o8hj4D@Z52o(JirByFIxu{a)m( z7{=dMue2Wid3M^|I{(_rsq4yU{qQuVclvLF6pC=_`@>sXZAUZ_^@A=nai?)yyg2Z; z?(M`NMoXJ|tx^zg#%3_j;oUWXAG8+oko$B^>Qi#PI&YZjT7~LSydD_z|r@Y!T z3UnF@om)P>1#rLZ7914F+cjXW(pEXYA_*Q2Wszi~aI% zlA<%ENN5PXTfEMgQ(eBedqJSBzB(srefJ@ovT=OmPi%rUK1cJm`=I9 z*e+B5hnn%Xrysq4{5bE^zHNu-cbBo8SpaWG!ffgZ$62)e8cw%rD^u#--<<$A>)lV3 zZOJM{#`9W`!WMwJZEV(M(Sw1kad!bJMr7WtM2-~k$MZagO)($^uOs?&vb0U%#6U{v zp~?bUy;@gign9wixhNp>yAN2ewxH=6e6MB?HT|sLiM9L1HUQTK6F!M&r~ZCSG=)^( zeeEb;H*UX)+zCj>M6zC={*VM`HGIywS&8e>GI$U8He)fp0kxC4e`CV*RK`#^Dubk5 zku3XR#SgIz**>{66)P?e+nZw*b93EM&yg{&uTosi+w>MGZ*a`fh!9V2*jev|rL5`? z!uD1Nst7PWc#b1Zi7j@`&#k=&C2p(wrBorRPqUgIK7kBlV8W?}MX_rxdzCIs&!tZj z3}kqINRD7wRD&KyQu5Y!O|y(do_VRaXz)v7pYP1W-$q5VTv^b%-i8ck%J>6rcHgE_HLiXS!KlBQk05<@`;qOwA4mNSl4*;J z18o~a-oQ@e>@RSp@G^~JKF;~=@1yJLf^#Rrcdspj?FfmNR<>yRN7oAwnHm|0I z8O7WbzkUhtyP-Kv3gBuBz|dP-G55fImP5bL*SP38ljPWB$DHTR;i8s9%H=c-e)(|5 zdKYSxOJN6~#K-G@4B6{iz^1nW1Cql2*ymSqp?BuHXaT&j|HRyNM>QEFaf*tFfC!2- zqoSaK6p>zn=Lt#`QF?EYUP6%)f}kKEAfWVKrG(x>i!=f0-2kBzI!Fx!l3Y;lz$@?W z-n+YZJpO|3+ufO+Z+6OWX7`x>@=x*K{@DryzI4P5vh^Q{=FI;HS@Z9y&*Pbge`MwW z?489k>$_+5=7)6v7~vA=_D z9Ef!(2-7`o%U0u)!yB8e)`Uze=g5i`%?H<$htF?K9kcdy%zw}JOTrPa;GAt;nOvMN zX2fqbmFb;2qWj}f9-Q@b_v0tdFRn|6^s0yWtQP&F=RT8dX+U{q=7=%iPZ;I#7Dq^# z?y)Bat{ul|Cgg&Tia1__ztU^E3rij!D?qjbwQ z>~f=!=J5sJII1)tb5sj#UIf#FB3m`nezkUqYdXH<-rww#jrFKW$&NZA_$Z_Y#Qod+ zM_`}>s_qoT3f%a+$o!k*Lrwj4Ztd9q&&B;Or1!rHXPa;93LF~W-YRvGgy5#(wWP%J z_n?ktab%=J8$PKA-?S24?i-TYHL^LPujU^bAW~Dy&Pw8<9iiUEec{u2doR18KBhW` zWfzmc&Gj_g(&L91i&TuwjrgNR{$9tyHCJy(mYhJ}1$TQ6KJJ3wCwh0C5oC_}bmJoU zT@>rEq)W)S_#J7))Pzj1&plhG9p-m=!hF@si5h>gT|ZH!Uyp-ncRfKoHOY%& zbjEH;FhGm5wK+^KRCEW53%xw$2x9;|JrY!}8^@J~lq8dX+s8v#+uD{e`#5)kKk;?W z%iTT5Cnxm?XXnKM2-kaiQRaW&{4_i9qu365ZAcxENLtK^IQu2%P9C=0#^{-MUQK-O#MScpT;Bd)#Qf7#+fy zkgd|dF0vZ^Q7o=;yjH8Fq6S@s{a7zlOt!Tx(G=+Vd7S~U%&;g90OViQ;F8Atp{zMN zi9lDcbMh}_a2!8}IoIqjqsFY5$w~lY{2W0Ac1-F4dcC^Hpi~A;e*^%*6kun#E!oo- zGBNKo8QR2v3;Jd_!2Bh!T}`4i)p#p6q$g;kJWpSql}*{Q|LAihAqLmkS1&^ghM;}c zoe}mFE&!t4yp82N5lPj(I_BcB)-fFdx(|<CLM;9i2IBf< zSJA@(Rb4f63$&1X>Z>e28gjtbSA~J`E76SLg9O*fXwUY}yh@Y34cQHjae}~@(PZoJ z%+1O+Prt~%^E7U)D=Tlv?GiQc5%;z;PW@zB?LW6c%-mj6N04H|(~zi_tMu^Odb=$_ zw2+ehMSQ&gz6^?a13E>y#FTBNjM$eHmf8ws)b9*pnPSnB7cU@zos6TnfG3GtbN7ps zD`#PCO23$d*{j!-=cJ=S-{Ge6PA!$(PKfPF2a4R_g>Gf&xrxd`A4s{CuM5x6|LCo8 z3FZ+$2z?`#LwH+r5E|Qq$pR%n4HuPlxL?k>@AkwpJ9i{T4yyFGU9x#*%sIsG!m~l> zVQP=k6Ui~1v#{RQLqYCW)vSmKL*$teS)@N1eD=t;;g|_c16uDqgGKU%U&l)kN!*eIJiUye@lD^pVwI?*SL`DMC+1>-%eFk<4>-uQXkX zgr=oVch{{3r*s(ViQFlpOR}EDWp^O14z%%ErqWZw=uSbswJ19Tp0f6I=0^}sx8~R@ zBNJ-_qwsmgC(8<2#kq;5{v<2Hp|g2sP+K|H7b&f!rD+FRZ-Ndn{-w0k&= z5SZ@evlt%6rtYSDITAd_@74unCLk5Q$i+0tExC&Nx^->Fel;}zB)RBlhT=ZmJ@*c! zdp?qgPim(E1^cs=&BFu6S5_w#p%xneYWcV|xaMfsClj8aJAvtq)CVP91v$@HvhD3*$ zH2Q;iFTxsAj#C6Ah0gdcdd_(;8s0ineb6&ET~?8K%BU~kUjK)vr?}YFNoxDjf@@(? zy<*=6x#`QdTZJNe`o#8El_gc3^xYZ!9a3Wmj*wQRysK>wki%7yRlepPi#bbI1ONDD zOc+6Hwiu@2!O$QsBm9A(x$8{}^)+1wu@s~Htzk`11}b3-I@KzZLAE#h8G#<#ug}D< zQ}bpw{(-czA(NK?i2|Ce4a|@Rhy-w$R}PMU%9iJLDnWZJtrJUaJ13aYX}#NX_66pW zn*91V5uNdYolx|{$Sjq)tuJ7}id#^IhI{2uLheIuPx(c)s&#$yU&qW*yh-$2QuyNX zIkK%;_Q&Mx$(aO9XV*Lxp${;;LC0Ep##qxtQ2nW%??v6*>3i0K%k2nB+tXZ_hh8?U z^6*Ik*{jSff;x+p@j8DLJ1B@yx>w~}+Mg+UaGax|8;X-nqL=*o(|$ZQ(w-5NY=2+s%d5f}q2lQ{}c_nVI58w9VgHMx;iN~Ne2 zyiWrSN!Vk}9?1?@|3Lv9FG&yW){>7mL09zBd@9ujY5B(4e6d;V2`y8`2#q`~Zq@Gf zwj}=*GzvRz8sq{QH#V=4y7AQ?BK1PkUint8*9+7(m8t@`ALJ66G6T}|-)-EvZR%RT zu_|Zqm9Q#a&ePvx6M?BSb>*K4@h!NUJd~^Mie^aJHYv=n;DT34mYtI|3r^7=u@G2- zR@QoQ3L9Gh(1Uz!FXt>_7R~@~Cr&Q@(1{=|$=sxUMjVUvhx|`Qud4_6)s-~jS35$C zJW~gYCf*3RGq_sEZ-=}eY(wPO;BQB1c;JSsbBYtqxQE{BiNvG7VXdVRw}Bf*_CR-t zx)tji?Hv0JD)9Dozg^Iok57T4iQs%oYY97iJRJxA29_oxnbx9!hxFq?@3t_4Ao0$>!AOnI? zqKsFiUASBq*}JrTcNqK_lHAS4!#H?Ef698`5u|YP1QAObTA|b01t!~i`I-o#_A}A8 zwu~s7djBy-i8-o2M5dEF;Ed#}pOm}B7-rq8dl#>=(iTs7T!GI%Bwd6uKWh3AuM`aP9nR7>U*{R$$5V@{#2 z(F!vDRDn`0f7=zMq+$;q8Jl@&^p+%ly)O~qT2xaeD6eW?pkPdC4!076A=0*oP*i)y zoEAw@s&5DR?`Ulk0|8xaIe>}YtGN-CM6wIiR$_D-?tWc@iPK%>;D}iD(Lg-vQFv5m zp)Az1kb%CFK7!J5Xp%`MEw9?i_>u?=aIzfv;Lnx-)qQ6d>G^!2$QJ)b6O2?&2uyIB zQy(%kZMfg-?BonRF~3e{T~Z^^iekXMQ8~=WPfYL<5^fP%epxUIM{&F>(x7-(5B*Ie zQa6X!io}iNSfJ5f%m!cYNxQN0&~6=K5ssBVZ!?BV*f6U}KH$Hoc91&~AyKF_%VYs& z35zI^ITtM%Kvx=5{PG7yT7~f`CA}2QmSZLWGe)Gs_ZSMsYR>qv#ejQOxG<)(Bi$Pu zyk3H`bSxj^_WF8EEDrWkHLA*}qec8#Zly_@KgXGdcj`Kw{8C%Go(AUqB9RfEnag?| z_SKS!-bUBuM5nji2K0Q-8S2m;%pGzgUbhbkD80NK9l~; z&~P4y(ZkpP%977h>yZsJPVC%zr&tqE<_grOp7wAx73(~RZ87Rz)bCd2hbsj#ud^80 zgIDG7k1QS$`do3mFzeh?zBYn;Z@o%2&fcz~^?YrIzqu+E=?SqcMa%JNRfo$*ee;70 za$nzeTV!{s(#$UAL(p;!#^?S~+%U--1-be-PgS*K{WPAsHDbI@#A zy3AFb^%bBH40LCpa(>BAA22hzy;(1?z<5$UzoIJjA$C9)9~ylyEZ2c5SXL zC(}a#-~{fVaqI2XR}y0zInzB|jMV?u7Re9hsf5(3lZsKzY7H!A%jd5LdA2wvpmfXs zy8T@*?o4+$MuavopYGks`E7P$WMh;f!{iO>{cEpKYC*bjN6nE()lvNnxv}qHmkdkZ zZM~fwxSMMjlsjl6V;*a+5TvOl4umq)I17|KE!3(A?`vOeIAFfm8y^a?v8b$EJCJJU zao9|K+0~)+VbmZshS7Pw&z1TPFU-Q{p&8a+2$5O_+BnqMmiso3#KzWXy51&qTyWk= zjvl|t9gb!h ze2cUEguJsu%*p)%1M0xHEJENK12dx3!)L546aY;@nUz(r@V8}kGX7P(9%+b=p4GHJ z$S;1#QLQq)YcyD6Hwb7_7!P{XEIu~5odS~8np_O44ZWyIpkA;IT(xp!@PVl<%`11y zRYDet*88)uiE)z>Gr~uf+X=4i)cEoCnls%-FNKB<;*7($=dP8m67z@yiFN+MZ(vAF zEb~wO_3Cd*IFrn%P}C$ek9uzick`3x-K+j-d4D#&ddxL)rX9ZcS=0nj?GM;rcvqg{phn?=JbDql;Jm1;6V*5WkxI!(r*?wlWe-jU*xn~1tztEET2m1*`Gs#N9);X32a`25VK}BI#6QP>>V*cGfg{I zvBQ&&v=OSM!&ZIY)^>4VBQapywUx(ihOzTC!cgE*>M^=h zUx>tz{NPB&KXu;TGSMW_DH*>#bl_fvjJFqUxF;rd2kTeYh9y`VlZrtUCB!ZVpBoQx zCnn(mjAxu|03Psm{hIx6-(z1sfdXp4OS@PV1)(@oN^Fd_Be2qQNvQ`~$Nco`R^$wd zwaG3N7S9?S<-IK$ouOwk>^o{U>=%mOB8v%6*Q1K$FIEY z`8$OPljZmmw~P>@h1SZUp{APdZ*92h>>Yv@>5nfk@p#up8Wnij`6$IuQ7fQi>!i1o z@xt8+DSj};Ry+u@wiz@XqC9pjzBVw}NeBvNrSr$Bf19c@Wy?m)nw=V#+13U6Q3>tV z4#%YyW&}9+ez+?+OB0*|kL+QE%|3oqH@gS|hx)9pGrT4 zllMSKo93?dR*TECo_eGE(9)kU0ofxDm6(=Vcx>Ocp?NX9`Ao^|9I-gI>xozGVYRH& zVqDQnCOaPZcAewU<_xZ9Z^>{e7KE$ee+`ctg}kZptl`2kJPgir5l!Wd4IgjZ#7t~( z6t8+VPp6Nop`dn{!Dob4!CZ5uq7@aBJ8L&>hWeB;Xk57yy=~?KHu+rjhR+UVAlpOvvKVQeEp=JKWqioGGd zbd1;ek<--ASpA9PC#z-H35brQANyej0z_?o;>7%>qFO}5Vc_@DT`p;5sIXNQH{NYk zV@@A2TV%WZOnjReGN*)->5+JtYRGRsVXAMRXKj;>H)C4zT=R?kWaCQH7H8Q|x1iX-6~(-}SVG=#!w{Z z^iA2laIVBm$>(4Z?5-62WAYbmAy0l=n6K2HU@SH=9{9UJ+Y^iXEU@k|CpUT{a5&O(S z-yPrd##Y~}OD=hjlL6{!sZq5Ci)e@rtz~D^?Mi3B;!LB#w^0a+<*RpU%ORh<=>}JP zUfdH7F7CW##(bwk_iKyYM}I|UhtDq^e@5|?j`zMS#Ot(lg_D&uL~nr3mJ=}tZ>tuV zx{2n`g1g}+%k-}JbiBA`ll@IWm%LghXZ9IF8gFtcU7v7Y&rsLGS`N$m8}!tU5FGE* z(xGmC)LoOR)F@`i1^xIpJQ03cE*8vZK??+XH&N@apKhIB++3m2j!&30avPp@)l8ic z5*V7XP^gqRX zO?#(uPv(|Q-f}?$IJk=ZI<=rhXFI2eZl~|+dM7giKbKjj-iB1O~lLA z&YI+RZo%Kg3~^F_+?+8TPYjweaT2(oN)5`}53FslAZ1xId92klKT7)JyfixAw5O}3 ztL?;#I<{`cH)SMj?Ziy^4%hT)Na~#!)rUT;Yyc2Wlp1-FQf4!4o~HJLvwo*BEWD_0 zt5B)@EOPN?bx=@`Ixc{BF6Wle!IuOv8h=$&W~K(G=Unlkc}}^(DQS`uGx!oa2SwI- zJKy^oLKH;9ZVUt!7gSwZFoJ!$#P}fF01?d zRxnUQIna!7d%lU<;p;$&nvjL9>h|qRG%+qk3d)oX@t1=KwbW8j-2sDz)$hC)U>$H% z?*|P$O@<#jZs}kH2f4JwRh}rQKXJAQ(r#M3ucaGNlYFm==9`eA86c*^CyC4F!(xT1 zQ_BP{rL^d_TF|%UA|nXbQFG>_0^*lnp6KMw%snP`YdXYT#TPf-op{em%ug_T(kpkY z#>gxn0)+gmy24Y~?;BdG0p$i*9kCjjM4jfspqiRLWzMyEx)5e+M`~W;-NXKXbEvQ$ zB$3(9HYhf%S}MC$Ka^+rM!h1Xl4C@`sv?}LY}kA9dz#p0T#_&2}?|s`g$SAm`Wyg2sfKW5r9^47PNqWlnl?Y5o*8uuvsKa zDwkAL(t%l4C9m3!LUu^%y?;ZjgoSEw)wPExOOLmb5A!E)E@i~IK8V&{-Juk~4R_p% z8A6I^nu7K3d?IT7>TshBrk_=@p~vxL+^GG7nO1ZA&CT5}=&L^B>GEfgZVf~b8nT>3 za_?i|(lB%{7pIcHBax82D^o?ap+2`>nHl1ATvOSYIPPVi^(khsY$FKO>MeMu#_9C= zmSkGkyw21SQz`s>aiy+I>I2#v^th(qHg~9V8GqmW&I=+pxOl*A5H0YcY!6(~em{o3 zz^rI~pmSlJ;SO{2#j}i3{4(uGk@mVzuv;AJD61&R0L51Fh#D5z$*Ax%E_Tu@?VeXC!gH?3F3xEuf4I%0Le?X3^$9KCSzTuS0e%6C-gd`gIH>x;7*^^X8T@HK;I{`)=miVLdj!aVX{7PeO8I zQLR4DLCKb4Vq^2s)Z4>aV5MA7>9|dc$1J@Gw;$&4t6J^-v9OjhrokG*4LjM@H@vTA zMJ@I26z+5}W$`^{hf5aMKct~0wBgFFw*QA0s1OriLlVzZ8<9(w>+I2-t|m@y#0WUv z&X&v(S6Y&`exuA}k!9|CtaSzxL&5{{3l_3iczTv57qRGBI3`bxj$q*?f$V10_-L1?~TqK1-+gQsdJ zjD5#?J%lnq9+dWF!K+WnK}*J*OU5a;t@UVUE3P@a3HH`Q<{3w*MI@fF^-l?ZXiYs` zru1mN6*3>osVo!6J#;>+YtdjSTGFHtj;RcPz)VH!3M?Mt%a=W^D6 z?C@HUjG=g0=dEQ_Tv!x+($ZS`$t8rq&bS2F=^=8$wv_!VzodLeuWdFxJ+X|(s*ZX1 zR;c}&Y>$d8>POH+ZVk-uEvW3!N{G5SBUXIj}(tLW^Ey{Riqzf4SKQa+r&?BXD8Ecw%j zivNqq1^&Q>j`Ae3|F~Ahnd8vr)FGtvm(tYU1%34$95PWMg5FJ*&~nd!&O*%vV3%<_ zr@ldN!4lPL#+)K_Wcd#VPzh)HH z0xP;aFtBn?c(JZPFIzb2yM?*#Y-OM1o(b%boThTd{l+2-_8i8}-5~*CH&Z8G!l=R5 zlZyP+dgpxt%cQoq$3`__SMFRvHL`XD#j}QF^IWc%eUHtpa(L;S=(gs+(D=bp zGewH(XW;FyJhNOmII*2Iaa5{poeoqE9&R-ce)f)D=$|)!5W6=WmhoA~r0nFpT79qS zXGlGE)9C}~r~#7V@5ozGDL5o%%}q*NlIcv#tASafgR1<%%Z8H}{~QH~k;bqj9^u(Z z|DI2m)0WAVX>|KA*=P6IPG4bCc7M90zy&#gKD!C&k9S zFQYlyMUK|5>%lEk%d9b&daCZdx1>k0sVgS-&NPRRf@A$$Iy;Xpiy{8RhBhHZ|6CG) zOxE2ZAt7u%{^R{0F(w0nA`x+lW3onKC36upCw)x7ygCl2J}y-SOqy}=(`P8Vfoks` z9Q~OwDA$3*VSa+Rq~M%u(sRY3Emx0534A;#Mlb59L7cDoBN4Ih`e^3dk%T|w;7agk z6}xgc@CK2_v)3I?A5l3K?$q^18nyr;Y4)wevM!82E7{Qpz-_WE5c+`PYG5%~$Ba~L z&Fz}s(V}=5HOUocy78?<8b(Qvh3`~a7eUwjX#PN?wqk~?q{Th)x78{SN)lIl^KiAZ zj7blr$bXx%#iZ$Q%Ik+yQj%)TY`*_Tq&}x3zRdF5%P&km9=^xtK?V?*EhZFP)4%8+6`(AaN z(e4yK2;n*Fv0Ei(m&Z#V*U{G4ML6gJt&Jv8ak~?D>7&RuinCI!qvAiNu``@#7$11` zYe3>$#E;jmfcBC{7~JL8%%A-bIplNLyLHHFg+s1<7M(Nz@azu9fUP=7s_%Xq`p4k7+Ilk@5{BW0MtnJe`ve~xc!ab`6#2{I`0Omf>+O^IVi9*Ux z$`#?QXgWFYH_2eK_?T%-Qp5)`jUm`PtFFd{Zw8a(lwg#Hl7+=!m%0sx(cOZ~HuMe%qP z`1A1p60#`#_n~tyFJR-kvYI|?jcYxS)4gfdffgF1u#A=(ij9kk7ZBf@RCm$G7+38Tnd**T*2`KV)(Il;bI^TW{4$ith;{utE0Lb74Z!cs`Z(Fz zxi^`>jXpyt7Ma)y+415jSSBU;%sQ(*_I`^-eA`CMgLc&-DAzCy6yvGww7&?c(L)}v zY~=Dt?6oErQo%|RkpAb*%g6xIF%}-&x2j``QJA~0eo2QQ0AERK@1ty?JHdrW$M=iM z#hPu|R8vw3)ko^erK{or=|BpD7*`r}yAxisjpD-W0s2(dtMibAq;q?~D_2(xn7_PH1L z#LKRQbVHvCHDw|_W9}wvC-a&e?RBcYr$BA)VzO zZ5EA<2JaI*-NI#WntdA7&2la9g(l-h+8@TPa*C0ksKTrzao?#U+P~c)7@%h?a7f zW{i^ae0`22$p}5U+kxpkP+=cZI~&e9#_RXk{8JB5wmpr`H%QkrTCDWLg<=3-jNdnY z;EosEpJR?c745j?ijA&af=eTyUcYwM34r$nj7_P|PE5~=fIcB%k5?~^zT@k>kmD@- zWohA&HN;wi+A$ZGl&Gv*IL?Iy_pD{PR2_H=d?Pqz3M#86#3TCz6~#P0 z5erh?T%FG4*!=^Fcj&9m?IDr|HYqk0XbH)Ny;HJcBQ9(|50NU+iXUQw-fTUqVz*iy za*7Q)%HkmuchDGfD_qqkUWY>=KPBeE-L_hl>%Os(Q$A11>!w>8BZfdQu^h1a!;gG1 zl~$|F+7E)zHwQ~P!a7NdK>`B9yrD+^{;GrgrI9RsE9e+kX`*h>$JGG{ZP4$@eTeN^ z!U_QQMx4-)xI6B-N&#IN>a@YP1VX3R@VT8Yzw3Jr>F=Z04*W+!v_CaEcjg{l%5Fcu zL6pS0r>Mf$2cqPW*a|cr*SHo#cqxAA77fBA zFT_nAuzV_UX{x~rN9TCZ3O;8JHB#(JQno=y)D5&u_wW2sJ^oFYDO5_0)1mcL$Tb{a z2EfYW&Al(#mpF23zDSr0-nR_6R&+?Be5aYqi=dU8QQ!D_wox4y9l^QU7)8z@E5+x9xr#a90t4UmLXq93yaD zg`Hm^;U$8VW1GlO|Igp4J)W>QS@7?Z8asT*YKSu+9^f{Or2tcG0}C;3RJLYH^6NAg z0N}A9VGUg|K3x^FbCs2P4`mWHa7e!4wi$Hh$lVG#r5=8#Ij*krtwo&i(F@>0sUmbq zgr}K=S`(k4#2+rKFSGS<2JwAa8R1@F<#Q3Lp&ocu`iMe%ZpDG3vhZT=v>ZLzR(v83 z4qRvJBGk7D<1x?!pDx_DK*F**6vjnBcE!h|u&Lua2Z)=y!6662(0SeiYs@f3<>w+I zroPR*_Enx#%)Lt@v{ml0iVg$=>m{Bp7WzxAJtZLX; zPm9eM?O#8YANX$gYoA!{ADE4wpQZo8e(wuI)=(IiNi4BUU@)O$HHz82H=`7)Yo*T8 zy@Kv7)p_pgA`K*j;Cn(2`k+`0VNm&C`N!U2{S#~5F~~%0^cp^Ve9w4%Tir9QgcF$7 z4oRj`xB>jbX_6=Wn|_7F4a7Z8SNgGk7an{}y|^~gQ2yPp!{_5G{$c=Qtlu{ko)@IC zP#$Z~iUl)W=%YT!h)xnl>WA4_!Po9dRJl3`huwt%z$`O{jMdhCASABKU2JUJDYWv=z`lU!FCxwI3d5c^REm~q_KF&GAeVz*>}_aM zj06=FPp@&jNC2Gv3X+Brp!?xKVqppbzl6x%+~-1UOd*l_dvEl21IKYgp1a!k`VipW z9K{YN0<`8Ly?I#Bdx01zU|FkeuoHb&T}SiOcWpA&W$Q!Lsr(&oHbQsh6NkPea#qnsr*_#- zDXELD_txZ1a&kXbo2?u zSxNkX&i~c5U5hQp1qXU?DU?_HGw8}me456*DcOFTrmLUZ2SW7Kg5UHJ-^TekE zuAz&z8Hwb;JbqmdPsTR6?NailM%%5n1<4(WC>2i_(OG?Z4Oq{ z2ZQ7(VK&jA?|3X{hG13*egd-&-dnrEUdgnW1){y#x9C3k%S3Ou2*6Kx*TZWS?1Xsf ziFK%#yMK<@d7e)6(hbhgk`@KZ)OQY_`i(ynX46`xQZl!Deir#a0-N+LE@1?gPRnEU zUjDLsz1}%FP3Y)zh{Q(vgSmbRS*$%V3M?BY=YveHJ@l`ILOrSgM7$Ao$UDP#^g}V^z+1>G72dimCo%c4p|+iaBba6+Y2Fv zsj0DFg1;(b`^#kn#oYLJ1{hisZpMr*a>T~sIf%BN>r~K#;P&8aZfoDG{M!|Szm>xU z@6L*7lnJqE|B13IafGVf!?&A0w2(+CL!T+j*lI$?Xi*qhCd(XSS25Y5#@NbIH!52r zF(z9HBW5fS*~gV-m_ebjMamfak|jIcL-&5S``!H?FwgtEzxO@Q@A*B>iIgN-+iGYz z+_qrQ#C^SJpM=wjtisxCU=mu$sjFrHKiUTnonDrg$x^}a7td0LrdyR%2wL9N zqJ7?@pF%l~&j&nJPLXKd8R9u8ymy#6No}=-oR(BzrD#ae4b`f60B7vFnZVpwvCpYB zn%$2tnwV+}r1|YW4Czzx!906D{{2hXct0K~DEH|bdqUrs(ISZix4|~eJ9-O^U=^B| zw%u}%#Sn-{a(VZ9JTqr%pOHQx%a3QWB*F+drrr(2KlrBb4Zw{UnFD~=CS3m!Xcy_6$MdEhffs%mFt;Idjr)O6f zY2UuQ^Yb5Uh#fMW;p@R4NTllDETF;nj9d1e8fXq}Y82?f%;ebMQ%#}z<3EdV{YKAY?*r=D4|f^;4+0?S3;+;XS^OKZot z+7*{!YK@2`RzAL?bU^b#;MbzQbOAL8Nl&MT_PT%NvEhdEX;AhC2&ZKF_E1p)*P#ysVB4 zhlrE2doJDieE8W$hx4N(x0&RQ{_2T`a#wftyUf_O(yKU#Ot=;B03o4;IFZJLb#K@3 zs8WeiCMW|WVOvd;4hisn*_pO@-x#(&_4$+lulr7oYD9C%C;7>eMl=R@TM)*G47tf% zRJD%GYuo8k(ckThCXE)vk5ZwteVufUPtvG4Vxdo@k;uwNR1b|};yAI-kBQ8vbqzxgeAr}d>t7{3S~u&jm$;OV$H{leI#ImYN$c$9Ry=sA$2!F z^PZ<>>^cnLsQQv*1pf_cG(n_LSf7&E+p3k=F5-(mx$$+pP=`k838NaelN@xC#MQdM3SR zKo)<`rPVVZRdG_BTRHqT_UTqm1I8kl$KA)w{0)t>txt&N(>d@PifMu6RFWxrPezNu3X?RX?Q;#=3E@ejlcpWXWRG4l-3 zO_>GyAn1?E%^X%QYgee!GrhPFwMoLT=GT$Ln2tE>zSh}F#f~J;*(JcnAIC8ANrkn0 zai2!-MJvD+>anBWFMLjF_;)31EgO6PsqE{$VrA(73p~Cv&VV)!_;*!N?!cE#d2*QD zS)nytxQj|nSwFs27#;3loxKpph~@mp%DC9MMrA`Fg|{A-FMU<$!Wwr>0-n8&GF13v z#dq>u#eI(bU+0U1IIC5vE!ZyAJFEKkm1S*1H*lT<5znjo8ao$NECce!tKN)Wux^Q6 zrX?p{$KBIUlsb{!ROuKlD*>P;Vi9Uix?+uS5<&c+=X*5hz*nSBg=*K@wJ)aAkOIHX znCUj6QBVadbBylcsZ18i*C8tC5;CYS)X7>Tc7qTez*(r=N911il2erOj5U@ZLOlQ* zX_UX|n>dG_u)2>)M`#1BgL2GU(5nPs$Wd^=ZG}VYSjifn#y)&hN`bgOF?iOUs=HQg zcX78IlgLDe>ziWrFtd;-!}y}(r@EOuBsHC@7V-X#A|{$tVwW7@dP^ky2@n^}M=dOE zq`-0b53{yC`HfMQ7;pPirDRrUmlR4g4PnMMPGY4nT?a!;sBndZx8m62WwD|{2z^;W zhEOp~DJJc-oHgsjWbJ@E`Y|x$JS)Pj5Xvuw5egoLD}Bm$_O=P)frOQyj4cI@F|?M| zfYp-Q%X8mdcOqL_`3gqHEeEwTnqHSQnoDOE%I&LR_8Me_4w!h?qT?M1*J7iy3nI0R zDa}SoBsu@|strlBJk|xZU`&N|Q&dNI%Py)$>{B_f1ikvY%gMi_q`CbE+7a$$Z5u#L z)aVLP{-CXXM5y>N=Q2;nmD;4$<{F^kIgvRL zuqScKE$%r@P9i>e|E^agewcfB?JHZeF*f2^ZXPqB;fw|HjAOi7HImb2q{PzW0eX4| zP2=I;zi;>Ta$!iHy=KA=>>IQL0Y`{iMh+PQhdb}QP-iKybZY^F!Z*%42{zRurdHa6 zvei2af{7&nK0XO$_ua4Cis-`F<)b~s6JInGii&w@?6!NqP$Esx8|rqc@U8NzBbl?+ zovz@-aMCK~YUYo+kdK5-mRuwT|FnYGJR!%{&esiLhVf4L7{y~=%C^aElEUiB#di4_K5yW2kpqzjQF?55B3}51yj%5RBx@1JwZQQ>|lGGd??dmls}i- zQ>@c+ivHcYYG(b8h85r{o80WSF}A;dz;Sl{w9$~VOH00RJUS*ViI15iR>@QjLd#o2 zT8s6OF!$CIqMrkX)u%$w$jcA3RbrUM^N+pxz^38qlI;-;rV`mOKlQm-uqtXvu|`O> zyBCHs`cgi&ctEGOlWq_%oZ8vNPm`j$KK6r})f&turX3g+N46SdB!O3*ejYOdQ@g$1 z*hk6|$2Z{NIjS|-h56T)C zQEd4L22kJUXvo1-vSOuQ3a3A?vOY?~(8L8t3JciLm-Gd#Zzd>e)c-MQTATryS%0O} zXMl_6n9ImZnbjJ#M3*);sueR$%$9QFIIM~CSj4ZlA0@wnrBZ(h+in749rB9?X{mI? z%hQ61w0UZUo{r|_-8h*iz=I=G(qsv3q7e`!J$Dz56jCma4YYl<29rt9yrGgcw(WG# zXxAX>0AO%-A2l@ii{F}~hDOz&%L4?t;z+Q22vT@A)HFgdN9aGE-h>)x|2;~9zM-h` za7qDXT`!(@egex}$5CT;7Zu#fcm18L~CJos42%l84 zAp-XvPqHJel#zKOUrcBhF!%EG4Ymb0B;EWu!xpqcqBG?zj#JGEq(lWl(_ViBz$il{w0D#-~NFN}$*)ouBWf}_Ulwx|%;z-4vt1A+YY(uFwX8-$g;qgag?r;BP2f_WDewaA1`% zWm6%+gBQBP97(^1mN!y>hQ}fRsaxnE8knqhb6GJ6#py*LhqQP zj$?R9BLc4KooJ(UZdqS;!IDnvtIy!^mb>(*J!x;{+Zo7vu=Qa6vC!a79)WG&xMqtc zLTC5$gNwhD0{;KV&Hp=l*?K#8--+oWK zf5B-B`bWzB7N1sfVifiXfyKm0(gvEc|aRi9Rnt9kYJYM~w#iCvWX|fu3TQ5RsYNo-Q(? z*JA8_e1Rc{uuySs?KWy8&-Cjbo31Z`1Ys|YaYHv5=9>1U!w2l{u8kaH>Df&N8JKcu}`l-H}YkkGEH0i-cE zlW$jabjRGw4whYx{ZH*4@Yv^m*F^M1S3r$?h5g>3k9^XYU$;yXGN2Gv>> z-=doTN!`hmzGECEC8!U4PGvV$u#u3qWHOq<&ea3`GXN&=utz}TTKVM zS&#Fieetxp{n2$^e|wJ3C6l`195YsdO8Nm>aC*R_AI>1+j1V5- z0fOTx`rM^Zj5i%cu)$&EBe+0@G-*s~E?t80+E3O=V?a7_tpPLIDvm#}=-JCbR&&(N z==(I!7iv^f%4v~PYSR{ualyz;9?9rnE;Z>0fd)AiE7M7A?%N-!qw&%!BSG_8G)fVXleJ5(8Lw$qYg8zC8($FWi(? z`TPZP_fPE$P~(=!%{r9Zz)(Wi^g-1jb~b0w57mQ%02}pq(v^1A70#J@|I@*eF<6_;?5X)cwKh0 zCe#I2Ey}_~J}k*IiW&7r1#!E$*2gfT=EK&fK>O_P<NL@5#<<0+)<|tRI;$-W zF`zWXEn)cHW8gCaj`@W+d*3tg#ftU0f68xA;Jq`LKh@H)*=bLO?%dyYD7ERwGL|kj ztNCKzQ|9FV&U<%{G@ zDZBJ7QE;1*eGf-WF6r+!ik`j#!DNX`MpIkfrR`sxuFNsa>G_nOb&*ompm4!I$>Y1E z|0*cRFWup+&PDCj7|3v&`DQqze0gPlG=;T9B%dMq5Zl*mTYzEh(GESI^x4xT1gU)v z%)v}m`l80wewSw~ej*B>Qyykt*n9Bhj>GZ==D>|tmDuXX>+ML*> znW0~GEGzbg8LhuA^+sfdxeU^STj=EoQl6HDIbMd`hbO(6-HU-$FB43dA(W|!-W1SPSyKwNt_cC_%TZ5-?7+Y1-M zjt{~}KG{H)YP$SC1NXXwnm{%aNVjb;Tt)+W!OKTt>bdvfAy-7~nsfN&QY+MT2{Q^g z-IQ*WLv<}2Ih>Zo1|5@A3XpihM6EMyf8-QV+lG>($wSh=Nr!TsL30fDBC-qPU8_aP zt#9!!9O2f4DZ!^njN&YyZ~r16Or9}BZR(p;&utS%SfHKkDd4qgsRTXdl_$XK@bzFd zkzqoEkXpjpa-t{nxc)bXwU5@vHk!CiP@xOSL#0Wd{r(1Z!1CRd+_(#k*k$9hS%w=m zJ%19JNH6r*mfX(obZG9R#3DyMyW0EG@CZp2uqR2ReQ|WVX`6TcEXnfs_>E$E@W%Wt zzUku47Z4W5Vucc^MD@%zz>VmsX*EClMf-qdG4}q1tQoCLeo6>qPHYC^%Rl06aB`;~ z>h@aZ9rAtRA<2KMlbNR|GoMgou;mEFh1q(yP`&!kbVoDa&D|b615&Or%tBtYLf=~Q z44CLqA${^;q`}UrRrJUr@_(#lvqEHAg%TN<(H{juJ*2o&@9gSbz)9Yz@RA(t9(Q}v zBERS}EhX_hlvtu~J(eui zbpR9Gbl{O_po2=0MmPRBy)7ESKu2bnR*y{S)dD@t3&vSI!$?!&&%iXJ>7=SAUz zX;X4YaKYXy5U)`~#-zGYjt@pdM!#6M07{y!P8NVykQrY*S0EFJ$qE+YWo8>Lz2F+4J9DaD$rB$TzT3m6+nY8wY`*7I`8{x zBe4s%Pm82>suYu~{6qSK-zo!Eyva5Rv+iuZ zXi2n~U_^>=l8Zfsa8(owMP*21C%b&FMIJ}LZjeWr`*?}x;G&Ev ziXn<5X6*gD&ND2nMQ@-{3HY70c1izj?nww)r&f#QYWI?AcVS7iCp8aJXJAIpIrQsn zjU4BSkk`GFlQb`M(}3$>!-qjCWVIzysNO~N7Po;(R7&&bai8TJjT4%D@=Np$dF%b1 z>Y{ht^IUmKlQ;8&U;_P(Pfth@2n( zB&b_g%Ni?fbZbQs1qYkssS-mgcPt*pWeX>h-tTJeXw`oi`B3LQe@kIr8$xut*OfqQ zg4wArB#S{K+ZFhj(Ikki?jm2$Aa*Prnzy1d`2wwNXWC6IsW(CMH~{EZd6yN^3M_PY za}D2(BzcMtqt2&W7VZ)2flqZ6HymEMF)TufA&{lEHk%ugZnPREHuaQs-abz9^_Fv* z*IOLbmBisZ+8&kj>eb;y2N@{=D|4dl6AsTR>HT%oOk3;?nr`UYO{Sj(Px5EORakP2 zlN_dp*T1^+ygLXq%QUF_Pz&_pAPFjuEQ_2HDs03u@Pokf4beSP{pN3Axp@87-bEzp z-g?Q*t?R!6@>+DROF!?rah{BoWbB-tvbvRcp|M5A{oRudT~T&a*G%*k1$~)v1*j0l zg%D$aW1jCKZIZbWyu8dxKAx~5AYuyoy)J8f_0BCA_SSw=Le1In_u|r3$uzs*IaR-7 zDj!WMRJb2g$?FY*KT&)l0<_l5VrV`S$dkGUUs~=Z|Asm$rX)Q5<8#FW4{kfhePmyuez#v4^MEvcpw&?(!4aHDQ~PJvHcU0tmRoiHlf~gm z;%rMcf1@$*J#k#c+ADI0dOw1QOr?XzZIlj6w%3?)Gh;s~eo2TC|K@$Ptyg2e@9_b< zrwRi4L*}ZbY+FoO!ayHWQIB+uEAJ&wnuQd4;98lD(PnCL-B;t9gihURYLn6mR`0K= zZ=i6dq8()F6|e`=TXz;O6azHvF_(>@Mjw26{au@K&^5UH4_`tcU zodC1=)?O5|BvCV>`9A?P0iV;}M7K;4&0Dk{96wN7 zeN*9Gx5nvQ?9|_gwRlS~{$b5Yym!ITpm=b){2Q}ZN$su~28+PxS{vRzks4QVIyrGL zGY=X))R9%v6rQuA_q|U!w&ipkCG=|j)uUS*Np&4Xo!^f?E-wF8Z5h6+ zL~wplt9+~jZiJTU5$#JBt9;VB?O%=x2C+kyN^>An={}#_M3$M%z9?Bbo zB1V?JZ~j)hk7KK>o(zz-Xx@SRR%(C6Jatm`Y#G_j=hgKmh^Z9Nqm7CCok!caxCGxa zJx5g#`I?C*)5um_zjH51ImB8@YFixAM{4NYU=g*et|(t_AkiuCW3~anrnW6pIP@*V z+=jif7r2pstBM6ZD?`f175HNZh&hEOB$+AR{xn^p&L=&MNvrj2H_kO|CA3lmU zVDv#j31FFfJSkH*DBjHDa?%;z%DKMWg;o1!eDPc4vgkAG$$zlbz23RTZtZVgW19?x z2G6WF&wTxMzxk9r$sT-*4p6i*HB8@>MfhQiI()b*tQ7-0*atDmqHt(k|?Q_wI@kXx1BsbL9o;v`s>fr~RM$e~M^upEORo9T(#nnKQccnsIRK!qP-Aa3gRYuD zFJe<&QcidB-MS@E{}jF{>v0O!o2q^#G)a6*)iZ!Y#3qE#RTa`sU0)Q2I_BpU>oRuG zSZf$n&}3A=r>h;b`1p~dV8#o~ihwgpBR`upJ$TK{Nq&do=>X`O(o6E>U^%9C*~bQE zmrxd4obh|?TOHyeM0u?@<)1N#Ze@87GpJ? zOHJPR=+;b$baV3d_q>ry=Y&m(9r%JW<8d%#)GR*j6S@D`eS9CiqJ!Rt%|ZM0F1nG4 z3d16QEL^BXjS*f@p`YX#fH%$X@V>=#`Jc#M?C47aC`~aB5Y1YvEm<16%E;)df^QgD=@pI7jN)gO*!?+|?3~@!s#O3w0 zhWs1+_6cRqb}zFIQBVZ4L0^CfMweX+pu7|rzBH!}(wK$yKte$N$}bt}Von(-)dbTtEP4Gx)6cG#0f z$HokQ>ImIJn17e{q5A(^<$f~m`NcgJ(>c}vGr;t1lBg4NI3Kwqi*rhIJtycFulWK( zb3c8pxjE?R*~rcAX~SnYG~kXyWL`ik72Y(%#|#q#%o`=%<5wxS0^)@+0NQIt8*U(I z`4Ei4$v^1daXw|ej@#rXux98bP2?%3?K%c(kbA0UPr&Wr9tAV_dIt7YB{k$yuVJ2!h@U)*`F#SBBr z+a++rsioRZ$ZlD#xkh8(NsWUs)Qh;M9HEJog_AxT$2WsZ_PhtdTNiOA!{*I}mJ?0rSa6DiSPA~8o*4!>% zv!h5Q#t={9OEXI%$H})r;^K^Pd>U-LZRa*C(He6z&De=A>54u(FXx@NI@dICc{;Q3 zZf2Vns<#y(M3w{|4S`SCmny$c21yt$o zt>e9X&JFe3Qf*D&!GE=TowvSnHr1SK5uW22WK5t4Y3j+e`gEESEj|HkEz*BDhMNhZ zvLS4ar<8NME<$U_=yhESOJm1b#MZC|jarM^W_h%0xqk7^_@=>zs?C@|ZtDRjVE3Et zzpUY!w6N>oEQ}VN($>$7-8<7TbN57O6S2HuKF6BAdi$}g0pWZtoAzY;^%D^RKb`o2 z^}1;!^}+1OVubTIq~3mCF(PyJQT^L|;X(ggXT|!C9g_EoNgknuX4~8y$UhF+1OqKzo`c%PE;t|~r0WXS07XH)XLF&@TpAmS!IQsadL__AiOEO$2|8}2o+PzmjgdlXp`4cRtt_F~ ztV0Hm%t>(~kf{A-jp%t(ZF8k_GZs&+p_X_j4TPsuW?=!$?EJ(l8YQg_`f+d-e)E-~ z@n|=W8t1?asA#3AfYxY`Wsiv&A{qK-zN}$JFNPBeQfw+j(hv0;^!xKc?Q0BM$1^t< zza24&8wv@fk>9-Cu1i$7mM>X-uwM&UM~1+M%T+xHQ}Ch&N6{2yYw7s2>AOMdE?J^2 zZNGY?|hU`kr(E+V`4y#W`?{l=C)5fmHQOVT5mlj|EBWUYF%A> z9IFl8sS?~K**lGHzlD3ILIVR=19BH0iaXzW!C`1H6fC-wUCICX%k0Va&I{q$j*I?CDD-D>U zE=c`?6EErOO<$XYN_k1cC%Hv$-$%H|A#?WooWF7uFQSUp*G(-j7d}UMm6YUir_?VbS6kVFWy&#dX^9OwS11WwAO`G7! z-L!DE1qym2h^AqaShjdH))c zK1RN?jNSM&dWl7DT&CD>kcu~Q`(N6LTBijVFxNT`-?@08hW2pZtGu|p_24^$-lfOiF;}2MtiIndGv;_CzT+pEPy4Rb;nRYF+@b zoN7w1%F!t>1bA6VOKMZp#NM&i57Ze*_Ajv{hykJhI9GPSyC>=L&uzWXfV+<9jZ-)q zEw_Z+o7*s6vb_SpmSawFCq{Jpx$C*nu8*b%=HY` z^0j#N60H>tDyihAY=ZYa%&$p}{EAK2?z3=%0j7ENWnl8Y5HkE*zPZmdn9Bv*SoE2ico$5igC z1S!vguW$3luy`a>0wiO%7K39HL~MslPva1EfT{fO$^ATO%SZ=QM#y93|Gt#x zD=UnurPo!Tzkhokv@W<#|2{a=zfu=9&nX8o3=`K6Y7G@Nnuzhk8IvWdmYrjI*JEiX zi2GIsTQJ_QnzC}g_piA;|89MjOXy!|eEw~yb1kkoXg2ZFY{IF)4O;(FNB_L#EN*tc zvJt~KTq<@Y7q;=|v>SoI?VAKI{(dTcYZd58qbf0r1y4|(dNQvh zJA@(NHB!~Uc*6^6)V=a@*HXkUy9sY=X7^8br0B)%$l1NMBI6MrQk+oVydK`#?P!B| zF~{6mJ9`c`;2N10q8FDnb~%0y{HZBYKN}7nBLyC$Z2yJ(KOLj1Uq2*}9sAiI%6gvP z6e)Z#PBjV&t-$3KSV=o8t$J=M-=ht!3eiJKb}zs^IAA^Tq#39q*$W)oWeY!=1asC?_fSv!>Um_A6Zbe7*Jf?^DR{)$b~g`q#7yM;+Z}Wh9z{`?Y~-LYofU z0RO;#q45e)C$73Z8cg3Kx;M-5BH8Nzo^9mu&DoW`Bw)Us$s|%rZ#?xB;XiF98eFal z2KlVh4iVodd0bgoxcyMI1bW846}%m)$$tuXZqEy>2#HS(eDD8U=(a%}QvNhk*JNKm z@Uf)HB^>!uY_ZcSek%%+cWWzq9AL7k=c#$(pi*v6C5y}ag|O?4hO^zG3DJY-5=0Qu zYl!GI(Yw(ZHH08WuOn*oC_}U`y3u<#5fO|}^d3gKB&53i)tSI}(IQjoWx;a0IRJh@Nnq>ie~Uwq|Yv^Ut#{IB+)NOR zzzd=-_o$Q?F%?V2-*)Y2d`&y-({!>o^>HS8EHhKHE41$YJLuW$pXothLXp?S!xs(1 z0i`2*`3<(SS_wl(!n4HatTaLIAZ${upZqjGqn|Sa}WA05r*YC46_hb#mVRvsjN!|VH6RRyi6iAPFu@WZNf;a@2l!b!aqkRcd^))tse(pk+^+rEYUOH_vX9s;^+x z0cYu$KJDuSv5vBF?CyjA-~juEV(o;%A4fr08S^)LRlBd=9pI!i$(0LAF(=jbt`K8Z zQICp8vAP$zv@TZL3BB`I>4p6(i?#G(v;TR_V;z@@yzIU6OD?G7J;@@j(pNH{5Bkwh zYEw{(L1})Rkc0fdj4?)mL%8UEyq?c&C6i5#y#D!p~+pf|~QcTCL2 zsw}=<$JTwdXJu(!Esjlj#JRDA+NV_wf`W9mgU1$oQM3>LbcCs%JO^JL-V(^3jr~cJ z64~R=v3>@>b)L=1?bZh|Jm;54bP<`vCWkhdJ8+f(``chFxkM9m-6r0y$X*ov$&#L0 z+|TiJ=D0bGX%500b&e;Z2Yj%NXBP0v1eq7%Q>qsy>PT7oI_^m$_Y25buSwMH12K=}?Oo%e4p zhTyD`t5BqqcG6LaC5H0oy9+qlxy|JPJ(MmY*hFN;&dn(Z?&I%~kxb=0Fdw*lC ztS}YDcC(SNfT~aK>b+AW9-#rfdVg!=Be-o&DTfwbf2CdBQM~_XdztKGzj}E*%U2I< z#?OD&w!&IagHXHWa#h;Zr^-cW7*%X#nOCL(vnK!zvn(O$<^d@{Jl+^TZP^(`2<0pt zRKXe<1^*zb4&KiKVrCd*J^0)LS2ezgxLwEf$?QUvkrmMmAulZ;gl}p> zzYXWrIw2ana-GyNF1$&=!qPB!nGUny6Fj<2m57;0m$`*^93M#nFVT{iTe|C$^sfCw zOjYx(Hhi}dyzA4sit841WhV37IX1J%;9X}8s>Pq7#XduQJGv;%{fI*Z5AvUEyk#%pJ`Z_@@ z3x{?aE+`mlK@db>3$T^>I}1sthJGq#J=RVmdLjxz6*zIIDcj9GDEC4SQtZvwVz#RT zcBkQJFU+Vz@PV_0Q1k9eIA>3-#6!St97;MJA~U4N-DLTh>K9Mi4(!hc8A^_c((c$$ z1g7jscg`l()ob5WRR@iOkB8hY-MY%et^gN9)mOHdfgZOl+C38+OTKx@6pnZ^`}XlR z)5048wPDYusdpZLqd$)@o@wJ$tu0{hsb7MLvX`o3EebTiYY6jogIMs1*mXHGCjE9j zx5Zl%?SokdU%1^wf={(&FN+1P#;VICBDpK;8dUlLe8K>>aiW7S<=b){3^FsQPd!GV zn!(vhkeHXs8#xWz!taa64Y>6uLE&|=1U|)T9LheD00Bu|3D#KXUOL-Mv#_(~R9!`m zpfW7{=|mL_Ymh#A;IY7sS@t|@7`KDLJVOJxP&?D`o5O3PL(D8Q27851J@`E0FbD;| zwFMrL0&g#JFO9`oK-tCok4FGmfwJB`ME1^DYPb7yVf;lh8Gm0<7>ZeqoQ8;fl(O)T zU=EVvmPQ3Lm7+g2#x3srFYYWbqIz!~_DAPhYL7(UVC)|?D(@!?Ahr_A-M6le%~*yC zxc~)HYwZ&3rKO*A{d(n&x1ig%t^wg{Wng)RA`D9BM}|r27o`-m=fKi)IGK`qb^ey( zLs(9Y3QxIVd;tviWa-PGMBSSsqDDV!t@qW&uyWUZSZ9snW_Pri{ml$1M{1=mA63OG z1iAeX_JpT-emc7EKNGsiu76QM}1pm``JOQRP6dp>%P6L zY-kTsy{GmfHbZTFX0QB&PU=FdrVN(H1eTBg>%3L-XoEVT&*ra(t*YhiA;rVm&NI?0QblZ$T`pz>5#Tm|;vVgez z)MX;$PE||V0)+ge4H5()r$Lp&UI1tsY(EH_t}Bgfi1cRZzjVFO-gqYY>a?;t=*9tV zEtJT<7P#RM{3dnR?`D_zYAE-}PnBzHgO6P*E7Y`bic!?D!`E1(`{OWh zaQiTDml<=mcsYecotI0-vuRT}r!g1h9NE~}*A4N+eauFEG|je0|gLE=DW}F`9cJhB;M} zT!c#BfUn}KFD8bycP4j~e7%7g2}9zC<}p1Si>IfU<-?0#(-?GA0Lw5fPg$BBRQwOcR?jzac}HxN ze-HW=^(XutXLVg&Rs>xRVfq}vCuV6gVYx*-HCg@j^GBZR!h6m_3BG`-0=_wKCy)St z`;PER7lBFeRtJbzB+6F*G#ZR?Uc8wSxYDn_*@K@l+yZug+FmhW(!n>{UFdq`O_R^f zPk|uq`&kZL_YSc3ZCWbP)!NT5(VQ+afrqcZub&Hl#1K(b=3dW8c5OH#uSmgLX1B+( zC&3WpZ%t(KwfR1R+Wq}{pgvGjYsM(}bh`8MG%Rfnoj<`G5=b=10}LP+O`_LOBgohk+RO-%0B-6Uzbg?Cnzw6Ng!x140FhQn}#{U zHZiy0-S*o(X5T)Cpr*7owG_Vydu38%eo0E+1W9_HK;sM5AaB6H@;Q=p3qXsoVke2z zaab@RVw^crtA*4{z`bX_^V~sIJJ^@pJCxBKszZ{ghnpd9mJA^+( z#+YmRv0?EV)(gAWzxe5K*|KCFz{>}Nv#kB)HZ|}R^*j%Wl7u7LU~0LSMzUzMTjxAX6%W2GI-gbhQZ&Zj;G-vRr8`$ai%E{9~?fK|H)u2Pc;p-hRllBDdi zKO6TLkjRC*`$FxjYL|^;RlRhrC$06*0jEL}-Hxa;5oOk)N_}?%wki?HOZ?JjSFV5* zvxQfGThzZVc5nxhbJqXc>9Iv>JM;}2iuJ2If1i&>%I_)Fsi~J9d9VK8vrGTxi%4`! zIXtp|j1c!`9e)e5@oU1!25jDa1Ax2(|9I%&>G?o)K~79uOnlQ7>zPP?P8>=hRFJGu zx>Wk{Gak(=idS;o_f+t8sg;sL*RoUY-c$z#ZyFwUE!^wrIP1ckTuhZ4HNw32B{ml~ z7A?PsYZg`N8IqB59oGw@0rIpn3Jf9sPD|DgGX0ioDj-FRKE@=}_(-rwN1%gdk?<&K zQMy=+Rqf<~6$$M1vFZfU!tToFICZk*RBV8K!SkOd3C` zD-88CA2rR)&=gI4_8mkE3Q@R={P9C*5x7##-f&s^NS%mAeHvWnj-uO7hAReX@yIp9 zn4i1~A^X(Q@OG@TaffD9;B8W*NOOGP7$ZKuE{DoP78AHef>RuIX#*ge>#vXBZC^dz zVsjJbLl&)<+YObBk{YY>d4deb9Wi8jV2urj_@UVok-jYb<7>Y|46B!9FRlOX7)idt zsw_pdxxe*fi*W71El^Bxg5LZd+p;}?*Ez*wbZ@0arzFqcht+ibvfn*9qx?RNb~yZT zP}QjNANz{TCe5xEC6;06LoD8ZB0%rWp8ZJm+4u=;3%qb>MjrQzAuIMrRxcH!$QHb( z!`i(MgLcYFF46EV-`+P)HgZ9V$yDDBsz%p7TrsyCWbVd7MrDKeBeWb&i8JJBe=t5l zrg5GG@qDy-G6a?Vq>V9um4cE!{eCi(qy6XOQBS*ciC1b-H+ZHd1mYU3-<5B(^PJw_fixjVnJMz@ThGL`pJ)u` zzW@<5Fq(Yo(^uDI{|+4sSD&yni7=i*=p9N{;1M7DixFb~u2InNHCjWe@aO~Q1|w+! zwTwwof1OgA;L^f&As$mG;&+^}x+07AlWV9F$)~%A#Kx{E^|6iLYHdso1e*41M3Qi+ z$29YxA+{ax??83OQ(e(C8=yK@A5G03aKB1p zuM7WCg2z;9M>jR5^OZa}K~KfkB+Z$xe5SXPwOf4&-eT+{)F=gt6-i5fO}2#h&8M<~ zPC6_CO-N=Inlcc4`fb@q>I3p-Z(2OqqaKO8PfcG9NDAO&EF=56qe}Gp5!L!J$!V&E0L52^QgmIJVXPm%<5{x-jj#K_Xk@Pj~ctFl)(pb}U@6b#i!@dCRin zkGMD+$ax15a}F5_SK+J?w&mXmZ||(Q2-X?$eo>35{GkH5fac-g*N^zvZQoxz7QHhj z@X6js9*Wdo3UrAk7pmwz<4e%H^%nfP$(M?&=!jQmV=BT8_xn4=QRnSUu zrT=nufP4|Z%n~QiL=%r1REPg_I_>;Hk7*!sg|nBo_EmCSuhDz0<-$-r?k|rYRm$K7 z&=Qn8M$oVgTK-si-n!4eq_l`psp9fL21k|ye2#nOEVsB#Bo{W>UCF?u}}19&E>qpB zuZ$Dffa61OlFKKz$xoL6eS5QS6*7EGx%5@3tc|m^4%(Du>iBxzi!0@eyWRXrJM=Y5 zGJVthd>YQD&L%>lj=5}Rr@I!7p-!{Ej7`%>h(4UnQv|hJ0li4_D&<>@YILco*2Pfa z?}#n(HC2fF45KMTU__1XN%Jw9Jv3o+JdasE+ms7YcFris;~jN-2=bmVneeq< zMOtQU#4mQeKY_xJaO!|t}CM&Mco18N8~?P31A z;a&>Y=w02%nl9nZ4*SvtJeDh;!Ae4?ct`)xYE7%gNg|%b`&*{XLU6}& z2y6WHLX&8r_M;Wd>@!WY%)@2bDq9NMK`-DW*Bo&W)pv>mbGErdMCJc9OnKSeDx0s}=2KLPZMUB!>?9db^M96YSmd3N{`D z!+LVoYqO8=U4t6gWxm(YBAZ{TUCejiIU>YfwvjsUkm*>(rBc_p_+cee#2)FOC3KDrYuoCz^4!DT1N+X>OkYH#-uqJBHe7f@7aK zWqsQt6`Jhr@m@5lsSoIB&|lw)#6uMrUZe~XA0*?Oh_{{dmp7L2Ev@Wo1nIpmXFa4H zMC{x=kP2PZjj;QmcR<02mdxr3Lg5*71xKZ>H%roALCDJwf7$Je$>|A(--39Zm*>6O z%Z5c2nf+|Ot(Dc&@mctt_v?1L8LPOPDyMZ5PR5U*MIZl(Ww#TymnYl%^UVU59p}At zKt=`zvr5xO>z+uLxdtu`2gZlWKa$+-7%>E7GI-a+c#I}rm1*z{-$-%MR~Cglx?61A zo5m-(FoOA!r1)A&=(_vpn+01Ry4_kSHes5sdLpKAVt%fHtmby(Q?Fj0Cf>IO?4^|q zA8oAD*wgeL8g{72cn{Rw<6L9p<0<`YVN4<*9Ah0VC-gMo?lYHKOorB7F8ZCa)Piy9 zYW6e;9*Qop)$uqs<7afEHt@Y0CXfa;(e&(tf02cPJt@#cd}irNyVO!wjyQ4zm|*Wh z?dIabQr3{b8#cgYm~W6rpU#_f`QBjGln5Z1rp9O>;jW`_`k0+ZR3Jkq4N=pj&`L?_ zOy`CyRZ84oZ-2oLF)uJ^1TD|0C?3bs3KZ?rYm=oA-hK_K0DvqFwO?2e7=u0fZ3a`F zUN-une3&wWeO_^5k+5OmHV%Iud6!S=AY^f-;^&WIvg)aFpgFRMO@MRAh3*9&@jfFF zUciEhb6{JX)uv6{pTSzLd}C+O+FAZ`WnQAeq}Mn&G3znUq`UL{C1}%PT6E{L7%JrL z&XCvuz~yFyftPpux|?g}3MlKzC5mEWZLCL!kW|oP^Dh+Pgbea);v6{F_?)r+treoq z=ahY}n!!3QaHDR3=5>5z#@Y1V1x)$FD$>)>#jj*l6zxYqRVXEaNkl z$%%XK&1?gMN8ukf{kGC0s=F?ormHLxrDd8d$N4YRw}CZQ)gSeEOF%_10i?eBd5FZM za|=P7@ds5eoL;+H&nM0b^?~|lDrNV17F8J2?nE3ghS?~{yV%A)y^Xr(xS=d={{qdv zuI=1bzd^xl_L4}I?v(Z%R>gP_-Bjbg(+)JDcI?>pcEhL#51fBd_uK_e^P2Uuq@AEgki|`pCf^C&Aco z@$MZ%qMy+pTR%3HHfuG!mObP7s?&4>iN}#^4Fc9o)kBvq}LH! zy`hYt*Y@v$Tr`7dttv7AA-ZExqwsw4Y-{E=E92~4w$~Y5wYfC--KNP|W460d{bp5F zfM)$%gFRim^-YB5!w)tpjA3QN&*TaWe$aX$xOSk?VXe5MDLQh1)D$t_FSvD$GzFY2 zd{DUo`7!%eMqvAQSeU4M=czM&h_K1N`qVQP8bRm;L%-#yS>bwRCEruXRMKRIX(@Yn zQc#a-s1CRL|DJn0)`3p7#{CRZAbF^s;cI!**Ln1meRootW)7Mo zp2luvpvkuU`K}nH{R7uwjecSN6O%eG$-aF1P|D5W>r)i&ubxWQ7S!sWqY!Y9K$JU; zNg7?0!l6w{FQw46ljKvYWpx_-{rjg-mZz_12j@5!=jIgj-ZGisvrSNb`yJcMETiXr z^xe_K!nis8Ob>+<-A!P(?Eb{w?;e4S{Y$M7{M%-2dhtt9a-}ZzsHZYqh8b?<#`%Z4 zfL$-h_*o{jAouf2zn#4Zb)&~Jdkq_&H zCSe)E_H8F)>duoeQLC>Z=>2&*UgO^a;ETambQU81CtEfAST^`qQh1J(Ij3GqQ5f08 z>B11%o5aw8Nueu%%NgWZW^)64D{u zp5Bt^d63Mi?qR>5A`OEs37mAB_G~6%g2sdfQSE~ZqVXTW3i=4t=j@+k$PlMhoWRn!B-W~yT@M}1PvZlgy@h#0eVY7 zQu~`og$TV<4pG;dDwhJcp84Eiez_8V{07B(3Fw_1b2DFA9+ST}+Shs-ZXG|6=tE?!-D?O_O!wVDHa3LU9h#S*ANxEG*b}2HG2gD;( zSFctR2}jl!==b`)=jhx`KDo8yZX}83%|zN%vFyCIRoa=*tG1o9l&&+c^r>GnPX3a| z+mRx==>mA<>H3SkqtV29{$zKe^w?tE35*(6FNo=0f#2>|?zJAk42;xg=DfdO3VWJv z&ob*dARx8%X`+2qluxLuV~fEezgv|YDD&oo>!-rvYT|78+fT zKNK*WF$3X;GYFd1Ry0g5T)w8E??`j<~kx)ec-pSj3M z$ROQ>8bWb6&Z{_nB;u;1Y@z9cPBf%t&5`evun5A9Yj{6eI|h*XV&vPm0lc&=>h~%{ zBG%a1&LkBv>`WE>qC(soatEqqGU$PK=1x$;jJ5;JrQmS)1OBk^&ZSf3oM|=VDc2>A zR12edFgA3kdUucra?0?i;wz&hiON4S`6h+Ro6t_VL<&EdKVdsk1`G5{)$|HGCa%4q z3M%kt>5EVADyqcrE~Em$D$b5L4SbA(zH0;eCEuTXX5C2e1BLc~2vbfYy>*0IflYN} z37?(5R@!X*1gx^;0CwE$h2xxPYK26m+gApP<46yc$XP`%JkV6jBU1lswb!t)%=Qx7 z4UN)X-l*frvGkf&G2b=g{9J7?$MiOTIwC{AlDMkLO5kC2YM@nh65tVMi^~l5Mx>4w z~IYJQ=#ZFvTeu&2zij3YudmuIgRUPpU(g3G}BYrC_+A z&n+lOnMk&?LvigFUT&GydD!aii}vJap7^L%H@d&+ZR=m)^SgAJFJhW?$nHb)Y)q1D z>;QL&6ysH_?vttC)5>lX`J4DeoR}x=+^P7IYPFU;3I?7T6nm_+M~iD$wrx+Jh6P)I zd;C_?8^yG;d`Yqp!Z54nJy#K?0mhCIo-?g;h*5S z#`~$>N^_$d=S^6{+lP}sXx&m$Cfh@0Uu_}G)gavZR0J2V^UJ&r_wQ}xYUj#mU!NRr z=LTP@s$UnJ0j6t7zM0>K`#+DesM|YIA55*T5?l;$jC{Z#H4Nu#8Jlowm zt}&Oq#mpv>{Oia{{m1X`jyI}K8-dof&lVl52Y{FtELA$wKXSJB3YXEiZ7&Xlg|xdp z-9l;8Zcp8`Hw6}J-}+4A@-4re*mF#CHB`JSRakW=U7_UdCJ%n@Sy&*A)dv;Eq~D}w zXbq!~pQ+o^9;{BPoO08Sw$)_w7l(j1f>Ek=9|BL@`)iiSWtT!5&+)h$RJyiDuZpX$ z-wk%{D{Jk)^mpn@(w`@1lDga{kqs92Mbe$^n}~WJ`;biSOQVOr6gZ<9EgEc)7>40q!0Pq@F+N~xunb3EOShvl!$4iS(D{qN!0>MQAX-mi6d>dd)35Wr z3D$5Zp}{t_aSDkhLxfVXlJvd8@DNYU6&$GA$8&y$28n6{b2%73<)5Yhj8^%Lw_yi4 z-|`P9y*B_2GbhfFs0nXfT)7njBLVX*0dlQban|L17y=(^_R2wlK4z9W8OJHkAcL8h zdxT^ys*6qC;R!Hh-aGgMZ#xO`%@>?aXZ663)_h%V?y0Eeu)D=Xhz)*<$YO3v)4OW< zyfKAB=d2%uUh-0awrLW7$*NP;%Ww)>mLsNIqwetOF@?AB`7?|AXT#+_T50#_RSH(!r zi-(gic{P%}RQdR))!#G8=aLq#9s6|s+KU%7+Q z@9$>_(b4(PF7%6Ji0E-Qg$(Ya{%Mj-E>xuv^PNjU4`gIP#qc~6Gw2-sZm{{?d>Pft zacJm>(^h4*BXj9IZGT#L&^8LUoEDfx*m+U$u+ zW-y+8in-_x3trkW(jkTKF8y9i}2DAf()KTJ`)V4qSs^HjwW@G zKJ4*F+-0RP_3#MEt*iJd^@plrgdnX=t4%PEiSxQZNfr(G$g_K>dQFm~E7!noGwyrt z)Z*#x*J(&_)lO&w32d6hBj-&anVyKh& zOe>6&5CD>CHSRP|uWgwt#EB%}5@E|8urDy`;ihniOFT$^Ut|l*L))EzA4-6KU@mR( zIO4glFMo&oL>Znts+>kNPnn6gY|rhQfyHWuri~1{U|LDxnXh8fJ#xYn+Z~m&Qj*^1 z|4h25lzUNG@Te*=uaWnx-i8qGnw8Y-*L?Xv=o_!DcP2hAS@_5%=WNiG$Bu)X+XK@{ zGRMm%l`qru*{p%jzweUORR?5aO!)wB62JkC#{oJ!f zZ{>RK_}EFu5ljXdX_eCk^#g4kvNT8F&{Bm0wXr<(FvXs(J|uJr)cWWPd|9AG4w_e? z;F4Z%Re21)*GGPZcJ9pSLYLq<7B|`4aob~$5Pw)SNyH0;NZ6|k~@o-#S z>_Hw#wrzi{t&Cb&l{|Rt@0Nrba4L^%jhWh??-)UI`9+@cQ36?YpTc+~nDB5`at6Sl zy(yy#`p6S!mFPl_G@PQf6dFR?YPT=W2D|3uO$k9YfIVEk2>Rt)TJb~YgZFOrjAt)~ zgzDa+DF$YhMFwQ@-J6!ajQDe%K+s_kCGShW3x$F2Rs&^2J@BS$k#mbW_>Q zo<%{sf;0`^0iuz0=f>l+#`KQVvpDk+d}2$?_@zv^HAF;F-?h1pUcGENbFkk zYpw%i@yZev!$)AWFM(SB$p+ke*#Vlry@;g+Umx`iOP`q^%G{vRHS8$oR{HA%xKxOr zP-Naz41d1Q^v9k-zZ?N})T;LBT4n30mdR5UPenGG6*e{nC+J&^y06>H6a%W(Bj#EN zg}_T?lU(K7Gy!Fj^?4BS=j^v^J>i3ucSw3ntc4COIn3%pLxz3-c>N*7SM$RY zZ2XQmt70Em*pt5)6F(qGA{iyH_aLAY>;Q)BsSqdQsCe-1K0go5>~|n}#2sGyAhx1R zxE4u9Zc3MI~;aJuZD zOH5pNw6{SNT;YgEh-XhD9H)|I`~e=*{bZelmG943LYqCe$|Eg|tHj?bNI&gj?3P&7 ze^L{EtVgAXqiN^I(sJIRhXef@YyY%5ou)rC468;gHRYZ44?%S>6qjj_WE@j5@2g&vA9U?beHtBGQ@60j}(vgA3LxNg|FR^TR9RU$&+scpI z{3pm)GY1m?eh5v(m*G0O%L2@03e@|3p%9M|SLmcMHd%OML*m(uk5nsdS@&f}}LkF@!L54&5T1QUlW6AT>xMokI*TbPX^x4Eg5OdTYIZaQ9v3 z>~HTc?rq``r^R%8``PAp{-@M+yBAmbwVkJx?aJPugDSkN68McmLxWa>_7tJcGHOI) z+a1uo`T*S!DFcf)C5KTN^9Q=-s+)XX&l!?nw=H#v7HVLJ8M9-ze$-#>!t6+gDtMt~ z9@4~!M*!QN>tus#%dI<_Sr?{Q@sf_i;}qQ#PznF7gs^_2_Ll1x$ruTfti?tAYY zV-|m+j`Y7vO8#C*?3k8lE?zoDru$8{-(L8LenT$WD^&(_LU<;=*^E=qkh7}?bJek% zRn^np2h!|ZPr-NkkGOhtAbjc+Y?=;M7u|i$?ejGwHI}Yg^<^#GW7$4uo^5+{K@G|t zZpao8D4lQPdWIfxsM8KQsHi^3vY`ppf(w<+yEB*AQR~{B_)Iq}XuHC(HQmHC>@Jw6 zS(Y-^QJn{Yn;lP8JVq`g^Z0^ma1~!H%g)EoVwCm8vpaFny~}7FB>mKnL;lVtvt)`t z34K7Z$ey6NvC*W^0ck}ZY-*-y*e8KcL=EIBcRdmD2X~NPaB6y<0C<GJu9Iqjjhkq3E{`pi85a7?vu*{ z7K%!az1+N$a)(w5H#;+m3p!FQ3BeEL=0f=gMCwdnIYc#xIo>|(VdrR@xa%Y0o`NL@ ziGEE1Sp)J}I@Vnm+UKnlfgaM)6;JfIytv~l{{9}3n*x&BKm+zfp;8fZDMEjLgBBZ< z;OC(E-IArVN-D#G-qXRFe9regm)Eic+&A82>_s|?p-GjCO=?@c<=6bSlc?sjVZ(5q zH^}%w`?96rhn*%bnN7&w#3<1h1bXphlo@M3IAjS9ZX`&eP&kr*jQA zCG>*4-QW^$&&C1vnW&DFu$o8X$Ti6dQn&Qtm z$MwlyawYkF8FtGVONLsOP43wcTI_@c_(mT9|GtB>(*9$rV#>Qt8uoOpxZr<2^uPn2iR4ROxoG@4Itv!51lhWz6O0_!0n%IH z^V(BvUBRKv)8r!L3^eO4YdX}x7b8#G`w2K& zI;m9fbla0?Kcb~_j<7nbv#nR==-%Le%X>rK@6O?1{slJCeWl8?J%GeFJ9~CGA%qrn zFrK(-P{=Wa>W4)`F$@U4Cp&wxD^{I!yGB1Qg1?KV>=MeE3PPl!wZ1by;+cCvq8Yl> zM65}@Jp>D+mC@xK!pebILhi#w9R@E(1-Boa8Mjt|7j`+UC70r6fzSZe%Lp8o-UPo0>C z6Ztu`MhuqDe6t!WVW7Kt{SJg__~OAf$5V66a^ePcG6bBFdLd>Ma@k2}Ep|KxJP2u@ zv4wAVfn|1O~kS{#~p z1L)i8)cQg*t*mH+JF~rOd3-m+q)K$><+{ph{MI_CsZM7LHSpE5j+SJV>e99esl3i` zr*Ys7`a$EVv@$-E=zGx2f%<9$TJcY|y>h#R%BN%+h@$pjR-556bTf(D4f!8`_U?5O zm?R83dH&3ZyHV?bqX*Q#4LbhPT1gFYEJBnmcbDR~IccKc@L`*;$jHqITRj+jtT|`# zvUTN()1B+)bosy_jF?u)WqZuz7SZ8@cd@@vzq>eG$qMqUpKtgy?bd4OGn2S`ji_*R zv5ZQnwaL25hLJG9#3WiQ*W^}QVNaa6f86RL?t{&_-pQ{EBkrqZcirfY#>FRn=>=}J zR}LDLwLU|c+^fAZIapu5YaipkQTaNr(KENodGoAjbXwsxMdjS#rn`vvvBl_kDJ}h7 zD-a3S$H0_wf$4sJf)llE;tX2ioJC2@XLqW`Z8*0EDDCuF`tEU#W$ebCZD`_J*T)eVj88zImg>OY zjoKvww~21Ye-oJ+?vTvs@hBL8Rp(tLM|}gnN@4I5X#@9AqT27FHWFxaWrQ!bh}-UI z_w$(c!{arF9|ngA+!4t7sIj%i=fvh}0xJ~Zyk1m`Q!61@(U`)Wu1>Z);*Rco{p__t^_ z_QR{oB?Z=CapFE~TOEPQNsFH`$;vwI)=JDN-xGzGQRR6XkH;)*>$LRcOa%lc4g?;& z=a7XBU{0nGa;H_MqCZIJa7ELslbcw=B+O*guf}Ai0yED`)B#sU&=8dF*?edr#OS0y z^cJsS@2lT#EmYEH{I<`N$S+I(`t-C_zd#_P#rFaTC+32CIgD@KPGT%9L36eDw&_0PsssGe-9AN{-@ zzYp-kxcu;z_)_RHSO}N%&Iy0 z-o1KsJiUN_Qx>woL9muL{U;@tR2>A03(xZc*-~0;2ubJ!e&>+%*b+7TLpcSZmSW3l z#FtPU+KMvwad<>-6(Mrj`cWo8)9I#RiZ@FWqddjh`>F_+P4lFZ^@~`~!big5oczJI zMJ!|w;M&U}q+N=PgPbo3c;Zv!m~=0`KT2v7V9fiWxx&Eo<0_eb@M3Q{y;_2X zHs(DARW7Ka12hK|)1bwS^;AK0))fYqmVo}oMWT}N3vb;3)w7QzImAbO(e4NzK@4Z} z&kc+Ua>jys$1$&k{8L}7r3d5RL^!G6)5uF) zZWD-knw_OZ^>897s}7yzhl@|Oi;d6Hh&W*JVf5a`_e9KWV}@jhIk@ad_pw>6-e)YY z2u7b7L*o5aTX%1@0?`UjI`B{+q3ypgUwx6c^tudMQfy&k9PGxzIW@lTgUD06#FFbB z5UbF3-$|5Ya7aSSTS*k>zAdZ87d|Fqjic#j?6$Ep zJL)@9eHr%6IeHUnB71N(X@-Q-rJq`UU7W$MyKDUrvv?OIgpat=+FQgnJvc}J=|D`~ zFNzLt{PR?B>%J})t|eD2UbyT+8=YIGu@%3H7wXK|_3TOxaQ|TCC6QDOmhx>z`AK5% zNE)3%mRCmJzoMkS+`x@v)K>C`Q=1&(u(7Rtw#8q3t9jDxTE3er0ct)exJB46RP7%k z38D=zCdSWW=#YoA)o>O%AMd~8N}|Llc%9YEUIpG#sn1QWh~$W(SR3QcX=k1h#p~Oe zS34>BpV|S6UM}I@_qOtIYAd6Cd!Ev`;6No?R@4829gP4~V^Z0@9k~1U_f{r^Ly&>& zOA!paqgDvoYOflx8qt(lRXQ^N%W%IYVz`urvV45GIYsoPIL(34e49!8rt+gtxn$|* z-&Hu(AOChTFPD03>Gqkod@#^|{L@Ynk*5suImQG8hCIBrjyjgygO~alD(}w=w<~WH z?ditS>hpTv?aoKPFz1i4G?NKA|6}Vt6^gNU1ebnq*#Zek{(dr#<}OWy*?ig#Cp!(#sS>+E3GCfEFkeO0y$j~2`|0?$Z(MQ(ZjIGL30<5i<))myE%sM0$95oFe#%x0 zBA3j;AR^J~+KC9dq-ea@wNC%1$v)2>kG-A&U6ni?I$}g}F!MWgie@wW1*_iHv$tGV zW;0yjP~$=p0ux=$BaA;CW}63FzWa)1d3bHg4JCz)RXJ?H=)&50ZTAlr`+R3z_re4P zqSNb4PJ@iTitp7P%=pZEY-%IGEkM-LhI`g!Hf$6{es66v0x9@ZkGjpKVys`WX zMdEw8(QA!T#*l5ZYB3T=1M(0RovH@=KAJh%!wt)X96Om(6S2~Fs>Y*;*yn}38Z__u zKKAcN^bFv$h*FbvrkYV(NQt0-*#Ai*P{46Gb14Y&FMHvls;k5JXDt?|H}&ANl~17a zlgJR`5(kaaznTEr&{#6vX7wQD^yeXrs zFY^31f<3VfW~r&!!bxb`@-x@i3tLyX{-wH(lHjnjM&LqSv!Bt20eE{|fHKHjEKUkC znJfNQwT*vTDg-UmdP9mrrTD%6>L_lXu4c!Nbf^R%do%u|4PGhz6OUArZ7Wik7wHpqJ7vd7e7pz{Wki?S{WV$>wKIvp9l@1mOE|=;?D|^<*cK+TfS@} zkXXwdpl@Na(DK}7wUlK*MYQ(@B&B-h|UoY#*8>u87#99od$tG(r{ zi!#=+P}Q=v;HRN0s`e_&H`XAu<`+BB(~>YY626n6<@;EnCPoTkA0aMcViyJz{kceq zRI?(S^NIAjZ{8fZC#8UnE9vt_5HZv6Q|0ho#%4tF;SV=zViDv*@5vrV{{|Yy7_3cg zWhnX%o$nL_80h{AfGsMzXH0FOv5hW$H$5d=r57^e%81ve!W#B}MjwwonF00t!Zme4 zNa~qp`;Pb?1(ymV+j;+Wat!&iyJV-bMSm^oKDShRlldjm<*LFesCw_0v$?Hw(BIu@ z6JDAaYKsjArNmX)M6)hun@d3TCPxCuj*f$WL=x(Lr(HpY-|D29pq9xhSXrO_X?U6| z9@c1oxJabEfA6-2#~DKiUeOsG@6!`|_6yzBmnIJWHrAb6DnKVuhfHVCKE1Ti4Khj* zygaMLZLfH6)=@LFOU}7fA@CN?D}YV-im)rPn))Lx!6!6VzeACh!hcyN#KJ#>LvA#L?_TisX{WAZ3QC`M^j5KE zcaQ|X`-8=3U_o_=6IoFX-JC|t+fcsE51I8c?YPfgP$Lt!rO4jC){_#AjPZTc*Adkc z18zZX!+coXzAbvm7Di`Up4+3RlYF2%)5mk0lL*LCfvj!jJaeubgM^F6XqLF(qRVZg zXai`;eHAXws(g1j2`h(J(DDiy$#iKE4f;w7_YnkfbCNFHeM=9W|C-G;AYI;-qRD2( z%bB3rU({PQkX;5-m&3CuGZX-ChPEJ^bm#iK!Ohki^Wq4^S;u7cg}|Ud>$pK}U**!- zep!8_qS!*mr&0GOuC;`pu6(fGwY>HJGxsoEHF^ncdiuQ|s7#9A5_cW02HFT$8Fw4^ z`+{(xeJvG)LwV=pH1eB?JVCFa`AyUQG+mlodyZEE-o9D&sS8HYU#@$CON7Q_POi_4uRYKSUiw`$e_wH znf6|=@Cw}+h*-2bf8yxz;V}0#<4Y;OB{sVN;pc{*Js*XM5VShnapsfp{Gz2X6nl;j z=)mVlh;fPh8mXlizJaFMZojO-4+$jKcWH57T{u(r*^C$kfv<-mkq183`?sS$Z^2_3 zZV4&idbiQ)%EtYh)j<+iyWez{-~d>BiNpN0f7L@=x~2z<1GW^=G5n6>3(@F z0oaC~E6_!{kynKa|mOJ@Uv+Q+)*m75!)i3IGy^qEOL;x~S zR~5|YqZOgVD~!ig=EN@PkIeV-rECS%!lGLTI#jnb<+&^Dj)QrQ(zewPChb?qBF~i< zYVt@J0}UVVH<7VsU6F-BT-BR4uMzWlKp6l>!$7Z?@XC7e7i@cKCb^vKhQy;oQ#!M( zjBTFE$vRf7IvFOYMo=@?b@95z^mwxyqgdqQ>PuJ ztWdmFu8`~}$GC6m{#g`6Pl2zUz{r_rgEa$SUE1lxeqt_K z3|vsqRYr1r!L#io9K!B;kodRPa}+<@pNuf4o%UZ&OdA2=*d37?LKgX+hFFts2OT~d zzLEW8KszAenkrh091de!Mbff#Xx81Mcwwc ztM^%z>4Y424~rRymn4rX3?anZjrFM5HXnK+muZ9aW)i>U13I|d-7%5}8~3y_Q)dlH zP9sm;Vu1=6X7v>UuZA)ADbp_0+s>$G#H9Zft)oOxdlP>$NZg2cqm$v%=yLgN0c>|%-} zZ>u?F@u$mNW<Wh1NCGUZNk^7LT0*g|pl3oi?4xv+iG&ESl zrG%oe4iL@$IUGs|3@6;n+cK6}yB(8MD)YNK<|1JJ&<4vk8I@|+)p8GONrC^94PiF1s?78YpXBZl&q|wyfj}lCSyEE5W)M4()f3#S>5GR^F zZilfDN(^?q6wF;$ms0Spj}AiU*1OJ(e-Vw&n)kh&f_1S1{qC3EbK))CqmwSmx4j4Z z77MwJPR29Bm8f=blrcvedcRK~Q&h79E^!J$P*3`Na1UXQ0%y%`T za>=l5t*yQV;^AkJ-|I7#(I-`#JKV)9@IY5LUDc#@;H9pI^Rdv`SEUSNb17sTIhNh{ zA|rs2c@sbD1)XlbPiB=BKC>2k`7f12fF-MeT1+nWsRASYGtv@&dyRpB(-4iCz>IKS zYD-<@b#JPfei1pV>|+MD>MI%N(e5dPTx5DM~6;$V)`ob>1#hF!I zPPLpXLDK9z71bz7B}CFO*)d=~-I2x{Wc1HY^iq(MAH(!tg_!_N~@pp6t6L&L3bbpOXf2&3zQJ zQQ9dtLy#D8(HOpJN2M-Afj>V|QD}^_IU9?MRrkK;o8aNM?bqmgHy2C9+c!vpqwQTe#bcS zUkfFwjWVKjFP$5jB+c)(yCo%s+>Z3U&1}V=8`W{+coJw2A@(L$7aLNbyT8Rlm{C!c zz=OqCpg5VS#J#zyb5ZOxUs&UIj85h%Ev0yEc{f$&j29^+~V~&ESJf!XnybQ zSv(_J;hKwdNc-M7aw|%G3dkxo^ZeXLz1{O9an8J+N8gq(#NX3FNNMm*`MqKOXEFYr z=Q$0Qp% z`MS2<9nJ%TSuTYjsGs!(u67g95tG=)t$E{Bx>HrdBE?y!(CI&pGyXSJ@=NcU>L;M^ zWnLgq3R3x?t?1LlXx~EnE6KgZ+TWf*J1KXsOO`)N`CGo)TyaUoi!=**=+RE~n^?ql zTF4M5Kmj>#lSFWY!zzX6E`<{NjcyS~faXsYVFu}V3;fH`<+lhSPh?$!d%NrLfwszm z@79lVY&-+>ygm=&OuezGFx0)d{%%NjbWf;m6~3rAV`o%lF}iEu-6+X-UVIh75A{8d zf6~}Tp->d`3TQ(IDM}gcJ=emSal|tvE4%)xS*s-2vu)Nojh+K7y|aUam>~c{Khu zV-Pcx(=b24et?@0V%}MxO;}e(rK}ZeRvBmTsLTKl-*{*>*j-A6-p$k}e+~Gj=0zs= z_00H0&kRU!Vf(TNm1{s~VoR^7g7WePap#iJ!XwdnFrJ_b8M_w{j#g4xygauKbE zI2;YF`{)bkqF?82TL*Jt1FZ=9wj%*zukW-qp&UfegSUeXVCD?CyQt5gN+yWZ8+Q(bkbv2#W)IZ=n>M&3;G;DPoD50B#E}c!pqx8;c zIw)BGWqSBU0`B=F3iawYg5Uw&d-~ETOxO9c=y{_}; zns?cX193zyK%1|PQj#{LQ`sO9$7BV-;$!9{6G1BUcKYR^kVbsc^Gg#y&d?NW9jsYp z7%C`3NsG|uM%9=+50HtoZ~sG=wjp~6bGUeeFuex*lNHW(Pwa8|(iAX+BRO|0t7oOL zlh25zgExue@9K5#ODQ99tKcI-MuvyY`t5Lw_OETqXC;62n@!Z$pVHd<2VY@U&C)+*T>z)nb1KU!Ea8%X zS5u0g0t}g%_s?F+>UXq#Qh>GCZKqtky`M^(y7ISpCiVv$)DgHgoSG(=cfByLUxnCT8@&dyvrxc&s!adcwa zO%hPY<9ySXbKs`%>wQ7T?{~#98k8K{n~jS1HXrD$wPm?Pwqi@aG&=CS-;J*|3NCtb z!{s|k@UL*E&p!b|Wcz)G1phC@@L%^X@89@;XW4C?;L14Eght7WI3d0&0VkT(fO0}pok)~E zZT>e=U8?01ih%&8IxJnj8V=qi8!IcNU<^9kUAdC1q)dw|S04C!Xrujxo$w-Ki?#tZ@|4npZp!bca!sf^AT+G%>)bv zFSUBE4QTy9@3}r%Eyak`>za>{qJ-CJhSonljzdg1!cT6-TkVy^hHr$c$ zWac{fdG1`!8H)Fko#wS`Q{_&$ifD?pj;QvmZn4+d)w>oy>pEN?j91H;0lC@AA@R+(eSVy7+QHi);&uO%gX zck9tny%w-45-G1@zzQYu2*Xoi=8YR`Bl95|6>r z$j|{^^w;)VW7M$sJP2`pnruL02)_Fn5mbwbJONvJ^PMRb^Eaw9cicaEW2TF+Q%nXB^IDqxtzgRW@B>#;V+`vltbwW>PEl`iJT&mB~w*-&TY(fvOm@Xa@ z|0nYBGc2*pgXTvW`P;X@xSYz3u_|J<(lLSsypL<4&Tp&2r)6t&@wRtRUo!K0e~B5f zC(OH_-n2%k^5SA=Y9_fXqup_I3r@m?aAWgWJqbXkFGh_*zAap=gtj4uybsoqTo>)L zrW;XBtO&p1?)-Gad#CGkqy5y=o`zDn*3?p~Uv7LmFOcsE@%jJhvi}}qg{*OWdYh(i zwf6ECdFKn|KT{+%rgf1G4ixp{*5OZ=Y(C&-7n(T)zE&O>BEPYg#&~7^b<|=#nN?IM z{`d8a^p6}mT3W_muq|RQr#^6*3!qNtKb`RG$2*n*k|l_}aYs!JRys9XPloUHrEg!_o%%qDElYds$=H?N3$#q} zXwab`n~$V`;=@*2sCexMi9CSO*hBt6+5lALp_beLW3NDnnm$!c4gMTi=@<`h_y@1Y zuHlm4sS-_2_k)EkFn(X##Zo#Z1GO_*74@;)shQ;%dz%HA>ju(C83+Wqu0b zGtW;7k**s^+kGrZ(h;vphCQdR?e44rTAs6^q zD_^9?ndD~yP7Y!NK*=<`P$50_S_DG*5))~?8qAWAil+s+qPHl`N-u}V=L)md04 zIswzmlWvGk?)Hj<^T87P!uH*(lN1BL%U^?k$und8U_0B#%JRvsVl}5?Rb^}A7IgLN z>sy(AU*|TqDw|7^yznDg+>J%guNdy`o-;5o6f#RlSZ;29Bk&!1v(^2Yfv(-^yt;i@ zB&&YZOkw?R0&9O?UrI}jLl{y16|KO-<{SUXCJybF$h7XB9u}7oHB?dtkDzj3J2_7!lp(}O5Cmd+d)-RAT*!8gxOWtE?-%S44`fCS`uN|x|k zHpoO3w7Fi6<(%Iu8+pn3B->qYS9gUGXXw3sr2%19@!Nb#E6G(k(`YLcpGkJ|032%0 z(f(PCDM4RcS6vQY4RvpurAPVt9R$aR-jF)Hqyh*NvycbRTb!0;&9qK2`ROj{t%l6s zX4&tQjxIMx>>oc;f%8t2_fZX+;;idEw+njiqA$-aYakqeYOdyBId&nIZnX)Nlu6}M z;8CVT_1z&0-{YNu2Cu>}`$o}7Oc*h}PU~SCZOVtF{K$1GRw+0vuz?~~Y5CC;izqxo z5{58T0MMQ>gDF`!3c$G0on-ZgZmhHs>ajdqgxyE4bF>kAL}0%yQQ{hfahyWo_d8t| zi%sjH6@r4zw)@$6CPW-loVo=zIZW=_i|*^+u~|j-Bn|!G)m}6W7ih1+-3vqdW;>g# z7&%ISw(izyo$v<{xB-PkLwH54A?4N=Mm(us8&4WOWRr-!(#0rOx28h-NU17v^wf`6n&}*}kf+1W>yO`Q!0D zUS(HsS#PjXj-A}9G5!ZzR~Z#$m_|jqQBpvWMd=jj6r_crVdxa3yF*%$mXb!0?v$FL zQy6M!7`kETo?!=f_w3no_7{Kn!OMBy`#jHm?!6!RTxl;K+L5fDKeHs5fB#A+DW67dhhr89S3vo^@BW^l9C*Qb`_w){ zeBQ^pr$KrM1^?I-4nz)qNC#LS&1JxEQ+Nc-PUy@hopj>H-n(j{u&q|&^kf}(h#!1% z-JoD>mx(F`dveM|7|M+)2h4I+xMSTb97==o^o~-}NG9kT} z^na0#=Ft!+9|sYP^FCa^OIIvlcQp}T=12C^ZLS$9;QVAIlkWt{p??5Q!eb8s!Zb5U zyl^u^wsWR4&y=uf%tUif$?uqCQQj`AW6Q)(lS`I-PA}&L9A}N1WoeR7I$WziS%o!d zA#yfNY27J`=Y9l}rc_eEw`NRu*i(ZfnJh3Da(0H&+$4 zA4fzrcVxVIlx6i}8q;$1xI9%+rEOV$uc0RDAnJ4y1ohIO{Il+v0&W|8X>D!#bTe}G zoXey#v@ES)=o$?%l~I1$@@)>-1mBW=q zXjgz)Xi~SWKw>Dj2Icj7C(WN=X$++DQ%64f%ue)|+gUO12*#u|aC)~jlG!ELW`2FL zL22lw1})L*x{7`A#Pkh;&`8AF*SzQDRhqxX<%&OO$wFrnXR82GB_j5L#;4p4dq^jf z62ib~llV02bG{6YMUHVYUpdt$^((tjmX&LQCLe>d%&AWw38wSgaCRV>E}_@1Ad&}n ztue}7YeGkI5pPO#^h-JjK*FBH4tSE2QgLSMv>$@oKJUUYCdEN_(XJ5?L<^niOJ)bP zZ?Rh>+I%{#{gh~4>hx!tl`47uDIp_Fwmz{8HP&TAtZQ&=T;A7UqNpR*YCVS*W(+); z)v9ln8&tT=q}hiQM~tUmXB(>~Doa~3kR_)8Hj(VR*0q%lLw?Ry(;cQpuAA)!OuD6p z<&e|%h{j^C*^GGsj^;yD1t=7UUrnTB240tZo8!z_$WrD5v!lI_D~HE zach?SN^HuonDan{+&#};KMd7T4jc`5uV&Pgm9dr1rk5YU-za?Srr>8S!$X{vV`3dpk^5SgA{$*8Q-QuWA=6ByJKY${O zBKQXR%TQi{2lZ&j#^of}on*SDK4|LO`6*YS@x7VHLe=_^1E6)kVeZL!)5pzp+mDXg z!UY-|GY(p=M!+ty%r()tS_|ca{!cbo_8i;Iaai8E> zg!ZP1j}SXyfq^2nBTe_e`>E(OT-F`N$~-S+GsW+=z(3VZMkF}15;#0|Fj+ih3w16S zR2*6&z}Wt|C*VKcFOTi|7)6a33^(wH5MnJO1jtRK%-4&0>E^G46lwOvJZ7_;-wk3I zzh7dUmJo%{FV2H+k^NBuv7oc=v6SpNPxH%iLd9XjMq6kFgYn5sw0*>8OQHRKl3~?# zdxqnsf1N3O|J--UxN)mi#*r>_X8UMw5kyNSuu%{mJB;+{w9+@y1zDngFmc`^=dg`p zIrJjX{FDt;{9ZDrqm!Aj6;uYo8A^RD4#zsp#s z56}anp_|quO|YuI1}PuxA;4IpBp9pi0e5Y0(Kf2apP=Yhi_XkJA&`4`9j?Nsf$i!Q zW9mBdjgorSQJ2HdDtK8)(dB|COn|JX4B0JNg^)BFb&PJZ{n5z_P_i^mL3Vklk zWejc5o}yDw4K)9=I%D!^DbkT<7sLAcgEb~g>~i}FIS^L3amqpZ4Sl`z!7|fvdl403 zBLz3WCY+T?=7@S5u1X=7A0VCc=;>cJDJsupV-S^9v%Apb+I;yAe7%{D5)aMRTHSA^ zJ4)@wzW9_lxGWz*$P93PPo*puY*GGt9QJv`>IpY6`J>_c7{abon->j{oVS@FnWm*ZvRoB$R2G(qD*Us!B!gTc=Ud1`mt%~OX6!_wa zuR{A$#_d=;cD3xxsjikAc*@9=_T_(_tD&81lW6t6>dim5Pm-!nSksTZfT3ZO^i0D=9mUeey z1zCaX)(G^MRS>6=;@OO0f$^0m&JdxX;qRq2Q*AjUE3mZ9%{zL!7V5(*H-2_i@Ga6~ zDWg$Sgw4b@I^RDiI+9B%x>rMG{v03J01?GsxA~wmj9l*({9$QGcg< zBua|9(Yxga-D1p(Sv>8H@49V7{Jv>E!`N}Udw<7#`6b~2~vW|lWKM@ zSTfxD%HV>vX$TMDZLvsl+3D`}q2Hc6 z_Cxw&vu94)_Q%fmJX%kuiWggA{7%m)bbaTYVwe6nqt=^`a;SDdsWX zW1y(02#s{e_3}Ojp2?jL{bZ*5>OU4S$95vP2LO`O-$NcD4tHr7mF?bKUjzsc9gdZ{ z9)@Ky5urZwA3F9*#Qx>&q0Euu+QzQow@ussD2y$~$Xm zsO3Dh|L^6^=WvRQd#9=K4ckM-0`c48v_yzT;=AkGq}&@AwLC;XWJl<9nfkuD_y$grW3JeI z3$lMD^x-LAKAb^vh;_0^rEB8{c|1*oa_{*w2FrJo41xv5$>qK-)1?V>qIzX_3xNi9 zqNxcCo_pFl9=4-A<&O|6uYb^S8XcE3+gFxNA5P%kJBU86qhX&}48jiaT5FP!qFRYg zv`h*-Y{ka0bbf!5&4!|=TVu)4ZoVm6b&gysRK_-4FBVn^Rn^IA4$3_QMdTT}9nZ!q zkl}?!p(XyKyQ6SiI1~sEu)38FEI3H$=}oeW1N%+TWMv@_kZZ6?V9QoRfN$kNoo73F zi=NivX!A%58%WN_2z0O<+5=lUoeS<*gVCKIMiNiKuf5imfO{8z3|f49r{_WG9z(~T z6$|_&`+Yi;-gc{#h2o1x`!(=Bj=8hd6OOg5iaqZwjiyKx8D7Og{nq^bI~E{gEZ6Ky zM++C=R08>`o6(^o6~82a;JrRn@Ea#7ju?w4VFgQ?W-EjI7T`A$xVnOAdjXth^OD3-{-~GD4OFvrJqJdNWies;O zJ*Q%th^74cxd}6GpTif5KWZL-zLTnCiSjuewc&k|!bU@DcK9aFZCqjG`PSVj~*`XL;zWNGoOVQuu+9x5U0h({*S@U2BWPYnNSMB9QLyTFevNJ zkHYaj1d`nCNC8NGs|t`ri-MMZM2ib9VADQiB_;1E^5WS7TpkHDz@9|Usf z)TQdNzNw|Pd4cj7SaS|>FiEx)g(z>|+pw1U(9-=i8AQaQp<`JLCKjU#18R~83V2N; zA8NTo3^*ytBFi26Grsc!J%GQy`2zf1 zn-wTi%(gqX$6m#6>aZ}W;-GW-Y|m3L%04>8v5UJkv+US~EYb>hu|Mnf7O?)Mc=qUI zwuS5dY(_#t^eFbnEvKI+1XkdeU9W~+Q;mt=v&1jz2;1ptK46AkS~sB;Hla6r&3iYU ztb1ZsR|_c;_UodMd71JwXX>qa9QHQPHfnq9$Hmesl(C9TbC7 zve1axL;I7~QC^}#X=U0PUr0q`%6t4#QSUs39PuIJs?Gj*FOZWA6cF0)-1C}R0KECjRUGT)p;na76$gA@CoVA1sq@P- z_#4F=#gU;|Up|o&0ol`Q)N!%P)l1o8zssc5QP_gfTwyuukJO}V7?bS+imyU{9Bt<>4N>2k2wD}A@3?`X|^0A*uT zu@f_OnFwXQ_9bGTtI|TMqo^i3)w7B|rHUCn&yJXGp_Y=s=9Z;}A5c%_q5IWE=xp#v z4T#$+7cBCZ!sAEi<gvllJ7D^JSrn(ok?9D1bf^H1VG;jU;h%>K_HP;F&c0`Xy z=m7Vxz-Q<>FU71t#l2uGt^4U{Xh7_vOx1Zt3zu|W+TJz^4f&2bmtX55WBjA`@kw3W z|9G3ei60We`rIA+4CO?wcbt>j6%WZ{=({`}%UE+71fYNF@z7xE59cuuHsL2tQixtfVt%Ri_B^ODn8$PefeY^|}#T#jnNuUZ7HW zZYpFSK=SBq{xLS(BqL; zkN4mPXC*tHL-m4M(sc8*Nt?4VGpx zEEQJvJy|Cd!WnhOJts{+?}TWHvUoZ%)!=rZZskuheCuxc-jhsSS`@R*(v@=l4fg?v zv;u%edcU+Ks_))k<(qg4vsr?`6#xF~LOTp)Jg%=P->52%$K&GwhCfM6&{C{2o{xJ-5sH0Y1VP6p zN(7s91nbq?u$;xR18WRC7v1L@?DLQS;Sr5hf=*4=bzr`d1o>{MmEZ`wNtS8FYJ z01SmcXGa8BHBnm$eoqW}>{%C$%nRERvRH@XHFpg_M2ms%1}k;|&LguUx-Ku+9?S{g z)n$!#@i+V5!ysg|^5XA5i_7&7J|SLj+;{6b!tUF%%@!{-3bak8+C#UN!A=`>LV1?; zeuklJ%ZoqP&XE-C)mq#q(RF0JsSv4CT$ZWpaB9mOb3M|}T&1tM{r1NfYIYwW?zy?B+juB$a$AS}26>^F<-gUr9spZj=! zm)zKPqn%iGm(IPBnTx&IC=4na1{l|A%!gIhf7G~m`rA76D&w)nfL^i|*2wd$6=yq+ ze5s1?QwF&YW1&M#?8B|gSFh;~@B5-MDM7X8j*bDhkomrzb*}B2`n|pdcgI7TERH!# z*MY2u{GuM^QQSq)P@cCYiLtP65>pLoZty)Q<~d)2%=>++=7dp}+`qRwY<=hJdG(!Y z{0#w%Itv;s!g!hMSb^t6y2krd6moF{-4Z4BSt0W(zHDI=pQ~Ft%K54iBJ0mj*gU|@ zq#$v3IM#Mc4A(t9;mQ_>#2ICQz^>e77L|E-r#^gWYS{m_vGLuJ7hjgz{5&`lACzOp zA+&c3em8*zfgSf&Gmp(WO(@L|O|>+?`@W8V5nSI)q<>4+Y3ydU29VAJ90#@{bQC>Z~W&<#SUB$C?wbbx?7DJLQ-h)ql!eOW1I6RKDQ z_?-Ty#av%U}xJP7yin?4Y0u-RJC(kLivYMy5@e-UUqcJo@F zh<(<@>G%@+W98yv&elPHPExwj`PrR2o!!js$g~Jdug&!^_%h~$O|7|RvCuRH&FMbd zeO4{<7!wwq)#!Y-5Y1IN<1_t@PRDMBfkb)_-$R67;|Bv<>J9r*9U(bNv9v9rgz+Xu z)lx;>?IuP+RM2}-tlwpF6oDrBUKU8o7KEFp>#E9H9N)z%!G@h)s%!Q#BCPyRZb%2$ zkvBR^{pvr`AuLsj$qG3B+yt%m&&vn_B~^@pnKEA0e*3w@#g?w_Z0`&;`434r z!IL+;KVDC3vc;<&RL;vh-(hX&a1L)$pV*ofMQDRPtIlpSuWd4RKB&``W`^(YE{sh@ zLTu&vM~RS!V=V;|J>Gvj!V^w)e>_l4pn5i$N}R9p}1C9=|)aWO2P z4l6%RK5J;~8=I@5r)NRT_>}DaXNm6PlynPuo{VRrdZ@$JSKjpF&#~)_O*WI$EoYlE}1S(73Plw&4 zB-sZVjNNP}B;ShLi(hT9sHL4acBX4Y>}SL7X2!K8{Fh|yDch#h*Nzc=7tn%?FsYC2 z9gQ7c1I)clzewnG*~*0UQYT_kXUe3rn%$7qfdPKYbi575S5uyW{s(*b#=3Wv0n#-o zl?jMBeOID3i7k#id=Eq5LJMy5pQJwgDPLBd4(e+1!~Xaym63c;^Ib3<%+5JJ29~^A z&*V7kAY^XVi4=0R5ef7H`qJV387K;Fdt37$E(qtX*D}Ckt;Sm${e&yB6V;<#UDY`m6xb)v$(nIHdf1sda!BKdBr zAjUbt_9cbBc8p0rk2cp#lM_X7WXNUUQ>LGa?zKcbVK#+qlHe3Xwmze1pv(M}GC&OE zIU;v6y|#VhPDc^_ja3Bjs*fy+!$9Ob!-u}p+l1;5>h|OW4R7Ki$><-yWi_h!Lcjrg zRlA%BH* zGdyxOC&l;*_Dgvz0ns{*I)Rq9^;@9Qx0dQznHsKT2$TMN1+Hm_$#}!jwVAiHYocVb zA4$8@QLqv`5NLCa#?v}YXU&6P__I;|5ao@JM@X7S8pV=ZY~1BWIJ6iGs$J({o07KL zUs7#>-DcN2c%zB9TU?S6N^`{9YWIhd0Xl!#m4yjt&GO3Oi zScEK^)^m=VX$N~3FAzSLW6NJ55tMz7&Zvyaa@TdD#4(u)aIRUFRP^p|Uvv!-| zz}$1}XkXvnwCC`OSw2f>%z&}O{pNuPQA}yg?o?;x(%fOtr|jq-jmIlZG%v0!5Wi*8 zvy6XNPmfw(a1B9X&GERx;83=JyHc{+V9sSA4H-n+fkSKI>G1LC@3jH!r*5ng6FhJc@|t zi)fJb$<+Xn$&&Z;^w#JGDcjqwZJ^{mPn+YTnHPyBxl3{;a@D5}*BC8H%+ouII0%5i zFuO=CW?ht>9<_C59l|6_jTXrvMMq29IIMi)Fbnd81${46QAY7fjlD6VVdlO2-i#D^ z_>~52+C8G^bBSi3jo8&$()v+HyHfH~kMd*SND@fxK#;w610dM9PgY6sSo?LF=}W2+ zRqg10K#rhl?Es4EnHo*%Pf<{Oe)Na_?bzz`S#szqmw0Q2-!B?Wm6>*idOzrO2Xo<2fuZhYEh|EAjJRsT2b+ zDel&2)E{NXK2^Uti-+C!#^)gs!Jx*SJe%`0LK(J( zP@QUjQMA<6B>hU{$Gph;_1r$ANtay&Qk(db@4#3DI{`flN>!BvE#$S(lsAecV&)&Zj`BQYJD@_;;k;jQ^>AmeK4@ z1VrzJ;er{gwIIYefLBoisqE#tn|Ui??_sBa>R9S-EG_qBD(kC`*N>$7`{qmnqLuqu z%vn?w#eqSiY46FuKz{IA#q`Iw>9r||&-somblrP7&WAbLU+v{5QL5;kT^_@Y@0MMG zvN0pVXUHdIa?)5?oP^JNhyu!Us+OtY4cK zyCn)d>WP0x8r$GKiGX(aE(z9{49BC!28eE((`iCh)=kFl#g?(ot3^-OL63dwT=p&; z3wnG0|E8jE&a)ngu=rN1&T-*yDgByns^IST=q!v3q>h0q}xXof_B zd8dRFP95KAdY-~v8C_>8{3B7E3!U40kyCOpht?!=pR=}$nQHTp!s$Rut67B>R&Z10 zO_V>MZ5`|EdDdK`md1F#er`Hzt z_RpJc1xU)`N}RcTn}Mf5)H8L7q4Ij~&E5@x>By#Xhd<>CKrARu{uXPBk^c3#Eh_?q zqSE}HQ zwcFjx`bT1AAC&7YKfAr?c!DCcm190^M>1%)GAL)s`V&btzB(bW=2Y=w8MP7X%OUBd zg~mm4jpf)yPw`Q^l|ZX%a|^cEFprXI><(lNk1Sc3_1oMXJb5d98?EtCG8c27xAf;O zsSE9KBR+2&?8fp9is6FVk!594mTdfBpQ*G=+sEhL8!=snxsZ9{wi>g&klJa{qa_`> zG8pgWJi-;UC}4ly5EyuJPUS)t@; zMi6Kds~u~ORJl__m4_w%tb6=D%e4ij)GwSoJl$21a7ldEs4}P*P#`>vdlU8VDGxFE zu8*CW@`$Uq7roah#tf%C_8dDtYeX-a^UVYHcwoOxF{}#D>qD7-nXphoGYTRq(UWzS zOWUEd(X z6zfGF2$W6k7`Z#rJNO_v&1xowR(RV0?U!|oYMAUia$NtgB#V2~mnL~bPY{#Fj7c`A zhaL1i!Tfnq-S_(A&pa7x_R@U|;`?esQ*xLtZxF}Ep-yiRz!+DG8B<;in8Tu{n^f7R zg$ToscQ3o2e0`V{zA!-2f8?LJ3+UpgrMCaEXl?sQ z2u~(Jr1stSLYyB$OHz74dt2!%XZ1pebu0Qi zzUPu^%~n=Thlb#wA;NVBB!^m0YyIvD54P8#w7zv8Q%P666f$sVhlJ5Y6t7sRnGH3|QG$d%%2sM* zV-myUUrSD7Mr<-c74KY^?lbD+SJszK>SAoX_`*!Wn~^B+_xa>o++FH*(pxDKj$0`{ zFTr^-lHzY|ArLQN|7@b&+n`_e34nv8>ouf5n~z6Y{B@-o-&QOm z52g!QktvhyDZ2S;h%1@2wY19=mJVIqq4xF{-Oa51m7DDkhRn<|6lgbt)3%~W`{FT} zrk9(2Pobx#|401|n*&y&0MMQJx1mLzdOhex&!N6fuF)-CbhFm)0EZt>VA{>zTGt)6 zgNt>|cghor;x0-n*nLR>#}jfOSi`UBr0E;|{uG&XQnJVMi}L?d8*|9<@xXy*sd(X-fDW|FhguCy@ za@c8y&t(KQ?Am9G#@Ig4e&a$%9472Ig^x|g)pm2yN$POGZ7~>mD{dgL8sg3%p?7&# z!@rRO z=hR33$MKWryj1MvB>V3-PkFaHzC&P}X8L%>a8 zwn&bjOf&Elfa5`gDGB`BLV*_|F~i~lhJS=DS2fibc+i*7D^;oeyP}8E;|pyLe7*a) zLYLPE%3tLHgnLTbevRg^LdlOxR*0-ggGoyo=UOdAhJ;kIg!zs(edEK`zK@|y!pee- zWRrtT{_)i5Q)P&vLNELhu5aAXxe*!Y6N=$JY2lG~<;{C_|xR{n9HpF3`Zk#43LlP@lU0(h)?TsBAOkc@?r&IGjNmV1~HaTQ9Dq zX*dLEtNJ675g+oWa?Lo3=l2!ywg>t$+>-&?tuG@0l0$kt1WCO(WH@TAzh*jNl#CfC zt;FCYKeVU4Uh`xTiT{p%Ey;i`_Ydk|cTClMqb((y2}`VkPiz)~t&v?PALS@t!_()z zjzXtPC7PB-FR!18h}$tEkAfNdD46Js$2A2Tn1L%G@94(BnVjP*2;xRysoDL$wYTK% zxb`F1Z_IBc|D#>sq2LEwQB`Ym-c%v1A$7kIxWsJmKgl`^hNzn@j7!5JptOXvv~(&d zNFxmkNH5(WxpXMqUDDF9ba!`ybc1v^dzbh2z29JG|7V_=Ip;jTLuD~joT>b?uX~i` zVWIasl-qDecSYN4Ee8*p$a}rMWAfmzm?J~x{{B4C4k!^Z>UBA>zT_O=a^`aD(~1hZ zhbr6+7@{>}y}S6WUU=QkuAWB6v$_*a8o%AA?3>QNI~uOxCxqoqfMyfd2D`Mca#HB` z1@HXHZGxiIgn1Nvhg+KONK9y8EI!+oD=}GKc=Tgi5+qzYD9OarX{wpvNShh5Nnh^d zS!^EdC>ODoUx;!|^l>#x^2dc5X#5BJ7ez@>fpBfV(Zo(x(Cs<>vwzk2)PT8o|B^wq zr~nh*qOvFMJJfZ5?EYvkmCEaqp?!s#PBI35q<0Lr0`tSc=EaafwIhV8vPQv?I49WoXD=U!~nf)ZVf^70JR} zxs8w;P1y0B4B^L5RGSnV!91*c^IwIX2N+Oonz%@Zg@Yw*tH3pjhZZ4AErmmoTwBN5 z>Q7hITct_LdBzb+x#oDqQ#BgBJknRtCKZEOz-3wKn7iVwPDX6&dh=OY3*F>q6hvxv zhlsPVZyI)1u;wm|2z)@+c31Y92vb}i)9MVPWUsJd4)H{xQXm&QjTe2RGNbth0Tn42 zgs@ldw5^4(l+?=ka4$Z zk?kN(T_=gpVLMc4Baw5jdLJ3~J5{I_y01VMDTstr5=c!eDm3K#nfrtV}8i)J;ErZ-{-t!w!jNSF4_7!q(8Jr?Drqv^+ua30wD@*3^c8F$?!Noe=n0C3r%3T4^ za*_v3>fasSi4^7+i$>YBaA;*NH}q7JtgOJJ1V(PRDIvQ=)pU8k2rG*P@XB4kH1+V< zWMppv8hTHo-YuH}JD3-o&KArX{@y=o<#RYVs|=zc*CWQZAZwMDMJ0GE^LR za(uF)C2Wz_7c{jStkYAK#`rox+Wq9KZ)8dEnSRv_KRs9XIklrs3I^=rz|DORXp>01 zg-q>M!l0_cVR~er((adgJjOnT_-&l5WrxInf>%wF775Y_2*Xo7w2Z$0?I1c?7y8S2skTR(A3Z@9NsyZ^Pu7%+5B>HZ#;Y zAI-#-@fbhyww{J#5p%lPC+R|aV%zU`xcO^-RRnw8Htl7pCzppfJuE>5I{z^k;aS`h zbUo{tzCR3M{C+%a{_1tVdZN3sbXr?G^SBX)N6>n;C#0Jccbi*V*>s{=v!fgAdeWbz zUd%9kEm;pIbe@m86}t~LtS|Cn5LzX;)(&sEcfd0vak{{Cs$#R0zfH|61`An)H-{j4 zQOv{>qirsPBsMzPAK-iich5`6WAW)6Y@etkkQjdWdarpu$w-u&FZcn>$48%OP?yl& zGnRTb=>Z*VSO2TS_Ugkj)Q%>FbN5nXZGiNkpE&UTyL0W9{rf@SkP0#0iIPnNp`e4%?WykXojY7amW2su0YS zWYF)}q@@LxE$wn|m0#>A*O)wEA65BOvJfUNv~OYM-$lpN(ia%<+9$KQUXLlGl1)23rm!}H-KR+=QuA-0GP#Tw{adK6KnX`v}&W4Ky|E_C0);pqN-w<{!_0S4k1lC2)i^$qlE&ts@Cksx zz|I?tXNU)Z)$YoBUKG79CXNHRzT|9*g1j3SMV1|K?I&Uac@vn)fZI$7SR4n`HJ@8L zRn`ZUvYTc)yU#4%Q0s{m_vOE9hbPxeUk}r~<>B!$-A0S6AyNjOZ1b387E>Fbi>z zSn}p~_WIPnc%WDF*Rft zHoJ?tpgXI@CzL*hHohGZuQnc+&(T}XAHkBI;`+!vk$5a9&n^JZLA%51*(WjuSpMac zBz4*{X_Hg-kvVj9r@EQuvZN}?@N&qGUe%VUadgAs#9o&Dvmn1I6EPsI=#|94w3`tuZm%(k5X53t@Pn|>&mDTCY_ z{xtGxjWW-=l2Ibm?GBcRPi!ID;aVbB;qV7c5yO^J4P*5@(C{SBM|{P{!C}HBxK|e2*;(RG>wabTu|hsr=LLZ zKl=zO&RyF*P7dxrmQ(NT`gVDc&9>~_CKNv2Gk#jh&p&u7pILMLCeJL--&}kIV-KMT zu@n`ZoHTW%kxiLjbWyfGh4GXwK&1{1(XqX>{{$1XYO{<8@X=m=7==1=BhHaNZhtt!vD<-paO*d{h{=L=wAdg0h4^cbeT0wu*Rz2mDD;yX&Fcg7a%!rTUo$~WiP{gk1t}qE^{*60g zTr^NS-99F;Vz1Pwtfxs~k(GSP5zCH{o=Q>7c`9DNG$AOvv>yLMIyl<|(e8AXQFG69 zsm_<-Ojm{sq~#X2YBAXv2k}pa#1ShR4PO_1$80S#+S-;6M4#fPP}!oqKT}@{ZO@kl z5=y!-ax6m>UyZs}3^*gIRfv~nNdXIS8;Z@_O;s3OfF&J3V%kkhEy0>|8~mS-aC3bt zv#0HswXA?Js#-z`I2rZIw z;WB*9rsZ}!BUf-=qsnx=sI0~9y8Ql}rY?-on-odTG@gkgCJtwdqh6{(v~+b@Uw1+^ zUP#pRrRVM4(ubupjRl|Ugu*2X^>KdrIlTGu9ht$}mR6_Hg(7G9+W{CeNQ$vm?g6}i zKG;gu>T(`)&hy^&utp$T#*@8nJ+h)~S-|k}7awu@*QUMsTVmu0_g0Yvt+UuMp*VSu znr5T=c0ThLH8{3)lW$~b!uQ5=79Xbukl{HSLeY3k#{lCPir65z7V1#nGMPICX*C)D z)h{~*t^0mDQj84xl5n?b^fEkz@rXs7UcA)ooSr!o0yv+L9Lt%IG~x&C)gf@q(+tcO zg9t%tF{UclFL6jtIgRSU+X-036rgQGD@h-iSZFY;+0iNEOT-gZ8kG>f`%4%!zKDcF z+8b%y_&^6B>ZZ7Wre$@SPhq@(_1CcuC|Q+%$pgv0_jBAITmT&+NCeWSni53)jYTk# z>Vs)d)nBRRvDye{8UOiqfg}gq0LkH|vssjieln;`mxy=^wZGJ4em$i&TpgeUm=-}@ ze%pXq8gURhe_kbq6D-z*Kc!1gF=3kqF3F`Jsv-=qF1eS9$UI@DRj_FH>8#{)_wvD7@u)T?AHI1`9V z_X^8wxC8+c^io(d3>a05Njl8&vwxu7*;yC?CiLgS*b`9vBfsN;b^?V*4!4>{@xqz? zLSGT*k00-Xf{wlF^wy%|+@wYv%Ok5>zG&6xF{H?S?EERwN&Y-0%$3X!8DjtjfvcX? zA?|^G$BIdsBrzE=`p1y4Sy(moB#PoDgB%S0!G^t}2h8mYK23l%&_Gr&r~-v}bzICQ z8evQyUgxJX7%Mu4Lw}<2@GwMKkO z)Z;+YwA?^MFb=+ZYVQ42yIj~$TnbDW@#er}xWeYOZ|f_I!7#+L!|W9k$GDo2Uw4Di z3_|aV!Isv!9%L$n7egGXpS`SiIgY9YDhJ4Jb0)CR88URVw`OxyJ-;e#?R3ZCy}iv@ zFTEb*dAR-vQ|;N(-%$O4jdO;_s$Y=bBknD3U~*xLoJue>DjUA1#`hOHbFYuo{sKdQ zISs80KCOVR(>!RmnU>ps|?=-6PQx891 z&16`Syh3jR2kmPs{iw(DEZ(D251%eJK6Gkhv?-IzO;mT|`bA^Cmnn$o2<%ChhmuECN2S-?j zCp%GJXj+)Kh`#*w_EASh$&lWUtYJEPU+C3&`4zK7?i)%~x#3nC2Q5b8l{8dt(E1VN zUO1Jm`pNCWv+d`%!JK+f&?rg2+AQQ|0vN`j~G*gckHF!AI=oS ztPP__jm65a{7?#miZ!|PuMBR!F9@qjTe?2X_#rP6&P3Z6=^tuN-Lm?0MV_;tjajJ9 zItujx7->u$05jib{=a2JVqq4Rkve<1SQ7$9938 zx^SIGz2(2vT8dfE-Vi&P_Vy`T!HmK!Z3#Cs%AnVccC2%d7uoqppqW^_X5Wq zUSejwW_EcJwmBgYEO$E_0W#M`3pJn=&&+ia*8z^1ZT;w96vMMa&{0nT5PdAbQ*4t&>R|;xJy5W6rJ-kvsk_-4@qHxwG4^Fe1vr3 zKm10s`Ck3p5JUdsK>j)_mA@HT0yXsx^@qlk)FfN~I*O7dXH1a>7)r!9j2OeNCNj`_4Y)!9#Ls@1Fc7zb04J5wqf zTuz>D{rM(O^AZ#1XWT@G!fWeg^gQiDr<7K#I}{-~_->% zB?OY>i;xKf-W@pW)e};kV#HUg8Dz!he3dkvSv~T8OC;#)w{)8JqNJ?p4!NI458OhT z@`dh~urB9e0*xm|Aj%Cy6W*}op_m`HWDfH6y4~-{uT@!T8S6t?k>hFOEw|3(; zf~gp(%{HwHm**S{?{T)}JOn1y06*v;N^N~!8M_JU*k2lLL{jj!T|a}||4N@?*~IpM zLwvP!5KxTV>XNI*%&+s@`QjYzVgO5kKi{oOqYPnm&MZ(qaj=@H2%FZ%>H@2!f3>v8 zvjIZ?1H{z9ncN1<0;pH3H#5=+!dyFev)XC8+HF>PCYnMze(bkCsr= z6Ld?d1gGkVA*q|wNq@tP*hQhno3M>uHBZx|%{f@E_X*7G! z#01;T4eUk}d>htnLzqIVH;^TMUB5|<78?G-dtoOUl2=`wCWI!a)yW!{hN(t?(PNAs z%GvV=iD8%kVl?bJ4@v;ZdyvD9t7K+}(i^Yttx=K$D5S0_$C?SubO+<(UuWaleT7ka`V(#vDWI z3@*v)TSp_b0`C~klWZL~zBaq*zTUY~BKtOz`dj>QdXn#RFk3F(cU<%0TPDs7R=V)J zrwo58VscBmA{rlM9_OdRYz|%QTq0;t-Qn4wLzj9ey-IHlzO2S9ed2Li06LQBXRbi^ zjHPLXTt<1<)xaQ7%P19Z@M2oy?^sc;Jp6()wKem}5Ot4MvD+Y|LU62twNfVF7@y@* zy50Vmmbyu!?&6*%L{PbWE~i6WmqFp-a6O=Bi;M`;Jej`nd7NcY~9+AzYHOXO_Z0;^6SY2P~5C zBS8zZ2~6UmbcP-$=czYE#nN=rQ4FjUd{BZ^5)p#WsFk@PY7GlDFdYXz zsPhG{6A$O5?_Fe^A-4Wc!@xVt6G9-0t`zQx#|_dGb_Oohilht@$F9=%zuJd+Z3+V4 z;XAZ)d~8dY#!i$hQux)4Y+k((&J_2T=VI8K+Oi8Pct2Y|GEcquNy!Xgrw$YldlKk2T8mf^{!!3dv<|><1Sv`Y9^iG#jv-0>OA4n zq{t}-{bk>(AO&Ryo1sP=`#r%U0aOiT<|KumtCY}V%yedOU@w!=zcdxb+p#ywz_iD` zV=t8i{E|wLaC$Adra`yM(RXZyw0)Cd(e@Xt;l8Oe|6L(=iZu;ID0pVQ6GqTg!xW@v z41A^$Tf*}Fr*XV&7pI?mRO7LWt)}n=(O7iV8p~7FdWr%KEUeL=2?$WxToi&g1B<*t z@SweoPqG1-WVe?A$%}pOjZXJonx%aH=EtKHen>~GD*Fj$@w^~_^x!_sCPlzfeBX84 zBvfXwhIwe+kJghnpC6t{xJ|}a5&bsS~m38hP2S=x5Ka1D(;y5#RotuwQ@%EqW z>lF7uWX~hcGe(Nqm*}sX=WdZ1))0DiqE0fDZ6wluEDUmEG~yMcRO$^sxJnBp->y5q zzs(+X3-6ecfu7lJ%dFeecHtJjG1ahEM%F`4!^OmUTftN*0zc4|AD!-ZJKl|mbD1iP zKR#z_p@@G6lUCqT#Ztk8?|UP|?AtI{ zV5jR!p;Bd3{~bx|_hle>ZR-Vq(x^ERQ*}vT#6&c<4lGEgxUfPAQDmqGs+IZ5?M4(P zZ~ll~q#jGyLcft8z3ehYPeG0dcFLiZy|%RNb~qImtfO{lkiLi|sn_B@UTW6AgRhDo zYM?%!6U}Yp{v*rN##)1f@QPok<2&$6T+b{T(E-C=*V1Ls11*3sKsZy9&#mIOGwI1@ z%tlWHnb47t?XSaDGWU=4^(i{Zzo4AH&xm5yd=g+u+=h`hGuD(Aj+b0*oZ$=sxFq^j z-a;fT8FY29Kf}g#Bcw!mapmpe)$ai-m_dg9w33;Hd7e z_wwSqy0KI}(h7Q-mxlqTl>fB+1BBIyMyWhu*OJAn$03AWsGYfuGtM(a^T$ z!Xb*?oc_JnuleX_<@CIN4!u|B^^**aGVm*Id}kku7%NT`NWdJ7h1(XZh#*n2`Tg?u zdugJca2RVIOK-+>e|p1N28sSupbqyWc_=2Kf&hq~J_^bQ|-Lm~cvOlgfK78FlT=wq;nFFQR4MN6EPpdgb|Y zkUn(`0qwhRi@R00qgVgqPNv{csYc(Y_-t?;{92Qz`{SuYMP)rg_Fm{v|&u5b-lfeT!*G1+BRl^YKo(7@e1pCjvUO0{qt}BRX-}^mi zh^9xsqA)vqvys8^_hJAydN#xA`P_#D*x0T&`|QrQ_^bz$H?Ej~D4_R(O?roH)7WHX zYzEr`RLhO`-QuGy&1b{4t!^6|-^jpc!xEJ(iH~r1^Nold*`%|X^U+rC7tCGa zMj+hJHJ`delD2 zXs|bJ$9)Z)lVu5Wo(8Rbow5pxVyoH3j6S9RSPyk#BFCXZOd(;4#?3sDu=Y)V>nav_ zcOtnPS2P17K}FG$?Iymy&Gv=ejrg;1dyLeMytiu%SZz=GU^Wf`errmk_79oMuvaW^ zvy1I7f=`7(V7|zB>{0)qVYh+SZR2anFqr&Iq@etY4xC-IXE84(Y(BNENyt(WkJDOmXtJIxU%$$ zVEN=d!pj~WO0|KCWa>e(YZx#}3hnH8#xx2#9%T2r@Bz9j{jH7UQn7!nWlN9szKMhU zFOC+r?+Ch;{`Eq9pb@11+!7TJd2<3Z6{P6q*KO>3a>n|X0~X;WkRj~(eU}2Kt56aD z@C6K|*JP2oy778C&q&DO6T6e>L;iSmkaK(2T3nA~@6N$dZXD@{MSm}J{lqd(?!48* zXJZ+2I6pG4V++q&_Yg1wOh2r%(?|c}CLb+uV>U4+a*54Qs9(o|z#*hZ<-`0UrcH}G zI1`W5RP>YIKU~sbRk1gfA44{Fdm7!Z%p>lK87&F;C;=8Kxg;mb^d+x7=0|(t#^^sh zi!pNO2P$Hva)04uYWib8fa$ZFq zXK=I5IqHMNSBD)cVcq5Pi2*ORVojK`EPdwV%zY zYYPhOH3BS&!lUl`2_ua*sJznU1;bq&$V+sd|0{2>7HIzG%_zZ72l2Pp8|6;%i9PH*&YF6YdHR=4QI}jNKzp{zJSv!(-te!5 ze)Frf#LZ?05+kp`>To0w-z7NG9m)Juxy3g(pM27@HY`2 ztYud^!Zh`8*jlLc!0JKPrBiNU94!1CE&?pc4aJ<&5SUS7y@1ufBYE+o&j{9kj32Z1 zR8~K#84gFmh!f9sX${R`a}AA(-o#F84(tktO&c;Jefq+th7e>(LGMKo zPI&(mQz=|Ml+gPC6DV!)Y4@+5y|+fADpbotqH4V~2}UEyw6!=$N+W4}%tq8CgYZRF z3S$iKc+z8;d#};E5)B3A49vMk<{Lp*`iGFPy~uBt-?9?tvLnPOR6ynmyo=3 zCQSFUKxSMOmX+Vg;YygOWsr|f2y$=8f`ENE^?XDYStV@k472#AqQ{TN{0fGbH4J&S z2D0s%d}r!|QLWM=52}!zl2m4!T$0;VD#jmO6_K$6o2wf?`tfz?8_fYTFy2pJ$-vb| z4CEU91EYTSh+|^I@Zf2VTCE~4hiIcu-^2 zDt*O;(Q`F;MB9x-s6eX7Xq^nAgbtMVGhqcv%z3VHiQ91onkr7FZ!35Maa)uU!&ocS z#+sx@_*L!kNl})@*3tT8^?Qr&b9~8k!=qmgQp!IEkU-=)?}^}(kN9LRBxE_zQ5-;%p&IhCYA>)C3rI}#1CE15EN z5&DNmG&UZ6UjIy^E2y^q@Xgjh?r4=;hcj8YZQ^!@hn`#9B=lEq4I(3AmQj_)%g`JO z2HF-TrFS1RD{2+{#ulGvWag=`1{VD_nsvAT1?%(1Q%Yj)dX4j7*L@N@uNfKusmV@b zvM3332@7BQA$PMsKzUkB$h~KzJdj9pv{&ahoDquy~Lfg7|x4au%>>PNhV(36aMRgX`>(IyauxVm#*Z?N~xsfXj`^4r;l3(xI~6PqG)Ul zQ|j)MZS=zN7iupoGkpTqtv<}$p`(ShJC^{a>p#}ai4*9$ML9p~PUf|HL%uZKS9XswrRMh*Au*dEdRch~W zYp>)L#c;b;cfQ)4$Gl7;B3V7gOHI>yzlmo3#R=ZRjH_hvh_FMQR^hVIrxfyaWv^^d zO=1nHYuQYe^w14O$wX6*T6(P+{CcK(ljhh-p9jHN#b^n~`+_Ee6K@N(c!Q9ix&j8Qv3T$QQ7=sfx9gsBO}guPGOF1$oK z!2Gi%G|Qmo?8v#sve2qv>kSSfTN}8$vA#W7>rkt&qwEm;8qQGja(E|ZY+zb=`pKM+ z1pGOc&SfT4DK2|OY6JpZEw9@GG24p8tL)eWz1n7|$yx5Tr z8T57yuD2{G3!m*3FPj?A)lPBQyAe;HX5gIjlu6F_vBX`=YgXIF_w$gHgk# z|F?CxF*UqGwBTV5Vf9J*Q7+N0ckNxcdtB>a0jG$Uq1T(UbR<&>SO94nkZ&9i9Eup(qdAleQ|{q%^#8I zy;3A3KQvgCdl5HXd$dD24^aTf-+6vhL`JPW-#t_>{th=m1OFgUgTET5Dy`-i@P0^h z(q=3TjhTR8f6)l;7D)Rl7Dnrcde+)@`7;PrWsc}wE_w;``^F|t2@EhW8(s|pyogWz z7ZK4T+TKSHUj2{+PvD}@Dp2#4^2icD*6og?D|i{C?=V@hBNN`7%+BpoqfYzk+@bg| zWn9**GwWvPy@u0lTQJ_c70#2$`CA^?6&*lxmSmzs)}^PXC(BY!H(=CFFxw1$yfPo- z@Q>peNfch_M{;dj0p5xdPsJTxR`RULwH+PPhmy9zTA!Mht6}G5Dor6wE|EjE(Z}Oz zkKVmvqYrO>OZ*Cn;(-0hlb2_5uO&6Y`YTr>I)P}aMNhw=A>YnhlppW#Jnf1WL`nYE z^{h@Eqbwp1W?8n&&n-E6N^Rg7yQSO-+GGyEtp#jeK;N+| zA2y@A)UqnqSfWFbCRGTDJX zuIuPMMA#2323GeP%)YuT8{2$wh&nn%2rqUfy_j}TuzywuH=B~5_~U{{eu@4_g$gI9pnEIn#wlGjw9TPThQ`GSDYID7@an`C}Qeq%^ohu9nW?^8=2x|s z3EPH65eT`T3inmRvIsJ>oaEq-2Z4a9hvaz{81F=ZmAkD4Cn;@72^*{mDWJt=1d4wn zaZODP{D>)!flOi>?Gz1!cRH!`#qU*4Q<2OhO6%BaaxlE&B_5d<``#`?SoFNW3-GUzoXq7eHsa7bcp?-c9t~kI({W#-Ddh>2EtBwl^7U}Y%cb^@6Y|NP8R3^RR);5# z<_>?K{QtP}27lhD2Z;*T%j>oG>eZ_Y2fA(E0q7r;yoe=NE0JDmAan&ir3yyZvG)27 zmf)t3L}0XWhzGynw}R8slJeLhv8w%(P|0yeQQMhxC41lJQYs4E2sUyUp1!I8~6 z*WKD0LoVONlmt9V#Dm$arZxCB5n6_2^bgNwSj)w4?U~rq@7P>RPo4ZzB#pyy5k&ox ziLf@0^!(qx2ekQhq032HPiATXA~L)vEUYcvY*sPrl~*uoppom&dYrI02hs3_BWTt1i>2E^df{d< zMWs8_%&&w1&j-Qo2%{ONx7Cb-o*xqL3lG-jB+Wnu0jueR?S|N=Rktxu#nCN{AzSEUg{=~oH7>`x5HJV#Kz-P2l&2Cm%!cR0aXPO+oFCX*y#B;NRVI<4 z-oU}?yZ*8!r4)nGo9ZDXLy48IGy^OL}dC5U)idknN)@2Th z11nHRFxxd`LSP)1Ee>?kmMUVgcgdYp5ec+R&CHbYZkUY(u~@LLqCK$(eQg8;&r!LW%88I)LDlNg!vdf)YM=9hEFUW= z;V}GsI!>JDMybM1O68o%w{mefCgeD<E05ePm6$_VO>!YBPDP|c7o~UMBY=IGPn_J2|V(Kjk8Q!x&;^wb1*s$BF!6BU8vDlNtw z#oA<}hD9oJK4T!g^YLS8C^7D&vPLyZ<5%(Oc@o>c<{KU2E#hGRTtE4zA{f`>wf-oy^4Qk zHC{})IG|j=hI9B`S$pW|#7O(F*mVZmVog+d$cPWR^!ImWM0Z7Bd9QQm5f}i8-4&+( zjI#2{E@=ycs|Q?>wpC}hxQR{}rK3IXg26cD<(r+tyq*bVjfvEW6HYk+eA!dA>4hdZ zjn@uU#^?HU3kJ>RmsDcnCFItw^SHuKvE^Eu@8HfLT;=R3?Sdax{TuR(Z6tiN#bLHB z3&!_-E$;y|aX)w0#2{Ul8)VHLDDlCSlNwX|^{Giz-kZV0q;HRoFJYtg1hk8WQTpMK z>+_IkCO6Ce{q>$=Ml8ThIiEh~_R#~@-5rErw}w^W(uRg6up#qm0g%Bsr|=SkPjUp) z0v(RDOE_U-OR(nlT9H)uA1Z4hfa5dXEFn-xrjGVpEBgp;UfTMq-n<*W(SgKgR#*9t zs+itAe;Ff%Prb({LgHftNZh96!kXES`>Ln#G&j@)+u`ps#R>MqjLHqc4YjwNrVh;Y z+W{EV6jk5#ys1!eNaPZgWh78uyNT>MegrjFJpHrPdfZea za{{o2te8$f-s%8KJAcEocv%{>XqVJbMoui|QozdBg&mIg5N3YdOEIUa6E9TZS^v z#iyK-sB*U=gzyg_wnN7PzuHo&4BDrI`kEh5zl>BFb;&lzm)w-A{Y0zL$O?2cL9vdy-^2se8uAy9bh}y#>Mi@Ab817Ik+7uX4tgOPb&Vm`$zL z6w;ezOm8T!d9TI16Qui(1>N3bcP4j~uoIkyb9JeyFBfWzBvg*% z*qJMD7ubT5N`0fzbhm-?+~Pa|eP>1`k-GQ_>Thpn7yP2_!=)s6U}a6Au;{j~%& z9lKfy4sI@cq7i3!#61OD#A<1qi@s=Zk9 z`(fn5&ql5^`xWL@hQ#N>!w>$0h_QT4nAWLGLu_({y<# zEK4lX+P6sxNa+i+$Jy3{xF>%c;WjhNpe_K(En)!!9rSF!%0krq+haSgZY23;B#=kj zrGQr)g@2C_25a#(&V6l+zdA5p<ak{xg8-IYHCHE6eE(_#^=F@f z>G53Ruji#SBmjP(5!`M>idgdvw3y+Sf59iXKAHh6k#r=L9{@u@yuXrC9$v2&n{4^} zXsts<2n$sNV2eU{K9H>p#HB2qYJ*}4V4t*Cq#sqn?GPCuc`^5icycu`NnHdZ*zBrz z#P{kd3BSXArN@8wSTbz)7B3t@DU3Kp~r;iCb56544BqWSD=X)LK3e3?9hC2 z3mcD4S|X{4K8Nu9iO@^mLCR^1r{s&Nx(m6<-Sgb>XpzIO^9!`HvwJ^Nnbo3iF zQ*_QmY2{SxX6ADo1Fhg)(q7jKHEWdkSn6S)?;hveoM|;^0@dxjjaS;m)Ic?cu;cSU z%ZtH1+*S_#+%4l573t1GHPx!xAyHmezt^Zm6x(mg(LYf_kOpge98aeSYMBa#H;ODY z<@TUVEt3mmf=E?jLhR%7=1(au-sqFc$Y)7s1!2*KFV#YXnj+32&??S<1W&NSLqR0{ z{}4_-|FCmEbO?q{GhNHNC{rZcp*UQ;Fk&8(C`F5_RIDbIM{cygPfGZ;N9yot*dWUi zT<8)QsS{qklG>`vaRKE9l8FDTikH&{kS(L42bK{US<$`yH?Hw_C%)H~1Z~Z-=UxBe z^m$mzd|+$F<}ikwBRMZ8nfV%@-0BhCIK>^h*&rSFnG?k=bwac)fo$AjSd?p*&LAl* z8@7ArcGR6LQLaydo4A)Fe@!pF3x^lI2U!BtZlQv|DU=%0aL;UM72b}P=oQv;q5bNV zRp?jhAL90rB~>ncD$o{trQHba<07pkEL_zV80F}(!bip5C9)*8?;nZPVJ&;e`Plzm ziD6t7wj*(uNDuKreu1JRD;m2W5vpz41}gk0*%7X;pB(hjIFI$b64mQN z7En~CW72^{TpT3lzb`uCzVK}PWX3N`vrgFoh+ohr zaP@GgbI|Bnc?*J-1El9pszyc%6Sk)7)|O3vh=g?QqO*r|zqv7VprFpFWPp3l?4G3cbH29Hs)W?SQ!GT~YaJfz z;0Z%MC7rtBAkyaf`_m19PB7xu&JYc!TlxkVP5)oo=~M?S5CgOpgu8;}k{Mz5z7KaQEmsZk>_S341f!Hz z(*Rm0&t5STA*{f=&V2w%0Q#=Jk1(naM^D%R;K}NH6{mMl6_()StLh6^ySF$!EZ{|9rGZU=&EjTLjjw0C&l2ua`e-Qm(W+haYhE_nlU#SSO z+^l7_&wS$=szj_In+sLbay zM<_Vb`&+f-wr;!YBVnOW30J>fd!}B(7j`@Nq$1p^@qw*{s?@g%1f35@NPPLl)$8a< z>vi_6|F?&rXPk_HB}|)Oec0og?*+qcp4#UyfVEO74LzB=jEn@i&joV_aB1%A+7Z&3 z=T?y|cCQiDn2F`+qyrh%;0Xt5bEcI08Qcz z_LY%x`L4t||EuyZYiKjVN0kpffj!qJYPJCW4Fd)mdVQO^H7WYr#>KH8g>@MrAws(w zODB|8*m;6jNieFYOBt#aW_Rb!0Y3g&fU8oDiqbjXiw&TmW`)Vp7MJpJP!RKywNeL4 zck`ZpdXhUl+Tw^0iBvpAh)!MqkrG8ukq#`|!tZ0$!Gy$obetV~Li)`vx?ROfVbv#z zM_XF?#)vAybAD3}oiW}GhI>_zD94XKeX~0lb2I%~P*pOKyCYF@)ffdGM6b$3Kdb-T z|M~e;f18@~Zg$WW9&F$~@KUrLeb+gzYjH7K(S|&Aw~kQ+;QFRdy!g4Xqw}p%`Oh_j zXF6u6pNY`_%ISq}56NuUuH~@nwp#Xs!HeGiA0+y)_YPGnELXNJ!kZ$=+app2i-QIz8+qte?I8bD z$32zl`d;;P&1H)Z^W@F0<}=sbq7CP`H@7|J00+yG!iJYKObP8nWj&!52cnD7Ag-lA z|4i?Gd#mzi3vv|6tSIFX`Jm7|wvH$5@Yy_Iz!N?$DZ^8gJhD~aKWm{ZthG8kw~0DW9Ga*6Q2yXY#jC|hwS^!X4*vDukO;;=+3$!ozk?RV_X zSy8#@BviV3Ly9`cTxy?`HKO5fy49XK?@KzFmSq@>ky!G(elhWpZU-3MTf1AqQR7(i;CTlX`tJM zbpKGdvICoC&NUJF#l#`(c+{bEwa^2y)slkfk#C`1#b0?#_0NIl4U_xuF(CG9>2z6V zZ5dMYJ?D)Y2wUxxQo}KEBn{0lKi;w&`NqLd18?P2l~qRS%3c|_l(jmlIc%!p(A{c^ zLVrXc&nT*S&E%OTJa#~&P;UfFqK~s{CPWLG$EX}dkv~d(wXp|V_gGFx3tS|i9bOMQ z_O^=TQdJAAEhBCzq)6jeIyq7l)G(+MGx2y;E3r2UWVNVf#-3u9b@-mA(XBf{ys!bO zu?S|R`VnupVpH$tP|tDjh}ebtjbjuB-Pk2~;FoGY`BW z{}EReXY*xBlHFqys2UP+DmVQ~9D7luaKw`>_W^~ga>ap#R+kD8(t9+-PiT#(Q?R{U$#yE-Za0qIJpApSZZ~j zD!P=T)bWYWLn#7RbnzRq3zvSWfl8eNbB}S;?vS(E+ zs=bR-lmM?kPu8o_yW3}c<)%Qwbc=TQL7)3*XYDm_$3VC7uWY4#pcTlEt#&J0B&PkD zg;425dz}qNzHPcT8A0u+`IVd|D7zr_0A;uLtyYjJ;yps9jo{X!cA?fDzP#FcQ1O=@ zHHQJ+GUpTt17jJ+!nL2b5^R{C7A6vXW6?gxK%P3Wx`tT@6gTMg3(lyxPvsad|LO@d z|8L>PjW!r>*iq{s7%&$yl0y?GAIb!ozL(v>Bc1L3JtXS!bCO1Y&Gx@47wyWZ_ zvicOl>h>v6$7j&>Qlk!W{%Rm2chRKRlLQHe$u%NxATt>D0JyKi{v1~_Ev57dE{en$ zKncR<`A4aaGGRwiQ?~-H34sSOlfv&F;gk3(OQDlUEmqTI$ak-W)Uti+i(O#A`42&_ z%uT=|!D$<0Y;EZ|fP}Mk+GU15SUw&2vpP*9v=_mQ{4kKeq=NWSsydm6OI6x|J69t^ z%~LGt`ENbI=F>@g*#ocY`HH=onPNF3b!_;n8DHz!$5*FcfqXQ(NFiOMVYHdf#$x4c zpzNWexRR^+m6(5$u<~}xnSI&GJV57-5IP`X7FBs!<44ZA-=-uy}CsE4iYjW%WAs644^c^ZaBt5NBAE@#kjnPJff`^v~OhnXPC`kk>=O}T9Xbs z-;*x*MC5zZzD7uXAG4dZan~3AS1W{CY4x_e3@D{2J=tPvUOHWyy766;Jg+vmx^sIa zS$ZDu*Y7L4nH~dbHzWb<+RM*w7l!v==;C8t1mq^Km_Jkb7!xTMr325gUUl};nkjUL zVY0kE$=8^$OTe$|{T~I1)a^9OGg*g~5%a3n!VbybgGv&&CwO$d$M-y{MI7Fyyym$Y z@xAc%Wrm(oW+4L8t1@z?2k`CC^(V=n76K!C5%_;RZ~owQ&$|86$}auG(BuEW#v;fl zfx0h#E42g&K`w`xnwPExGS_7(vglrU`?vv6y>(WV{NF8ixEoz}T|>i#w82e({}9Up z50SuTzB_&(mg!}^$FSAXymUs-ss!~q>B;8yFwJ59k&^!q0D_~`V{t1Sd47V0W9(a5 zAZyND))t2vw?-`3eA`xN4lFP_q!?MOpc$SlYtV$m_n>`L>~>8h0Spsomd78_s?rAk zg}Bk71%*^^Qy;_JAh%focu0J0P^-$OW&o!ND|6LlJd%6(r4A`85&BH6_m!>kxry{2 zp>8(tN|&(FKEW{Szofbu8atyBy(J@o&je>?FVy_;D*w?fb9L2+D~fR&Tnin8y4=84 zL#IKf0FpiE=E<>l-is3t|qO_|xl>xNeyup?bm9j0diJkd5bYdU&mXb`qZ#S{*7o|Qa${*Q^ z?i4*Tgp?89HrvXS_R+dA3u_RB#t_oXP`5PPSAP-rdO+A&ivA-7D|v&YJ}Ik_KZ`;F zvbAW+=7#=r-(>S}MmaX8WTbqid5Jf9fYJv)T}ekxgkl?v_U{$;>t7|z6tJ=o&Wa-L z4Y4%;dkK>}oSOKr5^Fa{^x>iD^3(CT4AZGB#e0?Ejmr_UFahM5>#4g3Lv%yVX1KlX zvl$rY{exkmySmY&*KM9XcE1B*Qu|c6-N};CgPm-}lwHfT9Wvg9oE47vR*?y(!VhMy zab76+6eGj1`H@y}FqA18!NDDUQlGR+#_C&NQF}a^l{Xg!SxIb1Z(IZ+!KZC23M**= z`*$0mEhdwLA!woxBw~8i-9ZbmB5mSp;s+1WbyHcLi~fCo$@`i7!xygkc_P;CAIH+vExqX z)};WG25L{+i+!g&S`+rr^_TuZc&20Kh=s!N%B8}Cz#Xe@WZSi;?|rp*e#ZmQflimP z&ZWx&gQ`U*op~mcgpM*1p>zuCamxD-*yKQrr6nBo)5m&mVRe7dmT?eHm&U67P44Kc zw~q(KyYniv9U(afYEk^4syi*3V@)Vr+86qGQHx_O^p83(I04TitWTxoOy=3ZQOg>W z3&>aTGSu8x57oz>K%Jl7JvJ&h4jOG3JcBEN`x@wBXpu7=|7@rd`Em$6AO05S z>+{euPMqJB=|%#K2DN+Gr3UD1BnE-0f zbjxdVxN((al{O4mh{j5~6Ax9wd~+Mmwy!7bbHD(FUBiDcCGxY&YwVsjV@T6utsze` zaY&9VGQFc-&p$d}O~Y(y{(T99cBTc0Sr7ZK*E>2l1PE1Z99}w-!`glqpQU|5rkLuI zy1TqEnjH|}fRn}DPV`~_)r&er@fn4cy)J=kJNqHvmIH&=RbA!>IAxYU5n_wVc*is` zA7Slp?BO9Vt{OkNKUxqtPp#-Xp%h4a?e^p#OK@arKsMoHnfrqe&S*O&eSP8O?jJu0*reQ)N4VhL6(cibIp2!Bq-EBLO^{0rmP(iSF0E z>1gQBRgBBxwTzorcCi-f?sV$KfHFtO6WU|zLa-Yaln07h zVuN$Q)zP{8NYa%hxD%Qi{(LO<`_zVQgPiWpi|MUqeGvFHmi1V_#=wbW&w!S8{1|Wl(Z&bY)|7X>V>*bYXOL zb6-tEUqnM+F*P_XF*Y(^Lt%4eUokQ+aBgSRS#?ld-4Vwff(3VXcZWRO-Q6Az!GZ;X zyL)ig;2I>j`$K~V3+}<`OWWz!ukCcEfA-AWxpVj4vuDq5w+hK)?q;K)~=JK!GXNbz0cq8>Fk6v;@SLNurx`N9qLX)IBJDl#kjwE>#1Fnf7X_jr z*zYbwc!bV98icBnxSE)lG6>}4=r}TDR8*0{=y~hzARp)(BNhI`PS2k*0vooRS6>7g zzVrK#KKoAzh3PsO+byj7>{&M0XdpxU^GJr^%7gq90p@=v1UJH6-(T%dwq4d=8lFR$~3g{qsCx-?5-2q(Id;eFbnb((%W1Xi(|IY1# zD4q@X#g~uIN>w^NSyzlR;2D=>cxI! z3(Sl=Q;PaFO;$CZooawcoNLZd-_kT>=WUxm;1t$ne>~#+ASXHJL*19 zII;Ym`0=_h>g9M!%kQT0^I4bA6k|~8;TvGp5bwNL-d zGLOS18PZbkwpI<7Nhc5PW4hu`n&RyoL6>b%yE{A_iq5YnW2V>DeVo^MW9FwMQQh-| zIHs4Q?seyz`NwtdqwB$#noC2n`rbMFMIk!w;m;sId0-Dz653gvvhEkScH{%Bh^K0uT`KqUF^~NVa0E zI<=dHuaB>_-L}URQHtbc0|ISk0}18oZ_r45KO8R^W(!nzZ%0y-zTWkU-Y13lKMh5_ zKGZB4yqCS1;MLxEKbGm_{~0wSzC69>!T2cPOcVBnx+wavrK{a)gwFWcKLoaYKW4bH zc24~S_9+r)cDvISX?dw2ndlf5$!&_T{fmcp#Q;xIP-0($WsXAmu<2-T^4qNM3^p}Q zRiL$yaGK&!9O{Z9Uz!7Ir=di$ihOJ}T_c}F6_6PNwkv963(WOl@*)ikM8IWOCwV33 zn{qhIfj|>~{wii9+qzhVoQ|tyYhEM&=Vlz{<`$cVPIo(x`intAZU5&Z`IkMX)TfgT zmd9i3H2>QMd6C!-WnKq>tN;z$rmX*b}4h@a8>!ST==U3+9^RczyN{c9$_jT8LXN$*t7mLH`8&ZetFy=RF^ASnE1OSkg9a$?}zL0TZ#N{>Xtn^qd3S&XfQ_;lcghHVg z62CxBk}tU^7WzwN#jJ$R0*QpjU`25W!o;vAtnX$0JH}+?&TkbBMtSw6GFWxJKq&do zT~6R>`6q`3vCyGLjsw2)*gocI2zGUsl$H~U%+0#QCvZ85-J@UGW9ua7K7wzveuilg;)DM^$4Ui-*;!Sx!wx zsD>ndt-q>Q_V=FG?rsNLrKiWC8}Ry|Q`pDR?^@O4*zct2-H*YOp9>Ci4lUI$4~uDj zw+&CY{2~vkd*N_y`RDiPo_Hba92S?qn2Jv18IxC7ChsCxGGavp7Y#T!>FIHH-!5zc zB%ch%GBT;C$q;P@Jk)7eFH$>tb6|#L{V4 zFn_RJNDiPXdiz~*4W27ckj*@j={FGJo3j=)mJ`)KORW?UWhC_K)LV@pgF2+Mx zdkKe|5%b%mM0*euNQNRSL*;2s<{)u5kTI7`j^K?w<9F?<@(L*%L&Vl--Ex1r#*7_7 zX2H)iBdk?UNC^tLVc(4?nN0$HwwMpu^T>|cy-#MLVGJA64(n6HVc4m#-lXQGVHy*;_2J^%0p=>Ass_x|ilg|}E0~UT^R-G9+znH7{eRd03tWizsqTKPc zny0%`)%LggXc$agZCzLHnWL0+$!RhcpP0q~#KGBrS$9HAPfM=!y`a*P~p-R%Jbd;@edD~sSGw69Cl3tvlC4O5ox%^t-`U68>NYclKTNtW_*wB0Oh>&uO{G0`zqTB_KIQ)Y z1$JOPTl+U}wREpN?tMNsp|u|lRv18OUCw>=%7b+99W9^g1ALpGfzQ6Xqs$E-)bSHY zjFTi`o;@0*c;g<^p#ce?rIyt=(H{B$iZ2&htdD@Cp9Nr7{KR^rzmK^aECL;<)!4{6 zr_;5vN>RxCL>Up_hZ85{Pg{gZDIn33z);$>A96DhWTn`6?VO zCS{sKKnzEJXc&pSq&HWKibiEH6A-}xIsD4l0*cjugJPvqyUjrN^Y?=8J7kvoLQ%cP z=QAg#wM^n;z{jJEaxLF2WN->7&pM^-3?y~6pDsdvG>8^?+oqOn=Yezrt?5faLt2XR z1&5_KRv@WWpm$cIO^vZ^)V$>F2x9P$^xF$25WnhZzBR-0=D@*+K$my#EENF3atdbE z?D-ZV-ZHjUtrpTCv1#)i+=ZW(U&f?0DvKz27Q$m-nqfkX-f6@t5fTUgprDlSx#prq88k9Un#ak&D%fM;gk8h8J zZ{~;vCId6Ox$pZwh1r$!j5CTQ4&_vKm(9uE_#wuxd!i!R=Fz+T& zTjj=V5h+@Gc_s*&*J*%Bdvr)H%;HMA5+69Jig5PWrnRO=w<^2v27no`s{^UPfehJl zaXqOop7ZvKp)lK}O0>kfgkd-)aLt%MF{Pg+NXN=P^(|qLLO`$pmOj@BT%i*d>7_Cw zkM0mo6FRkSZBFNZ{pzmoIjgKA(cAs_tV^&59%=YQ*(%0%{I>LdAB!+Qk%R$CWM%M#DY9i(Fun3K`o*FWjde=X z_^HiIin(P`)4wS?l*>NDV!KYDt87Ix2Hq_)GKbhnowiA*-}~OLsU8q1fH_3~viP_8 z8-No0?-n1^38euIwV?9*3U~96q*DyJf$FRqb1a~2axJUY^D zATmDb!b!-9tI~v`5m}LnBhS2@=&J%_a>jQz*~$saeA>EeE2N<(JPjaWFf~$ZIFLxPy2AK;RB|K-b5wSzO!0+hpZ0gki_voI(MCNDhZDdP?dQkmF z*v)Ex(v?>E)O#zW`1Sk^vgm_qHRSV59Lw_#t*86xIEt;u$;!id-xgfsof{UZ`7ywE zRPuF))Olto=aG`_!d=(dKjKI|@ww-f7{eyb*?p^Wj?`k)y9;u|u8v;Y5J{?paUzsbX$d(oBwj_<){jt;5!MJ& z&I9gyY8J9!hxR#TZ;xt$P{wA_+A9e`u*8B-yV|0<&(h^G#hh^Bg&R7)~QiQ zOic?-GIBWw>>65+8P+Hy?QmmYSyRhWeY7fjZbDXrQfnJ6Ae39$xtk}X{S|G5&csrP2C>izr}OMwpS5_9O&=t z83#-mLYB`9k_>%eQSPY6kQ1TJv+89y>(aF#1pM;%&==Jy)&bX!;G#;Qgc zBHx8Hi|ZsN@1SIVo0mFS)s|Qt=ikFyuu=Le-7ApBf?_WV+rWNcj9ngGc|91^n*|4; zt7vkWH~zp*uPrA*J=sLndmW7;lGx9I(MyBJ6);R@I39U|uM)wTLPG_uY-msguEYc& zqu=sWO$znHm8V(`LskB;mzN7JgzUVZ6jc7A=YHBBv1a&{<#EX0;I8{6Z6V;r_|*@cP;2!*!gdQt7;Or`g77dDPn-M2Rt9ryxie_+i6Z|h4nB1b=m{b&7_JeNw z5r}Z0^KivO5wcuUzIcqlH`S6#!Knhe5~ZbL#kF>b09Ru|itExjbSo(`%{YRPF_i-r zo2FvjbF50YLWW8@w6`m8rm|{@oLrxds<-)j*|joU$JwjqvXC5tYN;M!P=^8I{IaVT z@5eC*v-$q!#d~TFJp+98A=HzH;cUX@f$Eg=*RnP`b0tSkhvQux$uBshjG>meYV zKlQ9{&S$_|p%(()f{%kWzmJ2laMu;!x&-qZ;l{HGUfwm2@3Y;nK0~~Dq8EsNtId>h z0uGbk`qJP~V{h(TLZtEJJ7ZeU{&45I1@z|LI- zp8^H;vJg+LTloQjEw= zXjD4JG7}Fb@Z3Ds@3=a$<&v=Z5)j6szD{GJcnYA>{=wP4uymV}vmw5mjipltYb^0Y z`>HetY-ZRy*Nk?&cBpHE0@*6OW`ZF5~faq{hKxFCLV2=(By|x&YKDY{zi$W zPh?Ew)XSj)24@xV;srXc(t89~)7W|54d2$$XO{udQ5MtwTxSC@QDlBKDZurQWK(~s$XdAqAG=p4 z;9(gip=nY+4<>Y?Mr?Vd(BixEI-^o#)vxO{mQ_cyRQR7wuL9v+v?#TDXPvM3iWjv_ zY$eevzghblGu(itf?F5 zEXWKM0i-esccBO;+6FYbm7^?*Re;n+gd!Re(qabqT^1*)+xutrZz8BH>K(ZlF(_RU z$Zayb;b`*%V7|yAQkS;VRkW8WGobABJ zUw@)(WvgRXoHe{7)A-C8sE2qY!Wmi;E^(-tn9n8?8eI!u94X6<;TF}4@MLcaNF?fA zxPqb2EM$rrm#>j4yBbZ5jV@ued0&~OmaZAySW40ylp|kQYZh#zA5}}mz{AcKr8si1 zR;-n0fti^BT|)a21!MH6n!28bs&RyE*3NP;D0u`5;#&x^53hzbi5lu?JS_ghn65pN zc=bv|3ZtjTLG9(nYxb`^LT){>7v-R1-!0PDi@-SFV4l3?_*Z{~*K6erNKW&?<1GGD z`;C|W%UzDlh`SGkx!DpX{#~*z!MCP%{!d7D6snU36rw(q3WWFS80_9}0RvA}MS45^ z>dNW6uKIiIOik?^A+qmS6)3hNHC8|{t0JRzibj32m*ILNT&Z$EMcG{TA&z`L`9$_A zJ-0wpexb(RPA0_iI+&gSB%@Mo8#Qaln`N52J>u_QS!>3aeUKKT4c1F&Tk<(3!sxE6 z3#_+AZfy^j3su@d=LNE@a>(}MD$6Tglxh`ndpPNOwR*^v2CzxG1Hc4JX3$`L3zbWN z0v4heL!DuGqWJB*028qg7xq4ou9#ml;zCDTK4zrkn~z!?WvSLXFD_PvZk9*6(YsY9 z9Et-oR#amJJgJ@35zthwvn95zkK`#!EP#>P)G1lEyk4CZHg_DAT!%nzC&#j2vzaJg zc`F4e*!Va@cc9te=m#r@>ex@GgEQ6Ue%J{Mr8Mto#pi_*Q#TlB*#4U1sh&lOC)@0P zvo(s(Zy2|i;}v|{V)goB?z#tVL->saz4`KZKcx*mtAWq(330=@i_-+t61}k@uaEw$ z-~#R9%iWOvX}3SPw$JvvuFj}m6$do=<|JP$mUr2s#6qypfCMa~s>y7Bt?K9bYEm}k zkcuq%gg!#4fzj|tmy4`gFp@e2BaZ)R0s=fhlzQfmPvz>RJobF&>puFYot`)TufOV* z{cJB@f4%;-*8h%h+W%VmuQi5`+gQJ=!iS$7R~{dZXtirZJTHroRM$6~Dc^Ph4xj=? z;RV}dHVvz z_{+p0xQ~-7pxNO6T7GjBr;t&9m0>ON^ivu4bz-CH{?zja+;ssM1MTNu{tZ{}3Z-)m z8cM9rjMn``Je4HroDR>MgG9eBCEwW;n5q;MGkWX5Xkh!=1SqbtHqri|J{E2esyTbs3UOgA3SmbsXyfE}&xZfUi%r~> zHMnu)c5s(S{rLE6W4--m(mH4PuZ1|U7gt-3bvkvpxJ_nd3j2V2Pjq2OkS)aEGAHDP zRfO~&a!UKdZ#Cr67wXr4pk-jGLe-VRE#Tt1Lkv9r``%?no#b;xUH8VD9fok31vo5` z1eXvAIr7z@|J=kZoS{?oF7L zOf^B@0YtdE7_AE#d4vTBOCbwm?)%|UlEaBNUA4acK4jHN}*;~s6C*0-^kgPJI0=XyM)aMVeSGT_fk|-y8~Pr z?%=6Ph-0`#zh%JYG{|Snp*1_RnX9l(d}MO%T!l3@fM!Rg%rj7FsIbu9(Q6P-Xn8kz zcS(z-kl#i7$C4^^UR-(HksG8V%mo_)u2DmQLyf{~vjT&ej-Q^}Bu4xbD3RjwlD^-{ z4xnit2Xd;sq30h^K5FGtxUP1}@B-`=7!3SvJ5wFaH^P5(O9Ldtp;sW^*tWM@xW@^v zdD|*6AWaz^Ke&DuDgS`e5suHHqU=)xqd%sn!~(o5$SC`OTlXR1vM){aYGvUU%pVdW zQRl*O&8KS>)D;ZZI3>=yuww!jE&_5@-k%g8`cKH#$dR^LpEQyOjx*Cm;%hK!(uV}= z$%+F^^tQ&N-G!n_cz(6X7>uFQ=_L9|Wm=NFCD_8t?EhkvM5kZ>ey_ml-8jXutr0Pe z+Hy$4bxD(Sh;8hJMv*#HwyJ`CHhx01LU34=txUlTN7E+(TIwVnOabB&kc4b2T~AVq z>4GhG2CDSOPsHPN2C_{M30T|{Z4`fCAW%|<3Y@`X|4QAqJyl7-Dy!f)8eV;3c6l-x zKHR@dH>!jkBcrt@y`ThRknQRvMf||jrpBs25+26BuzgR186&e(L33%)G78TrA=gt5 zXCbxX+e#BBA%DvMB17%8`$4C65(Q&v*>-u z{=*w+DnjV4B#&cWXu`oWkBxbS1~^1>$lF; zh|(5|iK_DW6J?UfmN;W6_X{NNf-YTCVyJj#XA|$d)JWeo%txjn_%XTS0Wr9Q39)~| z9#JD%kLxf7FHjwiQ{G!dKNdYyaZbq z;9GTL{PHFwT}}mds@P_ZE|5ZYnWkC$3lKvMdD2o!?U-!}mYJONprL6$mxJ^d%zN?4 z(K0zka*C`qmh5~)MdXaO+CxiJ4u&}EsorrpJG9AREsoxGqRcpbs?u>D4B&v(P`3J% z?W9i9G(~&4)RX<3H+aFKZMoU_tasjbQEh zU?Y(hBE#fdGA^MJOd>*(p*dGqK1bD@h;fVK?4lv%JE;_GbFFNY)5rT(S;^sYdsWKT z2EuOuTZ#M+^zKzgoy7LTcx%-25u3z&ZUB%(URbJp$cXtA!<;O<5>|bx@`1%}`g4g` zQQrWU>Xv}0cs*wp&H@DFFrl}MM7UI(&A&nO^lD2gs*?}@n_T`D<)fYy6-X~{Fbypm zB1@p;WvPG5wZ~UFu8>rA96jc+h|=nMsN0030E8$tohJMvQoqn|zXsRJWTQJ7VQfr0 z{{WP<;TXk6Pxq@T@9Dapv>5raJ6bOXuAZ}?4QaKHHw88*_SYcsSpwqX<$Ku6;h<_L z!cVB{2PovHU_Y5%R`!M#T^I#9d-#!H3Mcc{<^^OpYhSd_241;s*v|GJU(X8l;J4BA z&qs`Vw9wE;mIdKfr7o0-2f?9xNHxZ@{s9%gNP-VH zY}}EN29>nWsj7r!QI+)WXC0#^N)|LI30#Pjp(_O8SI!;{T5m&XIH0i2g<(}~`;2$2 zr!lVq9%_md(EX<#nT->Dn>6m{fp1ll`mKmZBEA>b-{A`%M3PJbt_E*=TZHl_%)WpA^Ts49R=PT~m? zI{M?6SjPE;3Ur3tJc|1S7qVd6gUJt4s?y+)b;`qB# zo$ieqGXiqjJZ1GybYDk{PHQ^#nhaEOQX(?n5sV5z1I7LUOCDzVG0q!01mD+tD7dxp zNa!?_fACL1AehD_D@Yg+|8?IB`yXCH{PU25`d5NPA?2U*Cq$qd!k;K~kTH`Ge;U*f zsK7rH@@H)RM972rw^W8p0QR2=WYV_oJFH4&kl|v`1b>hN;FK6uP(Zd)WoULV1k*|c z*)ab!i3_OLWLv!QiOhJ3pkh8+B@*F23d< zaMASNHDzMRVQf7aq6NTlLF`Jjz*-}TYB2rr9T=jJANFE3dP3HqbMaa5UTI@up&>?t z()M$6ntoc4!$;+r{SnI1rvq4snnP{5Dbt-n=PiPwl?w~^Uy0s|PZdk@`GR2(YXdLz z2jDPZ_H(s_)5sog-GT|GhhmA7jIph0y_`+Xc-%c8RfZ+*=_D0YDC9aJjWRuLt!^SD z&~U^V!K3Z*?yR+`L*V*MU(=~W3hCL3+$cpO*D0IFFh-&?HX z%-MEt{LRA%0-)%wc%?d=_QlILM583P*x#J2xm^#FbN?NzEHUVI=f9&Fe&@+AH$?h! z4)3m|A-5io>gU~N%U|a>GVHnXJl8(ZH{aTSyxQiv(rA-Jt88=_W@9~`Ugvpcv}@iI zIG)LEcdxWW~cKm@ASg3 zN@`hUL4d2I2J(51@VnvdBU;+V)A8FD_ZQ8iFWMW=qfNiMM`MpjKTOoR@#GCD5iu%T zO=UAHUz%@z3ph4uh0h)V-^WU-y^Ld! zt;||j%No=YFJdk(eH^u{-Q}0NoUCnf(CSqpG1Vg_$1syR+m}B}y}mp@UjLkHaWcMT zsq?+RER>F8Xp;QsPO{c@{q0+>1F6?g)yD~*se?v8Q_|vp2K_J(((j?4+QU+I`s$~*t;oObFVVc~1u(Kv#7Y0`qRn-!qUFryBtB) zg&k@#a!^jT&||T z-?TRx@n9?FM7sX8ve(yAscPA`pi*rWtOf|r-QDaSOCZ(Pj`L|*6Lm7?Rg5tN=|Vp+ zE*e>71;-`Bxdo8&k{$@XoF9()sHca?68AuEB<6+5KUwH{@9F z6l97?lLm)HtE3@p zE)C6Ed7c;v883S+H3HACzZmnzdim9?wK=BN4-akyJ&I(lnr`W*O&r~$dNUn9Mxk;V z3%$R~s~=0_H+*qWN@KM*6ad6D%z)kP#(RZ_#`)AL_)fR@^QE?~XO&qq^pKAqissVn8= zM+_nF=-@@O!*>hXOm?Srp<9o9UjsICoZub`Hl4D=L))KS?nev9E@o1052bU+gp2ma z&Q=rV$7fr+aVTfk%5vH@z6B?i4ns{T@Pe-|m7esHrwYfnupU|bkNHBXv);Rm+Am@` z3YnZg_C24Kau!)P2>jYy=p;|^Tz2x^+FZ{!d%#&0vreta^TUnHhHkyrm6fFi=`}{R z^)jy2Fi#_@I(^u9l|kDqzB-b0GbXrktg9ApK4T#KOKnfF9+W599ecvNhA~jHq`>6a;?mju%X0D`88aUYD zb(Jg=Hd5RZjEI#yY_{6!0*^+N&S5FH=`-D6J%!WEe?IS1`O!!Eap2Jo)UIdXxz9N+ zrE6`nT4^led3&(T>9e#^q22Y3%Gk+sPO(PVO>z+)u3J=f#lm8?NS0PP$Kq@5a|)xm zyjq6m*u1n)w*XZ@s=v4G2mePtP{YwS{F#ae$)L!y@{k9saF-{nFiw}}RTi&*Arpr) z@b$~R(~H}D_*XQCoR4N3a^A;!3r;xCZNJMBic^d3##_a#cI)FJS?d!3xSo{x||RCpZt6lhWu%TuGlTLl~J;vd;Eo`w=-{vOPSMO*9gC4aliT% zmx*?9KV0h0*WklrF}Snvy{n__21Xalr=fv!n~g3%yM-#di zYE#ltTEb(c&1}zgQzHhqU=(WIdW(qq$+W)Ddn6<;m4#8H#vG;l^Aqbv9TvV5FNi~n zZW}xlyPOz*OUS%??8Tx^>lO%_sp*reAcfC%?LPBb*Ns&}Py7yiFj%v2jaQ!hC=bz@ z_mBIPjt_mU`bO!_`f0MB9YVXO+9jS|ojx1Qxf$n&p31}^MWRi((PS~O<+t6|PZ>YND6cP2h?r?^ z%GijFSteFmosTIcWeo{B316Jfu_;8bR z^YA?X@f-gexO0&hF`MISo4!pq?83I{4&Dtw<{G8d+g^oHtmr4}^uqN%Scyc5sv7M* ziV_C}0L_yI@4swTyp0eDrjzjvFsdm;@Y&1yUEHkd^pMXcJ9)7$rfDgnSrxoJT0&j+ zS>fw^Rl9;-`Vd_%wQFzc&ly~Cpk`<&H7>Tz-IGV8>!C;KFsj@^tMBm%cKu|N84T`6 zqX}d?T>^@^V;uNND9jlfD@l#drm>+Y9~xo0p`>XPV#F5$Urf-tA0VM3cT(wVZ=Nn> zld-9=_gx>CHr4#1>n!)>_G+75oU(3ppEYPU0uM&3eqw2LI0TQC;809eAZ;wJZ7hz& zXF(u&+xYude#4AKd?pTjm33Ny=-#1%^&vnP0kwt!f z1qh^`4+`WeP3r>*C3sbO#4^5O3F!77?(Sa;3V>`c6w|z7S?#&KJa8q(Q+r6QDR}2j zv||34@OZOvFd#^g9lx1mIEQPl&^oj_)^LW3nTu3iJgGx^!Y05xBZbtAlN4hY-p?NJ zS^f+U?hW)m=-U0T(Ssc?L%1Yp-V3fVdn-O#4RB!-d=I-shY|MQ!TEb^7#lMwoxmZwN-ht=D$!>;I- z1=TdI-I*{xQI*nIO`ge(c^y8JRja^_*~Qr#c=KKNwHs(IS>thAQ7JS27vEk!s&Y>d zf3tMDL;kwxA^ZDu%0zY0KnIvxPOE-*^Y{ojhMLy+l=LE*b==6Cj96fqf_Q9-$eLfo z7j^MmKgG=ll{}SXWzc@ZTmkmhI&*P4)KsD|-U>8!p&cKZs6~?ID_6=afd};5xS^sf zS-lr=&obld#I#RKj9k{D2AVucA7a9a??PU95<@ApoV5nTN_+Y$(0c{Y%eZ&8jV|O{ z45NMfp+aIPd%;U~ALmAZvo|QdyyaUza%uzW1JICg0m;PfHY3m6?ftz$acLJb$t)}_ zO+sMoux+WFX_8{y;XaUIm_mor{}`!j+>f2OLn5i$cT5iZi<(-AAu@tPX7>{YA)%>PEG1Py zb=S%kW}3sERekP3uexC2jg4!0S{1R!OBf&ML)6O+Jx9IvBDS!qr5N|rXBVx}WpGmH zM=-L|IXJcnG6#J*pNO_NcY#)ZC*_)@#p?50=&$nImxR2@!@3>9>Q)#+6Ov#o5N4gI+mR_qRpyKLsI;pI@#79B@3`wH$LNaS) zD?VScs?SR1w}+|T@Of#6PxO4JFc+snW5l~kxO;!Y=xvy8!I?LvVZ|#4%~kTa26Xpx zqQCV9Gf7yPQXQzBp{wh+w>WsOW{mu?Du8yw!Is6|X4e2)ZMyfz`=b3&$WCv9t_Mls zi*d!SCgj7jYZufoT&#U&D=gir(Q|A$y#k(%6wt`w5`XL&dl|?gP(byl&v2@>W`1j_ zk!|w+bgx5$?I*FpyT)c3caqw(_2L4K0LfC;YR{yvE4tv~c>qe=g|!E`Yfs>nJ&DQ# zlIuY2;_c3KFnlf}71xpkrHn1S6BeSDtc*KYqzJbwqnrbWRJbXw>``hmy?(81+Vd0D zee@+>X6@)v_^hq*`ZC>?zW@zDBWnH`Nzv~lM~PZ>l38zqzd7c z&3SC!uXDvdhK9YS&EKBIph!3Dd;p+S?uoxfPkgVN`n8zzGHvf12K0^OV%305E4U^{3xLxqPLMS}Cx1E>blyex?J#{dbbiA#S>u ztGwjCT|qv{=Nce)Z~pe@LSMV3(VeVdC2`PpTIX@8zI2EOtzVTFR>!=%(_hPMq_*aF zDe+ZJ`o;7AgmuTXMfzt;)Q8aWP@c8K@ZKICWIX)*+_5hKhdBI%a{%xe&a$)%H$Ib2KvtGy`I*MB-DzBc1EGP zFMSx-8%fkeEXpXF@SnQd_ek(g^0ULor8+ponQ%#@n*ZwXMUA0c!^u*+Fr|~=;7VHA zNd@~C2b|dT7&I>!#SRIO6F=1uux?TMm^RG{18FQ>68)p?ja=oF!>dxo0HZJml)z>p;T(r8+b2i(mFsA|~!E&fA z92ElVerPQjF9#WS#QRl4iMU)TGpWQ<4A6rNSOWsFl}P)sF|?PYZn`^&JxRPD;6@&= z^}ER|i4NSKvol6+PO(3RSs)YBVv+PoILzyw5RwN>&sStRmtowmjNfbWTRzUw1X4_= zx?y?hlfbxb0OT_vDIQpwC30>&vCJWZ^;J`=3_*LL72@@Mq4<8vOC2^5k-G$Ctmlbo z`UP>?DtC0(=RZknR5*~c@n8^)SmC0@1mIxxpF|R`Jb!ayz(X5KhfR?goXsv`NS+hG z+*k%2e%r*ag2sq9;xx^k?Iny4KuDf(6R+0y9lPjg;grU=vmbkRP)WsW;ygx)FX!RTz-m#FX8KQ`LR5n>;o2qttG^I(iQxl%>J( z?QQ3$sWmlrmbz%Id1x!f8;iK#IvcMf+G@E)*{U;{3=*i{(UNhage+~^k#~c)&a|H) zb;$@1JD!cN{GBrn#i31>a0U^vvQr1mU&ZxxWku-hcDFcF0Zf)lxCf}|OVqWjt~YlF zTXu!^2vNIME6>~H+{FZWJC#p6&kDzC44KVaULRQr~V z(2|uH{&jnCK~C!9@Zmvb`3urLZ4qOW^K={a@S;x^y}#zXp22jTK_;EkX5^vj9y3k_ z_4@`GNRBwW=E*;7q8GF>VKN?(0Ea5@k~0sg4Cwnf(d6PzglAn~GTV+D19*ELpnE~o zCPq4fju(=(kTH2q2u-woj&yU5y>~g?OMT%F0p8e8^oxA1dy(N!M~?FN?M0VxAr5-V z6vH8E4JE5>5riHCb;lcEH_~pQGV)+|9e+~UJswCnNXYJDZ^{ZIv!I}0sW(M6qtt)R zRLHR_{$iK(+0whV`-C-tD&&QY<6^Oz_^_YwE;EMX_jNzVWGx-iRL2bE=X9LsOs^(; z@Dk)=3-+gJO-oSrY=z;gMnEdyeH`aBWEW>|BBA~?+vI)MFcigj(rwy+-cV+$P1W!0 za`vH4Njf`k+`=ZUDp4d4>6)XEn!MGv#b*skjR!W7edLL1BlBHz@KO^a8S#eo(1GiS zS|j0m9_&Hdr0OjRtcrm6IL-G?+Ouc9T0WJ*%gg+nP8=_gi0_O!%<>2drGjdo&$buA z@hC+Dl?jX0Uk6d~6&Wn$g-tuvOb74aU4A;O%_KtuwU|i;RbcXBs9l3$5@V|#lQ7d9 zB)5gRi%!##1sbF@aC0v1IUsRjm*S)h-?Qv>4n+G!RlOZmx_W<^+ye-^9qJSfr6mLJ zr$Omztw8Uap>qO*gW{US*$Vv#XPNM$U;H~a#h;GP1I@?vd);wSfE9&<*^E27kDXV0 z`o=7e?hT70(s)fSW{KT1=~Bu6mLfav0wZiUr63jU+J`eLSH}IxmPb_j#4z@bOgpb> z=FASxAp^6^7P3VjfV65?%(_iW9su?B`-v>g2=bqX&cQL`ZsxbO>3R$bh^;>S*uppXQ zH$CkgFW46K#hEeN>H!J#8kl+)E`s*Ryq;iu^YJHi$dG7ndT^Cf_?UzTu{%g}iat^@-GzyC zpNUk@WVsl71(6>3V}~Y#n;64+9~V9+ni17$iS1$DY`r8Rs)9hZ&Cqn@aIq_J`K2%4 z9|v3-=@dv@>53=-LP{VCsNEA7ZU-f2?nP8RaelD|)my>sHP|UBk{^q0?o61nTnP&b{yIpW($&Urb|v-Jzd2MX6->!r#6y3 zwH2cPV9=Mv)!VUy&{j#S0h*~zIxThGaUwKveI7UzL!hY;>iaPxk4qw}JjRO6E1Urm zL_To_^9QeQpL;(joD&OI$du)v1bFKEye6yDRJ@YQaXJ#zw_%oSu$Baq>8oqjv2{ka zmq#h?YLTq!ZgAuoTJ7%aGhr>w+hW`fpRRSKk>mc*h`%=K`KTu7G6yOZ%rELQK!`=F zmOw||aFrOXhxo>NOdf@kGobJf`8oz7aPv6PmqDg)9@-rBI^_Zt;=Rpx(ls40H=cC9 zzd-h~O^*$#m`}#vsF4?E&Tb>SvGmkw&dcvZx{~7=7c{>03q4<-(EQ~AjC&=T(3_UVZ0Y9_bMZs+b za6Q9}Vma=;&qRVsx02Eu6d^X0CtC;ayru)uoAh3fgsNNa-1YNWT4X$HB^`LOHVe+6 zL<-B>)OZtsu#J%b2Lry2EFkJk)xJ9nG#DGw=~4`rtiWD{=&ah{HGuidRJoMElrlYV zX=;ew?N7H{7%}QT_PnCk6iIjQ0I}boZr}0t3>?tfEWxu3(8}S|2x0baF^H(D-krYK)e5gMez(M5RLu9nM9Fq3 zMaSYwG561o879B{xG8C?MYm6~wykS}#K6{6_Ix?TP{*DJ`LFrG()I0PAJTF+lWESf0-%DLBz|P!;MBn7=5* zy=@+qcg3m^!4Qstddi9RBP3bIDq=vB`N5B*fj`qwnqkoAkUOn_Za+RLHrYfbb=vHb zSuttdJWBBSIP3Z3WD#d)&XM!n^!K*1Z@pYq;=!(`bdfA|eX;gHu7)<1@|_-bxv!J8 zJx|qc8$OIG;K@F$JZeYtNx8n6;RMxEi^WXy^MGP7c96VjC?j`R5oEe9o2CKj697TAzAwm&CK-mbm&E5)$pDX7Xd#_)YB*Hc>krok*L+Z-I?^X@NMz!(Mb8m z30l3lrOG9f-%PuNY%bY}DjcLZROQ(XaVs5rcTt^=S8~`C1)V=FezT1^FH;jC8y8Yv zVNCg%D{phS2*ux_bMq@$WRqui%RDt@51|m1d-zK_|@>Mw(~7#DKEv042zYh z2h9zm6?KKu!D_7GffGPSalGW5D|Sck;lmSf`}m_LuRb<>q3ME3D6ZF-dO&D`GoH}E zt~yh=L_TvVy9t2XUJm#49546SX%{b0A@6p!hRN4coPwWvz8%Csw zZdY*USjJpJ9_eG8B9Zw@C++#>37Opx5cRs|(xapI8^ z6&S3lN}e?Nu?6YwH2{>t=Gr2}=Pdgog#nRnh{w;+kPm*iFIm}xw$N#i6QcQpQ{ww^X*j5I*E-%fL^`5 zq-&dKMdE4cxtDsu*h?GR^1C8QR_|z*3+Z~Fs-zkkF|x7FE8y>rVl;E_aSmZ`z&M_y zfr&Vmy@4_ZY?4iIKG2)fH2m!aZq^V2Ea%&!fw-qPP|+ZLZVgC_PqrbOZ&^#z|2R~8 zY&ca7v9ZvZCT;8qK{#%Hyiw67@gZ=3W6mKjRvZLpkK-+VM1I6UaQO?cv0UuiC34B2 z*ZA9s2RT4XxN1v}(f||yb>GEOUnz5-Apt`l@%}vYb*(4n6`zEyiM_CcLVPKh$qz_h zp2Ske);AYv<7NI;?-##kUJrYv(~%Hy!Sh4C>3cr#^atikPC9H8Ms}cJP##;4snGP> z$mwm8KGcmfPpooAB`o)U5>JUMxv#qSdz3N2aYVtcxI;NbDHKHqfL%-fQqG02`i7G>_;A&0LW%yyxzM8O zjydl;+aPC@?i*sLa|w)Y@zzHt>f}4HQIzZTtpG))M@>5Z?xTd%1e5w`R|e4q#-~+V zzXS&`Tf@Pw8nYYs@kOVuCabDSaoD*0#XDkHOlM1^lNnNy zGD_`;!t2BP(id!Rc@pXq5QPXeUm<1sV2mKKM|!iT7%%uU zL`i^H+dcZVK-{xBw<B9)!jz3qBUK6R(@xxO)R?VoEd zfMuvj0~*xQ?nkdlRk3ju-=%>e&)psq7=W^L%`LN4GO6|RZvdgzIHLgUTTNdvB4`AV z#|^LgE%#djl!QJBMa?|pjiM-?n+kOfmpAf!I~dA;;O>Z3QDv-dZd-yauA~mSZM`>x z9AvK52g&!QY#+R>$q3A{tT3|)%(iqvUi|@PbYjFhB~D-9<~jOEQUOl)q$lZRy8{@; z9BF!%4LD+F6MENxXzeJuqtFQyAprXn7@Yh4kp$J8*KXe=T41-xlUUT;P-5tnLvo{& z2xgAN5n&^<(L*9buG*ql;xscWmcX3HG*NYFS1V~9N(vGxgnvH}K zSueF2b;FoO!B(430L4sJ^Eu0Ga2t}MCn-Ru8;dM!%ExHWxYZ9p>4N8UN^9cle3!lg zN(~m!HqY_Dgk}D+GZ-9WuAVcw5nv0d{k(=>rw)eceF!nErueenZ$|s{?)z^FfKeo2 zEsOG}b(-?Z{u}5t$vPqWY`K6lAGHq3B75n#7bXw73{Ix06x)3E`=0x!$i=A6=|4&t ze0a+!7&ptqBOpz*j&f)2^akW?ltS0IL!sSWlX5& zbVMLha@X-SPzFWz{y2TJfnQ=OuTb_rU^7iWJpoQfvG=?Q^*gI09)O1e)T+t#8X}Uz zVkmwpkGbuo&75oFxyZNttwhJ0Q2tJQvIbcTUuz*)3X`X+1F@r|$(mw(y;IYJ@8M5n zE&w&}2WdRr9LmK#uKp4@cA#2};E|K}kOIkPvh-j9xbs=MvD1~E2dw^YelQU?>(t*oJ=J+(a5`LD1du zrp6_qK%CBdcyZXQwXY+2eL&4&Wo{}rbSBy8>*CSSrF-L_SF*lNlhqcZU8J_*cKFo8 zcPxH?r_9y=)X*{{!-~~bX1zP7_;XhEY7dW+w7ZPQ2bP`tHchk0*mK(@=d_N653haJ z=Z|{X(rzsGlXrB5p6M1xIMm4*u5SL7Var?WA`22>HOK>-fXcuP4SG%QJfq_b=z}|L zL7{6HAPp0XD|s2-qlG^Tvv>tayfg4>4m7`|J9NaDY-QQln;zjyT-z*d9fB6>1tzkgtsigk%gy|7srOYGP->g-8 zyYBC6Uj5&$bJssf{ZVj!{m-+d|LODnp*Vqm`Yk@!nM^KgHCOE=-hZ09 zReECa%s$gp@z4H`uK)3W{+i$aap8r|(m!1YJr>HN^iLPw{~s4JMfzP1fquKO6HmiE zEx+ZrjnJeSiulj3Rovz`RnGMA@c8(g^~WvUa{5EIoi*q$casyBZ2jLLy#z zyywUD*0Aa3uRKbWPTKDndOvs9`!Ot?hPHk#IzXP$%RBom@yFJSNNkE<5$WG+6 z<{apeQsx$~>d$ZcJ~v+G@Z<41z;H%G}@R0)GO1K5gW{%37{kK&&-m8gq z3cUop6LyPR1N9{C(2rZ*z4F6UcN@wDs&}zvjrT;Q8#$F#R9x(QECAxv^(QCTr(;C4 z{*!ab;+iWD4vi1~bvMub%RNR*Y_$;k+qJyCI92Z{nT9@c2p~6g$;ngrKSycGoD=Ah z;d5HQe(IM9DDgtAU@w2V-=*Jsy8SqY*Iyb8{{A-g@jxg}a_anFPySEu0K(oyg+Qa< z62kzbQc*7RyMUxZ%IvS^-f3wu@1tPTQ7vI@HPmBMubp{~HBN9E@g_i-NnV zJa}_@76f&Q=czcF8TI_1@Bc+@Lg$MD5P-+Y{3eJt3&+Mi$Je3{<-25Vhw!H4bFsGI z(0eYSp(*G88pvl`yo-TGS?M$14k&d-LPsSbAyc(JfdA^y0(_w{pgXm^I1B{E1OB>J zN&+d`sy)T|Rc$lEg#5=m{!ngXEF6)Kb_xKsL1qe3%+8BF0NL{ zlW7D5Ov0@xSaEUs8;R{-T9^e4tA8AXt{`QW^JJn0RlnNA-xKM%k1(=yJbH}S?Ch@1 z*~W>II*So-s2l5xru+pHNw4AMfqeJ7)xU*z<|BY$-U!G5O07oV#>_>N+#hqm0QqSJ z^b){)c`bO(zVinB#Bc9A zMH|S$5pjdgpCm;3J!j9mU%7j>?`g%Y-)a%<7UAO`0I2atjxDcltOVGx<88!oX`^H% zH^7quHY9GT$GPpbASi%*7m^T0MZRx-&~;n4=-$l`rd%2HrgWc0qvr^Z^6L+q&E;h# zOZm^@lnJP*F9Wd+CHHQ0snH!LmYaRteh`~fX7 zw#1?97Y{M{#n^iD(mb&#RUX7=obC&FvNHKQk!~J5i8=NJ#r^ zxaVOgZH-_KMKZ>AW7a4kuK+`amoLCcTRqcTGSYA+EG0kwUCdugkReoCAQeo-NVxhS zutr;^MF$z8B^H%WKi&@%ggNgQoy0IYXDN9|k^X#X9y&tnXZ?!>HXFG+8=j)#^`01J zQ}4I(_RI}H>Q+5t4+JT&|C9Cp1y8@ogfQZc=HA!2J~s)A@HtoSg{9aM@pgS^Zg;V= zpfy~^0p)P+LkHfupz)pGbx9idQeqrKl1a`xgQ2+umy7C%{U}X4GU&3(yEWl-6_3ECh z2W8l)bXnxtl^k{bb_i1Y@y=iCsA$^p{>f{debgortpU2f(radWFmt?B*r0JQ2a6i6 zCvYm=nXbf|T=@@-$jK7s4x+|$s`{3>Mj$*+py%-hxpa7)T@{y)+4lSKOX?m)jF%!`>eEqv}<{Iz3UKg;)BTW1ycCK%p zL>Qh(m)}Xck)io#va1&y|NdA@+=!R%5)rw#ybi_HR#3%)ruzMRU{J3-zl)D9o4iLp z07^%U%)#J~R$6qL0#W>MH~nt*-8#KH<<%?0E3XRk)N}7umdl}iccU48R*jh4y$T0v zko|_CK-10|DA+2vRdTrDk=ME*1B~^ISI+tL&u7uZx4aGy*mM|+fkLKMUkOX>BD)LP z<NP+B9P&+WS(<^8=xh zlS%K!0O90N)zGG zc;eccoTuN$JW>1;xBMaW{>J>4irk|bc<(6pNOw&i3NbM$tTpb=WOH}5w834RVVN&)UjNfq zuJwU>w!^i{c@)sd1Nc=_l^v-Fu+(3xd+1y_0IIHs@kIX-=+l}INfpoWZ_l`4>k~QT zOS}PQr?i37{M+v4<6O;kATX9s>N z(}r5n%P@MOeKHq3c9W;&++m3j{x@fGYDreBu(2b88ch!x22Z}9;GP^`HF$i~tEJC0 zJXY+Ui-ug?_>~Epj>a^D5jAkU1a=xe{4s7k_!{kxJtnu_N03Y18r40!F4R;*59T&> znHZEcmWvZam{$}kbfo!I2z7H5XT7}OvKCb~B5NN!a$>DXK}+@zjIzF}{edL^%NJ@|&2P#_m(xN#Rb)%>_145On>dj5B=qGP@ ztb9+MLz4y!5^NeI2Ypu;2MizVdma0YL+uy?L^zyZT*Gs`^vsP{KlE_`HI_N{XI=+< z*9QT@#{hKJRx1ct1p?ygPvg@{F{+UM{7K7mDX{?a_|V{+ApD-JyP$gvzDlj!>NugJqNVci-wtB==tsexsHoq!O%iHt6MarLp1c zg*@KNugY@5V^e&W9OR8t8sgI`Fho}Lev%AC{ko^1!`izt80gd`l52e~1xyjb{&83F zP3ZQC1p(2;=udH&9i|E=nAEC;DH*CYkNoJ^79Z5k`Pe@aCN$Efw>|PCUO4%P==oQ{ z=PB8Kf3}lzTQ2(crw?3?hjN6fb?oiC5k>uF8uRWoUX!M2hv#f6_GuOD2C*)gKMR%g z$v1zPSfvR3s;F?CI$1a{_-_MNf0myz zOuTsah-_|prj032=WTXGVQe3Zg~1U7Ar zFL5eX9R512;CZm-zLk{8f;n%ue=k4#dlrvw=0{(|)2+5o?z%`_ZP6v`do!k;wR%4# zrdxKv2wm7A7L!423{s4{V$--wfDwO4H$V}=Mx8p>D<|_4kW6Hg^nHbCR87d3!(Yg| zs<1egEF1y>f;+*31%d_-?jGFTCAho04({%5!JXg^!Civ8yKU#@u6-*{`?fqWAHz)d zsZ*y;{Zg%6U+?7m{LIW55RuU(Ik!rt<&=WsKc3DP9)&R5nBl?-HddMAwh%5z0xH+; ze(e#xewWC#XEt9|zjfj6aoZd}W=BwY^6CWh){mxJFF^9q51HHNG-gwj^r*3yxiZ~= zBMQ~c=BQ`@W@wzCm@n>Du3_Nndx(zN9vRz}foI0yaJzVejrmnvJr{MiCXgIRK6O7H z7Y7toaG2)fy<3fnUt^VF^1U}J|NJuMCzkNuB+GcdZ1$@$4dfDwZ1;{LPoO}=o>+%_ zG}~T(NPhDLa#AMUFv1aUA5aU7z>|r^P$2RptZ9=S2Ng+7larK&Wul2S;KC1jnS_@q z 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

h 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

<{hXfN}5jP=*ToVKbIE@nWn3)XAV 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 h&Bg{l843uvh4e)sECj;1~ zx%GO2Sxp|w=eO@;Z(}wdZ+3TI!47{yF28z=H7ye8O?7^`zhX+9nIdjiGtVF^ z0f(Qgi9r#K*#}9;uC8$OlXn@@A)?gte4C}Z-(0tDh8!35eAOm7-dO9gMLx;Jd}7P> zaff5M`5a7}E)B-IZn;*-Gx0+j9Ong!9M_`53_@ORu`7$!DMS1lfBHl&WXi>vQwPr4i&gd7tz@sFicylSM*g?=IOceNpjUoqZ&vh(-N^^c zQSVk|RJXS=xw;XJZ67=rs@?U^u_ih1RMk4>y-|kchC27SiAZ~~&`&&hY^WV(ifx;5 z(c)%mr&-C?@jiJI9(%9Y>P-?gc`g0A3*rzFAoyk4o~8|Nb6l@0Vmb!zbhVVzwr!N{ z9bpsh-}Q);ubj)z3NZyaHbNdklSZv1ejVQFgv?r})Vp36r@7aO@ogu;kpKaHm^gLr zB9$-ndufVn{JE~8qWNg@M#Ct9ub9MtsV)LCpDIwqec`CrA!&5a=E1I zhCTB}Me*yGdaXanhOMQ6&&1YOIorpHHdBU<$!%hb)N+^z#9GTHDy#MSFFqwap3Cj6 zAMkTpI#^oC6^onq-y}$(E;v=rDzvuaqk$mIy&7wY5p^jdXJ&Y+mZ$VN@4nrjz0h8H zSjUFKM2G*h=>Coa!zTa?ab? zjBlf#doDe8_kgS0pd#+ebqLsnsQBgnFj4HyZaQN*=MuN;)>RSo*u!|7h~tjH6whh% z`$)16gaYfi^7g~P<*|1-veD%YWy?~?Rdsq!Bt=Bp#bjn>uo^NoZ4;bTD#Qq+9DB9Z zht>FouS`3WmhXxAm_VAK!mD^||EPfqs!)#$MGqGMYySYweMQ@g&OuamR7<9V>$f9} zY=PpQ%oVsQ@gu%Y0zK@6+R7%)y7-A5O8FF9tuGjjo?)uO*g; z=_Sg?8J!|NKg%qq;9YXTii|*6u7y%pv1vfmTg=bmtrJOHF@mV*vL0%Pb_(e#fl4u$ z#)@1TK2ocjzx#5y$A~#XzTo396Duh;Hj8N`lY|GLt>>@QOL_q+wr`4=e>9Kkygi|j z%gY-mU@U%~V*QFf)MIA7b3^%q2BA0$TVMh@Gs^$`exw$Rr@;mN=K)@n;NZXc;scnL ze7>KTD_I^Db>$Y74Ov}z`RZU<+~@*11g0=7Sz-{p2lab%&GZ}`)FMJYzl4tafwJ{m zTok>+H<~e>Dnc^rkYdP*@jNw_0&0aa>EFJdxk{7aWMuUYBj@=mbkq|dXtP>1$k`N` z!Pe}}Kn=F-ff!80092>3)H^n^HHUvqr*B4$UCmU!nQ-^*EnaPSu{K_J1lc2Xl^yu@ zFi_1d>TKWk!uUb8%xhBbYx0zAG2RP@^Tj+bzU=Utl5Em6=RWl!?OzG>j{OZ>Qd1ZY zq-}eD50oEU|AdjKFS7J9C_j^)todG<=4L84+gzU%n1CB4X;pqe3O{+!=tF3N)VT|5 z-bf^sGnQ5Yw=HqG{MALXV80y{>YC}aIp3gZZkh!{-~ z0DYYg=Fv?b;DIHuZKvMvF!gdKIUa)EL~L8W=5Li`d113za&9y}k|KXCWPt3_4){$h zw4_-a$D+#RI@WcPHPT$9a{|DWL(N5-!(5wI4ViMiu=5wJ1*HR)dUuobcPT56zJW~L ztRlKq8tm!v^v4Tq=iy4PB*_5KyW|w@A#-I%#Na5+Qrjb3GdvLFGypGhbna0 zat0f-$0CmNz0u)GIbp}XI=%<}q9gOyo!^+d!{yDHZQ7nI_1Epu@9)UC?hExSk=PK4 zbO_}ub66FC5&gz*1wXz6f3onwU3dB9U~^Y3{f;gqM9%XxN*1?ozpBp;`yw8kK_hb8 zQ%MZ6{Bpgp4024ey?@ZuBzV}|>?>jl^zt}cn{|d>&W~gFa<$$1brQ9>ojrUj|9ZO; zYJEoptvHe_S8Q4YEuJ54ryb~eo;Kk4RfE7HrcFJ0_GAiqTa{^h&T{UgxcrF$tqg-F zlC3KePBNZ8r3+{Q`xNq{oxZx1fNjt36_+=Qga8ST`<)mGnz@FZT_2gzZwXt+FP%54 zW6}@4ddj8^)lWYxqt#p)KOY&vB0hBJ>Ra$a_m1+b_~Q+I>QuSg@F|h-rA|~~OV#MM zNCXN&{QX|`948(wp2QG01sOg|xs3N%#; zX1|X@2Yr`O5nFL+q;{7^s6e4L>M;7ict>@?( z%n6nOUrx2fV~Ri+3{Zu{k1ki-l~`dXSc{R1p1M9RDIWLijPf5MToCCnaj&(m6prhb zC4*bV1|~6=BmZtH=-0}lBT${vJ@PX_gkI8P1yKG;uXoGVIL`n2;W^Av zWBY6zcMYFOZyy`Tv+!P9Fl1qux9bUr?=SSRNglzD=S;@ixSm>(wY)rk;`e+;D}9qO z?~Bp@oxf*{#*L4AF*hYi@lu@cGaf?yZDMxCAgcwYouzs#Ca>%rzlt(*I+%maA|hVn z2WH=}-?3YlMiIMI_)8LyAB%rhViG+|W{+H4f1tA@R5bN<%wfQ|QiLopo!_3&`NJdy zsvEp?^pbV%Xq35aDKK;ZpX7|e2P-DM@?S~(PxknAbpEK~<=h}T$iUmomzzYGq{fpR zp(h%|&HdDW(gE7t)J@M&)x!T7<+=S!Nr|+GuzmjnjtnL77B);tph6D_^id>;eY>to zTpNkjQhTpVO8bK+x{4WZ>fP{oYZwVhu&M6gK(=6~p$|vBy1_?pMv_ssT?{iYB-A5o zYUk|@7c*FbUjell&?;8_PCS=gcMO%!7vKXcKhcmGpzGle_^eG{RfRiGQZmNH{o~y~ z9sX0r>TJ%(OFLlPUc@ytgGDv}`(%E=DXp-|&w({tQcPjT@63{;Px|WW?fl_J7o+4= z69d2Lw2T!U{Zqn>sp12cbFf4}=Y2~o`<2FC2YMwvTEN9Vp#rs_fwH_GBlg+jZ!k(! z($;T-K2G|M!R*3AB2BDk>Gq%N^x^$s4Uciy8E99o9Zc`1kn+*DlN<3Hk7u!tMBeF5 zY8jK~WE?@K2j4B0>2Qq6*uRwp*l&Z27)em_n0pd(M&+&KcVV1(Tv7$J|UyEb-$}>q__3Z!RUKIr-CreHxJY=6Q_OA;aYa< zB_k4CZTqvJ#=1f%dOXxJnCA5{iyzd(qc8wkSu%^>qVc;hn;3t&za;ZOaoAO9atb z?R}NpBG<;od35b}D}2BwKx9BiePj~&8{vs6$sO$Rm$vXG6^y1M>Uw%b(laW-U2L&z zgh&-CR76Yot;C_ZZT4VsJUh!t2x6tYUeiWCP&WIWZdD%`E#)*}I^Q4hHtF{ZT_D*bZ zLNlY|l6YYYC%sO;m@S+qz8kl%mT>`#X}2!?YjC3-8r0EH{p02yz}ICOLqaN%L!Rps z8EwzQd4eDIh4Wye>~RLPaAXvl=ulVi(GQRy6PFjVNzNp>IOAJKny9#nfnywojZZ`y z1oJVqrc0%d7Ybvi+vDSf|*4`Q}+oFi7L|N!(q8^PF?(!%WWQ4CnxHw5?9tENpZTE1D6? z`lYODr2D)54~M!Yb`Q&EI;Jh0BL$L#-tPv9|Mg_Wt_{MwrLNW#Bh#x19QW;!bK|om zs0V!CwLmFjCgk#FhuD5)@#L&YYVY=J(ZaM9qOq-Qfrz4|uUY0x99`vp$xV=q*7Y@4 zdrF%eFDK~-H+V%P6WpBkMyVtoE|Rm+n_v6r|MFabnfU9C#MU>_!4O-kW5Wd)zVxA!zTfodye}#O1w2L00FaWW-^t^x%3SxKn ztaf2O-?DeHzmCz!IU@o6o}~M@fs|6*r7WOmNUol_xw7L;>?sTL=YsQ->$a83$KBQ> zRVB|_v&SDDO^pJ;>)&rIt^o+Aov0U!M4q*ms|nhKoQrNYMNLQ$xL5258*Y1R@^%KKKNwrT~$$UJ>jQM z7Hl>~-pWlyGcy*Zy+*=Ibg}Whcec;O*#4s8lk^~YN`a|LkEzPdQbFlqBrg$aut{zR zENz$hQbMxHOfvesG3tFJ=37M-y84EwrGBiqDzmX0@vgaiZgUHCz4-)^EZwI*eKr>4 zCA~^Isdib+=c;H3Ol@Y16!@hPs5QksgVrb4ds)#hpFGkx>&vV>0tc~dyyl3yHAg*W zgo>Gyk#6(y=Iw8lX>AbPb}@f=QGV7e=e4K54H6I3`SnhoaA?Nds1&6~_z2@mGl$3= zzFTY8qR4)O>G}6va@wd?*}k*Tkqi1!g+sFb4#9JZSBj-OsL%d?PC~F^S0Q3Q7Ec{Z=)&*FIQ72#F99UG;8zyjrg3_gH$CWqWJQcO;=5dPQb0K&EJP{Ikl5ymNXn*yW_>LC||CElf?qeOTYcw_Mb^l)n8T4jxWyQg(69c{ZG?B4``)1 zgtM{GerH5Kb*0i_Zz6=N^_Tf{vHrbm#1C$YKmeIka&!`0<4dv1UXEHmYtH`H0n0fi z`suW~wsKeUdPfOBqIoBj?@KPD7MQ?P!8wGtd*zwhJF8#j>hdo1(q)uX-~z{FicY@o zTvBlR0)YNQGuOL6>su0NJaFf*{lP|w=pK8@tHc-zuLe~ycDn}=lz=-uw3E883N^}u zLE;yox^%L9SCy|qxK4!dDDt!x?ky>|=2!vewYY&>b?^N8>pye6vJge@+j*1B?wbsV zvV8j^FI2uXevuQ`M=DD2&;TeTgEr7r(1h9C?_qE?0&_5#RxfDXyB|CoVQSrXG22t8 z+J^qRsTLviu)AxH0A*Z{W3Fy2sy7>5QB#q9^+F;*jIQIo@%x=g=-0fubEaBT)nTr| zcK)BhPeR4fPi4d{PS}&@Eto+OlTh2HwR|!;4amVb=5)MAjP}|;CX?oCEgb7qnd$7qKu{2P6s#Gi&OA+YS z5QcV%^5+5pRQT<8-QM;*GU4Wj7{(CEa`&ZGLRY4X*O&7)TaixCPvE<;4nOMjC$vpI zNFwk?j>feH(e^YGCf|S%icIeqRoK5e1box?QX6?cf0ZY#FlC8Rs z-`1U`vPDBX?dsAd+rdx9=Fc@~u3Qs7v$-$bxb=D%>vVe0N~}d=wJ!A}q`!qRY2OxG zq^~#D6?GYu3biug{Uu+s;V0tdS{^vKrMjWss6pm}eQ`15^`Jkr0Tb6G2K$Hrocywvw(sXRxx=bGpg-kc=Udj;QGODpHJziDuQNCz# zcIi&B=5$`{7!&pP4p;w?XVyg}VD#4{vb-c2Z6;?%HmFOtf$#!gE(+$4FlbAB; z-v(V8Al%?nDY~Pt$a(9LYyc<3NusT zsre>jGiaSBC4TL>UYf)=Jt?`1NH?jV0o`!mNB3(>GrSy(U9Jasy>s<;>iKm@*eQ>Y z>@n%Eo1?|l-iFux8&*t{M?`f0yaAbRtevStv8)Y-fH(tN6Sv-GP`3TMzsPI~YZTT- zcwN4eEVz4@y!BB}-g=K6rge#nx%(n6oWof#T>VMBrq-Dgog|q~{b{v~jBq0H&6BY$ z^SW9JOKuccTM-H|B~rqDm>VHdTlfO29J~s}Q(?UM>x{o)ZG5y1T6+{kOQhs=*T<$r z?RuHiBH*|RNk#-`hsMB~@JX9?-bGsWYR-I^nYwI`zr4BveLT>VXRJ zGf}fg!d*$$=X(H}re|b7fQ(u2-<-j@MPYkqg)L|-06a`9vR9;r!=HV4+TnxdCPGtR zz{(pptM7ixTe`)uOh&&j6c;6oGum2>Ia~Cl8+?yy-im{K2CJg$}NEje^FnlD(5 z@ofIza%2G&reszvfwR8rJE>Yzktg?il1*JogNw@pxi;)1XXYa11uqf}S&KW6r-C3W zdwO!Ayk%pYKld3hgeXG#6;S9V_rA`ppSeQ5`ViR)3wf7hG5XhO%+P*N_A(q=pVLEG z2?o)wW0>83G{Z!C1KQ7C0HFn2=N!by09MJLoJ_~vRcVm96wCvgVE%nPM<{QgGO29t zLx3de%fDB1iG&Ztv6&9U79sIsZv`81wFv6%=`k5iM>N4&@roqeazC^BF;MeoigrKK z=cUGpu8o)TLXXdoZZ`rZJ3bTQ$LA_^onvi0bS89)5BTht2QXE%Ni`1cI|Wfi3tE+& zhnnJfoi~OuY}{}md-|~g^i{u)6-opiQqWV^PBDg_p?jlN@mxY`;cPTkNFwE8z?k{r zGk`OJmpos5_JnX>G@oonw+4)>Yr&4e$K&qlH3e9{_@{@Yyk9?Axp-@=i7JjpxdByY zJ9d4TKBUk{mK73#TUhT~_?nT25dtb9DUJg`Rhpf@^-e+^;EwNmV+Mr*z$MR-orr4> z@cT|O{u%e-h@bnWYbI+i>0(DT;E_Y3!*SHIqCs14*V7C5LtMVP36K2M(P<|sdA z)o3YkpWp!p&y+6}&lo~4T+BYy|MD+(2;oqv|GFVV#2M;|(R;$xxXGqE=%A0xd9}T_4SAI%jA%O`JW5c`a1m?V#V0@s<(SiVD@~A-zRtKv7WdkPR7uTd*_K46#x!pq&!PQ6HVwF&cD`HFCUGRE_284Tr*1~C4loVb3LY5c-m ztzhkJD7Y`IlW_wc8dXKN{|qq6IXc79FgX3eiiS(Wa|Fu8L-TPYs>!jWRfo#qBb%g` z$M&4c~1@P%?8$|@l5f+}4^J)j(ip#O=6Ncufs?xL3v}=?s_Hele`v9eZ z;OnTrB)xR@Ea!Lx_J+snn;(a2@5p9<$lpG}+@-Xt3E>nMdHqw$Cz8io#b5A7O)H4| zU>Rm9abdc^3AFs$k99jJ&~iHe9XV^b+Ccu9AXxoQ<0p5luMO4e)0dEg=C(uG+?_ma zqEOu%1Q;|#C3@T$1>?FiTRv72I817Ax(?-Q%J*uz3@WOpaW99>L>Wu8$y1)Vy25)!PDK0~XBru2UGAu(S+#qmrE23-06*RCG@Sgs5)gH`dRPYcfN+Vtm8 z#CV=ssc*11ex$p|UE;&fzF$fg4EeFA9b74Hn9EKVpq`fr*{c43xl=~-yT5Pj6Jy(V z6ZCYdBRb7Qml$=p(EZ_4SHCC{jJO3h%is1Hpho*#sjBvPGm(JLl)P~c-dRI{CVDMy z*?FXNBw@S0+1_!@mWxA;fw9}j;nrFDrS?kh>Y20b6YKA-w zj(_DX!ElRLmU(rm!+v&?tTK>F%e-X)w!Mh^r1+_v=u*R*&vBy7VonaaL!@AXNULG( zttT-A_s9VyaZBVoXn5&q|K})fiX2q_@Enrh1#uRt>3MP~AmAESp6RDFP&^mphK8$G z`c2U?Ym_Q9*IV8LXl_X+RkHRB;9p!BOPuNR2%+q`zH}t+`OPfzhdrE+i9p}l1FeNn z7v57_N*@@qux_b zHJoYSE7Lnv5(l86rQRc{VY#yfYMq9J}+*o*$MQYzhwkwokSBLnkz;J#bHo zI(q%Nu=;nZv7#f8S{If}6aoY|etbe7_qqG3l6e)6MMCNZuEtl123VZh$1#Rbz04|w z1pLj4^L<&27^>O?9shx=GyGj7{=l!jhJ`(oFK(xgrzPD}gyL8mr$XRDpI zEHBTX&bb-E8-D!G#ePaI*({g%v9QD2w#RqjiOB@ziM0p8T;UHJ8wjtA%Ik6%>|t<| zwwixmlD|$bYi==U>*x*S%j{7e9Ka&5O5!X@2D)=C6TQ`WYl*a=pjXYfbS^)9-C3T) zqTK?{_>}Sa^w|qKcZQhY{!>^iqN1 z-(p+YuXh{Uv#oY3y^_$g{jzLzk!eu${rKiVNIWRE3I=ZG2aY0TR!ZI4_&i$J_#Vi7A5Q7YY=w+7_&^~!Y3?tn4%v00~@X1 zoll1sFAi2JHgW+C9IyW1hWg;jGL>`q^Gw}fwyB2i^(Gw=v{y(N(DE+ZKlc9gtiwu9 zHEAmm4ltss{m>x0m}a=i_uS+Ax0!Dav}#&OnN@%G_)^%@pu*Agoh7RSd}c?SE>zLV z%Oz0>jf&lrborrDldhHTEu1{;dM04kw2z*5t+18EU$xRL)QSVv)?ZBEC9sh%ty_bu zKSwhjD`1UYEjn5H^=QUa0tX_Sx3^T{ixtjrXORNWCi`to=%HKA`P$DT&E@3BT769k zVaL7d5dN^Fwo}~ETx@~$(LL{~U{LYU_O+2=j#h!NPNlk9yp zrDQonETMUtyVQ}^$B2=FLhw_CJ@Xj@#h|l+ZM$@I9=`4j7h|k?7(nCJ*!6py7NYBn z={FN*(P=FyjRrBZ0Z4*D=NX;avQ}!$>i%Z!+ zO61QUOV~D6FRzbzfzAr~SkV%yuNx3)ZU6-O$#uvH@fTaF@er(?qB=`XLUA{ZCfe+8 zu0z4~J!^M)9b6}_en{6)minK?K@dv|AxraIDMf{NeT+P#xaWr%R&qpHgr~iPQ#(HB z*aH~?pl=YZS`xTyJUj5u?jVSEy~-m#QUsfz$U zrM77pH9Nv{=NF}^P)w{JnsZIq!}xDJ!0WRn-(#DzH%jIjkyRFO)l}!Y>iDni1Aq8J zx!?^+MFjqx(b^kK>}aBAnWN9D?7Glz{}@pZ*KFYn1*1g*&?J@~IEvP|4`c299q0?dmZPsbI&}EE$U3#2Jj$L312@+9uxmQsMToB>5=T zy4UvE;{V|4ECZVS+AuEgr$LlXCn6#Z(ltr}>6TEsBqe0j=n&}!iP1SgMt6rG-JPSm zb9?98@B4B4w4LWU*E#onuIqQ|PB6cY5c^=sN%em@UWHqcJ*L};Q~yQ;C7Yt1>t7Zr zKiDBV@Ie$GjCR{y4%)fj?H#@S)!&L6w@d@`u`e-In7cpyDpH+}l(FGA=kyDc`8LeV zl>kM#WLFkesh;&tNwI8L3yM2+kt)@h+^_vUi~MwZ($cE3d@_Aia}Pf_LOS-&B;R9x zs&Rct_BkBb|P_+ng*O&JtON%8Zv+v*;X$N8FC15CwQG|P?41%Q!#8Q_qba_@`t4-qfWUHZ=ihS*9P9X%F*gfdSjf-9Q5 zPVFpEcxkA?Pv>?DO(-J@=O$n!ywWYQEKJQPOk?kDu0QKB&1)6gbkx|``mmOm4WDFp zJY@wpy4X`|{L~(pr;fO9@QmNKb+dAu-V~_)O*X3a)Br_etuNQ*?|Ep;cX}#xEGv_%o zySc1MbyZA#8%y^(iYyDt?UnpkQ$)Ik;i+aeY7Hiwe%~zl z?R3xb6U$E&sl^i&V%9`=*@S-J-;=~%tym*tXM8RJvY~vyi8MC1Db`2Xl&s4S35DO{ zjtG2k=s3)m9A9`6xj`7UUbQnJF4Z@A%!xj&#O!C8tm>evKUVkkh+8EJyf=yMbDiA{ z=o;V@CBqpxd~AgwJ;!woyhry5Rr%3k`@NKHjzgUjs9t^#i|}Y|KEJ#0j4EApc7aDq zvofg|fR(0)WyEiW{J)0r9~oBNv~>WkhV?2-B%?&4C0PYfrnPz-alO{9W(QDHrFCzb zJAgK0#^SC|y|SE@|Mq4Y!RNUccjirbaTBcO%-_^tJ0QmCqgP>kB|%WiIdd?hXdVeg zk&WBN`8Cr7va*nDPx}O=5`^B5?ufiPS=sn{^?X20`U=DMTR7~MHadw+#b&0aIzxz- zxAtTH4;5V!kMZ?Wq_G1GSI)51t-IgxLo|#M*y5ht8d18<3+vEiJkOOX3zleZ)61)R zI?R=|1gi;r1?9sY+rqN)di%Rox z$vu=7YVh{_quzi08w0;(Iq%~o1*$O^^bHq5lO6j%R0(GSUw%hJhuQDy;lFEr4))t=&OZpjQ*ukNP2lA+Gox&Fga``8iavc$25=RFwe zL=7u(mepr%$wX1!MXnoVkA5IXDY)i!%$AHmLMYXVZCXzJd6s!Dxx`A~HqO8t^(G+P2m!UVGC zzpP~$98u%(`2w8=*S6h_!g~a@)C7{wgrV0Q%lexUGq5unOnH(2P?4(`n&yC&AEJ5b zvd@atUhKf_d<>>;`?3=~TdjcClfTq{oH}&OYaA{K)ZUDCmwMk6N6c}!<>d9O-$fmi zC<);Q{q_xT2snvV3s;e+2maL7ajxPjpyRI4J@Vd!)ypDJb`Yrb;&K|~eSJo=jJU`P zLhge=m#11VLy-OuJ<(>eW7kr=aF6B&qr;t1T^@Wk!L)#ypq6L{LM&J1>*CgsaRpX92kz z>*+-lZRw>F(BTwkpIqs9(;pFnN;2f?zV(m+CxXu(7{m_+tIQ6XIu%6T=2{wp$zy?@ z^xUn8peJc`aaK0cdcn??{HaqRhAW&W@3~JSerr`3s3*mMTHFQYJ;+h*;YQ81NrABS2;=q;m}Vd%9KU z%rmM+R~MP4ZBT#fPE25+{2V@s@5+%Dl)1L@0O<-XR9}QjD`w51h?oE~Wbft)CklpR zzRsg^nDP*cxD37NpU^-9CpVj=N1bFFKApC`p< z4Q+N?erQ}xr@Ks4^yUVX*`637(aP`Fd3k*_uku!dc|?~bE?(DyruLK zUOTnRk2pjvL)-8mje(`*XFE3#0nPgT+y2%gsuBJGCAh^gg65G%k;E1&SE&IG?OzM3 zofkoy5;of3l5KRmOm0x)6OT*5ArYc5N3?B#?5~Pi`J#LD%<>>Ihe}FZE=7t^(YGcE zE2PBOY>w-D3`4$N^J5j!n~6$f{yG91z^+y#Gc81WAbW@J+B3bZS)YQ&GK&ItapN^CS_SZJ~vUV30s&PYQw zmh2ule+Hghs znDU+gt~>jFbiS0?rHKc;NgeLv?t$s}DV2tvIFYgp{5jV~gg2t<4H>fiyqM}Ye_7%6 z!9Ksbi;W;`(b&~!4?+hbvsXNMF#Qpqjl2E-8Ah5Y{_$_W>2-1u%yorpBZI`wxM#<$7v{(ISwu(j=aiJvg^v_45_--TW} z-!N|X-AIf#*}hPS$N&z-8{I#mFMtyLnGhVv<9}eUAyLHYx92g-$o!`a$cxyP+MOKh z$=!>0tTlljD!`&>$!iJv<+t_$->Wxbm<*jfSxOK~uo+5+)0H%rvFj z4YvcTy{#_D$DRbUz0_rZ7b-GsQ%J83Jk>D=VxlWt`_um)vwNo5SwBN>2^I9wf2KQQ zaP+(2_D_w&L$Vo@Y_E!nr>6dudSzL;jcW(DzC=aV#PAEeQq;j%7rD|7%U?A^ZH19tn>$!SK#&9WDb zUAgpNv~&oeIJh^J8h(J^BGtWDQeY3>EVE$G_NjqW{`91hQA;VWv!HjvWh&d?LYLZ$ zdOS^S{dp;oxeb^iBWv4wG-l72ND~~?2?|t46=!Fn5JJu`|zC5T?Oxn zKxW*ILY1yQP1frwW_7XH*~okzA!0w&YgEtx5jj{tox+92$co}uw14V6PJ9=l^?C)n z+^Bz`w^-uZ88|Jee2kc8ZhQqR`z?kcOo!&NUa10Er~rQsNi@7@*hO)T3L*i>Y>)cF zANaCPil|79gg#HJ(2uU+Tl(-D`^`tpSCX<-Jcgs|J^H#?o{+uBXJW!`dJogC@#%Gy zr}LgAD$DwnG9|H}4okpy&gR6$q)lL_gbkp%!Cl4a&#RJ!b49piOS!PCG~AJ<7+9S( zwr;~hl=@+_`mS8(T52aR%Hiy9mzNC&Uj!A+00WHV-4a z?77B?jp^rJH|dXs4$G4EmV&uK)5A{sb{X}K-R#vS_T@Cr`s#_2eCRv%{pQnJE&Frw ztw&F3Z3hYXo63F;_L$c~SAxT%x9jsaOvZ&@A@CyR&ndD2?J+_&clnE2Y_C(beeGwP zK1^fLiOaJ~5V31$*ik)CN1Z;SS82pCkTk4)BRi6dD^P<3jIf7_V*CgrF~FRj2&6X@1)`RDE(;a*&9|pBIjF&))Ny zjVZ}3#ZyQJ<|ut+=5E&oG=1ux$n?Lv_W$U=xQN1D)bxL9`$6d z11&%{O>hS>`-c7cX@_9*IPt=Gb~ow>VrpY$jBnm{u1V>&Mv2{_gfDp?o}LvkPdIG? z8f$PD%4dFNN2ZX5PO}|bn0C*6Y%VW#z4=o+8=lR~Y{@u3+aTaNo8_Fp#77wopPjUmQV1Py5eQ!wf-tt^O5V z`jZl&*&#WLCpeC8|9&CLkuc)Jq$S-JF)>4f^9Hg&SXFR*lp`m1*oyHSJqmwZjI;1Y zSMOn{eQ4|my6AnzUqt?~Z8!7f?N=iihgG5St$NaJXAaRVqdx>|Lq}A2jR_s%==G)V zL>#z5`RAg8SAS8Ij+o4JuDj(1M{1P_@S>{b3qM4xJdXWHF$AyB>nuIR^{&$I{e5(h zx12O3EZQt0KIe^5cl1B+c)?AQL*Zrv8DW9iDzCTy0*^rm|A2QPoBo3iK0w7 z%YPpvQqDPR3YuMEriGW?RJ%Yr8BvXu1!Hh~O$lDrLyc8IM4l&rMPOyRgRp0mN595a z5E+J~e+f$8SQrKgbPLJ*l3Od)Kjb-BfGh1fFTstM0MVaED~LhQ8lPtOgY~oJXJXA; zzc>Rz9CC>>_xuB#X_AyrPC@@W}Gj`D7XPpDfp*jRMb`Ce%h0AARROf zIRa3)Zw&z7WS8_A@)PYW2np4w+97pmQL;a^wyEvMRS@yfQscv@8LDNJ`?d#jc)3kI zGu{h^Zanf5zW>E6fN=p2u)!_tEF4C?BS71+R7f!cG<&=@xCu>+-UnSV<>UtmV zIti4s_?%6|MlI@HuU6z4BGxJZwf2XzSHeE{H!v$_e<`Cz8fIDZw(s;O?<@NMAdRb} z{NkS!4}&J^?=OW9d$Al!;aqiC;{4l(9-BQ|dm0m416bPkV2}g~*pxW=NNzaX@9(c& zW)fEG`?nhW^ps)2VaYapEl+3}B{&h|?;N_i{@nD}Z?PCR|B0vgZPla22CZfLh_QN% zhR=;Q!n_Br&ec5{ux^e^>QkJ@2j&diL@k4zX#_=2f>oLN_(sW&IiI#P|G+yiPap~( zopa)wuWGiIxGTe$2T{GASN5i`%z3mkU3K84!~&G7KAaHGlE3bvJjh0zV&2q<7(JVP z{d0<_)8okAWcFi54ZatBoz&?hkG8#GeP;Bk82C86i*!E2V5a9jQN*YiG7S zo@?~8pFx9H7uu=(4yHoAp>a&u zOHSfrT-I;qD%i4cdjtLTZgM%*O~-|cf9W^SD+&^MJvZ5Wh{A8@V2sW1`G`})h8f+i z&!IJC`I;m-gxwa462IbyhH|b}U6^&phar*20N`AmojBR+68Qwj$QMKaA!_nGp~8X! zs9pQ=J13m?F?sc{kFJs}ZUB}q!@ie?zE~`eeFCE$e#ace-xlIXQ_{9#U7NXKSqf>A zdu)kJXm|f;M{uunA`^#Swp?iZeRn?}WmDeFuaU0^Grn*AlBOX?P&KIUKxpfNIc8Pm zR*yHwG%HD%{c?<|Hc~9a%iXVGD~MNoo*B{7?vkc|s`Rd)nO3d0SW9hQ_NzEDS~GX< z#m5Z@ujX8s5lQ}>(d5jTXxqmA!yk@y>;9k13h-_fD^##Ml2hrfJi6;0yhRI+0@qzc+rFDn`+#L~yK(X_r9TCL+Wkaj-$IB~RXVka1;yubu`=JzXqMoIGov6E?X5(10 zlig|Q?I#jtk3T?a?6k;|c+kmh*Vk&6W0;o#4eZ;>8AaHJVha8e`#J)ltHAPk_K1^s ziN%lGNwe*wAOCjOh8v*5t)t99|FrU6y~G>y^pXF%24C zOLo~v#BEfVJ^*!I(A8a0X%=g1(ET-K5y47?+)Jb8asOKCZx+e`YSwR#b2cvn+l>)@g{!)EFU_m+{@L!Kfw=GX%^i8q)q;>6H(~k$ zDKYSJHOyArUlo|n)2m)deIL1>H2CC{5qrd)V2n4h(e zp58ctpvIY$gZ(#rjY%w8B}REQ-NG$eFyx0k;zrFvAEh7z{Qj$Z z=zRhp{^je4*h_hTow5uAgbyV{2sEz|*cLoN63N*V`59@KJob>^_frmZOGKfBt0~r4Y-? z0~W6IR2Td@FgSm8^ZSCyzD*rVoJNB|Ermt-t?Sk*rud-`s!`L(G}P)eQV4sW?o6hj zD7VjhI1UGtFZ0-4457}C=L2XUwati&sgnWzR@j$^%_RLJN?oU^2(lw@`+o5F2f~zU zi)|>MDTTe)Z6%*TR7%DSB3STBoF7E<8H7|D!n1qCU~IO|0J1c7R7?nV@%EJfD8|?- zwsWJ+@pfHL+~%X0rRH$_7wnk#=(^8)=J24zUEgY-VD*-xslANsNjw5QA$=2IWaCJX zm`B+xi1(XKr^11u=nDfY`2*9sAG`fK9-v*i5(#651peYd3> z68+eC72jg>D^3d@$tH?Zx3n+=mRK-j64AZ=*q)f$VQS-=bm`*+tWW#CCJw3b#+Kw{ zr|{lh+myFYpCE^#$wTcm<|#DntNnNMkW4a4xwg>W2>&um>vz1yK%Cn9<4U zO<2+ZZqdpw8V98mJ`}E~;k-F+bBbg@=8vN<&IBCnsRqXoAJ}O5QZ#~!QshRU@iImJ z!#HZKX$vkC7~_nKd+{7gQ4iu#W5lwo9)3Z^V2;KNWx;H8K?%0&Zi$6B`+MM<){~`K zLI>}g3u~1!{&RQZ-60hk+T{7|>+DzJoJxqVy5ok4d|DM97|t{(?U&3cNV>joPN@fWV65DXA zFX`m@0H++^X%Lu$=uN#AyO=fZ&dm+{zG{F)BkkO;a`nK8ZHPIcFR3|uXdT*>JHhsbQachZf2j}l?dZ?FBAdxALO5?tY+U)Z8jbv3{3uW2^ z`>b|3yuz-eub6(14mgaS%WQ?JpTCfQ{TK+6U;^qk4XmMmqDa_oDSTTFH*a8Po^>|} zHDFb^($OlutIaF_sM$2Q5X)D__MybGzJxr!WGUZkk{oX1!fq&3A!WO|uk?!ab8VsG zDG#6P!SdJj%=z!yR`Ql{CU%_MqVdweJ#b(E?*Jyg?3J6kmF^ofB{_YedTyw(2 zH*H}X7qBx-u7)?>$s9zxyoYZtQyg!Ft56J=cgRT7%l%muaj_bi0A=eTS6jRBwe3%V z49TY5datqZL*MS1Eua*6hPqQ)XanN}v!8G8;@C#TtHpcU({S;6;x58-A)&xc{Tb8N zkg+uknMSuPjh3-fEC%LGV#7r0gS=?AOqrkDw#s(0d0*x9^QSv@n}e9o2HK_2 zZ!TZl5?q-KV0&vf-4^!9rG7`>V#;mM7sA8obw@YWYkAms?!nEMPhH~c!TOD5{PZ)= zR-F$fCiZZ`D+RyZ?&~W<705-sT<&{>su38=>GrqK;WR0RWL&)M=kinpobSsq&RZ>A zS_uK@t!lZn&7>bfGZFWhoK#})lqCP;9H6#{G6U{GZ#FCSGs6Tb^PfK+)d)h$_En4guIEd`AYAyP7W0mQIRPUt zea!M7x9ny1({{&&1+T)Xc_fk4wMaA=-j^ZI5x_BFMvU2wz%$@Wy0@KD&3YRTdXpMihmf`d@G;9J#| zvkoBe=WQ~V3@}mUiG-h<+})R_8nwF1s|*nEMrhL3@4K<2tb->)mWS$OUydpVGvQSc zr=OK0xcv>GP~czV90iKHlyYvYJWDVvC05pqMP0ZEdWmMH$=-8WRVundO9Gmne#Iz; z?ob>(^ISGCPEi3<6EsLIQ-$=>TMs!g<{{25FZ_nn@u;BM!TTh^8hP6@vNijw5m@$h z`%IXL;#Iny`qlZEM@PBBE{o{7`&wj_HJ^vIpCNKefBNVSdO7MID$eQJjc-^=v6V4S z-6Hd&ANk!x!;u4qxFi~M8n|@ z>NeLPH}|$wo)WM$YxFUj%I-G7<6~Re(Jv6hMz4w*6Z8I^KC=3q6*kJY|BO~K68_Pa zfD-2VVj`IlRi3B;2aC90?d!rM_xbFcTcYJb{JF6iK}ii8Zu!n9j_IzP)){&p{Aj{E zZ4{y4h8I6_C1@%{;;tjx($XRa!vR_<5r(18t4GLWsjvL(&5P&e$AkNl)w_I=teek7 zR4eV{4we^oEPZB0bIn=#Kv&OR6jMj*p8Z8#t$kt;FCBR>X*8f{qEP_u@XX7o z$vQeK=%>nR*LY{|_(JpSuIqM;>r~cYlU{4U10!Q0RPMd-X^_ zau4jk7Ji|{<0q2IDyCZ3{d;XtoNdlbrozHmo*x2?JpMg_#=z_%sw9}eGt&&dsT_n})D9Oc_~*9_G8%ice;J zQ4AW%-q&ciw8_pV;#gDm#vZi+xNCmZ^fc8w6y$&5IQZKi9r{i&@8xYN!ksa%RY==e ziCeVXe$`ps7vS`H+Y+OQQS52H)0=$Q7u+s>>fzinukXQ}(dt36Jx7afnH`0w7_7QkCfISuc=B$E0_m5bxp}@=W%wY@) z5xOvK0uuOm8nr33;JNJV$|7-d+MCNa#7q5B21g~aSu(VkCpi7}7^AbGzqE@aBEPmp z6&J|3&ixh&iK11oUechKs(c>e|FJvnn(S=?^KY8y!W0iWu%yP6n=VOE!Ejp6Nc0S} zH-@2C8>*MX=s#CnU!y9YC5+QPFFoCU5t9zwb7mh6eDSm#^Wua2H{Oq|hBlwSVX@0( z>F;^(aFezK1zNLH1^d})l7*?|nKQRpgKUpO7~$b=%2ir=Q;E*Cf|f5=z7=G_9I&Zf za`-<8d|pN#KLs7}3{=FYL{-yc;&n;uIq&&OQ(-(&H`U%iF@sJBtYA*Zi*zHt4sF+7 zm4WB2L3b;SPRE# zRVvb@gh*FX$v7zx zT=`ejYx|1oQy%+xNrr(YeCsA5YN)8{DhDqh!?Ucvu$-W|x23|<;-(X#b^F->u7O{Y zruz~8JDa7I0}4Gpwj=|2>$I%40vVwOi@o6ew2t z(U^xTSjj&KEzkn2L-+w>+0FEM&JvP4kEY9Ddg{<6l02QE58;%w&*}OL;Zm>zs1>S& zO6u)UiMr`Gd*L!S-gQ#myKiWOqKcm$4LNdEhM9!+_JT3tT=uZ0u-#?1PA%-|+y)H2 znU?!9DiUl(a4E8fu{M1vk)_%bzPQ*}tA$Of#Z-{^#fb~X_WT{W5_u^3wLf$+?Clug zlMIHHkN&?VzhAYMn8_w~k(b5MYFM3`Q@ktcLCQ3F?JW0ia1=#Ur7vC`K)xwUMzS&W zMF)mkzie6Y_IxsSp@uzKlG-?~Ey2h0o*J!TL(DyHiQ}V#M@7RCsok~iuiTXGSPN2x z+m~6FOx-p^ueD7*MvIR~i^hsRqEZ|stp-)6p54WY9D1f66;9*w@g4dJon|4R16M3M%ZW3YQvXz@X3ZL*kbeGVS*w&2pc zo8l_SJFv{E-8k&Zw@cd;F9~s9?h`c@Ilg8awIW9WF}ROHbxICD)Y=X3KS*^8oyJ>2 z2RmP?N&hG(nJ{m6!gS-qJ?PJr?d-cP%D1}{y}CcU zSOJ8}FyLPI(5&|nx8E%{7U(=);{>X7N(=`P*e8)gl1q{s-w7M0yaF{}&O)mj3!qLa zUf#|(Qz+uXuDzE5Y-b0P26DZ2X9+Zb9nO;P9kSoAEs8z+fvEP}K3h||ii9j)TvqVu zeT~8Fgrn}&!>uSjY^QD$#mZJ4~Ht6?=j_Hjm1S9kbd}4=BP-!e$e$0n&1{PZtbRihX8dQ) z7;`1e$J1ea`prkg;m`WB+DYygo;S8%hRhlbn@wq#n?grigr1z$RLJBE*92uKM(D_I zS3J0?uY+FGq{e>0r+cjyuYD0U*qgsUMf0LxrL2Z5aG+Jm(|BsccAYw(UaIK9#%3Io zthiXl0_* zyLdZ(_Z!SPXJ+0x@0sU6`<{=M%%bBl(T1bOuK&${vAWrSLFotV8Tw>NOhv1&S54iJRd{C!ilf{|*cIIxGbJTxR;AzE>=C4X(Wk z)TzfJR*4PkLvesr=y^hv{s-kJlmWs{UF+&85UviBI?`jL3oCqqV;$C)Po?>5D5D|d z0G6w}S07Ki9BcL}zx^H1Nh((XBN#HE=KJe?ydovPRmOuJgW)T?*iFi{qvQC_JKpsg z_vDgY9)E@v*KIbvX%BqZPK$f}1%w9b-~Q;8UYJ*F0G~RQ7UEc!$YHRG#&~Oe78(Gq zWoCC78>YT~xWgxHMm;Hc@Y19_`JaZgPFeWBHl)49tlkxWPDXYIZ|JJsvJ`2?oJ`ockC$2S#z=sU^ilBT9?F*H%b9*&f3Y#m~(eruu_?*4rw=22p>)#!)o ztyCLTe=2gDu?#l18faku);M|U`Bk0BHh$ADn2{ z4kjF(vM%-*Wo(?XxN^l~ZQOdI6UlPA#?-UwtoC&q6jMDZw?4n8d(r#TzqnRN=*#ui z>uoDvrcO6qW0CTn$>P|lvT^Lv4rL!V_aCiv-72#n6~||+w~4O^9vD_0UHbOLF3pZ| z`EX9Ow;R?5BYb@>zjBTJE*9Od5@?FPsVsGiA+S_r!DgD#JJYunHCHFUxEDi{;}u^} z*HMBmeSdhTEeB}lR^)-z&zCGUgLtN#CF&H*1{~(brDpA3M6U@@NoPq8{XKQ1Qfm0O zf?v>su0`Wl8C{(Y?UFEN(=>{Pg~BUUSWGT@@V6KU%1#v|zeI&Ix0<%j*dvYjrvZ;$ z*QO{ztT#qo7SAz={fos%EV0~L zs0_%wIZ&4jOpRcmEo!q7gW~4WJk7fzmS9C4lf(s=}5p9lL%q<(~vYg+xt zy){lTQd9zLH!a!Q&ZoYmzY%+Aen}YsUBh5+b%vGC7@&9EbKkacX#O*NuH6l(TUgA5^f+|kYw6~a!dpYt3(s^=NM zCm;7k$PF;X65l+}GU5jNm_#4NRDs~wAByw<>ph`akyk=`v#Sv)iZRMi#P3udK~Ln? z@kY2abrwHOzEZuc581A1IqqK?5gC#O*9wsO#)5G)nA$z42&yv2S8b{FgUhQr?G~aT zAPe5y1j`seJ^Vjndsmjokxbq4xhwdI8%9k%^U=-zw6nVx1!oIaN@uRTGq@^7n{ji> zW6l?BRVJ6zM2VjqPxF&pem^PWO4xOCp>Z|9#vJxgnPu|5AQh~<4wA+-(i_d{-ej8% zdJ#LDuXWrL^*}L!=iwdeR}E0`4t0COpdbZP>4W);)Gc||)@TNBqZjRANd2!xUD{Y= z$cgT4pf>$Vz8s$VhEOKMO19_gB=MuVU-1||VzbC`Op#O)J4AHiY;E}cbYei)!BkUx zSUwuXUx?-sXZ&g7TvghsrDMhe{cHI49%I^$ScE52Qg2ok#ShL8C)cJWpHPrR)J~#P z17MK2AU=(_-;6J`m8HD>D9?!*)yv2XyJg}3G^hu99XqTw2wPK21&uvT#iiLmMY2t% zxpfB?PNcfXXo#zP6$VF(qYp?*ez2B>`=hqbSVq&ENJGN4MdbL zBNf3ggswhkE4etFnUH=*d~I)3emo_56*$?E%qG1jb+np|{4#gNi`E2J2f4*E3$pHw+q@1SPsys- zc!1SdmcaRxPysl=wq0P+jd-5+k>Tg#)(aT*g#NZcms$`7Vh>4`ydced3|DotZa#n6 zj;A=@9V`%q^HYZ}P;w!5%)usU0hSM*Aq90=-HSd3Uj?>BMqCLu9_BE95kQyY{qDAs zZEP7@Ni5%QS0n1v@x{h=bw`z^1K)L|4tFv-+bIuU)cJrA?NRW;b0+F@o5OUSVZv9K zOy^r}>G?)F`-h_`v74$LM&&ODYVp?X+^@YPmGd)#Ber+}&#WgD){a;4Mz~(k<|+Fz z?+K()8Y^?W9Y?dm^H%{0ii|DwK@ib0gF)p`sKxy~Ij zUHx)*qP8_6^xE`p`ol)w82`X zI)Y-4oER^#{-Fd+zjpoan2jnD7)6>&axQvLefGzOAFp)O2yqC0(>>d(7sZL002nJU z?4hheAx?fs1>Rr3J?QA%NG%3Z_wKmNR?er}Jsw%N9oKZTQ0Yx+rL-DMh6y+``9W5~ zE^a^cP3cWMlh#+I!ZCLQOiM$KXZdF|erXq4@BFg!x@rTc1{MUpMJ4!@Tu5B$ zp9%;2d+YiAvy0^;LgdoJuPBD3#FqWys2epJJvRq=1h?UYSpxyp{@GLUHlCAtcS8Yd z|E_svH1n@N@6VGctJBVBx0~C4axLCpuFmm+ocui&x6w>toi;-y#YdQ?US7dF@Aq7P zmwA0%xi_kWyGm6#$P)6Cl=&R)@m!goXhD@I5ltm34#&I5Moc=QpBgZ}B7Vq8J&Q|R zR#~DtyzPMl(xxQNc>Ybfewu}_yADXUv1M5H9*DlT5vu4-J{%$-ML)4>#4>2M#KB^Z z>di-;Prm$?w<0Y9h5~%Wu=N!U6E}Hr3*81+fm6c)=rJ!HmkR1zISGbOV zOS!8vS(Z`g(R1S`CNaAQH0faT=%}e^(eeIJlq9*X@?frmhN=65WZv^G66X>m)}O%q z_?ZOhnjW>kADscF|DE$H+f~bL^nfZ=lizFx4ADZTqh+YrlrYT9gayOSdcE@t$2$|d7FA6!!nH7Gs6O0MuMn9G3)>x*z&mS z(_T9j@cu#B>|8a%XDvs@wOj6P^gp|Ry~7@hXav6a%09d;*RB&GO5Jx;G1?(Za5|3s zkG|~+1WbMA*r)m@6V5bG4~XE@_ovC?abzt=@gN|2tbE)iaM&s0S@xf*upbY7!p{Kh z5>3*Ul4#u@c|cSX@is62Uo@oAgbS$lDIrg)7)d_xTg6;E2gzGoP}6^M%0hU;Xe%jV z{|M)1F&t>?kp5K=)CCh5lBCyKk4vh&XI+3sgv64cGF&z#j|Po*!(X6Oyet!~Y4sfr zh6!U%AJ?yP)9zB(+gQ&4sm7jr#i_$3A~9lyU5nU(=G&|S7U**p%r6v<{e_S){-)6_ z`=bAMnA+CsWyTW6GxB(osC8B=|2<}}4Ywc`lY{SPv7QVa4r!PDJ6lPKH}2)RrYnh| zqL6Y)-X^%Z1Eo*uP|Co^`Hr=lF_d{(vFM&U`z>P;U*mM41$nbtGmO!4;~7(t>`)l6 zA0Fc!)20EeE(@3tXcaAAd3;cr0GmtcSG%ev6s1Y>U~Dn{5V8L@oz5PIpAg6=3wV$l zIdJ*#o$XHBGMcvkYwos^08Lj1n&3l-Q^;7)W;=fD{!UFONT@R{{#o`$f0aw&S^xJ$ zk?r=hv|HEB&s(3!n{7s2L+%DTY4~Tpck*13j{U&eD4#-3vfnC_ABWpW zD!G$1P!uMscQ}LGx9}Yb7a9G=;j%GKG_c6YqVdX{^Y`U$XI2a{IW3L;IhOM)2VKGV zg{LC+p^r69q#1I?a!JP?z3t=qDDlD8M$_}njfFsVCjBp4Qt@}cQXY?8cKmS&8Gocz zr;k#~{((zk#(N;)`OjGa1fW1LF-+vz4jxL$INx(VE32d=5!;ROI`muXX)%3(LUydb zbKF$Fkc~5aluvng|B2W3XOnxjYB&q;xTY`@gb}C8*?w=Rgg4??EZ}+LzD$IAx+XqC z`K0a(tbpJSSR?F{_O1(4aBIRQ|2m9d=RTWHqGcPTjY0y}B6|`H@glT$(&2A9Pli}{ zWhj#rJ&e2$@hqsQOm5n`8OiEtdJ1 zmqNh|l)Gs!uir|*YNPD8=$2e8UgB2`8?r6`;3UTcv}Q{QOcqW&_@+TBqEErlL?r#4C+otU5A{NKr|8yX-Ez155D&tmVr zejuu(lY6u9w&^jQEyBv7!Lt5Un7p0002bW837#;7-#O1umLp?8Fd88Y6>Lfgc!Y|5 zLL{`0dc=7%*uWN?TByzM4t!FW9Y=DSs3ylhQ9m9#$c4RWsPi3{-R@tS{%an&;hz{l z&lP%z41YQ?zug77_!CzcxfbomU%#`a9OKYIDhR7c6IDkb;djv>#2?K&6wpxI~wIyiZR4v4*0ar<~4 z55)35_@Z!j5vcFRuz6{1Z8l1ULaA{XczADGAaOVx>-KYoe)%lBp=}e<*11n9yFqxx zrRR<)=RAwncQv|*I&_~-ORLA(6xll9&lQ$FxY>a~ibZfDECRWs({w$_V)Mm2rjs3S zqJadgtIOTRmlyiF3$I-ndb{TJD7Y?KYaw!;Wh)i+i!CrTTni^RriikQ@x;Od}4HB7lc+Qr=w{ zCB3Zm$f?`x^8%^eSoCCxM0#NeT{@Yz1&kKdrnaAqZ8rbR<_hTkg%eMHJt2j&^4J;L zBlkUU$M_11%ujCMJ%XV7o@w>_TS-9Xrc1M|9c^=YxvO5d16f?c%@7F?)-EHa#y~08 zDge}BuS@785^t{tJE-3s5$CzdyzJ_Vd!M@cY9xdGGwCbX*Gh1uBw>J&&*68#@Hn^8 zS@u0!f%7!vewpV;pvo_Mye*e83zj@8L2ZREyH5I6UcWRcv0etXWg^`)-Eg1Ue3V~C zr+7Zud(s154W8k5cMbq*3<|*ezWuf?eQiV@-pAZTax;-;W17Vn<7>Xo@32Z@xd?Re z7U?sfLmCSdF~UD~MgDOD)HDdKUetBtsyNPkER>gCmZ?mM*Zz1Kt<9JvMKGpWVDfV+ zb{*lKF)+O!*3OQ93bLCi)n4z5yZ7}gP97PH)DcGmI-7X%?F2>t)5j$ zc9F?OcjHY7&`lGEmlLb!BDvd8t?20Ue#$4Lu$7cTfZYhx zpJTnSTUjT%Ivc>lybmRn?>vEZD-!23>S0jHf=GzKDRg@kC(b^^L>Tr!ZD%zr5ocDt z3b=<$jupo7k)%S8tZk7baMYPp2Q>+|NQs=Kcm`UPal#4OMO`1eHsYyHbX^z0BF+ z0CH5l3ge9QKS8@ElaJ^n8<%7OUdSkT+mXoTg$|dUh^_BY)%9jnDz`WF)f0dsV00j6 zf`!RX_pxSr0CgREroYXy#1#3LS&Rp_YGd%TT&8$u@qtD@Lv*QmWTn195yM#TM^t@^ zRFez=`<(Bp1o8r2+l{~kXI6}=DM^XSwC~;;5b_mvT+6s??x^xvew$j*VkBgQ_p8(# zCj~g>xAXiai`wg&KUHEO>C#Ar^Ec9J4ijGC<}=0D{;Eyt1CJS`ZvpZv0q;oP2z z6yIJLqgq_&D61@dh9gEia+NJ(tbzYv=mkVwz0J@51;3&IRqOES0v0#GkJg%6ZFAeU zDhkq%SZQRKht_u0@k=~*cDW+0JBky@erwQ_P40nN;7oTYr`Z+Kn&P_Y7FR`uKOm{W zoD>>QLvQF;d{Dup_Xgtps+oEDjGJU3qCSakM7Z54Mu1so{QLXrhcSgjtl4^Tv{>{l z_g@~ry;l621MY8TD?4uYD{D&wIqbhJ?1bM&h%7uVN$8roS&p~QU+uaX&zm3^dhKd< z>}h)>2@zKVtHKSim06NQaair+uH`-6Qo(*n{y;@aLW)h+CZ)x!L^b~wbzsO>qS%zS zt!m(XbMRVTnUIU3UW`SQ?L)wklqol|w`k4hqBT*iY3O(5&-t+`o z)>X0%JM0Z=eH#fAt`kA8Tt-gn4{@c~7xED+sox7cIfBVPA);KRrai)##{ zVWr2f%02O&WbEL-`GVE1w4?^>%%aQvk0Ip8A?j1fu+)*qc-$HF&e;YFdy96?fIz<{ z4MY9E&9Oq#d6%E3{lEbNZ>hp?!xJ`m&V4X%jrt-gPuiP@ozy+q4PEyr#bLhP>%8;$ z#T~6?Ta-N9D_0G3-vL@{eaQ~w#LVpa{#yhZaiO;w_CGxLS9>$QcR9A&at8+$pH(|) zID8r-d8_1zrh_UyWLr-{q9CQE>Zf0%?Ad7HR0z!f@)UN;hY$ zw8dP8A8F{JE`7(ziv}^_U`Sy$?B{(HEY|K%W)mUFukyhQ}_lB3&1J@jSO_Nn>O{&*r4Nw zq8P!XO4VAia}af;SHB>;eOO}#-FQFwDDYmNf$Yq1bg*By*N7YY`b7BMqe-r~!|q0? z*g2ti5Dc=@>5%IXIp@LGrhD{Ru%}nU=w}q)HL_2cKil{qeuAJQsuVQcE#!$|Qq*0d zVuy1KHa%oL<&=UKqH$@fZ4{>!Vf8>VbbbjI2>tepjjI7&mL>ql#-Gt!M0#{<6jGGL zjl-0(gT3=c?H%ZTfjs?SzX3YB8b4N|Lf-!@9Q-q<$hdp%#5WId1KLkkTW%9Enf%vWJ&Cz4n zO+63U04-14yR`3L{RoCCzUbyWi_7`QWvoC7_!zRFualTEMe%mZQJ zu%d{y%sn48fE3?>D$kJAN2Kr#Ryir>3)Y7}$Lg{a-2ePIvz9zSOL7KhK1iV8&ZQ&$ z{<5nbnNvrK(N;cq!okSd#Ty!-nd`CszFM`b>zqqqFdHhlXvb#HbD-BC5t(rzq*dt) zC>C@anX}a{@u@7>N;;$8HO|*IuUBw_FUSnEVHD<}hY=Z=Wx_7pWd%`L>$jPcoE%+P z!+DIS{Pe@&g$(LD@RaKmiSt#JyY@MeDu()rD%S2oX5BVx*B=n1f-Cd@qXy`*eLyQ1 zF<{u3_4`t1yX)sw-k{9j$4y{{6aHj|e;08SDJ=>gvCvlYeGu%CF{(=qJIrh~O&p%S zu?l*r(z2q_c0xnP((Le~*>dA`d~%t)|AkcoQy*R%$qM!7+C}tkEe=^`y}T5<~fFKOUZGCa(h$lqTszNtiO){mJ*RXi+avb`{e^atzWvhgh{(=tRG3+^@naS z`w?;=x;x;z5IN-l(~MY&hKEX!4#@|GA|J%ayojPr#M+F?s^tRW=Nk0%3vFFNT{O~m zw2v~I*t@}@N2O>uIS{r2Swbz%8c$!-AR>|;NmyVaU2|+Bw4o4?h1Qa>z&KhYmDB`{ zssB=Tto^m@80cR4>)fY=VsT#6y@>R?+CDx1hQ_1zn|?~aAIjwktU;*i5U{EzC}VJ3E40&-C-RTwu)|L=?|Tu|gP*64MDQH_^2@lv#xwx&6SWH_ zY{2LJxI4Q1^|S^P3ZA+WD+|VPd1@hK^c>2L(_>mYGh7$iGEEgPT z1ll?xHod!Ag)Xl=M4Y{dS9)++B-D2$ii6b&x_Oph_BdV(VF3p=C;|dlXXt~z$f7%i z+5ISWbg{U|I}A$LQ!Ds!rS)+`iJMiU;^yG0CiBj9r2t@uGUYs+o^y0xySBwx6?yKE z&rWJNOFF63{t3`V_Inos48^Jmy+x3T{j^7AikaUm42W(NE~;XqO_@u8C3ZANQ*TN1 zsVxAUkjAPXR-v}ymn7}BY4ORyEY+R89C%Dos$bqS+-eaG4qvf3vd4%I7#rX(irD$9d`xG(Oka!&Z@YW;J7BxsOb zqvU>_#0TqqGsED#)xF*wjBFVRT6vY#~p+gMzwQtqx42LFB4w8P{b> zRy=2)=?{9_rs-KGJrSig@rBj^qz&OH^LkneV-AO&hneQ}x7Cs1)0ARmUZ>+A?BY5L z`7W65t-dODX=&+GDnfb<&4^jTFWfQGgOOPbuM=W$_V@_AXAz9<#(>o0?OHaOf|GWv z45we2jId`j?Gbdr7s(2OM_l=EN*20#KVO(533Ks1ePodJY0RBv$Po<+-G+^aXUJhVa zG+~57SCY6^VT2Xn0z{-ZkNPtEB>xsqvgLHzCg3&Lq1yAQJfX-j_PAGBM{a<8qmpfh z5o#T*Fs@2d==!CG!MI$;a-e9-*1&29{J;CzpBOY37MMYO=zKaEybrg)$z~jn_|>{5 zex~stNNtK=bN^L)_r8=WrTkbTn6>o?sGTlBtCJ@dG=F8?F8J5+$JZBNbeWqJ{%23` z|6Fl@y8}IfpXRNR9ax6opo)qXh`QX7-G0V9PY3A#*(K2!s=qsHaJ*!A6_2Q~Y#s^z zz_TO>zhXaZ{03W!D|bA!VMNcojeHhrK4S*nH&Zz{Te2ew;?i%y=0#&7kqi_7HN9sgPxPw@DL*fYF2t zfYEf|hgT@=8am{=4H*orIWZ_30yQQWd)9UIAtEQCJ||>S$GUI#*tLdhVV{So+Fm#U zjBQ|_2GCOuZckqa$@BU77pw2${&D!SPaBq@CCBKzQZG42mizioJO?Ql9w;Rd08dMc zHR87MYUw~JNYI&)H4_JnLgXZE6#H(>04xM`di(hiK zL`uORH!N71b`V-KI(q!*J<0*(XN5!87U#?dKHQ1{ZKu&&B)@Xij2E%Rv1QQqAIT0A zXO}1Uw0$#xQ67WT+Q<+4ARKlai_kg>jCKAF*xqU+-Ne+ z!)^w!ji0PWV(sB>!EOp)`bQ_KN+sPj+Fo5w*pPv0CS}`SdzbI8^>7nZDC^HHJ=-oL z{1MhT9)x|abHenEtPr>(VamU8+FK=|pL#pPLF$kX?;=*MJj{cpsVTM~o#O68a% ze@>|5Sm^w;cgy} zKg;NZs+h?~g>kBvvpzjPTao|0-4gKB9M1qwK(W7Hr-m*{bx;_Fg8^d?)xo zn19nnUo}MOdfWuV!@Z1T<%m#I;|!aVL(*Yo3_G_!r^bLWBUpbVZ&~Vov}1%~_`}53 z)juW4x`E-e_C@~&g7_>A&lF70nn2g+BPnqqx;Gx7@~cdCxoZJ407OBE4viUbAV7W0 zKN1UbMXgSRx0lfgqQKxT*Gh*H?Z+U!Gyj}8@%Ll{kkhucesmxvoCdG8?F<=SF6BqX>5eIGzlTf)bG>wgA zzuWXkc# z_Tx@T;wmB!jAD=>gkfUmM_O46GYR?532RK{?;D{ zKh+R>^|;g$YNa$*h~D`#{JiM!60y4*L=?oJ2Vq4)L=eK%jKECeXc$Gz6aX=pJc~Yl zMlW55_$sXq^|JH&v39@p;Hw%0am`ljqRr(M&DrMA-DAbqg7>A-J}$2?3emP5G)6gn zu=frKlhHkJ-*44l=T%!F#IS0qmkLQ7N(Hdy2Qvn*UY05T7f(4^UDHL90A9ff%owZYYg?3mv<~5e}q2Nll7;oi3i>ns#VVthWbS_W3NjS z$v#&;@0vNFcxkVq&WyQ^T1jimviOV!gK%a~75JuiMhzXRaDis)8(rArgVMN?d`uAC0)K+z zTf~nrnw?YkelS3qbD$GTcGk=m_Xsh`InN1;(Aprsg(-X|$Vn@0bh%p`cs)N^2ESD3 z^fU^8=Qu>r&uQIlq*2eC*P))9cvr9pL3d;N!bUKssx>`2k-SOe*1xXz+MFEzL3i&; zEltn-+E6cCG>+NI&(@LW4S=vyeox@7M8<^u^4N4e%4kBpk7wWQ6(zzCOcjMV^It+c zmAT<=i7!@?`XoqbPr|etN0~{KjLO3C##bCSgKoLQDEA;64q>E=_XPNlDHbTs z7fB4_nS8ynl*kmbv8Vfuj?fB-F#Us4IrC zL0jcXr`y=Oc-e~H;{d0f)_;)x`d9Zogc-CZ)kJ=yp%cSR|?TaNAj^cs&qIB0X4eSMK z&3#pS)gNNh>7zNrxj$5?K==XiniXa&y1z%<2r7@){4N^m+|=3`qP>1^6s$Gmb_3sQ zr6Y;`(?;N8 z$G(}+{i>n+2)M{9qf*&za@^Tl=y@MtRHY{}FYlFFyLcZNAJ06HLBSUm7bJyWS1WoW z3RluZr%5uPB+QYjRfV<7KC?4^xy&|~d*^%qoQtVibg4(*&$N9_$U$5m)n3J8G_LZ) z#TtXjZk0JArT=YYe>U#PgU_bH=C@kDFySv!n$`?rsyy$YYq=$BJ`#~vPOCdRS?aaM z`d^(e&`7`C_Z~f*a4(uj!q(+u&99030>9R zd=e3Iw~tRT^CxuJZa-su77~At^#u^-5|2T1;NQzuvMU0x`}svo{liPG?)`9y^Q0_a zOQ&pGFnNh@nm!9XCKO`hgczJpD}g%@K7sfq)2v8xe+ZwJ(3BS!G9;5Hjjj+>HGN(y# z8~eU6xRuL;SSskOZN@C~8tQT4#Mpi$3I(u`vZs{}CJhBPuE&9z3wezT$i z!;D5Sy`n|_A8P>qiymc*(_ta+aCfSF%wmWKbD44YvbJV zOdw8{?#~_t45U0ElK>Ql84{7|G9ssfJ5Jxm%4nZOmf*9#&dyW-9eQ8cSU;IUtSZU{Q25h^LEK^ zeLsv$#`*QFC2lNmqV_v>e4ERXW*{vbShXQ(4dt>Sm7k2hH)~DsZT+qO-qx?VL~*{q zZRB2xE;+5Vs){O?EF)c|Az0NnZ_Nk(W+%7r?Ns*$A-P0A#bs(GWpdU7h%UMx$CS3Q zPMsv+PT07qL0vB*{@eKO5N*{;g}6De2_Dn_-1!^zVea3;qWNIs^=cgOMPv)YO#H@n zAF(Rdlz${!ZC%L1PjW-~B!?_zlOejmlcGT^Wi*RY7p7_(adQBn7v+To*G?^)6L~q#LzTyK6wDGMkhel zXX%`gjq0WCO)a-P^D|%RK6wymeM4a>B>e`hnhN69Mnu+`-istCEqittkj@p19h|6o z_$qn@l2xLIH3Y3kLtxPnChjg{PE=t_$L5}GP%%Hp)Wk}h{!3Zc84gz#hBvH1)abpe z79~g`GDc?;C0a~aqGyy~w3!fnltJ{CAi5A%5QgYP?>#~=dKaV17!0$M?a%K0cYoaH z`ObUZ^M2>N&$-`c;KTxh2`|h+E~x01GGNatyz0OnXU~puau}C-e0JsbY0~eYUlB*G z(78c@dsx5F^sp_FLtrmdj??R}p&x6+BSde;q$Tsuq zN@a2scupT)6@M`_QP1=j81NQ?K8??5*3wne5z*uW2qU1ohgn4Cxn%x3P1$N&(CDKP z*|4$OI(OQ9N4hs>wT{PjGL^{p0`{|>pO}DgPvQe*mu({{XbBU(2VtMnue=p}QI+Fr z88A3t@6tY0x<4qXWGtqc_DJiA{{>&V;t}Y_3aT%g^;2QaA{Kf(5=<#e0=yp&fW5TI z6@euo+2kTus&-Jb3RvV$WHDUstEtha225YM=LvvT6{@dCb*J{VN<_f5)b2!vP5SFL zp}otsHyrfbAc{p$%s{*@8yoL0nWI0~=|prTK%M%Y@I)DbdYP9U{)pByQPDxZv89Hj)zlELIRX?o}Qyv_UcUPp0~gkCNA%Q9`*xNzIs(H@a~xnXlZDAMq( zd}?$roiRDvLehOw^$AMUo}%gPeu#eQ`lHh+RAuy?Sy7!d<@oC5g?@j7uFz)#!j=j? zMKCjvj1^$2fsk(AiSdjxUwKyXfW=|RrhI%JQZ}WCR+NRls);hf4F|TsxfDYSyq3g7 z3X9qxgSoNUrq!t9aZ28T(8C`DUR7`=#OBwC&Nca~mua!19UqVGFEg$ZgBJB-Q@1d`~CJz~*U4 z$3vly1V7{Rc^=HiM#5xHp3CVJ>&AFL9E0}Qzd6s{v3&ecsLP3goZ&0WQ#SYhkt9>` z(#toF{SEt1Zr``?8}=LwTGtV|syb_AAP1rh(Cg3x#^pgZiw(Q*@OX*-pd z)YhGbrNSP3d9K0XSBmfwudCa?N~IT;q8|~Pitb#V9&$eE4n8_wPhge1xGG6q8RsF= z`9*m&Dtv{c-muw3DAbZ95VZLkR`S8oec?d4PkL7^2o(_yS9oo5uDK_xN?`Z^)JGDGMYAIS&t4&=o%2wmYK#LUyH8hHwoeEjf$rZW$9atJQVoN z$ay9S-upl+%l@67!ln{IB(h}3%lw5cVv&2u&v)DLXHKD(aFaV0)M zl{-xwP!{_Z8gVQI9;lzwv7SM*ySmFy!~#T1TXWfc*eyqv4$H>H^e*%=U)3U&YsHv3 zy+2I@n&JfFFeMj{bo!#*J&n21OYXSS+ob)5_?hmOIm@DDmH!l$?(ycYejQr`9VbukyhF zH(f-ePE^Gg(C`oB>rs?u|C?2x`s}Cx|H(RtRjB={Z!XX(e1{xf=fC|S3f#izuy$if zfU@Ap09pla+;#9c9#o;tb+5q%vt5TNfh#zW?G)d{0z<1j-H!{}li z?2)&v4=0tcK`_*?lDKJKbIT(Q;4*aMsM5$dl23`K&SyrEVJu#x$1>hJPSeQW)6}nF$df(7&t#5j zVSFni?n8Ta$cZSKUY#vR`RxV*^Srjz{I5t7pLjw zD;HsBFEbsixi7aDxcGBcR^hnc^T66yAexxEw|)^~c|1ikI=*<*YWG~((hLQtI}hNv z-^@*}9J3^K|NA7I_5$~Il_9;Uy4uEC-w(~ta^o4#4>NMSPw#)XY6hl(IY^6@mBkDA zSrfUsBg2J2jD#*?Qx_hx8IgS9Uk?933xa(689;Z=zh)090vIH)ci9P3GKO{Xd@eg_b); zApxf_u@o9f^^shXl?SxQ7NDquk=9luHEc)PVF@%M*Qe(xaV!QTpx3P#B$%!Hr4TxA{7_8dzB{fVgED~jc0BCjKV3jK>^UwHZPJqSHE-eRZbko*?D z=}Rj98fBX!_3`*QoR*OSf?i}oA`n!W$V_Ywf@pQ%y!06r>o>hF)I{}Ze*(bLt7{=iAyL!n&gSiqH&sm%c;ogAhteH>Dni?xM^Ld-IQB; zSjPG0x+ja{J(2d|sj*#!>KRiVpQnB>g^s8{|0(R+FwA%-%ni+=JqJR`3PbaT_LJXD zsp;N9(|k^hEv4uKoRKP_-G|NY$x*#UvbJ>vqb>R>f2!778Oy9x>7ln z9kKiKRe{X4(itj54NcBHb>UaE`aslq;wJ%_53zF@K8FQm>aJq_On?l;kd}7sPlBAp z)putR;9p|{oc|LmN!r<6?Gz#J#L&6hn-FTn`w$c$*MlVACNI(q+=D!}=Ne?86xhs+ zlW-YY|D1wIqI4zqA%+K~05)n3%^7wdFqNG`zJ~`Hp4zWOO+9eCasQ)d7fc#!xBc7z@`LR75Gm$_NE;K;3`S zE0SfRFHU9l^ftagOzF9IL3)?IhHNDfTg;`L1r;vywYBlXxc2zB*kDE=bGfKou8#pR z#VJKI}}HGi$aJL|kZl>#MEQDLmX5QlEIx*>L(w`^R#Wy+8(@1+EKY-1H& z6J~gKxPf?g7WM>wW2zi+Tztg4ur`$rahoY@*?E-{S6ba2H2`QNoJo#FjL3$V5_x%o zjr$I*d!x8%%A!|S@fJ4ZV~qUAq{5#d9Ri56=x-Vnj#0=Sap0N2gw()kGV7nNjcR)5 ziJ55!GA+Cm(Kl#}B8r)32~g98$|3UqKKL$$D;IR{+8(Cmj9KHl(6(z*=>eEt8Q&?9 zX&~S6mDA}(;=TS9q96MxX7xewy9F^J*TmpQxsgdGHs9L$&a{S`QMGz9yX&ea(pAPf zZ2QE%85AT(N+Eo4RC#^+m&Ar`?)#xF1PNS*72$mEXRmqEXMCl%C&5g9rpxuMc0>H` z9P2N*tUDeoWpuH&gv7nUPHs&!NgSA4GoeML**-V8k6c_`cb`|z!3A!_e@qte42t`F zeA;}$b!->8L6YAZanO1=aAd~{uVC{N^{>J$|1zp`xpU%eA_be?12?0RkZx8^Q%cN>uI;Z z-S#;i_9as_Giwp^;ra(4rye$kmlCneRAErGlD|OF8H!l7&b1G;qv~H4Wl`5J^eX&3`q_SuRPu6_B-Wo0R)%7UXGEW-Fm7d{|8@9&^oTj?-840EJ~{PH>R zlGDaj=Cx6z@zw+LDNI+Vov;Xjc$&Aio)0D+=_F}FO@Vn{;fX$E8tOER??rNtM);M* zFDg6Dxu$!g5}*kSvzMm#c$El2$8NpG4~N?e3YBE}6-7j8ks2Y=DGOo+V;z4hzAVBw zesf1yTI8(hoMPK6boF{L@)|uAX>B{wX+XK}$4*VX;Ckl9Uxxn{*xfE>(i|l{ncGBB zkma5!IN5fB21(RxAVF~iYH=%5*!F0DAreRgN_sfPj`vbd6&OriA-?y{*feT}Lo16mdB0LU+ zC4L{Amz`*rxp0U-e7iriJb=GjN84tjxAAGe1bOH69APCmnu1cQawEjDvXymW$(?1G zJVGjLglzh>#4TW<^fe8mH(qX#OCv$@%cv_w1c|Y=w+3(=tb>(<{89S&yb5Ee%4z-OJ)L z)Octz-e+R9-in~@jgv^!2cgd8-H|u&XMt(yIgh$nK;UgRIxN(RYudc+jcy2G`)FYM z#k+W2%@M6A(xpVcn6=ugk>yD{Fx6qLs@edP0e(4czCR>Wk0_b?h|AZ?Y9`@?JIck7 zb4Y`-%sCpgADWR?$={ajFCq9UA-D3-Fs+_Zl$zJJ$WT+qeURrLI~517&vP%#!bcww z-gaNVaoIFL5o*gg>^IIdC{`rsi87b9?ocoH#H<2?llwnpak;xxl{lKq-9ybSfqGM zx|_#!*?`_89fT(Q&X?Qxvo{Nb0frGWzsXF}K999c7#ZArU}0|!co{ke-rDdbxY%&BvU2B3NQR=UKVN0rty@=@BTqbJR?0#++~mf@z|cia4W*nDHThuXi2PftVM zFrgSeva^dAZ5(~(U8(-0dp$bFZBux4uO2(U{|;0*s1_n}YN9EYCp1-M%N@sLPuziY zL}XdWFNnWS<`WdIVAqwTksH^WXSx;0wOy0RXOjRup*PebtLjflAdY(|oEq2G5ojip zS)$M{LkS9%?b~@&n*z~Mh-l)=IHbVgWIF{hD}(ku+8lt+^bhYYAf8Wa2Cj`tO|xad zV7@Eo*(=-6tvM(TQ1~g(*eZvvrHw%_M)(VBs~zm!soW9j!gcYvH^%sGUbd!YKNdH% z{8kzwqT%o-2c$F1IbelZO+DQ!&z+QixdvGO0(S#Tmq52flnHD4hyznR-)iE;`f~y+ z1(ifJlA(hA2jZi3Pw(gVYStmY0Z>Z=1QY-O00;p4j9OEb`G=@j%>n>X7y|%H0000@ zVQzI{Y+qDmb98fGLqk(9P;F^rUuR`>Qe|gXa%psBP;zf{Wn*+{Z*Eg`VRUtKUrj?_ zL_=ROH8?FXHZosBVRL0)F*Gi4ZfDe5V{j!=7LFzpPHex}*2K1LV`3*0bHa&j+jb^4 zCbn%G`_`zf-Kzb!UG?f!pYD76-h=PxhRVx|!NXv~fPjF&ONa|Af`EMX1p$HJfC2+j z%xY9ofq$TmieiEwl@qu}z#9lN0T}@hkeVpiSA$Q$duTgx4Mz|VbkaZmKqVAOEbe!X_LtJf!#aEyzKl_YojXi}y zr_JGVdODF&q*}$xVLa4WD5Iw1vNZki@PYnu@i9IS+w~Zpp!d3+=yAa_RkbmkK%Iic zY)UtR@lT5gnZlXMeetxKFW152s{9z1Q}sHM8s&W&?)P~el=?WXQhmMQtE;))A<%pE zc}L*Vc?zO0@7l*U9fBq5TPZDrCI6PhRthK6a*bk=KdOIEs@^u~}eArzP zd|Vw@c{@w(40z~yCBVB>Kl6RWL8pXaF)*997g;XEjV5OBd8&T``-drgNAd+ANn$S+nxOI{7vxM-4o?yHLUmAKX6jD z@iD<=#%67}!@tpqyXSiU?O6Pw3C*}msD8d4X7cGzw8@V#z)1iz^q z(A6%Y`fHXeQLEu+u$@gs6NwG{Tv;ob`C(b5^BgKi^BlmZe*4nZwM+kQc(#|Mw&Cq@ zhv!=UcHgu_iNb`&ym&d2#bmVaV1782r&N@w-Ki~FhIf202*+ENEUF@zO8*+u%O6EK z-7=%zxojv^;qz9&8+s~{FO!7Qo_p`az26eFCy%g_Y{9G>Z^!?MS+asAR~1}Q=Xskl zFisnPJd0n@M7n!Sy1-E_Zr21Mi=UfP*KHoH5~XisU(dkr{5$bA)#4O_Y z1Zd}fQ!2SQpEe)ur!}$LcIG*s;8keW1jsb4x9*?l={+a;wA@y`TRfTZ)@?IqX*^#= z(LdGkY277MS+#HdIFsY9sncoGIa{{2{cSiy+jM$7wKbG4!K8WiYeVp4iHpKVP<)?c z0>&e8;*x(zCS3wfuXD9e5%r)#4qK@r`fz|LkgUuCwR}E3QX!7yp?aG18d0F6qi{~P zJrG=S7CVSKym-!cn_@38bJPIkW1gHA@o z?yhcm=p~0eVHucAS%w?*=Xfal`IdPLetYam1to{3*(I}}&*62~EK8CYn4|}ivgiG& zPLBW!&9go!j%?wOx`_r=@UR)T$kf=jf{9M?%f2NtCB;`IHkM(*y;{jtwkVDH`5=bI z9|6cJio7Vd(M?9bx1>yHRG0G{lDQx9vk&`~2@T=vImxBuA3F=xiagnfKtSSIUn?ko zE-Ke!>!r$w_ApF)JO$3s6WNj?iZr3lqb4?%V~YVnPfMyL_%>;FYv^uN2eEt zAuY}KBvYTiG`T+QX&?4Dl2VZFM{?5(RWHtMjpw+gP$!hr6}Mt3BI&$NTfv)y{*lOi%7)v&6(Bz_pccvsgY|u47EG6TdMVvNah$J#*N=q9VK2}Rfe&p$}v%-6D?0ECE0(p-V z#YLHs*J>YxI6A2s65Epcs|U-@qWKi z(R-fW=6gahMQ`K4ncC;dbVDHpvzJ|0?&q?LxVI@2lz>I@=ZaGoj!UP?6<6TBnuL0j z(NV(sT9p_kA;D&Wek=`0PmzC}5kHLG^QX=tl*G72peUK%ICZj#Y7uuF*OBJw zWv*h^jYD}N?rZA1Ih8R1iB)V(;+8TT=!c9Y88O^kq7nevSmLhg`f5zt7}IXn#1>KaUzj$jx^_B{yBy;> zk8p1}#IKav%rN~sUzwvrWb?0J!PpC9A{^~YgHdt-u$m2pgp}G#BD0H$CwVA!gczNr z#lIr+vtG)aySq#)6=X(;fTNL$3z2#81z4)!dc@iODWAF}FwxZhbfRlF|v=)4yB zjF5Icc$`$WJBXF3T2+HTRhSiOK0Qq`Gn>+MaPxKNbd1-;iRvu97~WP6B^;~QDVf_A zZ{sn3=Q6QtutRd0P3fCMN-P{n&=gR?XRZ*JCBz-9k21@N3{}i@FN}rPjff=2WM@$x z5Ed@(BbmoWk=)M<&Nuxb!{!WD0|rsEOAWAX;pv{KQwzo0hu$F{D{n_q@#C0K33chr$7we8X7ts z43De1QSo7F25S~#FTY#nAJl~=#+$Qget|InM5$=X?7*~T#kf{DioHVrQ70dy>4+oP zVc>T(xUrB{QN*K>Wp0|tvN$e@9W?;Bt^6c@XNH(|w=MSIu}H|L7Z^)X!Q<{rSzhVnx>$x zHKdyMrivEPi7_WStXgqIevdgb5@PcMIiHgKDui466uPDcnJhLLT>3r(Eg$LLu>5b9 z&-4U&Tc~Bj$zrvbdA_!w=eoAd_ckNa_3>ia`F3V4lUCdP<e-T~QfH%}xN{`Q{)+TFCD%44nb;d)ZH_rpq`qGq4gWZ|^QT=H zT3==oq_3lMfwi|_Y>h+cdCICeNV98n6QvQ5HRGHUXySIIsuGP_P#%?xP;TT)PF-*g%! z?v0Urjx}Opbi684SP3fQ>5*v)c)#NE98)m^Hy(6Cw7Y+TI%ed(az=sa1fU&78$S~w zaJDBMQrNucl9X1EF{L)>3`;mURRMRI%w=^p8{gQ!uR8*FEZ*I@K5ljx4CGeCj-a> zmy7lL!@MoXdN)@TTccC{_EC|KU0b`~E155}3|Gz?c0QpeIKuTyjQOOiklCh&ZOrWTKNyqO)127~q0oH9eCZ<7F9NJoy zmV^~MiL&u;0(Eu`3W*vCDyYFQ)&bQdl*3qG{mOnWw^Ri-r#Ox=md~XBiGBkiGbB95 zN!h#@mSmJjnA!eE^M((RSGL?K?YcBntc(woOt+K>Ji@|yl|~*FhDy_)0s#a#F;X|0 z@smy{r$(o{9d8@b0;4}||LPZRk$6Z%Fh9>%{%8d~j?2CnF1B^R_m&3E*o+3uK z!wy(1NmX^Eh^%m~6|=Eqsy;t_)MEZUc$o7zqImEi!vk~F?&>y{QnP8iOA0H2ngWD_g-ow zXfx(QE;(t2>>pxQiZ7r~aJ_yJh_ADn#sDX}6lcaI33pSGZL7U6#fIiK6<_?w7y}mf zaeb&lQ?tIJkN~!<2AmE;p&@54Lu4%Y2(t`0qLKWwG{e)OXq{^VW##-N4Hl3?_B+{x z59Nx8#v=Gj@tx7>gmT*Q=Mqi35z423mX_yoD4XL1l1fNSOhHsOg&jZ*s+&wO4pz%L zQq{xv#GazC5TY<1kk}87GD=~(ZvWYilcgFyVeAZ{Cvub#_uNK63zn9zp@-Ff`zpSj z5_2Z4ye(Y-JuE@@r&tZ{9;_;on;`&`v=kBD-F=+*yS+V2w%W&mkB!%E%$sdT!ymJm zdv>3lN61@pzF}a1mcqCb4>Vt5ln=f0L!Jp_2JH*KRXXp__3*}+bX#9Xxqi5Xh5R5I z&LuULcT~av$}@)a>O*u^i#0fH4_k9kw*kbHs*mH;(!Bp@FVRP_qej;0Tb)soao;d? zIa&f8gc>#m5vv3PVLv&0$)0Z{rcrF(Tpm!LU*e$=P2rLRcw(&}-UgC?a-`jRn^CXuq$L zC+;a)=k#;L29Z_Cc`?GcfQ>dtDHAczpJ`%5_<>lfIaID#V`SKZHwSucoYLwkk_xS{h#p&Xi(nPn)~ig)FP14d*?adtA#9h6mIoGW?b}OMRsEU` zb7*jH&}YhF!#m0`6W8EUlK{X$r;Dlc{7@)aWgc#+h7X4QOkyXaNg-hkxm#)_z@pva zl~Y?ZL`vnCW{#2zi@w%kxXcpEknf_3-|L@24Sr!6=_KK4te9KGTuE z0c)5Yghbw_mPsC?f{vYqFXa?kAlD{}&q9qvY#&4PEyW#@JjWNJQUaE=WZYLfffTA~ z1`r)03ig9T4kAVVZltOW&+)FRu4sz8^h0sLQWFQT~xW9EGs$?HQ^A7u97$=eq(Cv zb``bR(>K5(;krehvz(4JE2%!2!pI_ms#q194im5&kCbRmigj1#I3A_Cts_mFO%hz~ z%qnDlxgc zmY`9j1e)&q9)%JJ1zx*bhL%G^TRUJMH8AbO#s9^vvnq?>E5eUN2Vp&rYFNPl6=qna z%%#D$>v-e+=R-CQi#o--T)?T@?~9LjV0|@$EqjUb;{);iHvuC!unN4y=(svpxi*YO zZOnplbuYTX74*y7CvF?+Y<%AP1#Mn9H@!u;^FcJ3?YanHcuN%$_M{=vFceyp$uRoT zIA)}7;cNmE_d_>XxDTzQz6842D}Euh{YSwbQbX)FnuMv;SYD$@6G8h#5+n77Lx^4n zH}fD54P-?lXn#<&cG;@w{CTkBI+@FHu0~fq-6XAhU;y9JE+c0nWRi-YaHu6R+2?gS zH(Mu`<5aRG5@(lyzL=a-+i)YAubePO%g~_TfUepCLsl2|8!)O_{L{o%VjCod4B1!N zunmzk;4~Pd+ZSfX@JC65@3R$3`FBSlQq*vK&njbi+R34}oiWj)k$FC>QH^fn)Udp9 z@k9}88V@Pt&*J;}GIMqhLR2+6A+ZLuS#kROK{fRT7PQ&CD-f3JtMbtOxfo9|W62RP zgrr;M^>B0uX5p}N1*t+1>_j(VJb`19#0=X04K2jNvLs<&B#3B)Fa)uRnPt@t6Z$?e zrs5En2s7s)mHWm<7@WBKLyRhv4d;wdOR?R~;$kz&C;J|^u(gwv%iXx>0Orm%NP`7b6TW>3R0mk0le(H z!H)^1I?Aq~F_r%=@Avv!TCTe0015 z>$DF61Xf;`-5ph(BY!HfTh*-R`hoh;bc6YgeCBE~SI<)6_abevwD{;iUOA1;p=;8h zL%otAiINu?JJ0i^6AmTQ;zfZlfnWm%0Tzyf&3~SS7s+LEC%^G5~PT@l^ z-#;!vd{gBH8PI8I@m6Y-rXx7J#y0wCy@O_1OPqV}bayM3de4zal4a>Sg^+@v8tadZ zh_AvQrg#0}7;;&>uA9G(;BkPBnbwn*172WJI_Y&!uM)WVNSvu~U}mH9ruWewi4cY5 zXmPge_;P=BeiH;sCHP$_JPPl%E?g#*Pi7WDvffDqA>232pB}!t`&oFg*DKQ)lbJki zUN52j;Zd>~BY!I06wiYEX%dlC^FDsJf%j%Yk zDsKXqz;VD3sl2)L`Tq85_Vg8d_VQ1u&XP+cBUoZ`C;B19%c<&-ZHd8 zWajzQUtfEA*P8hcoyMF%oT-V4;CW;!Zy%DTklE!!6?+xlGwJgK2kG5UZ2d65)NvKW zb>reud1E{=I7Q>-r1isct^GAUAr+B_{VynC@^Nrsg}@M z=B?y+&!U+-Uxy)-icg^b{!LU#e0cMp+Ye$6;fGBVtJ^i3jMj2Z^@%lwTKYbf^4EI1 zAw9&0yNzCoHN9wUn{cxNlCoDbU+KP}c%5jO;>Wa5sMY*=JIqzqI&y!XI9qcRpuvp!yj<7zt^d|=W7$=V6i)l$*9&vXms;mFZU+f z8=ZMT|E`9D!$qJntc3~Y+>8c>|2CCO??oW4qz z1jX7Z_>)ujmd{Zz;Y7ZIaV0A>$69~_$SqPGMgGo&25ALgKbFzZMarQ+ON~`GHhDE3 zNo%ElcO?TUCbUi=K7-;bv4%5&1{ac@^TZyO^I_etWQP?gG5$ac`XqbIVT5p{1xb{1 znI{8rK5DuJziIw>u;n#HeBe&G@vN9G_Z zu`0$BDu3twEC870%g#Pz^B_4`-73G1Co#C_s?m$)u-Z6*m!+pqb&QYgax++thi8Oj zVQ0q;cYLMI=bkH@HNxHptI#(@Ob%g=%&r#M55!2_q2?Gc`-K2o`m@_eKEmz(wZgF8 z!TJRkaRSWileT3K(o%!*tfDBh#c#oseg~7zhQX=qS9KHO(4Y17B;M(>gHu)w+oZtg z7#C6#LS|An%&FHsvwowFDN4*cP-9|4}OA)C{MzLbVffb181N;);ikWgn#A!K_u%I7HNV=$Ww!}$1 z-YIWtNWT*uN87(95vH#l6+!Eu18RPyFu^Jyxj#ORm8WK=eU&k!#xk%4#Sk;;8$9Jt z7X8@W=tY;K5Vvq3|>C_FZcZ#8pnkmuhGWW*1^ zmc0jU{X?16;WO0sB=rtCwD3hx&Yqk$xF3@tX~>jdc&TUIK2c|X2q~3mX3(dDUHK6! zVRO_pXMkYAQ;Ct-#3~{hncoZykbm|u>D;i+E#I(!NMp}haGs%tH5NJ+NEAzE&{xt3 zxy_NjR<0716B+^1uP!GLzkG@DgjEm06O*AFHw04CmO*BH!_X{2yIKvfh+QlvZn-n} zH5c^e`#Y3g=M}@7|2Pck+nvGwO)MVEp@8tC_r~I>0|-dDF-zv+q3kjIqhx~eT3F1J zVPk#R_@p{aGlapRhpobB;Wufq#j>vOXf#6{#9mC199V=~$j0yD(q-S23&scUT?V9t zvY-aP|gcWwXv0g;M6sY&on5rB&zbKy~0v zYo=N)K9K^7(c`qp`lzt^IlnOv)zSTZ(VD#*zK}^Eo$r{%4~w+&^81^ye-l79vH4zmTYJ`C#M!T|)x3kr-@dTy;p`I^7K2W8HW z5m^V?;Xa)Hn;23GoFzMhg##3X0zp^9&UAiXDF_Z-p#SgqLYNJz!(jzKXCcb4b%=D~ za#TD&|I~(yCQxM}g2_AO3z@C`kGvoSgFoyk*?>O`YJWd8I|+ z@s!K{1-;3qeCco-e^{^*#{&TGI+4>?J+Sn}dAW+$koBiCqbj4JcT!><3-<&I^jJ9) zQe%}mZH2%*!(=4h#5?&u0D*V0$u{e{Mqj{mJhj1i7e>3m(&obL?4tEG zSE13m`?RHQPrw@v`_|NrqD@gzMTOO9AmW?9Od8wS zdWXk!z67yo1SY%9Y9KUu@$cuMQQYvuo#S=fd#ukg`RUW>uDI5*2Z;NAmK1C?^kRe&Q_8-B+J!nwij!RB&}ogG6r2}xHt}v@$$|y=c}#MH6NJs51>yzPygt)nBjWW8ls28Ku2f4L@_%cpnu%WW5aryfk%wobpxZ zF$qdY4Sy!^w0pcXaH)1WQhbVAhm@YE|BQfdoY>RbUH@(7{%obmVQ(Z)EDAqVe^9#C z@nC|}ai4+T~t_1r>Cz%x3ql`y`z zQKQ3GhUz>{zM?(n?2dE)aA3>F=*8?4L=z~n#^>|=%6YGrkrWX@AHiqg6wbZaY;t2w zOAs^Iz`xXK6AWwArs@3Bp5B$e98XsMVG? z0!*tB${hE{mfBpaYA41PQl&fJE6tK{ISz2x*KTm@6y~v#r%u9m^j_3B$?o5o;#Ozt zo>rJe@j0C2v5n0};wj^Z7i*MaMWk3O*39dEb&F?9Hn% zX2TzLHDBpIHLc{{DJpWoAL4PjD66Ra#N$dl(^}$Pum2Wjg=@RfspFE1b#pLjMvnp1 z6lPNaOd7C&pwi09#PgL#>rs4iQ{y5Z?z-Zw7MZijN-zI6p4#miq>OikqvLp>QJ0QC zvN=@mQ0uj+Q976@K1|lx-@l4o^Glq>SG}HkT42BQ~ zPw!3S2n9nT;I{)$RKnx1^?8{MC(>%gE9hJ{n)8fyG6*&1SSL$z8k^3Qs!Sv+ayaY` z0nLzV226hKAZYwR`h?Z~`S3=}6!*RQEZvnr)#5LK7PJ|-`#UweqJtIc&ALOWoG!e% z#sc-t+_#oZEB?_BY!&Q~cgIY4^K~zDz5BBdtK!cY%f9c^@H(ANN=@|Zt8d|5M{oTr z>+jom7hYGc0bO>J#q{g!@8Jm2Pdx$5otINICX&@SQ&}&+*&_ljp;)t*K39V*@bDcK zmaYvnJ1+WnR(#x#<*+*4dOXjJ6d6lr@n(1hnvP}h>4iEaYhz2Nb0~z;3`7z5TyA!k zC>23=e&+GGw=zfr*X!syUT|&Fa@b7QR0~f#{~ozSaRL|Nb2f@GLBQqXLjR(5cYKht zdtzj3Es@)^ zsrH89e94Eq(`+f!i~2}?_T!$@_Dxd5c=OV44R-zc>Nw^Bf1PP(_g%&5RCnEWD~(Tm z_Q6c-3xV?dcgBj|A_Qy9w{9uD#aiPKWD{TZ)TXEeV!KzH4eya|p(X@5EO-;nXXiH8 zqZn)th8BZiK(Tt@N^9r)d3n*syPfgmQb5(W_4|Ihj4ZdBxv>@k3TM-8NR~6M!9nS= zQ^_$P&X$#yF8-v!nW}a5ygyw60`2gCeHE~lrRNgG+;VMC96Ht$*nFk&Ws+0)#K;8Q>}Ux|3SpBk1fYYQ*noIqFex)ld|f3b%6k@2`X zn4p8lXmua_@g#qPv+SJQY1i$uab2eYyH6>yb_LYVu~P3fOkjPhWfQJn)cZH)Xd*2R zx7+3W+sgvbJ9|D|E98kH=qS5N*jhACvjQizr(J|Prdc% zY?C}p+Zcn1+$~PBRVQhkZN^7|j-Sag)mMyOhTGAC)5C<;F7hXvY zMAFxa$W(m8wk9+aw71!ZfLQ=pxaRrR>O?4by$JaRm6UoD`P^Cf?2YKtpZO-8hoN9T zjHEy2d!aqK+1k1ZnQWt3Uw$)yY=9z*nk%l7WD}LHZS=WXs07kyR1uV&N%Z^e5u}B3 zgB`AzY1I7SXt~3lW7@xx$F?0ERv-yuTXoM8Fb?`?Kj`Ew(cn}B&Orn=jLtA)8h2K zZvd9AudiR%FSy3a(VHqR004k!LEa%5T_Uzcf8oI+jkXQ5Hul zZQh)fVRohiCx!=C^*=Refi>~r59ZJCCtr?bZ@++>q()2%eSVAjz5*HOgquCxQA7Xn zQ9kvN--U3_nG#-b^LjS!XsgbGjuO;sRk9f)h^ta)&)kqRRsDi6ERU*pr>sAAYnRGX zW>~Lj#QNyY!OyquwC0CeDIm)veLo7yrk6`lbXGW2kDf1d#^S}|+T@N7hTD@BIYA*c zMgiB9PFc8lBzmazGLt4FyOWtOJ-_s<+}thdhr)>+?ID)%_erp(dJiLIXW~~ExLDwh zt?%GjYQbk?+3nfzH-&Qh3X0`R1L~6^N*vBnlt+HQQqDx7&bbn}RGM$r6lJsxhM z7`&RZvz-SqXn1%*z2HGwm7avlgeclk&eF?C!hKeL$wm@rPk?eUL{#r3sujf*MsZZz z2qoYmo?A& z%95kxPPc$hBelK-VOnFAT*GluxOXC|U$^XmsDjVxL(9@@)#Xixw+9XU7zfVK%;3D0 zJpqd%yp;6k4q@@^sV;i)?&$}F!&sFPmH|A4Rx2H}In$tiFOCo0;MulQT<3yP@eJ7g z$c;f3eoRY4??#oNl!L4%mE{KbjD5EkFUZL~2=OwVK^j~*17PKgyB=yHtjA)}gm!&t zIZ(Y;4wIX4NWlHb+@pSuRz~OSe2E{Npg>rY>_ssAc2Vvw^sgVCjx283u3$P5dTweW zqcUSE#9KxmB>`O|aCf;I_rubk29(%=Y!&EoUmDQHARsVfkaYEYdz3a*Kp^B`9>`o- zo>Msaf!AjQKen{J1R-JDOCK7g@jNSP1@B*3(v+OZGoFIsB^&Te( z25e9=%sddSfkp2MByBe}(Xf!9uP*{BM%%;~^WO{X&myQ_s(QoH!%o@FU*58Aavx=Z z$OZ3}q7cm=b|VbxzPNv@YRKc%^B}ns%OQu0(Ggf)Q`z+rV4b$_iF5J2x|^lIXK-HD%l^+DX^ z>11h^S>Nq%flC^9-PDl#eP9Frk_4Nr8J&fN010Nh`_Ds|4`Txb{j!X!g30gAtDyxU z9E$l&{FbJJi2gE2$Wd^tO{Nmk){8oy)hbiUAS?u#mhg={M3nge0H8Zjn0O|5tBqAj z3Ah=NFg=eAPy0z~yCUOkqUpr? z^77g2w_4TPdUO&d3W=e^S#dD)#skYlyHTs&Z}!3lohcus7S;v$HpV>3{tOfdWr0_w zKyi=!(zwU)iJWnwcA?{eERpp`8PTX`RY+EnyFu=2S`%1r?GX34u1ps$2kVZAqelPrXS3 z6B^4>quh@Tv;U-Ip|vLUb#u>mW1`fs@&)Fjux_Tj$m^!gm4U1oAugG&?egGjq60t+ znksHFVE%aLwf;B(G3dGxygB43chg+nCwQfzIF%9j?d6~F#xvItGGoT8*UaQJRcJ-h zT9a|EwCjO~-Esz%k}!gDVEP$KHE(^hOgGm9`6IgOGtIO|qeG7xkF84At(U|>6hcS8 z?L#Nrl?+>~Q7^y+NGQ5pY|;%~EL!#9I-gp)9m-Ly+UAX7+?5_hPCvI9 ziAIM+&vtBvlxGi~ySm^s)aCAEXH-d42WACm;PeZeK4A*-e12#B{xA~89@?Kqf(1$& z){k9z7H#Ng^U`QmFXi>@hgPXdu&E87(Q%N%`Hgv7$&*q#h~{f-t6)V_u)`#`!s7ON z#7Z4VN!7`=Bz%z8OCbnG`cue7MEV38W^e1NMpS4=&DCf0Fe^Uh9r6nP5ru=&+O0&$ zF>8`}q7uDEgC**33*&nthk?lJ*6BQaKQtJJ+08 zgmg2nF+w8*V0*&=(^0Vg0LYC%Z62}gdoKy#x5ci69foS1@F8gL#UD>iRr=WCf&4lD z?G-*O{~?6?V8jF0$av$f4a{V~!D6_EFo|EemHf3*g$m!qLIVavS~&$=DJOq+&0N!K z2t5zHUy#|1^tei-&(Z0`BdR`_?mWcoW4b$`!k``TPx?X){~9UiN*mUUbkj7$Z*-Q4 zw^9Tu!@Fi&zX?flgYv-&`d@m4YNPWjy+^AO2(5BE=-xO9&I$o9>F(Gisobw?V?vLB)B0zj&XBM{76LA!+9sS zOLh(x;n&Yv98C9I$9$AK#dd_GK8V8+X7m&SRuzehdu%BDc9*`{6c;$qul%M8X;bAZ z{h3a-*sI8^(K*(4_CQlnG=5bm7RSIF;GBkcRt6#999n9=^P)7uUIP@BHca7-(!0qe zv#OIv6-~HR@N@$GkR1B*T|s5wu04hM7|?^KqM|v)?NL?!qM@~EojI#Oc%dHxEZ# zV;no0203+!b1JLPLQ6h2>}Cl^Rd4UxYs6k!>H+j#+sjEcf3Uy#-oM`r9J&@Re8G+K ze1E_$kCOvY?{v5*E4aBiPVdwezn<6ksS0?lMC+Xpups1FvM!i%z%0y@5!k77fu*7|PPrJm9x8{PB1?H9fl9#=78kFK&C z>+o~Ng z{42ZdbeCr+_mcK>G0PLT4Cmhfh(~RHvwdXnU6NBvF1K>S`MU7brP{q#QLDgn@tvdR z-n1AD{EbICDEE4eTRJhcfJTVVdOu?i>H{8UEsgR$d_2B^l=reMtg8E2jV2Cvo}!#d z*`;Xzx&lUq*c7fXJE#~S)rc)*a|WHJ1k{w~K<{5X002+L2k{C)cBl&)<#s4PK4-*8 zSPC-WnnAy%<)j6LXGnMeqzXM~-=&u5X3w_wC27cw377Jzy6C)@u+owP3Q{RhmSVUn z?Rqa9s;mO&p0c|le$jQNF7}UUioV6aI;PZ+-A=($bGD=7C>uSptz1v~T(rWMcGc{% z5X#=6!=US$WCaZ;-Hohmp6_h)@AfpqDV41TQyD(4GCtTVP6A;%DLPR)Z*>BJ^rw68 z#%L=Ir)69-OQV#d7w(okJ4@e1CYkY!ixhG=(K?t*%vEcByI!?C6|O%$UA>n~?`K$% zN&7wD2GbR2R4`43S~BoQ(Ye=ksaa?vUn|BF1-J*d+@}tQWJTtPbl8sJeuX4~5y8&^ zL}6Ywt$rzS7UO{Hcueb%$z*fd5mv3!f4p>E)~h)gW&GD#O!S575s{izF0WG zXC64eD5Nm8y(P@hTszVCfS*DM+WmlNZ7TPcNS5k3Bb)DW|ISfB ztMH9-U%(oDv0HwboHxzpfnl_R8)G(t(GmT~;C}yB{~7U=a-)18*S;0e4Ezm!y+9C( zoN_X{t47i#)1gE*ka9rRT-!{&2g4EFtdM7pYq0(inMN~+*^q4sO}#2DMa#Gwk=Zyn za3>LFMFKa!kNp#CrnCcG@zQbY&6yV1Y;S$c>csQK60#20(cw1* zfdL?d?vF24YIHX5@0AL)Kw)JVhd0xK3RvP_i`1fe5$}-k%KNYUFHHj)MXza|6G4hc zYk{^_w5I#cK@ZdEDqW^Zqu)FosLgdbB{N?;;%}V*_9i{F86+G+O|ixT+`X-M0MD8a$Js zg9t3WL!Cr8PR=NR+;*o8h>N&8vRfT|Q=8I-^{qjTjqPcK7OLv5|AU>53zInMb$Dci z2g7O-7g9~|z`d8+`>IZ_9w@4K_3rF!tqW%cB(Y+R_uUiwV1fy1x^{*pZc&Y@g!2o- z)}-uG!;NSH0@R~=UH5>6Zv#wP21u#qexx{P^6A=+wGhVv;p{lkY)X24wGkXyOXihXQ;fD(Wo4+ zvogx6S;ZU}9I)_p473+BfRnG?_C<%;bFn!FW@<5~Cv0qlxhfK;DkCu2JMRg$(_txu zh0#L2!S|9jw8J6fxFxxx5kPTeW=j5>rhZyo<+pe%90h{6)aBW2EP3e+&}kpUOpTK? z?9j(9D^}V3QdG?WFC_aQ;}q&y&%y_>J{FloiBd7}0T3u&rli%JUJ$=%XO7{g7%yS! z$7AAkF}1vt9_UU+#vAi?t&qy?1=2MHU6n3;H!S!R(kCDaD0El~qT^%uuD`-*MHNbPE$d)+8{8sV2qZas#}6;Y<{Xq+Cbli451BVDa8Sh6kyCsP3qmJYu@~ch-8E; zU93PdiA5cuW1sUmr2%+yD+rar&$jB#shh3fwY>FXm)e=F+>n?hCB5|UerGIi{Z;GL zp$|~HA_DeSyy_0K|>YW=$#ly_zK8^=Y=d%l(N$`JoN+ z_FaohxJD|$1H3NSX_BfH!LL2&qRY%6LPi%%Ltog;#(U-+#_=7Ia{Qsqm=f(cah3fIVNK;DQnMVMn3~;~ zeeZpyQyN=!(#>!WHSK`Wz=hpHj+l=NTg48V5XxlFw~nS*)lh4FX>`~o^&qrjbXyGB zNw2c;`%15pEFT6hh3{Nv`z45YyOOJB5-|t(eK>zFiwtx=(QE-=rX{7R78kiIOhRJS z>OP>0@anztI~#*WKO}@sOkJ%@D0Kk(ERl`hq`y#v2L;l>pU}eN4eW^)@-lJgPu?6J zdM4DhCMuS+lY~$KZ#wW7m)V6Pcu~4(@kL3GxVQE#=v&y-#?Ym<3vn%zWiv_aajoPz zP9g)NPduG8tz#nB8=-i+E+%>emhzI>9v>rJ=VlD{Rjbb`DR4EBw%OE^EVILuDt*z%r@RjJN8$twd@L;<8YZT$@7mj zf8tx8llo16M&g#7j{-JEGFO6??sY}ILB}<1aWo6&<-lwlav_n$h-b(xgK+~i2-)sk zGV$-UArvI{*5d=V8=5#kQ~968fVM_Yjxt|tBa0f`9{!-gYL9D$Q2`WumjKB5#Kw&> zrOhvSKqvS3GC<)i5Y?j=?q(eE4q;|+Jm8$TtfuEjvkhlgbhDIO82I5kD;)juFxMrZ zq`ZHdc0KB+s@(yRywAeU_eJg&s2X|Sz>MF$coSXiaGU~?5p;LxjTB9kAOI3KfYRjL zF)j9^1LM5@^sV7b7R_tt6+-r=9tzpo?E0a=rN^3QcJzt0bSl}H(GD%8(=mkyoKKLX zJ&*Jjpl>Fad{p&<`hGHBZwRT5Mv?wj!+l_LJRNglda+nTp>lLGz#W?{;i%4s6&|F~l>v?(K40J@T zHMnWg;&u4$ys9I5{%pMrr74m_b)WP#3rf1-Tk74uYqJ@+{#0%%{I@qLm5MuD$M3Qk zp6FfCHCAk3WY>-sudtcRZttIeTHepMH}bY&jnSEZuB){|(eum%PhX}&BASC+>SfC_ zQJ`y40lnVJ1a?>zHND0C+Gro1JJer)L?gD5^j8zYBsA7%!(4I9d3-OU)Am#!-ZjYD1$1@cNwSc;39zt1i2h#TX*c;fz zLkuxwvcjspX|u7!bDmS4HdKfbSx7FH{zR|f4n+wtEHSxTevUkzbS#}M)6@t&G+zBCox z7)SM8KWVB2dUZYH;uinjH$b7(oPWx{+f{uj(a0 z!^5?VU}PhyfZ0z7TxgRreLy_)GRJ!ShP!(Jg-o$zz5g-M*)qNarpq^l^q-v>^e|HN zOg)fXOR6T=l@xp}i`Nmm5rjmcf(l5{>42}t81Y}c)%T3xjjcpYl3H46%MM59?XTe z{KES%B4)A-!28R$`q8_xgMRB+K)>I7Vbvaq2?Tl)jPIldhl(vQ*Yhkgysh$;>VPL> zt0aNn7>8|IsV45ZwmLc&ifLQWR@>b-R*=e}UMnAnkbQe{L3!(eA^B$TuWbq>lMaa5 zuLOO`8qk69;)!?10jyee^!fIYiX-XG6S?xA90>A8#}${!GJddorc~?+(I?oX%LPo- zKesAbGeYQR5p~CHFFmis5@y7GMU7=NjLtef$YXMgK{hg|0!RjH=>Avo5&)?IMorrs zxgxG7-kL~zx)NgEv~-FnM-R@Snyy=5Ut9UFE&?5g57Cv{z>Y0%*rzZuqNZWkX&_)P7nK)C#=4g>QbrE3f55~LPOu&_uHZxk#Iwx7ER za9|qv$K9vONgCIU>fJH%mo!*T0ZZQnzy9Fz)AmTVk^#~Tdw4khuW2Q{Qs` zGBJwf!VQnVIr*M5EB1EPGG*mcMFZ=%SC}=p!(TT#tDrt-?(}>#2%)$q>NU?SmVZCE zjTAz>AKEW;v45gQPD|J}S9(78_0V~LbNBFT2+k#-9ki1_Ir6Bkd?xT*T|nn*alK*; zY`5VJ&D<2?koztr?6Ih^Tc=FpVBrMNrh;1!PXE;idb*ma{|!$MkA3KSo)#&KjkCNo zqwB8|p3R0&eR8z_ZS9^hk|%N`;m%xw%MZgc?ZlwJPIfeBzY99ovqYHakVk0;S0YOh z&3f5YZBO(IVxAV<1b~p-AcX1)G`PV0hWzaM{c$k2>6%9;Z#grkvnjEU7yLAwE~$xu z|KU4*zBcEqHWTk&UCtZ)r-h$>mv@hOzJHU@g7ZxyL(9GSlvin+)mP$JY8J6jB5d_T z)YzLlDJ(U7Qt(T*%z#_;Mp)Ud?ghvb(Lels+^S=dIq~Q-i_fJ+Oc;A&3lo9&UmlTp zzV?E}XI>s)!U~T*s*8S>4-ymkw)G!;qo`lm<`4hoNd+vS>^wu1|Kc1+Ncas~ zp%idNuvd-TaQSOW=hvU(Q)omBve&^tCTBNFY?}Lb3vwJL3=7-3teFzd;&UfVEH?b- zNFYm0xBAM*d;?sr$9})Ju<5qpFvxQz;H1or|8!Djw$;mFe_dd;O8JnZ13*y#$ZhY{ zp-Wd4z3l<(0^klY2ONVywoP7r+~KZ9RQ&g|bV0e?aEg4IR=|c~s&g!4`gOL}PuOBh zY;$0VLAg1QK>#=BMd%RVgS0{cSjM8kYYF(IkLdge zXOqc^{+s2x!y2&gWq>`fb#60<`x}LNhygenx4!NyWQEc%)P3rgdc#p|MP(?g>_kPr zq{Pp$jsq_7#P7TDp{Shelmy^_{leN02fIyQX&S@_0CZH(O>rL9N1C9d1XjDG$SP7! z%!?_u)hz0Ol`XfUn!)j@5w2h34&VCq(FiL%Z_hOFoA2j+{%$FM+Xa-sMSn#7oi3uf z2fFHx(YZfB?>`%Seq88@v#PGvy$k;L=GBM72B3iZ^^B#qjpfgA&hw=Jgv|zbO&PGb z1M4<@{jXb18Q>nIfH{hT9DXV;cE(Rt0^E>AlV9nRrv?Uqv-c3N9?SdT-zP1;-9Fu~ zn|%51LAMEaew!%swY-ad%t0t@HJ1?!&(L|MIvLH5Sh+Kid_U)sy%XYHA^c$ff=kf^n{NDcu=(B5i-pjPKQpj{O~H2+x-W5kQ8ehD;JU9QStYBL$_CZaSb$d zWT`o#wPJc`V*hRnPQ(MCV>Llf464ajv0?D1Tub1$q{tmYfq?1c>MH~eg9ev174|0U z1zQFrZ(mzB5!1xPwOr+%7dC7+WNWFI3e^D093rV{>FQGPwS&l{+~-a^g#oFQ8Ix$i+?&RbXovn z3X;wMW(hDe=~JGtx31h{(Z4RpU#khAhSf7?Q~OOV<+3|~g0221m2`eeDD`LHW5CG}gGIig|sF&cW#x#t=r# z;@RU@8#cN|p)Qf3#XSUXL&-lQ5c2D$Ik)M&ZBrxOsjf{0R!V`hH853DeISa=>?Jkf zPtR_YKck9oe$BI}(oqXF|PzK z6hO0WKgDaHhW}FTkPyQ_EfM&sZYoq>7oy`K%5Bn^5nUX&)d2>)mDw_->rU z?Ourhc&0x$F}1i2t_6HPaK!og*ISstUY|r8Hrfx8Jz#I0*c7-o4p!!g`xjK{* zvH|UI(+|+E^~Fst{4#h;HZOj{i9|e#)0&ITC^~Jk0w|4~$NiWOg~>QiorRf@VCsIV z%F)>CSBdVSlx||ZGZmBK1|m`iVqWcr22JW9gXiEnGxaxI*aj2R9B(;5ElU8}FoK`A zaQ!apUvW>EbtR1IM^Oa<{>Z$fpAHobpy%gogHL`o5`20-iWvB=?MctI6Tg?}(ixZ{ zNUwE>5gRT&rCtwNKuaop$-kF6e>U}gw|6-_-hM!mc!yMU5S7Kr<3(?%QD68|V})S^ zE7IZprH>lHH$ptKt`0g3vG|O#d(fLbn=Bwh^ZV*&57`kT6>HJRkP3~|$*7hohwp<# z7e?NU$v(H#y)?y7Us!xFmcj3&bjK530n0WQYwx-BVDbarqj!M0eaG?hMsR+muiL#p zu_8Z|;S~norMe$&3<@AON;x*yl(gU`jj=QmzZ)CxV8t{0DZw&>h+|soG;{5|E$vaD zuFAdmLhZA>6{wbQtH0%nO9sT*S7TzBZ&Y&_`|xIy!}n6Muc6nRX*GOd6YAXM7T3Jn z+XSVrrf`mx80z%9aVQVEo)(9!Q+q7O7S04L*xzWMQUG91u;0F1jz1pLkJ`+_1=lQz zi9>wsqBn#@Gn9h1_w0!z`g)$8pMYdQU(G!W+IZYe>Udm|#tUNigDz>B$N`Yaq%(VY z3|;wq5a(F98+mr*t=%tum5RbwagODLY;Srtb$p1vl$`$8B3Y-_V8VowcQwixq#g~(D~)(uw*H(w>UeL@Ky9e3eU(h6c$v>&Qj zvw-b&Q!*};;i~;++Sbo2U1*l1VR}LC4GUk@?W}&lq^gyMZslG)IUYuGG-F7nCF_&3 z?2A>nM0i8)T1R(6gnlhS*pDiJ3Ill4xO0HocNqeL1Rvz6NB9x3rT81Hq$k{J+<)|x z$??y6iz2%_pAm>lYy7b>sZwRTziGIGu>i-#W!YFRurzDTC!StXDS8i$?6l7WbdiT zkKMk{aKbg_nYE{CDnl%>I{Yl=ehZ0t4xjCJ+RmoZe+;|h8d?Z$K#gy-JnQ==vf)|o zfP7I&^Vju!3~~KQ>ASw%C*dOBqAn;HJ(XO&Q<-Iq(lv)? zXv}OPhw#8f-rm{b)mBpXu||h1w~pKoT5_8wU|Tb^ zLy?+sEngPDHn6J{)`xfoSFdQwIH_!H+7pio?h&Dg)pm2#rrUHfn#(-(+t1*<1bWiK z)j5z*%hVFE{}v(FxUbEjTwRpNh>w6O`pNmxSw7#XQhA@hkeweGRX+ z?|*wW0(gE));X!FDG9I@nD}MIpeDE}|J6ty_C@$y|!Q^qRDuO262oxJt7n!`2oV_t+@PKJL_Q!n)_Nk9SHiu#(0<39iA#;wr4VVS+^ z`_n7wU16Hz4^|7We7GnO=y)sD^x6+oQ z(h~kXt>uWbzuik}s?%jCXFGt9eHaBD(e>@gi1N((ztpH# zX|VHs*P}RxGJS7~6o|LNv>e;FeBq)7iSuQs(3Yx~<2IU|%h`I|7Ka2Avg)uK;H+fj zKqx<7{oWdZB7@}X9B{)JC0?-v$&BJrF^er+`Gf#3=se*CjhUykOvw0PCp$C^sKe0XoUk zS^IAXFW>_QFa(v7H09U<85*c>J1nm}J}ilcHD1Txf)qlp)^jOXB%h{yMYSaqU#K`kk>6ecwh~q`s@!Yg_T_gs|ZE zOL`Ki+=AChx+2r7p}V6lwN7Z9oMA4ba79pGT4vBG-dx++j4B}CWjW=WX=0fsB`S}| zMv-Z9UmtDZmvJm9Pb-JtIqM@OKl)=zL2pa7J8efQmBYDvZ&&8KFcNeh$*JIlRN*S^ z*N^#sQ^|w74r^^jBjOlAeGE&#@9hh}OJA=y+3lFmvukYK4=oMgyI5={)-95-G0?C% zv-EQcIr=4v=?*Jd^H?3>J7m^+;i#8)7mp>79?@&M*@TnVA^8}zGcr*by@IRt~tFY_UWfkz~tevTlai;?ojju$#^$Q%|~6m1#R&o!uL^9Zz~X~;;KLT zt?4eVQ)=N-fyyoJX`h;HPl)q1NKAL?ouhTDJfN2cGp7VA1#U|{&O}E4us&SwxDAak z2PSgtg(*{8_sdtM<%~&mCzCjwlwe%QQ|lx;WIidW7TPQ#p)6R3JQqVRYhYw1DLyY^ z)?zvj zAg?J!j=_4%hx{59dBXE=?JA#asMc**BD5NJw}bm$|MO7+rlz}8BZO7miu-~GQZDRt zaV?d%h4;oej5W^5|-A_X(V?1rPI)y5LOQ{+W6)QS+3l;HNo zxj*KT9$NmpoTrN`2GNn@U3>dr%GDDT4XAaHsx=BMXf3 zgj1{a68Xx4K$XVkq{H!{t-;X2)^eWo^p; z0${BcOLh92kB21nhu1&Vlb*pR;oQp}Js0x%u}eL7dU=BnKf%a373uER`y|VWJ$wFn z_2oIRx1Y#m_n|2+xhXUM)`~TOZ-&xr-DW2uG3V72w^wV2pwW+*AcPM6_wFW3P; zP%bDNE*eZ;torE2=8aBXG^DY8PU~%^WDc__IUP{vkXW>Z#h(ZWPrJWmNG^=F?MkQa z5sN8KcnwbZb80I14jRy7*^iN(q6RgcD=>wKHlnm`b_`@ucZYM6sy@qIotL(~XZPpfO` zCeP__#ALLL7Zyx=;Z)(PTViIX6>LlO2sy}f{WNL#zajS2GHJAwzbi9RASmG5pN(@f zyj6ZaX0j9_z`Z?<*1i^AIf-g7F*4iG__(6VVRBXF(c}MX6L!tLrNO73pvfABUn=IYV!ME2 zd3p-8tccnys<&Skt(7B-sv@_ZsK*O2(AEP%h^Kj*#JTNwiNtIL-~ErO^pT#cu!k5O zJHJH!REeh@tA2e+*vk>_@X;@JmEVKy|BCzU1Rs_{YJjvhf) zU5XbvN5;Nn-B;bSr?Nt$91voV(4?eOGozd==ed_vCO5{tc^gmz}gzG4-X zGRQnwSRB=}nx18ZWhoVmLS`?{*t3RBFw&e#8_S)Wd2oAs#$!VR$9U=acoJtUg=3ju zs=r?Mh;o`LwTFXP7(|8}#~2oO?KasMJTCz1feYV|)H5BW0HVJBx+>%qbN9p}Trqc{ zFG`)QnStI#Y2wgjSM*kYNC&ic~(i|}SfC85NAixdRYXlMt z2W49wixF-O#dIloNXtv+H&JE$-MIuT8Sw{?XD#i6KKD?nypf+AFU}0_G0Wi)JwZkV zi7}Upg zE>p)hK9R(9@CeG1U4pAwQ@669)cK%oO{P#q=i|bF8a2R!w;P&awlL6;8_ag#N^yP5 zHXPku?`(Y6%ov@IOe*_v>nNeNjkZRR75XPK9l=sAwO+0MQ6rEt`*VM~wk32iXCatP zLIz11`yd&ai3f0f&QoJOK-E6oVy>kgbjiRc|Nc08J^QxpTcNfwN*j;HrB`fc1GyNm z;)eqG7~g>f-uw+K`^p6X20)UcqledP%D?Z`+>UHEWG!`NzwE$OUbTbUi?1u9K8miR zM^fA3*+BN`(~yJNl6{G^zw83VoG13nP}>2>-E1-p`cMDhD%%QBiA!YxXX}K^jdc6d36iV+&;^_WirU)I!6JQ6h47#p9~y zoJV$vaJ!uU-!Dh^ciJXaZ~e{; zd!V{IsweClU_7jWLaFlpZ?F{b$glqEBSV`R{~aFtclgSJ-=pRM{eK``W|Ob}HV8X5 z&AvRNx_Tss7eq0i`zX3Q{(KdX2=O*&{mpLq8+F+-V*ea=ebL{$*1Vd5`FmcI;Y&zQ zOpE{L^YG_Rn5vF;t-c2EC;{+4AX3Rd6Ji_~Y?MEL&yb@6oD~v7OGX$!{%*TctR2hb zKQ2|UXZ88}hJJ^sQzn)k>NW?_+vr?*(Vyui_Ng$!UogcT6v zm)yKj?6xv_Su)by9}(>o95ViX+izq?w{<$Q{udZLJ79y;+i-?^IF2qPKShN~`K*++mKbbGZ z0930Q%XQJD-ToN+^ajVxuK*GKtqUZW^CKPyOU6+PeCXeCU8XL=t!#L}Vdu&o8o(edeEZvN=8XpMZ3S<6Kqfo7Af)72=O%k{w|03GfQ$1`c$*|Bh)uC;PSw?AJFkMq5> zFxy|Qxww%yZmjtsIiWds`Ci25US{XPxX&6~!|>$sas9ZMdDpy%yL?iu zs|7jkMG9EZVvP~{#(gs*uc)YKcE;f{v55#!&*lQA&wu5YfA=sodHkeZ={ynYLq(SQ zIPK}ay+%;>vZsH{Kp+YGSF_a2PU`RV6cPFppD)mlqt|o>VC28ny=6iC9)cZfhP5Oq|Vs3QM_@TgL;na?6^eq8uc;m~h_V5)u!oQQ82YFq2S{ z7|Ma@II5c{b=Ae?FhjL)D{Oho<&ZpxhXvS7;IJGw{SD-sx#QGa6YbLIV?o>2FaP6=JhU@OzEQIrH)3{z(Y8~jY+mM! zWQ`{d*5AWt2DPZgnj>5Y_3Cv++tDrxK68?Qp&|04Pc0(TXhsM2bAu6G8xAUQby} zGUYtIi@h4$RcMDZejLFU`1yLW{cpR}EDE@C?^L$O+{T=%QLKBqyLOZ>g|)rR;+ezK zr?r`k|2_!I^og3)#J>H?eHqmHGLj$T1CO^~)lcbO4=!16t87?J2!|V8U(5H129#eW zDH%mYhn4-ry1{vb2wsTWr#9*NPW_4C(n6W0am=;sJ@bRCn+%v$Ls1@Me$Y|(T%|Vm zLLtBl;_GTE42EFg>#9b~k9_+;s%#Eb83mUX=4E`ytSjo}?;|Ef2H)bBD#Wl-Ydqzd z(lfZypJ}UvD>KpAQ&v)=;$SQ@yA+e>-c+&%9X(?$2T8oIa}w8;9!d75VJss}jm_w& zWk9jc!>X1xB~JVh^(%=}I}ML;;B_^UZ4Q=b<2$+VL2Uy0`}dqH1GVDaZ!>8JY-IU~ zGXH%U(W%=5YR_D$_*-BZ0mRp>?X@X+b&0E+UkG zjn#6k1%S#Kjw+zj9Jk)oMGcLO1MYOi^$G=e+k7f#FxdO)wD~MA*+Qk!x)<2Eio|Ir z@^rPC@9DUj*3bIK=eDPPdO}Ut%?{sSF`Q~$YP^LVhA~=`-)c^%El2)nzWCoW{^bN5 z4XF1*DmQz2g@7+`IGmPZrxz4jbVE*4ZY!+Me+&~KkrXXC%g>(n8=RcgUJk^RQqB=^ zU(LvaS|9e3ft3d6V0HV4X5N1#J>w0ww@K#(T}}HdE8I;sjYqw|&FBVZx|c0um%(yI zf$ey8_w#S*K&Q;2)j>VG_5HmnV~{+|3#?lI+d;{++#owfLJ_2o*c_a&T^;9`jH6{m zkvE%~23KwccgD5OzLAuk)hb~>f`(DzhiV5$%+yiDcsI3a!$?}Irn-yCUI$rA*YhG4&GLKP#L zyqo2whx>b4LRW43Ys!4N4)7WUTJ7#ncV~Rm0Dq@}JCMVAXP`=7tvi7=!!XVU|1#k|jDu9FPJtbT`UyTDC9B!#Qr@oM1^I9*#09$uFo$m!O4fmT_Wgzm8 z1{wCVt-DUU-K|nm{B|MNlVY*q!9^D7treEfjppT*?Z@nKEgmoF)ua^1{0m9G^CnxS zzuBwR`ys5i>8*~}D~;Rxpmg5md;^>1E5rG-1mch3o$XLy-+MUQ=EQb4H>>7K5|p&| z)}o@I(F-7e>v`lW+9~8=Z^GHyk*v9;v3_~Jwh=0QB7DKL-9#}G)%D`M_g+rVg}JZ^twv)@6`!wi7^U=)!LR6{ku0Yt z8l;tiZaj-cV9J{1DV@tn?F?4p2f@*Y4Pi%LGDqcR$`=YYFjPdw5wMu_Fcf3-os@Q) zr_}C-8!85Q@{lscs|0JvsrMQbeJe?NZ|>*R(Id(ii~%+MUXdzMiP_U_mT6P<7h%zb zFcr>F3pYQI-~Ca)?%vFa*p*e;Z}+f5|5xH16$^l&;Bz~k10EmXK-B{(F+hA#(f*rK z1&?(rV{WT#4D-14^UE#!{bb-Tm@~bldu4W3@GS%e>|fPBMUxBV=3Sp0YIW?IhH@b0 zyv}9XZSFPcacjwm_A8@gdZ9vF2%t3X#>Y^cEY}-GQAov6A@T7+F3^Bfpw9ke>EVj6 zWj8MQtYJGW{+si!S!J!0iAG1dqD}K(Ys63woTWENpeVk;vQ|sBf80!LUhrK z9WRSr^4we9H&(9bMC&OewTkZUACHoa!5`9ok4K%Ou#|vdRRdbl*m_2wUr~^BJ|+*_ zLdKb}{)w?j8uUYSo@YvO*STnKKP&2YOK`!w6)>pVp7^_@eiLlmyiccn*l!T3RvW56| zx0pdsW#W%t%L_jZb8QOxTuO&t*D>mAk_1M!ZojG*E3o1F`?@x-0(iTCj|W_GBGEPA z^?@xJkg#bJcwBC+f&l=H{#%Pm;~OIw=eY{_tx5}}_}~Cu?s|tlZ;UUz8uebr+m`&6 zk0)S)q?)k>Psl>J+S0ag8_K~`(>jamZm8F!?jg!Jicx-v&u@4R2%IjDzw*_9M$=pQK@7-pW808Ey6fId#A=a-^VRVS_BJ z6=oMnn69bQ_vtl?XveHzC*$EQ2Cw2l9pf@=$YLO^0paV5z%G}Wuv^|^H@USo`zxZWUnOA_qj*ynHO_cB5hVf%GKx7d_+5+{HU+*?3ZjlxqOcq| z)Z$vX1HA7WVfS2x(cg=IlpfZ>LKwoC<-Ywxef+cJq1WG2jW7Oy9Li>IB-V-9 zXbL?58D=Er5MYZqbZR*(ur*Mnp;mO`XT;#mioUD4()g$b06QLa=h!g@es~Zby|`i_ z2s0r&gS!SLza07-TEuLxDO(=49_*Xhru@*PebzrBNONHT6HEa7Lg$@Gu{77q!8-4` zQguEcdAyD>?&j6(N!CW%5qWCBd>ZUc8(omfV+JmzIr=Ws*_YlUWuonMHa^-mJNlO@tF7ln8yqw( z?)F9lseGpWTeQQyGik)WP**Gan+uTA$0!(is;ELf@Cp@o^mw2i_33GQAAJwwwPxg6nX)7J-> ztDI>`%^&=0ZJAT7=ceA^U3?nTclQ7va?4Gd(Wf{Yjw+zzsjO9csvl_AW`x!FQ@!~E zOTxaG9j1E)1x+yY_feWSM#?1=Q!_O^HP&=U7!t!dML!Y5bQf|Nr;Y+QA%zsCaPDYo zNYny>Z_%#kJQYZadp<^x_cgKuhsP2JyfMA8HX4LD+tSF$2spCjIHS--K+SU~s5PDI z8N+5ubomj{*??2h$vHW6$?A|PTA)>Z8F=7#gG`8A47LoLN0b9PN)wrHpZW`toB;KfJ<)=jdcOMd zcw16v9$A@Fouy0e0Nn6YiE8znH;_E@0(J%TKimN>S2~c`QtQD3EkMONVwrSaxAP4F zCvMmKbD(Z(1o9{%GPN3`izBTU=iQ;$sSba(R5k~0H%C~afcd(_#qBftG!4rBj5?3< z63v_%2d>qIL)lJP!S7`QqHomY+E#gT{A*q0a6M0UkqT5e2WxE>>=7Aq>fJd344&K~z#`S@UK1RM$bq;OrcB}5SlnuR2cEwOm% zXG-<_WMwGEB$b6W2H8L$qT(VP>0%+Pj~060}R1)g}s@E#7^M zBa6bgZuv09X|$~YRoe2YP(&TDE!kkXNX)F8%JbM?QKnZra7iNer3QnfgRVC!G8}Li zdt)8i4e8xqhKWN! zZx?i@*kb|3736Wg-D0+AwtAd*IZGrs*`i5;m=AKl-G1N8pj4ugc}!cR=JtHOL@9IT zPKRfjUf_JV4OaJ13qxCL7fNhGD4#VYvQV`PxqAeq?r&ee<{i`E_Q>4(J{mSpKX=US za)BHT2(dOcN82pN%XrYGAkcRr?-0NEO1 zg?&B9z1)}+Y;xsDa}6QSO-&I8j=(6$$J`gZR}Scm#TuQsv<=95moq~`zus5KQnbP9 zEZgI`bgBC;m=G}}BCN-sAFX42rtsb1AKY4DT+lZ*D!AGwwD#cBcvU1iJia%|XT^M- zjnKw2u%{%4IQ$>o! zzxS*reMpC`qHx~ug4a{#9DWIk=$yMvGA)bLN_Bs}=r3=*RojD9r-P*>RZ`R~-q<+? z@ZQE-r+i!9yPjGO;C;lAjPyEJvon24p6xdo`-bjQ{?LoGk2ZVkly3k^4+e5)Ep8W? zfy6}X^NHF!&&An(kX8u?#S6I8@4(V_qV$em-z3r$Ch5Xf2-1wv@>cT*a4Jcp>LV9l zr!+Ftp?fP)zy-e`u;P0DUNhE4STJfn3?e4dJP6%Ex~d0JShasd29gmNr!v0gDzlVB z)zdK`N4=&MGzi49mw=62$-D{JR#B6URBhv{oL-?(0;Zj5RDs<^vhFZc!UPM#${0}1 z_`c>wVM_x6$c?P!ol6>36eHx?*{ePi>7;C4e-yt&FzFx*)TN8r>;Y*;G~&l5sBXtF z*GIdeh>HgJ$)>T_S}CP?Yxjd{*|9~bv1Q!mOmJ8DjD}EZ?%mOn=2&C}2#2|tKsUg_ zq2@>*-x!O?5fIO-hvy=~T9F&F`~7nKIMtImI3-#7Nk9zLsUiJVj0rn$lFw;uVIEaa z@;%$vy@I{UFcT*APy-5)zt&a+dw^iha=pzQdf%)1X=ET9D)o_IB5I5WE+C+4dT`AX zA~Bu5zOp$FIOP$B<@O`+%f`cZG&-PQS_T9MoZ;V1S**5%)latpS)#J0-7NTS{pGwH zP0Q_O_VTESq4j!-WnN<%pmH{!wLOJ#39jq>Sp}zmbLM&~9;*hbBjWM((Y_;wbvB3F zjO}Etvc)UW(Kas^d)kE02N)mDCLV7cso>Fww20z3V+uuxQH=VgQ6@ddqyb_(9Qgj% zgKyFwyeFD6TnKT&V2nsIzQ#vhyhDL0K0V2hgkP~L*iGajbmHW7VG)dep5TQqY%t_V%ces zWLVj9my?u$36&@E=EB9Z!(bRhE{H9ZgKJq4d1Jh#jjL)*W^;!rJ4L(VoV2d39b=fX z6o|ewT!Kb}hvWM!XJZ2+_K?YvnX{w@$BRY}!t%0HwzfJ>QtePoT*d~LuygcY7NSa1 zumj@s#m;1w-v=793SD|eBm~YS$uK35ZI|?0O8Xo+#N-%S!d1c;hAIa$^aDnCg@1HL znA{$(IRsLGP7p9ky7%}K50RDnPLQq#O?dnM?ehyVNm(4}RL&a@*kk^mCMMt9AM|gb zE)DsfRPF3)F&~^>AbjJsfDx3psweMglHyOOQd`5Q@l|f5-!w2jQube??~j2zZw>o# zdBhI`MqrC7OvcdzkXqy=A{T~yV`fN|<84BIS#rA3?!|DeoNmxqkL8Z2drn|Yb<#>jj zLjz=vLV${7KvkZ_11o;*BV`5&4|jFOJ>etWHA;9*>ZB0 zk9%WC?B?7#81(9Lp@{U@$h6c%@3?I6v;sEd2R598bvZc|gTj?c|GZ9I#$WR`n2!L& zhkMfirAevq4TkfS7iY$Yl^5=E+~)eNhGO=?G|@cO>zhf!9*JkKPmk#kq!6?qd}ow8 zibzpvX-2>Cy{5cAL-fh7_?^@>^C!O&xwuZlQ1`~pbg~J6Z zx@A+;FlZ1Nq6l7_CM4?D{uEOye2&3Q*t9)%*5~XNfSvRfg_~L_7^nY(vwp;nl_T_e z&AZW!Uec6P)QMwmTzv0Tzy|$7*V29Oob?DB!$^iycHdbT1;76j85CyLV7_!9Db3W$ z$QOR#q)(8=UWJ}N+M96}NsI(nUj|joER0FSP-Bbick!7Bh-_$vpXkicBBvrEe?Dr_ ziEQR93``*wj7}f`8-Z5Lh4hZu#by)pyrOhL=fJ7X!p*!rz<&d zP%~veKfRU9t?Xo17>&M?UK1G-D|}~&TVTTc*0ht`=1z#vh%>EMu|<)MZD#5R5;c0J z8wGl9QUW?t)GPe1PSxnpI#Fo+uk(i(PS{)lBcp-cJ(yltNO)G*PJ*wwq6ZIs7ZOCN zV&JIhtHV7hr7t!r2X*i%tO=n8geA<8r!)hN+QVY&<3d;YqvQyL)#I(oqrHAS-(&U^#oUS@&(iP3%{#U#dKwyK1O!{bTE_~p#LH!U>Eik{U z1I8E84cJh@uh12xAK(0=BkTE!%l`PQ*sGY&3k4bP8+zD^oF8fb_9x7$Hkt=7dAKuP zW#N8dEECzm*0iA{S?Z!uG6Rg^j`oaKBK~J%lI{{sGhf5k{?`6Sf91yW72|uhchD=8 z1D(ItNmLYBC!+lA0OZy|5#W6NkAHn|c+y zhAW{o1xWe<>^}n`r$(yB&A*JPz-EO&vF4KSX_}H!VS$Ud0DX#J!fapD-Dz)rcE(NZ z8-Xg1+hZe-VCs|hMbX1qT)Q-HMT zTYjxqfIoB0z{+9Cc#!(I?2uTmRiy1?u6J|&OW-DrEM^8KScwFG;!7ErkYL{9swydo z7r<=gvSwa+LKj>cDsbz?2tPM?SQEP zLv%#(vRp}y*M1nwmsEohsvq4hHO$r>>I(qVQ8W1i%78@5h#R4#q2DGfk@WG9WUyWQ zou+LDYDf`omE2^Ki{xCvLyw)B1j@%5`XP zCt)nWWFs92amWsucbgw><({-Bt0hyK9Q#s1zEJ-M!KSi8TlhekjX8yG@ghSLDU4m$ zi$D%!l?LTq-zrA-Dn4~VJ_u>n5_=(EMx`dml7Coh4H&$I=3(7qPq4mEYSs3HrBxtO z+;COA=hjRIn;a2{oW?2cqb2>S>dqz_VG+f_QKastmZJgTlu26^lT zI5=xZChuJ2eh+ZS>l;!qi)BAJ5{5e?`?%{fC3$>!-Vj%96Xs$bof54i8Mlvn4V8sC zZm^Ns;xAH~pcaN8-{$>F+_2caz}iuzP)fnXj$)eciUOrs#H~OuQ;MCKow$gPTL&sKol{<^I!Xi?pm?cM%zt>nqjvZ*DhVv@^1Hd*RVnh9m9&pVnAJy}% zIXQIVmG8Nwf{py8&81wrnV9_B^aXX<`0wl9Bd}VswL}LC5`w~dI+kza6=3XSvYj2u z^ES$;FQtJ&CYm+Irjqq1W(Gp4?dspKfWdZ!ZU0C%QjUFRYy8aQ+DUYK75pB2tPp*T*ei@#4G%m1>OFdLL&cCXec&of&^vDbyvzoOww9ft)J& zuFK6U^e@z%WmHvt7RKpD;nH1~F6maf^U~cN(v5_GEhQi^ zhj}O03H;^-A)Uiu(mMonPBq~R?TPT;Dgt-~MogzCa57^4fUAgo0BG4* ze^sQb6vP-U()UhgTZKsy(&?o}Kd*s-m%prNb?C}YBrwVLMiH(RJX8&TAo|*ct$^o< z#r?T~K<-`_@-GTzMZ09IjaB6wjXZql7wm(fldP3>9`*Zd=6ECABz822LYKI6(wFO* z>T3DIm19nPS*eYbK%Z2AL=iY0Bf2@rFYD=6KVnkE-guH2hYzW2J(yKtTC)>iPAB%M z4*ybpwx~efPr?D)0MXS;;jhNk1Qe$_bcGyy$jL`DnnogPAZUtMIqf`2xwDP@Fgu_B0n_J5Mpz8iK zRo%QY)EalGb8Qg1m1-*~7PO1hJ_=6|n+9l!=q%@e0k3AV3uqED(H4YgV1lpUXgOsJfETGD%lxvpBiB+4O)8>A|YK5MBq zm~b4`L-J~H+lgp3O<@#v2L_}F(Sn%Cc{vXA@U|4Ltk)Q-M)nfs?5{Slc6<#wu^{sE z)XHTn5JhZrl1U-0UV0WfQGL3woLKzgw-76;L?Z-`r?hCeV1iO>E)1lN*k8At0HgGY zgCqc2aRk-hqiJm~|HAKv=E6BuB)kD`HO>l&6-)IEf@^IA%E>r?){W-gK&CmkK&2LU zEn?^x^)=rrlNN7UU;NT09TtS?-qWqIVbkd5GC@3%r!pB{DzkLBaRCaF`ng{5uq2qq z>VsUwM{E}qfud{c_u;i!SYPkMpY-_3fXb$<=RD8+$;d*T5G$uF+)|Ga_V~)NCDxKV zS6^44nwJYk57tl8uZ0T^YMuRnD+a69Pu^d^_!hBKfOc{h%pd%Q^6UXP1kjwACW&F;1vGxI z+Ye~Gd)IFZxTy36r#P~`u&Y_eQ}xzF1(AwtX7*<;CbApRydjsx00)omTglfQuTevg_VqW=Ij zBixI+sIYHub7U}V5)RQcs30{ui6k&5e%VDz;f#$54-Di4r0tI$*D5rsjqDTb@tSnS z<~`%7p%-6UaOLuiM083LjASXt^vsmtT9JU>*%V)|uPIWl!&U?b#L(&!>oqEPQLK|TWk^uYI-9AhcEvvL6wSC?nF$De;Px_3OMDZTx}%gwN) z1RZeGs$1u|UZpsWoO`5Z2DFS;g*=O`dKLrE^9+BqpVy7o(wy`*c`GjHK)e*}j%W?t zr6P(844kNgckcDh!%42DyJ#2H^^vdtNwS1(_FM^?7v*vm-Z#S7^3u_Z*zZ8m2^}t- z+K&%5H)gXeUcre*ejC|LhqwX;PGDb>&zwUmwnw_Y6NMO@s}Ud`mb3b3T18vXciSn`<4PID;`izBU9E01Jljr)|i z5gn{6Q{Xv$G$gZpiDh+`2A4afQ+P33@-}_+h&M>e_-Vtxixj)Ou`x&eiA5ds`b!faO_-d5*pA|!R; zlTYP}c_d3wha{zfFX$(H_69$Sp!KN~FLD8c7aHVE2!O}0_*k-tLbn&*_E8&v4`*! z_Zr6@%lFyCkD_IDYKySXZ?Kjn%KGKfsYou{^ro@c-C&!>}_Gh{$C#3SQdxZ1p0vtcppX z;~6(|By>>IN@NO;b?h8t<_%_z;Mqa*5%mex7V zkycB!ncoMOBq6xFlLmk*6PAjo-2Jx#?7s9UsX~bW(8%d4l!tx#eq)^Z?a+YuBjqF--Z|b z_;RoB}s_RvCR&0cvGwF?Acs-0`wgM}@#{k1!Kx^KwOrf&XV?#+fxVQTk{&=4ZFEsZgrLLWjH@+Y=7RQ^jh* z_u|?`nR=L;nH^MX;xpgbYSyaT+X~Vm4dp}84p>8(=K8`j5|Jix9*t)?HS&QbL)vv- z4>l|cS-HrPGo+yv>kURV4C1jYW-9A2_I==$EFgD18s)HhYEI=MPdLMr`0bbxk3O2X zw7T@XbgEO{6&ZN3J`mECp&T?lRF% z02mxLUfx21*BBOpdiNdsPay5=j8D(3Bmhd)cVKT(SrDAG)Nz4KC48280Lqp7?ms`9 zdwfiQyMp?ARC|7A{N#b@LL^KdYau;QT5-f*)7Y4V_BxWN1g(z`J!CwUr3(mCm-i~( zkfataiCPfWVclS2s9RkgzFAK%R>J-}R}uSDID5@O{4g&o{_NiVkX^D~UUn4rVCzg6 z1~Oh|apA17_*wq&^eBG-ozQ>!IvCgfFxp>akqO{|f^zWxdl!fuysk+XXnnWm?}Z|M zy9%;P*WzWQ9T7=mqj3EeG76Oo=0#1jPvA+s5dqXbF0`Ip^T zndP6g7+8XI_O--92$h2z#k<{(umK**eUXk$kMQe*)M%)EMFt93o?Vrr9fx#1j$3QU zEPdmEpX+YCDeTUT0uzM6AAqT-)D^?XwE22^b>qmQbr+XS9oppf*FFv(lCBl6fO;A< z8k}fie;HBtEANwDyB%YnMYQXg%}4P}c6>JQ;r#2nH>IVIe~v_^F!8~`;La9c!$s43 zsBlPBFh$H@_=@B{*q4I5F3i#kvPnd_v8!I~A63a{K0b2jnUbO?cXJq5&xYMU(K zv5drl+;3CUgYeJIw9(EIKx#RqIb zcep5#=?V7UL%}K}bPZQ7a``${a>RZJg0UNDWv$Du6-L>kqs?=!>v)tO)-I=5S;gK7 zLu%zsnAb!W^4U5K+|?-Dp{nd2?{3_GAjL)dX%b`ZN?kjCf&QdJ^%a-< z7-6X@&q1Y<>f_)=@1E&xL-gD1fc5K{dYN^}8gW03l^0Lm`pc5Dj^R3HSCguRbBF5c z{!$rcAOp-9WuW9NmED}?i(4TVfsy%!lqc*0Cq*vCR~STJ71s#0GJd4{bKx_oeV*vp zs3;qWv(fhdhEir7W7!}WnMXhV4Q>3G7*XB5zDbD}{cDZWNOGssGThP&{&(x>uMD^% zO4U>fJ}WQ_vo@eN=^}qZ79<2mmZ#9&%PHz4;Mw1ohMOkt?>QTeusRqixE(G%y1}oC#CbBHV>jt}Pd>*@yL1*@B-vUAvjbZ#*B(`O>CfTANV9emD3$m#v}Q zC*(eb_RkF-9m0xC7?FtkL(tQ{f`SPuuuRrjLcj91hEhCnWb%uVpW(e#} zvD96=0UfI7wu4iY1G-wbulD;D-Z!H(z=_=Km?_(A;b!24l}gbix+E)`r@Fz zU^>((OAq5GHQ)rIhmqfZ}$jf3dr+%fGVy9iRYr#wxJfd1Hg-lyAy5ZZlhNLOQ z4L;Hc=V?C#&TR{te9wHsQ+!XX^>Ad&IOu!wRLlwRJ6_0%+F~5A3@LbdnUqW0My|L; zbapae(Nzr(+!vs_3p?TmL?h9ov(z$z-RTQ`Kf6<33?1ggVhYg2uAbL&ng)fcwIyVh zJhx=bOC2vDJ!)bhS{zRC3Zj;M7^lX-$7tiv(I~P>_%}p+dxvxaE#ICJZPtzY?6sRv z^BShZGj{cyi=s<%z!Xg>a1GjdE#VX;y0GoO%5Euc@t1adb}Nb|u4BvSWqBR06z{ZB zON4~^q(CCPXy6gPI8e-UO)-;*C27iRoK=m}PjZ|u(D=_gPcU(n%3FMqiRl6B7UDP+JZLDNpB)PGf# zBVb$(7m;HxU5o)nj8H#AY5cjyv$_#aI;DQ`!mO@(UjSp<>arl#9%&neMOa!UCC4eb;?)f?# zW)aU%Pq_~3D=}L2y%$Wsx;?Ktl~-wKbKTA5)0D6>^BX{LDR?y(COl1A2o6yPf2>}^ z!txLhMdRZh@2@a{8P}!BYtDdXhMU-=!R*PE47B89;jc!<=w4!0$@2iQ^rFEdSnGQq zh)F&3THAs^9`wzK9m0mQ<(5&a!}%(0|E*lh+B$x?u2kj1Bm#+Ru2e}0rdpaTP8Qf` zaf*9k;!2?~nTOwEM7@_aLFRJWL%pVU;1Dn!%o!kNd1nGOCoW(m;5+xm$3bNS0iUIv z%x839=uL(KJv&VOy^G&I$PX)YNBat+gI!yyxalfqjf zj0U%n@kv*n4U*nvb7+N#GWct5sG?vLUSiw5j`c&%&F%}zJS~Tx6*zGc7x|&JGFPmu zMP38N*1B&sTgP((=+yxyACJNx4pKle&>9b*WwYhjiF{akx^%w6XhahDorW?oh{fN) zEzv%(@?yYqz6Slbac%U|PeqFc37#fq29%j~xO-IB@Jhp_Ki0KF9zY{fDG7VBOo1KPM0jpS;&FZTIf$I?8ODOX{ zdYkV?{{0-mz2++cR}c4A2FJ2ICN3HAVKhz4WG^Y#!Mn(Clu0ccHwJGjOkFhASGe!7 z97_PJ(ws+?dL4OU9Bhj(ao(IvF%1I?V$6ovjk+MsQZG4mt%pN~oo>_zEsXLiApF>r zMgIzXI%g@gK`fmig7|9n#Ulas0M~j2q>k{~B1h)(&{A8*_;zl3F9z>BwzyVF_07RA zZW?A&4%P4~-6zW5hp~T*x6q&zfw%;zy?54y&R#p8-CE=lHfCA z)v&z&FNo4>ukBNIqkeBcMXG+OSsT>f<^fR+Z@YA8-ssgn6to#f%LE!e0l7K$xkCF* zQOD9gva4tjCM=I#*o#NfzYPt@Lzaf3`*gU&{8`*M!h^ktjTEM^*wuWP3?vk9S5KUC z42m#Ziil*e%Gsak)D0H=g0>^?gmwmZqnvAyh}C<#(MqTO>{SHr{5X*C^&+!rGUv`9;*l|5KnG(dfHI&b%1=W}U((-!{%p4HLS`IEQ(Evw>8@BD%y_*ix>lcaGIW7lc z6J%GffwUD|K=n5)#}82U_rljSup55Y&12SYpTKfNbo9xGs*_}A{$%9NZwSiXZvIki zL_={dtr{L3Wzom;KK69B5T1#CyerSE44iF{yZs}CT>}SMXx67o+A7Mr2S3!1UaTG} zpj8exqoCv<5>}`lgVMOs_m;A|e(D+hJm2}oa21Mr_uxg0gA>7z4-KC|!&3cxjVmBt z*hYh+HSZrdahF)37r_9(=iC7%m_wPC2dg-($XJBpf7~%_-s+adf>yz?EIxAd1D5Qe zqJ=YXGCt}WzhYtSVyLbl&ziJ!-1^0zO`AH3PUtLmnTxys0%oZK2$97tmOQSeh$f~7qRDgBEt3H=zXxL zI<0#5BkAY-VkjPyc+qImdt(fmxJ~9*;?66Fd-jHW?LFJ`b3QDIcHJrR?0lTK&)U2S zv9i8oOSU=sam(>@?SE_&d_)Ko5zKe;v5sO3|P?>n_R`39u7(GV4_hG#iC<% zwmLMSRm_SoR67-6i#v(aB*X2!d7hG^H`GeKo}QK68~=X9I&s&6L8ug|$oxw%T^R%7l|~^-W2@Os z)@krG+!`p^qafXPX5A36T<%h!G5|AzpK`&EUrWEdHLO?qxA+j95ZmswFU<7iHuC6} z#E%r!mC8K{C#kor|LdUI#!{gjlU1L`H6SBGSVueQ-y_w(?nEpl@WxL9yDeWLCa~HE zbs8YHJVDc_kB^B*jZygcu5cdv*H_jI$RTb&+F+E8-?Wt`HaH{gxz((!jNw%F$3NMX~flFMSeSeEul zQ_YHN+m<*ZMiL?KuOO%^Jf>~asEy3j*U9!RP90W@4kb|?sL?IuA(zHsx3i)ii@)AS zDD)UHvP+(kKVr}Lv{l$xYMGL5d5d*odeb&VE`76@oiFrmtX&2vOH+QfjZ)*~2d+{1 zkZ`*bW;~0*7*7!oJe=w$3(46+Y?-T4y&mxpBnGNgrL=H6=|)M*EYua`b+d5=A1=T_ z%=KJKmSH!z3IBA4BSN$pVVd5;P69~_G@k{uGN^H%Eka$fdQ7`zp@UC1OGzPxMCU-F zqU6-Bi7rq!(8s@TXHcamZ$XfQ`$?XP-9eGCT3mhp*SF1)iqaSaSXjB$ISxR}z0~qM z{4A8O#c?G7UOC9P2ngw9DqA-JlWUrJ7ZU1$ym5&vG<2NCy-K-N6Vc=hG|%4xmSW6& zlb5$Bx&KLi?XV!7fnG7aXhvSSIpoK1M7vQm8^eR8#g`S`WR}5Y_8O%O`o|%w0KNJoM5bIL0ImP zm6xQGG9CUf{11*U%(t0rr5dyYxFO0~rh>mS6JM}E6!b=>+#SgJC+REo$YT*C><&cV zX692XiwVn=8_3zQaMjdQD#`ak!zSrh^qQ1V4a^M)U)YSIr7+g}7~$(R`U4$Zf0};U z5A+c^B!d%Y@tWr7VaIac03GdxD#8OGlRDpw^(}lgl=j34V8y#}{-3xcSkZh}f@GYq z)jcmi^uGFuA@S>y^$h4IdXKG)z%Kyj2NC#fq~rj)`df-B@w7)r?*VatKjwE13Ir3p z{%psMz-Wgb1`2W3R`@l}yS5Mi0iIkyB!K5<`K|PW@!NF=u%+soR@@8aG0hex1&F2c z6+yJJ zZ+I;KE2qUrzVQ9sneUGUuYSF)!@9m>5 zX?4`f^sB8K;m=t1fBBYf0MI?Ta#FKL!3Zl)IbAYAI7kXiqiT_A0~C)xgzJyq=3gb@ zJ6@QdlzdUh;UvJ#w^lgcFqiBoT?w1e1{JY*>1Z{kq|UpIc;i;b4lwPqjUj2cR*Tj* ze;nq(*|R~ndQt>)@j4fG3_~trP+D1e-uO%H&aDX?f) zoil)OqmA7wHJmu(h+62f@bm6sKvo2gQ{CzjFq1dqkH0y)$wVW$0vDxiC*9`ZGx>mJ0OFS9FdeyHp zU=J{FUq3ftcqQ!9voII`LopS{5fvWwBaxEdmLjG2HDfIYUy)^W=RIB!_V-(^0(CFVf1W3 z?Sw|>h}z!O^1swB<$JA+S71_c@u4z{WW;?n@ECclWu>nrfeFs2{tusj>>U%{Z$C0l zko-jM_nl(rr+@T(HK3o(oWfuj!L&~4y#E+swQ7qkPOYWZdW=Rg)G?dK`)OTl4n3fF z6gP8{$iHvWpx}gtE-2MNNRRfyVqMc}b;$P&)VrAji$1uLIcH~yj8Fk~CdNCFknS4| z+uMyN+rNJ)Qi#GXV)=qx{7-d+sh}ged-!E29;~TcfSY-K$aTE{l=v<3cVrzp;E*}y zbAQ!nAl5sG_lrK8oM8V(q|(Ncl}&SXBwhaT6T*SlCi*+8bBSRx*ODjcuorb98uGYb z+wQD(=8^(-6FhjErsb0RJ3_)st#TZh+)a){cI;0>P)j3*QVT0iyn3D$NoC^=1C_XH|{cb-;uXuTkq*BW~7l_MSn?KuWFGD zIIlHL>tn5Mj9!kAm&C^ajboH<5Tt1g^2#elZo=y2V+AQxWE^W9AQ=&hB`jKSg)O}# zZA~dQFHCbOX+4gT&=E^Z-1zne#cR^VD=SdlY6+ENl>Fhk!fFGY4k}%RS`}Pn=3|HHhV`iC=9u1x%dv@J!-PRP|44dG;GGtP5l_Y zR26oBK#mEL(i%>@r=w>bL|>5gGX6MQ#lEtj){>+<+nTf{nnQn2D&7fRh~NF{dy-(+ zC|HnTZ?J$ZzM2Mp%fu!0`1;rRzvw?5^0euQU6`W)#q;+CbA~8-o>TdcpF_!H1(eh{ z_X)gPL*_9khBuhg+5zwHyTGX5dVlk~1Zk!#nfd3Pq~S9ay&z}T)ggIUM&zmN3|?(z zIOcXt{pa6xRV?vDQ|*eS$6vA8pT1wh(&2DP)O4s?bUimB(^hZynpvynS3*+YOE z4EsY|+|q^ahCP;}OFQj_T3vkBhWaEZ>BI%mt6MAIJ zT#lmtc*wG-U4T;VbiMMj_!nnp3wkgKvJqK;VO?0)@6N-`WRpNfW829vE2qi3@^MFp z#qXy;mB5Qn&#O+!6TkXA{h={Z!1={@;B^<@b*kZF9X<;t|((C$Y&!7fU8y?1Q*5*=d@|q$$VIR2y zKiYRC0tWS8x57D~kE;Yw1+W#KLj2t?S)4gbRnfQ8lKT-I7ZAF$G%)BAiYNK@5+l86 zlfePT^#*1`VG@|C2X7~#!zJ5vU5WeBEO#eL@=cbEI#9)NZ^KoZS_y<6I6x{|t|>8t zyy;lE@7pU08)-<{W&K3Iz_N;x6=71Qj<>x$O0w}O&QG8a^SYY~4DEg6L!Jr=Vr2xyZ$bPDjYCR`HGIjF(&ml$&4%kztwo>_t!k zDPdUB+hLnaA=CE^x5m!}Z@6aCK+re|1Y)RFB`@E*Ik7)>TI#R@sd;j7I_uxiyYlI? zjm`BwBTMX$E25^<@O{0M_$4h$3uAN7lp?Yk9Kli&C-rB`?F$L@3d@D96gLgX zEAHbfZYhW7oG|nj*V)Y73`+gpDuqe%L9I*p=Q)}dh6_oGBr70XB-q$ZkoOWPlsqx6iqXrxzcwTpTR0$2XFoQDdGC{;(F7d^3v)Fzk!baoAK9m% z_Ail0ZS5;%7YT(18H%+Ix=CywtCSxS#?(pRwgeTXL{4m#6IVFk^KaqzP>DFcimf!s zmg?6!pcfL8NjZdAZi&vS5j;(-RlT;fUaGR6rWYCRs}Wk0ep5@ok&D$( zJ8EI;S?<#iFr6jF$*y9HUa#bnRoln-R_*}@_rg}HV%P;3kJii zEO+5T?cd0;vCk2L6!@S{yqpp~@H>9ukN{ZvJa!5NqIl_x;TM zKGkLZ{l{mQ-It-yt{d)>pWX1>jZ$3_-LD_r<_F#1pO)Re@4h(*J_@*x@BV50j7Jn@ zZtItv>0OH~Od;bc!Ah@)6Oy?m=Q{guym-%!Tn0QBTu3W%n`Iu2c2%az$MUyc)#nPd zsH?@lA8VHdhX^owXCO~l#q3N|hd!gTdl(?mdK@ew>=Ck_j4`}^N~w6c_MH57>zLpd zyOs5}duk(0{CXGJE;DO6(QI`^8PwUi?>`j{Mn5O2{c+tH73<)ur5gQGIm%C*D~Ng1fbpQZxlhkl^kR+yX5YAh^2+celWXeyh*3yTA8m zlAC+aoij6M=6&a!8SK*t=xaVqvZ*2~pyiFSa`BsC+uT5b8R8+DF2q=V&8ZAlYoXc~ zhg#}id_Gb?vvJIXbRg53`#2J`Z=i9tDh&|I$|7xtZ70&097|b?`gr1Yrew!rWL1j5 z(P}GM@j{4Ie!YowA{wcexu@NgRVPNdOdt>edvdZ#y4?9zWJDjg6T2p6@ntb(mEfe3 zDuhR~WIp*~>5T*eYV$KfX#Z_7uu(9h9<&Wgck3Y`$Cu+@i`3fgZ=dVu;{j~JW##t_ z=cVrn3$8Zw&tG-j9w_@A08tb3sES27kLxyxi(?RKR)Rd`y0`fT;D5~N3+KGny4^Y$ zPYt~OF(pq-!oD~)VvqtdondR>nHuLdsTdKE92<(%VjB%njVNOew1-x@$hy~j=#MpV zSLGl_A16?f)5am8l;9lgBv4+{Dx+Qs$rLAxdFvwZ{spyLK9`5GhH}~HpONE<9 z(vyj(T!>n{d0gH1vGU8K8|9HuIa0#QLSV7~V#=r0EW!HN56_Wj7XH&#wK3T#q-+th zc_%Fur0xJM6V5|Rdm@SgDGcq8J08SzQ0WAgf@ zfLc`x6RMnY9h|*88*<&p>tDH7s74SrV!+j2xN^^eSAbQ1LmYLS9L!0M`Wb&wZwf-V zJQrb28f|31m1CJw!xvR-o;P>DTaM96>@h^sJ+s3G3g6%ihI<@zE8QwyYDMZjut!Lt zQRe0Lz-w&9N4bhemt3;s#iI6x;Ky>!dfh#Jqn8JRLn0GrssRK;XK81byUvHSwPQTk!RGYxD96$CYenjaZIt>b#8lgyLxjy1T-M{k*$vAxz~ zVs?HXuNKui+BP`rQvNJiJD5Yqw6c?8mV`axun5dJg4?e>qh}TY>&&c^v&_S~XDL^; ztoX%pjZKo)T_!vQrJvIZ{;`-~a; zsTzw9^+cZ|p6B4@G$*{yg@_i?$Aum&YNoi884l%Q94&Y~=U<%9JJs$S)h|I(IQsc9 zpLjmbPeo4fEr6*UGOO)HgRb3Q zy`j(dud*=Lpt7NNF|PqXe_WLb&1u`|q1d`mZ$4* zG=GbfuGd-DePC$fThz$-bDMmTz#=G_CoiB4WAqsYd%jy^$RqYfJ>|XW7zBr8uEf6i zDfXSMf4oiGtWo=A+}gv)Z$sqSyimw6=T8c@z)U~4OYLN0hT zmaVNkswZ@AQ5Z4KlxohND%FA#aBmRtSPaerADU3^e96=99U1WAP)K46(yP~VC26Z3 znUxBSORPwWa0-ztjkD9%74Rk%?)(~Carg&x_SjwZFA%tHqP;07B=$8v>G$lv*m;h> zA}1KGSLsEHEcC!94-(~n*f!}dZP%tEYxx$wZhL1E*f-jKH1r#g!JY$O^mnEuS;t^` z&fVx1)6%lT0`Y-b!`|bC%#!}&z;jxkMWEl3?9CzeVwXGW^88x%7IEwCkul5KC6uC6 zFO=72!-vAK>HTi9cJr=cCX)M|SeX#tUfx*Kb0u3#d$WO$?i^V8-m0)Jo`m@RANZz$ z%K=^`3N~L9dO|eM7a5g+Rj2lUXaN$cDtwK=6od*G0$GRS&w0SBDgoS|$qkCd42lGF zF1PsdS#(QwkH12Y5o18CQWdlC$E#S*uUJ<*(@}kjw%Qtt>{AYao#e2gm*r%wFPyP{ zggKH4K-{d|w+mxV#wDioJ_Ln3Ypb>_I96JbsjoB+cYpPg?^8CsX;d?#!UU5j+9h|k z)~Qg9Xg&?lE}#ZJf74KYzmjGV%Q1vgwL#a({9yLM8Md~PTc*>pkv!QE@d;|+PhYvk zDtS9-fa>>M1o|Gz-gK8fRK9uVag(5oTE9I5d}W$~eLQfJ6W6wo$O1PX#-NV7*Wz)U zUitF^Z>Y1Q^`ynPZ8qB2)`ZAShLhfvgW+1oMqweO6V7I;)8Gt$WXOA5{w=xIxC6&; z$w`a})vwyIpj_OpwMo;g(476~M$Ix6bEQH(^Ki8ED(;yH7U~1v0~EeLV_fHbhR-<$ z;4~C2`6|EXBzPh~Mg`v+*0RghoJ-jv3~f%=;vs%*xkB zqO{zna&ZO+K%&B_2LpYsQ=vjy=M$OKr#*GrUEoKv&DJYCVOyLn`hBkkBiV??KE*As zf*Oo<4O{*=Ip7rl#l({))b=EC^N~`So{c-$JKAG}XH6Y2zUF;6Q2R)C3E{$wjJ`~M z_+4l=qWenC_S^kq#=lAOs(CZ@DrNp+_%?I?rumY7{!-$ae*Uok7HV)ManWaRBysm0 zr{&rElj-bZPw(jZtm5-FF>1uoi%L`f#wp2US|2z36WReAlfGo4!boD%F#JpfKbhq|u}d#L)YLUWf4KMi%@cJ32x!0GovEYvr6%sr#1(xh`U}DI-|5&YY1-}3 z{Ni0x+4J*h|0^IFyQqimLLg-JdeN8n1=iDm z3OyV$4{JlQ|CHmCI|d_w_|KPolIFR;FzESVeA$tN&|ZxOaPT+j^pd3A3Zw6)BscGB z6#YB&e<^vi@GJ8utpvWzLNk*mTCyZ{&x?42nho=gqp|%zxp42u zs3;pMo#!G5biuYqS2t9)*LXIJYM+gRd7r7zYgLtcJMg3)LD40fd%@9jSY$(H27fu& zLB1Ul(R_HvwoODgZMD4kt-i36`!44T$Etf8{w}!~z018~FC`m5#3S2F++(O`ON*iu z0tIT`xz9^STE>2yURHeNG7CW6^7)@}j&K=WJH=)@h~`PbH|L(Ph@Xx5>)sQFUDlrU z9Zej*wVNeebR^d+kGcrjC;F%I2txMGCmP%hZWR5egfJYWkM+nHe}@S>Nto+y zxjyZjtQ6AnmYfv*C*M-*o6%w}Dq&~`eM4(fV?Mm@;lSR3V<*Dx>i#j5udU|B0jQ>P z`w+A}-L@m^KlU;w{{;c9dgW5O|GN#N!XfwLUgEf4acTXB6Z>z)ESN9KO7<@L;MX~! zKu&?^xnE5i_m7n?%=|sh2hyuF1-T;gGOjm(mxqYF7B$F}sXEb#$$YvjvH$RmremAd z)S+>5-)haLKYAMX^blUxVcz#Rwn_B#(PurvYHc_VaY|$5CcB&KYSXK(gsuJ~+7tcNq{>a+?v4rZekIR=`$Bfdnl9Bg?B%6a^+Z)A{~?J*zP1k> zOvXCNkIX^lvDe0P+^B^+zxrhs<^VDEiTnj-?Egd*n!m-RfgleSzVWVgW;ijeu zIXyg{y5{7}B9;ptfPAf@(cTS7buO<5`D|*KalLE$n$sdnpWE?7Vqv4`{Gh*3vJ3ti ziM4^hKi(4vR~H+Ll~)LxyO=~&csRD-t1uqpE;=Kk$yvW~c-mCbn^`j@8dglZ5g(M# zuyMQ*+$sk&-`&jjaS z?9AToum`U>B9j64K*coEvw1sLbfO$t2=S$9L9I)Nke$9|1O-DpTCzPW5p`lep-`(yJi8MV@wBs}SZ?>U9^o`7C@jZOL?{`6({XwD-q2i$ zCQ*)xWotp%nvvi&loqQO}-ApGYr`{)d zbqA)q`33+b50L^<*PM#?8$pHZ|8M~pxC4t(fYeqK4oP>K1L-*CN7ES}Jxpmoh4zmg zsElKVf)qxXej0sOfAG~m2#gIv_)%#G^ld%%1Qzvxvq?QyIP+XNOEf|={RP=TyVelg z{c^$F&I|v>8C}saQG&cJ_Hlv8B#NsFg7sn=rxO{^m?t2Qel>qvK1EOOv*u+U5kiaUvtNGl$S(=!Ypa%hkRHCIXHx zv1+De{KLL1pFWj1`^o4?c{?uO2D|jC8L_d&JLX=*ZqF03cPiPgyGnLpLa%K+8Oy#u zG9PBP;n)Up*y7D^`xtk*R4BBrdwEzwECe2ha5!yMBm3v*8Fph z68$RQ%EeKTI<7kMb>h}IhL%4`NvGXM@C6!Yde?wn;Yl;T8giY6I#aF`ZrTo*67qUb z34^$>RYna>tv*{-MZEdigGbHyTHJx+JEr{XMY!#2KcX+q)!KYeO@D85HH#?HwIA)L z8Ffl}F%ERQ#|EinR@Uvly& zY5xco#*gvWujv(0pX{tcXh#d2K2B5asu_b;}$xIfMtfD1y$3_huW;Po3z|hz5j1lB{`m(iiQV zPA*t)8yWipHy%K!AoGGz+Bp}Dnu$sNhX{!?lFeVy9$E=P40h4r3O7o-iXAdlsw}NM$itDFI5` zY=;=UqGI9*MlN_c%{}iw;!~oR9$=Gk)}+?2f%2Y^rO8ePtWI)F`eI*%KXJu*2A^)u zu=|cB#4wq*R4Z&EqbU^cU8u(@!h*+2)EAuCN5e_H1siW&3+xl7Hg^dhp`gOfY1+3< z7>Fvh?!^l0k$+9DpVi|n@7+iwKa|R;rnAaC9FQ*+seF(dtyhy&iYycEyU^M$Cxy=P zBRXHnIK4nNTD`mJS#&d}M4ZJ-aGH0&&I$DEQRz^i(yk%REc7sE53vfxc6NtR3@^1E zuK(-$?injInyiYCJ`K(w(q63FOYw3>KMLevW36y7z~lc7?J+GJtrgHA`LxN_{bQGS zQ>k*U;Ko`o*u-D(2WZfG3;gz{W==YWZvp(1E9_GH*aF{}V3%Qy?jEHo0jK2npz?DtCkTYrmJAf8z}0ebxke6>t+eldzChNk;$+RnPz`n9G^F)XubGerB(=`2P2q4z3axl{KwCt z$`8)Ec4dgK*tFtt90SNzf`%Eno?6C_{GK_YT(79*cw3xeBPEYX^SJ?o06m|Q6u?XK zsW$HEw%D5jGiysR+NT^tAdTdE#F-DZIZE=YqFE%H(yY1Kt#|T!uw2GBzRebs&@lH? zr9#XmTr~;_jCHE>jR}=h1BLGCXCxiRJvjUe_s;4X^ z!zFF)$g9NxA6`HqXz=m^>)47GO)AtrLUJa4pPGzI5C-~>JQql;lwL=$SNUPoO5FLgB9$Cg#nn@GhVZK6h zvk@45|4?^W^NjxGy}k{YVuTY`gCZ>iT-T%E`%Wn`pe`?M*hrTbUHM&4SfVX zF+uaS2`%fGp>uqzUk@L-I@*#nOkm&2Q(lDg(HjH!wJ*U~3AHX{!T6UYxH11=7Cm|l zJo{*E3i=mSd<#Id6Sg?Ee(wMWQo??ci4qG{tEc+lX+*yQ;q79LPIA6L`Bh%fLW!DLD()`98T=)r&XiR@gl`u=Q;!+%>&!MCFrC{D`l0Z#22`kOS`WbZsb2Q z50`_jl-Xc{V)fKhrxT`TKLk+`&G<6Ma~p+JI#!D2KJ~V+U~>mWFImL994v^NI17AS zN>LtqK6lutnNV;C;49;dTX4QzEhu3-@W4O$){*qW&AJpK0I^;|&mrmuJF|8rZwHro zv_uhTu+IpeP8Aq?aLF$3Cg6f@ z)ld;AV_UMclfa-@_6zpth^V{D<)|)s)PClx@f1-$t+U?S$H5xK(NikQ2J!m`KUd;N zvh8u^rT~zC#*-BozCD?j9$@jKmDFk4W^0;fdI$@v3kRBYcwHa%&9$?dL}%!|zC_Rc z+Uj65kY6g!?14FKliqYx0fv`$hw5Iu>Evtdpfg@w6M>J%EBm%MXYJcX{69Rex9DcJER|DyMw=wAj5|9%eu%V6k zDEo|zX#~pB6-dI#pG9})HDB6=+;-i!TCnzT_7i?NHau@d&06u?*_6AezeyPY_GtX- z^+m#>yodep6s&Tlk(rE!*j1A}7C3wHoIk5W3Wm+tUDt|+V_lRD1PZ&+Pibw`xP4xI zi5ijfzgO&YQN;54pA31~S_rqPee#Ck1<{sRJSlJzs)%i>%%r6HF^Gb(yAJi6H+S04 z?gHzjHgx3@g8h=;{DTwn!s!NAVu-XG#j%z~>n!tj^y#Evwi1Tf z^2nOKejTO7Bp~J=Q>W*6Pgrybo)VPLtn8ZoQb||*FYO;>V1}OYgrAb1*RQ{V~NTuy;M>q&ELB&lF>J=u+s8Z$iDQl){o?CJoC(SNZxSK6@1T zRobgLKMrG!2lTF#blN}gAFH3+F9S#nNw~b&%Wzy)1bN7t`fFFQ_?CM($9SLlyCWQB z8SjIJMXMWCbk3wbbl(7~=^y_IL--D3t}l&?H4sv3Z~0voNZ_C9lpCJ>B-nE{3g@eF z%^XcW$pPafe`qz!n>dAn+HbpB+a^!uP2I+fwY!ln;I;N{JR)XFf6(?$NdZ&8h;D1W z8K*HYQFnzsjt=gewEMiBsP+dwzA{7}K_59h$__P3RP9Zz@>WY`R_))dG5z&5gq?g& zH@I0LCWB%?Pts=mB8xjf%a}TC#{03j8>by|;e@GRV5(E<(9qRzc&S*pT2ax+0b0~J z{!+TjQ9z|HQmH3NShAU6+FYzG*Z*{C@Dvf<5eGGCvX(`rnSL+P_IzyBZOYvd_&g_T z&=VD(8D3GZ7cJr~y`iSkGaC%l@4c?%oQjFqyntqsF{w0Hgx2Mcd&~O52 zA|DvKB^S8uIqxHdc(&?M`PHf13P<^9baTbZgG>D~XVK}qJ6T}Z;xI$9`;Y8iiw;N6 zo{qA^JaGaq+<`gdE2=GLrs%<)INr$&S$0NEXE}VUMm>a+L^ibrj9V0>zmxei3iIeK zZiN_+0RdRf6=OL1ZGYYHQkb8}gh6hmGg&cFuIXbZ&r0EPyZozV#x+vsN9y=tPYYaA zU~f8HtmD`d9E5+`*3KIrW{<8wdqrCn6cF8Gb^wOiKsL9Y=hc8-rJo(|%}l+?+E9N~uS9c3Zj=e3QaN9;Pwbz>y5-3Gl8@4xX;36rk9<8@mhyOr&v^^S9=4zM( zbOLsLJcH23FXq4(pJbZ%yAXs?&wBsZsdicrlr z219Dr;q{)gWqi$4F>YTsBYD-T=sAjlU!GxdOq=P?*%=VT9kEeizudHFuLy*OI3P86 z+u6GsLf*Q&CVnNxwp6dGnJ`8oY;?*M3S%>R znyg&#;0ODKu}Q-QCpLUp=IqU6x*I-g+eY#EML{>o82iy{-lPay(56YIZ%QV2R62l7 zV%jZ!thkrP(o_lO?|Y}7wUoTxM6p__}{R3C4@~fSb2N3!i7!mU?UM5Bu%rI zt=l3W4{riZ7jGrZ1D!*IZ*h%0l2-qY0k2OJOE8vPICvP7mE-At(?l)!{md4eL}_YZ z+vOCv^KfyOzS1T7r%Ck!CD)pl`If?BL_Mg^JtUAs`YocTK8;8;R?h16cc}hywXJ2( ziiOI%?z`E7aZ<@K);8-*L~h{&vZ#t2;-*poBK{7R|8sZ`*3(LY3x7t07E0a?Yzo5qdwa=R*6(qs1YiwF z=@9}xQIY^Y-9Og2<3`ZG{>0h%Uk`A2eL3cRCp$|F>X8!%l3EoxXwW}1{r%BzrQ?fGU6Z8kcWk_cW|~eT5}P}{$JrurIXTIjZV^SP*^`BG2j*1%nc5dc zmrBC>)s=d3{At%mR-n4SX~-RuvGC=%_>A;*+mn3y8w9h}vyw#8vgrH=Q0{P~ z$xuGQO23?h(sx3!!RCaR=e{iiN5T`#2r^oMh!F^!+cx(PZ4tn{uRR@F7%0;AE1TXz z`Y8)GJm*b85JvrZ$h{fvJB|5w8elk3&Jt(G%OQL-cy<%yfE~s>O*>dUc4@_d?mo&g z_cN98U|XmmTHc$yK@2@Cq%P+A+4^^#D}Dol@gA5;AwYQ#`Q+;3cnY8<)ocdhzBESd zpV?O+wc4=*r!osqKeW%>X48KK`%^wsXiUR@vee_LxQivbKK=4HiN2LFp=H|O$sK+L zy_rNxq1#EDolGxkAUtd4OtiZ``~jI(@}^1Oi9&`3>mg^5goZj|+SrxpqkhZ|*sG<% z;en1m{VnOF{K=4DFFUdOj*R$X6*sfag#ejArJF>sK~sm@v2BW7g^u9)3o5@;jp#pO z+%jJExFlL7%zZo(+N$}{U$9r_*P~xLDK$vGS3LA%`ZShx6I~)yrp`(Cr@U-2*VTMW zYjeS5_khk|~zMPsAlT2ue~Cuw@J zO;lww}(j=;_mxM=(v( z2G9OeShwN88;3jEWJ&o|-FZ7cG*Q8Ro*jZ16IX!UC~qF-?EaRRv^j0O=g%x%f12S5 zCzW)&QI=(0o-zfWkvjcOim;c=E_J;(b@kWw4^ zCRJIQHLel_7?j9{y6@`4Sa}dsZ&2|teW4`jI#m=hC>`<8RKF?1Z|`|qa{~e}kbY;% zcUU$G=!>YyEtTj;uBv${v8M|VSjWVWDJctwbSITuQkaqXByuRqjir}6sK1HSVx9yan`NdrCbh($UBk@`C?RM2EbiDk`x>@Urz zu3{xM+gBpo`09Js>KQc~$b-Qo*k)xXg9eIcw)w2!XCX&G1C{g1G#54ug)W?@Q`ZWA z3$!H|1Tg-&JfI1ml)|1PK+4*C7k!8lNbpy*s)c?1$WYzei^-H6JHe(@XF$s$4(kLf_gX8` zNd}Gl(G@Sohdo8h!$irvHmV|Ji3&?*tpL*_%0fm*z~p_j*(lhok?L$n9nER16~40J zXVvVJrr@hVK4Ee&hGc*zb_&jaK72052=M6cI!q&3YNq}l=V{1 zDyXWkX3`$mtKD{l_4G{e(NcNpyf12xR%x5_bR#MJn-BFKM#tYbD-zUquBv$=#9LW6 z%WKE35WZW5I!c9&i7UmAXX$#k14(%WWbx%cW+uT1fxXmzj z0E=GU#wohz$XI&l)vrGg@Pw#3FC1YNN{G~9$m~dZ=K7gQhg6*q;IV=ZEL;8?uQFp$ zuGUDAbT2cOPW;<3@)+jHHV7-PgzZIZ`1Q%I;ifslf|qQhK1Q4aJx0o)%iUkz4c8ew$g)g!+ep{D8)|Y&->#Vg^Z+I!2a+}wxJPA{)!hK7X$s{}y@GShPbMfxyJ7-Oqe2ybr=x_YpvJ;I(ME^toRZqrz= z?r9&M!>JLaw-uA8JhXw^g@{S*ic~(&o??1Z(4-jCg}$&LI|iCU%@)D>c^qxO(=mxv zot+svPjU+>j3~UBy$UI1tBvEl{k(8LSmnm#7slYhCmJz!46X+}-2GE;N6>o&obYRf zu;=nlBFNgfCflwZmZyhK+cRye-xRj=_UQVa)uC5wG}|6#aJG#$+v56(3-&0EbtgIG z`9!n5M%eJST?}W&?fAExK&j2zulxQo!*oR4tv~Wg+%coCuZzLQC96x%vjc4IwjWGWK=Qnx5KKz$ycG*eG zBLP;$?^f(?&P;{nGm`W(T_Fuct&W}7Zleu@!J@?MJ=brbxGuWd?<>pC( zR58p8o+sccgTH}KcvoGbX~4|k=W1KySVZF^`YMaNm602+{UHxJU)~C+RA9!wh7?)5 zMeFwe)ztUqb?0m)*!1U^ zu`RgTcJM(?t!O6T>$OZSBr5OxXtq>)RJPF79T}=(Rr-*-Xi8or#n&P?DME`Xixm4O z^=TwUq=J^9q-|GL+wy+*^*8w~`Gv}+3d8fT+3z=RYiPH5{YfA$`zF^Q@2+leqfmH@ zz7YfOr~SuTx^vHmo)UVZhDTsVQyi1}5 zyRB`jW-gLatE#Z!Q1Iia*V5r6Z&P8Zp4)E|B`Wk_$2jJ0vL7^y>2TK13ZIE@I+d5( z%ul0J2bz~u4?1aD$O@RIhFH1Xd(BOQEqpcq#2uont@{zu?bNDlSIIVLVm75@DHQX= zyGyugz3k@_rIbDeT_m}zw@HF&j%l4!*4y6$BIMmFyftL!;i$f_G8egj40!e%TShDI z8&f(AZ!KNq%VS`zO=wBKJw6c2zw~5BQN*FnPko`CWvFwdRi7D=o|o{2sK9J+GAY<8 zAimWoXj-H#G}t}6p5ZgK19y|Uo~VseNn)mmjY;3e=eVQ_gGM9F=BT|X_Wppv?b;DxZ!llDEr2b@zwDZYyCNAcnY0Y-dP~tu2uJ=o^ZWq(u=&8 zHQ?0lGDT$7TNtfMRJE|$%!SC`n1&34Ja z^r@{SwNj2-$&Ekva^~W<9(gAlhmd^5>PuApMjG~2?Z-YJHjA|JMvQ+{8X%s+0lclkVx4*tcexuT+?r)a!WU z1eopoS(Y+&XhIk#1X8#>>JNo0smmU8l$eXE0P@{hic+HhE@utQpq!p00*CODN6wlDTJJK{bF2TtDm z1^j5q2W~s$={*a-VRMNOtl6q35dCvb?>)D7Z=su{OE|(M+Hi17IJXE2Z@HkPbGuJc zM$J%Ub2lC`_@#8(q^CCwc3Jl>sO+x9J@n$M*cYUC`KC!-Tt;(ky$P>3fE_Br|K2o>s*3}Y)OOwQqB4~@r@bcw|M}-H@ ze25Qdv{FtV>?xMFt&q5K!H=cfZNB5-J%0SE^P&AwNo^nGX`~aHM6LoZ^Sjsn3wVGb zGLA^q-HIsnqF(J+g?c&o2=?XAEv(y1_QhN3nu=N=Cr}^aZ8X$2fsrAusLzDHJ+k*V zY`4;O`IJ|Su342qS6Bu=8{P7_=9X5`j5m98-%)syZ0$bZ=!HLZO9!dA9eBP(m@x@< zS}_N2(x+-kzMgx4&zyt-)YVi0SE*MFS+S5PDorH`x0vYhYH z3N1uUlD&H+iXtAZaM0M)VVHTg%E9iU2ab)1+MF<;D%AEAq>LRWes<7#njq?rPleeBIY^&6Q*6ZESXn zygx*#+_=<)&1{g%qW4QJiZ0X2pxiHo1&K_5$^Iu zZbmxEbUE36qe5cj*(N=a=_$uvkQw_}{71^p^mZ~AA|m{r;**Cjazv~@FK_n!({f>s z%XRC+6aLrO0E<#C3T%s zuMk`k>O?wAssI6WFW8S_u(f`9`!^WfhVYc@=(>@H>m#rAuM*EpCa}Jz$&$(mhIlqR zOFpBaF97pn!Y~5Nyg9JBrX1HCnSQP1l?O38F0cJsZ!Q*0tH5okn(k(~X=mXox@f8>n{ta5EkMEG4}OUbTL z8YNfT)RPAi;`dzEh_F$1@%!JBa7bGP{Yb8h2IUb~3c7hs-qI82Mlup--MyJmDvpfo zU2kK>xQ`mDIE0Z1pO2j$eQpi196Iyz3iF8y6sjH?%+*(AteV}6Ghj!7$B>oUJ|MXJH`!-XYQp;xfe;uO1NCn4l7N(#N%|V-vtop`3Hbx+_Mv@^ zE*h9uL5y5_J0-y6cxv9dr0RU2#{~FRb9B~8znhdwNw?k^^Wa&r5QDctHzspeZ>qfz zzM$l%dTUkhIG2qpcHAxaE-%jWZS z-Y*a2`O^KQzExQM3+kJz>(&>oxd`4z{2|&36?|^c$%RRiOJ8zdUw&NPTN>RSqqY0<-GFKd+YBGEf)^!-DJ4!W3%;k zZR_dc8Gt2V*-%@jm^PG@;4Rz9*1fvS@LI?GIEtUPxi`da^tx%qx4ZoAOHHuG9YJZELW!BCN{DOmJ6U`bKNLg=k zgshl%^<$UAMhTvTN$*CbBqJ(iM zo_aJ({e;*_9t?a%njjqkmhro^=3PZTnO#Lrmr_YX0Cr|VOH|$;lliST;p_b=QvV(9 zbcV+i6k*4UMl6%GK_6O00njHsm)LQZ0P9R22Ip=|7x<$ZHO^j_rur1+tv^fUy)NaQ z#X~@7Qv3lT&^ggNh380C^p@>yvUvUmx2YHe@5zR6k3Rz#H4lF=ZVFdVhOvKFgxvHSD$nEtom!kf_ooc^q56StikpBa;HJ-7p{qyu6ZIU{6m>QH;`$rs# z?>K4X?DS6_4}b?urEDX)$H#yB$D0QGbb9<!J^<_gQW?7*{%@23rZ`J&PChB-IHKZ!3{gW5 zq$P2?UHE-b-#$?Pr~UL(R!Vq%H)BdALmv~#is-vvom4=8^_;4;p)UZyseE2au#y9F zoyg$!Ph7;8E(Jebgq=r;(Wh)fvCu=?a#Ow|hApf^3nKdH+8x%mu z1<#yY+4$hmRC%Z~KS&zPd8bW*bS#MPI1+(%jovg-^;`eG1tklW=y9{A_fzvMAb>1A zEmQ?leHWwqTs+5Gbq8Ut6)sip{MEh(@^?O>QSN+_sj1AlmXuyO?9+S9w^+KSUk!M~ zt#{kk*L!+S#PzM8d{Ta!%|;Tffbs@idm;fPKHldztp^?T7O9b};CDfj__zSjz$dqb ztzZwk(`%B4XfDdt$qB3x(dEAbCIMID*wP0bK#1Pcn}6J^{_%}w__X5meS4C2a>y~d z9fDTtFtV;4^ej8*9070W3H$WLfUf`$3!^i>ErYI_V_OaFe8*i%Vs^?#qhc4tZ)XK0 zKkyq*HrCL(DUXR&c9&4@cq8=SIF$`I8fQ{91Gz7KS*g9{2;DX6PxUUCHN#llrK@Xg z2I1;)iJzto9wbB${Auzd>r=qgpJU zB~cDWULQ&sV`CJ;>$hCNVe)Do1^bRc-;t1wR{{w>x#)m*pitwApgI+!;=nf2u2!N|7h{l{q zP4_N2M4f=E*XL(8g!{M4HI^N4L1n&)9Rog9d-T_aY@JkEwZC1x7<*Ik+we8ht*s?I z<9)WiMsw}2X11Akg#dc`Znu3Ij4UBW4s^mgXY+TcIAQq;KMcpao}qf12H(JClSY*6FrPn;Zu z{|Er#6Hyo?{3#R*6AzI&NX91P>Sb{8Ze>baGmC}%TiCg;ht>Vtd{3_rC8`J*Dg5_*`(b)W%B2BnZ#CUNDrJ~Q{PQbg6DnUHT!Z~O^rUv6Vk zj63Mg?!C@epeeHXtflDy*+YlEvwt(HqO94jWJ7?hEz4_6QdM9nTT}<+j5QdT^kMUI zO>*S=)j2(CxG?HunNcsFi6MbQ6>9iH1#ljx9-kL)$#)?VB4JUZ*P}nW8*C(`y}0LA zt)$7B7yOwj=FbQ;`8~}Fc?nKA!*lIB2N*cj;MJ@fEH7AfEc5@wLx2u#{~kKToI!_K zO&>pn>iN%q8)i)6qZQxPDnPyh#l~_r@t=I2ZBgBw);QUvLJ0g#T>Ov@dVkEV>qzfX z-h4uG3x8KwgWYW!-+>sd!eZ@KdStp!L$J9;r}JMa1vYw^7?$d$cO1x&Kj(ehilb(2=I`15wCG5sn1D8d3qg__pX<-1Oi+&owB?9++qU z$0FA)-)f&pR$=Ktwjn5&U!d6fMP;+~%xYZd)z_}dNQr0HcDnrB(#YbM;}_1a;heRq zX#UZbo_PxCd%hU?N8d{62^`=bBCGm+!EgN_#Cj*9yV1b^)1uuk>H=^$ePC=FVvC)MpdIEv?+x}oBv!^M+4f4~^+?Mmxe@Jj&3!d)EljgDZdCTkfn1)C3z3VaO$_n+ZH2oVOz&|1xAYn(NW1O1RkXP)vJ(n&{uVP^?&**>?_J!w#s|ymhAeScOt>RTDKk8z)3gm$^d3eaSMJFuigJg z8OL+SNiVI2RyXziM)%3=^&T3_00PDnvX>&q4SO(Can=2BpQdKNnUlNP=(^J^n3?ZnAhydjj zTxC0U95e~$Xz7iWtV$2#;+mVSX4 z$;w`)$f*DkZ~&v3&JGaWS@i|eFl$l~77JCfvps94m$WJRb9mXN$IlT?-P)13Q9+bA zT^~@nFX{PXrqLhBR3*GEfD=lZ2UvmMw+cBxn4g;?4dG@#H|~djb6U?2N0y53B>QU_ z(xbrS!@ymRYsw>*IgbD>O;!o`t}4wYsvR095Q78>5?9{zA-_e@?{gQp9z;5_EHqzm z6WIMR`c{oNXSa?n1^y?3<$3NWEi`RI5Ew*75bB4!`hPkTtm%gXcD_x>5+8Sa=8*w6 z5`9WhoR#`OHNjkCLPFw94?xkfs2jNeTozWhl^}!aNBB-5R#|pBJI9?IeSXU#!p;-K zIZv|kd%J#14|2i!=wru=FENvGO1M5}1SF|)!WT{9TYarWRg1*X=*P7?Mg++)1r|Gl zF&yK;@tOuJN2ya)7hB5Xfx|p4gMPxHbBlQ*$2ir@$K4|bJ6fnyg@(0wyrbvoDG2v?HubU7zU(79xWkY$-2H%p(Qqbx{Etp|KgZMAW=#Z_i`0$;;!=tog?!77)c-xkua`h24Z z$Qn1gI@@S#mI%jf$}H#0ycTVwhZ7q#>$gM}7)-KsnL7G{#^OA_itmjYEP_+>T*81i zEGm$>7$525x&?64eWw#BOf2ZMH2G*>=0_}QXITaf#>*rhH9=Q}@B`5O*zJ?lzSC;> zPV8OTfTU5(I}WVO$pkKr-7uL)Uk1U(Hp#BD0EQs?4tE4_W;=&0_-zpGnpaVd|M=YP zOVAW(GCTW?Rx$qX&mr6flZH+UTx0EENj^poIcGOw@18zUHg7!?e#c|GVGe`;%Dy=} z6L>|lXfJNMgTTeb! z!w0M3vW(FkG8hUOdJg!?1a1<41pFW%C&?#pAK<42j_C^^7T+sVb>nEO-DfQd;W=^Y za8qdOL9tgZgy0YGn=-iXY78M9I2fF#4&j5Nh2P&>6EhZTk~y*DIN|oLQ=Vwx$~J-@ zB|18Jv^Yh-;@RFQGnl0B7$I2^mO;6$SQ`Sl!H4Nf4I_1%i1t7f$e<^nkX2{W%@Cwg zbb38$pZaFu29PV-xy7gnxuw=LKiqXp*0Wz=2uxS=RM1D!(NpF1jB6(v`HxYXMh)q0 zj6YkOQm93;LJi+EMd1;U1u(ud@8nP@8E0@M<#Ewa&uKG~0q8qXD0nhV=3oLc8iJiq z?&iS%Nah8W2HRL(wq^2dj_+MJ8en2eA$z9Fh?*i48otUTwnj74ymoFcE*T`gXWxZ- z|9-h8RXVQF|AD%f=nIyd)QOIUrZx1Uuvl&^cgbFZ6K zThTc(%2p%q$AlPrgMl2?lY``wWUMHDg#$YzP|p6^?^3<0D4LdAF}g&KwBVZ?T+y53 z{z?kH1Ma|cdoK*wb;I?8j!;k>2j0y4bOgTdflpL}9Liu@Pz>zJcm)|I_Eep=2TM8~ zq4W!!SrUNo_S0+Y)xaaV&gw+=m9$<2FeMs{DTq^_p;S=PiE0`8;JzcuX8OQ(p?O=> zavWOM(PvfvnM&M>tq`*hAMCdP!BoPgTtsg$6^6@Y0vgyJqkB8soR75Kxp1 zE^o)^IpML&b(a^vic@&UX|H4P$gYUlLd3l=E_#$Md=Um4fB1H)3!|bQ7GqI`dOVuE zA?!(EfRW=d1#uOFQ1)9wIH}s>2~KOOEs{XrF7lzZPL4~P`CvW}Cv-*>m%wpUocuIo zj~}gueTSEn{2ty<lN#g zsP^Z7=sOs+xaMc~7+?%g{S?h#^L4b7CiL|8k(_-Qy3^7I$1BO4p1>b5>f_ic*?z;P zeGjeR5lTH)VMc!2+8z`0{4!?isO7MwlYAaiu;d1p&-Joaxu@Gum3`TaT_&_!_c80& z?s9#8qmThdzhdY3c<*%`$sqNpkxqfyPBU6WzRhB%sM{3dfbz$_==9sO4Ml0qX3+!S zNt)6L%TZj_3IZ z40EIWARhQbE~y5hSrtgYr8PakJQPm#ZKK+NF(|xHL9vv_%_v+O;~kncan&uL(ir`l zweA)Tnb>~DiS^cL9_nDfr?$D9_F$>P!&y@=xyP6fRE9eGy24wbIc8cqFk- zeQFYOAi!sR_$vP7Bebs&cObUa`JUdK&pk-F-Mwtg){Eu%z!)P?55d7!L#M5J17v zQ&zTKYLrX(F0K2*vn{9ZiPK9Ll#LO_7HFH`gLwVZx?Ch#++@h-ihBX!O+F6yWFIe{ zcg~SeYF2A;9hRcENc!A?oSdbnzVQrenN92YHCIZzA!ohegT)s~kLhvqP?H(SqPE_n zh9YBmgw8>jlR1xSx4A8i(*w%fS+8Yq+kSyo(evQCGR4U`$4_zaF;o!`{w@Fc=&RmG zC4oxcP2RK|pOZMdX`YU!LkK2X%TIbb_uL-G@g_V4$^qEu;agkZ+ov^0{N|)fM0M9j zIa#c(#%FD~#%DBkyv&D>t3I&)it~=`WSQIvsd4QmH^5{^4%k+bQ6rb6=c&^%4}oWW zb`2CV`l?8(D^bZFt=dIXI3=4ZYp2TzfTP~XU!*N{u!Zx6>N{*9Ql={75Lo7% z?N<_07CW&_J2UHW-1@SjE)k3FnEfTvg@i__V?Bb6a%_p8xE(E_H)6!Ie4W1}&`pE; zg>a?`qlIft#h2)>4@nD}A`4tiz11`1s7#8|7)uCe_6v~ZB)$2P?!vg2-q%}%*%iS_ynmLwou@M(BR6A_!uX@}>8@7j=eL`;R}kA0}1 z6ywN8HRzpb%AwC06BQxD6vgOy_3Hkx=whq9Av*iCeK7Gk=#N#WDSvHwICkZy)jF6+ z6CMKujms(c;Pd)8b2go9 z_j`6$+xI@PCZ`!pfzsO2mP}4(5bk7khJY}y4m5kd>KoNy#ObGJzSxgwfOG1J8jaQ^ zUmE%uq0uS<%tnTYvX=9j(*+j8B+MC)yEIMU|#%QRYSR0J8y-a?{kZ3%aLX0&E$SG&*kLlIdJL=52?#NPIJ8A z0TLB$`V^TX7I@~*v7PNO^ldU{glLEbS^Ijm@S^)jn*F5b{h%dt-mMWavnrJ9jGS$G zMV#8Fb@npBk+BppR0_(gF#X+&gZfv zZM0~d-p|#hiLp)_hS=tLnf`Sozt~^=7U7*otaYtQ%dha_LGVqH@0+paIf5QZ!;_V9 zI#^~Wd1{DJ^^*FIVuFOI*~t$Ei!dtEg@cKu%&NIwo4i0(YUo~n`LknJQb$jl+ z63hiCN~1%6wUD3sQ~QS1ec5U|HPry$)FP|>3OIs!V6pM@XQ8sFl8F1O(= ze0;6}?q8btwz^%n$ZR4xG-R<|{#4ml&wejghI)k*-m3JRAF+|o{Cso5!E1GT{YA6& z;>>l~^005b77^o=MhVMdf6S-rmE3n^jWlWSaV z->&`Gw?J!{f9-kao=-#bLA4XNZx-r~#NFd|2K3j=2k7sBT)@B7yv?*U5Y`%5uxBE# z3zc@AE3cO^KCCj;w|8>%kS#>Mp?wKV zi#_mTTlhQ%_g)S631lVp9eDP|5Wdy4S)4B+N%uuCO!y>2?B)RTM)?F+a~h7^x8P$ICJ#TA zd}0jUn{S!NbBFv`(3iovxET}{=g^B5)VA4}@igYwOl7>b4h*n>uz$T=S6vq_u|VV5 zRn7ua$b^q$+yxlG;xO3kyVCHBIqQ_2EOpg2M2V0F-!%_N-Tt4>14`|xk;9H^d(Vfi z7Lhj=oGW9jHN9K>Oadv;^=9(S#1^and5(*QdP<`1>N@tt70I4_<^;Zoj`!!C!S*hi z22Pgc`_006GEyt{k$KjS0)erw9V;%bCM|3GOT!^9}|g3q&t74~8}i+8Wl^QDJjIhhFft z`PrRF)E<>_Y?5*xT+rRONoTD}u6#B2!O4D()n+j}ll~+nEm(Uj>aTVg(*vh4n<)_C5WLG^R9eQ{rB9m;1KMouF=9%b$*w?6WTUM>h@IGt|2$lI8+f zCjKOu1yItp#fkhfo{@#RBo@+`T?Z{P2Zj`3f>xmTwt5=p!Q?9%W{MdT=?3wOvVhT! z_YO`^lXQ!$y!H`>&#sHLV#zfe?T|ljW_n@1f1|f)=Z#n1^f~j|8oD3YbV2 zKhrDBYiPX`Uih-YMU2E&3JR?%i4?TBThuybUGWlpOF_J9|FpTP;gfTD$(Q_`pb5|7 zE=jggZ^*Nj04E?{Cb$tYL{y3!`XfGyfkiEJ*e=4;<7VI$GxweBI^F0aGLYa?G8PA?~ugF^P(#{|WRk&0B0 zxf~eGdc(gj5SK2~%pdbVq>E$XC`U zPOZ+ELQM~=JvPsMJEu-H5hm62>9}SLPSxQqR5r!i|q;_42O`GjDW}qmjd5MKvVpgG?QU< z;AG9$IQ5*YQBI>Pfdsnp!5}i4zoR99J75VHueB`7bVYh2C~NsePS4h_PgXj{VGEV zQam}#0gY!&8L0FkX69_6IPi9A0e#yydZJ$^ySizBtUU5xDX4cwjcY+DPU>SZj}Se# zW$|Mc4WiR+s60~9TiE;hBA)9fhOpnOqyVZM<$%(q^x4%`#+|+?Q9b%|y^+BVi(@_G zj=Ry*tR45ljfvBTd!t6xpv^n*H&~X)c}fN_Xh$|Ecp3tZ;Ji{M%!-w`iqcyfa~l9 zzvt6vBtVGRbi!`k2JgQT?@<(nmGO6ElV2VQ-m7%o z8-=KrJF@pTZW8Ca{;F7Kjqqb~_(vnujdUlWDxl@gh8~V5pv}mW(Zb!$P0U$s;S7Wj zDgU@TiBS{}H{NIk4XGq{w+9Nf*Wsgg$TFl7&l!U_3A($CJXWL_}aP za;hGT`IOB6)L|YX24MuvxHZO;6AJnc&h0R01bW`Ofn7-p(O3ikkjSIGt$Eb(R-TL- zes;Mm^#G~1ExnWD0emPYqs>Et<8V-6>ZFZPs*sYD=o|51AH&hk7rrZAb(PCXpDYo+ z*Fp1;l?{`{7Vq;#uxQsipO7M(I=aaL z(@4s(kz`cfvU5xqaDlpS{EJa?^5C8s=Eq+CYdeMo$dB6c{L>u{E1#0%J**xPe-M6{e=2#rdqw(jZ--r!@b|V!JMUAv zxE|x;i%f&K&viZg8`tZFtT~^VZhz5TyuNtf%6Ja+*g2D=s>5uw)0|Q@qO`fbXm2Jd zfevAU`uxk2qgs->Cs(^ND4|f(j_Hb14ZBp0@4jb>FydK(lrK? zW>V5Hy6cYA+wr+~|L)y6&w0)h-{*Ut^Ug^4zHj&baQx7eVoF?tx*~P=J+WbWojkjUXX>+xk#-DOk4XoI@%Rf7g-cldko6!&E(}bJE zMZN0E6!tUl6ee%;Kuxi;YZsT)06Z?9!W$gNYQ?sSY=G=y=rTD)rMuWt9h*yWI4IAE z;+Puj4dnfE)B9@VCS*y)VwsVPOM z$6T#|A{rtQTf*U7SSj6h9kb0*yEO$+cDx`ey_J=z6Irn*9dHkFMUTPPz}o}e^?OmB zlRFen79zQ6do#$U$h|Hud)FK>rx1uCuQiNe%bHfcu=nAgOjyA94LBx4r9Ml0skhd0B!oE2!4mO~ooSy%rHBB+6++KSj>8ge5+QT9$6Uev4J3aHA^JsE* zUe(nU#DMedQKc2C>wXs*WD0Uv6f|K{1VLF5`+_TPiCk3^t=V;XeUP&jMmX{hsXwuk zZ-uZi)4iu`Ssl1p>Xy^sNL{>uSlVodvFh)y^wu4ZDp_<)KJwO9nTlhi+EA>VP#7+i ziWg5S$h53`WwGo+nl&MFH{D~qTTZS|`{i2aK+TMj$p%caqgB|tlM za8{PoVbejOQJ{t~VeedLn!j|mfM%}(bi{$yFDf3prHDk=DpDw^7wpC#;?IfUK-UYq zk3=(E(c8N}0stCKQqOxSl6-@`*xnsW2;Wklt? zGzWj!Z*YS%`k~ywODeQ%fV6O%8gQX9R2uIu^|| zR>7x)iV)a2ZImVDJ##G7Ph*Ne-Yh0ayU~HREgZ(D{?cK&IW7C82dX}qPabuC#vcNt2of&`uy=Z4;sRT;ExfjAGjAIy>I@s zDu?YCzuyeFrc7xjG%jXF59Cc67-k|X*%?NvbXc4}P;S#mXM4h3s&Mv^V~lB66oc)v zK?fp6iluCmA#n)7prA-1X9cJAcVkv>f{|8K6Kd`9gO;VlkL4*!i~Y?ZDT(x7ZN9$X z=X0zWS{zrJ-GG@F%^s)b=i6fUR&N^%Q91#8qKQqKe`c?#sB9hhtKTJ4>NXVC!W`tV z{DQo80`wcuD4SB>ugDq}*~hqtl9Zb=dOIujAHAKF zUGD7>}tF8-0H)Yk3SnN0N$7O7fPyX`F$+wn@V55pXTE{dFym3qp5)UywWYQG;E-6u121ES*!O z%{F(ooX%mJB4#W&yGQ){p^{u|wxfVA_)iOur^|3DgoAAzL-GaP%pGT~QwnQl^1=iW zPc&dTt^r}MBLjP7_;%5aN=6&7aA)@5y;+O)EGj>QD2)9@0Nlc1^`Mc$PH11_Y@bIz z*_k;xXb4(Chc}*TlAY^C50yV6PP2DV3CJzJkdxW|uE`A`%45=!37f56cj4;j4r70P zsK<7|WL|o%4xi2}a50Qge)g8FJ8wat*wFCiN^=yWc45a%?Do&}H}X%VE4g2mi3U?G z735a8z7fmwkbfMj>Tdg{V0B}I*ii2KtERod!*7l(9)0}$^qF;b)BJ5S>c`Pi(i67Z z+{HN7jnQ`eBb+a52)mTQ6b;%-GUzkK3EC-ToOEvH+&`@wt+y0@u2&Ru(rdnFOj2ek z{ip^7L5dEw4e`kf76g@$N^rBK`H3tqNym>|3XftoN#J^qT0?*X>Y9G%U`Rfog)*04 zb9h$j3=tg>gJ3rWo(J@<2|$&R_hT7FXQ^&#*PufD2DJ{q&UTeh;Y5t^dYUdVt=_y{ zia)F-20b$j{$L}g*zk8ms??6~`75@NPgOOMYk9(Yz2 z=-Z*|A0d%|uF}2gvY-;Y7D7GVSFLsqg;{k)>Z-ZubggT4J(V9eb`xCyOcLW* zrzAEaen{CxnJUNzFx7n!nYD+cd>CGEQneJ5*SD}HIe_LLLB`;!5QYs}mpqwPrvaV( z;u`nQ4U3Uwm28xyv+|Lpd1PZ6ktG9QHFADX#0x1WzAi1QS$!fl%Nb7L?mGu9CdNlG zTF>&7EUCGkX4;;?2ruGbMh$D?tz^cCKlwfB{eu`}v6Vj_U5gMr0eicnyXH<|L#NXr z8YZG!sNLosli`1wW-4ck7Ur1g!{3{YQ~|zouZ{x5vSde}^xG%ol=|ufJIt{d>cnT( zz*He=utyukb}>OyPL-}v5Qc%sH!~Zm%L;(~Jhh(0L#5uTYk?+ov}6GD4JDV|dG&MGv(FTS@{Zyprc-A&)Y(esYQu$m~gV0bbAc3KSx*ge8r2 z92b_(E9C)=_-3mjG*WT*mi5~<*K=a+!unYOdbPQ;@sOC3mx|Yf;(@%^eq4 z&R!)v-3{O2)ps_Uq$QrrFvT%*q<MCJ?^NzUj162&#}>bG&P~xUiy6g!j@) z1@E?Gxm=f1RMPPp%P5;&oyb_8)3nQhyP<%u&4#3f;CeipOC1Rfcp0Y7 z>K1mliF5%~9TsBJYtzp$1Gv{~iF*#}6NrPEnK@K_j4f;S(d=)Y%-2sxIV?F6Yz!oG z;jqUMfm*1JV$t_GQU?y=qnwmx!ok<$gTgVWd)B!cUYqk)3a4jKTKP) z+_9FCKfx}OZ@}|Yv)!_v=kBz6c#h#>`+tQ2)Gz9EF&s4r$|Nk4+OPS7o&BtYDj0%9vd zxREXJ7|D>4W+Mvb#X=)IK}=v?pqFV9R!_}xOL;u`Fg#sqk0D4PEZ}fvP)5t^DS>@3 zH~ie1(va4)pcEsZeO8WBs(J|*ZWy|N{pAx&Cs0tzo9JJnT8^^v;yU4~X#&^2f;bz01-bc?D<>Bk7b2urV%IToQmhjQ8WnnP5;D zg$PLr-Ey1otv_a2evWY}P?_l^lW=x@<}B=tq+bF_>8mC&tEAH!??0j@6ug?DeMgKw zC_ex|+Vf7c4_9>&z37(}Bc~k%9DKnoXnkyPQ_rB}Lzc-oYc%<(Uvy*v;Dg<;hgEi- z)wo#al7(IsnzR^m1G9c`gg1fkpiqr@z|4^aa#lo29Fsv@hnSYpdPg$2EAT2h0km=WSJ9?XZ#;7?aR2 zCu{9XZ(%T^;ayNXepkZUB863R?eDdP(u;Oa&laH^9fG=I%-$QG)Xlj(< z9SEu7Gi^#-Q4twvn@WN|goH$z(!0>?8AL<`Q%?*r<_M`f2R`I?vp+>oWpb8J$$@1r z;9|wc=Zqh}l-8f}k(|g;#V5n(^*Ur3g(ZAea?|WTyj|BorjZ7_RsO)I)kV^@5*%!h z706uaG9G^%73Nk zXQ$RhWhp-p&a5~&Iu^&(svs85JDevs19-kcIa4;_g>0=L>QP}-XvF0{3+t!0d}Yd% zJ9u-m>2R?u3YmwMFTMKLH#XJ{C%Zx)XFe|;uesA7O-;zV!gK8_K^z;sjqJ|piXJ$6zz~0?R+Acq&3s*rG-zZ zzYg_XeUK;SsFEi!qZ}u5ms`XAk$CH?yw7}UySKI{o_%UYVla2oc#)*mlC6$R1ywfi zh|CwiC>jB~Ay^~agwpBMgxG6p6H9^wJmz^f{LU>%^!XLBhoqFn3LQ}S8ASvz=Dy$5 zNOQ^W-Y2--9?pORNz2lT*hf#{e-J@^q>QSul(6s=*25`eKf9#L9JlneLCetc?B=-X_Iu6+zoPMJm%0e ze6xua{Z2Vlew8+^tY~odd!aw(N`WL>>kEKP(DEJYX~xu##su_l4IJv_yoqN3@1@Jh z-zzzR6Z(@L+D0^t#g*jgbbBQ|QK@8N!fPe91HSigzSV1H|IHXo6~DmsAXd54=^4{v zJMkaUTTG9#c&(d~@z~nRL{7ttFYd~wn}WZ<-ZC#tUp9W?Zw%(Ft^#As?WWH9CAiP? z4GYcHnY8AQJ9qmw#UFbC^XU`r+D$VOMb7|u`gMg^ur2rvtTL+5i!&y?K!U=tR@IVj zAJ>(Bz~Lq*g4zpm0+J>#6u|-;<&3$Sxr6c{x&batE(XoP1;IkwR>N57u6Q3JGwZ5H z;EDDs>5YjQ3nfERz(19+NC}X$QZQlaK8~EoWv-08>k66La5rc;PY++OGK=dsw31_B zpzmk3n%4Gyq;Yo@n182&uJmPv7-Ukp7!-Ns-c&?U7kwGX9zcqJeIGm+#o{t@TOE5? z%V6{|P`Y!T-ehm&IntCJ9yP^39xx*_L8`N4N5`Z?eg$a-A*sL+&o_ns1Moyo`pys1 zV&;l<;BG;L&DU7%J8))~rE7e>EBqFV7qP<>da1~o3gqj`GTPr2vneyndwvDY5rW<7 zxx9!YJ_{Uhb*Lm*;>Te|6Qw-q`_4&z6W6g2>qxvZ{e%MQ6a6({8j({7FKO*#Tv%5m z+)>ad3FltS2^2@v2Y!MW#IRUux8Tcdk#d(t71!02BRWrxfL2Zi`heqUu+(N+_MdR+(Pr`dBURfwbD6#oZ z4?c5GIJs>a@G=4v>MphJ&L3Tyakn$f7u^@ECbMV&sg$;`DS=p|+S1apy(Q^@t6P8- zJph0tzds!7Mov0+=^s2U>$E378S`^p&K1ua_|v_vLNN}x^2X}-^_e$Oxg-WlL+C+-bnS+ zxc1R3^oNU}wEvjKmrd8o4g4V^=3w;%hQi}cTm_|$_>Ddbk>l7Bnu@qi;!pcLatV;m z-k(XCul+sg?GplXQ~B5%gOiru@P6$GrS1DbAZQjSgjp4I=}E9F1Bgf4v?_OV26An1 z;`|8KTh8DBy}ZFOnV(9xAUTA~{66Bop(KZE;pdhFIr&tJc`g_xdjFFCJ*zhiaY;{3 zXr%I0!#V^uWuyF~*OdqDi{1&Hpw>RdHi>~v=l25-x#pj$)vl0*Yc3@%D93-NU#ONp zktLE^W_+X_z*|>YY&0)^xX+J&njktWix%fra&FBx@#V_?LGbrr#UBFl#GF#%>8iq{ z_`FahR*tv2jtZ|n*Iv`|Nk!nDJ->UKd@@QKDU1AmU4U~X+8LzN`wh|=NCE>3 zg`M!Q$VGwOmMXs6z`M*p1pMo6V9b4^zrcWA24??H#JRSM)q?Uf=p;&JFY`>muiL)~ zI3D&g6tJ$bP#qmabw1?wl{i&W$UDG$dgTY>-UN>F z`NQmP!0XFCZw41PU}Etsjs)Fy`Cad19w>hX!`-rl)7N*Z9^x)`G@wSA44*8Wo>3ho zp$=PfM=-eA#ZgAKZ>+9Yfa~JIhM4Yq6T)a^rOjlcN{0=Nk7{NC->f#K*~X^eM^hc- z9!)Xi3{m&)mH^a?TPtMkn6v0Q=o#gMi_zSu{gBr7B;}z!q-zcRJg6rAI&EMSt!wTr zRtfU<#)d-vWaedD-xR9w-Hk~k{dV7xhg!40a;v%9bk2lV2L}-;&c;x*zt2!!d)j=( zD@emsO&F4cAWezp3DJFOCW{yN+<(g{sqXr0;~hIsmtnN@%0hI%GnNFHOE^Py3FYUsizRcHPQxXVqf$iqPkaZb@MkE8SMdV;-)cj5~HDnG_%yn(+J_9Ozz>)TKo5(hDhE` zIoUWJB+-kASA|S|E(#c|0LKQ9lXl9+aq7-+#eF=o=r#<{esVoYmw`A|nC)og zyGwakY;po&Yju``h7;TtMZ`x(7@XD2Wy$o$r(Sj*p%p(^w=G+yB$L6S%k?c9Abx`U zcXT#M5B!I~!VW%j!8`cKk;T&)`7T6OlmGoJak2o-p37p-0ZPzK2m-{ZX2v!_zz5po zp&jj#>~Qw_k~!rz%(hSV@j?kTy!4&7ebJkdIl*H77|o0U`To%w zXB%W`zSpI1M#0y7Rga(k38o!USN*r(g63Cg_ARK#&vy93nEP(`wsmP_-Kyktjb;|G z>yrxKHF|%ZVGUh9CU?*M^A*<>sO>lw2$f^n@yzpGJ0n?(SBaJ?AirR+%kUahranrr=&bUYl@%cGA{J@UZrAd zRQ?!0DOA^;RYA{XK1v~{h}cTr8dHxQ1^E{LnTsOZ67nTUWj`;sioX8%!qo} z;`p(AJuy5@Sy<)dpnO{iMu-BZFSl9DgP?1I=_D zadUt2snQ|0XJjJmN$3;o*zM+{9um&x@|IB3(tj@jA0ulbRzv4>PwxxGKfF@BA_*vP zKy|Mid-m--88mE9mnPmoS>1+jUp)B&7s{Yj$9Yb?IqIAGT#&{wFQkoq6K_E;g(q*7n_jKrh3W^i@nZVHTAz1_4E?wgUK0t>WnOi#k<*!@Sh>>A*I$ zvL~{rhN$8cT}r?Nhh9?)XzaJX-}cmWEAvN~X*ZsCTO z%EVguirZPZ($5OPe5#UOU~pxuqe-3dP*!o595Yo3ZWr)d10b3|55 z?n~toQ-_n?-VBEM!zfYBkDPV>NdT!tc`O(Sm$ysrsVlibb?0w7z@`{7aQPFxx{WV!r;QyDTpbryt5x?G4zZ(A#b=a11Hn zM;iR$c$4KE7^Wi3tFAr2UzGl``Xl`$rx`Cu=L>n9wjrsE#$}es`Tc-b!_()PQ68%R zx?^UAV9)Imwm>LTg{*jHJKZU)Rc7eo7)5|9(T1-l8PA7iopPVyWu2t>cUJTPvH7;m z_~Gx$`sr$PzE$7vBVcstTu}P3Wn%p4v&Kw(zRtnKK%;IWVOC)y6u_wFKlkqt$DVG7@GWQi%(cU}VyNm+I> z7NAz}!aCFlEG~`Qt>>>>fjIGPW0B~Pbmk~;H=?>Q1R#bs;I+Zi50g^zzQ?!EZw&XFHp28TK0kdhuYn{J$7b zb!mF-7=h5XFL&$Vz8w9kTCq~_0(t-kmxXu7z2UIzvd%=RCvNq3XCw;LUkUw?Syq2> ziD99szZvvC7jclHG9Nz(1s(`eAD7yibz|th7+eKZ78Ma$rc6vVWQzECgabXgj^r|~^wAIdojKwyL8$?u)KLAs zuO(1j3rBFOp?>F*6uA%z#Y0{%JazlRY2=Ag=;CEP(F!F1uCQ>CBE^7q^r?3X?}2}WWh zf~%X+UtO=HZ6N~5FA1vWDKUv|um@}+bj)5+XRE*_jTW0EQB@XSMjoMUbBSI zzoD@T=Dkp<{cqJttv(_Wt4KO_Kn)Sif2EI3@*>ZjEX= z5XgPycaOTgBVb$h$su?uYotZOxo(E^xlV1dSOdKP{K^pMgwAEULC92{AsRe zI+G}K-^66ONGUat&EBbwk-?UIDPw(f?beTcrD|>N)!TIB^||eftu7o{A9UH=@M@s@d7{=aD=BMMG^<1UF>6^_-* zRKaSejxgf!7~4Pq>ETj4M^jNnPtx(LHKnaJvJ`VewV3kEFyrob0Tz95$b?O1Bo7}x z))~~im7KGT2`Oq9GAwPdvmwrOld)XeJ2KcG%iOTq$ryl!x+rI-+3>4`eO=CuvB=Rg z4ga>Bw6eJeigIgmxswBQru0QOUSH_YxnQSMkArU_ZA45#-HLvcK{2DF3N~OCR_RC^ zQ4*v12dnQHOJCLvXHW?_g`CT=M) z=i38R!5bdeV^o<%j507+?q76lv2sgOA5GI5S`71!&ctr8svWHg;$q3#kK0CJocj#v zUltil1D3n8@eDXDPqIpy79xqi>HNegE>noYPv;*z`ogW+RIVZ=_r*|GI&zGwARIO` zRyJ~=V#`?NJOrOr)a}&|=t;N^2{N=-*_0`cG8hsw;7crd(6aDNzp^!|z~aNF*c1U_ zyqL{*QghK2?IDheEV>%1`RRIneIF0Ga(d(^5KkaM-1y~{GlH$r3bk<)E^2O{4YiIV zfak7P{=!Rccdlb5|!J?5N7LI2>Un?IEi^6@=8t z-qH9cFDJPMmh1+__L5VIc;w7j*FE@~n+ot{M-9)&MrC~U=MF3>4qL9n{YQDXJ@FVF z6e_@;D3b~GI5~Ii`j>oK7nt$3Bb_QlVcE)RHSik zn#fTa$Qo`t7l^DYZ*QzGPO%G9Z?ds6Jl+3PESFC`#EUKL zMcas`^=|Q+*)R5a#y|7*M0Bv7NOCoYN@oO@3is<>)Gh)L2z2Gr{b=?-3EZELh4*{* z*eDp)i`!u5yJY4mmu>`D1GA&_?>(oV*~A9&Co6qKJhdT?S#eqm^)%V)JYgLjmu<$7 zUt~^FEk3jhVONS14szqV?}_JEK>xt1^2XiI=j(UNuXUlMz4UR8zf3%n1M$mWzZ=&c z#Gh?PS4VjDIM^OWK6AqLEf+~$DNBGr*Pwx> zSx8VHTYNx7z>R9PADOFU>EejOY~=^$6eWee-aqL_Hw^n(M`vulKF;Q`SiLyNM4|i3 z>;|(QVx20X(N<0JMjGum%j8Spxrtil!9w}Mv z)=ATzR<$eWT63Ap2UfJMu^5{%>+Q1N zITN_r<@Xc`13)smh>T6VGPxF`k}PgNE*}3T>%eWn@>a@8#~zZ@9l;r+$e#Mbq;qsE zn(7uxpdT8^9yN&PiM;H1vMr)|4lRs-RcFO0HApNoq`Qu+y%{2uxmU(YJ1nC1 z?3n$y7|g`!m1-jdXN$&WN<8%N)-2ME%lyY~b@j)kJGTKj?Bb8_sOpd`@!u-CIsc$B zFow`L&#)(vLy9C@+2=y4Tg4S>+lhD7J-E8GOQN{wJNwoF{WfuM)Z6#VbujK4qN zW}gf4zCi#2fuPbYxqP7NY9JnZ(K=y~B}Xdv)q2FdvZir2L2}J2zZzi?p~g0SB+>4g z=w?a$KoM1ARK%R|5;gsPUH}YCHOZyG@*@P*pb~Uv$`^m#C<3RW;i3FB&+!Ets<`I7 zvw29E#ElJ=+o0*}tlc==f3WrXG-I27%73DG36cul{UzNuER?cP`28~hy=c^fo5*XF zbeGFlllkq8Gd<>j2tX{Mtw9)8Ag!auUD|->Q)s(EG60`lElJO^wUAv@z!YOHYv%{oRB3Jryr5dJ3yQWDZ2PcD?V~KBC*w|WmGdD4nsI0s0jLzZzt$rxLInE7AuH}TZ!$3=7p9}f z!0361ML8|d0Z`=HJH|@&>|qiW0n&)?A|xz#wXVO}nGk&Kfqk(X15XxPBn}Rzi9unn zqv?^qr-ZH0dYYFXHsj_Z?Q)mT^2HZ4`}oNt{Xijw%N-=v5D^}p1!SUFR@b)IDf1FA zwIj>NmeH}q5K5!uN_DS1V1w@wQMX&lWf)~H0lJrT>%KKcO@c6i?T_SQZMfJU@v4mrvuVpHz`*vV?_l09D5uOuBAkx~5u%Uk~7nO?F z@qvCFT1j{Ug`LmP-GaEq4lZmc<00s%@9utdU4dXkaCXb4{B>?j_d~38U3B>K%lQ{h z=RY6@DNgU|~Z3^O#hW`LH*&jeLigEB(dv zS`@idRLdXFPc1K%>w;7+>6N#5B_nmwg)w)sz#*S2L3;Bq&IplTO=HY;pM(wU|9X4b z4`Sq?fmgoz_0(3bY!?Oh^vf~SO9y2=U4JEt5aC~sdlidN?wrXpS3ddoXd&d{X90gN zo%wEI4l)%`uB2`=T}?jMixdT-cAmaSv5@yEkwx}Orr>2_d5kng0bNvA2FjJh#H2~s zGt^--olVRXCYvTSPF?rQ02kCB9PHS9$^JMqm6~EhO`iUuE>4ZpZBODly=W5IFCxbb zDJqGomkzRFQ+}QdR{X<@0f!dJ0WgB-uQJ>0#>jc!bv4FZBkm#|68N9K|7tgwpm~Ag z1cmxCf?uU_d2KIl9o^|MhSvm4m`duRS3*!3BDt<=MtH*zzsYzX0ie~JDc)=U&7XE;v z{sThH1l9EvWw6v9j8gnvUg%faVIT(Wsb0V2m%jYQ>u4Ykf=`nN;PHj_?)3gbMIOkc z?NoS;c~_hKZ{QETsBU3Y3tXGw7xsXr{>P`?GN}6!7{9&{I{o4bY-9;u4eb^8``A(A zNE<$WnS@?}hTM92(E2y=H$*!PWEEz64TPuK^!ja5as&((P}R1UujX>oI_{psuof3(hk@Z+(8)uzPxt3Esx zgZ4_b&#|G%odmB!2{!H6d#zpybQ9%Kv3`$x+Kw7#HrCaIl?p_)c0V(P3 zT#-&m0cnPqLtiL=JGOeDpJ$=I^VdpI2RKHL*-L*@;WaW0}jx#(VNk)z5$R z(cKN+>H2@udY?yPkv3UrEh82Y1c}7wGK;O_A#!?@C=u1q8&qJZ3$tWh{FtNtrdi;I zG0nC!9bDfDy+z~2z z9dV};WEQZ1+%{cCH?&S|caU-)SRZz|P}Es(uA;(XXr9pg_Xb#gmctf!?e!Ji+ls&5 zE%xilY0lJrwtCV{?050R%gb-&y1(TtN=g~12*k-OhDh+*79ZHTlD!=ZdO=~(Co8Iv z7%H|Nh|N@6x-yOT-nC>T*@rbMrhf=^QV84ZQ`5rj+Ph6=vk)dw#368rM}NxpNKrko zlw&Omz*B|WDFwV?-`v)WZIr4lXm%a#ShX^^;%p@UtV6HyyF-5%yex!V0^2JdbbeX1 zm5L!Lp;o-?^~Cwa5p^NUi_6O~KlVpAO5O5QCTH3%;(Xsn*PL)&NIz^WhM~2;h#t*c5vCf_> z5swffOat1R$4D7QH&gbq^b|f2f61geF}HWp2CbJ{o{}~V7(()lQ;NAQiwxAG^Hu(l7==($zctYL)`-9h3~4L$`1v^N5`LCQBIP7rWI&_FB?orID@q`eLep0 zP@)%Zr`EzMtandtS|~R>n+y5;*w^4(Ln{ruNb^!$m(0PzCu%_&S<3LDMpf@`Iwxb#ncglYJ;xp0C^|Ok zi5dz)DG5A4lXFa&^H@<2%qn*!>TFEE>$*Ui0l{NpD(LLfTwswGhHBO}j z%?;B@DKKv`h&DwntG=7jaRDB zW67!IdgAQ-1aAWu8=|$x`Q#R`b9WEFtmLPO)^q5SbZ4O!WCtuJJ16E7pTNDNegCD~?KZ^ZZZ>1MUR)m! zvs|X_5lvb2b08u5V{uSL6Zz*c!vZR5 z4=qL-J@2)+Ew~_iBfk4L>(oivFk@Ha7cR^~c+Uj(3{GSDv*$Hqs!1@%+BRdHy$p zRP5AwhVbFI!rmM)>OR=6ir&LY4P+=22gFmq$(C8M6opN~c<-_6E?MTjpzNJw zG=&rh+VL*SWp^^t^ll}JiB#ztopgx` zn>eLGMlLg%YB}N%dQ^(E>w_!;M_oSS6xI)o$yfZ7!e59sPH0kNT4CHJ2u3J(hxFL2 zLE~!NU`D#VOw{1}kX+G8CjN)Ry%zdvQ9xG)lgNyTElXXeb2Ypi^bgV5l6I3A%v@^0 z`E(_>;tNPnNM8yF90BGTgvLMc4lM~f-)4dt74IA?4Ou4Yy9c((v^dRoD*ur*28gv+V_ zphjC8=JKeBOb7do@uEqkL$qVB9ykd3YMOpFNA8oYTQuJp4!QL&r9W zl{%a%TeS4BmtBF8l#Z`G=Atad_0allU;R1p=+g7EwmkI+Hc#vV;n|Ct!s>z&0wphq z`vQP3U|E&8c}nIy-<&AzneHV7euz}sW><8785 zD2NW7N}WX(t-vsrq8>@NgZ%>UqqDTCfk%ZLXSdb@&&;N$iU&x3>sz*5TvOG6}6@luKrFA5Eh^7r_DmCqqQWZEad7L7K&nnc{v}%CmlzZ@ndA!BciT{+0cFbZ36*KL+wM=Wnv$jt&yeNLOf^tL43a}gFs2mX;qJ@I=vlUEhy|TWO#M)`3SRC zXl}~O>=>M$M0`(=XmF5pz$b+dH7Ck%)U%yxP)i*40mT8n&)9Pj?`5h1muf&V7fv{k z*s7TntC5;rp61twhdZ9NL~UzAh`EJ6%{Jphk*$#D%3<33c-d*2R|wLn=8u9;#cLW? zm?kf8@iAmG2#e@+F$u!D0p^OAunOYo6g|B*?-~kVp+*;yJgU~{BCo#S(##S4-m{PM zW|PKZWCq;#tSx|*R*MVufD;KpOhK#sd?;wc;O_FkN%RcVr$H3axaN5cw4lZQqgp>o zOT2?)6_N$tN_A3m2`G~bqvfmkKvMm?-DNINeOhP4>)Mi%trxkC61~$Ai;I?1roy#4 zOAk6&$Yv(;c-R?0$og=*o7o zh-_h|%1LuLq4U0+^@?v@n#>vv5H3rWBw7B0E5HVtNS5sqc-Ucii&<=NXWW98q| z;jhSpo85W(v*3k;nMa=YVNSrF?b&2jZL7$uuQ7LcMzWn>3|kbm1nSRS3|#$2_RSKI z-$N>gul^3ECk8Bs`MQw8Y=d?b#~CbV^wu-NBXa}i&o94YZSx-x|Nm7dAvmL!XL_c^ zv-)DHrbc6(`0%RI-Z&gL26%JvA zo#H0zf+O>HY9H_<$xCo#Bmxc%j02csz8(eI?@`3SLqk5C{i-L{Y!%tq4(RxSTY@im zKyM8jv(kS}kvhs>*of{^^E0qf^G`g7;R0;rzTc$gUrBPTBx|}xt~!7nAo_D;@_1{g^-@Ssg7e%MXcCTTdPyHPt;qMSj zu~Re7m9nJH;^3h|uFjEM(6bDp+kZ8o%k;3Jaw^?ETY^Q0a&edB7om7F4|uq{dwg(M za!EYgUrvQV=~uts4ED`8BR5;grWBh5SM#}N@`oY|!b+gXA0ND_Y}|rzSH1gyOnfa* zbQTnPECl1)YRMcHkcV1#{DY z@E20oneu;a_ zmLv3e1TVff%O1H-J@VaOytEi>dO89C^&n~km<57-LVX-sB%kaDBg4+761xm>AJYxg z`RmK}k7^2thZT-ZIB)O9k`lP}Rt&$kU}7exk#XR-zo^1?_O&xHksyH~s9unx+4xM#!3gK-TL35ysRu*=>Mn`6s^P_c0J>Z}EAW z9(s2dib_NQl|FELG~|c{ublJI>a|eom)GIJbg_#$f%>|9_$66SCKSe42ywccof7Ns z#;dqz;{_%zgOEE>o<;1oLhxh*41`uWQqCVq^fHO$Rca9=v9hpHW$Qz7Drmw;a(m4! z62H|?JBxeLwBSa(oR;VfNeRY-srXS8G!OT?2zAj1t$(h`&ws3F1+V0Qwi@6v@JHDj zFUNSwLYdVBFbsw+P7E?;%BRXFg1IP$)`mX&-bUYk z?D=MMRr(Ee5S>{vD9?p!E;>`3Qu7TJ4L{5Z!)^-pTlT(dicd=dRQ z%0*9ikFfwF+GuP-QP#=Cq`oSv5r0mNh9lP4slteL6o~yGCRnT7O9v<>??hFd?M)Y zx(>T`NwKr3H>KN9tRJ}KT#XCL+*PxYLWGO$-Hu_$MDAhZvixaB`_kirom7zQrust+ zBe_Om4fSUl#kxuT1>Q#KQ+=E4v9kxI;k6fzLWqT;^ntCWt%(3jF%GCG)NN=Vk^qOR zt_5*<;!nYJ7?L!yQRbnjVr^q!6>7Yw5^_|eAQ&<`lisb^r5<}~Au*oG%@Zg!@F2O_ zp}nVbzrEJfj;iTRAOlX$jByhFQ=2%F`pkJ&TB=FyR;TwyDSO{j#DH}?%$t`3v1iVk z%tDpOC;|F6GmtIVT)Kux!RzZ{>y=<7AhYN7TM_yrf4_k>3rak7tPhSOFNjv}XK%?P zDPX5Uuj!E7&u>=S;bg1BN`lXMJ?IXkg%VedwrAf%d!Cr%$gmEY_o4oaG2TwvD z4EcA$-$z<$tTjFqH0Z?2%hH))y-;kr-cl}qre%$6>O_XBXB3p&BCo&2i+_rYuJ+xA zfU`k9;-^_dYQNbYQ$Z*@y^)(%7L{ob6t2hJs&*t!l`$qD{#{u^3Y_Y5G!Z{Q_tUPi zZ}i))F>gw1`*AfpRBW6>Qy^Nma`-ZOTHN(X@&U^ztvm}U4YR~=xW)RBJ z8Km5e1tevki823~u@`~o4`XkG!XKtj2e@%3_bAWYKGZ?va`~iv9P2x)UtTGxcnx4- zrY6*77Z`LIP~9tX+bcR>vw5>WfNLi(L>Masb0RG6^xMx1jq61McOekI3(I1AAYmr+ zr<|#zqlu{DdBsHRD#4Fh;E!~2^6Ww$Z(Ge`W%E=vb-2fkqJtbP2~2u9W`2gBp74?@ zS7T`;odjOpjH^jTwHdW zHXD{VfD>oe^m1&|hf^cTzE$FtF0YTxO7H**E7&!5EB13S%c@!{y-y=!!E!yjUlN!I z%1y1p!X-17dX1RG@Y~FkWkrh)aPLjp3!Ee(T}Z||p7D+jeHtDtZ>6fnJ%xq$%5N~+ z!+%S-Z}{?fcwVixJ9^JHbH-tK_CM;E7ySXU3(!!J8V>93>X=UuO8+Qdf^R?4h(-j9{tM2-b--XvE0Rr z=s-rELTj3uO4|`VS}LpcI@Y278|q$9nZ%M?XIy6i!3L91hvh{riUs_>QIHLS@t3>$ z1ndpiq0~8v7@*?1#TH9Xeg$IjUGk2-RqbPJgXc0Zp9Dmgj!u(vnL59*pQ|vcH7>UK zjwUU@D1TGBvjrI4(F{>;N@=tIMnm+*`{pnwQK>>=&<;SF4M9{kWpyeIB; zs@?KSB}=%Lhg0fDX76Q6?ZvK2+GSNkG+5ST%ocN5-g!plVHP~FzSzU9A5+d_=%pLUvDx?pHNMRlJGDdw&PDwTry+la zq(O6GBeqboxvyeQ=R>AU+&bm{d1)YUpd1=+;(d9w!~=HDsBW1w&#=r9n%G4`muv}G zg`8~4rSfveiV!_hh<d-dEiSt;bpPBpxs`y7YCwSz$TNVV+~tWEMnvYEVIM zZIP&}fOs+|IT5s{#tow9e^}2a)O7g+5eK{s>3xN>fknQRcQoQCh|qr?TNr=Y_jFp% zj31zxg26X_Iabi6VPxNL?!K3Pj_d8e>Q`2dJ}MJ*hoL%;+fa~%DbLF){07$ap9W&( zo9>MV#yMY3X|@CBkqDk(MH57(Fi2J(6DqwStPRkZY|WXLKK9J~;s00qdX~_3E2`n; zg854m@x3b(u^jC*H>~F^09S1tK+OHK&H3-QQ2(}J81dG3i-?*0sS|^NUobND#-m4( zFYq3FStPB`@Lhv@tDAOeZ48DQ?wsCQn3*_z;EsAAjx(#H=Eo*DnjO8XhfO2?<34C) zlV%FhoO$uJ2=2SBn9Y*q;q>R;>$_@9;;-+jxiIoNNRaAai(%uXjar^vv;lasQe7_74MbwjRZR0pT|7UAyDsjN$XaMh8c*X ze;bI0tsC%4Vl{(i|EkI?xOIjn(W}aZj!wnzdK)INPcej}PmDC2);r=eE%dAApO48A3GnutcX1ub<9j^ zn8U}DdN1-^F#zZFUesb+ukfV}*GF7pGqG^ii%~_A;oJ4;jraEfG1aTsLNd*il#)VO zAZ>#|#9W9H8_Y*c?i%^1--%?aegLz+>B>TkV*T4f9Qp7sEyRG2^X$d|n%+S~Gf|r7 zGZA!3)(fQGLl5x+X~&x;PsN|!z`4?fli76)6NR*K^(@`&lap*$9xPH-3l8mO`c_7Q zzpOgj+;1NrnH+|iw#kZ3*WB9db_ph58O&Dkk{HfCZRT5b88g{m)lhH_R$$oNyFfoz zuj*X92c%YUnWGhw9erF8I(P|d*Rxb@)`JK?(ejJf>Xgy()q6@_a63$IX3iO1T??Bu ztO3X?Z^X;20xW&hT;PL+o;R_c3;ub~G}VI6rJh|~J0o4&%s}7r$F(z2s7R<#8Rh4H z9XCweD1w;^)T(4u!ONv>XxUklEFELq9uV0EfP8xD=v6VbyGVX!T{ z8!R-uNo71ea1|R8}5ev0zyyz*@t6z7`@G%nfjqvL9|J8a(&bU=K8t19^x_*-& zw_9#vz4YAs{iDyF@alLu$B_ovaf9aRs|?3x#Q^GgNfEF;T_3$dGK=;{ElC_hgnirW zyUyqsx*Xb-fl;z=y9(&zFe2kAE99|fG&RdKlYa{PbtTV2o)*})n|`hnTVLDfU{e-& z?umb1a7?-RE(51Z>HRRNMa?wWQQOXwCRnch!vM<@2Wb%(J&LjEEO#z8q_^)sNy}q9 zaq!nK0Q@dZfg8`a9I{ zi=OCobayD}VL+d1W|`Vv)a$yld`9WnAY~@;rpua7PYpE@f1Y;%d~bq_SDB zWUw&O)l?$?8Iv{3fBx{5dW45U_KcdM6pqAHCw>Hixlb&7JA43j>}61WGcDBBJrP5x za;JvSn`jf$$dnjAuQ82M(T}LEy^gdDJFdLGy}sC~`5f;jz!YB}{6txyOP_%MQtdK_ zep|7m!b4x-w6OoByS@o7hnIUAcwR>#RI+3nE8q^A>jLZwLT>>8c61v(9%3a5zbBoK%miFq6=L6Oa(*dA-o z=v&#oVZ5vniC928z1fvl*uls!kd>ucz!Uo*R*1rktPB!Z%}d8)whJin2%E=jLOrM7 z7a!aaiYF5|{V|3>guY#pDdsRoRX&p8dm9l?P4n8+QSkPrehsF#LdBkO*F^5C={q|$ zt!72B?&pe1VP#GDK|Y+08Qm?4l>=D3i#rgcnYUsC1k0_ex^$N{dUeyt*nqq}tu18E z))Juc11X)?cgYA1+n2nXo8j6RGel!^Z%^^`1~_h$8s(CfK~R9a8Yu=R=fY|ug>2Hr z)ZXr!Sr)BF`AH_>qjJrKGW}PK%x+CHE5Y*tm?4GZn%w@&=EbeH@PRJImK5KdNdx%$ zjm#1u^1DuC(ba$^>xRcaF_jbkO~MkNL+YMt`q!EntonU+w&c`FwD0gq8K;szG1)Zo z4Z^d5qD;AVYl~||+y}Cmzs#k(^!0KTu@! zpP|TUHV>pL0=E|J29kUmCB0*X3eVqG<+1V8cj@)z<;|E|K@jOq1_l?ms%KB(*yn{b z3yhrVcI|He6Hqv?z9)xAN|apA8794XtbMr6gH){Ibtr7g0H`@sbeCS-a*(KOc{NaW zF*bFPQg`tdY(cZm-3X3beab6#X#WLFcE}*y0$S8;ppj<5!mn&VfD4ZKbo4-P&^Y^1 zmwl`tnFtA7xrl|xwou(0GSc&I|54pLG^R!GV~trT`o&lSvf}PmX$LSCJDlFGm^|Oy zS37YYnReX-Y<_mhl~zdFI^1&`b{{TH-p_lnr3REf>-lQ6xls_{iP}EzEs&*GpjX9h z=yu=FHFqjW*}PIbaOctZf_;dBZ{fPhf%XzL?O4;2+|vpuI@jbLh0M0k(6s*9zGdws zIHSj7Rl)JOTT=Wz3F)wHY-!J#1hIs%GEwI1H%5P3g=ZQu`a^A**+uA5Hfo<%cN ztZ?I;x%ekYBCHP8#62OrhwmzAE`t<*_fz@*mm0QLJAk=e$ZMns$-xT$QZ@#x@zqtlqGe z7ei-O(O8YGO3K@GF&J}dK20?mF4aQ^P92Q%a}J9QzlF=)$uKo)ux7@Jzjxhwz-^z~ zVJi}x6bwv;+*|QJ)8vwVwJYy+0Pf8QnSAz1axW4SlzVGZkd5lalrkQd`o4@k1Qj9g zDb2p#{zZ$&4;JHW^&*_c4f%@j=*Pp4*8~$_b2CT5jGf9ofD)mXR9~}PLAn?9WIwdv0+o6fj(d zF-^-rQ7wHWylu6aI3>QOQZhSdqEhTr;y|&*@d^y1a=&@`Pg^?uR7=@JDe|j#C@rmQ z=ZSEp<;3k2XXDp;K-Jyv$$`&CSt`)jG?hjE#;PraHNK#&9_NHU{!kqPXQyp9==OZ3 zTz&`jt>rF30AA?RxR2)-^S!!Og#*w!4;PP7XSz8KlC_X*N<{8hOJL#a0>)?klE%sD zLS4knePgCwnj5jjKOCK6_igRGmtM$GaEIsj8h`IQT~G1@dZ$Ck_#P zluP^SCj^X5aB-7%Sva7OYmMb=^mgyvDv&IW3)XVkPr~s@xL1XdFb(xxeY~X&LS>gr z`x{dohujC&dJ((Ix(xM#275bgj2%N?UQ9yuvApaIOIMg)M@Vv}u{l2|-BmD@6wH2; zI!s8{udGv@KS;bZ=*Snith91CCTTpU7c_>O$mCEq*kc;Czg)JhAACF}Yro^MCf|dr zMqsPx$|3D@OoW}JYq_?=xf(W+kf)z_$fNGK4NVJ-6(+WwXP*u3}Qs!tMEc&sCv7d77!ArI~(+|3xij}D}1$}`NmXBi~ib2pNjj~J0VRxGF!EUY=z=@UfSKCi}?(<*?dkb9z5P%_bi1PiW$ z+oPht^VM&R*OBsBp}sZmyvqK(i%-84VMO|_&N0G=QZ>F@UIO4N_xpj;jO_bAGQ}x5 zY+NJo50&eIn48|xaRVVr0L@_w3R=z9B7qwZq71=#duH;BGQ{vMgBiZ2f&Bx@^Z?Rt&*;OeyuEZ~R8N z#YeWt)NRjJu|ExcPBvevoL-nC9D1yHki3r2Ykt4&)ALe4@~erH&B7q4tn27@mCTs; zk&7d+>%ikotJr%vWcUhV`E~7`t?S=STlu$=h;206_N?%NyoQ$cfmYCZ|32b=Miqqb zwK*N4F9pIo0tO({vq8p@%ftZ$xZjT=ju)fDX8^~*XF`&u6f83R%@Xn}h52!P`b!ip z)d;5LpD7c#3r1e2?K1>#(3=Cwe;Bq#xkFm;F@Q6_a&A>l8>NEkDVs8QT3;_@k#|2r zwu_aACr;BGP__s8s8O6UC>aZ3+(!aFiya#ner#p<>TjQ7M`SD%m;t3&OK`cT+;=g` z-+S;B!dqkDu8Q7{50_-HL-WTSnoa6MH|lg%oF2$*?y&^guKE;1z9Eve`#>B@%|du&81%fZn=+^@Lf$cAvk} zG9GLA(NW{92Fn~&>~zYM`!%QkoY!NGo+Kl2caOznLlZ08ej-1u#IK($J+f+dNT=FA zokPPDUS>hn%#Jq zeCp)0$Z1Hox>OJOxF1{tKufgWr}f>wTNXXS@1zw9Hwyw}y!d$Rwojb1$|G%64Qw%U~?*dy4f7fotP zxoeUn6*D1u?aTo2|Jv}FaCq7zt~K0hFj`+pi*PRpV_5W_V&@2!7Ok=XwHB^>>`` zl}Rnrg+}0^Z|0QYp^d?sY<#0zlkvAU6NiG&yfXs0>Z;x;!Byrw-2rAJC*fl^9)!aW zPPZ#yhPT2`&gv+t>^azrh*RriJ}W7mSd>KPay?~94X<(aJ0k?#Z!f@}87wMUidG}A zc63$N)UmveBF$KHmSvw}Mi6p)`Fsm6h zVM%4%0B!kA)W??De=E5iem$&HOqL<#f8khEUu_fmbUyQ`41)2CGoG{dU~N4gSPqfW zkJtqVXQeg$;Cb5tyl0=TNR)fQa6lp%6^U{{8k^LqIPj`38zg2_siG zCQT{C$jW|TF*y!>S)3;-^(~ zi`K*?(h1>g0egyUJ&J)6{-xthHq?WMMJq7CF4MVle|lQK^D&sxsc7qHDvGM2ct@h} z>vFm^GYLQ!oG|^IaGuaSZq|^R1>?HhW(xg{$>d;mlXWEK^4G z*nMKSnA;WmK{A6spIbG(_?x|2&Wo;`O*ib`!oIE2xW4AL$ED0125ZJSNki1@y(Y6A zc>ASUD|2UqIf={_91D2|)``gbytG^`lY~*Z)|+j`a5#LIiJrNY(57eWf8S06zE@8ct|;I%ui?Z2{{O z{T%u4s&3zRq5bn=Yf(mm+Dx>F38oYuY%buLzIG z*B-ZfKz1kSBE`$6jJ?Vx#KhWGrimfCBc{h%w(k95RI~*JG>J7>MpI^WqUr$o zZv(SZoKzeH1b7y8{{JCLjBT#}LU7TrDP=jSca|($cAv{Y{6+Gb63v3~)s&g@4CI(7 zzL;2q`}s-}|9}WNw={xD`J2dfQ^ll=MVY3yHzozCi%KzMM|!q#+c_W7c5>+ydCN1s z>b}#@A%uaG_Z(Kfn14-t*U2b;jk!1r*sGjGSbd}FmR%Z|Cz=?kyEb$>E~_mh96pmM z7_#1C4E`7r)w!TNt?82(N<9cMu=yA8;imP&7hIM7?sxt~%vFa~`6XdMkR=3_l2%ZV zknUa-kd_AN?k;JS5)hG)?v!rH3zAnlFMSE=mTuS&{Q+0keYSUf_`?Uz_kHKgnVIv> zJ2OW_$U_*=H&MWn2|^?k!yNW744xT+_!dM5QCkoaE$Bp^+@; zVcy|I!OY&%_vl%+0`KscHOL1QM|x(d-a#qA(m-u^UZa}P`jD44pP|eb39#nMJL@)m z^Tg~x5MBu0j6W2mnj;{Imyi~UlPM>L5?AT)XGSqVb(b)uWEhImav8_ly?#d?U?t|# zOH*MRddzLTRMGyKj;UIXrjfbC{Vm(drq86%H%WV|bQX*q;W=;k|_>t?C@H5#~9CFw?{ zzXkN+K{^tuVyd6AGiC9EX1)^}R5i!$QlD3%Tz;nmQZM;*I}LGOUKe%Zyta{{RD9hV zQ%SU3Z~-2!cmULefoSx@1E_k!;46Wc;^0I%h-p>!SFA)#Ok$osLt^;JO)HX3W`qmC zBnS(bP*iC7)_m`oHP*`_&CH|uXrA1N^`vvWwc9=O1J8*Z)633(qZE8@*f-1e*KSeh z<#pvR<7=G*vk}|(O1#nCLZpwqndiwqCPxTH@t#o7H!*gF7Vqn32+L_&Tmj#I1N;5) zPbuN=!^(p9TZiUa00i}$O9(uk`XOX1nJ+M(p`EfSwOt)4g@PK!YRgwv(*x%;yaDz8 zY=hC4Kt*`^>=LazU54jSe>gWgE8Wsc_me}Dvxg$hM8qrH53Hx}`eGT=2B~R6ADW;8 z0LS?Lfu5m#U%z47MB67T9HfQQ9UOHEr>Mm_ z#%MCuSJsH%&0%6S?_^i4XzsK;!lre%eW&!)rCm4OUCvr2cd*`!FFjJa{0_MN?KoyA zbqq%>@3s3uV#reyD2Wz51T#KCI;N(lN7?0ua&hs5E-fq`f zTttuSNZ8@6Qqpgz948T6SzEciD344iL=$q z#QQXox$M32@$Oi;V6wYhVOx|s(Q+gq7Ldacaw88YvvPNNDq6}t@FaYDywf6L*C} zv`R#0jVaW4ntLJId&fCsC+FZ1LG2gtxSSDQWhkvAZrQqp+~tcge}p|^n~)@D_ezJo zIEJv8!@AunnN4|IH(AD+jGQE|mui4j6|823$;-YTNg{1KKyS3?yheALGFiR*eoaoH za%Cz3)A*DNTa)dU={Xi=$YM*o2zU&oE(sDlX#vued<$hBsn!jEpuE=E5HvOv9kTr%uyT_qr!`= zri_unT+;`$sRn|7)}`N)pdi_blp5Tps=??q#-z%n35l&EWPp%@9;BEI8lMv@(KjBa zUoJ)RYAFcY(Uov<+w+IWw(YL~bm1Q@h-K%=UF8l}lGv@(yM517M`b1I+5I%^Jv8=( z1QKFdv!tkQz9z|xbkzf8s&JoK`y}l5ed=;t!`~`5t6Qe3>+c_Mym(Blo*(R!frcKW zIHBg<*Dkhim|t8w?$9Aga11NP;}PCm%!6d?QFScP&52&vM;3$Ur2d^uN% z%ek5%EntHR6Ffw;llMOd5_ocbCxKEU-XcZcHD)G0IU`GG8rRTVbUE2RF4%hRZY|hP zDk+WbzyOufOj6T*mJD=n3I#;+8{E}~M1qDGb%&Q2JXRiKq)l}~#MC>E6V8dhl9-n7 z)Stl{!{LnDR&xue43E9Ayd$epZi|(Uy9fp~WcS(q{n9(ns;dmxaW@PEThweqry6xh z`#jw&t!8E|Lu`j1`|q9nStRv#=#4*k%)Gc{y=qUCOY2p=v|dAM0VR(HE%2D3&D$&q zfF?HdS!#=X^-Q-FrL@H}QYei{m#ph8Lg|{3Uo&c-dD z$*|0nGzZ1(9R3V%O4I(X@Z^9!X6XYznrp_KW}e!00;{7gnQP9e1%0Vwd~CgSfC} zo4ob8=hb6Yq{B&JcKLVTC(f4rAVvf^r03-`SK75kWIAb5UJ?{BCt*a22AzUTgV%TV z=fx6wvilKO`{FxENbaY@#Vi$l=Q?;lT0}yE#22cbKk}6LmRrSY}hd zj^)hxG|-3lyYh6Hw9LuS*s~7!OFznZ$f1->|DKJZH|RTx?#L*=xldxSHx!px9a6XR z)({f3j3dl$|9rD;zNxpe56MR)+cK~IYa?S*0mO4>Qs0RK#GYGxI|?{ zz6jBEW}jA1U$9%YjXfcWWlAHJ-pR(XDf!M7vyo(`{PisD9toWJHYy@5nAlMZ%p<2| zNDE1yi}$)smzPg??~Sfb$y5Yx?j*8RbW-}*zKG-;tn1uQACUJ;+zgasv93eChLYVp z*GBb`C?!=jQ8C-OC~Dd{G{CXsy*xz7&1VBagY6S@aRpTX78sp!fDQ6c-Q`hlm^WC> z4wE+!)Xp6H;#k+2KSe#AX*#aUcFx5LAVBXa+`+jcZ%#3@)+`sslK=5?*5a441+BZ~ zf0$>!l}JqYRpc}_kgR8EE9)?``&`a3fKx#)jY3h$8HRGl2CHr!KMp3p#^WJdJ0`n% zBz5*O`Hg6Y*Bn*!3qRD8QdX?!_OU0@Wdga1J9@U@9Rli-)3jiy_i7&Qc>B1;q1yW$ zy05w%hfSNjPfku}AAaI1t3Ux(^On+CZg!PbOj;wrwf*6ge`_SS0kgIwpfbQ;I&?|p zwaS{)`&0Q7eRT2+555woC zFWJ%0mBU^|b2C}D#VrjC;5&i>74Ytuxo((Rf5kKB>LJwhT|)NTIDE7y83V>6Dt7yR zP}w5qt{1netZP5#pW>uS)2QY6Gjq}>e@aQbwTQexz027STt(#1U*aBQ&NpTqd3$k= zpL_NA8__Lq5m*vk`0VbJ;V>7$vHUeZ`u#kLvCn3C-iLHSkdi01*JQS2I|s1WdNpYun$>I8E||)^>&ZJgl)uf(sNao99*Sc@nwXXsav(^12JuE$pTN~Z zdCr_2{DfU!F{S^QC<+Wgd5L3RW=q4M^vhpQE``F(^zzr`hnG8gD-r(k*Li$@|J8K7 zz5t=iJ;>#t=*xNa#%q_-Q@xcKgkh1RIGC@gxk@_wB{Id+E#tlg(TtS{LF=_arSmMY zj9xjaKp+U3%1e3k>iY&i#WG8&^Et!;m2hq)nyL52;DOTs19y8G$SFGk8Tn+MOT2G( z|8lpf;Vbcil#Y;(;#9E`<3dTy^7u${qnenzRB}2|OO)V;1SkczCYdju6bQJ=tj53O z8`6XpILF$}0k@z1+38y_;SJe)h(^k&SHZ&P+px%Zupen5mA}h_X&ccaSwtc-2Z7=G zmE^ThVDq6T99!S>p>>w{ES{KtH8TC@!)L4@Zip-hEHLx=CH;u+P66f!q)bd|nKH>Z zn)Qr3Y^T4Acro56^sn-Nc9Y%h8G?HaPOe3$0x;8=RK7A{jh7nOv=5spv*FM=#>Ba{ z*EH6yT`m#*r=%F521678HGZiI4`8`Dhw?Y1#AC_|SRFl9!1q4iK{SFH_*V`Ny46mu z*hDEXNZq&s(4ssr!I}6^S(r_^4nKuGG!$DN#*c|TCpH}U2n?8iYa6;Ew^WemSmWS2 zEbm=OCiqJ0ecB{%C+4r_?7sNZ)$Uw_QS|Z|faK>w;i@yVzMN3|rGcxXb=QUi1fDo} zYTN`&#sV`B^j}!upG=AN@{euz1kPrr_H^&~Xy5T6ZgXE{=YIqI@5j$D$>W#tx3k~6 z$2T&dH!z@^jx5ltUi?wJtcceKj`x8g{t1uY_g@W^^k{wp2LAZ5(04(HcNWWGI&`|- zkQeE;-nL%husU)=@80zA9WXwwS=eK^{$hC5hgC+z1**ce;6<)_ZbL%&AdC!5cTF~Tg{UJ5n;|OkF&-8)jp;2iaA2M^7&IdkG1Rx0+fRZ zI1+dDCpBl3ntNkm!wFoDVD$7aUM}_c2AFbgJ z*{vvk0@Fpqoh;WLaCg0EiWxsxKbwxd4n=7I>T}E>H3&^voLa1jEH~3}mZJ%MCw~`nm%EHYfZNbs z_iWN=ZNo_W;GntY%o8q9yRDsUaWbiCEx5gln2I$cB1l?uYHsAojTI7$)ipX(^SC$R z{e>JUWP3bgvl3Eq+eNa(%a3TRp=~|lW)nx1U2glc;z$eL`38o?E=JEsX0A)RDytkx z6PVs3V8eXlORLu;ZbeZqld7QpIE%LrFBL|vMT|BXu zr}_L__C-ObF%w5$mChD?YiFw57kkcFAc@@C`&u6M({~qJMGfOoyH%9)+-I7jzYwI& zE8I*hL^IxaIki_)?QwJS)qI|JjK(aLSEqBqsvbaa-)8>IRLiS^2(tA;o9(?v9h%le_8t@$IrmM9ME)wpIqk30LeJeDp)JoT!} z&0euXM~t6^4iXh%L~Tu&vtbg>R_u!uE(OvK4Q-vyHl<+6RoC94nBI~#uxr=gr$gl}|3atBx-ae{*uv~&KzOXr4<+&TCc+LYnDe9p7yr^@V4UE}V zYK(nTG1P0`WfX1f+u-r%#hf9-qgf5gE_qWBuCbkK`*d|jtIHZ)ZUUrs6wKN3?!<&` zLZ+xB+43$VVfajsSvy7}r!+0@%~V?8Z&nQ9-^WWkS)@NbH9TD<-Je9}kDPzNrTs!u z{YPHO5&K78>D?>gK)674vSL~C!!C&z_jwscX(Yp2#w6?gU+ml49(KmQ35863)y1zA z@k2Y9!@)E>*pK%O2qM2TEPOB*98pt#JZo@}a$T5v>{*gca^csxzFdW*%}~_v$TE5D zLR8N28CClw`8r3EkXVOtNWV|0@BpzMSvW+$$ga6BD>*=;qjSkcSqJo#J@JLU?}wux zHx4Pmz7ZTY3ns}R`tW_G6^_mm%fsZzs&V`36PrEDiZGQyL-tzSod;Q(@%DsmH75~z zj{c|WQ1?gCirh_BqsBY0j@6H+o(+wavY#TVs-7WkC+`1pv^XRoF4S%u0@c9DXN$h; z`_=5n{oEd_*GTsT;v*KkrdSo=N1ScE-$x>!lfe#|W{Hb>G%Vz3-MgU$vWHl~`od{8 z!IjQ91E+QY-kXx2Mljgr7rZ}_MN+>-S}@(iX4>0mPgeEz<6$=(pNT|1#PWuNn(xF% z)QmBeVA{kZl$Z@0egJZ9jmOX5KGYbNclz>;`9?H~q^Z(Sc?%2gxVop(F2|lnby%W! z;718fBPUu{2Q4<44FC1^8f|2+ALU{m7q&zVweADR>ZSDLbAx`L>`a@_4P*==^7wlA2u&{r6}2^ zEMCgja$d|X8llQLG;vUzXt-_K;w_{P(pUsBx?U8V?a^I_CtSQyKd3+e;lU`R0$Xc;8J9HKXs)-h~-kU z0zvQXrs>b6#1_zfcGY)kinswzZx*%oA?CR*a zjuq`!tTXj8`V*s*&pN(u(YPJ~ajk|bPU12_*zHcG9F}g4U)Mj%=hG;- z=f~NXa0v0F@{CORpsHZE)#?^Z2*fJw4s^MdAJIjxo4yp-wQqF#ax!e(U(3mvEcKzG-is< zb1Z6o!E8Eutm8e)pYA{5Nc|gd1x>~B`JND*ZC;Ezhzm2) zDgkOcu{SMpa3!7A_8*5+3hDSAQl&F>yLz{>^-_xEV>xG9d_hSt{cc-Ux1VIVF2gWER_p$o{xtK?z^?_B?F*|ELgbS}bWGkhzl zwd`b0cR&Q$gM)?EB2$wEgOx^r^bE4iH@}&&6MA41?xD}Bkz=;(D8%XbD{f9kDET7I zOQ{H@zu&%r`u%(@JeEHKIi%Ig9;%Q=$!G`@$T?GU4)jttEvRa4^x`>6a~P16XSk5q zW+^!c#k+VU4Sx`KwLH^H^LOm)6RA^VNjX5}GCOXrwnK@dU{%&(V9&j6+toy2GWof8 z0T(VmVy8)n4|D!Dwa&SgphkSS>l!UXTE zo)yb|*oJ%IWrlLig4D$Tj>S*mDJ`;LPQ$#-0T63ri>PNQ_l9S3W4 zcmiPO$s*5K*iz0s^?o-nj9)@$2#FEV$gB{;Zk{2o_aL&PsdlS2RR5=Img-mbj~p%tO3$l z`YtXG$S4wBzVRjg-zQWGILd=Pk=){@sNo)f;Npg$Z8DeN_!t5cz;3=xc5)?$hMy<% zvYY=%=Ai(wJ%MkwI`&o2PH`Et(sI@Afhcb!x@`PX-VXt%RBcpHW&oKr;og*Pn8gxa z3dW%4Ko4PC7x^fg5LuK*ifc>$DNt%Zi`AtIEP zCIs*VxDE985dYRQu?|;x4K{kT-Bhe*a-uKjPT)1V0-5hg9!ZPhs0n$1XOtqFCZ<%#X(3m zugE%2n7#aoX<>lTT5?#M)Q0^mEc;o1Nlq0nyoD_&@P=IpERBi^BRBvH6Z!tuX3->I z#f9}Z%=TNf2~ZGP&asVPr{hR}C4Nvtu#vi*ToXz{+*=qKmwRG$CaLSEfT%8&Qj56{i!I>Yt z5WDx#F^D-xd8gL1Kvxb(`q0tA*i3{ctRN(Sv`f+)kaltNN#CB0zq4uudeeyRp98i1kyj8x->321UT{f(iZ?_Oe#X+>+AzXS??*~_|&JfXv z0|NvHDlQ&*?0)qb#DCYiuKYI+17$7dFdhg}d+=P)T z8LX1DATD?kf}Xp=o~gD$BAB9BYAxBHXOUo@dky;>O2YR91;^7$n|p*2`?uy_e68rv zI#(L9pc>tsk^R^}5r>KGcMUwxiez58ZxdH(mY=4+iyN$&{?@}2qEdo*xpdllFsGH= z+3kAZ)Sa0bvF))%Zv!+Otvu&vB+Tv_&VXtE$ywz9ZK5V3UWIQ3G6PKzoi;Tg}r@kYbyM4D4tEfsb2RNEr^8>1V(C0B;PXy;2IfE=VuDqpSwn%KXu0^vg!I8rwSj+p1L zM&Znl=zu&vsPJzrnE7_%mTkxKeotLsbg!DrvC8>A{F$D{V~X&E5Me$FD{-RCd6m41 zf2(G{J+OhDm+5BW-+UPsYB%n?3~YZ}=MtwcCaElgq#n3VIOSHy?cY+Ei<+*rfn0eC zPnG`EdEa$vv@Ph>c=^?fhys4{I=dK_2WwcX8}k}=qk7Ay{zN`rD9 z%+V8_-WDu2M!9?w2QI8+4#_z>y?{i`mCd*Q*KGd(3k_o5Hh`dUai+xF**`%8k$(gl zSm|&$xB=As-3a_V;NK}rX^o`h%LbELFHKj%m>tb_rlKs}J)C=-A6AP?+=5--=9 zrY|uEsieucBdCyE`YDhmeT63eN1F7q`Vv;V_~6}uP6zE(j+SOQ_z{GyZ{+M^ zCexYN2;2H_Fy5;O)_Y}oplAb}>*3}x<>P?k1EK@ZgrlJCFLHo!HzEA3hk*0cJ<{nr z(BI&`&Ma~?JO7mCUh}y{e!a+?!cGy^eQZs4$oV8xFe)ZKPKpOW!0QHx)Lt7h_fC|i zz@L79Y)T+4tVPXzPoX}4C52VI6wCke@e9{;Uk1Ac#ITY~f&(!c9aKngQVWIx0L!{O z!fpWy8bkg)A~Za}?@lqI5;(fGDDxU;VGVx)a7u-f5jPPo^%55rC6L2AZ+h9Dz7PD< z_Vn_E_!q41h(E#NE5V0;eYQj8Xk24rOIm>yVEbXOPGYE6ad9-BqEv!av+}9NC-3x{F^TdQ+w+(X4h~A*vf*H4 zUoo&6*v7Gap9Eu1v5LEJ$m+xOTuH@=C&s-GIckyVW!5SjY^=-YQ7PTKI#;!AzPxrX z+)!91X)b#)vZv+Zceo6FQ9-k5>M^+?sR-O}kbmBLM8@a_398#hBE&JdEafKq>8SdC z!9m)^1qV;4fRf%Xb+6A$j2Wb-Q5G854~FMO6#1Et-q^`Hv7uOJNOPEm2$xi4o6`;n zjjU4K$c(bui1gRS9}S5oI$C<`Y~WVIVe3^1Y=@Uk^_tSG7UH#($@>18}XZ4Z`3@S)0LS#FDvWjvMh z0;4Z)HTP!G$M1PcrC+uw`omfWg}~m|4U;piT3b_u65C$S4jg-~pk}!)5oFQa&hsv? zmSGoj=Ow4zg9X}5Gg*0HC+1R#SJobYvOvM9Cg#0a(I}K!`A3N(#Z_czy34%2?a{xx zBccD#hoN>rQ(O3W|BF!6RDZYo5Yk%r6h|dp%!UUPXw9w){W;qcQ#Rttu9#GXHlYpW za}J|K7Wx)TvLoUpichDFI}hDPiESONbQk><(%MMI^`mPsa=p*^{^)cwXH0oeiQ}Vi zS^Smx1(u}wqdu8iO6>9i1!cLI59u7?O7M{(A7%>%YsfLtjZwQLp>y&mP-TMW9&eU9 zpM4f9lI2%C(_HZl$}s@Sm2a6T5{rqWn|dXO4aEWli#K{Zvs^|o^7wh=uX^9&u4k(> zh>~^0JUJqlK*p6Dp3%zf$JgwcWHnz)QcEt1?T*@V$*EL}nIjo!ADdy}gD#Err>tTXGS-8amUcXwp%CRmMC-Q5_U_3{i=ixTty)fAVv< zttvj=Rhz=Vxc|uWU^;0_u3tUzNZ%VM;AT}p(rQ2IH55pYe;NN#SXV0QeQM18(U~&< zC4)e3`t}YN3D)G}OPi;?KJrJ$-&xVBjH?l>Xij``-Y_&f<2OBDt^0~G#=>2I%ds%2 z;dl|3Gt7ru2`F~m0+Ps~ti2W#hT=UvAnP$C4X8xQrhy`8# zP21f)4Qs3G^v|>lqr(H8SL1Y`;+Z5utnGUjrhwQ4gGPh+N-E~$B0KZPzRPVB z`VHT>Nsmv}q%D=HrTpOgnx1Pu;~S*VIh~zQ|^NK5S`NOaYTaXu95f)>B4j zgGk(*KFw@FCVk{W(5zHZ40ODy{-}i3sB|tmw3gep(gC zzEH1>lDo&+AZ@Ibkg^GlT6&;UQeDi&FOVj+u7#>?P-hIQL3HQ#xYF}aQQeLMEF^!H zS_D^??4Z}$hVVPJnTuVlLHK7>74np1#cG_B zBZ{b=U0qV5i^6SF5a)jyYEuC6-MO7PbR76*$wu;> zE#^)PQRCLUmUPivI$av5u^DG6gH|)(uj`(htpt~54dZM}E**6sY)rGsoG8-c1E($( z1ytb80Zj@5GFjHGUOr^~H!P{+(e#=!bPe~>Q)jaXD$c8)3;g?iqfwHr{dM2-H|?$f ztnHH@)x*r-9SXelkAmi*nM=n3tP)1+NwnG?d`{1tIKkzQG%e6>`c{)Ka-eQeU7QcnZ%fEN{^%kJTMM!?^5}>J9!YN@;D2Ez6I9tJQNE zb0PA_tnCyK39Kr;l3udZ*+@}>Ek-oh)ubaA9;g4Pdd5!sQS}@i(v;n*?u3amw`O18 zF1c-o)^DO9&E`0!;Yu@Wt3I@5ve+TPHoUxX(&>sRbkg#nbeBP`9#kPNk^QJros1-GQ{I3vzF=AhO>_(#a31vxCWgSnUmc7*_?tU_g+w|c~}G) zmwa;Id@seBmcv<*)%Z0gQ+hBv3T(*K>NP;Z^IYOvCdDf%u#<84c*7W>A%SLjhgdHD zh&YSV#{?$L{u1|kTUjxXyLCs0*9dhyi+cHHFTM8MTe9_(OFeq~OKiNMRjh1Z`K2d(XG8`oWLXP~Mdk91^o&zWm)XS$Bli&i zH$3zta_iB@Bp}6Trm{T8YH$7J>WCZFEv%4X&$5QY2?8;;l_VQXKBZXqxkxYs3l9pc zA>;O5^I*(JOWQT1c;KAqL2aOyA}x;LcP#pfbO(~4A#>i_^%|RhE+Fzt&=h5fuLYWu zq0`i*3#EW{p*td0u_*J!sAEg_S@lEhY!AJ#db3qL>wU9RPw$?>y;NBq|2^App--2E z7?-6ns*aNY=k{V@68{SnXiNO_AB5n`rk`?_a^)<&e<)Mp*MT1_f61Q*>GxVAvQ(DmBvfOv+Me*<^D|1JWjO?4ILGZbp=RBiKvNfiQAxz(=Hris;g^_ zIt>a0C2T5gSZSgulgA|0PXI+gy1y#sM_QN*6GkR!bLF<*vQ-psPZ*dWvq4X0UNr|m z)~&68O9T{}#U-SlO*HN^jqY`?J5-keO@w&RbL8k%Rxst(Eukzp(w}%RNSe2S?a@bWWuCL!k$)OK?oR=?Syw{PN?ywh%OhB)g zqd5>oua;KXsO9X2HLFio=^G}0^fiuihAaF0w7|EtZ{P-6&M3?cUu z)`Jo30$B{>7H)40+0q+v*8$=-dq-s!2OnOr8{*zK{-q=06-HH87<9=y5K`D+fg*Ic zyznlJrRJ%Oo?%&A6p`KTzOldq$32WAkYiBUIe>ps&#jjBD}v8!d7ORlma|z1tVHZ0 zuXR#jUe@AGe=v5E;SJt!wh@!0x3rGKpd0nPqd0Kt>x*qmxT@lSc~S^;7_Rjm+drh^ z()r#IAq+`p!FmpRyHy6ouQbktIG9}B34|8QWjT)|Qv$)qMVFY`hg_PtkDXBKZ1?vI5fy3!U?qGn6{_LGXfq(>^ z?95BBef02tIE&ktMCE}{3T#oTrjz;`7&PMO-!HY$p;8gg_rO>+{wS);r|6%i?WFz? zX~u3aOp2{KkH-=yLuU}>!y7Lgtps)$YFV2SWLlr1g4TT2?v}EI^=*deITuB82@NySG;;MYG9! zNxV>Z`Y5LNda*>o^Brt#pQfrk&VCMyfhn@W_81TR5|$2+997FLJc%Pp$dMP+@MoEn zi-?w$=vcxxQNStLd%`5&#n`qpF;f*>l(ArTV~^+YWZBlEWoF08PAK|@y^4zhB{TO3 zxpeE8XP~-7^y~AR+ERyvE{x!krIE4=qI7W^&`rErPdHXi*j}^ZO?8PeNmM= zqWP40YPJG3_7OhbCux6tl^K3rGXPgJLBN%-H)k{Os*F#=Q&`7kwl#{Vs%6u`H!B16R`08@yz^LcdA=$`9GAm2{#hS#4&4h>@~3r? z0ds>N{EBk_TIUKloBX$9EpQ6-CLS8QuDI~qF)IPHgJs6%kuqFCG{^5-)fKbm2(eI7 z+gQDSl)xXrET~|gFrfL6kK^X(j#0ML-;i?zjnee#mYXhKIkn6OZOU6D%=0}UqJ&&W zfA0fwnEjVa8L$2E=iUg0`6{zE(eI~9( zd&4nUN+L7*9&v`M)TH^`pS24<{bue_F}b8g(cz?lnC9c&lgJM`G+_3oPY5L^wI>sL zF(0ijstivo&!-wx)KvBv*jcXa1V%209?|Vg^9M2>_J1DPDR%2!aIUufYg&M~^fC)b zc_*CxLwl-aO=!&Z%c8IUJ|yH`(DFPgr}DfCaX*ki$6k#G0}l2{p5TSIPg3Yk63~@! zSDdy>kPyWF=PlZuHfHMD_3bVp|9AZWtK#&XSsm}ecpeD;r0DAgg`qQPfo4A2cr}I# zZrhM1b|oKyj9yR9OpMaBsxJ2Zg1=@_QQs0d%9#=FM!Mp*n7uf=rlYmVusAn1pe4)L zuamQ3yX-H$_b@k3Cr;Pn`D&64?k`r5<(2bk!XPIB7Y9HL^7~_#P6!p${qEtD6co89 zmzpw}aHJhGO zdJyk9A>O(0)1k-!t8@Xad_(fY7CHiTx39)*br~@e(+_GpyyYYEo09nkpGll)93{6ou#7B8A)99d}ZDV4PE=NH|iB zGSfb&4sM^N>ob>PHWL`muJQaMqFO1za*_8fPWmJK5*BO+h~*L2N4-KdVrj&q#RAf1 zZhk{W4t|5BHhhH6pNIY&s|kzecLwL6bCdNylQZm1*$qHhxsVzWuVFq`W>&U~vO87> z!*-r_1*S6%Qv08&X+Hal za3rx?rtIM_&JiK&cPGs}1BrKivnSSYyW#Omi77t$)K2pAs!Jg`WxaAlCOWvV(pr(?$b=E_MNGs7-Slm z^^RTP8IPTKR$D6UN60s6St-7>*PZ_ap`&+XyL^+QrXif&<2Xpz&CkZiq-u`g^r8Uk z*G0h>=D4pV>8!(oZ7yAOJ!Mtvpq6|XTMzL4s)cPwPiR@_)v@$i zaxZdsyb5SiOp>a%*k(|-$+F2@54tn{S)1>b+J}|&s?V)$VS`#tvC;sUUcn?T7B*M; z6hKzjX#Y`@7AvTDeFbgYbP5jF}+{G+16 zl|{K;{-JQFVSPmv8)Mbw9N=VBf zumAKVnX@;I?w1ZuXQ?C`MYUXrz9$bPw>B9raEGL47SbmJxx+H285Xs)frX{qS z+Zz$;Iq&KVkFwiSseK-abV!;*fsFBwCPo9*7FUKS$Qi01f(G|1-7F95;+63Ge8R+H zxczn^?{JtJuq0H1iI(*`s3TYJ8#sVkK$G#@+>2oQF>>xM;2+`MOQrlpDK zUymRrn!o9bF}Spy&IHVdzTq5zzr6+|5Nlb|^z?)=rwN4e%O42@({LdD_XGm(vr%ZN z^!q0}-+s}TtWw3BS0!>{(g*9T4i&EG!KDDMDAf|*@VV4aT2gvpCeD4bIM9#jbYoVg zAIgO@UI#F@K@abeHpxsk;BeUeyaP}h*ZdNr=&6~UGlt2xy=C=czX~{RCjKd6|EHZE zpRp5)Qb>;6liUl#>*klrVQ423DjTXFil#VV+TFb*goLS~?NY%6C98iBZJ}Kur`EKI9 zuixoXC=CJ^fh=L~s8HX(2$#juJ>Yz;e@Zo9PngBcVi%obO!J!}kN`009O8{xQ}Thr zGrLbhEo|Qtge+Jz8=mvuCI})`(^EIJlRoKEGu|e{laosS(%+*1&Q?;E?E@|Vr*KZY-&+b`cBAoE{6dS+ENl?=>8hz9G4Bf98rA3R8a; zqt>g|B@Tog=yEI<1+7{1lSMAroF(0RR8_*0Sx$4lPdZX+XBAuEp~HK5ZOEA_pt zIdqthw>$iguO8^nQ70V40-1qA+}X?^F~x0}BNxQU)oU)*$ ze}Ze%q!Eh%%ZR3K9XU-t>e_C#31EsFM)kbfmTaxEyVZU@30#FXf>;r>W~jfG&wHn4 z!#@YaXpWuZJzRi`=-*s-cWHV-XJWUFPIty!c*nI^NKu@^Gv=Ir zz$@*j4=$PffhyV%L(4Mk?mrV+TBWtxEN*n3>;zi9tcz%2#^#DLUaz|ggO{$~j0NUw zY}4C1BHP6qm(A-NA`O}vB?vb@Zy)|CL+!^l*n#1&w9>;4HWX{s??W&&xol5oLQHSa zrfPc(f*`R!E-gvVx{Th%(I7!9S0Q4cH~GOI$}<}0U-=OCeJ}SHrvc^uqc3q6ZW+Ws z9DZ>tPT-X6g!JXnwL&BG-EOLLw0(B<&@c|BA8*Ynf9^GD zvH|;s2No=o`pe|kb@ixxHkR_fYkU3{0Q3O{k#haF7)C#6G0%M`ZXHG8@@nz2r#4rX zMM1+qP7%Gc3Cqa!?$xG53<08;>Gck;x7S2B487CBq44R zKAG``5{)4@a1@4(IoK+r)0Z;RM#XRLReI{H)iibNJz?K7h0jdx%;pqht}}X6llcq; z-@%B5$dbkdE(*L*b3Q$f>c%Gqgt@GK47Eu;VIaSj(f->s6%BzJeAnS{dgJN+!d zT}e(D7j!nJZ-hNN&vDN{8dwBE7tEKff z|GfIIQ^8gEBAUa$D(Lrn;EC7d(KimjF!nJitv;{r`WXxD6%bOrNP8D@E9Kv)_Gka7 z_H(3sul8ea7%qeHJE-UJBWoy#{5Qpap_dOF%zJ^Wf7(=)&{LG}BJ6z8E8w&G-XDMUGx@qhDV==G?-c$7+fV<% zE$O{0>hY6A5Cik4^zR9N2gI5HVFO=1Ls9c_0x7^k0uam*@tvUihByhJUgGiBo4an` zs68MlyV^<`J5Cg(8-{v=Rtgl1_{GIY9%?WzhSPCb`WK)!4iRYNImC#1@A-vOgr5c= z{O0sAZ&_^#fKgiDuW2&@@aX%D9eyUI{{H~j4>h}P1@kF?{s;X-M$K7va`4W7)OWO{ zzgnIqfPFSMu$1pbsaqY~L!BeN453~sI-8z+jV%KjisFXW1pt+tA(KAyKlT{%X#qP7 z`E)pqSKFs&2d3j+=Z0leuX-|l|K)MwvzQYgyIGiOG<7&W*cmvHhrdG{v#2B5`FMwG z@m#V=8k((v6j~bJ=qwAh$-iKsZZ#|^_WfLK`v)*UryNEW=N`sycZ=q>R(I`wW5#1Q z87g6^yE?0E#;o$St&Q2BiG>vvWrHi9H7vg~Q4d>d0PdLDVV>3ViyZtn&C^ZOmoM2r znrnP<1sGVl9rvJPTx@^jdjEH3K|sow9`PBj-Vm{$fPT`_AUch^ID%i1!w1YWKtn*n z(5`8(3-yBDK)ySDwF!W6JtF2pcMyR!UWT=WXV?U9?hVKohjA6XKf~vIzCBW)>{;FS zxhK7g6%sM92jt_b6T^ZFa|@bmjNJf?*A1&rj4`*jRHYu1#s@Gww~onD!j}n5?H{Y` zXYF6V{(S8}zzAMRYpjB8Ws2?g73Ys#EpR96R$2dsTZUX9e>2N{sdwe4@m2l)+YHch z+X@`yuG8shaLPpeh4M##juc07!*5w&&-Ul=kuSG$e0za9xrQP(NCwg+al^loP%9}X z=E;T+L3dj9cF$IthU?WoMx~h6~4=gayd`^`yp|XI0{oD&q#?`1Btav0- zUBZlO*BAe+Q1Zc-aMIo`V{+Dpq21h;II)KJ`!T(B-KMp}>QngOEy>QQY1na(G@eo= z6oZTg&F`>xy!vA-tIRLLezSdLx<8gr`E|4`bcRJ;;zt_+Q387!DBD^#OEB-rpasTn>(UDVUQ7-W)*M9i z@0uLD#Jwy9Px!JpPK)u1i3RP14?5BjXo_Q?7~jV8*J6C@KPblEBl%T~cL(#eyO#gH z7=K-3_~o07FHSVIz0f$TmuS;@fS_!|ySlBg8?TEuVt zl@(B1vCjDlLCiIhyO!zyz|Vn~2~qTRT=*5wT3T8+BAb^iuybR@QP_+^s6Sl%^{8}GovD3HIqUC~V4aDF7f6G0CQF3Q6g#|TLI%c&&IVj-zCzcrGabJGE`TUoY1}(g zI{EVkAVNSkl@Qul80XjHG(m+oVw#ifXaOlY(vq*MGzc_F~Fr+cxx_q_=~mw$NW)M#M_uB+G2N8>R3?v zo*6#5SojcF%N8ZD7M5y&@Cb|6_UbRiN`+Bl1fs$SbnCKlNIvKvEtQc{D8PN>oV>RB zcL9k|P(UJ0va^cr^!=Y%2m8z+d4Y!t{amA_z-}B)@(}k_%&4=VZV95% zj)|z;IrA^bJi@E8dSqemL!)F1vS6NQd%=FF!r~)LK}`t48d{O86EwEh39@hROTg)`Bal=awFe!vqSJ}<9NA0@H;6{cYa7p#6~Mri|WyNzCBSJ2S#B7 zdqe2f-_FBL7roOsNJ?hCW@k7V=XYElPE4+2s|&l#HDT4qjsm0;ZnX; zNX-{21B#<#Cv>CRz%fdAbf$br7m7Kd9*#aC-ltO$+Fv>hgbq&`zD0U>o$*GNL`e6>Wkh+hT@ zzqB1&bM)B*6|ZyfIXmN|dx&rDP}`yDipLz|_KbEXT6JH(wTKy;!aqLw!%zPMx|q@3*@A0R>w+_~I>#9`i({TsjZu7SLz4$7 z+%=n@Pxi-ZS5?qxw1$b!UIoRsF{BMf2BM^WYM`&4>bn@I@R4V>L)rQ_!xY{J#mjra zUVnKSrIX%iVbJj!n2#D_3;SY!Q01<-X2{aBE_hA}a>rBX<;t3=+QTb4hbFbw-(K2I ze)GpYOt5kpph6xN)$YAO%L-;*(b>xt{OZqrq?us%M^&$R%pgKw+0{$iQ6476Q?BOK zFIbcpr#cR&Wzeak!`>*=jexUi0OO&dEVy2Vj3}%$DQpgm|5_s5j*Nc^<9rQ|+?h zj9D41`Yl#Kd?0H+XwTH^r*mDsc+dkuZV6VOBpw}lq8oMGy11)X6VXSpo=0Tp6&;6) zEjRe&&JJ=57XNj8s{^?a$?7s8xR+Ce8A_RYpg1rBGH`syH~56(b81b$e*9JYyUQ`73h_idRBc&Cg>{H}moj220VSZshxNwI`9>=x<<;^<#>K zQKZ{YPtRnO=hhfHX-cCOMe%$Cd1#d2K!n+eaj&v?$IOzID9d9jRK3VqKPK??>o!T3 z&JFin>lQUttGjfuf{HmRbCo~-kVCM@)h@SO<-)HB_VwCADKLRAxCyS^!WP^pss*Bh zXOrB~3K+Rp!+ku>>WNaRJ!wLI#q~)2xQt9~FZy(e6Em6mRBQ&fF^iWZYvau`+g^nX zwa=+3ifYAMcF-^W&sZ4?#hTIelyY=q zVIAEhxF>3bjsm#E4tMnSt*~j{fGkU%GyxvhLF5gjwUBQ|&&acC8XUQtLK^U_JDqh~Pg+*qiMys>jG0XnfSB zse}^`GxTlYkXo|dOo}qHN8dHf$-d!6W*56y{^v{f4vQnJfvPc1?@u;v{fyJ{*Sn{+ z);+d;CwHxCPAbuh7$fQ&YN5Aft&aCuJ!T=0-35dZqbSvPOSXeD+To#5?YRzuj$eDo zw2Za%hY4iKb}6yDC$7(=#a?OcpVvMU;;AkkP-0xy8b9()bKL`wU#hsF)I0s~wBA6; z#tOj|S)xqqXP1p5Nb(erN8@iU+(kz*7s0SN-TTPRU_`)>3Er< z?&1Y&wX#jL8L-uXAq($&Dp~kWB=$MC)ZElggK3DR^hY)_J{mkHg2fuuIJ+f z2@Ycr{;^z2a@%?>T$lb_6nt8qi^kP>Df75H$o*jjTTg63e)8j85w=-*+!4NQIRG0( z($?5Chm6RJ0TF3JZ2mrEWsHwF+Ln|Fk_~5G@|}?{g+7sua&Qly@gpDDtG`3GDrRDN zD=3LfuHb$4W!g%{fc3)!k_}U_dHpM^uR!dwyQSX>V|-gDcwz8eL|J-$rh4piRGU0> zgv>%Fmq83~J-L13k8$Z-6ECj|w5_i0(LuPA6tunzjGu0EWuQ?ESC*`p;vl3e&{C#q zOS@WTLUW(kU!Rpwlzb<+Lo|d40e5T0>u~V4(}xe2x^S}3@uPhlQm$dt z+T%eu6n;m^tZ3aG)Jk88c>7-IHQh9SIB3$VuYY$Py#wWYpo8bswrI)kL>N@a)*}jo ztTwoyk)W*;r}0iQe&>DY}x{GCqi1vk1*22j-t`I!;?Xqe9Q?tbE6^f5}H zD!ZgT1WC=a3e(y2mP5M-Rjf{%G-D(N(RPqE9Tu{&(aMn)cRiOcEg)T|b>-M?D>{tq z&&ocG)(-KdWR@V?3#N)$zKm)nEwI`$)^D}>K$^>2l1YJChwvk5hJ|=JSLkf>zg!Q59~M&SZwh$nz6!#?Mf>HhCfzZx)<>U0$rkw2gG1*dazecUivF-?{mh_Dcl|H2UkZ5W6LA33wCl z-f{JHL;zk6Cv$B^kQcf{Vt)0xqXqG*JBZx2WyBT@_n3Ms2grmbH7r zV7zN~`Z4aYYezLkP6Pg&H$l_xMy=(CEx7b~^lVv!hRA)}aF`>6q*6Lb9LB{X4MD)S}n(WK>pq`z6~ z-n&~mI-&1B_T4nj;x!8q`6nqVH8c`bDD@+m<;1!bUwU0^q{&86%5!ueDrxkN63M*t z<+*x)Q%DQTLfLVzrp~Cjp$O*hSJpfaz<_8_1TLEV}(vpHaTOU~*28^)#geHb4YpViQ^jG zEEi-}1IzA-MPSxVJ3en)&DIk-kp82L2vPQ-D3{2JRzG^}X3+J~YiYfr2@6RbCjQ_I z;@T~3tsd8G#}vjsTZ4|rS82KK673AAzp;nT{!0->D4fO}TJzeAbRQELK%~Qko942M z`Bp7?Oe1Dy>BtG<32gRznDZK#DB?Y2#mR>n#zAES@HyyHi)yY`wj z>TP{%K8QhEiy@j8RT>>bq}1BzdL`?(?XIr6)T2?{w&>TUE1Xdd50vd65)A~8K5U{I z?pRe>IeG@j%c7IPm|Ml>G$S=r5r;^Mf3n0s>xVNMmtJOwa}5MG|&h8T-!1+VvJP4qoJPEsO(q2thb(hXnX>K|KPwg7h)zCgojvcd zlR`2ZB83k=E+&9cz@88JSi-mD7rAaxfC>*=4w|lD{O+-ljAnqA3tB#8<`1GpfcH~5 zb<*`&JnGYe%(~@0Z(8N)L)fmk(S?$gKB2>AlQ+E2ZZDY~=_I(Hd`C%aHIs2G=T4~j zNDsb2x6QsOvs@(!Tz!rQE#Ks}qKfe0vrhYQcwf#KV7xR^MG}PR zXVRdgI92&ox)Ch0Qk|IPHa=;sxq3p@SyHUk)V(9uegd+O`#zQ5zAAmlPs*vxo^@`9 z+8b23pu@bF@%44KTZgJvl=A(C7*}FE52OTL9dbJaBU=0@j*j}`-H+pF0uq-GD8{y< zO5*6Zf*i>UBd(cR_=~AU8?_M1^Hsoy>Fvxr1Gz$(`HyIT;!EhaO0Qa2ed!-#Yt_mI z_HfkPhr-qe;j$j?QSw7}{IhD7RJsAAYKnI070EnN!o`SIJR21Y)f=xtc~52NnJI0< zpO81<1u?LMA;9#Iwirjg*!Zpf$h27= zI%K+Kz14a|eQ?T3=4xu@1BcgQ)X0tIa5e0$;9Qv}X0QjXt$fnyZ>D=3>Y>qkc7`8A za!LZlp5%6jT1L)3^AdPJ*!`lp)$Rh=3Q@rLg=>`{-H((B15ib z6}vR&vKu(_%~SJOOLx|HR5t&!GEHVN zJ-$I@GH143l_oM`zgZxMj6yA4`fEqoPVg8zzHl)YZn;u=JKAH)&vJEmwuxcMHP4r? z4Ujj4D!{Z;v2^oq1W>$<>Hcq}=O#q4XF4i^DA%%X1|&ahx)n&DCN2iYZ=KexleaATFwU=@F~jz))kRdPHxw zONXFqgPaZf{s~BSo}xESkCr{21_Hth2XPoi2z~?Qk~)Y9DvipU1^5+QM1h-ZAlps` z;^VH7>id!8g_v?{>75gnKQUz0fSb1`>W~6Q&+C!wq&>kM2wP6Vn#z-tlsBkRCq_Gw z_88u0h&L4s_{e6$jmV>po>+T${5xtG6gX9Ko#td2roH7`p%1ce3Xh9gYKg&RwN%2& zliH#6ZS-@RPE?-Z1fts9KK%~DL#$-6NAFTB7a^bMrl0cUSrrj0Who|WI4CF@E6~eA zX&>J#E_tk+Ee~Q@_-NZ7f-6f=GR3JO6L^yc34(*CQO_n^BS+br5Kv{Y^f$h7R9nGe z7UU6#dDndVyEJ)_RPZ`R(jpHuviRGvRS(GC2t*tTTyOQsdoOKv1OLO8*j`y_3f|RHXS( zYQ#^!`2JPb=G=hhg7?d&?6<>5{G35)am$voLAJWh%ZyICGBE(}z0~$a)n$o${hPUn2K}(PK@JRELxYT5}|2X~5^!cqCA@L(0 zztXq)dF>mSVYfo)r|+Yh`DXQFA#=ub?oMq7?1z>H&^Kx@T604Ay-r$wRNf(Z;ig%x z^6HGhQnbHnWQ0rqH6m++Q?ZMAbIKFuzI(vV6@z-)b1opgQ~p=MGf9+61B^j89Ym5z z&Ab8eDSDGD(kQMW-n{%$RwG-p+@{$Ia-{4tvDJ0sGHPU!ZvXBCV{0xxWW^=#?vPm5 z*pWKbcfG9K$pQ1qcY$0?1j}>EDA~pN_~+<`nZLa8F(;28$Oh--wO>mxL*}+$V>4TN z^_Fre>oKVqp4DQB+osR0Q`Ze>$|L)Y@8*j5q-N%|do%|)Qffo#Q57Wnh`2kUptYpG zYMcVre-ru1?0tnqeVz3hOTBJ(K_~9TA+4ZD6WeeC;b;y$Wmj$*$x@v(VDqg@f=w;h z*tn+LQ9NtSGl@sRl$QL`7SS{Ew2YLndeP1hlg!Fl+ds6bh}d*(POP$UQ5#F`_wsaH zV`C&0yl8=(Pi7LT-05;yJAkmGnP{8v_WfV2mysE{D#D-RiWklR{Y@WSK*a{}+xH~M zmFfXpO4VxLUDMGkI(Q#Q)rmeMv8LT#k$DFAtrNndkW%I+}m zSQxibsAvsGuIUt!Zfw8PtsT$u?UxuQ38pBTRrSVgO3%~C0QKdj1JQG||81c*wZxoQ z_dI7qwloiU>_%|>LhDCOH4gkwezHE|&x>Oin?ND!aq{V7;qQ|q=CWfPvj-~ksO~F{ zIE_Q;^;!znlOH>3!aJ^Uv1XLy*rB|G?4PJaU5KaZj zwLuFq(*K``C&$PEKbas5f^Kv81@5Bs?7TbL-ZL+2X6||NT?YDu)}3`}g*3o@{2IbA z5{kMn$=xeVTW{mu8PK}7xh%Q5$`q_85%8sQO%oyJnwUV5_dWx=cF?5LK6|mizkC;xQGph^+zOvR0D}?@e^_B+6^f2x zrWp%YrfHUkzg&~>Mo)aIbFSu_Eo5iqwbhM`@06o7H?E1aw_2vwJH+9w6D6`BE4{-k zXxOsxvi%DX1(!LEDh9Sy#kFE9M|-dbQ8=$YV7_l83{YGL>c^aP@F8Kp`ZtDiV;9Y!kZ#>zJT*<4c?J{ao5eirOho>9@NXHiFvBTc_3^ABXS` z%ZrGa%j@LMt1DK+Li}7~CvRvy95qd^gg5VL9>T|L(jjxhdruyKS(@fA$40?41~*;~ zpV?B(oBT_I@F;8b`pOt`Srz83wx!tc7JvpE*h$^|kcZl=xcgY44MswTScQmJN77df zPC(4=PRFol$^#Qw!?U5NSvg^s!EWVSle#pnnlI+Xp*K8lf8E3K)Y#a=EqyInz@xeu|hUIJL?j!c0*d+;u~M{O)6M!HfWkYVXkZ$ zT;~u+uX8Q$PY9^>@}j9;MF%%gw1Lf)h$#Y)>RRhH_MlODk^Sk>0+$N!0!dVO=XkK0 zgn^Z4jSpV~qEkhTs0{>}zfU{H$3UB#lIQK>S6I{TA!8#Fqcmb+f(#rMU zfyov&ULAWAbll6A5@|rDm`$4aSPPZCQ`9vnW50e!ojYrm#q%jq&zekOl7X?bxhdI= zhz>m5ky%K(x{6&rjIV7Y&m;6`1#(`m*mWUlL{3kx5fPF7(5o8{}FWD#x|F$0NMg``vKnbor`T`o40fMg6;Il zZ3_WJSS5Aiy~beF$T>WCMZVs@h~jmL&A0{jZ4*C)e-sikr7A;>c z&zmnBU4Y9Vw2i;Jh*hscmA^Eo@0`MIhMc^Yd0;j8n)fB*rw0258tr4PnAqE{O0lTDGBRNTV$Ag*8Gmn) z`W+Dz=FB9wGfbBQ7mI(@c}kvtyE9y->I`26rMu>Ud`$1%Ae`~2pKe9pBQn4>HjI7jFotGT| zwx*`H0vF+8nz^}r-s;pm$dJMqX%LST9Tk@Ynaz{j%8kEJcAjBPW?3BHozX>fl%WVJ zZ3LArBPtkL7Nsc=M4E)A6zL$LgdPV}5F`+3QbG`<2qs7gp$IGvz4soF5;_Tlnnw1; z+1+txXWKU(KJc7-?s@M$=YM|Zf*u*NOOE3;cBqpXA-I?foQ5C8i?=M`ItSKo;D%3t z?q7DY#SVOeTYCP?3IFcmr}(15@e;G#zIa>)FIGo<427c1cE8XaOl<3OUdlv{!qY~i zcPf|K@rg$M?mpZ7oXzD2{8FEr+f~dGYskry7o%=EbTHmBTCaC zRVcO@`>Th;O#Dkz%6Kt5LJOW2ck0Gf=vt0c%HYYj4}T_F_4S?KHgQ7X>T%1<|j&dS_A{@Hb|}kE9Mn3VO>0eL*f?wN40Qosu^^LJsgH zwLFWvd};^tb4sm^=X03b~gJy0t`OkJ=tp z<2&aKIR2(i_a{$zLzR1GK2jVyoQ{ooIPp`3eoB0<<}rpd8}{AgaXusD7v~=cKi@pE zjjpwEx&C8y=|tqcQlC4^V|LkcPqp%&Q4|~Rr1J8?e~i{Sssb4(5XN`E7|ubhwYC~o z-=DJ7bZ{)yP6$!WB^@pQ3w7?6yp~uVmS$f~W{rB7Q-#oxPyxZo`I9W;j4F% z2M_gW+$L@(9_j(I$@w3kOjxfE(X`akPi^E@CP`7Oq7|ie-KmiA=Ju#x-dt(a4QGok zhRI0qvFV$Zo%oypmv%y|v}V{1M^)Ky$m6_FATCTNV}(+mPvY&TQ;i;`Jwlly-)Af- z=IQia0^2nHpN6(8UR-1ep!|gY=2RS{&Qe8@2ISb8tLJ-Qg4~w#t=VZ;htx28Y_u}8 z6yj@kQ~sKzjtp8sgdb>54Aemv?|^taru$Z340DhshfW~*Ipp|~ zUC!T9QP{Chu9hB>da1SQK=@U2I#xp^j+eC6t04|x5-;Ny=qDF|#Zz zn#m_^Fm z0}@>$J8kt>g)6(tbI5PC$`x%3lz+w}uLvny@j_jG7y4C|1>irLe)b6qHcvOqy?%icECBqW3#C8|KR8*VdfO>|vrhZhmLi9rrl|lu618Nsqa4uUT#0)EybndR;H( z$Z7Ao4sBBZ=5}id@AVGh=e)#LQBpx|j;(Twsk9dJh_6J3UsGA>qoW3w*cG@eY2Sv4 zpr#7_FFvJaUVK*>|4FUzjp{hKY>lj}j<>n%f3yd7w+={U zx*tel?R*+<;VhsR3Zk}1jSqE@#h;49JCPA}{C?|^Ukq=I?*wp!e^EKjo_bIn`5$|& zVj}!Uavak#Amws-Dpwy}yh6}R{vsZ>wVwfm>ArN=t;&7 z(K(&FP6qZVXX&FRf_HrQfN*#NLT1+P#OtVOVQaWCX)-r#kxn4VX?`E^{4?#4mW)moMg%lVP z-Rhf`F`C(xdPOe>X4UILDiGf^Gji+TRpIvefeJNUo2?!Nrpd~}+=sE%=S)|b{hLuof=xPc{>zsYI@Vz`#M$fE z=-&laraN6_FG>0|Htf^7HaB*@O&2wjM#Pu7m=ODV!ZM4DBveEUAQ6(A2K02L}bcEKH)MLtYOEl~XeM8UekBsyC2G4fZa_@q-|b zCpADuKPsr{Y2fMVMT)RbV%b3dzHL{Whm-0!P+4>3Tv+32-!x$@CgCVUgqpmTIAOdh z;5e96T;=LG<8W4 z54nv1B*lTj{o)9%)Mb)*<|KIbxN;X#EQ~O^7f*1=pUi~TOXlE0x`4l$X`d`4JPCS8 zPR{K|7u}r7j4(1@i0ZmN)LcOVazdQp{Cq*)p(iQ*j~#%MY-mvW%z&^_5pM2^QC@CN zR(N-uLu#Z0_sb|I`Ih1pG@Gc5) zNxP?>b`D#lh2#Z}BnaP2{hoVw*R7YoO%#`q6?662MZ1H=P(Roz#?}bt%;;EY+kSWYAgP9uj1<|3OMx6Tw84wV=}U)r}7y1x!9TO!d%nWYc3u?KQVkU zWc)s3*Xpnw0T){#gR+3>H7DM(*Q;%tvw*taVira9La877OPsj)*HzLkXE8 zIj)X2*E(HJjl;X0?K(?&X>NMa9~`ap%KN60O&-y@y~F2DwWC1bFF^n&?!}L{a>hgf zsEx!#obH9z6oWZeN?o`u8#pWW!*P6!vy(8Lgv;*m{ zZCIg<8^(BZhkd8@qpPw=om(OP-aE58gPfH@XlJbJaEdtYxVX*&aF!bYF+k40V8d5} zs>NN0{8UNs9QfOwP-M9DEHiQK>5f$PO(0e%!vppv*v^>epe_wY_gRCN7XD)O*9`iq zA;wBj^B5tC8|17E$up^$xmi%_n7qFQcywOTVq5>VXty$<5CD+~&P5{(Q?K zP3sA2zQH`G_0c$~;Tj!lT3V6Wqa9=HkSWLqqwq!hP?x_UYX6dlH=+9eG*)M*otga< zBxfU4k0k2FUkdA!v7PIAg0%3*(emZl^N+xth_ik`8y#qIi&I&=_RLm+-)W?0WZ__T z(E_h5e!Z{%d@S)`_y-;0T@lCQ$_=2Q04DFd$Tdy#Jc`C443f{RdlW-=y>1Q(sW1B? z6#plcu;kOKk(SkOIg1lZ0B2zaf*@zF^ntijM2WB-oc(pz!rNn2;%zp=RYD~nb8!)_ z_9h;$=eQH+?(H7J3IWF)9s>7o_&f(dqW5uk*g;Hc=^r`0TbN3EWrJ5>MG#adb zXz=Qjhoo3q*z6r5{#{X)a7^o!6+xfgg>uRJvBlGD)=J;_*UqG|Y@^DOedSKZnS6$1 zV;!qkqe6P{zt?LKM)*gr;rO_cK-Hy}vEOGo0=wQQ+(yCAKx2qB+MPIZkZH?I1{fG zj{bYATe~rjj{d{CXdCm}bi~swF8fo}s~FOJr68v(t1N>@OayfKjFyAHs#YGRniPzS z(X>qC6~kGGgZ{!_)JoWn_X7riDw{UoKkXmPQdCx+QP9!#EgmK9Rb zs2hpyqpGAp({+S>#{nop<3wN)cj7xi%UB~klz3~U`IMT2#3Ly&8KtZM_s$&D`^u|m zArQ9-bSz2gyyqyf-)Oa6k#^wrBm!ve7hg6eyqDSv1i+2x0353npYsL=(s^%4G}5*2 z!^>W5A?n_B+bkL=qzBAbKHx)*ZSsvp=H+Xujc8@db#Zc!yhjPS$C$3^{J5f0;3*l` z9cN^Iriln}TP|ei4gc_v;?p^#ZlDTU$r{kc8gN2eEn~CviKDJB3-NE40@iwO`P(In zmBPM_ZfRCM*A}fZ(1zmG$W5|N<(Yj>loQ6|+!H8-pZ>k6?#ruUE#d}9aiEI?)f$vO zKZ}|RH`096V(g$^xmc}Ro(noZo0ePjxS11$} z5k8qM6bC?THk_EicRSo0J> zkxsNA$4Oa~tnW-N3ScU%D*UV8ygA|?8vwu+85yb7s9rqquauB`hhd^zmXOz)$;c*4 zx%BvQ2+{V3Z(gpj0_xK6pMxXT*tnkS| zPPlMM(&kdTcOwuiMN!a;nyN6_{dO@sU=PCXD7!o)YJ&Qb7iOm-^f^S^8Y=EzeCH1R z1hX83e<%`FT4r7wH-JAgn)JBgieA7yvzKU%3x51zvg&sOJPdq8L}fc3{W>@5{p6F` zk}GlArL)$LilxWrBk#GKujIR&^nFlyO>T~v@!+_uRiWPp{kuh_ihdaSG-Bm&ejrY5 zcQhTb?{O!F14DeSww0j1sDxN0)bCQlA|F|}$C~llZnY9R`qF2LLuc6gHT8SJV8lku ziZXS@Dx1*xR+wkjfoOWpcbi|y$_8&M4BwH~3=gTlcVz`PzJ0d0 zIGL9dme|YLOX9Mxh+5K7Zy}n>OoOpnrTW$!9U1#BlZQb0(6vJPDdh3?_7}N!lea03V%CbVSdsYdyMup>oyL(Lf@gy5^kR ziRW53Z+IW)=)j53xV1h4OSgVh0vR==A}2Nr9N)F= z`p|v2+PsnZK*5U24QWXkiR6W0jj$r#)^oEHOW0$Lww}eWXC2Wy+MFQyj3(sLoak1&> zOda99#BPcRW=(`~(#QPP|GQct*&5_iuXiJMp3ar$8RO=HoM_&0@BU|Mxi9woeT5&aAC*W;qN}c>@tiNVona6 zl$;e9TsUHzNCDUnZ)=hpH!?iPOLOEBg0(AB2L^V_S&ji41TNeQtu7zg!RV1}Y$qn2 z8`vxYaqIJ3KZjCF;s*AdjyFcyO0=7eyUz6-w54 zq(R}3sqK@gU-bwW9FjevA~~J=>8tO@NHumrZVavzi=#*g9mUR6yCsN@;h$>qv1DB<} zgE;`-jo`SqgL1SL%rKII5i^KKAw7 zJmxc57;+k}$w_kd?Ko0@a-Ol{cNYr||Jj&HISHv*5FKJhz?lygM4M;xy;BGH;E?NN zQ8&jg6mnSS7Yunb!VZ9_i>hE5yfjFR1uWyiKS>oc6mI&ZT#D4DLF058)A|uPIN_*m zYQK=S#a1# zibS)5`%wP|wU{-HsfShmhGn^(WAUj5i}*D7sLA!MP3-KO@W4YF8J^J)X`*^Cl|Rjx zj|+9>$;6Bs(51 z&VxngPwu_1-{0(ESsEgy%+*%|r}u$Y`p>s|*i;V8-cdGdOPyse8WbM(9XTdAlB9WB zmLSYo=k&`;WCB+jWmRU}lEpJcjMq{Ysqy1c!QT?5x874|F$fY1!Jw$_7Miz(&FR@} zUdPZ=ULg~vVG0J`MIn|Z#_ztsFUQB1&D*}zU1_sJ7lkkgHh5n`lwDrD@5P>=(B}~Q zU5K@Dv$d1#AyL{a7p<28X3ljyTWh?%o|yO9x@pm@W6-oW|9<_jbhfLt)ahlBk9ci< z48?tUEQh;<7kmABddN}7nbDh+vL-8hcOrW&F5t60W@8i1mu6k=FFVmz0{SPC$NzK# zO6)9SFPku(6KovL?5>)7Vcj^M8eyTM7oJv4l)o>NH!4q9DRp&327fzMC=>_v8bYUh zax3`Do0)OS>>K88e_7;BTBu|wkMGNNBPDea=t6l<5IIJaw!uIw)iaBynTUh<;=tJf z^|?R{YV|_u4fU2W<26mf)&R$?;+kiT8R)Qthd4^d<|>c;PoWs1wTd?ebv7@{Q~Tpn3XA;WM*CfDnY&>4@7&KuN)ae-A-bLLPf+7(p)sAg{A+mB^Gf#oQ!L*n26J z?BN5Qu@bJw1V+La4A1r63kKsMsX zFK6=orNs~Pj3rBZ18FaLat7Je|M2Z00~VQCfHNRUrmMfTQU0r zBl*t)-;?Lj&sa(nlck!G(|}iHOTjYg{o0pL!0urs?bEVCp(< zE@aFYJktYxBscY44}H9zAzaS@GN)Ja`wF!etGTB4Yo~*Els;6dK`pZ`E^cvLnNFFgepj;eaC<4X!fL(HiBv0zYvY!hC9-ViMy~10_xb*7N(3)ve#f9D!S7-!C6Agq!C$HhfU9Me?{)t$V*B5t$x0rv;eS zxAG`%2aq?4brFq9=MWrH`TOZHSBI2Ac@t;5N_ny3rIL>I?;lJfL*eUBwV-2oS0QWR z-lkf!*2-MF)mTtNnO)H@_xe&ed3>H>hQ5o`Cg^XVNF7Ea8hF$XIz^gke^0;)DMINr z(K7YG<6XA5N(&N%@YO{S*^0bjmwTbT)?;%)=*vfnTRBa;e|w=XJgvd(zhsaRE5?e{ z!F)xYg}{{rGW)d(fTHsE|7rH4D=FBXJZ`jFo3!aHjM9=~I38vAuhqCo$oAXpmvDv7 zZDq0tCgHP+NovBGsPeS;EhTfRmxlZ;#dJ=(M(?Ds*HV}VGPW)|W4pk( zeS2|8pOeJQB`^IvdOH_zgPQtC(b`j<6`wC&RX(`+_*3!}n`>%ILj9oTU{v%Vl9!v7 zxXZ;JMeIIjQ{z-;eg+>@_#R2$o68*vN>HQ>EW~||LKm4Xpjq844WZKBj&e<@D;*>8 zI=5_%Wx&<`*?yXNCrY4BU-pU>SH0IDA23^sn2{3Q+lO?n=iN9z{`fsadqg=Wq}Van zuqZJatF&;WCmLJ5+PCyP=QA2{Fw=qNw3twHGC1kJ`NVG5yw;r27}?RQtzw@CjPQVB&){UZF@(2>VG2r5w^v=`bO~&kOx5?`K zYfqW=0Dj`tsFS;uK1>Op8m}?3ci{SIYPj*&oQ0q2t>9 z4WvrHy9dI{x3q5FEPXcWaBuDe%elzS0Nx zQ{`LoA46?FOxW}@sC-SQw>8lnsjkK_^Yi?$XJL0zD8IKfm0cp9m*2&4q|n>f@6Q5z z&|wrl+V*bxKeiJ$aU#aw6BB4MELt=36n3rJF&wW;d*famdjv$vDb3`$Qyvb~5bK-E zyx9nuP|s%Ka@7MFY!J~@I&tiKr)lcXUdDI^doW*;N?R^_%le}*q&K}~D3kVyoR9_3 zdoOS<^|GrO+f%Dz-M@d%1qapu;x!2;%Y%Ytg}d#4sdv9>V* zE^7sHPGc{I4gcKn;@<9-&g1>X{>SbI4fka3~bApPc*k_K)lOGHEpx zF>aK`U;34rM6HRa*VwmwRqqYZdE->e+cyp_i%&ybjssYzgfh?cZBoiK#p(_=U($BL z@AR)%;(yJ`dU0ZBRJQM~O~)X=5XN1w#sT|i7OY6*o}jnapTjy|@fJhb=BEtIttQCh z6G6mwfN45TGyRgel>GVZueKAI5`bo$&G^hq2_8=n@Il<{HqN9bIxG21hwdR76V%nE zjuNYLpE?=eO&`p(Zw=m+YTs&JP-_w>xYp8PtOKNx?R!g+L`H^y>U!Yx&I`NoTpd}Ox}LOKW`tAx;&Lp`&OykpG>q7@@p ztM%(Ai`f-k<`lsLGC^|RFD@j;j#^JkucsLwOfH7*8)xRbo?m&!9GUS{CHQ;~zsgyUwwpe$^{W0UNq7$q6k!`+_9W_j2ri;K&FmQ$_O@Qi=(=bQ z`~e}}oG?df_ZS^{B(#ZpuVYybXc;zE{v#fZtnW&hy@90r&Zk=P$Uh?%w$vF7hO9IR z^>vAZ4N*K<6)(z=KiD@1Z@OSu?+w{+4QU-lipBSiO#-C39DiZ6{Z;Q>XAku{FY#Fz zQ!xthG^&rQhFygLk_cwD{6T;HPE+wchL$Zgx2=bWGvMYJ=}y@u&OZ%ZSghM711(GG zsTTr6P#Z#sQqZ?kFJOuCF)5Xk`Aw6MpVs{z5{6@dSHNL6Dte!JTrtO9&AFMs%O59F zgD>0bvSnr>HnDLB^KR^VFf*4;SFxoU+H5V`vS~f6*ZD3*tJhND_aP)e+btPU;Hgx@4l&v?@q@Q z2&>;C-p)Q8@BQkdg+dDeK71H07VBzHoSJt_a8)znh7Tp@e%h3#0{Qv_=*4NQtmnP3 zu#n0g-&LvhltAkyG^OwN^1djw6p;U)(w9lZyQhgs&t5L!gh)4*JTFYs+8RN7Q5x|x2ce2F54dk<$q zz#uwMx1Np0&K{gua;n?#xz^-2=~`U`>RKrE|9IzR`wL)fx#aHkDYc*sp~ETL&fvQ$ zceZY(*_dq=)J(mSke zshIZ{C;7{T#p@v`Yx>r#>w^tvs68%7&0kvdRxbYAyjjoJf=z%|6Zr6C?GRVoXZ_;Y zs>_mPU(4uuKa^3tMCnsAlyjTw&C?pdEEQC*0Qm90PAmOyJj{iI!mMF_Ui)vm;mA4U zedpa1i@%T%sv~)xbVi(_e7)PP+~a*++;QDa!Y?beE(7wplhOKDcDK_$1cPU8?-3EU zvj+^779O7)+1mywYMmMW;$oS;(+L!2fnjfEZNYAiaP^K9Fawq}7UwbXmDRetH22x83MuZ}MjD9AU)|3;1r{FZk~H+{p=T4&SsI z5xIeRNr~`75(P8(g`IhYV_EbBkC(9rQa*;fRi8L4J`cVWpCJiKpGylLa1YC8So+m^ zq}I&vF$Tjb_6`uABIJQ*512g&CRePBVfiKrK@y z4tao>W`u$_Dlq%Yh)wyhUHUXF&36BpEz<|HGlG~?3Y&8*-Y>Lea8Ve|Ud-kmh75xB z!Z7$v^izw_vI`Q%^X!VP7q+z1wlpvkUmwUos~6B)WIg7?idSyLd}C-aZ+6u*!UcCX`O}a~R(MP%ii-Q{}hwsCHR!UV$YY^<#8v-ExNw z6^CKcbr36Vh-D7;a8D?M&BCZt1;XY#Y&J-k&20%)&`3&^iAnq%x|O_wKxe_$Mgf?r zx@+&7awwP)qQjFn1ohbF?S&1FlO+fH?{co+xcXGDsMhr>_G^zk`^Sf0b5)s|CEb0G zt~pHSoTC=x7x*bP)y(O4oxb--9kp1UwT8UFw0MyWdOd3$p5M}4dnd7!x6PFm;w`)Q ze@r?0m04tX%=UW%vvp!WsHo1kaGkg>mekn^3hJu zU0)5;4_bAHluB#s9#{O|7!L(|U2KBmS3|K`UMK0E3Ur)N*y6okIzM>Di%WvB>{P{Y z1;05#vzLXj6vvfjxFm2OTST|EpOh34+;YAkL)MqjfgDLP^LM}oxBX&Q0z zG0-$w9dcYrzV4{*r7vZ`-GjHS@V{nqc`*w6Qpfyny*71P6&G{R?O>@sY@W+-4NSqV zh8gVucMu_Wp6{q^TR%xn-{@nO>|AZEGf61?fk8EuY#4Xy#iO8*clYcYrXRq z@cK6bKD}G~eEId&|MKr8u!0uZ`QMuZs)x*BwV_+#|1*^mS1NO;c z3e)*D(TtC!64UH8rBLb#F7P^yT~T(hx%hq7)?805-TjZsZoNJGBms4nfbGUh_TB)7 zHM8d@Sk@HnKbSm`fSLMJM9N?4pzG~(mjzD+BJqnpkxn^|wefQ87(oh#@q zR1b3lyjczoAl(nGXmaunNY<+|)x?fOM}<;UhhL2?PqUM)Mi_~_9xjKgq&;-yz!%lC z5HyPRt4;rP(Ss5s8SUeLlym)|T?~AhMz+tO#tOE-BV6ScyaS#FCk01aqo-w;AO!DCahqkOCcrBX+ zywk3?7Rs98bzLr0uD;uUMgZC0ZiK| z4kiM1fA&O8q*%>0ppVw?036`{v$}?TVvI6JTYpTQzbi zK8IcxVaPBJ-uQ*TZN4-9JT8mrj&kaX(|77&N z=Bx1e3?u!0TL!ZmI~7{PxzZU-VHje(YJ*IRTt{#|6GryVppP2`ZgcAs?E7vtr$=IfIKYokTWfB$q*V|T3I!tB5G*pf$g^_Co z0KnONd~BJJmuNY>_={6ISud?j2e!gO%%HY%{XAJYzci6fk2%R>LRIRUc~(u_y>>54 zI!*>s*-uxflUgzsyGs;kp98?mQUi4)8_gmr4=cS07psWz2(QZs9GGcpreK@S0=$xW zef{`eQc-9mzVy=}r^39R zV`U5l3c|f2>V{Pi2r0*?q{NDy1q+T4iF#S2_mDacI7>k@`oSY=Lo`MmVcC^M@8T%UsQYG`*;0-3sY1DO ztrG4IXy2bde<%bUuqcI`uJ(Uhh+U0H@F)Iaytofc}Yos)Ffp7DXI{EO88`hs4U7eF_*13Y)7ML_^8&%7ywtzr%O8*y(c_2Wk7w>Vr zzAApZx|)kAeLdNlSCm;b6Psv5JG&1*9d|%#j_K7O_&!qF+XY5zS%ax}MlA?>X~~knDihK5EmRn zrw35{&nCM^=V6--Qxd>bA)0fubkRGQmkegIc!98BZFBjz{z`0$jG5-s5lj`gl?b&E zS#d?#UQ@3HihO#;Kdoez!OCV;nJot26jFU#4x|==W{Em$mp8ZTuEuGPSPAQa2ZHRm z0C^f-way2Y){1Ic->?YlY-tfxzZVFui9`I;-%6)dlAB1tNFpqYzoy%~Oj6#e@JmtK z*u1Q)R#=k?sy`L`UmTIXfL92RqI!DT?UGL{t{g<`j_ zC~7Tq%e<%I*w(O*PixGHp-g&1a$iwHbr#)J_jS3wFbCWX(!R=DT=)!kaC+xA)sR?n zkpHsY%}s6sN*QYtYW4S@4mTvVB_-Eo;gouL(!V6>Xi|@D`t2(epUsriTGSMo=8^4T zC9$yuFjv#d@L)YN0oLS2xRwb>m3W-jYb5v`fM`ZI`O<~ zZz!TtlFlhaHeeQEW!Ps}{;@8$CiFw9Uva*yCq|9PGjK`aePxrH-Bf2_;z|wK&6tNq zSHR@lAnv4*&&ym%KWor((A)q^z?u^K}784UcK7EBp_4!JQe!;0m@<8K?xh zl_OB$gRGHkNJ?1oxT|QFXS6Q5W2i4=kr%-lw47O`Cd*+iTP~c``J-8B(%9HoiKCOT z@-0|X^$jB|G8Lsz{d+_kTs@!x6ztyKAa5}jO{M{0A)6%DWbD~Q2I;Y*&rJT?vpG?Z zm5uMqC`eKS3k?J3m|o*mm>`Pz;U*GeuK&LAQ@tjg_im_cNmX3vb({eBv zrZUO&+h^)2iOF}WHEkC(G~2%@O=axg>!cHQv}?(AGOyy|!oRor4W0J zj!rF|Fl}+)OJ-DeoPe5RzN@Z^RtgfT5`7|^lll7^?-=jp=MJQ{yT-KBH-poVyX$^i z%;Ok~N~BIM3g>+ck?48H6?e;K=yZ`{l*c#4{bV02ns37|x4oqZ`9z^oq|j##ws8Q* z-=YWk>sw28(28W{MqgQa5r|HTNtH~K)oVIX&Ez)Jdf5;kOXJBA zD3)#3B}V^VCIHnbdDpGmb~zjq;F;kfT>aO)XNgKCyRJ~7)#NR6ep}IQJ8lNt{jVid z+>dQm^1pqA7rrf@&vf0WW&#OsFK|wK5|9{2>wOSr`!wzAkYq)}^^`+`1k-LP0qNsH z-{(Yp0@~AD`d0EMIb}+H&>H2gd&B*Ry31IhFgyMnn!uGe*W%jGQ`2g(gDqSd z#B{y2a{lHlY=Oz4B$7VqBdT;7c9SQT;fT2xTq#mj2d#>XAfHI`ceCyUyWaVk8%aSo zjqge_k3QV>%6C5?4IP8Hz&aeBRu08}NeR)WDA+2YG&k@ADI68ehNvMSglJ!9X@HhmM(fHm3r_uoY zOw@-aadR3&?UVb26w4Jrc}CEBrkilE_-8sw&{;XeG5&D3z>zps*~^}G3}bTTyT}BXF5Wm zw~4@WNysF#ST4d^&1sbF`#A!X!x-?&v|&4xf-eOZNS7vOmrnFY^}BRSw*hqCD)=)* zyyBuE@C{?mRDmCal9pP^eqxuIQhLSn5Yjm;d?MN6eD}zOp6D$0^+E_(B%PlhNvg%s> ze{b%AjNZ!~SJP8Y6DlN(1ry8t6CXdZ8|%KfhA@kvQfVQn88E2Y-Gql82h8MSJ0_Sg z%amy^Tz2#Zto9y7NgAfZi-Q4|8Sa^D2k!|0o@WbV4r!rrL<0@s&i6oMP7+^NjvYab0EXJREL1pq#LG;l>(Yy#_JUE3VgoS1Ns%eK$#8nHuEFU?jl6)Nedq4 zM)QYPD&{>q>W5o4ZME68DWU$x- zXqtEEeai!CQ3ubb62yJve>{iekGbmki}Ov6&I>;^SwLMVYs3}58+ko9Mhn-Ma~1)F z-ge-sm1r0IRcJUd=)e{nm1c=uO>ktmkf2pEp6&>DDuEAkU`yy)^l0qC@~e0^hczQ< z?j0l6jaAK-e|YEoe82A9c<-l?_GJE7-*)tt^L1B~P`&!zy+)e=i6mTkxyx8?p#LnJ!Zo zq>9&}@TgVf&nC_x)d$~;Bj{{l7^R|g-Q#0OY2c&1;jrF^rMCsjd3`=Hb2c=b=0Zw2 z86TXTE`&r4JAwD?vikd46*}LtMMi`P)T;elSY=)=A+-m8=LbF99OMTr5WE})3<{ov z^6Ik{_WrUU374DQ}%|A~=*}6aE z%%Okmad)1%N$-f@@3=EGxXkQU{~Ndr{z@t)Zr{@1QxngVpVh4tDf|vo_2qK06f^yJ zuB!bwBm*ko;3=RgTv>=fqop6LS~%NyMI1H>d)Ec1lVM6wx>u<7wPBO79lcyJ#0N7G z6*z*y`cbD(cN}lC`k6p7Qja252GCO4FTF-jed)$Rom#+iht>%nxY zI1a7Y?Qcx!Y6{RxtlwP?P5a&oD&&s(#rM1(?3eheC|p;kub5`tj_R8Q^6kVQY_v5m znsnyqRxH;Qq*|_;H-h7>md45aDW#?hm0!Yjn7St;#q!4v>`1K zS*eDpVGSYe_K#NHvjQCj!WhD;VBEPqM>xdc>q|JgKWQ-zjoTk8w(`Y(Ayk=?9MR9w!>{WDV7CnKV+MwX zxXrpGif3q|aH!k%vmHTJqbWYL?*Az^Bf>Ng0|e-vp?o1^yFpf2Rmv)xa^cLNaJ?X( z4dW0guGEEHL6jVL3Ps}L~z4Q0j-++RW4 zL;9oZC5`RF5ATa@5VJ}KrzzOCUQC%ewT5%iHs}G)I({Q=`g1X4M)HpNTB@vWra&f) z=Gu4=cuN}iI4D~yt!Fh;_Nf+E!`sVlFY&Cb6}pcGj1n;Ra?Wu<2R~Ps%>$2#HOfpn zblxwDiZsT0Hj0vCupU!=+W=V2idSqszA+kil?Fy?_VBEi?MZfKbK04@=vF>LmRW*k zyS^TuPTJ=qc7Cv1`(g<}qcob|nBtd-m5ry^VOd$jwnSJVo<(o8u z)fn*jX*$d{aWRw;i$ybT$o=1`?KYrdV`jKaU)++XQ<|l=YyL*h_S$5z+nTGhAXZ(( zHo8!3>AfHK&3f!O&sfRUcl-#_y9~A!V=gdy8>}JPTAc@&8;8*ObrJ5-j`JPI?0ofQuvvWJ zT&ynet{2-6$9dJyd$x;l<3zgYVe`USadk)hjKWvrLPc#}5Bn;kY@_-8G`036F2q=( z%l(Ivj=sAX0A)Zt^=0=@b*%v(*3n`TfwBfCs>&!U5O2tIh2gwR$cNUB5GDip12e|p z>kHtzT3zYe%G+-}x6kmiYWT>Qy-zXCwD|XsXq0dQ`Fz{dRRBPvW7`X3$_E(v_D%M% zLLY-8e_k>cMr|hAO-6fUF0BDxMH_zgQn-oyI?X6`yWsKaDpv={?AddYm<>J}L27${ zeGn1!0MUL=@W>4A9$G_#k74)+Xht*77mbpBtY^ik(}>bv(~<_*FPKeH9MMw=H`+&M=Wj z9yUASOCV~XzGwe;T)+OLcq9HTW>y*firMvzMN^!HBkFnH)*h$8&eX)48O5}{j^65l zRlB$j2mr}hxJjNsDy4=hJvy1kxWIpQCOQ+>=e9E<2lqt$Vm5C_`b_M0C!vV7nN}*$ z>Z;i6PVL418JaImdp%y|3R`z<`vfVRZ%?dQ_PCDCRn+?|%^NhmohS{zZ#~F^td#~8 z@<;zAYfNQ$%Z#dw$Ryj4e?y*H81^j}Kz)jyZ&IZmXdohpkzENu_q)Doaud^m zA)m|cUpxZ+96Q0WO9tcyR)mH}-eliNc%BTzEnWRsKSg*C4jf;1T=>kXU#SMgu}_*? zU4zF7sXbG=Oj3wgpS}_J-dB=gX?4-ffEZBy z>Ah8>x*YyQ>`|n%%*kz!<5#_vLPb&);Sr=~o|4ZX4UL@yGUEX{3=}SX4MVC#-%Pol z%o8;V-Qd`Ty+r)!qV4ZTkPZ2y78EIGUFg*mb~=|oAryUT-Oc-zZn0ezP{YN;$DjJdb)=-LW*t|(h#NrkTNT~kX9^f zMgmrDbZkJ;hq_^TutBSYQEgjchqpc1Z$_(O-SCAf-scsU+4UUp6L{%y^WpHq!q{z0 zHX`QJ+Bd*+LWBVo-G=9f5hJatJ__V2g}To=9C6VSX-llu&gm2Q!$N};oYujl_NxA5 zjEbo6qn;#Uo{_DbVC!n{7f|IZ@Sm6JKX20Z^s#q3DH^g^=+tCcZ|zZHSV~Y^J?pvB z?IA}Dk;YO*pl@UcJ@u>HFIE=CAmwZGdF>1Lo4ovoY6W&>wToBhJO{Tvig|I(bUD`mG#Kj%li4k zBkMxmE8(`yov_-7Vy^Nr`*NiPjp$!Kt? zD`~}at5JaVw{wT3Tz*4c)0Ae;CtR=f`5#8971cTG_Y-?X`ga{(%6Fb#jW~@QH;cNu zZUDI=!@ToRVC0pzl z5&N6laRZv~4x5l!J*gf8ubOg;Xlb6W?@L+#@_vBgN}q||J}(PGaHynPtzV{H?x@!T z5AS)p^L!ni8i*ahKYdD69sT(^CYPgqQXTX?VQ5;MdW_!!OI29Ht+)zf>H&tTF}enp z!Sinx)cl>~eLdT*p1CZ~Fx?OQj0?okXWR&*w&LAzG)6^VH!-IaL?c-a+B!d+!Hjpw z=lM5ws8!WF&pswK%T}~;)QPLl9f`1bbD>;>Qkf7o8eM;6GD-cK8(%g_H|LMMdo*q=o4#JttO-QA{sX{U|$z1>Gx5ZrS& z5s3Z_f}fd5m0hpRv0MqCnY3Pw#GFQDx`+!L#MY8>8bD`ac@liR|Jq4F-Wh9Avs7hT z@`NvBt1Kv4zOly6K>9k@a-{-5u_G3d95Kgwq|++$pOZ@^8f0Yu!Gvb$d|;(l8|Idj zY93x7^Oqc#ZDB~f?1!0^MKbfZD1$XQBO?TNCzyK45t%MbaTo4MH^!qFBVQQFc2FlM z2=dnGi+U6|v_t%>_vQ{Y;y0pvfq!#caeM!f9&6SGgq8P^;;Zs4*v6%y7S~k}HG=&~ zK79@LUwKdOs9X`h${Sf1WuWsxbCbpUL8%hvx5zZDf{;OD;lkR{VxB zWrgp&_t8V!o2Oy@prhZXA5%oBvT~sc6aJ2b=B>@|h*B-*{sEV6YBjI(2C7GdSBN{v zYZdT%C${QZ{XdH^-wcPMMcR6eu+=4x>CkPI_av(ssuDuvItzfcz_@wU9@U-Q^PUjp z^A(N=--pjMVviXXiEO(i#Rdx)Q)tgcvO@PY6(kvw+K-O|WFR!)w9+s)CsOa8(7y8bw%=C={eWyh{1B==pfV=GK9K z|FkJoPuf2zsq#M!op?hQhorYuhM8HDCZ|Vl=q5jtgg0_fp|xqtb&V-v{oqO@`)UT& ziz=q-El=xqvj;L<&Ol_)K2*lf-iwF*_B zvsTLo42m~_YoEXrW8Do+>IVDnf94Me=4zMC&!m`iac!I%yr&u9J8X_w^f$A+*M2x_ zmHND^JE&l$d)De$(dp(K7J+PBeY$edPLp|lylk!Coc4_|#?#2SZDnD5kFo)iCtQtt ze9zid;Zl*<nRz7pU1&-F%l`v5IK z(!cuS*38evJ>XJ-+q``EK51LzOSEcEg@~>Ho_5IN$0Das<;(G({Y$U zk}IprEDO(K-(tX->SOj*ANVVKc2cmj6@L#_N_qQ&uD%ID$pvqQw&);K@5aIM*a1>5 z7Xxmj1>GHiQa)cU>E#7Ry)CAqRd6K<^{)nf8~lRa zI9s5~df--!oLy_l&}X>5iH`?*Gj-NWaReQ&eHCaPUQgZS{qlULdo{}H_IOMCr`+v; zHP8DgB9oQ+1&%)dRQv+FS$x1GU3B>K0ejwGrjjAb#`JPdFq266OE*vEVtebnyBJHo z#V^(YK7((xXfBC!nygB0x7#+xrzsUurR@;WyOFu}JjNNfBGt3cY*w8h-&OG4!9(tH99p~E=3ziOl$AtSh?iJ%yKMFV= z+#YAl7*>nRqheJ^-<*k3yGZf?;MdB>V``n)>oh1pI zR-~mC---t+c78mW$!H|@pZ<30q_dKXf$mgMu|!p>ya3&7AtKVi@Br zsy@d-)xaAH?zKI#lXsv2YJ1>MsjFGNygq6v$ zP?W)5>CJ9sEAhP{W~(mAkaA@Rk0O2X`Z@!?^3D1J_t@B1|2h<6-9YGsS4S{UnY3WA zri2Tze@50M<>=$)8;&Ug52#OaI8x>Ay>q#RM5TZMBK_J^o~uD+khvBeq}akmoK|5B z@v^!wTNA;_EQC}RizkG$_HWJ(B~ywBt2H2j&ZWwl*a?0}62D%Av@F>Tmv+YaQm?RO zfRG4H6eq93#>cQA>-<~IuZOv(=2)J^t)5#s^{>UWaGAo!xizZn{J-hH9&oqDX$X?I zTXnPWA1YExW)O5-zzW;&DPYUnvJ?KSX7JeUZFQXYqL}cDl;O49pYVpVLtWBR(LPFF zhA5hDj#9q9VmNelUl1^*z2?5F1f>HOs@BRrarr>&GtoW@ha#Q6N2GN~0tKSSJ6m&F z$bz7ph_~z*Zw4#ZU6`|K)A0PE@Px2Dr_<(=w>!x<7O3H_Z>m#}G6*>!uT^!3=&#pl zkvpC<*vjJb%PZtt#jmcqX1YAJgop`|e)bu~n^KU;YFQoqtm*^>_G?n)U3>o8H~XXy zr+_W-w35DLxlPpjFIJB%e(`mBZnjKakE?t!+7imoJgXlL!c(lz*@)?MH2-B10KkE0 zU)Ip1=hJ3gkM`&}KDsY2gJJ6vYj+;@-8Py>z=O1twoa>l#Xk`jDEnKuMD$7dTd)n> zXC!q^DOOZ=M^snuS(2{3ONLt05BKRn6}3a*Hn)Bswd24ghOYsT$g;^Cm+q||;T)mQ z(wC2+mWv(kRsEL3;!>VZ8Op=!rmjv`6O1rno@L2)NblWo-hJ7+#uY)3Nzyf>uUI=a zMV(7o3@mUo2P#%P`*I$1YG;gmTDf*=EtsNNXMZYR6}eUYuU=07P^R<3L(Sb^0cc*` zS8nqpVU{rqtR_A-i0+>lS@FH~Ibzyls3d%I^Q zR}kI!u{=aI%h+8G9qkpqu&VuOr@zXkXuO>hm+{EbL%-;<-#uX;pbNhf->^=fG2+6Y zPVRkPv-lgK)A}yNW91GL;zf0Db2m*~*_C@elp|RS@w+;0?vl7jkI3i#(-OEdnkp^z zl;kI~(JL4Ax&1W5W5v_?kK27tC;A<&WRpezkd3q7P^P_3n}4p?8GGH%Z;8{C@d4j% zI$Hvou2b$!Oe1w{I-*+N?sW4mt6$^wtr^}CEpK1RP9=Aehl zc`_3Cjf=M1z^ZYVUXEVCT!l%c6fy+t%U6^2;*Nu2mjiI*cUM_~^Onn@wY6e09=CRa zJiq!MUQb>~vkH7Be0sBG+~2jKy9dkFRYytM=?lis2q1VfWi8|c=SSU_Px44lrV!nt zo=T>r*9meSJA(rcqXI)Bdk>1~tf>vf3Z{No`Po zc*)T)#FJ;u*KXP?O6nunez|=%pGw?wj!~oIa{7Rfq^fe`$k!9!zjevVE@#StY?1?; z=+Bk#?f^U1{E#LV!KKfqdQj+S0$K#`ewG4xlDbq8W!-+L7UDJ|35|TIn zYOntkCp606{Mh%2K8u5D-r+I>D~g`!ea7dpA90wM_IqJ0Rm?g8b%KlUmY^Yvzc8v= zIV;VpSPe0Mf<+^?m1njECVmnR5*>=mIUHDR^lE){Z5WMZs1Bx( zSN;#uiR!-B$rNB3%ORs)gcLP5x=HM%33t4j21JEE$h{j={t@CrT^2q}j~U0e_HF9% zb$ACgA}J8tMMpHecw|P+FzqXS1-)jxDgOe2Sf@x?u^Y6s$HP+H{I~Tp%O%FB5!<-n z;&}2_kh)B9#(8%r$-0F5FXw(aM58$I%pMKmf`|3ENnuME+!@c_IyhoG?C#VaH$CE2 z;a`!w2SNNpI%i%Q(0PfwKmhAxnk0Jo?!_O=MC;KM>%kb}e`bW&p_2OgdJCxd>s#Qn z!vS^3{`Vw2g|ilR?O>@ZK5czyw?fKqqJp=Hzjor#^O0_+@k+2C@+lN9Tf+qNBA7Xv zsa|`Wt(a0fMPoGW^p1l5WEk#Kwsx)%_}pY}_s4NnUHjjxXBjd)psw~C*w5)8_Y$C)#bT+rg>h-{?D^Wg&0*40u4(I=2GEwa)4-ArVQK9`h6 z)rGbR8y{p7h&+M6?+h|tIhPKPaB-g{`Rh~vhyu2P9hMZ+!KXOcE9dl{zOr-ah%m;p zZ;O_TVmG3bDfzB}zWgvnMK>I?Z^9SgKg&EsY>VZZquHpG9hyI`nlS=!^r`MKk=*;h zlx}OT?-PvMhQQ@!#ea>?m{2Ty6RJCk>7o|)I&W%LO++@~-k5HfIn|E!f;Y)u8hB2N zg1`m6RyW7IS@DYTAlDWal?#Tk`YlmG{|p1S^wH)f99;@hijDRu;B$Ci?Z;^=oy<|L zV@^9QKeh2=> zG^H8LFHI5;&66oX#)uT5*0q9chSMg_Hcb{zXkTSm*tYG83oGE4P2L*TU|U2%ug8=07WP0Rj^G0KbGV$}{k&~-myd;Hdq27ra!nGfp@7l$sy~S?x_C=#g zS4I7vve!0VG1+o0N1c1^U#ck$qgD?3E7-;h4NpYeoN#Pf+$_!%|KS>c9>EE#Gl9 z)kXO-_oK^lPC^liUEQWjQ2uw;vjo*tBkbAoMlv0@fOAD z4waNfMCop1C?6%=1JWYh4MTS~h@^Ci3{nC^=Lmyz58W_y#~WX)x7PbQpYHw7x#!%o z_itZ_&sN{XRol-a$Toxy;H`Q$^Z|lAn`^xVFaNr|P(p-B-BtXliAu{sE^(=Uv*T3= zCpI~#-tOl2z*|Xwgv6D^@%0AKDWK73`c^`=A7WJS5$`J>dVvT(3c+ilA8!G7_%6M@ z844lWm)rNx|DilcQQmVMY|JWe=aHaVO1e=Hu!apaLXDHLqqLQiRs)6=OS!ol6vs65 zW?+MwDO9vWKjP!se+v#@bD*5Q#m9~Birn}Zr(q4Ld7-aRH$|@3K(J;+3}+-7+I0+>r0z&YT0_Q_XkGn5VT+d&Ozyi-fa~kZy2=&aQVI%BV6?% zE{U`!o4XvVh5W^=3_5<_f@k#w#S5xX;%EVTsP9%ehY`<+SR zF^%^?C79d;(PwY0-)czOTpR24i5X>c4E@MHgfy`0tEZ zXmmi%2#b}@U#u_n(9mHtFS~oV2Es^x^r(l=#}S1 zZQX~!q4t%sgZz8v6YK%7B!sJRH0(b8JEwMY7#^PPp4QK$%5jNH-JK^UG#~c*9|K|RY*KTrV3M?= zvxYhco*=b$nyG8EN#+zJBU@+=tctcK`hHQLJd?>{pE(!5-85?cA9QK>%TF8l!FA7e1#S-ris(DjVZK#8gExdn;3a%o$$q< zl2)9#59F0x5E}`9Yb-xj-&m#A@ZLGgt8ua^p%O4Z3=h3z!;Xr?2#cyuRvJM(lBd9y zdZj5ZpKr{Dau0$pk-jKBIW*9FbNkkAqq7i`pZmt|-(7z)4|N10Gx-`|I!@7AmVhx{ z?{^xZ%JZz?xtPX4jubh|9~Qf{hGKbmRU*A)z`=C_LXGbJaU(fZlJ1w&Ms7QRb~exu zE`E8@@^nn*<#+_Re{A)1gnR5YX`y2im1pbkSCM7Q5w+UDyEx%b-WzxHiF8koV@FG^ zP91iiR$b!lJ@ku0mx(cU#;Jw4)m#LV z`Pj%b6H$yHpY1%aytM_?m& zYQd9Uyya|mh*n#aKonU=qo*4n??B%9|8gK z`F8{s=t=1fxMclR94X<#Z#%SLQ@yxySU>52jAP_WgxzR-=F2Ntf0A|PXK-UndCb$t z*={jl=APqZ7b2C?wHRxRsNe8*e2cvO{%rY7vPI01*;RY_6VaFPbADlTp z48A@_UFR~2NWE4rp5@I6`TT6%i|OAv4#?Weg&0)8-r356yiwpjdhi*;JKAbxUD|3~ z{%b)3sVolHdd;E%NO7P#0S#YD8s*6;W=R5_c-?9?B7s&sdA2RHre>zP%p1dc>TSb8 zO^A-&bZa=Ss>o=qm#JKW{j%l}?^xL22>7Ur);AjyqNy84Zo>-g{!ily50MUBi3zm| z#fkcYhxs_UVwwwi*>*#Q<>Z}fUmm%}5{}+0izY)hSf?bKWUKJ9m{K}Hj`=mz05055 zL$+R(K0o}TTRxnltB&IvsJ&~&ER5joN!EFv?JKz@h9Ndg+4lBlVkReTRbFaq{$z5M9FMi;V=+!_qz5f%8IKkw48Zs*e z>&+}zlMXh|B)5IEsc;k@Hgf6C>(*GgovFWc)GYAUupK_P*S^XP9s%qxtS%t!f}?52 zi-ME~EAm!**;OSY7E=?#(wARMbVUZP0(}Q`SHINi@NmH3MGnE4z7(LAT1HFlZN(AW z5ygsz%M3f>!?_2fa-?wu$VOQ@=vp74fA`o$A)k13cbloR6ma*BS;yZK%^ltB=`Eq* zPla3+-8*nYzdFtr?8u3q922()o#9@sR7Tichg1u>(NVw?!5)9}U2cAr0DVrG!eM}- zLrl72G-qB~ne)hOp~s88w^%Z^t|zvFV)52qeG{2W^*;>Lu>9fUM?-qeRxS(z16W`_ z->Tgo;5Sn2Kb5+J{$TzYiU=%?8~Bzo>Uyk*2@3+~q55j17Mmorb|?lcHhH?w(q=;N5j(fRmZmmDs>H*gVL1Fc1j((77kJUmpB^qFgb)v& z3rC#j2paE&MpUPJ=d+*mN51=!t;P?J(+gJalmg9gJEwNg_J^gdJeuX3tq6WAiTbnS z7^h1PqYjI%>2^C$#KKAMY#G&?>D#@z*f)z*h63N{QgSLht|7DXO4HtH0Abrt={eUc zst#^JG8~rL=6?%o=g6Ok{)(e{Kq3&b^pG&Ij=xMP;xP&9cmxN)y}}W8Bk`~~C$(Wu z!@}c8`Yy9GYphl)T?S^m1VS6@gQdy1qeX$SuZ(}({&+qp%}wBrMObdwU<}lb8W!p5YJ)%b{SQ5WK-33LD{~{siRBsb&~3W@^RJ zZzUq_{L+Vu2+DhRa7U=4nu7)X>^^!~Yq6>1Fxw`w*?XI$?LV1<%N>UH^U%CD6BPUs zW7$9>p{ARc-a*)8;}3c1?3%1xblY(_w}S`t4B_v#;&m$H!Q zN!L~|*KqcA`C`>!0y2BP`Mt>G;2qd}VAXPghbo zHQ#S9k!-FXg2oD~0NdT>^;%5~P93TqnPx+1eZJOzHnocg#z<@FaBUYaD7r?&jbBsR zf3cgE+Z#F-ig|)-kWG30%0n>6oW(9dF$2q8Q4}0}q#VCbz9T;*O?X>MVpY*Q9?zrs z(lazU5fV+DD9a2K4W_?rGDkkL%t42r9sq-LpZdlIh%t4ghsS|qNBv*=%e}1P{?`pOnF|J+VX-F_Q7Oo@r;+Xm@{JpFYyKo#%q~_AHH=7T z@!7Gquun%uFP}JH9{0_A`?og+^2Th4`yQ(ZR8!RM!klv&I*B}=PwE=-;6gZBdrVnT z$cJD3+XR@dG0bHCkde$JAAz)hk&2HI=%jD^)Gd75`BMS+Xq%$4T#Cil`2sfYkLO>r zgy&MvHkC8&wd*KjMxqo%^&fx{OFs<;oSmkMs* zLL38H<7(w5lLK@n3+stm-ZuW`u0p}B1!D+SX9!zHNxC$F-HCr}QJTYBe00#Vj3`f- zE(5!qE@r!JCDd%Va?nYr(5 zk2g?91D0}P!f@o=7(XJw`Z8iw2=asRFam*Hqd4kV(Q5IWafylC>IG6C!#`L6?gXzw z^0~A8PEF`@o1HJCJ78jYWkb!^-Ih9?8b6lTnSa@{&Rl)L9V@9_&Z!4-mP|^^cdh+H z$-_a{f4qS;_U;Yr7vwh~jLf>B+`G&PkG!V5df49dZi4Zyb@?eI;%y(BxCvO7BTtF( zs1k~&tiU8iku|nGOl>f#`W@OE2bOE#$8m>D~h>#;z=Ub|~|OrTLg`H$GV>fLQB zG{pH!)NRf(8d>j2&d$oERb-SDIYsjQ8dD-^(v)TLCee-qHUQvq+CU=N)@aki?$!3k zW9#awt?l!m{9AdIJG0)%xAfi~h{JrE4yW#6>Sb}?C+J(m?!&kx;`c$o@lJy{(Zw>j zsVBi-&1tC}S^N1}BClsIh0lIEedID35-^}!$O?%3Y4y!C6u2V}CLrF}f3UFHpct&= zR4>o_cK+_&bxGIiQ6|=ca`VmDm3+t3?uJ*SCqg`cWplTx9-h2`q}IpX+U=XBp}uZQ zk{nWYCT~^`?0LHW<{KV_Q7A=mS{bxG(9I}f^Y+7brN+sk=h^SvyXtYqOy_*IVS{;g z);IH<3xwA2N|*&Rn<^|r>ytLnx4fUOD|!5l_f|wH9+q2xDP}33I#!nNbn-qEJ(L}j zV`Fa!4eZ)2USLA+Y3`7Iehv5mUB<=ONuh51{g(<7LA{l}!Xet~Li-&0(kI>yKZxM|4apfsEqy~ z+ySv2$Tm63Iq$nO}d=JhS=^RE09v|*zFtAi{3(JnTpw0+i zD#8-CI~!cA*sHS)M3~z31A(oBqGh^~!{1AyMqLa4@MBbs=d8^|D$j(BAzUM3lN=pq z81`P|Lh=9R37*pb`U*Z>Z~rkFiAisKd=0n;Jx}u>4$ABJm_LD^Ssiw=Z)3N_fNM#? zX;cyJMgb~)LyA(u(w|ubQ*uz+L2%*M603_|lMbRL8Q|DQOVN8Pfbj$=A=M_zELBvZ z)rDX93|J@UZZ1A4zGU_0%XsX1d24HK8I+_F-&L1~cBUUZwKC!P)C~D`@iw@$F?K!(S73OxXEIx!3lya87kRFwU&c9n0m zsC`;RNS>UWxQMN-TYPpLYC&pDZjg?hA`*(^<9hC+9DRRthJAB=9rF<5v8dk& zdrnfoPIxcqG{yGGD7CqHHjJxvS{lSuQ?zhKA!n%F$^F|q?^i+)V&gh7RMB&-yBAA}xOxxAz*rC>0pujJMzDhBQvJuAdxg+p#U7ttp z#V?V3G*OfnoN7Oq(fn5!hcqL&_bKpOTV95pMB|5a23@mZI=d?2=!Q_jg;rd8M3>q_ydt zwua!p(jP~6&R72dEYd9NK{^2RnpLcK!-dk3=-$sl8S*OM%R9zyVTk&3;p={DxBWD|D70m{<9k*>Po-6%>bH<~=q)}s9d>YZ z<{Fe=I4dzD(}N9b;7NbEOCByP5Wz%1GKczJR}(Mm)o$zwM^1k0qM5&fi=_=Y;q z&-MYbZgL1{wB25XHPJuXFRYR+5OaG81L!|CGdG{yEIiOV&0itM0DVCF#qqvFNB%TY zS|O7>%-zq*e5OT4wnal!qTUcW0X60DFkesshZTQ) zm+g^Ka~IS2_#PHBC^r<9i1w<;l&#nl?+vDIXrl6Nq(&T#1xGB|ERJ1z2u=7JP(~Px z17;{!#M=-OP7$9g&?G0Mf=5y=kjgnYpm5x!ygJ8!_3Wi1p~c0uO{^9-sbzptL5C^6 zrGr*S-T|SPGvX{XiS$RS%@`@VCJ*VpL51YEj#iE~t^%4?^sgKRroU535-}we^cz2C zbHWd2!5;E01`ay?iO)vANT^w&N5)OM3Py8hZ{1Lq_wa;)t$S5TiK^2X#k5vt{ys{k z!T@$lNXK-zdlXBy6r<`SJxNEW?QsK5e>aO<0&hkio_$z@l5~R13CB0;xfRZBTMS!! znR7dDb|%Yb7TMk9oCH8%xP6R{Lh!O47|UB1S2xk=ovC-SZ3rUtF@!TMJZ*g@wZSnd z41DyQMs|Rb8#@e5V44P^)`N04&sh~HJ@l=APw?R-(Z4KVDsVE#-Ej9x>M1tLCzm8T z8QL{9dVF#Yk*E8!R`=Z($N&H|le=Rj1iwNm5-E?upHs8iq zmp@(xW!bzRQy*V_dgrzGd<%9f^EXBoxZ710ytDpOGaR&|5|uWs!a7AKL~sQQBVC_IRX?7 zy(%AiK13d-KV05x+j3a=jDdWGhAm6Od_XnT4j_Pc0f+u0CI{GqK9TEWe&w-BBx z{-a_m)6z7%m!phEM-hi9zv22=L^~xtR1MD`D75uBe>cEQ z1rQC)(aK2ou*`fz(SEQWwv5eAM1W~68qVg)xS!A*(!$j)EMGI@HXXp^wN&9l?XO+@ z@U<{LuZbwG_nlBNkcOI|^R6$*jTfn_9bh0?hFZVHqy)@2mqHhF&U0gzCMtesgR4EX z^!W6x!6*)U{MKT7-jVXp3!K#2A4HS#y40Y1S9>pv%>uPY|1s_D_muj|4iV@FeQwTL z^rC9BF}C}NY3qH(Z>!EtS*y)>oUs->ZCXI>{?3#{tzUyy7v6WX&i#C6#ZY7W{SUAL z*m{lslwcsM(Sm?EFLDn~#eB{@f6|rP(Wck4d0KJ8W>n?YhVCmj-2oE6eEvXtdY0T1 zn=Slt^7U@#eM?8K*u_I*jpV_ii!1CXwbhf&!+CB^P}t}y;CG(}bOMg*fIj$20)6xY z5B9a5?8+*&KFOq%F(P?PA7iHvo*?G#y3&QX3v4Vsi?6-(wf&e&{$N-7nnJN$!@iS~ z%(f)0*{-)_2Cjaxg>5^MvtU0Gu?5v_y0=%ExG~XvGIyG)y=we;dT}7AHBXzH?xzsh z40=8!(&&AyjRz7H!sW-=N&Hup!FvH23ok%VZ3;ub{PH79HfW|-;|r~DwM`=uC|%MNE(FYs`dS=*9D(+^f2Ufg@y!cpSey_YMfDk; zoKDCo{X8~})^l7H+F2Z^M{?btUA%ArmKHH*7>Q8EzOuK*FT&VSd%C=8a@)wdOT>>m z;br!MWQ_QEsqNmcN45q*`6FQPqP z;%r6LCV+P+(K%Jn$u@FY7@9WSE{p1`lTN};3mIU;V6Wov<9}B0!G88$F(#R43j=`W z-Zy_}kM+0IoY*?U`Uf@QB^%Gs(}kw}4!{!YA!)dfs5X`F{?^OFex9Jar9Us7==^r0 zEx08co^Fp8QlO(o9ex)_MOEGh{g*vwOA|tuLtL}2&PXLma=zK=GNK((3%{EyY)Vv7 z7CrTC(g|HJT^!q~n=?_lw%^BxHmP3QFZ6E0jr^bX>zMa=gKDFp(Zm>*{}$~cE|RzZ ze%c6IGg)E#cs9OS>Ng+m6ose8YZZszN%Dte3ak1o)~zgcly(Vtaj4TKy8KXN4-BOm zz<&Ee*POpnIX9!4@@&7J z-{AK5?cMsV{!A4*k=~P{{G6cc>{|B+-t{*T@d0-Z&}mvryN2hi4A0!|>RCrQq~8nu zRl4Pvb)ma*sOr`ZJx2O;$?Au5L}-CxV_YW_XP!-btTg!HX!E1{HkeyqVr+jrf(_Us zsjAA}RKCbIV`hv4O|SK=t1Idf0a!a~jQQ}Y$2r8&49$sFY|C-K)udm@znFwm){6*H z1~si2Mu?#r07wj^_n1U}fc`OkWpe|9_O7Aau=TTjayW)a9De&cCcYpo>zQnc&lJy? z*7v+3kWn2a`d{CsNhq?NsziDLyW=GvBCe!6Znm{JO?P1qL{v*IzC_#r73_(zxkqUsWP^$((k` zRMl)h&vBQ7g+4pmT(Z)B5!zl2LuH&|+`obsw#)-fqzIF--O0?{K;YEwMohv$hUXV? zM6z-1ciZ#DEi4%5t~Kd&am#L5AL97fFpz0?hud9SYf!csa4~7^OLayR;8`UJDx*8ZvGX%_o}@ z%yyn`YGS2o(Gfa^Gd|bQyesZ~x=i(4$GX0KJ^LJ2_!^SyiM#%3*LCWlOhN9f?8F>C zLcfSN!i`rrYc49-X{;aKb#uBT-cVodoPc)TE$0y+<}DQ%dGET`du7;>iex<>M!lBB zTCA@A)OOsi#n7GY>jFg!W)kl%AKiCW3i~e#GyZ1HTAgd8$cbU2{bQy85%FL&$_`^3 z53Af}1utp$TSnzmlCg^o2C0tLtzU{H*~*ZHrwdu%^F7TblQLUHT3ZiC9riknzRZCp zy0MnehmKPwK0ocQE(PU@Y<%DzD*X~Cy@$ff3w2(}i9)(2jS`zZn8HV(rosD2*R(2a zXs-y;N{GCs?4+@*i!T4Z0iJ3}b=6of*HMA5Gtn1;+!${GFXQ4Msz$$3z5 z!K$McMeO;$!zfwt3+cLeB@9Q8R9cObCohvz(zhPhW!AgW7H{T%9?fvJX!)Yv_QZk# z+I!>ddrkW@1rKF`cdaKlV~#&ey|C#B*5bDV!g#u=S)puCi$289hS#DtB=xR~tG($f z(9S7zR3nYfQjO`|)?3w#Je+N6%F`0ngT7Dcw(hLeGo`YS;=Dv>`A1Z!T8Rfv{qn=; zrEFm7VMC3wlk`6NY>|r!HDN&O zL90uwP)9Rp|GH)0Z~0MsIR*K?YafF(LaCvylrgjpeN7Ri%mp<7%jAqgA0o{7e9al= zEBk@&SyDTS?RJ#!Z*JbXkUyVjBDL`ER{%=kRVhguLai9du?L%sNWmGTRX_Sss-9O< zr{k$iUMkL&kM{pPn_^k1(!5r0`aN8GGRRc+`WY4zD-K(O-fY-5z$9>iCHzw`=O0hJ zA^~f*T@=|YQBT>QrU_uAa&(NG1K5Nu@{B4w3=C2;PIK6wkygV%$XnM*rz!dSbD-N< zrcDsaVc0H48CC31842rtfS&rrQR(iyg9=9}3Vj_VAD+_CZB4nmt*e|rGG|*|k@{%V zBXy$r3vh4#FH1XSXFJC*NnfJ=zuRdJ48)`bY3lX? zCP~y$EG}%#@%@)gUt?;oK{YK}pBWG)t}tlFm*k)j-aAe4Kx%8VdC28>zdjN~evL$K z4_~3KP~0)DJyVj~CxLVwi3H+*r-uhRgVF0h4QV#mPMyIdO`cv;i@I*az2t9nSZFlw zi`mZe`;N36hRInqKOvK{t093sE>z+Cw6xD48$P~-0wePi=aQWCqJw4o`JQtvg0SYP zmYR{B!SXeNs?k?dDbwCBmqPAaBR=xGZHZh(C3zkJtP&>ibcS_{ zsU3Sr|5=R?@CL-I0LT|i0`(@P3wFlRI4|Km$>UVSu{9?C1Jy*~;d!@SSw%G2%515w z8q2?QB?rznnw2sZAu?q~>g4qBneA$I)&R#*_09jlMDcIzpG4^b?b=J zCB6Qal=MZnJniPu!0agms_H*?QpU}77vOUz8#|xy_0}`D3{oL@lvvQk5C5GfxOTkO z2oIco+)n>~*gbO&LpW0|P+`L(%)G^c>zgd3uou6QCGM{B2cK)T{$Z}a`gpo~5*Xlp zOwWJybhy+Wn0soJke2YtB9=71-O@W4GV#H40oaJBLyicfI<9%RwK-xkNY>lG#U;*z zTp$(?VHe8@Dvv+Zvvruc@Ayo*_}s_3riJ3-+3b+(qc@2DBWf4+4uqr>#@Pm$luBY4mCsR^6V51?v0{}Wx%adbFd^p#xu9=U;D{x+!U9=vXY)n|F~-ov}qE{6ejGYRVhTJ88Zx@m2$^A zeL$<~A|7Rbr=l9nFDR#4EC;+JBe11k!H8Pz4 z(7s5)sZ`+wT93#lqMa8z33ti|ooCWRo(?A~V81-0_Qp6GttXj8Fe0o1XuhMA5m=xJ z6mt+!xkpK@z28hrRF1HXNJNov@qxJrH`3`;J(Z+WpYM%3&yI}jy{2fr`L$tFYb@kq zo{gKD&8*En>1G-&SA(Cf^8KTDOK)ysCa|vNF(fzI&2#47T`jbQ-|i?+cc-t_7L1u| z>2EeF6X@kF+Nq{tf7>7_X^_&Q!Kn5KYdK;3JmJ~a>hqUF4t=uVC1@v$s5KL1xG zw09x!_QL9B^QePhS9G7S;Zd-8tK)m^i9E(m*e@Z*)PCA`vfc4l~VW3Xdv zHBH3xZ*u}Blr-AA<>CcpR?xX`K;je5`Afu~@`;Vb8xCgWq1;-JDu4u)SM-YllPLE2 z65!QVS0eqT?If!~(D$RGAXTz12L-LH%`dk!pS0#nmx~TZc~7ZuAp+cX+`ov~YLwN1 zN>#=d19|@l0?5zOj@g^7G}O~Rq;>AIs|TTHl`c$A8{0?E=hEf3+-HX(q2062 znOc?k<+`r#Z^#;j*d*6Co2;n^cGbTBt6AM<7G@(+O1BzQOHU|?PgIV z9q`3_F~2zZ zz3hSDG0uflSEDW~h$hqetkO6o&J=u87}hs0=&%_()%l!#d-3yMQjNJ>q6gYf33Mv` z7zi48g?To2)1rlLTAA0!9R9?BS5y+rSBzgcnxNN;Mc^3`VyV z>LwB+F21N|0&XQGuo|EKn#Uc}msjFFQz9c-#dM_2MMmd|iXQq4I16gf90gUzjD&2*|+%ltRhLEC=~yMq;w{_L8qykU#rA%Gcy2x)%M3} z4&G_(u^1wOZ>t*>^+t~+)@GTO}>N7&YVX1+iZ%|Bh zKbT(6mb6$-p+<~q$7t83XOUcV#dDX3W?b`2z0iyZCFYi|a^7LcPm=+e*8JES(|vrz zJXEdOJD%7+OyG9#GYzORH1=m#(tR}gaymK|dS;lfKYh8)Jzs^K2J=5y{ct}D$beLX zD?V{T+0eI%V8Xb%pOzW1M+X`7b;H-hQB7#P$_;h?wm{WT{6Z z>r!DaNaZ$v^|a#F9ARDyVEBMd4qf2cqt8vJeHd>YxTbtx<9Iw$D6A0ra=ds9a%=PX z0sQV@PF}XX;V682JKpXc<`;4!sDB1#NA`C%fz5l7=7r8(JC9A*ggxt~^?XVqa@~~W zynVmQ)7yio*D|WgjlE19&_e_e$;N&tx0NS@evW3GSg?PZv}Ln3Pvrkq`nK(ZAFqRc zt#!n`-zPo$jE>;xz?=YXtG~|HnF=LiCO=OtG`F8!5*9n&SY$pIdbf)rqs_M{^gzkL zf;P~Qq@NypT&ZMIdtvr;uyY8MOKW+W67aVaW>;Y>L4B@$k8#b3JsL$2ifg+U+>2+2 zlh?Yf<^2p;AYJ^%bq)25*Zf()vxi>zi14ZgEZ0kI7Er-|_IMX?!Uoz7=?C~|Rqn3U z^kh}s!7A>oqG^5H>efjlU$4ULQ!I22e+#8wJ$Chyp;>|)t9I(J>p`CTafxGu6hH2H zO-dW5zct_?1cYn-%Cu6RUEo*e=uA-@Q-eIxwh=*Sw>8>GM&-A@V|vx5vpJ<7Aenc52J5pxy1)3-`@-U;peWl(L?j^`IgyXgrsk$u0w*bQ_8Z zH;_G)j3+F;u;;$EfBNg<&`giHDsu74r@(%n2gzxcB8m6(E86RsPD-t;~gGF z56iTAqiGWMaWNy~GQMTbNtS;Wo2^ucR@mMR_TgvwaJa?ktOt5~Jk zUTK4F##xF4=|A8*Hr%ztmO?scXvpHYXK;q;xhg7M-ZZ%5h*1`2f-eTZLblUEv+5xT zR2`goRYam$n!vX~MnA1H`*S?7en(Why)(w2;=Gfd>%}hJ01-gQeOV(bz_9xr!XG;a z;ggox>X~OIg?-T;HthslZb>`@Yz%kNY$5Ah3^uKije|Xyw))TZyDIUbT+Ice*F;}N zwM>zHp1;L#Uh0X#=G_>S1NW~DViX8(VlvO--(W>b(HRHJ$j&D82n{+oxgC2OSMUkH ze2jQcWfjE{Fl?BZl^8G+{#T~Vf30So3ssHh~x(Lv(QrhhAh@!*GofR{5SN0XfDA*?3R?Eeh*UH*jN+ zU&<>Q767SQ(HNWpl;Hj;97W$7h~b9wBm<_wvVea|mENOblPA#q5?-qIezR@7bny@3Ew zvTk}8g2)R$#@7vy7gD!=0M^xRIFiR<*9Cw)t}4hBe&Ez*6#Q4=cm}|}CZk3Ju$<)> z0fhShuJd#pHrrIl?Q8FZOX75H3M0scOI~=r8SXxepRo1WA$d6ySY|WK3=OHS#~|zM ze>JVB^*pZ3g$G{}@jTQys$x5dBY-Dpl;&dMQhx1>2ADpyQuJJt${QwNvm96;;i2d8 z+xr8m&ZL>Rhs&jO?S+#}>+jDCA2W3jM{q-La*T<6m>y z7J?m5^Bs!`wTgpS?{E1?Imr5M^ALZvRS>Tv=H)ydLE2_iA$z6|JPQDT4@6MOEj2|xlTm^VWhk1MlXtaf#x-AKl*d}bcd zh`a*;@%(Wv4@o$#Zxju(b^HFk`_b*f{G*SnmInai_fV04J5S9YWkK+}dNo}P=4y;h z=DaPBI;#$Jp-+$K?N}Hr@*OTGJBg+I0J6KC>K(j&GN{&d4lvrQ@o=yPiW$XzN*bH# z1=W(e+iLC=yCV^^cai;7j=fJdnz3N5{qKUr&utfq`c+SI<@#=dabK(H$Hr<+sD`eO z&F+IfH^_(Q@2n#T<6HmH#0=2m=2w7sFr(5 zDOcG2{LADhH)-cYSsThIx}=QCzEwG{v%VlgJAI;+mq5*%?lIU|GeW_(=JPpI34A$T z2p4#Yu7^ozGo2*#~s3*Q^SSE>cRq3-pfR4kAx}X2XGv zqtP>XWk^UPDI1AO3Gjf27Cy-#bS6ToEz+2&hjg3u1V{O?^^Gh{0i-iVhCEae7WFT| z4pkT^9;7^Zip^S2DOSKT2=J&>2*I8R1GM1BkFd0Bwp9m%#~tMGMyk|Cx2JTu`$`Jl z9Aogc$$<;G;K?zW6|ke#sIpU- zvU^aq=)xDVDn3=x_2(UBKRc_4VUsln&%}R9(?nLgcbRsQsFu;W$j zc2(9d+ecfoI{RNb)}_?r=`2M-ER>_ekElUNe+M>C(1=4}J_qjuVn~a!KGDy}2+4Ca z|4I$s_E9YoWLUXePBqhoN}`RpZj-fSJc^mvOPrYCe9Rb$A)Cu{!*ep$Me*ogmw(sY zEc^41=m`6d=!m+zFaXeW|;>d8w9bwO04$m#?W=0~DSW zsLt?Nb*$$7oqIu2pY9F<&4@34bGV|$6qgDsD-$z;?qiY7D4vnr8I%LG+kCcEP=)p7rdfFun{Bhtw_0ir5ZS-L{~9@q zPoyJnTY*J8OMAg|!ivpCP@wJAMKxctz7c`LuqH-AoPzqBI(j9Pjmxc}_>T@-B@=7E zqObKhZx9oPrN_obzDJYEVUV2W)y?^-{%xn@f@IVv*Hs4va9JaJpbcNILuSvpYQr~+ z1^cdC>8l>=4sBf`X>ejvYj1QleUkH4u5K|NircHiaqxBl6JU06O`7M zQs#exfa-KsD!|J^Z5E$38LGZeowN3$0R=1^4b~pki#@P{h?~RQ=r*N}*XsR+zCtD(dVeZXuEkZdvpm5=562VBE>D3_$ZeQC zyz2Mlcl4dU&!$;SsoeXqSzb1tdpa`^4FGVrud}o=%P#6c!4JG;7|Aj968~W|F8zwru#K*zboD2jndL@o@$9A*DrAzOi^Ed)0j8itkF@o z7ylx4rK{ply-!Kt6Vz{m_HrV6Z7?-gyq1cYI6;m>w9#^+RmY(acM@Z~XLwFs2X$}_ zkHYWS@$}YUV8#3IeIF;cET(tgILW*n^WE79OhPK3b;QCj{H=std^hXkpbLayO)* z@LTKtpEm>lpf9)+0h8{t&xAReQG2F=U%#QDJS{98mMTEsd<-z#mvA?{nD zjCyiC<3HIr$2jKftp?bV(avMO@>t%1EF}E`+JsXx z1WwT|77+~=096ClSYFr>H7<|U(&6zXVn6P3vC+%d;o zg~swkvwp0Tp^f~BI1T#~af){vu^Av9^>j`>@aOOYF6t(U?VmjW(lHudr!uWprhIVX zG}@gEIraNyXCER(*qu)8(X|S0fvK796AQR!@S z8DsSFOvQ2ZI|SPEwdaxxgHh7D{(gd4=gE;s)CVGgBkMugLyrnN4|ksr0ZEO54Nb7e zX1QQlSsKwBuk{BzGkQBW(8R13la5)THRc=1oIyKNdVV+eeEp}LX&v0(R_>l(FSFF^ z1ficxKgXxma)@L6?mWRFOZ;ad^hj7t-<~ar*83k&sVH%f4M@ z`Q3eQ5Q(73z5jrI^PXSzQ;V6?Y;5j@u1K?HQlyFdN%NbK?IRAL z^`e`>SXWO74ux=&Gh~#bp~A;_JH|#c>?{&NKX}=@dMju2`i$LY)$(ztFY9Ek zDq&X^y!x#O@gW|-<~U|db45{Dy|vlpT%R#R>;1e6tHF&rqQBTJ7jJd4AlIp@cw&vZ zPjazy6F(G9p88TzTU=^hBX5AM{C3lS*Uo@RQCe8bkJCKP-Q|5v7yj-G`_jG6izy-G zyFX37pzG;mgPg+20(8pnfyLb=GZxCB#Jd|s&xMd3SC}wZT_PK81UM3kn~OWlqG|wQ zPSp4Q(%i{BTEE+q)njD*O#HkBa#&CGRB*Ic$s$s7GFb>z_c8UDAwTAzyztB)Al7KJ zv5Y*RlwNJ^a0tLjRB2J`aIuBqK~$T6IOkJav8+}VOkz(B3wo+lqxC0xoKJ;-mOAP+ zK&20CTO+@~=oo&-ws{nZ&sl;I8zbgR8zPx;3>0OtB4LO&#}XTKIU0Lab-+-H&D(l> z1^PR3Y%Z^4j0CskDthI4`EjzAI`SK#cc_1d9{YbIhtuQ9Ed&~{lCyuWn7I|RPk7dT z)pn^L9@<)=J~fhhW4`z}JdvM^vd33`@2oJihO=jSTzNEKc8|?Vt^g)$owgdJd0&?l z*(-RFm!u}l`NfK5)^_RS!jG~A`(WHT#@Yj>ml27S zr$1FOl4x=JW~SiMH_&pOz^E?#ZiHlO>BQH~IJZ+<1naQ9HPqzNeUbevXl+=oGP&7( z_drkH>(O&y9f9qnLLT7G2|H(U!2&HvYrjv;LA>2H2;_ZQhV3CTzlIo{WmLMfpKnLa zsh_xRU)o%nw%hNWJ6PGW@vZMf0cEv*oQ51qdRBRFNgihDH$a2>ATFTI{qIS9W4nZ3 z3n^>sU9NV!Ldo%)7ygcJXIgt4;K#^FrpsP5*bGQR3s3}am%1V6{l5JxiVW-Lx0fz& zlSpBjT;2qve?z(`6U-Pz%nDzv6JI%oP&Cy@E31nnIfTs`74aLMgrST?8iz8x_!xqe z&5E_l7(A|T+vhJP1=_h1v!B=1VsCvl6GJ!8ST&1VzA8rE9TP->Ab}oD)&YN<$s1e> z!9Y=~&`373?E~kMbsTd7e*(*f)f#8C5drV_ZVuy-H*c_W>2oPZ@Kfz&8H*AX?%whu zkS7&so4hOVvJ>sCsozu6t0Tmn!ghlUMwFkCwQWxtdj)g*xy^T*`c}Ux71);04r(o; z_uOvV+?&{pT!L!&)s(1`?J{2MRc{(9wFJ1k4=)nK^=Lz42(?mKModVy!f$erZm`Tx zam=$f5SC+DKLt#_I690ouscpZY^NYrt$S>hZR@q*0l+$md-)6W?HN6{5+AZ?Pl)0SB z*Z{ni9Y~>r@HpL#;5nCR5!8FB-qhlL{hZ3y{rT~$cs}SQpJ6KYY{bVAWLbF##~)eI z$RAlzPWBk#z0;crbgDFjin{CxF92DbF>Si-^bD>+X`8{BGAv_ zK?u;NY~AE6KNro31RLy-vdWxmfu6Roq9_C$0_E2?NQ6OWl>h+jFhbAA&9MhUUw%8# z+e{)XvYE9>uLqxZ)EbBw;d1xPVM+RV&{3)jB1lBdz-Pv~t=0u?qPOGHT`lT2+~izn zc>vdcw6NxmU(TZmA98 z;&9f`JO;mB{M}Y~k7m^3#n}SW5oZCpIwzWasLX)8%?+_@^2iD@3|L8Tptb0fu41mF z`ZLZ*?1pddgG+3;)Xhns(@XoJ%8ZIUWl*@CFzI-Cu1^Y|zSvXun!+59CSkeJJjXaS z9&5jaUwVDBM{+8s|NUlO^?mTP^;R>*&q)iUZ-k@Tom_{7FIb43%EL4)-KT7NzPW8D zro1y7y#-Rl)3>{T*Om~|@@hS6{f36GzJETPdu;sRve1!p^hntr@ayKj`8j(v`a<1+ zlQFQ?<;+QLc*n+rIGhZa?u*QU? zUlA(ac;QOkhR<@cS$W^ugg!Bv=`cd1NH_Q295%)wGXWTT-%6+U4`(4!Xg!+W-W7Pd zmJ&*6W89+Dh(^>CY0~|LXNPFK^^t!`Q7qn3zGzQCyfJNx0F!$4zP&!B>}JG0LRIYA z-rXaxUT*OwL{&j6=q<$4tU;{ZInqp^1B8NuMGf}L$2vn?{rPipeI_FNR0O|&cQ>eE z>{#F;#gT+(6R2>D@ z*9)A+=W=0CvXjq=xNz3^`|f$gU^knJvEi>R|iGjj9EDKgjdeGdY0#$I!?Lxqk5mBW=Tz5l;m=xGA4^DSa05`!c@9MN3m84y&CD_5-2YAa{IvVJL;mlTE zpiECY7GLmALe~1dK28TlQKNrRjmX(!G|Loi^PEv%iAx=W9qGyI)s>$kLq7}i^1bIB zfV-n$1oK`xUH1jS+HAhXUEuUnnQBD5`@ZK`wmL9J{|D@I@US6N1Y`sxKE{*&z*Nr%k^*3p&2dJTE1OE42lJ@sn& z%CIDk63tqh`~x-TU|GeEo2Unb`nj^WPucq#im6eN>*3g6&EaPpadRW1B%OQ1w}!!jMRQGuO@;l3 zhvNtZcM|+#lz`)oAZ)8idnjWj{dj({pl_n}r6lJ-SiK?+F@EUmP!j@?t9gS%90t)g zFg2`K@BK8W(i(rvf6UUq>1~blSj_~fDtj~R@*X+d&jaU<(yQ4OvouaUjnwQnFG-fZ z-B};j%78pPu0P)QtFPE=gjV;UL9P}zTFtzKHUgYCldRo-4DGzmau>-z1fQEM6a1WE zm=32gS{pzS6QD&=GC>i1z9L1D`MmrNK8i44Y!dXo|2k;xU8q^C3BbU{V>yqM&>@sE zjO9S?V$uDp@A-vVgxdd{DYC^ie)eTJRRWWYvv`;8Uq@w}KhM=`8)wqrcl+lTA`^M7 z{5MFD@)b7ZPJYPan6fg2u69quwhgHLJU#Hdf<3CYkwsX(d8r!Z$$j>_B$!+-r$7nZ zg!^%_LA)JawI`FSM5>9l6GGfW{#{1( zh$#T*Ra#JG+#S`BhM|~%uU*Pn%{4YDM7^uDz;J|R5eVSE3k}U3ke>$iAN%;0A*I(+ zU7>jfn9*uIMuy-Hi6|xeaT)iG{2d7dan$vK&ioV1@$kQzIiXdq6t(t0!P;E-^V<{o z9LiDz*y|6loL%5lE0?U`G1oAV2PY1J%}RR@^)AlS_ZKUpi`HO)BcEC7l?Fp@KjW*f zS?6yhY+_80AeaAihpi*zJi>&xZB@~@Wy16kvC-QEFBIQUO$zJwPTQ^8^%fNZJdgUC zF@-Np%s)zuW`J~2mhY|KnG4wDdZwxvMXZsql;U<>jWDSYqvEd)M>Ljwni>u>1FFNK zI+=-z=06PLseVB_AnOUP=APP=`tjCZos3BaAa<~i&S7OpxJMB50N{r^y9EG}Xeo7K znw~aW_ywPoBPBsRS6=SJnYf1(DH^9+8+rOkGa~hEerF>!cNo#XWtO3zG7=bwVNkoa zA7DR)11kNP+bLy@w%cvgA14Ck>sEQi@JfW(bocGyn8Nd)+cgao>9G4Tx>%Z4%H~V> zWmt}nhtZV2Dd1u0w~$X(!+v+8hMu7F*V)FM9ak^YQI9X%j7r=E=DErlAcru=H=_59 zbC<22=#(7Iv<%?xldi5U&C$MoUur7`u}G~Nbu5DIsdRFq?o5+7qe|})w%o5G9SE#cDXjy_KV zgyoGUFt!4Y0FGU(imB`$x?gYR{T88VNAL?ik^9TpoO12b=GL26N;AH{Q$@zJS8{3J zI@Ge}?N@Q;`NF00SKEtyF4vGZ)dH~C0=>fMR^w>q>YU=vL3pRSPTz8qe>G#yVf4RL zkc(m+BRU_$TpLj~_0~1et4@Bl{G$8@J?!1A2KdE^Z-s+h_0L-AdRLG{dxaa7J*1rM1ALWRP3JusyW(M>Vq*BwNM#FIfI>5vBX$Ld7n`o@K$ zt`y1n!1mfkQMY>XIWnGZFn_6TPCb9#f}qeDpWk66dvuAQ&DdDDHwK_@_|;RZEMDVc zA_ek)0@?#b4-=r1js+LZNN|R*H6nBfbDOa)&!fr<f;Hb+j`o|8*m=7=_ET@JDs;dL;Q3IEe3dL44lP^zD01K97ZfK>{mP+6 z?mSFDk@_0HXOZki-Pq)HVou@-5?b*b=(%f$al#34Gx*fE`+`uQ*EoyCXF4pVHxOo% zebk;fgTx)&5Q*UaXw??8??t{iKl7iBIB1Ez6_lpj>+)Gpt8}=GNK*{7*An8=^@jg5}#|M1V>>+dqiMkP0ZYV ziEI&`?0VeU-pd$){)Kd@ zinJT`*^kobvB8JiR&3Z4*?o*oRx2Dr!QG89in&BRoK=w}-?>WaSWz^Oqp%;V@-p$p zLK~z<79CEAcOzaQ zYx;Rr(1~Zvm!1U;vhp1J7BymwUqU5bGUxgOtRpznBE z_Yaa$KcEv>=@Og06ShG#v(|j)SOHYn0e|?JT~913!S^yhSvB;%oJpSm!m_6Fz;xmG ze;$x~uJ3rp)F~Of=Hq{MPTeo%8DNt5mZe```C?N2q4G5s-0!?wCVn*oI?>&HnKY(% zmXePC_xa-wQXVJoFi~EA;anw^x?*ZjVGKd?oO)ZH`5kbyQCY+Gi}=83PAq^3^P-rL z5n=YK#(8^=a$yle1WRSlswc`9h^6-UHd4y zoxK}Vef`j!GuAYBJzC;)70)cfUUYZ3VF_X@zg~*71hH0>ob53rop^(kb0v5GfVNAY zA1+H)vc~rAXSErZ)l1$@9~krH3h~*VF(j?FA4)V?Z#}c$W;&@L==V!F``>8R!_`k6zq*-$M#_+fw<{)by+T-3ugk zbrt^UX~NsW$-e=Qw?pRgn~}BWn=h_Y;!)*2OgeW=__G#c>Fa?|N+I_;6*NLMhQgmN z4xBZtZ$1;t5r-1r`j^dwOH5+F%A{G-^&grEy8)FNOaAO7E}i2k*h>f>i&l<&igZ2y z1xgyz`10D~W9#XX2wsLig_e8_H9FZ0Leltf{U+})7pFvnA6QuKYiSyXVEj`)V$!y2 zm32kLK_Sc&d-2>~Yo+PItSMJYVk^gQp0NzDAsnz4B2mA^C2CIdrf@Rv&8iPeU>?*Vtxh=(}eZ+I0^NjO)z zJ9_@p@UqJmoA9pLdXyf0!aOym)UA2hhNa)B1b?YsJE7Opv^T*4F-mi6w3e`)Ezs<* zG928nqUL6gfgt?32(9FenuSRCT}1a%gIbnfX!!s!3;(Iz(_fQOQ=3kRLFp@i{@K_- zc;cZxNUyZvLA+1kBEhT-+(WA*o?1yTZPMj{;>wGDJe)1rGk8~QdVD8*c~pDHezgFC z-rjCTBL>HiiyD?XysDLI;j%9@=(qi^HwP!X?jfy(nm8LA!U{d2V?kK9NyJ&njd`t~ zTMS_Iji8I6BdAAV#SaBfZ?ElZ4PnTMt>?Ff?V-Kjx#X$ipFirgziD+^xEVS=*IM?}axr7B@g@JnBu3#$1@?PJ$-u3cg&g{7 zdwQSuz1SL$glO+C`P8Vd#3C`@b5q*r2x95|vWO~$rRtu+CNa)Fzx`ei5{b9>y@CjN z#B@I7F1s@_u%4SB+;H-~LE4ZraVdckS?@P5F1tTVRlS4M5QaCJU*?yM*Q{3My{9;P$%4mQJMjzyf&zXx@Wu7vnM2KOZIo1|DBtB!+0dD+C#Ht}DgL?XGe>fm^O7BmeGdS)z-Oc{-8pa>>rqImTp?D@k&|k_D@921GYPZlt)6wq z;zp7fl~=UvX9B$Ktpb4AODy1`+TG&dAVSTQH)!Px$yXia%0=o9RmK)kRM<4(n>>3) z14>yBIIJW_v>jbFv(mEDaaWk=VDe?kaq%8W`>Kx}1liC;4agf90-`mHFVRtm_QDGu zj6!`-dyqY~*!-&1z11nDbr(y#Zm0w7JoeTZ=-Uuj{aHp_ZE+a>x7cVp{_9q!PPOYF zJJ$Q%T(O{k5O$VvQ3hKWmxd*!JEXgj?gpj1yHOgET2i`eX{1?dk?t;$MoMWxKuVBi z@8b3L{oVV0Kb)C4bKcpR^ZXw`C<-=KD0Cd9xz!fTV+WYZQuyuM>pg$TsnBbYRMN*rWU9h)i@>jHS+#AR(m0AbcGG{>YFbyT2r8^}g*xPT`^bB5bq zVHua_{!oPQ!ruM_-FbB9#{p$-%E@dQ+OPz(hq-sf!Ei$L%{q_FaXsFzPQCrbVVl4l zy>Fkx(Yo1LSVykiO#7x2RF1O@Sl)ab4!kF;^^_27KaUc!3CzoXeYF*qKC$m85`^pD z6k)+4LILI=jh$d4c8Hxv*9LJ~PbM+K3bes2CF-z&$M#3i^9M7xaL5qB7@;1ulj>LJ zjBQlb5ZV>`R?bl!YK5<1tKs|KqH6<{jzX3oy8w^x@vvW5P?8N@{=jGZt*0;m_r!$% znFzNpV|2q`-Lh&$L|U&0Yrbv!)AaCWm~ppmo$fGypR@FGHRp+s0=)HP(rN@RfMg8m*WwB5Oo4h`q*~DnAj6Jjqd`YiPM!PvnKTB%nqL~y zgGzF&-A0v%ta2<}`H3f%_3p(E_Bf08x3*h6gOW&gC6p$uUGh$o3^8f| z<36NbeXG8`czJZ?48$E*`$>m+qI-1bvSJP63Tfzrb~+y2&zFmxs=NzVomWN$+MRL! zq`}H}gzFHFr<~2?zSn{$#oI*HQ|AvF*xe_6=nb|LHz#X;9ngo{Nf`Xfr2mLjvkT3L zH(TPbpc!Jy1Hc%fzwFNo0#ii;*AV2n%n_%AI1Zhv`}g_aELej{g_HLS)5fix$>z>F z{{vo?rdZh3aum{A1VuNi|#!0X;UrWk}0IAl5hFbl&Q#tH@p#ybV7xeE!PZ z5RS8%B1DuC5jPU<^`Wc%KGFpZ>o8rPQo^#pabw)&P4HbxR#cD2-WNAd4(+zR>xkKk9*E>ZzA+u79h#)(;Sg2`puihFf1Ns*I1Lv;i6tDfia*EfV#sFzXTZ4xK2>vM$T z$wsEp{@&*TGV76NZc@k1cu1@fjP%e6A6xW8ITC98V_v}pEpryuI#PcTB=q;hLYBVB zA8hKS_Y-i=bY>K`oox2?RL8EcF#A8-hbKbPVS-UI=3(#DIF?cx(Jt&8bbKc5ICcx# zzjE=rMSPo194H$SnI-Kgf7etPZD%YgKzKxBZ@lFha{+@4<&qqAxE1Vmk-EE#Aag6I z2JV2fs?q)MCssbFT-iAyEsX2TAm*=RQ<&_U*c7YaNnI{@ZCGz};5Qf4K)J3-!{~~x z!{6XXpSvMREopRhD|<1rxJ3`I4yC>|Q_wvfAhjd`n>#HsaQicni@R8R;$RtXu?y)u zCQN$P^xj#U8*}3{V9E?8CfznGlYrPxkou8OXc$QFt>qYBD?21Z@s6R&aqid-*$3ap zpXMU0u8}GJy7{0+?LoKn}m|7jUb*(XDqB)eeYijs|P3|#=1m;6~Zo7N$ zY5gdcUfZRvl80MmA9dU|xz_j2qtjXO>rr*Ct@84n{47Z^Lu<9sf44XI>A5-@mEf=F zu%KK&k$u@!(7OgKx zf=N6z1x0-aARm#@nDFvpHsaqDi11YBJm3vv%~D|E*Ou%vI#m|K{lRB8rkuL_jhpnQ zY=(z}&juMYSOf|c3(Eimfu-tqcu456oWxLT;8hv=VBBc7kL=M^`%j{-R>>%%m^pHd zk|QyGkm#!U`YZwrm#SB$!6-Z|H(&|!(P@$su+ls8&r^VR-9D`wGVcV;s=NCaIk z0+X;zYq{?_%@_Gx%9Ef^8S)$yfvsZF4?r{FuE7@0=*ZNbfnnGUc`R|YczlaGGg0ja zc-Lz9TmYbSlKZ)(*PignDC2M(jHACAw64CQK=oF%!r^%*p9a(c@expL{!$1A3K<@4 zF{CVSW_SR(vJQheuMFvFRGUTe{O>|_QY6-HhKN>5Th=I7AC|{{aMmsgpEgu;vadky zs-Kb_G2MNPGpQxL*G&+~a}Ybp14Nmeg{zgLHrKg^pbf*Xj7swqGEbkvC7d5dj!X#_ zA6}DEnvY5U7N~DPiHLW`Q(dRKWX#)J!(Gp|~xa>v{ zNpqZ#NL0yeZ7|`E8R$~2M8@O^W^pLj6t;_vp9A4Sc-oCOFrG2XM`J>cKqK6^>Vyu& zrXQHZ)t_i7V3Ic`Q!O~PGdU1DVeP^rfV;s9V=&xHMO5X0t^RK;(@P}6e4NTj$jAi4 z?PiKJkHF)Wqh_KdXDv>sm5nJ(pu%c9rSu6pZHX$@tubh}IfxGfRWnP*QBA+J$9H9Z)aP)M8G zn;##{-=feD^z(3+wU|gLp^T?kL^^)_7A%+hLwg&&sC}Yx>QG_f{E0Ul7);Gz+ z8$J0aH4y2e;wuTs>5^r6yX{$AEqn5&I#Ydqi8Hc4A)%|F;)UdeTiU7?mS>lD5|pSL zI)Gp4H$7;;*>$xU!_lTFaBp$<9q`iU3iipKq|hqH(ppjsIbLDb{}ZCr#Khk|VC-h$ zshQsF?h>9P(G7`P;p1Q8CgC{Vbg9&SUe3P*Yuu3K>%DxrztU(y6QF{1vsemPnnUh^ za57781l`@QoxpmD$xW&5*|7Ta=9@3~0}Q&%X@Q*~?0jY38bKGHSZAyl0Jh?iM5jj? zkJRqTO>qG9_PNw}1g1^nn9yJf>;;Ph)NPzV&aGzKNv$mV&`+FukzegTxZ~4&qL;v) zM|=j2Z z_p{H<>M{~Ozf4T9f_4_G&g))ETtV>7wKuoprA z(sh_=-okue+v3x=KK!-qN9*OW?`eN_e%6~Gna^t|_${_V=Swd+lU9q2TK#fkOqQPo zRTMAciq`d2moR286Zb){UQAUIkx1LTRKh5hH*?{;LVCc>$ERIWR6*k1OO^R81U6pB z{)+emWTZ=BKBDPR%&p70h;aplGJMpFZqhtQSd6^@+yAA9^`_ z_agt_#1H7sdM_Co+K=Vj@0VA9Gk@TLfnpYhf#SMXtEUodk0OwDnPG9i*o^n;qAGjx z3j@r+-}<>64Q3~sVhl@XE#k&-8rG`B7xjQ}sG9~GrVOj_R9FOZcaPa-ishpaI~(qg z5W6wvFzE8hf30r>PNUF)%Y0l+$Zj-rR|5J*qfMqbD9pLXYEl(c3ms45q{)BIi{OMT zbd?B!dK^P%Mz1RcK6wPJxUWecn^wM*Bjy^b-y+AkeoAF3KEL2O0z;aD|T|pXg z%fs~(K>&9Vo(m230zhmy4P@Z^rxb~j=x-2=cWJA#tHmmxZ0qw*qAjYE*BOJ8h?^mu z&bW6rcF2WT!E(mBr-c_ngCs)a&#qmcj>ubAEY*d3;XzdS6wgd3s4EPt61_t zAWl_8`DCd(NS|T2GiFt2A0$Ercaxk)q}SQ)e_#hX_b(YAu$k;`bU!Q0{&pnNrnl(z zdUrYQAl<+IuCckaC&O|g?*aQ1C&}^MJRyHaFa-fbabn819T^E66ACQe2YQI@) zZ}>nJlHN7N=(18(;p`AqsSAcO<#c<7!tZEqBHWj&Uk@RTm!Kkzm7crgw!G2ba02OY z20E~gEh?I$Q=5HRXD1shS6ztcy#zjCj|7|hNDd3lFqZ*4%1QZsim(Nynxy0AwH4zW z192i$o{?sG->JRpE5ygLx`0pn_E$mG$SgZBI4+J_+B(oA|1Vjco8Y z>Yxx9!mal5iv5aRJe^L!2fKZ-$?6hzH8z0Hlqjw0^pVs$ zr0gYsgluc@#%5r4uu;UvxdGB00L!HOxY8Z;flH zq4Bm@lYE$kcpQJc`7+Px~_ayRO0lG3jJ1P!G}LymZ{S~(yC!YKt!G;7#Vk1TJu4gocq^3 zquK_k0cX_pt^{Wr?Ak#ij#qRfuSUKjC=47Q!!ZV;4H9Pr6z7R}7>+0krX%S(6c*^H zx{5Lz#UB&B;~w@04a_;@l=)N{_b=~~&vFkh#xD(fbp(vrFlGpdib^<44qtRo3-aT$*DaKrzw%^qa>;o*6k+V4Sym=6n|d0E_Id9%Q+7ghHjiK>jmnzeo}$ zn{0auU_d8j{@a4$Ej0(KHj;9)R}OwC$DM^#%EY`I2nT?Y78NqKbxycZ0789>NsK9WMwh4G zFXI^KnH~%>Mf9*!JIgUD29eGcaH%Ok$kh@-T+rk?$G757EW|@os#mugzVKlryJL(T zL4Rt>0hN$emx0rpjINHl9=f_eomY0TLEHHEL=_R!TawI|>mjg;zh?M$154LXVO4+v z`j*OkK6gvsa42BD_OqxsjU01YRDz)#s#UzwN62ITJ{PfyyF`%>_AV-3X!|kO8^wPe zvf?{!4-coZyE0Y0sGZAQl)j7$#(9@KZOP4*98sQg1yRg`rSn&L8X1pJh@ncBW-oEg z(0+Y-NFgIakL0GlqOwgBj)LmRR`dpQLnAQ^rK})guwaPyGw$?ut17KVD3s(l+<5l{ z5>wAsr;Luoe;Qez%07IFK9FhE#gC>jM5BByx8I15#lu}_FblF!)e;yYPsy}FyC+p- z&qxS2gGp8^Ch_Tzv0EN-%S(nX&V>Nkg;z`2WI2stv>mU6pBWRvsus2`7Drc&WWZa$ z2>*LD=`~My&l6OvywImj=%i<}AxNPLuSaT(e=y{5zs;+b3&wJ-co{&j$}0vhXM_~O zFl`7ENKi#!>BAgVq=~l;gI+$?lxa*V*vP(Oz0v8@SHwihDIhTV+qjl_GEaYdi=l&) zPhh7eRKp!?TI&rbjx{r+u5MB*gRZS)+^axmy1|og=#}-yOUOp{=7qj1@r@7C(pD#O zhQLX5MeIVXKP4*Z&0PkCKVVS-Azs`GQM%!V2^hAK5{@%OF5YqSI2Gd6bwdqP0PCOx z)E!42Iel_&hQ1q7oL9`BuolDITavFH+_?d9^=z0*Xl#7RmcBoc=Ix)bK53fjkv?sr zaJml<8(MGIl{+xOH98AH=j`ec;pjN&o4S2J98P32kyNYt)iSE7LP*1|da4#^Z3y)& zr&9rfO~{QD<3u=*zl_8%F>YN3N%t=r##tqk4ggC)w7>H?E|NH*QWgu=G@-BC0iGaao4amniBm{GgbCRoFvOM}>Aj^Qq<(OJo0Y`X#oSED_%&J2L{E^r;`s9@`-!ggm;nqB z@^d1Qo#y@?d6%1*-dCiky*=DOL{)o(Qwq>UOTFzD%DA@6e5qO4kO>u=$qoqgLavlh z;oQwE${_MT(D<%ht}{`CvJJXrr|>ne!?GeCWq`1F#YiTY2X)GbFE_B5gM8PPsG$wwNb@EX-oQTgRbW$V}t`&(Wb8_SR{ zDJWPZ%$l^nDu}R&rU-+JUaCypKSpbUm61jr^&_hfJV8iDeiR7l*6Dyb^_Mg{> zF|-EsF$)ViVcVZ2G|Ym4CRPX|LG5u}LW{@`dym~YhKUbi|3JS>F^iD?Ec!A=%WuoKOYh}zm)qffjqvp z`i;fhE2q|yDfU;``88d3M`XOOgPUmx@3M~7v6D5rW=X$r{P2E78cU!B>j)d4pQSX^ zpF8a9*&O@K&qPR5qPCwxdT%V_hky+<=8?n+AuD>%%NV$9*33*+#5Na*WM)@Hxb<`fn!&Sf-|L%_s-}3>*>{$wx(WTb1vqX?5crTr=><|w z6t^Wi#Aq6~94hL>W@#zqc$|@zBXP45b(ZOFbut9`ij1cf_8PB zdYr3+W+UF>oal>5f6dgb(L#AWaq~W2q`wbgVT~N355V!?!sS`WcmXAtf`xC%oMtgd z7WFStAM+})YrgU*&E&~Rb6P+f+WX@4ob6}&f{xrkDwVNaZaeH5$*~_Ml3w)$YY(>l z$o+KtK)%oX=<+;r*0|CqiOi`>%z&f@uMtO@oHlP{$fU>W>p66Lq=5QkY%-Hy%{pB8 zhaBv9!YJAfy2&2Ev~|gniuHesh_W<7c%;Uv5*wLnL-RO1qG4aC;SyaKzV*mBymxWW zSS%w_zwhG~1i~3qrP7`~Zh4Y#uqS#aH_d!F7cszYdzl!THI}%=XzoT@uqOb)#M6$aA$LR@9X4*u2kYgY@>xKL^D9dF)vJca;Gth}MP^ zAo%a^ln-IQM^4c}af10D{`Zgyn_+*d4#rzbp=YvK{v}|+DLZ~OUojHwArIqD!kG#4 z7l>~+Q7$(5Bi3t+X3WY{%{Z&ni_M}Cm{ zMENsK-H*``?jL$We(@|_Y~xCS5Dp!)We8P(=^mIH?;V{*HdK$H?|dh?5(U}d06LP~ zg^8!P5{dS+=Qv^#tktG0!>S==LK{wi;%YVtK zO(j4f6H*z2oOH?P+8`(C10SAr zO{(@N?nzf(PJK+bQKBO-#c4AT!%_*BCMf?1fzObpaf+Kve99Ez8E<-un&|cdiEzsQ zr(*|V8MRDu9PYmkA~0^Mk14=FmqNGNAc)V`4;g0Rdo~=K?W?+!-bp}+vF&_r`N146 zH?{c#PDhKdn@QG5E1@WNzpo2XdH)anaSzce3mIWqAqcBptp_jPaS2YYcI`W{^Q?#+ z$Huf;bkio=D=y4%7OnI~fnXs=x#u+Zyak~TN1e)@zMbKSK?G@n`XzUMFs;vyeeVKDeP0DvfT#~aMR^;=79fuYUvpI`G}aje6X5Ny<2rj35-U>bCA z5BV)!$hi#h&oua}1*sE>RtYmG!q*$a2Zd>~wIYV(Pk z8-E5HhRa}iwJn9B=$y`<`^oDaKI(~}HIVx>X_o-T%plOOf22A@VdjytJ&Kmwm}73( zWcl&$!o~FuB6VNUU|NhwC-ZB@x7)*kiD7rVRUeym+(Av)`92%#%&m*sUYWZlz6Oy@ zz02)!q}g9J;+jIGUi><6P-I$<+~PJ;r=}Luq8@Rx!N6%vF|^zL#CO&<64mC1%rXiv zeg-x(uO0z#Spx|&t!inD|4JQd#)5Act;f>t6Jd1E=aFRdPIe7xw=lpcbQoYbgbz;) zeBm5L_lWrTUJ8cNVH%SBiItODavahqNvK)3l0WS?RftHJ9Xy9y_Uf59XiSMjGroHO zuXvm3fN9jR7q)zmm`8p`;)eM%-r@xm%v?mUdXHYGzpa%5-1nuSl=nQ`e84Ea zdXTyw;pjZC`lz%p4szPYNl4=})}BNpUGw-C@FY3z`?!w5EO1?3IGHbAPSLR8thUWNn-QOxV3Nv)oj z|CqV%bNBd=!TD_8`b1#ix=mfYmh<>T-8dd~YOZbzMl9K>a+W`lbr`ToN8!|URNL2) z50Gs02{G9(COrC1?#N`8$?arXYyklqkzEtWW&Z$9kl|uq3h9%5eTAhgkNuDKaQ96?>P~z7d;`qin$RHhPWJ zMUU==QKyjjt3Q2*^(LrLv$vPE&f{;i;Z|SKP<)YiS-`e3gCH4VGw!~Dnn6QPM@`f4 zB1ATRCoF?zBhD9P;qu;g;k(G~NOFPkX9b^Q!}7#2B=^`0aC{BMZ*Wg0%P1D_o37lJA znq9~|D)lXPu->>&5b^GK<~X0LzVEEL4iG@DGjcVx>}Wg25}Y*SQ53>g__-;!%nBPs zYjtrLeR(W_+(rUQChuRk{G=y=zDxJKi!mmYOK}se%063%E4>AOpN&l!SN+V&!Fw|2 zV;T~OnwiE9U@5cd6+@8T9j>#tHPCf;GFyPK$B)1A^93z$6HJwjfXSta?1;zU=CN1m zBBI8)17=|sOX}Ux*jZ$bNAjbCb1E|FYNXd99-ghuRAE^_J}27ON;czL(G~N$OJqY1 zYs8xe_a0?WviU?9L23gDhlJ!iS1u*bt$uj-sp;G3dPS*hY*TSxHZV?KWPAY)>wK!D zv{GZX%L`jf^d%Z>%)DbSvhY$5kHxO8wk-w2|6_iyUw^XTa3Xj1bLxx1_!{){KSE;U z@o#uBxE%Z-9iV&`V{0a#?;2w;YxI+p_XVL9z~M|k+u3c5vP`>Iw`N&ymq~Y{|9aof zVmHrUjqrGRSgzkrBAn(+IS+c^+~+KRjpX2DDitd|h$J2z{l~TmSKCu>Vufb?n*h}D z*2l>!mmZ2-(Dks)&FWNMFj2u7-xt!50!=xse44F~{BqZ#U+-6wbi`rSaGO9$r4!FD z;)+TE7fEMs7IfzUuj-^y$`zmCYtB)jPc~&%KDl<-Yy_6LzWl~$t!Wt05!rCn<=^kK z7!1K#0PTY)^nTvFSL>WI=tmWQIOyg*3VV0?nfCKDyTDGG?NJI4kI1!KrBZ*w0}JM7 zbm5L51PO`VFuxyTGXX}5Bj!hpftLwoqrY&+;9pGf_Gg8_X8Ma|_|7W}f*Zlg#NVl$ zs`G@l#BSP0QX!Gy+^s8vD*n22g(@{LwIPs@ac9@rnfe@$L;^{ zr`J@3x6ZX??8iPF#{Gg&O0yy}TTKs_M~iMlZbfWyE3597h$F;*c^t%7-?twwb)J&* z*6LNRJ%qgUZKeS$1IAU8-7Caiy&$MZumiyaqiwAluB9;WB9TYMT(-SoxbO#N@#xmH zn;|aB=0Pxc_R#tYcz;Mwc^T|5^2@;Ciy`j15Jdgk{PpLj;hYz%JHvZ#tm0)w%8Wej zCOlu;I%jYRSU_Guftwy|`rOH!C6$3ysh-m81olOAy84}5?*fxOUL98B#VPqDHau6W zbte8j;23^tQWyw{iR zC;uXha62PN20qT5#XZPL*?@&Kw1iIUoR7+ah5M}Ro7%19y%4;>3Z|`nUrdtRSb8iT ziFWL^N=4-w3w^G-3KEDZiU2nI9BN{3@!LWcd(K<2rMj1`s6Dbg5=q^>(+<^ksd*Fy zm}&E{BDBR0KTG1t=2w0;gG##TnpGs`-CLt2M{|;)UjEYceR}AHO`rV4ploUM1mU)R z@(6C0OM&PuC8*)Urxgw%|_wZ5)^lz7#b#ug`ET zh9~S6s*CjRlQ}L*ae3kx^TcOCrnx9bGxo1C|25#EFwT15lPARdO0rVge@&h3@zqPw z!&+Akt$5+#b}*DL3{K+aN~ylm-Gl{eQrGLO3islr;i!JHlzDcr%oJrCu-8zpspX0@Nsf)ln%UB zDQS_|2#?`({`w=$QU2}jLu=4czR%$n$9jAsS!6rHT*B73L86zKGXat8wRItjUtw3j zDb6{PDE*~^N1lknh|0^NkSmvQhv@mlSgLHUI?F*1n%K%`OLNKJCAGw04vUjq^VC9^ zCAKt-vGw1=BTrrk3GZQT38vf`P%>C#+483X@YCsrK4TY+BC`Y&5(4^tg#H@g9TfTy z6^9$8^o~<&_}g_~g_L2&?-=rO2xk^m3qoUvcOUL|!>(t8ptCefR~uRc0h$I*z1B^1 z+z;moG9$>gQ1e$?iMgBaEiz)NvHN)Ziy0fo&!-QsssZ@O2CO}E@=*hH0~r-oKm9G% z`c5~=zh=ePQxs)|>Ef)knxbQ_t8T(mJbV8ps9QBlGE!2B(I;u}mC;KraD?^UVi=Hs zH4oiFn_#pwT@?kizf{WQ7g2#c>cGU0E+mw4d|dzV*U{>WtX2pHv|YcNj5^s8y(GUv zo&fz&Mgpi%Zh9czm9M_~TE4Crmvq^igV~<5Y{10UuMqgFYPdU=!=lwE26kGgm^!6>7*}qjmg3Jvf z3-gZm>%5Y7oCwy$9avI(UMv31ra@rCR@c{-h>DefPPLMbyDJc9BJT|a{9?G%x$$9N zV+u!^Hz8pBBnex>m)ts1Nxxf1YBDq>cla{nY(_@B2jO67`BZT3+0r)28*im{F%;ze&uLFUKGY z4Hft1al#CV$>LDwYnHD&Y_%2N+ba(l;T5BY<@Ii8L$xZ*dT8q>#hbB*1rOPd1^Frl zD*)RAR|iiiB+59QZ`d$rx|nEHJYlanL-_jqP_WHIgQvQiW# z^b5$b6 z0Ib9@OZwClYN#kL6zeANLSL~yn4El--}3m;TEVZWR|O+*z3vY5#|H%zH4saY2b<2)cWjg&e}km z*@^r15)w09R}EsteT)bIo1}wM9$;>DJTnZ>>^HaBWrrAk@eq3zbEHo*ixHgJ5pR&` zQ9jZNJpoiZgN)OQ`{Y8rDQqZ)o~SdJ~b&x@(FsFB*~_N%K)Os_Eo$iY;% ze8zy@*(&gw|F@7T)<&mBTuk+66C~Xf@mC|qF6IUhy@28*(2%9hMC>vuYaxyw1*D0wfrNPOg!U)qgXvgQLU zaXaciNp5aR=j0M@)fUpDvtJDAUcFnKiKnKl{^%c1pDqJw>Dq_mUDXMZ6Z`v9NAm9^ z`Hr_j&4UnODvWB~jdrH_YHv$TA+xtMCn$gb=%JaMTlAQ<0>q5n%Cq~88~y`=EW$2# zP6-TxXh*~b4wEUaM=HoA7{Fg(+0A+0{V`*t!zPlOcEO=?FR_0x+1Qb7j=WN`pM^~P zrV8Y>lXKhYf16aM&J+qB@8|uTqghj!XJ!jLw_dJ7nWTm;g&NnTcPoDF+)j;eUfblZ zeV9SMk(@7XCkO(|jWuv1+M(p~mnNjaJy@muBX|AdFGUv;P2IZojPI7NuE4OZo*7zd(GwR@o#(db@^6I0v?3MOI_gnR8 zR1G~}qQ%ms`9;{$3<$uXk!jiEye4-|6Ay_Kzjm7C;+teZ*Qo91-gxLLQM?aTyy`qw zZD^St<+4?Kb{abswn-yu;p2l4DOMe=gWq1*O9|=rxk7yyHx6f@WF7rL@?#`fB3Ov< z-#Tjx7yhs>GNO~+bXs4ZOyos?J5PN7?t``wVc)5Iu-^4OVK$TZK6$%Nz={L^P?q@x z(r~jACGwy2jrw>hvFOPXY;r)u{T`2|)e_bi%Ra&rtny7@E9G=0O+us(#ubDu#Y0~nxDPEU@Yg<58Pe+(cle%YN5%VVrs8h^zFo!d zks0eLrw*=QOdjoPj=xLj_NGQW5GV9Dj>#J2aIaI)vnDN?wnV0+6&N_S7E>=Fz7ORkBQ zw&Df?@eD*-GmPnIA=J)oQ0^r78Y$7(*Cj8>Dmbq;Br!P#u>)~CNmZoFkr9u{pL;c$ z)z6@}R&D82G8kswRZ%3CxRtrFXi{d|N4!Nc>Dr8P=Xq*+HrF;68YGJ0%iF3+yTn|B zCc^mBPND-9el1s*zp_CDA7Ywfa{;2zj`_2b&C?};n^ehzp*h`mk8w3RI~5gVG{h!ouyi?3X@qEVWNiGJ+N4R)7 zHMFf8DP1Y8qlk3;;qX*7mOSCJ611xVGnr&Q{r=X-eOkwfYeN|ULe=iOsb+3Jl!6>d z`w{GSST^>jmq%I&!%vJpQHmgFieA#dbaNkHffds8{D`*B8%LaDs=8Kq&s3wp6Gb4Z zWK<++8J>KxU&Pg19~XJ4sfY07t1=F5qUWz%`)ycr#;Hgy-(0-iY83?F&K4JT_mFT< zDTU{l53V~t7o}E_U|Ads7Teo2n?r;Fb5mC%WT#_Cw7sNW7yiFh%E&o>#zW?r% z+ymifY%tuZnUR`PyscQzp`=TWlwP;a19{Mce>{3rQxgO2)9KQYd@VO#JDWQ1A+e-E zh0^I2i#zY#8Fyet{Bv4vl{uo7zuncv$I*R`vLXf)B2=9biDUKR%7B4xC`@8VfR><6 zoKi<}hbssHKAD&aJwLFQPgs5=#Ag0?45@JVJCByIF;8O8SXfJGo6+kxc|r&S$rYV7U)=eTc7hHHNqKkv063RBNJS`JUtd6hklNeao^Te092rC>!?H$dar?|&P}zt1IzO>Ta3Xhc}^Zf!_Pa3W>ogjNu#|)`@G6HhZ>GVUttv z?iA^~jH)zKn?sAGTYMsWW65f}TS@0iO=dkzjkd8H*OuUW)I_7@!h9l-C;@>lL42Pt z#ipN-s(jxuD%u>dJxs5g!#4>#?lKs&qEL2JEMo-z4hj0)75m>B#89xs@^byMh zN@?MXDdz4oMqxpsPR2URaST4|GEOtfcyKS&Ut&iLbVjTxT>KF{=K981C*%dgl)E8P zG38s#QN|DU0bT#$G-cm|;S7fB77i~j&ZZAYbjMwbWD5Y0X|3n_m5-l~U`($=qsOjSW^Ursl z=fp;X>F|eb>pV`b!69^s-BDR85AEF#(zu0EWGHNHrcJURcpQr4JmcsUmBH9z4#pv_ zKQrZ^dn}X94Yt!GxH!j{tfa2jT6u(yQNnL#?s%=hYtg?C`k1UodlA`mCzO$j!tSpI zHqze`G$A*Lz|qvCs*AnUM*uaV_n^fcFnw7Rds|lo@o_JT5+e?UVA$>P16BddoLnt} z_h+bbVp10C8ItFd7S!LK;d1|L|)KVX| zt|rpV6>sv2WVpRp=Or?jtti=PJOhRLn49|Besb=}#_*OPO#wroh~c`S&gu#~&0u*( z$AqZg{h;?U(T={Zed@iGn8+pyUvWjs{E5;9Ptm!j@n1;DbAV)>+@Fq{x+}knQw0@e zAM~bm)oj<*Z|92#21lBO_Xq47VF2IBGiOUC?Rr8uDVan9l1lrEqOqh{_|Ipcig?LU zqxy+kJmW$t$Q}>C$%V7=+EbTixZNW#f!C#)g=|+T#+~@lR0rD6h8CndBVKnla4lzx zPrmJH`efW{zxX1$EjZBE1ROgkjE+HL^ftWJtSw)+evenZuG*;M|APBL_okY2$x3{L zJ|9j144Hc)s7!LS!pUfW+Y^TK?|4m@&9zma$R+{`Q#CH z_F|d+1SIW7INfY)Q8sxG-^nyg3n+`y9#4Z^i;PbV6*beUn@hZoU*c&2E$ic48c!zgUFwAKD;y5MPw+)d;hWOd)Mp1pXD9D_21A}P zM)`LK$JdN?|%+?<;wR7js_t3pK`Y0m!hgLNDC zV8V9Xul>_m5wHQxk~XABoq*S{&U`8*Ll?@yB!N}74v?iuKxVaL61>8x1{A!UhO%O& zgsLLec$M&G>)Wb7f+QFzHEa025I?!Mtmum9-A`viot4#yUtv{QUQaI_cigxmmtX@d zyqV37Yu$`wQkSKdrwW1H3~7u3S=29>zzldrN@Y2TE{-IST`1b1J>gc|<$naT$mSyd zi~Re-S?=<6u}u*bo?(#_SD`~$kF}}pw(8nOkI_diiHwiK z)~i_{nH_#i@@`#G7vKZ3cv{D*zT7_CzEJX<2lH`bvwQZ^aWqalIeq|To&RXe{gl#T4_*48$E5y@E6ANZbkG6? z4e@s2=x?WeFQ3>i4!Yu+?X7yD0M2-5wwxujFxzw2B+5RLw6KR4JK8v;DTQmH<9*nK zZ|ovzm%%!)t2ddWkR%iSB;Nm|vcr*(+g?f$;NeFT_e?Qd|AyBFR$(KHQyt-}cYWyk zs|n3M0qMDoWr^u0QGwDm90xnFKXPUq?2yYt!p+u?>;U#iRi=r!%XdM2X7AZsJS?6b z?oSfCl=uqz1^g{l!C6!4=lnr!dmWr$FSk4n-4=& zF3h2q%$btl*Hx$5JqwMfu(WTHc<>6Lj~P!D6MQ!lcG|Pu_ZO?Sr>2!DW5EUYJAN^L zu@5*)rjfcP*wj-f&aqtYJwscXpD9& z6P`x}(1MC`(H0B7KIYI6k&< z4L4x5SkkM;suJqMVD`RL35v9*wRq`TfwyXk{Hh|Nj8XTV%VbW83AX5>`>4Po1Cx6; zlCeL?f7$!pk*o9)7h&3?KW&I`e@DQsT^i4p50G+Xif^s`klI0IDh}OXtuGZPS1fx zkE0efsr53)A4uI>uXToq$P^Hid`^T1#9DrnLahZTOBQE{CZA=leknCx=d0AJe~frm zXblwkbWmS2J4#R`fT_mxVL# zbSwF>Z0%cycs(`dF?8f_OAnP0d^yCtW`<(CM<-7%fo3`eYYKj`e$~0e%tA;M&Wg!* z5%HqqR7dz*KvQJ2(IFQrN}roK-2WHUX&bEMl|f@(hg`}6jl3TLZ!P*{g$uQ;QXoN; zp`l#1%zH4$dOIN?z!qXYc8XM1AkJT0%5qPHfWgh1Vff8m6&YaEfoZsVfwNDNaIMUn zTLI~-^wVL5C2M%DlY=IS3h9LCP(k&;o)aQ>6S#ksGBJDqvbP-LMKB;6{LRPZ{$bk4)k`7=9A}t z0#Hi>1QY-O00;mejapNBC}B7J&;kI=90LGL0000@VQzI{Y+qDmb98fGLqk(9P;F^r zUuR`>Qe|gXa%psBP;zf{Wn*+{Z*Eg`VRUtKUrj?_L_=ROH8?FXHZosBVRL0)F*Po5 zZfDe5V{m0r5{`|DZQGjIwmB1fV%xTD+fF97jg5`T#GJf+vqsf!?a#ecuU_50=k)E{ z_)eeh6QQIai3o=a2Lb|uC@m$X0s;c<4*~+g4Fd+Gm^Wyk1OGssR3t?}YG?4zfHx54 z!t%l(APsTw?}m`TdsurZZ6^>AOp4z>P-zwNpCBNB5@|7EHFtx{9_Va>WsfH&s++f7 z>Fsw_gHZ?kwjqabl2}*=y?TO8hru;}_|lDV+RjsP|6mYUWdtc=a`H$a$P{&^uJbBJ zC9HE8%Vn?Y1(^+iCEH#0XQ#~{JyknTY7pp~Ri2pc~*ninyz~y|YKZvT;hNsi}CAU9_OW^1CMyFZ* zd%(v|AmCTudc)5;falq|d0pR8>K}aG2(>$tGgyp|3%x=ANeGx8P=?M~X!EJH*D1Ct zzmGf9lkBEv)jXY_=6!;srq4ba{KqW7aIoad$L%>hlZn|BHvd0=Hm5ZB z>*2>QNrC6DUTKUjtNLyGSvz|75sFiQ=TWTp^*jc_>+XlP?aqT`&GmkTRKSTJD~T!# zxYlbijdx5o;he`KkY(LCnQ%HX9{ad$ke3NAQR>YSwFph&>uX!CH+4-Q@X zG0c?eeG>%_IIlYfjOR_gt&L)SJbbC^xL?q}?soFN(s8}~@dvMIJHN?bxnTs%kE1WF z2g`zhmmi?u>AdiyMI1;~ym>qO?=w})Fd!hbf#(_wiEWJCaRJ9*oSYV(Gtn_+Ju4v8 z;Pq6KIC=yiAY*w;8a9v|`6ts^Pd9*HersPiToZ;%KP?#%=y%==*39Z@Bc_!cf=#0s25>X_% zT<^mmWRvER0uKSRpW4ICl^P4)du{koo^lB@IU~2rn7UTKE|?yqO%zFOJF|B&TFMSs zW*O+iJl96lvTh24!D-W#txQp3aO2MxuoOwM4{t3#AW&(I;mpivbGkCgnY^AM_N8wI znriKnh&4C?aPZEvcnO+@Wn~*|&ln8F!(PkijSb>7JZpI9r@36t`d9aAQMQ!O6k+C* zd>JYUgUKN@blh#~3kKHOmfi3u@-m1FGHTK)YM2wMAWlSj^nW;N>7oNwmd(wNF25$A2R;Tdc^i&n_12%Fq`E^`YebIMXH_amSb(al8(&cqtTPmI2 zsH)xAs95}fMFVOtz%Q7yNm0o+EPhHl8m=pC#$I$xK3f{$OYhc@3i?TnBCcvp{OJg5 zFlE&@jOvx_Smh-0r}_no+fTw3J*CS~1_PiJRxtx9;_OyJEYT;Yj;d8rRh-rQObI-c2UBtJ}<6+jfwL~<`r%3Yp zeA)WI=c(qkA3617vXB0wtIv2ek;%vM$gQvIV@22P@wCBiD*cM7r}>zx?`3x}FBfnV zSJ&}=+anq_VG#okfU(uc%l8&JM$`)6g4G6lwxRDRXG(;*dNJ#VbFg$S;o*7CrUrZew zxszYl84AYNpxJ@69fD5~iJ+y)gH7e|&fx1}w!1ZWRY6yEfY`=TNnZaB4-Nw280z!6 zf(^MrxY87db@rTNGZD3bBmdxw>&I?Wp1$w4hjm@A=Y`Yk6&}B*c^o0$bzdF_(TA1Co%9&rDyLc-e?g!9M%^v%!S7i3>jN<^LMc{ zImx^n>sp+j$>>qHa2NK4q`tLBa`K6&@xjeTU6$|uP#LYt%usQ=QH;zg5ax#rqo#VX z7HHHW^8q1s^pR{RlIXOJn0y@8GD4^ekyoWR;J9-H=`7-ykv$EvV)mA-NsY%V_o_{$ z5ac8^Yu|7M^MxZ?wc%pYXdo3y3MeKGx}H>-V;Z${Rn%1k(CEL2crp6{J*b4Hbbq(% zL_d_YT6y~#8wAAuc%d6_F508`KyFqxX50VUya<8cy(Ij{y<(d8nJm%Ar8(Y@PHSKU zUtZ1!5$NXmxDNI_`QA@{VdOo@hV=V5nWA@f;LM*^u7>88f%;r!P!#2C``_jO5eg?WQmY3p6s=*O2Mb^8n{PMB2bTY)*5u(g9xu) zmULEAkP0J=4+T+JP?Ym6kRr*Fopm%T>5vafX89{OB}|W$M*_SEWm+p(*lQ}5lyH{E zx)Q;{Qah`hj4+^As-_J|F+F=wn_zHzy!!7p+zuwV?7gFX`u?RdLtTlLd&asITbB-+NM+p|FQf8jvx34Qy!sS026h znG>D#NHq!JSn0{wv6QwHQ-hg!4=X1k{0H?C6bRGNB=nZJn-l|MHOr+?tetOBpac3a zIW)nU>Y_~+lV~{cI8q!B#7H_m_zaEBhon`gP~!T^wl|SY7mX^rircCM7 z#5z0GgwAoJd*ZNavIjxLi4~xZ&bI^z%^E3Sf`H7(t>G1ZzWan%tdq)cSJ>-R@}VG^+aBG7BMx3GHl)jge3!J4%Sv z>(JmzhZs-6tbaZR!_^dfY8_{rl(jrJ<|#`>P68jVgfyu_B3WO3b3Hagf>}RDYKMg9 zckFMO2KK5@huqWp&j`N?$lhu6*x-f_KC{J#D-_@0fpL{4L^oic?}?R<1!~mLNWp2k zqHwexy;^+5JRH!(z*tMTZ|Kv(+T!Az`9+Y38^PLaktsQY=CB7-h*hAAO~EaNj6EnH zGz^=`N<7MXQX1M-KcA{2gUaSakGY_AWI^mqb2oQB%$Z~XYTRyF&n*m;MeBHL$sUVy zLq%5FDD_QYcYiFLckb3PawIfWm>nJ5w3=q06(W|#x)!VlsZKVZlOq;!NDID@!lgJK zr}~W2EJ2w3lkrv9N^x*1I&!p@T*b_l%sq8P3G;H`A-cvo=PLw(MXZrn=t_E`Z0e_1 zF}`99GpxbTC6P%|s2Qs$<>>0+Zj}#fto1Auserv`PwvuaevTMyG1?X(@~{xr0uKxw z@=zX53L`NDwL@-ZqQ%#T;$t9Gu##=tG!}YKq%V;g2SujG#(BhS`j~O!&iw|(PU~9j z*E&GwF4IS#?8j-Gh7aH^YqQl9nm1v`)2y<@JZE?+z2W}$9U|!k#IDsI>18=vL=_pmd~{Ab?(M+<_7xQ0>(!pb&P7d z09=nMm;K1neA>JW%Oae!k`q1@EQKB%DQubr4N_GhSgw{5N_iZm33{769x3 z-sXp~?EH=}%vvAMtAY?MZq`c$M%HNFl4T*@$rOApI|M)Z6mtp zK8JLq2zW;TbGK@z#==$V9M=BFofSPQc?#v$ey;yro4OKe^5Ik zm4@*5iIL9W-(+jE7i1S)_)Nu+6>4jpFL^I_HVjBV!IbQ4%)C}~>1R-mdyq0_TQ$KL zeMPWU0jIQA)wNo11|8PZ2kj7n-$jrPo^j+TpzraIVQ3ttPEogjaA}KbqAe1(af)?< zMEwslEn!25C5Bs!#K*>;xpKKO)tON?LMTyj=2-M&^-D1(rffTlmya9glC(V8LX3S8 zXqyoSP!ktqBv?{NL;3$e@0714)1?E25n4u8fU2Tcj|x9HpIh0qG^HKv7C1SW(uvZPQ%c`n)c3Q=hUUu;3foP|# zAmF1+^L$Q{X)wqjXJA64>e=6onCO~G?J@vb*qW4bMkZ0}eM;%g8mkzh*j`n#A4(og zNp1^oO78G4CT7M=H{4P(FIo{hqL=;JIXVL-Zv@pa4XJm@^apKe)QCJBE5ED2-{PH9 zujN~UMMii9Wkh6?RLsGonK*gE1xtLb=$SvY1Vf<|=GaGIWgX?fV`xT?Z}JFJ(qMUJ3y=ii&UB1TwtQ4`T6rm` z+|G6_+26Gr;!9ht9FK5B6^6-p4~^0F)MOY*aL-@UTtxc4?@I|}n_bQ?yH0sofWD73 zpvAucE`nx#Q!CQ@=P~G3b{u78z(2ognGl(epAhgKIIfnFkT@Q#VbX$Va(iQtidC0_ z8lx7JC?tO7#}V*|=cX5g<+(fEt}yL4;1D!xtgkCougaI4qbg%kV{}2G=VBz52Ik3H zhhpRtoT8=0uuw}s!{vc#t=1|+fU`S-li;1y3_~tUh_!@en)aOo28F$3!EtE_S8^KWv2*t-xu#I%*v1ECVB=DTOybvY?~oGeqVPf>D;!dj+|buNAqJ z*uZ-9*$f&QLirv_7Q3&Iz@R-b83d6|R5lEQOJlHtVt|a{Dr)#~FQ?e4Vj0O)v`{4> z2V7dgoc@B9Y|}24#+ih=hBE%|NKPy!H@5&=)g5*UHm+tpNjKIiwOI7+98=5+v~w*olnRLMqQl!FPpZ1ysWq2~w$iTcVnc<~K(0`i-wF;_}jhth>$ zllVy!AYLN`_4EVrdWu*gf;QMA*Puz!Ko1}B^a${hhxenyd{x)3rfV;B*bnd&YbWG) zt_rM}q~owDSPDfUv)%xXVg(N9K?fgj#;*1ig*Jsk_fTt_x{brj!Y!~9>2*Y)IJjI; z1Ux=zqXO*2deoiTwQCDpF4f_`mx)9V_J(R8%(lHJoyWKo%4QLCk&`JH7}k_Kle90i z!&FEIg3<_dNRvT3Pw}8_&DuMKLu9D7o0+KF74qB!v_Y{&o7v#Fi)N7L4h)ZxQr0a~ zL3eJ271>lVhRNr2ATg3_B zpO0;d%J#|FngAz2*uUb(nGe;3rsee!G^OyA;}hu7r>Vu9o=VvoR>INA>q*xMJ7ukG zYhe&*9{yl{uHNBj5n=@{tR*7Ti0IP3txggo)^MDzt7T|wGEcg;H;{-=SuRRtBpBpMpDC^CioO#+M%Xv!4hj?7(rKXoG|H9u;Pp7HibSE8ELQal}^X#A~$bt zl=b{uh*2;l7%*ayE^}0KJft|N6^|jirVMSBm8x3%N=tuqUSPhT<=p~CcSi+Ue=o>K zFDFcIZGO7IN{S@_iXDv=gKZa(HW23%-N8KCXs3|_w{I!Y)Ab(x zLEKd+bcUAg9@z^Qbj&S2l@rlAfnHDl0SUi7=vICny?mhHA7=a;%uGd-i+& z5Vg|q6qZx|dMOOyp>%Cbz-@nr7==BWt%!4fp=ND5XAC()MNZ0S{a0htU7y(m#)vpM znS19@4RIuV_4UT&ikB)EVT5L8BO&i2?uhEfx#xSmLRosB4UXG$ZQXau_t6utDdbjmYE?@yJ}IKnl-z-^MKsu;-w?YI&)xu}FzVT#Gp z>_{e2%}`gmj*v8xVU~L!`m}PY_;HCQ#gd1qw4}sh8heMj0?iby#D*&JrtoZuvKEU- zU5&UFDn=G|`f#bq{SOs7C05w!DbPhU!BCi^hZR(9G}H|f?6Vfu1L29^Krj{3gICFh zTmfY|){XG%h@LYfU*l@5(Nve$RqxRbFyb}GpfiOAC=+%S0K@^@w?_pe@aAmB0D{4O zuVqvIz&f()41SyIslCZKD$cZ+clZ3P0!h8#PBFL0TYZb5ZwN;MwK-!#UJpuX%zH&R zb`M;kk*|gdgX4Y$)zobV!yR_2j()~KaRC-3ii0?lUlnEt~ycZP2{$Vz2&?wtAGx4+MWk zyTznUrHo@y^jD2}HU}avj)zNSYJDsBd2+oHNKUhIo2zaV8g&XMcsT~Gnh^Ec!0~FM z=CMXhE8}(DL~fzd2ngboHAb;<;x`f@=KO*7bVFQ*e1S~}>+LNi*x^EGK{_0@Nj66S zcaw5wAnS9qNy_8v8^?ebSisMiH@?+gb$Rte*FbHX1ZGXTdphXml zs=!Rng(yK;4Z+G*C$pA;4PPz{zz zH(phGBS_aUJ%gR;m~|wAA}DqXqds&gFmWQ1Y|(hcCafg!l??=V$%n733HV&DHE>uz z-e33aJ#K2gulo7?%$TKr2YmFs_}x;`S%SaDeOUD80bceMeXQ0s`*hrA`5> zdfC61-lT0L-FQFdYUgS`BY5|)Z`V?pvCZcwM)E74aFa9X@Vr zjbE_@WfvDIq9Oj9NWlJuzkAaV*%o7McjE>n$0(MVavT@Wic9@r;ZU*4~R;C~&Kzi`8q?{P9%tj?iY?R%yxtyuj0 z3q{f(VFhuz4kML|w2#fWnnt0}yB@Qwo;K5lG&ZUlM(;vy4pAB6QY7oJ(`jg!^w2D&_9-}OM9%!fONJA55?h&gYU(=lw^ zZ@iKF&63PmzU}*mUcq7C7)prb+_>#qu~8VEYd?-fU~=|;nTsAia@QgqSnA{_3#JQ{#g-7(&3YDD2S;tTAPv z!fN&$ms9JG((0Ca*_+Jsu+8!W`#YnML`CpSD>=G(E#<>iF6py&Y*_XS_wS0-9j^1i zeaFR`C2?C#t{b0(k1^4Q5h_zElSM>oiit^?YknRTeI}GZ&U(`$uQi21rymy}n`VuJ zi?K(LH`1(=PG->NaZ+v~F+*|Xs6#@lxE#>-T-+!U;TUzNU7!h=p{8t|iI$R}92gYm zAfLC$*bvG|N|dID%|TMNDj?TO-W{J{w&sYO3MK3Nj%0>jTdd5t2`;UPW4s z$) zr`!fYHsQP?d8p#PT#oqCTH9m29FhbWkkl?DH z7>E7C=9Jt>fVQ=P4Y9A4zXIjcd2_sDxn{*E`xK;3{}3@ViaEZpVbl~X6Z@#9ee|q< z9;O;z&}csP&E<>ku*K2FBM)&l}$nwAoT&2y4{Qgtv8Ef$&Smgaj&{ zrKR*cUqxKOy4A33us|vgLNiQeE@I?;-~(z1n^`r6h&8IK8OqY%{UslPW}7R&hA~n! z5z@|}Oa#p;=)G}N$&Jp56lNwfi-IIwlyp}^XUyg&2)d#=oGh{ZEIoTdu?^ZLon|vk z1>^}U8I5cDNnmO`^8Nb8onl6u7gz_exv5%7$|sbWZ)r1g!KEQndRh;SP&g^0P3DGX zB^=P^CUiK4c1Y8s42h~{Suo8;O$Rd-<{akL(iR|_@q6fh_vd6}@oz$#hg-Ne$1b$& z1)S8)EJ@Fs5oprxD_e|kB$q{gj$HgEoR=yvsSC!_!^J|DDCtsPDZneEEl^b8XG|r) z1dOpU7vJw8~ zjumE1r+=)|zfQTY37O4WC^=TLo2~{Ppouc{h`Mf+P;wF|#PXtUD7xTYC(PX?fE+#UEi|bqtmX%%GA}0@p#ZU@PuS;T8JiXMiIpP3*~pz~Hx!3zLjOCmf8aqjr?VfqcUtL9fhmM^Dd9 z6{ccFCQ`IkjfO%yt(e2>cpO^J44bWC&&U=Tb$F;bjxM|>q*L6L74z*!Hk)b5S8hUfY9MY z3EY@S_s}q*T=_|TmY4y>BPX^>QK^-^lPu=aXB94>L5&V0_3VV$ zGzp?<4k&y6-`=1Uq2?L|jSkTZ@P-QdW;Prk3-!0%b-{YVJX~w6Pn%Bm_xA=BKqts<*S^XbJ(AoleM&t zBSZp!RD{kV96|j6;ptxV$quJd?yRCzRXE>8Bw{}NY)g`|0a z+T?PvLIZqPCc9+=QE3jR?Z!+FZ%P~_Jgf0YbO<~aEp&gOcvQN{O0_nqq{P<(Glor9 z;jRopOWr{@z1zd;qYGC$Ymx0JWL%=1VXFj0(;89ZSKK+lp4V}B-<_KQ>%5NBP%Pi& z%E^+pUeA}Dx`u;^E(0$59K_R1SdLqhziOPY@YY0(GJvTUfC|M zO9qc_HmgiD$~Zp{2;ICZe?h8h^p=f4vK3rtpI0ZFcpG>BY_(q2K2T}B-qg-4Q^%B1 zHj-(u&^Bt+GiFLrc)ahoHcYlketAf6sbJ_3(@V66L_#Tni@MCBa*R`!n1InmSQ#?K$BfM(A< zdkO}M#ZvjrHaj9-?PiOFcWFCtO7jhVuSaIty}kU_R@al69N9ERe*4|;A26;nk5ijKq&sV35fGk4n&WG`Hf*kWpqF$@(p_sS2?hBW} zMDh3n>bl-}{oJjGA@D!jMYYGa{i}|tri_)9)kriBnb)XlnF0Zy`_G9Kx;P?1-~FKo zL_E%=)m6KlUZ2Oy^(0F9&)(1Vw+{XLL;R=QNbrf)+35{+zLtP6#RlV@1?cr1mYlwF zbouGBjW2T^GG32QX?B8qrUZUr^ue(Dv!7iXbAPEHBqrR%+)&ljCQ@0i)O8&vcpZ9> zDFIEkH?UTlN^tTyFqt|^1-1Oj7WB>Ae9VbzA~W8T1e0Ft=M3*PwckKE3fb>Kigvzj zZ-?e&*x-6TfyUxifX2gewjiJ?c4C($*lRRV-->oa|e4mvti(E1Gb0wAj1#T(|EZmu18>&U|ktG>`MS`f|k5d!m_s82JOahu>xB zM~_#ruq&l}COb=D4lhN8O@@HSJU`b=-wo@V*86vcO{^JpSHcwrY`&Js)fi)i>&dp- z+yeT>2EXfCWGa_zzzn35r*{w`yeGhD`aTWma;NI@)>PxfFK79sIwmTt+<{Z4*`mNe zF>3^3CI`_XvJN!I8~oMt4sR~BWZvJm`c8F~&wi8Qim3AzS>Mn5qDQcguB|o_)K&=a zaMU)|r+-|RnmA%9WVhYj(b?%amCjjBL{bcVGlGqD`l>nIn01DG4y9v%n90 zMZu<5)7Q^&-f4F*e&l8$%Y7R?xYJ#!yK*-=8oa#zpm;*``$3daEB&JO2EP$!%Y^Lu z@oV*)a^zOV+ylL9Hup;bpYj6bQ56CE#sQELvUJy~Dv_IY&q zHPc&gKFJlw_tx5AzQb}h>89}OR-Y}IrvICe-x<{ov%-L6Ip{RucQC!%%V4_7Hk{E1 z(UZq-PspQBwfT}eqk=`=G9$?}s%vEI#xvPGGR1?33t!)#Z)8kZTrbyvKqHsS$Mci_ zG=t3?ZWEvT`tf{cd&zL`hi6MIrsmc=dz11C4))uIra}&%`|S|YW83R;Q~KeBqJh)& z#gpFBQEmUVd^{&k2Diihe39h(4|BhxiM2$vV?DRCeuFv!Jb~{5j}NDfKYwH;=Y(aJ zeca4F4u`ohmW;lCtj>5|a7~bczq#6Fy{#yw#kHI6yjDoMG8B!rBEQaf-AUeged+ew zAvDdwYRM63dMZ+0GgAaM%~~@#(R_e>$BH`ej<@K&dIfXu_mBl5mJcWhON`OO&_c_;WEY zjY>54qg#cYCeO;R9|Qb{*(lR+ze2j$*+P1Q(S@;@SE;j1q#|B=-9dq5Mb5Pxp+4VV>1l8TB%;!o3_8Wtccy^O z^|vs<`R;%u*7Ui<8MqH7Bd%tj*ZW?|A2?&AUgRMDoDoVhJ+ZtCEB*H z1O-1@t_gX&okV7@AwB0R5KozQI1VDlyLjdQ@U~Fx!+%V8`PRQ@NEfT1Mks?b#_L3Dw2tyQ5fvD^mkR^NX5fNkx z0ogMk8$tpE5+Ee$rS@r`&JTT>Z@Ia-xq08;IOqJ%l`O(bTaDK~VNIiVx4}k5!CYW% z_3{0@qM~Vu1XZLwGQuRc^@@%pM|+fDf&X=&Mt@%#6xk`51Yi14~=<9`^P+PV$|{&Dl~Yc9(I@ST}5RO>qW zy1?#se8Pg`Mj(}V2v>nN(@Pp=0_;a=A`-slPjh4}z8;q!S4H~RBBpBHbhWOL=#&eZ z_>C(1cF)HASUPM_ijh%HE=8CPe@0*g_s8%Z9a-^xa4*l(+}GZnxn5)s#p12m<#A?m zjIzXOtU_}uywl1dp1efa@6Fga&BIZT_|~S|tqe(y(@P;!q;j!`UI-o3Dqar^$im}6 z6Y!KOm*DXbifJLw_zU@TdmVGu`W~{k#00*Sp5S|<&OT2e9pkfKSHs@uF_+4PRdQ?_ zQGXZb1RC@>a5St&>gIW5iE`NOI#4qSFRudyA1Kp=Diwo6kSww)EqrAlvtw(%V;y*{ ztpU9zOF+ecvxPlV6K&)6oHeO^b-cpXA?1xK&XOIz>IQi5y1t0OdN_T5>^BF#A5BfR zQR~H{%X>cPRbgje)|AAuL$Sy`$h{95xf!Qj)|ED@+(q&a~fTrVmc%r*0&TVorG7C#z@ z$9Vn0;1$@~_N*w$_~1eud7bZ(reBr@`TSMv>LG(hDlw`EMJ-5=g@U0D2@jXQPE%nQ zVKJ$%OR8(S6w((@(i~eCx`Y2v`-h%*sT%byf#dtab|Gpy-F?o{7y`eO_+>|LUUNzE;R}jur7VUJu-RFD_1F=Gf;*y~nOZ*#PZj{R%;IiZgS3+Bp6i z_*S*6nm25@yLj1TS{=oD(B5K;SK02V8BRgb+N5gw4meiy@S6`vM$X7y!5L@D9}$df zjK9#Ku|Njf4ueixlqus*?othG_URc&^a@)kd%ixfi$v=Q?0yf5GFPs%-`kAu<3Iea zM57S(VF5!Pv8S!iKL3%W1w8?=`TjoAhV^PZo1C0ncZVeq764++#fQYog?|)H9FTpOKu*obu*_@DBpW@|&Td`_j7sMMver8L_borvq zr^!vWivu=onQ%X14xZ}o$P;B-dUlm#(-x_GsbWA%;DG%QS5+^Z`^{LVy?7mBq zz^V01?@<7l&sn5tT8nn$nJZzg-$B(*Jqg4rG@3Cx?h5zB%W+LhXT&kJ!wEZeyM=(* zDsx}GX~|Udo$S*0MDh%h)P?`~tmFVlk~E-2?rqHjEms9WNKmo0X$|Fwrod(bnRFm= zp!20zw-kWiXd^@1rkgzvhGyKR8N$l@A7jYxii8&PJ{!CM0Go6^9saq3PJ<6KUOI-6 zN5~3LbEx(7W#Ri)n*_OX+TmVM-BwGe0otFjIl62 z5QeX34)mm9$uwt4-Wngu=M#@Wgh6s65{ztG!oqu9rP-Xe;?P5=SgUx3KUse`tQ)z4H{qTU_c3YP-Xv?ydHc(kpsUjjHRV^I*VQJE7F}d?_hvTWl?aQ; zjCGoU1%P&e^mcg;|Ah~V~g-_w{FH_(5N+174 z`@{FVm5!P0+#R--Y7E@h_9!N(ki1Qo=#1DC5)G09dlb5ma-hf7Xa05X?|+h8O-mYW zhI@U9%+*VM40|=iwqva4?=jxO=KHvbuI3K{e^*O9mx2!pm~WahMoS((n_K}w8gc`; zl(Sg`({pIwAnTlh%Hy+&YkHC?V{T&}%R>}wbM0Lz|^$J|GGvb-?s?IPHOt1l;*p3In8?j5uEJAQ|}~pB)B|n;!rk;+w z%cMA%kNPKn6-CMbo?1tn6f9||z*YSC#-4mVnbVj@9$F_;eI+&zP8(=hP8+A-nO5L1 zGyi~}T+NvT8OTbDUg``s9H3lh&L9^^dSH`o263iL>&<0^v#~-R**p8m8yQIX1|E!8 zb)ABkTZlxP9kj2ii*q?A$?ktEkw`u)FTb1ln(2*Mt*c^1(uK^sN?b{W&ZvmQ2lNgm#3fgnqwy1hcb|_ORX(nPI-umZ zTr|_{KA%=EoV?sDosFyWhL=0g*{nZs7`%`AaX!L{mv-N!|KaAUL!=)5FK2IbUb2-M^^EuS4iVFT!`3sUwZ#DPGL7C5- z8Ih2CGklq6;-Uo)HCp(x_vaEF0>|h@O`c#)-EV%1MiDP{21TUqu^vR~#($siGXZV; z@24Gbu1ogF6iwJ{&eU&=eJ0Qy&frZiWp`F?f@3#yXQ)@5ZpD&@bv_a@}Kj?!~ARjWIq z_H6BFuoN>e1RStu;q1KeJQa|i3XLi>_#!~6Pxt>6aZ&mfgV|B7i4RGGdP_p%qavIq zt9z3b(5a=rb&IerA2Nz2!Nl?x-t;t-CW55e=z+@+Y~XUi`#zhDLQQ&aHTf(HmE7RB zP7S_%`_(7 zzhA6#-69a^L3#8!rhpx7thxj>3FA~52$-tDW)psll_R#oInDXEhU!{D%IT`2kNrK8W%CjVT0pl#jVhgR_ zAIjj6lf$Km;LuKKvJ5VBW97VeLpB+I$s}LQ3@SDxtdAs^xIJ)_R=ZqwVN4(5W`n*^ zzcE&pOfO1Pd~}LKo9E`Yw<}7e7idt#5)#v}r+~L7cS>RW{M0&1?hc2Gz*;$dK{jh- z{FwK1V){*2zG>SxzsVGp_l5e=HAU_D)<=q>;eWhg+b7`L{H)~|LK4}rZJ5m40SG(( zdz<|k>aof1J^-Q{pPU0A0RAwOPZickxuhN{3Vx?Ab@+%r5w)$@oHbl(+dS*228q$* zbGUOkMwY*Ia+^rbvr6{ms^5T%+7tbk2P_DC2O;Va>fN#WlApV7i`uj3U}!V170i75 z1i5hLOvbjvJ57m;l$i-JZo@O!Jk5?C3{s2NS|j#+M%L>siR}j7t-2p4-k1(4UgrGh zsMh|S7Xr|Dfcdn+c9(F;#)C92FS5pHZ}HQIgPD|R`1K^SB7%F%3QXKSs#EfY>ektj ziR)&K3H4({ov$OeIb{o_mUjn>~q1WvT_#RX_=WA86RT9Wo+da(AE}IC9hqo6OWT!j}8~Q;jf3>Ku z#;5n_3dKw*tSIAY@9(q2XR+Ov0^)_#YH|aVTxlnL`#lgkg2OH=9?Orhi~@Q?ji}>0 zpdUGI^qC_{Ejr$Wri$<#V8=u0C_-6BJs??>m}40L1|WZjaH;ORmk}NVR0ZLc_*`#r z)lQABuhwg?kFr z!O4_J{Y(up@H+s10M||n;Hob!b^+u9kCTAZ`uyfqy|hCA%g0W8^^s<3b2kctF|)O# zE#h|#BW{1`0%iJqS$#aZC}3^xz=ahW5T(V~_|PL+Qm+q+-)SZyapp8Qu99zi=D0mL z=ziS&u={WC`vUb3ph#7C29Y6;c7m=uQp&K-lWxp?^KQw=`s_z+HBcnAd=%|+(ceLH z_rq>TwUl2rQyqh^wy!GRtgw8-WN`V1(haOwPAeXEd7xeMU{#LgDx5`N<l)9cz0T$0}l3@vvZ>g0Zs&_tl-53gA?;0aPvUBPFt6?4V8p@yo=#U5399K z%sBDF8y1sDrsU+UL5IMp;z#jG-b+Oon9FJ>XY0gnAT#oULmHgg7uM`P=N<5(w*>a5 zvZHEy-Y{bOO8FxlG=XlJYki4jTx7a|eqdl=z)_qJK$O9-clczv?Oh4&_CVPt=Eo$^ zqXTT|3x}LQZu|F-sN;2ZfE>nX7r90Fl6T4^d}Fc(OYVct1y$JeK4iW1$0dLnIhZv& z_{7HvnKe0^46l=In&3bVWv#ujVnYY4Zxz4^9`?mR#hLI`YM%K8rVwUhuIr+J44a}D@y`s47xZz5YXG5{f(e4?tV3Q+6=4pwt9K0i+`{_zH1{}xV_ z*(!`Z*x}%MJ%6_c5E>4@sRK$w6Z1u4E(>aHvur~Ip$GS~Tb$$WNJw<=)B)k1I(ASI2EI1k9;x%m|9U7FxcO+;{}9NPRA$}7BOg=hado`Zg4OuJ zU!;Z-6Y>(PUgJp4{5qHS%Bl*{nK|J*N+x~c+q2{(Y`(VQH&cBwy1JK>M#t=3k4~9h z`jM<@Hd?+m0rqCl6)=Z%{^(G`Ol#nX()sEK?k|mNT&xFe&&i|IKXwn5pw^#-aZWN8 z9Vu>`iMCf$Jc`SEzCaOO8_Fv%3}Y0rAx#UPRyizo$5z9tCWsH~nwojPA)DmfbYZH%Au6>-wWp5>)p7_e%xvpgt%y${>K@#*NHW~c9 z_}l4Ned2S>%m_zTMAI8^eRq(?>1@ZWF3!he&=AKt zu0mMOrNEIdXizyBqOvZ+MVX#%IEZ|&T{UudAgGMoRKL&z|;a&@SjCmSQ%9PSl=LZR=PN12H z<>loWfu)~!z6Y|8@LOq~%Vf3lSgFOmngCRKUcJL`KG0zXNH-x*icPxutc8%hNpd>n zz%88Q{(&_SfcX4m$JeiJxYn!*N7eM9IT4bt@pbzfd1Uy*5ndnao4`Umv?5@1>;P3k ztDa|y(Xp_dWOGj%-FKtdKVWDwx!U=IjnT8{Sa@v3L64Sr=d;C56-F|(g}O&|cD$**DGU8NuZB$i4Za|MF}sFS2B z+d!Nz;o(&a_Z(~a?+@#bH?v60-Cvf&fhJX7f@pE7(mw~Vk9Z^xru;_cs<^t@JV`WW z2uBBOTaFT+TER_;7bI03UF}`UEFq?pR$yww>{nd@aus8@*3nKI$KU0rqT}(nCocjj~~EXec7gJ6`29 zMv;zBn;Kl*8ED}UF~qD4?siwWB$>P;ce=5-V)k8!LKLQ4~QDs`~ zv5DiHUN3mx8kl*H`aq^^gQ+5-LQ2uNU3_gEqGsqs;i24 zu{y`CnfNwQEbM5m-J5n%7@&V9yq9p}=Gg@WrxgrpT=B3Jf3BpnH5JzCaasvSB69a7 zen)vH<1$3gww!T*KWVn2#ODqOUg!FI?sBW?s~rkO$98-d2I&*1V)F(Z)sa>QLvKla z4%pbjtL_osIm#EsvyEFoCK|k@k_DmhSeu?JND3k2Gs>CxL7)d@aVr}!Kw~i9^#<&J=n-ELBLNg^u0kE?(!af-dC3m0n;u=LpHw5F2+su7f~PzyUk6@J1Yt8p*o+3 z7F)39JM?co@w!H}3z}%pg9U>kI6z}MW=h!{lg0vR-4pfH{J6+Kl-91}AbV5gbHoAGP3%OuR3V$>*QX(?gSik|O9*=f z^(`=-FPmgNn>Ki4GN`v9@psEYCOgbP-WYy9-HQ3ynT@8j+8pnA$&#wN?N+WOQRwgf z^6I__zKM>Qw3%k{r8rdXld&&)@M}rna4X+YZy-BEuonr`vZB8a^uYd>Hy;b zPL(Qv{A2xGDF4%HC*S!3VjjSi9x*)O*p znwXd{s;~i+WTPg(-LW#OST8oj#*9Y`t2(Z^ynwVf&f1C~Ok@^9N_~4j$!Ux9SoO4@ zzn63YfUxR93*Bw!0 zOHK;DeH8{disQ$Bks>}wiNHIJq|mHpKZwrUfZ_t zv*Yt^;XJag3KdwydLqYbgDxZay7h1o=K4bQ9MW)SC6I(~>Ot$31A3ZPf`8j1b7Q&t z^efsI_f=Q+L<>kT?R*Cf#x})qao;_=t3y4|eJT|tviRCt;Db!&m z073t>W&90&Q>tiH$#zVi^7sFi+drGpAT=GZ5TmlNAJr-%?`&3KJGfKCj;@#+ z)SIferE*$3f0zhrUd(wHC+MUYkU!Vf6`Gs2J^=)4@k;=@m<7^z6=r)H_H$Jx6B#}L8}_7ZK=64tBn4`E?klM&RQ7B+emeJQHdJ^{;^!9&;Z+9dq?#` z1%m-`D&`}gbCk2+?EWn@WCcL2k`6B zTtxPA=>y+KZxh%Em;8;}icJqiV9qByZ_Qfnu1+iLCcp#p%dhq)Xs}KwGAI;qz)uR8 zz99&Y3CoDpY-g)n*iB|GjlEn4RCWq^!oZy9v2GMh^vDbJ6$)*-C8C?62#gmg-qZD7 z1gWDz{t+)PSyV;3?|G{TX+%786$5JDlX(=46AVky6gWjvJDrrZD^TI&K02ot;7s}< zDWZVY=DKRJ9Xno+yRY4@&>jmeiV9rWFTn22eX`bG@XfP-Mcp{;tSaS#`vkUcf*N2+ zb@l@Zi_!SBvE{ldaUL<#GO=%;l&s1XUIBB!W%@PBuss5UmV$1!u(D#B+!>Y9-N$}e zAj&lX3FtQTPmXu(N&xEP zsJZt^)wDpyez9o-;5YKv+niIFdeIsQ1j2Hvw@gNP)Lmya+RrvNz@PJ_M8jpOG)^#C zA)ppDf4ITF?2NB`(bF!RtWZ2vJ13O)mJ29RfUGPBVBu>mz}}B5z1GTdSn1F38V{J% z58z6=l&R$nxUhg}j#*9LA-(_0t;PFdmM_oguW|grMa@>p-C50c6{Za!yC<^`H2(N0 z?iF`o!v2$KiV^U6%iZ$qb6U=W$+5d>+bsa_X#&yzMv&78ZH<66O-`ehq6V;p^%R=7lTq!c=P+#r5yxA$|c6~HkOBJS+ zE6TBQf{aII^%gmUn^Fb2rcozolf;3^h4+Fwa`rziTCV|M$eBF!NKbY13#(}ZqKR>^ z?%J?XP1%?fKXIvwrI!=RIh=FkXI)eiQuw>A^~KVxgWBYKmx>a8f3_o%!uwpsv9?2@RNavwGI&I`U12hfe@0_vTd!1X@=P8sW+wWO)*`uD^A-+hn&##)th zHox`M%YV2I@Rck7j{}v8|8U@UF-Jz%e>iabe>gB41iLhL>eo9_$XMh-Gm5r=YB=sq z`t`FZ8Q!J&EYtn{Uw$J6+Vr( zMC;xOk~sRWvhbhKKgp((*%h>Y-HcnfD_*$vY%gb;=e1)__D6^I&*ED?v82LlwT}Je zDm-DFf=N(sB2c1%Qc-Zb15E-T1<-#_^ITVSUkE>!n%7oC`p-A>YwMdoLm#yuNli8W z``ZQuPwpqn->0MlIK8jWu*9s%bM;4^$MU@j2z!;r*?+m~g~)o;b=Jo>&u$4`=j-1O zNxt%zAhVRV|B(f_Y@Gpg4-oGo2(V0WH8mBCE+uzGi--;<@i6i#%-Mv0z-t3m^tfHC!bp2~ll(PqESMoV|MTFQE}$nq2UPTcj8$Q~+U!KHeI}1qS2@ z;C;f2ot1$jvno8`aA$QeR-IUiwDuK>-^xk6-5x0?-=kMKC^xYmRR;3O9PWIH;kM#0zTA!C!)yhrGrN$b|juRU;jI50_ zc(<(eeD|FU>*zX87Q=Tu)nmIuVkG!+M$N$)HHBKRb38~7a?G8^K6aR7VuR8m>=OF3<{sg z#wG`WjvG6Yr9z5@>VMzIO@Zf{TuLaP9NxSg|%>JV1I zZidJY#(150@E!fM-$d-Epi|C~SC$d1l34eGc&Elx2uCkO&cEcjdZDpQ*S@0vIEP*J zi*s^3q91JQ#y<)EDhKyTu#c_3WB;R_2K4x&%+um#htr-Kch zTIM`DlMM1T(mG$YZ(_QB!wycHbGwK8)Z> zyFe?$!jx_j>?19mvn^eEF3Xf7h&9E&hjXAz{6*~E$TEA1_cx)_h6%1GK!sJ;x^^C# zlV0~9zmSchQMPXfQ0ub8#v&|>ePHVkXJhy+zVX?bTj$z6Vmw`c6F;*z^mTf-dH!uO z25<#T+^jI=eZcv7vcr;lZ`S5$HBP++>e?WGe~3-rKCS^&Uq0yJ5hq0>6-XJC5?Hf0 zFB8A-7)u9`qFbl+24&M9>760a0)DBFVD76rdq5J878#2GHaefJpTM{;0?rMuCpLsQ0WfmqzbcI<;@F~r5J_#BSE^V zWo4M6=b66b5kb|1Cl%4T4V=GOmZ;ovvM+CX-jjQgqhDw8W3J;=R9{UA>L+ z0y0z`rj2mAUNb$_{`AcS)YdyaRMUl9oTT%2>STeqwHq%NrcL(T%FnWX)x_N~lZvZf zpiu03l@+KaAEJlm(M=7W`!f2KVi<4auB+=>Dd58Pn=JpU4|~LZMw~TCI+)8P=iyNu z9plM8z5~ciGX-9iUYC>NMMFM9cQr<(wSDhIDj*43A( zC4VZrm4A)%udDtC#IhJ^Qn)>GCE9dG@P_*-s4sn*57DPvT(|sM3&L}+OWXC#yauT4 zQ5pSsHvmUKxW7hQdqnnUOGw$f{l_{OPteNFl9cPl<~mfl31(+PvWR{P+x+QDBJ6x! zS2rif9mdyq9d=bYBRSI2bp#)qu-4n(NXv@IP_8J&6#aBnhL56d&?e^=S=?8mHNypq zoTZE(-tsAL-&i?Zmm*=eitH7rX~O7&`iOnvt{$)#Bi%7s;MfB{*DI&6vH;U}kP2_W zow*t#@|)OWmyaI{os}c&FD2VW+5c8l_+Lz#Yg}ulg&A{6&@^lL?xY`6hHSD{$G}rM z*%2>+Iy=L*vm`jVSLWQKKte6#UmzU>Bx|=zq^UZz#IVzLR7f+L4V)!>rqH=Y{NchB z{_wWal|AD3S1NAXTxL!;a$uLe+v#{Fn@jLKJseB~>`S^6~8%Mxbs#y3Is8h@*L zm4L(kWGu3>;YaqfA{{NWy}S~t#-~l~K>*nSQp;YvLc$fI968kU6`+ca)SvW2Mb=(= zx8H2~`0bN1LstRM4O1L@GYg8YDs|+Z=s!GK;kQ2Q>&|K&XYy0sXPVG`Mo`yXN-RHh zNMc-t8YzbAYodMVZJ>&t<|d^kP6zXxJE8xXtx|LS0NquXQtw)nM|oE0w08d-Qs>w& zoL~(A4&Wtp)Thz7FrdTP^``>{53z>s;AsQ4UjXKfo6rH=uv*_Xj7ty63@I^p$JKKf z4*^V%WJ-CjOuj*pWSptL6{(o?it8MaPdxif@iX=84QY&fdg^1a z8pg93HO@-*7My%hIoIlC9DuaV4eEcr+nMnPX0`}Q`Rp-^1d0ha@9)u9d^VLtLt}o% zdF0_urEah6Jlwcvb=QH*$*KSnEM0jLZoC11p_aN@yI@&ihrC2a$QW4dKJXJjlJsqL zE!Vp`)oW@rw$Ww6yX{UdLh%D&)}QBXrS1GYpyzPc*grZOs|w@-r-9MQdhOS+XY(i#*AzA z#7SfWJIH@Gqf)<<@2i#o#31@1AF)r5{wT_z*(hw9+w~1-+~>|p{}+~8qX-Mk6ZBHS z=m(y-w^Kc_!6hb>HNz+=$thEO9xVnT6@}VdohzE;Xk2aa4j8Rpmf)gVlB{Y}`V+@R z*Dpe_VU=Pr+C1DPN#VI!V{}B*WY+^R%|SUYl3R^p=ogIs@vM?R29DiumDJc zbsw&_eA-rBf4-+Yz?$?(H&0Vft;8^{)bG396&-GzY~McJxCTCDJx4rHr9}~DkUq<4 z>QDrDs+s(yT98&vn!wF;5d9a<12$iwov+i+6OUE(Tdtiu zdTc_G^!8ZIz4rU(esRT9KztOQI|DqXM?curDSt8d)fSL#n&Rg;4xp1>V3-RJ)FKcZSjMGrDns=(pO9d&2YlE4Sek|AekK3A zy8@;y;U^BSw34M!KmJVKRfbj3reOg^8V^W!OLwOXT`NhDTIWx~&&wIx+bCm{0soN`$nJaZJ%?sZ&-JCnVQP>mVGuy9G zgkOXFGf8EsOvYI2eJ*I$L(+c6naN5ke+qn*Lo4ad?36A?Rz}eKz<;S>b$NAyaqR?~ zSXR<5`be02Aqe9?g0}sXEcXjVnD#Ag%LNzW zNRRiOXz2AK+)nfkqb6*ltO5m|>bSiVA2BLR;9NHEPUDREPjdk~VF}-FwUmb8$9t?++u~=G(EaVI%MGk4DYo9lDb% znO?jE5=J4!oe}Q(gQbqB^mBaf$9?sqBmP3CiwU2Ksdj6NtDyx%x9c$WzDmfNA#4w%g9xBdPSr5!1fUGZ%IAvbeTH4_&1q& z@$)PI65llNWaXV@2(gNwyo|rQcui5{MwFKbXBJRmS_`^{KGe)AU+z zr*x>yuIE%`F3vc71stpIz@k4O@UpQ~G?c6=HZw^QXFE>>}fd(oKapYaQvCh09m`4M{i{Zo;DU?5Qg^C+q)KFXQI*nb;?x;Qar!BXMsG|C2YdSJ(o_tb7@VPQcJ4~QO2_6gOBIGWrF za4p~Lcu>#~UVhs+7B&`A}$?{W!S@ z;y$;>zpD2-Xx($8+zXyW82M}*hhpiRl}1mq`|Ut{d=8E7jNo@>fpIU00@P zc^cvmCt#XN{2CHSS+21wOfH?<&WxkTgszH*HGG%;Y>|290Pr3%@pB775O4?Yi@^Ed zPtnRUnQ-d)CM3zUPolfn+%pLcN;HrV~8E)SP;x9ETE`xvr$mT zme+MrC>nj5CKem9>h00@pO{ytqU;r$U+VcH5XoPpZsv~$&>$0t`pu4I#3cI)X_&;n zl$Lz$$TBk7$dU%Btp144ayQg*yf4UB{LsHhRpC~UcARHkhBcJpFv~l>t3#S&IHnL_ z52+#`gk2J}-mHbyH3-3P_xY{`OSxrVoxSbhK)J2^Wcp_O`)K|#H+u)KUd)Y^`jQB^TS}ZQI3HP~6UYB`?D%F$Aig z+wEd&xOj*``rimj>o{aKx*8Vfj`M1czO7n4-M(iPr?{6Q!k4G}jDF5ZcF@$zR7qg3 z5iE)87|1iQLC5u+biqxQT^ZpcQA*G!sBw(X3ouItS^c+O&I`I+_Z zhV)_bzex5SeEo=15=2NWvKFqh>5ZelYODM3MU$X>rQLMtl3<1VdY@V=rcd?|r_+Cb zw$`GdIyViA8p=EB8i`F2%5``$q{GC+kLT&=1AQ!o=Y0da(r#;}d{RBa$l@U3kzagw zj%V36-wKluS==|&I(BEC5E4B*p}LsMF|5v zARHQlRs}((UFx!(V&CVw-wc`SO!Z^XVwzEr%6J*{@xACZHbC{Jkb54e9o_(z!s+v2cvP38NnwD&mQG9Td*Jl@% zFyQNrUqk#2JN+s6dorgSh%k0Av-z=@<4}jf@Wo;Cps0LkLtIr@k1wxRfw-$^VLT*UN2Iz^GqrS>t0SP zxxhxAcE+K|bdP8Wn3)!|@Hc{_kfdMZ8RRB2Br97ggjceeolT)OYN>XL>ZuY*biT~S zLW57npoWqR{u>JXjDGFdg-*|f%0I(>e;K-kRHRah5Re(?&-~Q-%=timx74Soz z?@)4wgi$E0i!d8gQs|)!26mMqT>}77x}&f!bA#XXZ)2~Ii>OJ&`#@9~y~E)3Kt|NW1Ur1yw{SWC*6x5SUJysFYTH3=oN`tRwi(sO8KR zg?7d%s68SF@PaI+WtDO=xHm7C;>Vk+%{Jt*`kX@x3K&d@NRHHmdV*Ob@B&+IA zRzoI^?-#%;B{0oS+*;*_5(s?6mZJh_t?1Z4?#7!K$g4AmIv_MrtpA*-u!H_BWzdCg z!T(!oi{W4dr%}Wj`Y+rGq1EJp9#$4y=%4JzA}Pc_Ka=xBF-&DX1n{RVG56PD(Dsj& zB2a%aG0^~{Lk2k~*Km{-E}!@Zfiwc|auoX4k}aDu&v5$EbLi#j&p&DSLwOs%_-nzG z_-KzFKM|onNVuZ6t~8cO4P{vXp$F#qD>3Jdl9STcr~9xBdX-V_ zndbaSj|srakF4u{%gO%ZSP9NpV7m{g(bJ@`NDT+|HCw(1-qbW##WyanSmAGgid}8_I*qdBuEQ1#?94Yvj>stwo z&DqXJ_vZ@YfB{;*sI-*ZekU4R442o{{+XSxz;<)qha0{q(%JE#Fcg>gbVv_pAQKq_^cMKFiN4w?r0 zk7I%LEK=gB(X8TfG{I#~p}()%hq{78Q=Tql&XfaKza)=U0ydK0-?NDdf0llmCS6!FaWS8YIV&rbNMIVuK`&2qyo^J zN-?d5bntqZ(sTFnpER6Ce_;z?$?9`@!pO+^iEj^Fd&T{11c*U#m5dDH&b5`|--`N> z3A09pL4*bVaSZMUWL*0D09Dr;{%fJ(2tWduep`;{kyUM_Q%f2szA|p?1K#HCBg>@r zC6BlH5N&7Q4w1U>RU4YnxY5hnZ+@-f#S`NIOix*Hv5pr7P!a>!TSVZnGp&xMa|3h` zAE2WkC*b#V2gn;1$B7EngyFFkp4R z_v?q)=J(N3g1hb$3(dW&h{&i10=|z+(@TCx6;o08xaV;}C3MEj*A&PI*V1?LPWGv% zliyy&C7SE?CDCc)o}FUIX3h^iRts@%^yo$L_M(R#@ERd=Y3Mxf0c3{y2%hlo7Qo;z z*sv+TcGh5~2@^iV9d^s6{Ryj#=Z}T_j+U{h(pe*BrSWglIbs;lCIjesI{=vhuwJ=# z2cO0s^mP$H#@ zYhPPJ|C!w{@_R?PHLLA5I0RqkuJ_N&JkSsD8*aZfd-MhIUEL@Kp{H}THm)A$0Ka8& z)kaIi%SPHCE;cnct6gRR{YaXO>?KwFlF_*3bX4;Z?{aK9%lVq-ufF7n+A%1j+_@PK zLzWIF7-iF%!}jpz21 z>16ORdo;NOLJHnLj{IKzr^g3?H2zerKL9YnGXVPw0R>%&%4S~;_&YYq0X6(~xQD&W zg@@hDf&O-sW2UQgDwPY*f)zfio>&$H-Zj3x58@8qol~9172TY-*0oOQCDc5X2%F=< z{Ikv^B_$=q7l`ki(CrUgzWD|#r>i9=nG}{^-(M57K0V%9wbgyRI;@cV2(W;Fvgu-& zd91ROgiPjIRtI;*es`zjM<4qTK{uxD(F$(nO0}njm?KIia{G~09xqv|GT>$hP{&jX zv8Bh|Ns8BWN!8|e!wKBCyf-F}Eaq<8OBDPMhp3s#Ncj3`c1HwHD|kltj}fo%M7=nS zM+>wb)cG%G^~`%Pr>3TW+tLOGasm{QoX(=h;RVMLM@!-Y6Ks4i*|$GduGeExg0)!FJ4-gA^7xdG++PoUI!mv2ie`w=I8ulS)P3P37j*uB!uXxbAswQx&>gP&M zgx{e$JG}ZzWvuis(<{JmasZ?R&@~R{>-K_w0yfA~QbS-;2*WT#)SLIt;N1Ow{fY4` z;RnSf{(O_Y;Z%g(t}`;1rGVFDb2`rk!=iUN_hjXjzsr8bSPjI3Tm`p^MJuCqc)Hue zhb}=x?LlB6pAC(`=XEvj2K3BHq#v$ab|)zlwQfrRFYItK^L9b1rR&9%3ZUE`2sPSP z(Q@elIte)$ed}>&+tqTZyM~g}&02A~-X424Zr_;j&uO1{y9g5Cr(pKel?G|G| z)_c%br#BPwF9GY z9JW6875BJ@vNBK6WHo;rutS^kRa3q4{kh$TvOC--6#G>`%UuS^dJGV`vT$H;OP){# zAxCj!g8y7@^~WjO?H$@-WqU4 z+^nl65Pz2KA10e7PMlP(`Zcw^(^)4me)~>TBe2%&V|HGJaT3kKtdCK?T~RM;w#K`& z(-$JFQGOb32X(tNFk!uxGn*bQziTLFO#&q?a!X1~2V%(pcy0+`wgD&P+zPORsX>Li z%hLi%vz>y#(C5Fp%ntO%g1QP3S~E=6wO2pg-7Pp>;Q?7#MLhJm&ax$2q#wnZxxmVg zvoBZ#ny4JNWA{sEe%zFMEVH)=*eu3?tal2OD;j~#Vg2*=VlN>eGxPDh4=}1xtCXiP zZ$FflH=j1|mAn1QPt@|bn3757s@euzv0Ju)^m^3pVdaJt$Qo@o;GgVm_g**>k0r}V z?#}S^JW7T{9jirnUc?%_#&N{8nzhN%***zOUpp#CH9v_W;B~m}E^b5I%i!|RJy?8C z3%H5rca03E@t7hzxR0*Pn}8&*9+>X8XS@%4y!_VPs_%vwn#Zc2OH{StZ?A+$-j0)z zwfmJ#LbDw4&3H!P-3ucihNR-+^M4SPH+>frqMsM7V4^45J)Y6n)O`a(x2PoPdPo|% zhJXRK4FSy&g<6Zw@J>i>x|VF|iHV0$Xa~NMf4QZAvOo7$`F+)%Q@33KxI8vZ$!I%3 z(%ujTUuAZ|tdpU-#QmPYm9Vfzv?@_tE;b9&O^{fHICO@VI#TV&;MjP;UT`RKI@)|< zMN@QrmPwwK9z{mNXg2my9TmpxV7!9|q3C5Klms+FI8Y*B%>4$pS#?kmBfPg}n8e26Tz3u^H6ni7-3@q%(aII?;w za%cha?x=?i&>csb71V8gIXjZNtIN+Fwwvn0*Y!wMjhxcg{EYa;#gbK%-43C7$9n)& zgt|*xV9yE=2JwzaU@_({LF|6!8-#0tSy3$4@^ft^mya-#ljyjF0#YItalo;HO)iY?n@)mAJu{cjKbFbj zoO8llOorCzeM$#(P0G<9=YnYrabKMT0~tl+dA)F+0)zI`E`vE4r4pq9k1p9O(5R{V z1-!2$UJGAgcvvh~yw6x7*6t;wR(v&iA>(-WTlp761@+~5*rJ5=JaWEUS+?TvbJB&~ z^~4FpB@%<;93V2eC|)9=P7-J%b6qj}A(*D7B(xjq4aS@SoD+X4L3M)Wua^qF#(Y#9 zHuTpw-^VUr+n8b-x{TR|q#3@<*4FtC3U=xeNkM$#9Z0QuD+a+T>gl%DmZ-NPh zqm`1r^t^i$PhaA)|Gqv$FMbm0uREJ01S}@~+w)(qUjmxHUn?C?fVukeXoa3E9?+_d zWb$h_!5TxUahu|EHd##G30ZkqO_@@L;DF(k_hW-_198B6NbI;=bI0Ql2mLJ&4`D%` zc5|qSL+f8uDt0)Z68D`A7s;xQXAbDxnze7)vz!hW2b4p~7GS;ubJ@Pmbr1(2n!4^H zctqyDy*!{M16-C(fRb1BA$&X2>v6ZV!tj0GV2C*v!2)|)djFZn-nB}0kp2CAF_fL` z0e078wVlBMajWu!cB}o|`$vy6k2Uq}Q+jTsOdfeJ*Ogy!d)U+bPOY9ZS#*!1d0B?t zVa$6-2gMk)=9emI;c88?je8`Lg?_yGX4b39- zC=0XKzj~MXhMW}H3G!f0_Q!ak@Ii?Dor_Y*xUS8|SW&SGpP($+FS@uU4~!Rt2xt@_ zRrF?IgkV1@5ieu`$+eAnIe4@*U!5U_wOb6y>`q03S5f+~uUtpp`7W^a0{zb90v9f0 zP&-ygPZ;*gU_wNhd9QY9(D)+~XVR3sW=k#thIl#MM5vC!lv{v0O^{E*_5RgzyJC3M4k zqG7r@kWi<0H^H$F7dy&nX}-s%;uqLzgiz&nMYZ;;0~0WUasKe!YFoES$SCP)RUq|1 z6fGZ`&cw*~O#oIxr!=D~_DkdM8BD9oS@)9xLqIyW6EMfA+`zaa?hJT%vOg@Dt*93_ zkL?HJfH@za&u_aB#blEE#uZ%vr%?Ujvg3%Iic{JRvm+0~eP^MolTxVpv+fI=^}g%n zv!@!^4Pel!O;%`kl$20W>Qf90sJd}D?$2iMx@~aUHJuJpXS$yb7!dSM-VG zs@}ti;T>`O5OT~kGc(KgkSMN%u6@WiBscLGPn@;+#XeTH*VA!5j6^AqE>qhlYw>M7 z10i=?z%qdc5Bp72KOY)znR8LzN%1_v57id(N*enROyjd^Di8{p^%e>9mCSd?%`G)e zli(M01m$43NDy6$u{o!E>A zt%3f~U?oEvaz}l56&UIuP#1z({dy;);4R*^n09bIO9##jV;}gL4Ik_ zr($s)&)qaX`oa(8Xd{R$Vf$($u|lyoyH#nn2*ktbK3&%QL8)JOIp#=xH3etK>)uWZ z{HS?fIw~cR9+J)vPg4FSp0mWoJo|P8(rw58PyEeT9}rMKSIiuM+#V3~MdrT;8;9It zgO4f}n2jDhsbctFj6~9O0G5C`?`7+})mf7>4$o$w5bg@U+f*Dg-RHixF3&G!P_CW+ zu)qRLz~gKUY=}BM9{{AT&wru8>Ihhk0cB> zYj7@}PY+j5yDA+(@t=_Dnj*`)5It%FzWRf@jZZh$7kZgHD~HUdNtcHXgOei8Wmvv|=Q$lWz^twv+f@)S765ZotrmBFDb_3h@%WRBU%0bbe!;ZSA)R6Aq z9NjCI;YK-k(uo%5Gjy$IWr(<8qP+>>FOV-Gi8RRmpfKqxj8cmv^ZgP{Z#ypy#_nXw zd?=uF(PlUe#MD61!jIcG!DTmV23id{4DSTNwJG5*s);Ak_r*oU;ZyWyVi9 zDp(Vfw-Usw%H^&!6}5!QCo(!*JSAPy9|%&+-)5(9Cn>^nHNzK#G>O;_nxjI{E+FYk z<~3k@p8|QdgHoYtmN1qp_^QYx=Sip5Fa>HE5yE z%n9fX+V?7GN)yi?T;z}T&+TfcQ`J%>T{2?Ic7nNcQcYPKF4YfE~idI z$ZTmGWJv8>g|g|33zZM)fd_3e?E4%px591F%*>lVv+c$po{M{NFIg)+-uWqxuk7S~ zkhLo0n}KFoKlyU+MB+@*JYHN0ELrtQ>p~KC0er7Q?Qm|3etANYGIa@`=2AhJ zMjUN$u{^%m$1rOe@CF>d6V#A`RgZ&T(fL{j!1*Eo629f)CI7MtVQ^v{)zZ30hoy+|>ZXgkP zXPv>(G8WE*4KD70pmk|i|9CCu$OX7}_`QB6syN=#a?^RN&EVZRKk+;BMdETkBWo^u zf}GCBgzE3q5B++Ye)_^&c063R9JSvW@!uuiHy?hWZ?j(wz~BQ+N$gAZKOANP+IwhR zt}Z*c>UY#GRU&FYTBVj_%iWPP+U*vX!|#Kp+ZHPyA_CK)8muz79l*R&%Yg3TBpa89 z=WG`|DU__XG45^1vy6hcGyHbm!w}pjJBDiN>pah$>G*~Q;|>%iXe8W7Oi9Jz7(_0UkfHn1Yc#kS zLR@($NjIv=4Btp)x8N%&sAe^xp#<^4>3Q^K@Tk>-^$lJ+j*1vUycbg+7~c(n9%ix8 zHKNL|lo;q7A9;U6tky^FLuV(@^Cz3a!USZj$!Ohk9)>`S*pRfLxcHgsX=F3FnjEg` zuVvPGBHl9Zu#I&~iWNImemiTW))(usz^oJ~caHBX>~=2I#TS zMepg?==Z8o)VW@^Qpk*sd=T?vk&Ld!&< zehwRtw=#m&An?nw&gXa|;H8qgcr}%kaRGa>sd!y*10JC}o#D*0DFO4SA4%a>*VGsi zD-6wX10US`r3p;lC4NMkw6L91Tc8)8sP_=Ae~8cW8pMCOMH1AY+7K*Y2N#09 z2VynG?FxS>9!#FeL=^Z{yn&e=VjRwnw<)OAyM*OuZFiDqlaVi(d4LSV2HC~E2qPIdYcF3qwu}sc!SfzROQ3v z-0TrR;Y9{4v{k=k$QIKwP!}q5P0FZbpLV!7| z6B{i0gYyZ$)_L#;{>z?Rop2>sESG9jEz_?VsGL%Q_%Ig&KHGwA&<`=Oajb@4-&XB& zASlq(OrY$2w4NYy<*e$Iv5>4)xOk^Lf?}diJr%BR$(l8b@5&WPkq@)|CMWL>C-n}rww~6{EsODno~&~f&gdB>vSVIjs1hdZ z5fn`m$&mX#s$b1T#8v=;%YPp_v>P`UfD_wOt1`bSOD>7RD5WmFC!OmS^Sqp!ajMB! z!KFq_SHn8v%^_Y*7|5M;CiZ^Bv8f|3ay5 zX1?)Jgg)X^5$+RyYbrm`mNA$jPgycTVh9@g){*r>B=Bfd((?n?54ncrKb!u|3lCm7 z(C1v=&=-h1y5IkJfOlj$2ciNUfSTO+@4r)_~UfGfA^5NzivjW zbkz56UF3zF;AEK-q((@%dqx2s&+HVoOtw;a}g z;1ex{gy{c9C>EW&DJ|+j$=$Hbc_cOGDv`W667 zz7qk;{^Llhdd=yFL{pVNzN1-A(+Dr$?t2bv9JIYf#S!adT{tqEJzG}K-Iut6YnWam zFZ2!8nna2IsUd~0c|O}{W+_}FN%B8m9gR=)Ls;o-gW;VlQdkHnY?!WW-ld}jqS`Z5 zQB%`Sm$DR^T1YDLYbsm$NSJa`K1sPR@Z>R)Z%Kbg!{v)oY2TMdyz-)MT574my@QMUpO8q~ih(Ap4c za}F0n4tEJ~oRD?n=7>#u#igt8Y-r&Xwb|k4IQ63+at|XmpAjDa9QfiOtFSoNG(<_~`Y9@kW z{rNZ%wjTl?Ebq9Qgc>^}rnniSCdGexqOFMIa57P5BEL9r{N|Oh z!M1|PtN*}B{T>%^RszgLff->cFeE3jvCcI%dR&Gu@U-3&rf`QT#4}X##j)9($_d?& zj0Fx5)`ri)KItTaUW;!Zjwh{}(Hapoej#|xUeZK)lhiszu`oW_4dq6?i?XjCo&1x# zq#g>7TOv4EYTsfl)-%~0!>?))hwf(!q!cV)g%2f0LB{#Dmg|&e~dYRx_)6fW39C?8P zh4i;=p43?sP#9tcVG=iweJ?w~#Y#kr7_;I-5o&d7iBmA^m(#0kqw}YIHB=(sGNO|| zd=;T9F4JZHNUtm%Q{Tz+SvNOISNL14IGSVu8scZ|3n^!1t{_t$&|m-)J+j>2CXzkU zRDRcnNvBxnfFyd*E%95T;$>H9vT1oZ)XYUm{X=V740bThSIHL~Bm-p-2e@MNG}+AB zA2;eu+IBQ5)L*2%WGiW}5^M?G735Zo`@G_d3)7a1%}p^hio#Y!6X%1@6z!KOFYPaz z0qby8oI5|PoU1C4Y6F$xlxfz{hvZ2d7}y=*FqPt+Gbx9JIv`GzADWo%3JT?z4~zd0 zu2SaTuJ)@bjw6&=LtuzZR6polCzj@wIQ5h})aw6;Bw>yxC>)56N{u$wLcTj?#bBZ_ zjy|{8@2;8PR9bIS-h@<7t}aLJ9;Qd>J!l~XVz5H${<_XI-^y;A+8=Htx?YGFWE2VM zZi~IB=~@IR3tkvua`6G6=K{FM6;QfQFJgE ztK)V&i3_tTPt(6#5^N@i6DG{c7L2DD$Dm7e7SDw*DBCqoI_~{4j!Gfqu)I_}fr@p! zSJJ4sV6i`kgeG@~lrm@tAx6--xKaKkBg|i@JIkOp+bj&@g&-xtwYa-epdS+4-Q9x2 zhZbmyyStSJcXw-Xm*CnKx8em#fwmjA>oz+pGrK=C!#sI8=Y8xt_qnt2c&M&PwASu4 zNnUh%ptI5XJiU9~s*X<=^M@mtkT)*K2fQI>FY9Yaqrsd}^U9OBISIc!g@>{(DG1$` z|LrZRL{Xga8_hv!d5Y2Qy)i6LKSWLi{p8sUh(#1r0IsH?t_C)30ud#Xgu9w>Vdzn@ zriEdm0&t$rnl2{-R63NKK)nGB<`t-;ZMUYJ`J71z_Yr?yfRYylTae{24{1x`&WZ=9 z7}-gfvxo0u9rze@VQI)MP$`wLXeeNtlfZIbkC))wfriMwW!FY7rf@7lqKNaV+Iev9C0 zljwlF;%iJlnj#p|nEnd_Vh|bsvh^UD$P*Cae3HB09th)_eHitJOltP@V4IkwsGooY zUKXKUNBXMbCH8T0360+n+FQZ~y0w6`FV(3l0XD-wFw7~0{eR%~qHIyfV-<{*AM9TV z2p}z^X%!4?vV25cfM+nMpV6=HiRR;8H8)TqoQL%X2n}mpenBXtQ>n&oQtM$RZpNZ@ zKIEJ(J)4v5q1BfR%;k+*Z;m|=-_kP>3lA!}NZ*DLs|OYRYVCNaq?oeR1hEnQa z9?CgHBq2y9TD3&+a*e+~qnaBgj?OcI8rP-CY0iRXN1NEdbnMCH3^e4i=INtyHMC)O zC25r;H)0U>LKJEh(eZc$jTe=m3h^XjOKv(O?zp~?CST!3t5;&}1dJtAounFFVT8j0 zpU7F*jeY9*f?#wTy>V%6&vt{sjJA&bX?Y>KRMBTemTJ|d-`#qMTTYYi$zYOW&bQ;r z*2gR?d{R#-9Jgg!9Hw{R{VJDg^v|9kOmh9|BFyFPdh|Vm z;2VkPnWNT6j(k6j)i;1TJX-zoz^-K8QbelSR1Ww&pZy7@3379P=Q`46==zl|Bgq|K`3&9j#&pM<%NN}n-$Ax zn7VCS8N#$y&Z=IogyM=kcWW1EdhysmWj4DC2*L=F+QP{w_{{{_(9aevi>&Q z@AKxa^wPYIqVMw{a4;1<*5YO#%hDQag3k?YzBd}6DM6wwq^+ZdA)h6Z8YE)%e%@)N zRr@786u2;Hv3UA2y9t(bF45|1`VC`}K+c`U^#_z$uy*(48rqZq3R&9dRW@qy);-0j zhLgrLnM68}^G^BDg#xAp!6|-mU%}J0#>>1B8Q{(5R{kbvL5EpZh9O`DZW-+VY@-MOXt)>n*0o<@=(H6ci8M(fo*wn!5k1asiH%215MF~bSloNVp ziU>l;BPECw?=G)&)egymEMpd_hGjb;p;U5;MP`F(ZbJC_;mNZBCG2V+hpRR={VZG4dvLw zWw>E2l_JviN@D1JQI`7qN%&1vi4nYHcCUF*MXFsiaI7qB=u|G*ByA$_z2s36*Yd6& zRyXxT{kOl=&91TP>=#`m+OXt^(HmY3((wack!AMjlK@wIS==~6;QLY=v)F=BC5v2{ zY0h#64)>(1F9F?i6#jK!e;eVb>!uWuRkaMg&4Lj9#4(*Ia?-T9c?x5gz+{vr*U^ny zw5559#m1a%Ranor;Nms$=+iGyJLBK6U#+Qso&Cc1o*1_~4tWRh?Aq6i{Z^kMx;Tao z36hRphFv4ow$RI}f(3mgH+Pa(dzzlcbb8S@qXh6Kbdtgj2W&b6G(O@A-D0l9VFe_^ zeboI_XW~(d^Ih%+Wf9&t+vCl?k9>hyzp++oad+btTU|(&c&cjorkGf70V$E1L7_+y zkMoTv-p|yG!czl)!^Zu)_$w1Dn(DS|cGmfhJ8K}^gcpag94)m7JOvozwv{i63Q9p^3t9ta3y_g!*trbvNsIbJfao%Q$q2 zYq^I9{dPoL@JRl}uo4tdagF8H+AWfbA6ca&Cr|OKr|=NE>>)FQcuZU1G3%NrHT{Yt zU2C7TP@~Rq4|+ZauY=hw5}YE!kc6aI)|$}c!8wH8G07sG-|ZYbL{=rJ0rEnD>rOAQ|^}q{9m!Ds?`C91;P;$_u?5} zAL(3@Ix5m&^z(fqCuw6+p{vib1c_Prrexfe5u41u??NL zB;VH*3~npw_SbC~5jq*4MkdJ9#?PoX+GLoKlHHw1wPKEJ={PfW}R7?(k7GBC@&_~R_46ivhq~IXu)#H`# zYy|OP+#2*&+aoGIWpzU7To})(=8#cyF|SB3WffEwGU_z?>$kY%>c$lmD|LJ1)Ax7! z0U}Mz(+cwidi;uoiB(#>Np1517JmB&Lb)k4IjVb$NjER|P`b$B9q)=wm+c)Y#REVe z1rVaf%iCBMieGA_=S795wv7w@Qw-d~0?TE1>j=kry?^NsEZ)*L8Zh*9mtx0mNk9Uw z=pw0?M`Cc(VnC_MbNH7b4sdri&nn79+dB8*wHP5KHlSQx0?;;*QLC0Wvr;7@)-FWS zE@6}B4&A30|1o7YTd_LL5HLU~Wp0qmiN8uP_Cz{}wUn-M2O``QYq1Z~W{Z;!q-yla zT^v`%Ev9@;qg6%AmrAUwJ5Nt%E-SGQa;;n`LayRs$9zJe54SH;5{^Iz?=;-?e_tMN<{+Dd3|v11CL6cb`)WNpdvoLKga$PR6FYVHp0plO6wIc>74^+_9Ls!cbbOddx^xWe@@X5g+vR_7<{&ylX)@gWgS)8|^tx z_MIX7mk47~!)0Ts9Q+(=9|8L`b}OI{8O!6;47tvCZK3Um>>0bW0nWcy@i;;D2jHDC z3Mudx7va`VZAbl~qa#RAttj+eAfLPi>`2Y~BkJr8_I@C(?TfELtMgPr@)<_hq|y1W zpm(P0JzB!^>X-S5!{V0w(Ch?%XRNFv8zi4IC#{!7G`+ep?*>M_m&j|XuRb^ekof83 zdolyv3yPho1p{LZD9hnG{xH3V7&O?6FJ9l8NEwgam`T|pXVo-h7yDq2G)qr;{Epj3 z%RF$~BAW+pn>h4(>p#hDjTm}!cnxR4Wh%dKdcX-4boq5@5dUoij^MBCGiP8X%nKuY z82I7svfG9$K%cF4*}Um2+&-I`2>XG`@yyP@?AP*weQD$bM0j4--5b`<9OrJjmVYo% z^svu~IJR^5oG(;HZ$jc~jY3+kcrg}bl;2BIBDqLe=hv$VLQ!XxNdI;#0MBt8NHd4@ z=0jP6V7I6u!6z%B3$@4yL*kkz=4L(^nKtS7iz(bZ*{3`Ev-Vf$w5kZUb>tiP>0}(K z4#}Cz&7^Vuy?uJ*zxY}gh3m=!2oEqvOoMI*kYuQ({r7H@i*yxF%A_Wz%dF$}-kjzJ z`~&X#+Q2x{ah8ykun3qd@rwa|i$IJtU)9lN0)g}gBI(}upY^bY6x{n)Y%1VVai#Tn zg4%MZx_Qg{fgovzMzl)`r;f3jUxtotmVMJe#XB-D=M;6{_6=~-pM$hAYB;ZKnACFH z-*}H{s-}}nlwS^F=Aoufqv8e^k$?R~qdq7{?oN>YKFZ3}W!1n$eM=##&f!O^ zRoenW7JYRr>5Am{*u7PoARcx7-|_?RS~#42`Uf~mkh_iAYs%>{eigSE@0^xvvc&pd z6W|ZcSzzGXjSbZ866JC&GMHbf$COelUI6GiMGuyA#qfTs$yN>dHE({MkUu^BTQN+7?1b)aZYH(j9|?P#$Y?QV-G zkNX2tUzh<=!i~up*}#Npi)9)!Gw0KtVxIBm3?m1G3EUwW4KdB`=T- zJl?q9p*1Ej<t)_u#>K;iceb!-e)SX&uOhLpUXW?5*29!&U-XnCm z`xYiE^*4&^_Vs#M6``*LXrf7EB}DVjD4S@z*nwsERk4B;ft+t*z>u4EFUE^2*BL zN_Jw?a*>cE-pU805?cOUv}Q7?w=c`vidMyGBom3=bi@rSBY%7DwodDPIQUBo*$pW)?xEGNLWJ{1hRnujNU?=+=}Ja4?zROxEN+ox{i-!7zSK?rv@O% zy=C&DQ)Gg<%K+D!xgQj@6?H7=kb8GzEl|=;`DGg~V!x7=!X?J7du+>50 zOi4#NZfId`WRxMKB$nKBn2oFpAUk^l3xl?_(1=27jd^fLLFSq30p;}(@%Ncb8O@ty zST|iRE+gfxECMsVPNX)Kd`ulND3Ex_yw{+M+@Ss)<@=~)ODwn9-BZ68Xuz0v2Oxy{rk+H#6K!x>l#HOtp~Mg@9sXn`Q4bF$iCz01dV_+<g$tltw{z^l)H)- z=;BhTA}NS*Eb85SUi7>5FJcb2z0~bT8OyP3ccoe3x9F9)HE-zKIPPn9_jH$0B@e zNT_SnPXC}?HHH+kWKGKDFzI(SVFK~kZzJLoDNw}Y3*h4EedC+H&vauYXt43Ku7YAm z>Y+i*x7jI?3j3uRSMivGt-(%il4{?vAuGYfQeHH#yn;!6Hacim0GCDN0JVGT=u0dn`;u^JR^Y?#JL`Gj;yP)}Dta}BWw;|@3@y2i$k!)PbYayKTS zO>Fra9NjNu_L)SZt9sbt$Em@Yl`^pdfL(w(4ORtZg@{B{sip8 zBRn52M}5Naaj=ZPd|kj-y+2^(!kr*G2N07G*B>VSxLej9BF%$7mA(}x{*9baMo%Q# z_}!h;f~4Z$qm9ECSAOf(MP#e9=02ZY9UM+h==iuI8T)aFoHw(&I`CCpQBy-2`J(6& zU0HR-(sT`QD||}0C@AMQii;jA3q-Bob6y6=odnrgI49=ttb)bInvpX>2UTcL|HR+I z^tx5g=N~zk58nITr`jr{o$&UpbgxvX%9h4VjDN$+oLYXFx!?Su(1@Di3aka4A(oEKW|F^Foo% zgC}+@(p2oFb-^ozN{7R-R9$T7^TcC{`6U+k>7s)^B|ORj(gVMwjrlE(LjFLJZ>}R2 zv~yNr+AW+3tz41gTnPqoUdJ8~?6>%34}C7IzZZ|wOga{Nj^ZD+zLghFh|EkBnr=YP zq}EuX2ZDbMUwG(mk(Rdk`n_Mpy+$uDeN;B9%=J3Oah@!Bj_KaX3dhzO4EgjszQ0|3 zspno-PF3{M&BpR+zfj+ScEUDrERZX6%qbZ*%=dCq~X3}O8Upul*2BSg_tOJ&o966r6;}x?z;B{oW+&8R1mf4XWkz}*6Fnf=KSs-c&p_R<|5u1d^NuQ>gLmig2Vf+ zr06{J*XQ}@l^sdZ?u+9{)jx9tXQf2i-806W@boao6SDK^lLWqYPt+HOP3!#H=$nto ztDLixsle>0QSa*EuJ(5LgPXe9G)pVu#QF@%F+Gb35#Xd06{;W&GSYo&f^VRcIp_1W z6j$AZLd>F46^S|HwGLk&7aH{P=GOPplg34Q%gOGvev zd_-ixM#55r@B>qrpJX^5#19=n-CE4~k&K3$o)HsjvZ>kInOT-P#IZ~hTSW|Y745G$`k8E z7(4nvT)q0lYa?Ar(9YkL4i%8w&2C-}p*^C~ow@amMKkH80*?r=2v9OHSbvUN;Vb=J z$j($nJYjpyN8&ymyw8p9B^0H}Y9YNL{cC|4Hg7|vz_}c2 z>f^{j5|yE9-C|yHFfKd9ifSVE_6RAz&YGifglonRbN9N9sp^1uXGias;CrH1&i}Ty z_&I`!xPZIUvyJu%s26C%Wq26;?KCYPkR)8+h-AO>?*i?gr#4#!xSS2%=)j}KaSZAV zkw}wpf_ii9V>Ifmr5_SaAO0YX&OwbK0+37(u$Sr!xXV8J~Oy3a5DjtE~?l6$9WxR@9#h@gW<{ z6dZIyM7xI<4BIRR==?xqK+Gl!5Vgzl!hp{OSvYh3 zEnDqr4X!Hu2nVoQT%F3R`-yL(kUF}wejd%Ie-DapelEf}4`4W9xEc|`8t3=O`{#}O53X3} ziGT0A|9UtW{4>^rdIer1t@>5O@^nG@b{=YD*pEsO1OyjZ^Zqld${aFv>y7a&otkcOGkee zsqw-RS7+X95<_00|H}4@3C<4OH~sJaFB2t*6J(O4s2<@u-p_t{^vYbBS=n@S@f>tu zs9mA1KCPi+FvPwp-N->%P};zU2kvRQ7+$eq?GUddQlzr9Y*Hk(-gLfLUP-BwXarcyy0Ue|M6AJE*v< z{kmNAQ8fLVbvWo}5Mgsa(~+f%oF$4n!Uz?8aunKdF1I7|EZokn+|c@BoWyiU5#KNi zCoF9y{hiT>7qBhWoUX=>J538blh2qf#TsAfbls(ku-k+$FUBi_ydwYX88pR5pxg&2 zV<^%&(yF8P>zg%`9~*4cP7kOZ|E)SkR=U9Y_B-~Xw80rzDvg@X@1HS<3|7T?3lib@ zw%dk{-L+&2mk4PfBLKuZo1T9h9etxv^8|tFG^&1WmVn|r+6-N!M8nUQcp>92xjUf8 z*Uj*;mb9#>7yrtOz|;2?A>NDzqYQpu*qC!$Y~1WHbDVI9it82^Cigg->queBa?i#- zikjl2#<&+4+&#T4-+o#)dVUzzQ0Pzw;`0W4Eags1YzYo4mm}zVL>)LlmW>Q|1x9m7WI}RREn!#8hXUtDr@Vz6{;wl=xG&3+UCka&wF0_K+ zutYaT%uZ`HqE#@2>PHxtOQKTwvgRZjD%$OSnLnWB`NEOOWoAIC+YpDf?Tb;E<%|2s zp{H@Uf6=&0PO4Y^bhuBU2iHrIiKaD}x3uQeXr0B7YI6uznmnY{p1O*>I7G#7e!3C9>m(_HMM=HjXL{k9IAD5^i^70$5JsA)bzRjx0@ky6~#+> z4M0>YmU;QITB>+JJ`fQ=lB`P_dh+P5+_v{YcMQ)KN6Pc(0dNtibl^jM z#beDn?%f5scfOsA0p*&6Y$qJ!3NXu?yjqCPe*28}%dk;Q(_TGs7|@7Pt;o7%U#FHa2uI;ViG8sgNJrt?ZstsoCNZ%vrO2PA0dJPL!Za;K%=s%zDA{!&@c^?7gr-EC)0j+0XVitS@#O#^i-bg(+89z z@=0ARm7c^7O^dd%P~x|;OIL=_6$Cg~y0Gf}ZqEIsj}F=1m4nsqypuvxSWG~Np;YkV z0)T_t#2mCytTE%x=!S3G8jz+KGmN7i!rOk5sKc_T$^S$|QbF`94_gEcS9+4!RB~^E^nw;>UQB%5l*dqUa7Oz-VY{tVTsy1TR&jP!ms(Gy1+q6CmS{|D9&(zdB=+D$ZyhBcqW$@~WImUDAb4_0EKK+ES zuZJl<_2@i{g&U>d2n!lU5rjmc0*78J+;UA-r#b134L;-{Q4ez_CzMp;23{$})?j`Y z2@p$$jIKSa4A3S9EUzrK_qP7MK7_tGl%Wnyp48#zOx;n~w@0k2L+0Z9LusQZGzy&n zn!p~4%odA(a zSAz{p1Qy$=UN`$?t$~`Xfm8|#ZWLXIc21!AN!X)2nL$0QE2QJ7CU90(T82)wH8qW0 zrWQYN1HvF`$t2^~*7Pa1L9%5@ zlRAoFO*KOzRyLC)9~IV1a3x9E2(RM~$=)F|47F0vFl_xgT>lk__QcW5WT;L(hMPbV z2gw~}2?_Dph4c-Jd2R9Cfo;{i>X+H~4yRq$FTXt7`wVyTzdn5F{Jv}9<>IY<*Inw# zK*2pNRrYsLx{3sP<~Yy9T^!-uzDrpr;pZdAzLnZmHB@z3mA=6kTDU_w)XCMqEQnR1>4~%ebJ*&+CW}<7U zlOhhmFIClDNuC13%b#O9>=_ncenxlmnQZQNdEuP)I@`AYq!QP`+&5~&2U48e(1bvd z7$QkX*HDIxqGan-cd4Z*Cs*!fCFPFUj#@ai>?6F*7+kPq5ewktaIrN^v4@Pw-y$$13dQSI(QSKlbB?h~7vk zirH^iq&2Q6H6+fONLMW2>`=~sXs)#@$c}vTxW%%)DLZbo_j))mQ&&6k5)z)xnf=@y z(B!};=oy=UkgH10g*p`xO)^7;_>mTdLsTY1Z=tW%%!V4fuY!MYp^zFn2_YhbY-7sZ z^J!U69jaR6C$&?p|M2@PBAon13+_P3xO8NVZP%j1bp;g}u{$-oAD8Q?O= zsFfan>N1`Dh)c@ajoxz`zzI$*h)@r!n#q7_UQL(lI)am|mpbW3+Fgv&62aXT2=yRHKrD->Q=_TMqd>S@+8qa%xelClYqzHcfZJgvt?87&Da4hRooZx zRZJwyICpjJzzlA4w^^J7Ww3@|GTIGg3-V4UrU~fFKo#Oz8;f!H_5SS;7`QtJa@86T&wG*QLTK3wZl)_zFCYUbUeTePa zukK5ijlcFU&$2dguI*9wje;j1_k~|JkhMu9`^z6MfTMD21+T_F1M9L!CS$HmY?j!r zFcPjBEeVUBy0Kuc@)8rK$#e z^2^}dkRDvJ-KL6R$O0P?coPNzBaC2EC7L@hK*xdq6-{PDUs=C&8TMQY zN(Ba7*%C?Jj3PV3>V+r{+s6WzvJpbuiou#+nkKlDx;KB|O#_rO>u_&cz++Uu^>Z3w zeP#D9dHQ-Dn*LLTcy;dk=|uNX2jSI!0j7W?=O( z;@&JtQvp=RcrqrYusNtbE$f#o?#X<;r}6Pw5{&1{Q6oKbB(tE3T{aKY2Y#~)zG3{# zQHEC(uC6-+?yRmp?Jr8R5J{1wXyRcEP2eXUKu?#s4reW3Wt55&%G+}W*=jH`4LLD* z45u%Iv+z)osJl2O7)%P)O}xHG{6b%MN;hUhWM8sgo1uEiq+8I#4gveRy3!W=>gPI5 zivb4LAYuv8^mifZ!l(UkJqx2w*omT-1;L@2$ojH-N=&DX;4 zNCf8WS3fDQ*1m>ex|PGBnA2f174Qa`#UEse`8*tsbzs|KydF79XCVkT6X!zv06bC4 zv^6>^(A*R3l~$9Y{17Ezy(IWp$vjN(+??r1F2D#D*mhDtS8+X*VmSm((MD-VRo5JKw+p^A|mA9GRUT=mwQul%&->;vi5$uYe5{s5UaHVY>-&krsE& zEei)mtq;;o(QDR`PcPSjcaLk5`V>~!WE4rDUR)uq>B40+$@u5XI-;If>|5#qv&|mC zN{1>MZA7&{hm0y;U2o`@WJSo{0U%RIurO5RiK#FK^bo`QJ=e?kSIuq1-|`2Wy(L}< zEnaBeUD|{T&1h#4vKj~Ake7*~AMcg&HqttNIywHZPfb5tN!J72Qki)P4A$g;Bx(>g zTC)QHB4;{%CYTh)B(C&ApuS0MoKi-gk%j`9zMXKrW!$r3^CgTi+3kb#$fNK^UP(xs zX1Mgkr#DI%p6om2kQ2(L+I@=)veSwa%*SVK-6FYCpfQi$xWRxzMWxxJ#dm{W=n1L;L_nc1cqNxg9XxOaBl{v2CY zdn(Xi@@r#1g73rmH`qYH-O9oUN0czVo>MKO^d9Dz<^o?Hs15}qj7#pwizCQN136z?05|+HrY$+!_yk&Z|DuXE&=Wv z>0L9*JI_l>Qw8<1(C`=(Ock0mwI%FTM95{2)I5{wUL~iTwmPW0EbQuTid$*L0VCx7Hrm~G=hKw`|I3ye-4&ZeJ1aZyLEjVerY zE~1LgU{2Q!B^PvG9+cB^QK|w7q9%nSA*P2oz579x^S#6y zVswENswe6GZ%cZn-sxM3WTq5k#dCNJhtb-3XUI^Ur`RC3Y4JAfG4^S*YB0@A#6yX0 zY|Jv_M9Zc(xV)ON(-~z~$ z#}rq_MGnH?R~yjA106j(I$g7;lqn8zF=2xJW|+Yd^nX4jy%O&Z`A%p|pNx1++5a=L zMaI7L`uP*yN60>Sh}~!Bc{bMAmGjfqZ-#MiyHmMoKhA0=du`QxP!0y~#%PljpY&SW z6+Z+Rk-1SO=m0aswd|`o!yE`eE-@_Dl*Q`FB83`c1*HO@$Zd&C)xipMfrd~eqWAd; z&J{K1HiR8}UrmNMhC~1jq)q!tnh`YI@^MHD9b$Iz_zXIY&LPMdIM?0Qmj zH5MK7eFx4^VMFK&f$=28Q>8Q;kRYvlS+M;(2Kt3hbO93N^J%tFQVef#AzPY005Cd1 zh&?pbH+X{OV`|;n7QrsP!laxhN0ia)(9QOCg>nIXXl~CJyqD?4hRx$sk-R^2s(c7e z5Jv4;<7SZOXv7{~aMNaxHS&e(!(q>V^reiKO<`nS;J1|l9y z^32{ir~Y}b;(lb){Cs9*Xf3LrZrOs}->6qCJ45Um$;zm?5`7v4<&+-Zvs#-*e5WW3 z70m|8%UoE$_Yvb0(jEqP<)zm{&fG`({MkXE3d`j1|GI}z~?fg-`Ln)BeEpT zX1h1OFm%eU?5C2iGLV$Z?5O_?t6>DvQzWNH?jp^Y{Hn`L;sJ}nD>#J6q)3e$M|ux} zV0=B7VLcddcoTn;^0`|#=cU+d6Z4f>?_py(wy1mxC&@3L5gkyBp8aC_B^~mYA$1}v&Adz40@7M-_^5=}s_w&E57HKn}5?vdafyn^v$!Pk!`A+KJsT+Hh@o2tR(ozAB z18_EdoC%zByEFrk+A;oLyV(5L-0|^j+v=kDEshjw0P`wZKV7InqrrCaV-)Ux->dHt ziu(k}sJ*p)x?A+g=-~=~vcYk4o3}dAGn7-e?2oyFB?aY6b>F7bQuf3Q#{0XfndFkG z8%DlD*O2(LV0}ppw%*h-r{vACuY}5+i~k)AMy*H`lo^hWT4GHQNcq0o@+i`;LGb_& zfzAR-smdE_l+eB~Qf;8o)FgxMlAR&cWb(SZ*RdgZM=S9s1O~2|SYFdpI2G%nn5tb5 zn-e5KN#?MC4cg@VZLD9;yIGM=X?9gqCPIQuucV@n&;pnVv&AlnL~l<-AEtLYr8hC| ze4HIusCJikY|fg-M`I88yc{zW0{nu=U1uHrOHNW;$oIqaShhX;7E|Y!|EVsj5<)I?gE@OL6xy5Rf<=y$HLR7i0d9YoeTHr$)Hkv2d%X=Sd-;CL-O9^`}9!gKSnv~QkhnQnGxXVPWT)znF zQn-#>xN`u`7T8w|)$rJEBVMCNYMS}NKfHdf5S2Fswbc)bR}l{HeQ(YzBvR8_ZX)Ne zc#k*1hQ%L}aJheNtx%<~SWGiqL#`xR=p>3&J1W4uF&FXSIma*lJ>;J6-lp#hjy2Hp zleSbuachJwgoBz%cUB4acN4H$pS3s{G{*1pe?Ou7YiNGY)^Urvb+)1Fs66hrjgdE2 z9OdWIpS*Fr7yoStZ(UoBQ>ob66t}&B`Nrlo?u3NTW1m>e8b_q*F2Rdyxfrn4i5EN?GeD z=?cHq183!jta?_#(>5AmoeeZM{CInHP&Iiwn1Vl>e?AVi$lx02`l~Mbpa!B+Qb_eD zgVZm{&rBM>!}30l4u z*O!f$TXQpUU{h0drPYV3W@2kr+SF)om(KW|xwx19az7C!I}5CYT*7xyknCjtDt1{X zdi$+=YvsB*2sUh*fW%xg*bEIh}1EH}m4)XQQ6Wr#$X; zZ3*9Za%1zAh-PCIlL7T;35DBlX{EOfxDZ-6m+vc(Sf*C9jf8EpzBlk$__Aw$-g3Yb z&X{5jp^1ix1Vue-^xkBemVWUDhe3!d3H^1TOq&N?HAZ@7@%pFrzZ*;u<&^4S)&JH_ zbi>VWf5T5XM(iZ@@Ji&s8HVWC>66gt*5{fU(NYaNxdEN$f>aKA$@(08} zA|Pex9-q|t!mC`-e!My(j9(@&EDU?op1s5Pp?f(8gk(f3C$t#+eD4;;{iSvmY8}!- z&h=vXHsnEY+ubaqKVdsvcy~_HY~nK z`!M*hZ91Blu5A#tvnJ1OFLLW*ZO54F_O5S~xmIX{0(bvFq{8uF@c1;lWrKw zxtTUawFttjpRO&~DUSKev2r51i%Ylr<9C*Y2)}(DbtWvkMalDb z29}5S9QYEZ!!H<>flul@jYYT$Wu zY)+WX@wVn=_U{ed8aMmL&4`=}t7us-`1aWN@Wg+30xZ@#a>E3DasQ2Oi;f(Ee z#Q1W{$se+ac>8R*9@Pr4L|Uf=FA_U>fya!K$N&$nc;(lr$xKz0yb|KX%v>gG-~C88|E;bLe0_w@f`*Je<>`u@{#C zqLy!(;O9?o-Qps>Lg`b-p>Ol)Nr>}-HZy)d*V*y5^;7y}yLIfmZ9gt&3|A#Dy4|}z z^CBIo^KM>s9QKA-yz_=pj7g&B!-C6RuQF?11`>cmcNjyXEuRx0Q z6;`=aEbo#@ZKhwm+5MgX<8UeuJn!G=wYzFna2tfE!Egtf;T%P_R@wrrSbW40wkk`-IoH)o0pS2*i$mnfAYG!RD z%%(YF2cZqv&nrOOrwA2bHO4q}F8s^dWfme)0X6zk{Dfz@U83a0JChV2t6ZR7zd-9> z=;=R8^JpsdyfD{G5&{v?XW1R|`=yNTXd(ZsnGGYg$;AGIMH1e#JS+YeT3#TYIlgcc zOP1a+J}dLny#9ltZy{QT6c2lBw`KmP54YM6GY{)R4^X!2gNF(0heWaKlZSDtYcW4a z)+L(QQIqIl_tG`9|7Os^6NhY3bSQ~>rl^$|Vn2w~8de$!H-TSd)(NZBP)7H21G^Avk6?%Zn(&%=iSfME|WdY z$Xn#<^yqeuP~kuU!uDEI#T{v2lE6V+W-|x1(~{kDF2BkqRUe|Nl!>{^BE@X^=~^h> zjf@3cwb!UFI{xp%&I*6ig_3{eo7^IlPq=z zqI$^bz!$ykK6q#oyXNay7Q2&qxH#H@eY&4CIt^xVe)uL;n?ANYF*`Scon9b{UJLes z=4vn~TblYl?(Q1@(Xg+abDn7Ksm5x?T4klp>e3&h4$qKnA)EdA2NTotj3UC`xbw+N zKejL7@M?$!JLQAes`Ja^twqjEvW37G%~)ebnd0P7j?aljR7_PS@BBM%Nj>X}spn>L zIfLeT{ibwgA%4h`nG(d_(KJL{s;**?+$Z|hj6RZ29>^NHXd}??w)M~0nwdx4!>1~O zaT&$LZhk1km6PUJs@*;Erb4Vm_RDKWjMhL-)b1K@kVdKhdWyq=BA_W(%|e|ddV4p? zMI+VQB!8N9qxY?4we_V)P^(qIPItV*wwu24-BwyD>=xb-`_zK!SxdA01!@O*tA#)- z8h@UQX0$|+txjhv9#5s~)C=|bvHwWfk5gs#(yK` zEw*(kXNaZYiMox%CudlF* zk;1cs70)}(FZO%?%V&?B3z}W!1h0zR`~}a7RJfPXbP2 z7BYkkV~2;^dUib1TFolscJArt zd70hKJfIS^Vo?GzWM_kEv))QPYEm|o}S(X25w#x@#&K?q7g)I=DDZ9GOj6R7k zvN1PKy$Y16a1QgCs5uC>p*{2T?emh+C(Bt~V3MKU7SAgT7D@q5t$N4k>w4DSJiVU! zBgwU}OgWa*Z_{QbXDO~;Sh(wTRX1p(A#zHlce&~<2+1ujRGkkDE`E5NDwPQEIKBPc zlJ`mdTL=9fC=6hn*}DHC-#2=PlqEBYILwEw7VN_w3p}Te`4B>!&505~`1|k}j0gaj0sbkGZ@m4kf=&at7%4i`lH%$rP!7i4x#{|JUQ$91RyzHhsQ9k7rCbeEY z8fAPv>9jHf(1jze@hdvxHVUh*>hLDGy^wNw$>3h{m#F#4DAldVLz&85_r-nxk`MET z%U=i4S^lT~*AKzZ1i#|CHB2Y_DbEM-^WX8Q`J_}KOIc4l#LiW3r9IPVsQQ8@l%`H{ zIuV2wG$Eo5^L|6_rjjadMgG***u^ebF(pLjuv>{gPjheKiJEq51J}pS1kz`UNPPJ# z)6|p-7q7)hI%l*SHhO&)IgO_CHI`ksC1CRje5FgoRXKyiG*Ak-N#P-=o6MZJEs5!C z?o-FfMZJVbYF`dTPDnPOkHyg{tt7KXC9~Z4!N%hglf~)#mPe~D_3sHa*FKEKrTWlq zV5Ru8mT*R+D9ETAGaQfd;YN{$Ad4&gIXG`4M839J(SEkXjdU}fq%eY=%zoOOf(LXP zaZe}zf$zENi~>FgYsLJXl>2zbxP0tn`T#w+1?c7Tn9!xH8Z!ESazLP4dV$(UX$tk%;{F@afAqOo^b_n zW)xKN6)=<2e!&nVp*_j{)*7(Y%$Yp4?o8@LNWOPLQeLQ@&}4o0Y1irYiWogi%ojof zX)D*KUK1!_5YxgVW3E!{t6Sz)!ON8pJGK#7%{c>JV`c$9kdGm^07XE$zqztjSSWn? zX|M4{{)ANBpyNqfX6Kk5A;!-4A(xY#%4)0>_D|Pd$HS|%iZT4GVD-W`ou77ZNv{d* zP?2cjJicPQ(rY$Ux!4P{W)`0|c0;NTQ~)V72j>iNO`VOn=0O)OQ~%H-e`mNK&YK>{ z{O@=Cma}fs{BKnJdmpY<{I5E$qB?f`AFTa19^i=YItsd(L6EK8PG6rzu&mU0vf;!^ z0pwWVg-@-Rkwf-~c3?%$J*tlb)cc*;qzj5}P3ItOqo#D9NMnX~wzA=Qikd@0DO{Sf z6dm}6v59hRf|A!TAEegR&^MQ-d)s&t$N~XeR8QE>x9V%LM326fL)p~jQl*EYN8kYv zvHKc_x*G_Ggu9pEv0fBM31Kf~CG3>ur>ann zEmN1l0C``T(lw{`z-q;Ga5_MfVWF4XCkI>CpNw^#nEr9;_#-WQjx~yMxAIK?!R2|Jno$QR!{Y}`;P-Q<~ z#k1GrTZ_5viSYx}t2{tEMp==X>A@B5A@mo!UoN5<7RKY3GQgj8c$>Z= z-TXd1gA0%{zdh%=OhV?5<)itdZ}3-V!)KLfk2aNF@0(P;K}eoE@Rs|f25lxf$z*lr zifQku3?EG-@T=dm^Tr%Ss($fTQS`7&MWg*@KJfWdgz&4}zuIsQ6lSbnk(X}TVY#rhZFRsRJdH-Y+{@x><=)MZSQWl}VR_>9zkwix() zm>|0w75C4ID}BcPAF}ozpG|y!_oI!t&mc=XiS(;$8KGSN3dt(=xoAOqMfw+w7Gq5R zfaS^9^K9g7)K*FZw2WeBf|ue>GJh7l5zSfhKTW5dANl&`k7E5_37dvQiklS|guyll z*>e;bVJZ}5jb_Z}*-g}c=)-@!e9to0#+owv-^bF=^)zJ9XNIy(f>iN5C60A z5Uo-Apw&duslDmtzbMZHe_fP)*dnkqc+tm6;*Xvk_MME|TW3WC(GShMkX;8}74ar_ z7kol`s*Q|ts`ck7BU&|`&ommI&rUnqtGSaG*?BK5_$4WP<`;IC*`@@F#tQVplk+>; zr}LCJ7^{?A^qaya;b^>R>wea%5_m3y$Pr;pr! z1-0`N#b}6b2|)8(ItH86VF4~G>B_fX?{Hk%7O0D>Xpfu)JNs+9up(bSb?q;?6J`sw>l0Be zD=YF8=&j+d-`GE|i+p<`;k8fhpF5)Q2Hvv=A-9aoIX0CN&@o^aG5#}+_GGX|#SW$) zN=(&%q`l4{j((?lf1K<$Wm(KVna^7ypZo2E?9`?!tKNy3yhdK%acXPkmOD0p#K~t$ zEvBP|=zECa*g8DZ=3=G1y`N#8Ilea0-)$uraoyr@&rb2J_KAJ`LSPWl^5Nvq zTicXFhq!@X3H__(S!(;544V*xL=NJHvM_61H#6_cF8V8$Q#*Yi%hummfDj<#uMO;m zEAHDF!2u|fs8fv@{2ydQI(sm7*ctV&v|USyx?^Z7!TLHG`vOf(11+#R+($OaG;HWI z=p%mW|H2gxet8tcm_Tu+^ho~2Sk-(!C1ceg%rzEizZ z=9z`yOuG&8bzR5q-XCU>RFI9aDx(~u<5 zv+WLyRw6W9{0ncOh?Vd$DB1wQ?Tu_BFZGKz^(%jxtwdE8$hzB}>jh^7QCvvYHhWL4 z$CT+BS)iG5l9YoJk2ujmeo!8gpLi<4#93#$owTr0*~{6Qau!Oq&?#OMsKV0YzY|~< z;S!IB#A1#7!Rv5Zks>fVY1Euz%$wsSjFVFhEXkU;4)mT|@)oG_gq4_9$KmVvuF^@I zCgj`-wJAT=OO8oP(-LZ9TQy`*Emk#~shi|<;ZBpYCY(;Jsl>r!!j&~(>~SBA_xu~ECCK>VFd^b&G8BfEA$dSgo$oLAmgkg!zqB0$ZVMuNqCRGByrOBS`Fp;u;u+f1|}x#n6XY0Dc#xBcefTm)hElIKHHsFIT1 z3SNr$V}rW@9}d}G_^aBq1ar41!1)2u1dUXD%hQ_1G!`Mlt6DPU zy1*HxneU*Brbp1i$;sd)24^?-TnXF6{rq*P6w}z?!_jN1eeHeA;?ckD=Lksx#&mK! zcv3FCG3RbO))@!xJZ307E-Ci`4`zkYUkn&TJ2?`f?xo%;RST+L+V7F|u(znX07AXj zaRKEwj)g7~72j-JT&-RG#8gs(G zgpvu6F;20+!>(ld9wDrL3gjxJ)z#Y5-Cb`^u3QmE7Od);uxHYldZjyjXO>vtEY+xn zFK6G7*H72b{=oxFClH&ho9?B3kX!CtrZ&{k{fkG4(|+rReQSZz$6lYwopY}ljC#EK za;|>$|4=hy0g#073;Jr;wEi8Fhs7m-a$cT_lB|yHjW#UnQ*qK4>C0~LSSIIPuZ?8N z(|74Jb`5+>%mQ0>*J}NOa(-hl7I7$LLEpH{gWHt0pgyqZ!?a)8T}1v(XXFaWW_?w zV5QTfzcqz(lk1o*;Mq# zb!pmnlU%@hQ8Kf4o-b9VQ=J47Ao{A}49CIAIf<%$ieJSEU1eIs5n8{ny(lSq1SXz0 zi?SiE`TkB}@!(L`QyL=vbIGQFIN>k+yt}`iAe6`6QMc%i9LM2Wve=<{3fRs9ez@eBpdDwJuj=2S_T6t%Z0g z-HjD<@o>1=MPznzMD;#dMcLkJ1}SjIQ_A$P%qk1i%FYJFg;WG4(!KYT6Ct7!qFK!@ ziSIR#0*kSgGifkly`QQ=u03Kh0R7AdoHT9Q$6A%tPqRor?KImZup{d)+g2R4cxH2G zBlt5VNOsb+fBaFQEm;`$3dv)|;CW}x{=kCec^bEVB8fx0vJ&!$>z`ndV8kiE0^v=> zz929v7|W&T;o1vS_)WtM&UB&xIWni@j`{=e{L4?*aD%zmUUMO1~)2I<`D(Bm|tk<=2CL;^!ez3E#|M(Du2R^eqzI8 zhcHkb_40?}t=*#)9auYW)-yq%An^`yi6!~dA3B%y{OX*uC($U1GEoozi_PZhBgo} zzi>h9RyLJe0tZdnRC@@J05%cFZg^xuSy{#*q6~P}z7vS?=V)Tj9>u+qlVL&N{b-4` zpFnHKO|yldFHAYwx5F9(P9N=lB18JPrfo1T)_~{f4u-yI{ow9Dm5dW8B1eX{jeA== zj2ocUkT3impwmtA274oB06n37oL^WYo9Z$Bw z5T3}W9?9@_zV7EleV_17;xmimax3t2%dgviR5FJ0_t7`qJf9;^7|ZxjO=PR_=A~y$ zmK}`x(}bEP-&?>CV@woKHS4K}Z2rvUjm1SS#!Uhu!)9XwD0QBr!^VC}4}5PRv>`G! z8A0w)i>qg)?3HS@IL7v!FiZW003Xa-_JYQ2|5!EOR|pO2E!hnr-Q#q?f3H zd>mM67H+$zX7zYMkYdHTtczxV3j!;|*0#XM+E7=V8bCMK=gK8h;t{@-e*& zPlN5s;>If)2wd@eaD^rR(Pg>fQVd0l61Y|OO%Db4S#OZdJ8e)#BH)b}oPRYko>Prj z8(Ce~O-0Z^FxNLa%QLrpLgw$@08x0+ah&mEo6VUjS<(7ncEIJ}0?;|%Bgtp_o$8{F zcCLlG;zNrz!7I;FR0|PD_a80fr#rjUm7kb2X>2`RgTR_-kXJ=1Yq_Wto~Fw9Viq2& zC~rVCU?t`}GN&zr_{tT0lzM7qH-D?uv~&cm7r7yzr+e>w31Z2b;yYFAl_$(jzI+jLqiKSszTB!x;Ttb=!B$ilq_q&Mi`}x)H@BRSp zojWtqerE9a-XFK4Q*@sy_eFFS;ur?t8eG@i+AX+VQ}Ouz0v zrOmkGRc6^1X}TmBXe^;wHQ-a8bzjgu?1gg-pAIj7{?lszR-2|7^M>sdSxUhmk+pWc zXqDg`7m(?y>?hAljYC>3>0LT)u~ZIv??RjZ)kpqv)Zx^_uq$#+`F_vbN1q!y2b-6d z_e>hCn$OW&=In6r_TBS$Eta-^Tcbw*<&)N#JGt5ck|*L=)0t40I>eBmzw>0V!jb4dqPfYZE>&3m@ysswExp=SxX{9CJ4} zN&TBw?5pPbcXk(}-aT9^R%OrfOMJH*z$K<*>RO}5d~MYsGpT1j&CuL`DOIbX#rms! z;o>XL2^{4~d$T<#s}m*`Qh6tq>NZ4%OJ%ELtX0&gOlW+xRy>PNU=tacHh5nXP!?+^ z=~j{$KCV*D6?OPv*z|IS~xVw#b2n&NvyxWc+=@v_T;V6 z0?*`*JV?Z$#O-(!-h@S@<=31BL`sBO->8L3xtinaDAMghQa+kFo-?6p%wKkHt%|ta zgI}#`^G%_A`^0SHKAT=)$St#sM~GbRkrpLLraza&po)U|eZyc!H8~yiFW1V1zCFz^ zD|A}v?vHPFs3q6rE_LXDIh52~9-TMl3Xf|sBrnPtS4>~W^FN7_C&$`zLh4B4ckX_% z(GzRBz0aOMNim8x9WP+) zcy@}cHyqnJV9`4(%Sc#6Oz91$785Oq44J8YB4w9pRk}JI2LdKl5`k%CDS$VUz5MUg($+NF4^i6Td#Ti?Z`B=e9kv^&dSfc1CMl{Zr`KTudoG!S{<~SR=TlxZ^L`rH>v3x%d~1HZaR}lStB6l6 zOIGqQC=7deqqPln)645K!?$fJYb{O8BPPWj*{QPgBB^uEp_gO7uq9aTk8pBD3M*;u zwM2Z&-GW#~-f_tZ8>>S_lQQ0}eD6_Cg;0pj;9a8aO$01QcAssCxTA({W^VJlCIi&) z^V^}vR5z$K&In2v43>gc$lGMK4?d@#XKSB)EHWhe+Ixivmuiz(@j4Q}Qjv*{V;hYt zHHKTsWvdu{D9*2c&u_|0KlkvW+V{_fQVVzH6ef9|CD;7;#-T7jn0`()UX$XVu2#os z3yHVpXLal8)*VxfD90VYB?Kp)Sv&(19u4jYKBMdS0QDI}_BZI&ij=4WkbwN4*5pHn z65yQAw{inBEae7_+V@?P)?2dJjt=&Akb5pOpVMbi5_vzRJM=3t*ZFIs%g-@?wl0+z ztPZe@)4Zi`Po|cxZBAe3%3y+QU!dgjkDpVa%r0L($GUAb=)udQXKKS6=kHy8pSvrU zE5-a%cDF>PK1=y)4VJ<7HwMI_wM_4fachrxo!i+IHFiF?pSF%2xHdYj6T5x4TbS|6 zwz#K2WYZ0b1#Jp5&o)CU+FVh;o2_@*oEUnnMKX}?q$f+UT2Tgcv2~`>z@2$ z!kFrYdi$gEgF5CsQLlBzOrPIQW{5wx=cNFDsmL zi(IzRXsYato>uz<3ErEIFGd8+4b^*DQ-W`r&DyG+%c}$*$fHK@Jbo{s9dxxzTW)*n zPY8PE(W}tCM#G{-PU$D~y&i$o*Bk)C-9RJRv*h9lybYjfcghxP6AwK~P->*n?RDqo zG@@B3X&yY4iVqj0&YtQJ_&A%puJrje{TuO@av?ejp;BH3{{wGv z|J~7>W?i(E&gwBcR-ePRS)!FbD+a!N9?L!w6GdUHJ0ym97~%YNfy=*Z+b)UJrq=!C zRlxO)-|u`Mt~YB|1Yw;eA|mWOd;IWa;%BGh6F%V|6Mv{F{7`Zo&_E-be;|!2%=8s_ za+b=r-(VeA- z{R{knD1VaEOGU@s4$7p$%sbUPM+p2xOtg7phA{O;UgmEf-HCK*)9>^z65w2Joxkh} zbwYUpwShY6eER5?*&~N6-Y<{?R6%eS1CgHaF^N*YNu$0Y$<>bf9Yz0z>|`;iVw*^- zTJIB+`43?ddu*-D@BAA%1Cpn6Ro{cizj&bOfTbe0Qw`>j-YK&Gc$dm^Q8c}Q@)7@U zfoTANZFhQnoHtkicCUuW2aH`AL^rU!+<8Jw1h7@7PuME#5^gp1pT`6;tETjaChE>S zf^7qY!x4?t)+*sg9eDK&Sl5EEdj>qNISEdoT9f${VK}+QvRl$Rx1M7>$VwViZBjVe zN%Bt?EQrbeOy~*4RU&cXvmcNyDIe`e9;H?xcFsupGLE4 zdZGpahwck$hL``13u96*o!@H430ZiLIFG!S^N z>WG_JE3`h)t4{alAuo^gDJF`4;oXiMZ9+e&mJz_zg17u;-q+1I5eBOj#;)c_hM#xD z4_bH2)GKe_4u4j&A^KeZ-Ko&R*u(gW)TqzuvUrXC%IE4+w1X+{9hECNb_2|3$ZTq! z;O~~v4Q4wes@?7ZqT!nwcz=-uN)~8uDiplU*;xQ7ILamLev!(sA?E4ZVAqUSW@O>I za?pVZbKECK=wb3|`&xJ+{bm236ZaAv$4kpH@JkB3x-RFIe<`>~mj=PNQiBg5xbSCw zcnBVk-l)eqGHV6ds7<6+oA{Gb+)mlfmm(*+_%H0?@$w15nS!X35{FvEme#0*C5VbV z$?_6Foyf-;*!wOIkW_t+Xp&^`uFm#_jZ=Ko_wNovjmx+~$$bj)!{BWt3f==cJWs=A zKV7a(HUkHSZV7%a)_EgiAJ^BjhIbX6;K($uzxTyJ8)I}?Bmz|NWL7Wvy4MByyN*2A z60X)l^TWk$mH1CZM@cldVWLQbaXRx4TrYRHhHW4Glp9vPB`V;>^{A&YqTs{QHZRQa z8KF7^|FNyl!+p2#n4{Y<#>mavQ_a^N&Xe|Mll<)DSc&8g*cTG=AZ0$8!OG9|B34%6 z`}(Z=E_paS$aDCJY$wip8UsA|*bCpMo`P@a64G>pv;`kVmqM$xT>V4m<9B??yy zU(VZl+W$g3YQ%(jzO<1dUbOs1vkxSuMJ9t2`C`u5A2_G0P_@G?adiBf z8HOhHe@_j~Gph|sjuNX_t$tQuwNWxQRD-Z}I_^!z(6YVeEWL(^zRk_I zE6W4HRS9K$>AmVw!PKsmY^Zkn7b;B-?@axgz9p=T)WT5%RIPbmH(J0x*h9P?m1ZYm6ih+vkvi6pH^p_ zjx}~gFgx8JgY2(Ro5?O5wSpBk5jjr{KEN4 zkEcAo^rr4ZeGLhQFrDwycD}M>KNO#A&+uvldIJLC2o~7x zCE^b>p#qUK3j%jFi|0z`2k_z91}dF?0I%@D(2bw;{Ozeb8=Gt+CNiDZN;}MY8+eD> zO3efJZf`r%%T0MlQq4|?=(4Y$u#7@-IsGDa)a}}z@8{Y)@4LoYmANXim*Bv4+5Cmx zZINUt*!u|du5+wcH`PmRr(EAIyhV75d+B-R!`O9;LK)Fv)4sp>9m0at5gQ8EXEJ-^eyk;{oR$nQP((IT2xyB`&x~$kjvFOZMgWpJLWy=r~3_{&gY_zTJCyxWtg4nNH)43_^qrb zKK`SkJNzx#*R}%t8qih#yPZdYMHsmPaZ4Jcelnj94Ugy1^GhCI@0*FY@;JTszn<;P zqjsO$^Fv0C0U!6*&v_D6bgJzEim`l=I}7o@*a7F*)HiZ%ygAN?ZG8jUe!*;BZ4;KX zxmpL(ndUhUMlW?|J-O&0U#S+ssVbOe^19%a>9a9?Rb*>>&sSlK6_W?U9~O}m1?1`- zj}mvS{cP&VHGc>KVik!pW@+C;yHKdelw9>{9V6Sy7p37JJ;flN*dw@bP1WUU8ULHS zF}WN5?(c|ct_vlfFMIWiwA_-ta5QFhuRQ}_X`a<{L!yW+$xQv?nX%OgjM~aGPM^G% zF71W5h`Dxg8V=|1;5K`du!qBl*}X{|O9keR zP~%#Z$OXr3yoD?i|3U)7<tK&b7})SL4Du3rXAY>kbd~wZ;*c8Yy)5EGN(Ct zJMl&rC^PZ=LE|---WlYKo?LtSnz=P!6)V$JjoDT}N3WJP+qaKl4BW7VwktVN$ z=I@lJ_QZ;QeHqH7@i~02Mxn`G8|Rp;k4-f;Sb z#pMqfzJ4^3YjvnFlGQpUFts`Ug}_|@MPT+fYPCP*nzM*+Yszg+moXSjJV%=l7hq(N z)%8RkbC}tFW6mRejIU0COf85B1g45}>Gb3Z8gz(&w8ol7J*fI5{N0{>gu!~EIzeq6 zWK6G|u;$zwDbk_!BC(2#(uWT`uv2SF`**|v0SJ%p^ljbnG`BL`!V?x*@kxkVFz6A6 zCteJ^ys>`;a4%pezlhZzY4VypdTR+o6;e7XNjyonj74fDnFM^_pXvv*`2`F2Q^tSD zOR{tNe)f`_ZAYI9d9Wc_p_t-`IO?(8i^w?j#+d(@_fK51tRJZUevb-xF#LAP>I=oGU-?t{Jb6eq^`wv8M!!{A zkic}{n_o^7lD>hC*q!^@v1|KfH=~MSv+3le#jvSRB5}G4$JI@H_UTf(zdm`%Np3@y zD3#)uBWK^RR76&P|Kuf+%)J{#NYY-P=>XA3&Nl2_fvwgv-ITVTeCsOEyLtvldZh+b50pwcH|AmxMuh8c z>d@6H(&;T0{4*<6!zo(WYFO6z9G0M$huQMpnR>#SaZ6@;dm z5&_quETFoe?1n!nT9hv6T(3?+n!f%Yatghfq5xFjrn;C`q57~+Zb_T$*hmID2B%+H z@7QVe7MI)m5f!PEj|n`2vI0qdipPePSz=C4(>H$&BG$3K46`QvLq=g@Pi0Pv;pI_H zzoEm^Xq`6(QbfR&blgx2z1T+&>y(gFB+k;u`2zkBvQlp29UvqHmb{m^NVT{4q9^WG z@Ky-WB^V!VoIOqpIt!$|>@DX0(wm)W>_J9H4(BGdECN2JFnl4dkGonHxWd~m%T~=mPhk^yt(szm<3is4AdAL)(XkS2V(5J6aG z_l^A@Wzgz;PgzBdSGu{}4bxRDV!YgD_e*0rznqggX8%=JIeD((lx-wqrCYDr2DImIrwjV*l4x-Q)hNXrKT zJM3*#7v0ZHDZauXRn-)RkvlHK0VEJAZ)_Jxj~;~?WiD#O_i@);@e%^kU0sSsdTXwj z!8mMND|?FW12vgj- z^WVk{4?b!_;XlwB+s<4$UhS;zg@-7uIzO&70bMR>=z*`A+6e2OMzr;h_n7@b!g_%w zVjcPtM>je0)4X@2WpQj|G+%!reEvZ=&Zo_`o7rY&OK)sY`Jr(RWc)A?C&@ZJ6Ll6kqGDP{h!FH0b{*jb%WOU@5V2YMs z4>BNBj3Z*=ZTJ|YUTi2_$(q=+doL+5HFm>&4+#4tJn@x|#7w_x$DQ3vJSRa5EARPCz|-45^xMADqrPYjj-bpZ3^r*F)u$*b z#>`pVgqBz5Fz~CMDdl5w}#*h&?w*ftjwEe049=vx7rM3&2R8j|z z;ytRaw4vMJQb>(tYFUo3ar7vJ1q8pMs|IVT9)}-TOD^V0?v~49-)tP5nlad(;qiWU zm21tGg5$_z<2^V7>?Ht$x7r?7fap@5RID6!BLl*FLX5gYHLkjiJLs0Ed->CK)~M2X zy@WNnTU8J>EMOHCl{>GT?QNzOST9=GhRZ2=BYxtxdR@9ScUCm?)Bqvs!kOL1MeGzq z^*MB2PuOb0gUxY#KWkY;fi8ijm zZ?@q1n~<|)ft@ZD8wa&WuU!$={nUIypb#cy$P$U)aaTe!B39^d`^q?*Dc{-LI83-9 zE|lD>A3p(#h~_EPHxxXu zwb<8VTFE8f)7bVfyvYtn?c<^NWKHPQE?S)+E95$1JM3cJ!D_q8DCRY93uWy5zMnL; zyOQAw!4-|W=%=S(-a>kzTLzy|kNw~cgf8Wl!kL%XVe7jE zRd{tmYLV79P~xO(3vDmPvX$jZ(fw4NlR@847wN@5RwF@KU6qK$GKl=d$sJ`-QR}M{ z&gnQP0xzx$0?IE|3vjs>Sp+&%No*)iRO%1QoDtKl@Ui1WY@FIC5o&PQGsNXk_mBlu z%&Kx7i@OGzoI1LqV`I?==;YO?yrk*DGhn$_1vO|0flATgK$W|sOMf>#HbIJT2K+pIe^W(&n&Z<@I;>>~tucx>?v}wJpF)D7TW2E562g`M1!n^T72umI_ zqP$;7+Donytv)4(j>JzPu~DpqxV-GTE)Zdpa8+mjf@hP(YXridTg=3SCgc<_=v)kM_H{+9dm$c-D@&*X zhk^vPyz7SN?w#sa@(!*+XK%RMRE{AJ>T~82^G8~0%+abpA_Vim)xpqI7(AaWfzf8>HbUn0n&1;Zd?OeGtUA-{al6R5S1+ocVk^f>`XSpj8~bC3 zT#2&0&h)FN?GS8Y=P^*pJqhs5RgdASc}zLh5IctK20pF;O03VP-R^mijSGiTv%4)| zYoL;gtAsJ}F$+iHE(iRSR};NnoKWJ1w?$@5|J^Z`=*i;Jjl2rp2-nSjwo^OWCjQZo zvHlPKPBR#+p<}$nXBu&^2a!Bj9{3)<;C)pGnE4iIDN>Gy< zB#PK>tO`ldbZJLb6^xPSPnq5Tts9lnwK`${Zl{MPs4twOAs>_OR_CwX9`sF?K1t#T?Xlc5!U%eG}NPy=k7pKbn6b}OzoL1qiebz zO70iWOPWvKb+{XzQj|zjE&+sKMSjA^w)KWa1!S}kHKzW!@R6ahgSCOhAu(cfrTYXFeOks*9HwbeAPLfluP5Y(ig2j zox3gUjW?)4V$B2?VOKFusO<*rNS7*YhVE}#0|+a4%Hf>sY;5VU2~Zm0ixe(Ti6cxb z+$XXq#-ZLnNWqB}drH?q@-i?JzzU=!1Sdv2T6-+4yke>*l>#wS(ETIuVJ1Y0YtrH! zHNnQ}HLL`pbCfBndtj4So{Cphux*$hz`%XCw^mfM^+#!6hPpnalaKOL&r2BqVImPa zeg@mPoSb)$BqQFZin*zi1qvpw#my-^seB`Mo~itGr?2*n;)#jjv`O9WRk$1m4|hz= z6R#!YjJtJbo1xm2Ub`mB_}8Na6yaAED_bLka-+qH^FkEGZD^d@Me}Gn^6D*8d<@;5 z>peF%FBl5f?r~mM88S>w(a_5WmNslSt|+O9i@%)%0x|{La0tSHNiJ6(OH=!dff+K_ z@FM%$5Snl66jRhV*2tn4^UX0wFz#0O#k9~X=h2MtEve-b%f~9!A*@9a2SOdp<3{$_ z?xMbtAD559-8`#L!*H1zfjDA`Z#(w2I=ue*9`ppeBPrFXUEBVd`~%DiboEmu%B0GA z&C8-F%$LyDKhch-tg@Dp&}s7ptG|{cZO_gZIqv?IKHYJIGlU;OQaCg#p0$~f!`K~3 z_|pE}u!2Iu5IawJ_!?T2*qV|b;Dijx?$xlhp4YAPq&zbWV(F#!wbh;O&JewV>TTUB z#P1i7E(xGOR#uzN`u%j&VfDHm18-dzrqt+JL^M2Tuq()#UM5Mppu@bThQaz3>lTqW zdkEA8I?79E)UIv9Fz-d^eJ2Sj%B=-@NM7mOx-)sZfI3?9AO~G5)b~t= zq9$uZocM4~N*%U`n=%}fiu8Xtb3;)nih8t%`dh-`aQ|!5S8~Q!Yr~u7{wy6HM*?6W zZ#eeSfexgLtcVstP#G&B54`gevIclm z{Udw5I`o=r)7Ou!{^i8y5<`zEM^d^8)(Xcb4%)bQq@Q?SC|^PxK1gbRC(mA&9>0gc zG7`imt#g`tfu#bXV{C9R(U85lsI`GDbMP&|_&DPhh;h@ym882F`aS<*^Upi;eo>wr z{?E_ao$HNx4T&T?lD$X?(m|fPY z#ZsCa6xD5J-z3G03_WXj(Y^YWUxX&0rfFm-tz%Sc1YK!e|?J;60(!{}6y<|ixgB?Td z7GM`0?%&bN!etX?2MY+ZGL>pQ1JI+@9=MW{ zLqdM#D%xp^FuDDC82%tR&a^Gk+f+Q5@ZGuE3f^#7u$=q9JAGBt60c~~qw#`z+wl#2 z5us1&FkLwY4Iy+%g`w3PV2&iPSq0WX@KS_JXoT7DyX_QR zk5a^_D_VIeT>|Ts{^-MGWeR(zfi3r40cAftyOcHzMG%88QG=)VjvApjt|DLqL}&RE z7V4Gk(xx`Uyg^v+nnvvBnC`IpL<80>-|^nl>>N!Ca%2JTKDjNwI&O)&DHNDc8ldkv zJEN+esa}y?GJ0CGyGjiq&@*Q6Yc(weR#Ue>R#PrxC>TYKtJL&Jszm)XB+N$Q%OQ8i zq(0C}dbier9bU8Q8mn?B>9|G2n8F?G#<7Rprv%>`4%2?+E9C4+|Zo zqqgx-FSi2HQvw2ywX1qTMc)}CyWH7MSDm)taSeK79OG();5;)sWo57@Q1%TcXYpVe zbky-mT=AaLqWlygX5;HyO|?7F_VkBSn8bw~V1JQc#60}6^)^doaLrsumfifMnNhJA z8+UeTxjKijtC^Mg^`gTz_i|vm)^!OKHE@M{6m+;dp;sWiGNBmc;lFoX@V>Hdh6SM$ zg=>7xp_et;zAc>U0cPLz))c?nJjCF?w#km45yHK*&p5(wXnVHI3ms`ogkhXuQjAJ1 zUHf(LL!loLmADiXE8%U+cI^Srw zPHC$hP?1Er56FyZZTeyVM6;xnj1EM3G=#6wHZT;{DI!rhKDyQUP^ogK`&E@ObW6|% zfvYS|@Q%q|fdA-LfoR8`a`&$7_J=Szaqg)qwgyBDq&ScXMcfh6(kv2Ga2I>e!|y z6MZu7k`trY`b$Qg`6bQP+jb?vHO38e%@p01xAj#jorFzoe0-gbhXFlbFT~Q7&X$_z z)#|8WZp?S>Pa?%wH9+i{PwwZVmt zssL!fI<~_fgI0)l+WETe&X8hX@iAN0kWGt$k`1;T#>v4sWF3HIjMrhMcIq?+TUnjWCS zZ!sUCRzpAX`#Nyhn+saHv4BM_G6RJDf%zle2mYPwy&@f&mpgXx=y(EQeSR5)!ZAN< zRx}X>J*K2J3MySb+xsTVf@|0FTbqbXwJS;0jkgyfa1CbzNY-3_2t?N=$4!oUpV5Ut3ndm)T#PHt z8FW&c$PhzCtUa|lE7pLW%%Cr~UjdVK3U093J87XWxQ|s;wT>}t^#gPrqm+E`S> zy)5PlCgMZZqd8X8XP<)P9N9%DtDm>1h6kPZ*B0x_N~vHJt<*tQa1upt zuX&xWB3@d1G=u`<$#{%{?Am3#r$bl_WoxDf#d1|1DR=t#Si zL+$UCdEi1?q{U%b^TakUfj^&dReF_QiJHOIv~D_d-UIhDh{(qb0Q4q1{#p195@$q1 za*9ua;bR_jhmU355y=A9dp)qY4ggV}NMU#ct-wD+4I2(;scBQ#ZBPfmjup-a+NT89 zmaV~DKOpv7H}?HeHCk<>4TlwA2Ul@|H%|pH)Offo+bashB`k8SZC=zJFSA{Q{W=5U zF?>l|SGM)^_@tF1Vy1G2)T<$!8BB)0C!{jgyb;Q)QU7T~4GM@Pv8TWT;F=tJ+32m^ zbx?u+I-u+x&L$11{uZa%W)2?o7jU;ksTH+}_5v82zntzU_o9)<0{BQD zO5~HR2mD~Ob#F8P8Mi|o)=equnQ$f!8}#(RyLd9gpSHb6!;?UZ{X8S} zH{>|xO2S|G_J851XM2C+xpp#sl6(_Z-~U35d5Qq@p$KnSGygka>-DDSf=QL_;Crn&uaO*ASE@^%RP@u_kr8LpjB9wI1dR-l9lM67tsU` z+t@Ad1Yq-5AOKeb5P{io(o4uWZ((0rp6S}@9FkvI6*Ked-J ziaSkG9EkS>^>Av~4N+8cv-GPn@ihWb4%}*=R#LFh>BPVE=#>3S4`&(xuAi~1@>(sb za)m-*?K8_R{O2YlEF!mdHbraLUEQFp{9)ZBA}H+jm>3i;C7it=a)SH26M(95DZde_ z!;~jj-S(vUN>9GDH?`a-BBHX^3U3Oi zE^wMCz=d26x!~2aO`=sdz|q@Z;1ftGjKR)ao!FLAT$(;8l>TmZZmq(pqsx4{cl)(J z&j%N0f^>of(gEX`OE%Z>-YuwBslpl!1SG|}= z!k#2tRAf~0B7A1oi3t*Y5oP8>JB+fyTs6A>R$6U^m&1e|_O zJjLTj376KGHWRUF<#8{c&`w>Ll{~U~mZ}pY^5WgezsKZZyb@V;?OBV=qwkrgm!64F zHTb&!gSV@UsF(~j$B&P= zz3yFiUDo0c@4Pd6_Uw3`Ju@$a0_-p=&jqF% z4qEPU*xFWKq`q(xqYLgOeQ%;sQ!I6v+M!(b5ypP8$_vLPt#t&eYFV4y$t+o_Y#_An zjFjR+MYQ7d^#obdO4c=}`%beju^oL8S)BJ`dW}N%dBJiL# zQM>$rPiq`F^>w}MK1mm*TV)oMPV7Mo`y_PKw^K5#TP5u(yZ=y{aM6Sr&VxczJ72Q% zO#Edyt!lS1Iqa1yAzGQWNU5@E8-bXh71UfP6F(xs5hh=iSy73V^R18^L$v#6F^FF= zSm#0->BR^!!gPu`ad{RT_;6D-J6e`%^T#30gpxNb0W&??YrEKatYNAvmWi>d1)6Ll zia{c}g}g-d4gER$8k^1%ZNt#}pSQfVM|wy}6W%p_f$MRWIFLKH09HK}^)31Mk^NIb zt{Mvnq4CWxdYPJcd^Zu#ZM?{>9!8S%8CuLUNA+wJ;L}905FEBA!NX^R zm@n{1!P+wfJ}vj))Yd!2p)0s%m|q_)D4`F_#Obc8vQ^`6lV1#ywiuPcHXkM(l?EAz22627rx}`Med}%vLBSBsd_i5G#xIbR0A5k$n07bhNjXM;^-cPvQPg7)j*{9ASsHb;dBo2{IZsV(IXS@@Gh__U#D)`t1xiV+MNZ&8mLE0& zZ_$izR(?rd$ov9mu8|Rb3O=suNuvTBY*w@Ex#g77lVY%%4mT{AZDfN&BybI;@Oe8U&BNR;p3|7m&RStS8`nA$5aLgwH@{eao;rEP)v3wA>6luK#pt~s=eIQ5`6VQU zaq%V4($#=7OyZS_Tvyf-FoHF#es3c;Ib9&S?H~mxw_uN*$KgJ#oYr1%9jDjXL`0SA zfWm=ua@ssl>dc)Qk0Kw8+nR}uUv6T+v{B(^{$khBIpYxV#zVPjo^dE_x(j>a-)Kb` zlDngaKITS1h`(@p(X+AAryv#!WLS;)hFU|_x6vpGE2|2YhHxA!nvktnW+|AxW z;pB7|o(17W5ob*g$0y*S>bAM!fScJecL#uR8bF%AW4FX^j9}Z6W>fC%p3K8bzPe_eG2gzllT@Irobp`5lEUR%qrq(*?&W z!>erw6MPxpJWNG0eWlkcb{OQ|7Z!8WB2V5RDzmDcY5t+y4}Z(IHjg)Vcu%sCJ#%!F zM7G)RE!bz~%JMcH5FJc3fQ$IFU`>A=<@Ct2_=GgzhFU{aAMHVke2mpY|06HyE!}iW zrXx44Mb4+T$&yzqp<_Q&TlrV4zV6qZzg0G!BG0T2cv5$f$X@`fWk9>SAErh$J13NS zfB6j4IS;yuih9l!#!Qi$>trWc>kPd~82!{&V8p%p zwy^A`C=2psQJSzc#Dj|G`a`dcd9=4%2HcZ;ycy3yBL(?7UZz}DlTz>V5KmW)P>&r{ zdnWSmme7_4J$hHm@*+}5S7r|upYD_#6|$zZS~@j#J$YQ9Df6gRs>{wBc_FjZ<8sP^ z{7tzhKlrlmz7%7$+J|NpYee%xJc{Zwl(;2205W^j)e^T%b5Bna2QA@~IiSp^?lfUQ znCFI+R@xgej98ryVbq=dH^itlcdk-29w1bwX5N1bBq%FC7i7QW`3gB1^37JTCdp~J zWU~J9$qQ65D5ujg%|Z4R0aiKr43E!IC@W+}lFwL8sWs2x#wC~p;$YQ=W>UMcKz-i{ z^{~pdy2hs_aj>Ze=(K4(SMj=)G^KPiJ;9LrYDdpP$=S3A*7g0d#Nf_!sRE-|&C33~ zJS(k3#SlxGG%0?nk6L-#sR7nNCG&hPcLM=9qPPn&Tq4ft*)(Y4PYZNel%b0b(X{lu z!oa}BwoULW`*204mQB*xLE{h2Qug6=V{ehD?|XGJ$je82yVE%&+s1bOdMsKjw8>hI zC9QQA77|23bS!LA=%oe2%CSpjS%g&eflPg1W{9w9()u4Y@r1OT0>;8Iw3JeQ7dKM_sTh_m^Fx;ch{nYn3iGa$eGu4_oQQ^YajI7M@ zwe4p&3oB8i#t!Ss4muN!$NHH5y;_#NhbRMc2GUaaoZuUE4y5jzu^xa5h1Q)6eEPh( zk`(DV1iyVFtDNfOf>ZU48sb5o(C9}L9uA!rBb3%Y#ikmGFWK3z%k(1lvo+f1z87B~ zb~k(|b30uZBxNiLb6%FAX0JAm$J2Dv96dHp2Yz zRi`14EiBN8s29Agb~T)wRi^bgLKS7~fTW{SKp{bsz?S&qsL)Er(Y&%8^5#aYvR z9*NW|PgC5C;9k@a;LIt4q#iwYnijhvT!Ed&RKXFs7ua!K{m1J&K?=8&5qxv%)KC6$ zgN2QgwNHG5=bf}hFzb*VCUr(1S7-*DXVa5M=Z+Q}m^Yyp;g*=)T+h1s@m-Gm%~1aH zO2gX+=ks$+Mv2{~e= zCT4yW29qyx^Gz6kE>~13;h(@e(h?Z)UO<@WX`*AFsf zeC1HzeC6in3kijl(wspesgjc)#>Gn`D4sdedtPZzLYj8CP?6mP*={?VVG|m2^l9h< zXL=TiZ_uHII`k=5YCuNnPjhA2k6d23a3swy3zA!0?Oe~x<1$IpB`S-o(ecgHf$hU= zqLc)(v^aA7wG*-a^$bWTAY3pT6QaCYF0yIU6wzONBL9SCdt_ClNL`}R(U zyrWB3#o{CqQ7p82`q-t2={*T8`ZRt!=k3W=0Pk}4T-V8$tKO|dGF1ws8o zPC${`3j|)ae*ao?TP&^!F9Md!!{8--E}Yw#CK!09{ND$LCEfW$Azm$*iTkPvJceH3 z2**q&ID-|dkXk^_0It%u@{5CLxa*rqTZu(<69}~N%lG2*!U4$Ce$AFma{gG|i~*e$ z1OX}>b?Iw;F`qkU`(!=TM_Iqglc+KTlKYpjg1}Pi1$+#b8?!$0&)4&R3BfUG@eXO#!!1i_VNj{I9_c`dUW@rC;=gKOxC396R8z1}<+hRn>N{<@_s^S@aYJ{s zeDrgLNYofjs+{9tdfOCUtl=MstG;m1I3VkzKp2B(hKYiLf6a4td+$R@--a#Jejm>7_xWKQ5{IHqKO%AUhiF!bH4I9tmU_YYailt@5)J)EUaK#$jfq{$ zhD|o$m>ixdjAmk5Fn@B*KU7`wR!5%fjS~p6hcg|`@d?;KMUuG}yD7Pn^cpc^l|Okz zpplzbweyS3u@{8I4)$k#P<+=z$AYX;jlp=5=i60nVYz{O>sXKO>cI2R=F#bdcv2t9 z1V_sy%^Fi+rr-k6R0mn3Dl-V!s4Wu4n+Y3}G5f_%7V^neNx;S4xKD0KNNqrzTuG00 zHw;v=t9_(&=7FnKE3d znWsk-lM^xT&YJ-V@Z2qm#i^2mm_RLn|jodcN)K-TVjSv&s~#BwcbVtmeULt) z2Xo+jcGbiT(av?H&#K^&Pu6#~bQ94@U=cA(@o!#|z^<LLq*0T6E4rn9Z9TSggWyle~|Nan_i#Td!-@<#3bjA#+*Hxt zW`xm2EH>pl3+gNTjm)z1lz2)V@0E9-R~4ZS@(8!}1nS=r;X{2KV~nD>g8`C5ncRP5NC^z8epZK>Bslk;@^hFlN4$YgMw?lr=6MO+{r||wPL)&D}7VLq?#Nb_)twm zrSj|+MgW(1#A6XKIMrA|B!9sE(`f!sIwdKV@{Yn4 z(;PdV`XAs$wHORGZCxWdg#n$h7^QU2*D4LX&K-6aI4rG6XGD@Zi&2&(wUXOw9Vi+Jm)#Dy3EFI+SGw9t6v%J! zB0Bi&uL_OIk6A)2YFOO0s)ex$xADobmy#5zIhtSr zj#XXVJ}|dXsl`Y@tm-8IE4&4m7ZP_(7e1VQtkr=f_hes<{EKMkOj@_~rIPTUh*4M; zxQ-7F2}0dG^Y}Qo<}7uO6zK)=Gcp#YY0{7e@%z#DzrN%I{Z@KEcHmjA7&mKoXCk!Q zi|ZMO%QbtFvSQFLMWn|viX#4k?)8jX&hqIz2@ce@8$at<(gv*PE!wuaFIJ^&D-|Bk z7q%Z8eHidr7EKsAL#=|3DZ7Fd$d!+lDkq#NU6&O}Iu z=#8b@?MZtdXv^-(0|#YLPAxcV=Re*PEfw90M;cR0*O_P*3u7Ia1SJ6(_zv(E4-fhb zs1Z2g&Vt0DCq$VdkjJYi`@j#l?xUww}cm3_TauF{)Y<$MB+uMQ(RNH3cMz=9I<=3BN|s$kM+ zO->20tB@c1Aeu*#oT~5c$1LnSF*Ow7CZz|#HfwJ9UFC_SRUW|=!v+sKXd9DL7(p>6 z@Bl}gl##W)E-Du$uW08BsW97|2(G7tzZ|JW8=qwu`p-os(ycCK&Pp)+@H~|IL=~|( z7C;!#Rb%APsm6$;zJ4glUWB5jw1KrMIJFqJCvZy7dN0Ty4}JMjr;u11+$WV`F=SWd=@r@`3Id{ zwo_hq5E>xFHmMB)H#r#IFh4MfEf*Vea(jqRa+JmL7c4j^+rat&R!;&%H5R8e6E>U48|*IU&ZJ*4Gsf( zFRzy-@}Ar0h3Ie3|BoLW0n@ zt)3Ue%}IH@T*LzUI2Ok|X+r#YL0x2*)1v8Jhj&UG`zvgganjYMy>9gfPHb2%M{af( zypYuqM#660;hDXE2mk+5sr)A}RG&HWxQ2tHoRp(ZeDfZY+9~|A5@fRbXM{_bcgaLe z0LZS(_vU?259D+D>jOUD?Umxm9>eud!ll6Q#$3G)+e5r-O8Zx3xuM0IvYd#o%NNQs zR3$9CP$)J={zrEc=e~>Xk)DsvW)HWvgq|BK#vEg3oujfLxIMTP{mtXPDS8$*GG-R| zzW4E?2kIKRC+WzL9)>k_p6OGrAB23TfVO7}sCS8o z!q-@@AxQ38mWkel^&zN_v#XL<`9jlAAw4i3V0Sx+yL@VfnMEcm0=>fLR*y}1cBB`1 zkNdyehdXVs>KjCSr=YJ;g~3n$k*5|G2G>yuoV&pFpZh&n`t^qkf%Rj|a3q@0e{xa; z5Bl znHG=T3x`0m^#$95I>zs_g*bN&<@_HwX1!3%6@j4N-N>Bxh$$7WUmnG^Zc^K}q1y8@ zkB=3_HT!E8lc$H97j{G7q%ONT@EhyGXO1kQZChKFCS)PuIFLADGTg51JLQ_l$Q?lP zi>uHIxw>=Hbf;h4J6CFSg}><(_TsL0qHS?)b+7Z#A2M?e$_DIbAixI^otFgckE38;Ao%*1F2?5+;l!tV+P@Cq zkQS*=R~@#%1yU#IZb@N>IryySjT?{uB8a_ahjQW&#Uq68Z?-^2yvXl{ItW8VyjzZx z`!q)`D8IJ1b=bUqQb{7nGl>A!1bC~$awiW})lW_n!ZHRKd-`hV-HFl4mWw)-y^%{C zuj}uj(QFf+@U|VBnQq2>z*~0p#J@IUdBVq0^P?ce*^%Ca_!a0Q(Uc9FW;(zJO(DBFu>oXHTbIYEiVcXrYPQsPt zwdZxR%!*2Ls;Gx@v7CjZgQCtLBD?q=IFxGy3mrB) zLH_~{W9W4Bg51EC!E*k*%^`kc0O%pldcbjP0dqp&pg>j|6f_j77av-Ym3b^HZJ z2*ahB5zx-^ku$nke@SqM5*+@C25AYe;3R`MpPyOuHmi691q?><5)qVMgfNZj~ z)uwCO{AtiN8$d?=kvB%gsb9ivVAje0&s&z(UQ0HYcl$Ds3*@2$cKN^vd;cNrly)>4$y7UflOD z=uMiBE7?W6^F@nykjw*%+XL}SH9GB5-V9Am()rM@aS@4{agcc67*BvQq zem0CUVi*W{E5tnx(u7$Fu|0{KiW~9yVVBbhh3!XHzoeuqUA^DR@pV+1nYb2%pRY-t zPzoNrE`{x{8xbN;c}mT$f@fiAaS<}s=mpgEuC($Hhw~zvCwoHln@Pqn&}z~GlFXOw zQmjS{x7SkFnV9bqeA0bdse!mW;BH*9MpDjnKju<2^$R1m&=cG1tXlxC+0~XUhuI=Y z_6|RK%*mh5#DdY*nQ2I6x%#qbl%yeMf`P|%}a3bUn`lsn6{O#qyV!-=$=NTUrZ;LyEQplBUET@8yf$Y{NYaZr?|{Ek72 zxp+zZ=882qtd!Q#rC+s3lb#cqr41~cq>e{zx?da_bmvtM&-nZJeVw}0Xf>oqZPWuw z%hxNWDXNXB{ub{>v-K}4+IQ&yO7u;ynPL9~a@dg%HoTn9X2Vl74P6k!N6HulMkSzo zps?HWfSQ0OGC__%xUP9=E#{Ps@)SUTXSOH7JAqSbxVRRg zq|EcXk2@7!8Oc7|{~Y>Zs>gS1>+2g@rO%EP0!b`sOYPqnjq!-EYQ3`)gpc%TZGaY^`tPO6|s;3sHb1gFP^R${y3o>~!0dblOBWz`Q;W+-|&|eucqVFx324M z7oHLG0Z<;phc@>OBiGG%vS9Y-^Y(|^@(n`1LBnj`UyWx^_E!+8KZH8DfAUGag#vmE z4@#>Q9N=HPJE-9+E%ZNz*#B9jR~_&b$n`PIWmKp_1iSigm|5H`)$jP z#Q>;-H?-n3SQpuNt-h3%Y&if9s<5> zU57AI30;)`LoG?d?@-)22z?c>xr~Viw(j7(_bs;J(FonlKWQrm=>g_7mkRagzh3nJ z(^h|idCO=Y|ECY8sCF~O8!#{BULUzFK=yz!(A;SDhCdSSb>VmRY$xPyI?IzykaOSCahy{P}Xj?e+O(dE*Xk!qHUZ%Du(Z>)cH2s;uv9 z^nC)N@PI7z3YcF_ZoRLWnrQGI$Vd*Z>(`%263x&9;rP`(-mKI#Abh|g6rykRX67~W z^{UI~bkOf=bp@7@Te4SL&K&tB?c(VrWGU-02|)VD;a<#r35BxAnsH{}FT!+74tWz-Cfz5cB)y((zvJ-h3X#w0C(p zBOA=h`Edap(U;M8@&Uvgwtawg<@=IGb=KMLkJoz+Fe@(sfCV$?73MRWy>r(tMnI9? z>-{6jk0Q8F`hT>Z8%FRc{oPwJ(0_t3pdkr(@JM?fKC)^ha~t^nVMgn*Ot&dAn7em$ z5K4%MdMFvyeBYS_N!r+;T9?pOghCLWoKS8}UqwY{FY7M|-Uo5Fpd#w5Fp+vut%0#q|?3%&9WCd34J1`4?RV-Fb+IL@!Y%^S-Iz1 z4cq$9mt24P1Tg)OzV}-7;5CrAqZs5_%U|Ek6F;2K6?%}{ApF7YSP}ZK_d$9!S}bsX zlghwqkYy0`*(=Ok3wr2*RljZK;iv4r{hsi{ui5zufk&F<_}eC6lKFS3_#eCpmeHG< zcWQd-SN+>x8_%jy?tA(Dl5NF)_ptdGlX!>zHk4qj0Kjpmr77T zbX8Mz9s=qBSMqG1zLWJnBMJWQG82L?6a=QV<@2B*h)pNP1H^w+w-Vq_VQqxG-0^Td zCZ4M_{{jBK9rVL=@_RD%(LMoBA;a0e1scVEx8Vf1Bk3!JR%>m6@ma@R~+Y zJSZp`{5%fi`6Ju*VG$%N><-k{f@@Htb&ZBL;5#=k|GG|9#K5sB1x}T8|Fl{s>f(}w z2>=Dox!?5My|pnsglpaNms=E}{SUH0zvzDlAi*ez z2=k$bWDwmAM0C{{NwJ9gu)pz#6|ux`mzzDC4c@T6v@`bD*H2U!bR=|IPj{f?w62(7 z{*W5-fz)=KMB@$Tw0d5%=eE;V0WL$YFUabS8?T44VSz*Z3%t0LvNK@(83{QvCz<$O zr*`5I*_Q35N5^irGvk748Vch~o|g>1{OEO++Ka;65yNI@3Yd9QP zQuF1Lv#1nz!lLj7FgimKwqn>&*Wdl>FE(7-z4|6<_lZVinQ5XY;QcHZJO7~mZllis z#5U#7!nw{e!Ldmi%BPMy)h)a1C;0B(0#Bh{W;0{Mygg$jTekl)@Xel9HRUEXYo?z_ zU+`Wh-$l4iQzhlAu(dCpoae{QtMVp)%=EM6-`3J{>}Ldj*V3>=1brKkVZqlP8`Gz} zysx)BQ_CglgcbJfz1h>)5X8HZzes6{Fv~9viE{g&RD5-QK zE!_NPGY>mDK8X-kq`G#UQ8ImfQL zwF9Lxbc1iXqPq^ux-ZF+CRQT_gp_IdtiM8jRg3jBuvB|$u1T816ZP|q(g3Nyr`b>D z9n^*R?%3XBk%~yj;;4IXD*d!G7i~%k{?hld=?a%IsynT{7-`ztD$9&4;+*R+nNQz* zRWPmIj{K{tz)R^XRqa=4`a44Ly3E&vJ7H!apEXsZA`;HCUSCtrHiS`Q;41885Hj{G2tOTkEPY67rHH~o# z8LkP6ZuO(E43^E96N8>(52XyCpCR}Jhcx;<(DBMgblm8Z%5Z{a^5}sH5o`51N`s@G zGXY3dkS$`8xupObe*MPe=`uRYSO;2}*>*ZY?O6=g=BK$Lf2aeP0I>OU$&%p5hU0Y9 zw$WMnsc-}ihtW<~kQ*R9f8ETAZj=#Pux;cw$w~4-Xmi@ibuM{l+;B@~KJ3#jLgeo! zEpvUS0thGkO3tq`eTw`ceq=6D!3W9D=^HP&^3mF=Llh*9cOw}0^#NeitS{8op~ZWV zn~MyR?~ibncYn>t7b>+vzi&&@2P*^NB(3C9%=q8NIL!o_V3QqFWfOyibPO9LHJS z7Gv=r->jF21Py<*pe*31U@Aft%9?YHg&;m-|qG4`Kgb~=u0qlSgd5T9g^Pgw1Ajs1= zW&UcVO@8g6KGjY8eqHhn;I+mH;xm0x(72fD6+siYYc5z4UiG!#+QIbszEoEB4+X9R zPU!O^o&y_o0j9w-#*r^hHX6S8d`@dN8@VqEvPPaDycAWKT%R>!GtxuXbR+jpBBnkKh6H z&_;))J>HbI(pZO-GMo#`6350+s2H213P&sDwriITVZ;)$=$9cXtDW~0GQw^QU&jFk z-Cv2xutEnqmm$~&$y4`xx&bMTV~zAMP}!#fKVM)GB9$mB{wyc=*x(Rm$iKbtW(_*( zC;{j0Wx0Sm>F*)q6m=eTUA;7WGPp7g68*mTA^JrsclvsAD6}huxaQ^~dmbraDsrG) zc+MwxeyFlOE}5ypmKml`?mZ`)KFjz;>3RzBSr@;RGO&BR8i@I5(6Gsf}7I7Y!ZKg#cf#*LB4KOKyO zRZ{HK-tmJh15^h+6`}feH*c^;O$IoCooZq8%X0552@lJqILNVI&IA)sp3G?kvJNc?Z262D8G#W2a-r* z(Vg1q124j*PKL$0Qa&tv&+6)48X(Rod=fKTKvfmQW~m7LZY*?$=~F0lZdmvUi@~qK z_!);U*k7~bEQF2Inj_26?6cGoz|!OOtKqsfXOuz14cMJW_Dkfdbt>nRFTi1L84QW4 zwUSND`8a|=A5`Xm!6?2X)yz*YzuD|Us4$PtIu$OuH$_Phj}fyv);rTy*zbHTiWuDw zWXjY0P%-wgm%abvZE)z%x(^cPXvtu|p99lHTAkQ;;>T#58%{2dCDuiU>50F# z$ur5u03|<}=?KTFFz<#it$xz+afwE;O3PiP5<>bhcWz0$IK91(MELmQ8!L2|ap=ntl9pZVqarVx=b*G6=nB-Hack(YV>CQcZB2J*_@2R`tW! zJYl&BWnC<->-xOe5XL6a#E@0S2v;anS_kN^RD=3Oef^6HVAVbaJsUlPs9FC`1f*q3 z%3GZRyhI#iQ08ugKJWxAO14E#Zfnz|U6w3Gp*&U9X!>BRZd7-Z2nez&%++$-per53 zLJ`V$n!KpTEc^0oV#K-E+=+mW5Nd`tR>{ekzQ~f&iBGD+DaLwe$NOZPn5sfdmQt#( z;0@rA@+HU+dGl0`hTl?8Z9R-o843TQKc6Q)pc>F&_)JO+UqIvrzHHHwm=ev~@J+q6=r^nW zr`emQ6B+_j@!We1G9y~6FJAT*@$9jDfn`Dc3x!X}+lozg9lU(9faLxtGn^yw+qYya zP4lp1O!cxe`2V=k%%^|=qdU)UYG<@}8 zN4}7YcY~cZ$Y`jkNfUahGMo(g=Z|>63jSr1L4gVVEL8(T*u7D}@%}Mu9RBobNU3DD zj;9yjY_F!Cr6%nlATiZuQdyL}0gp#dxqs4P@Ouy>;BoU@tLdI(9njTjZ3I;evWp!) z1W->w@!&;Fdi~W?B?Q8pLLMKr@~JG89xxrMuz%FF&wjHyM(BqZcazJQwk4XI$4q~C zjL*z}LQx%@W7vtPF5qs+`V~Y+-0nB$zB)vF262CD=zqm67l4)TgPs(ys*fKmR>AM# zwyHLVIqQ$cR#|%Tn!0Z!hFqrH9zj;Y0sXs&`$DAX?7n%naM+_zPT;a)s&-qY{hx0sDV{U85@#&vcwLBac5;@Gyy?LtqwVLhz z9nfGryg@+c<(xQD8fa(y`TzgE1O6wYs_Ai zJD)0ix@b9FXuN*9oqK-v_Kt5ZpoP=VbM2BcdEf&HSc0bkT&j@EhT?#XYZe4tJu6OQ z#}_sA!5Zp7>{D#h-%q39{a;KWeIQc^*=ZYyit`TnLIuYB``j{krDdY(z@tQEYTiH} z>k1QC%1-RWSYr1QO08U4M0lD|qZ>w6*6MmO@=;4h^0?KJfA%JW)Sx@U#1aAq^?*pi zlIaA;uluhA*v=B)k4uU(=!nSE*ed#2p@wopcamRSSpegMFWTyl|$Bs zYi?ouhN!LqUav5hKY!au=(Trm23og|BeSlEr>VT&q>ZZP#5Xs$=S(`sBFq7a*I8ax zkJ`z1w?=|H>F&{jOK$OJ^;&bnqtI2GY)=k@IuMJ4v zyYB_-%}6U3n_%W(=!IGCD-C>M>sP7JE^i|csr+a{ej_?bc=gWp?z_a2rx#@lJ!hQy zm&f}f>!dO2B*ez2;LSNrA|pnDU^+m+9!BtNV8W&7^Ee#6pmMV>#U0%D*oe!K6!u zZ39AUz$v75qXW)F(Xdc=P9tW;o?l z=4Z1{RT&wggl4HpV=1Ij&{EWm7%KSzDxGE|h~ z?H7>7FyP3!C}lPdbJzqJ@bZm!59Jja|)!Fv>kL1ui!hfBt zrI0Vx4TK_``(T>k9;yK{v9!g7ke<@v$R!Ib2}4<5wW!gdj;)A2Kfobv8`5M8JkHfQ zPd-gd&8$9vinEs=%DAcXwfj38i>fpbU^Ndp{KOzA=)g7^)Cd(*u9G54j%K{LVtrv-6wKqYP3KE9k-LBXK8fjsRIgnSb`P zlo0DNSqnYIkuNa9s?>B-kpZl{$gG>*mUWMAlS6Pf8>z3uixC7`i?RB$8Lia-sM<>> zTJNnO=4)(iLf>$vAJ&Wyjs~+tSv5fX zuW^FgMh?9tcS*NC+G2v2|sDQgk?2Z-U=( zL8tF#7M}H6W*j;JczB4F{o(btz{*ZZnw9?k_cvx`a5_c+yI!^=>Jzj~r~s|*9*a#$~0 z+x8s8{VH)if2w~07;YIr*lplCxxAPHmbaS`Jyk7%N|Uk;g%{>!CZWvO(2Jpz_C~|* zFPjSFh7}!b-Y&v@2a)PGHZp*W{F8u4T`cBXE+UB;_F^qzg60`YB#Tk_X#?D=D5mQR z&Z#K5UR&xVlsUK?(CQ>3;*C@n>z`Nth;+bCBv+v~&PM&f3@6iX4DtFQA8_#&n(Vc6 zCNU&O1q@R;r-VDI`L`Y)nTv6Cu1K@gdG0VaNoUG{N_+Zo!F3_Z6@ME3V za16?5BwCfUzDJUe{J-`aS9#){pi>b2jY+x~;UPBF`W6W)$4AK6fpbT7hX=IC2T)8~ z?UoRgln|I9jHM9L0^!!_IA17f5iX&kUPb;gN~7uhHcF$G{H;;?Ec&NW+C(9n!fIqG zr)PvicfWuHdt6f{Gh>2K zhRJ&1m&PJF7TWiE2ZJFZggS-g{5ziC-^a7t+2yPF$TjcB>%?f2KaDX>yM;`Id)Pxm z1|vxYb|4MF*c*(eLs>Ag){&k;$CdHItL1%oJA3_wSIjMBwA6Vpme$y|#qB0{CqrO} zkEnEJ2<@vd_vFTK;)f|sEYlZcA<35n?c&+VbYi2`Hs=DE;@LBm!?z1H3UvTP{+*;h3 zdgaX*Z%<98FNSCy0sW8H%gn5U_+Do-v`uQl0?7^~qw*`CMd%-;r(Y)3k!>go27mbs z^0+{?2}_ipldqeH2RV5u{W8v+%KkFW@KRVcAG74N9^5i7+ZbC+5cHcQyXwSWZu%EY zq}eXAUFYp(J!$HjfSL@FDeTdt9boETUx-)w2rh8t${QS2bPcitxrM$dZ^9LoLX>rUgz=Rd8c-fW# zzx(Rys$I-=3OI)uDaokn#ZhUdsvoFR+3rv5)8D9&gAYA*1ZS;24V8oRLuVfjkfgTh zusMjT2*c9T6%^~qn)9}VaVLkaS3;lpRGtX4MS%$Nv+@g(*vOk0mO_zdqwCyPPmhNO zx5z{$%W)v!5b`=h*&`Z>Re-6o5%z!LJ7*`CtgcQALY3oso0XRqI8Z|69Tm(W+jr-L7s8eF-QEIW2fEqiq?wZ|(l}*xkp5InIOvPi~C&kM=m6qd(KP(J-+7m4rwHYq0PE4H3U~w2df%-Ygqe zk`XBgyzZn6OJpy8sBeEP)16Pqh!kOy=$hzgBOUt_y9!j`c#x zYv;}p$l#>YGL-txzM1g8iGcdUT@vupZuK?M=bCfAt#aISb{cXIljN5JZ5?AF2ASrOc(>&B*HH$#z|Hmll1#i zlebrQz8&wCxjQ(PKqe^f76?LmdD-y^N5#dRTHaU?hhO$s$9as<+3LC)2rC0Bubm`R zT34^+86*hMNFw;K5<`yK#B{A=ZZ@WH9uvQ*l2rPd=84xQP!Ag=B`-!R%zDPd9Lk1v{_S=sW{ha} zaWnGopx_M{qL98|Ok9A~pl_nNiwOqB{tKZCr=hBg`eU+&`7b7GV|6_k7Q2&e64i+t>RYa+wlyBLL=BNqTbaZ6z1{$h$C@AH*4?9hfn3MarZ zl>+v2me!ks08f2nzl27w$2GNaRi)UM;ku$E39Y1$WITNm>j6-n%~TWV?HtGwn79{# z5#Pj!$Vm6JYZ*<%SW#>1(gUcC_nwWC@0AJcpr*-XZogBJd2Cu+te2Rc!YA09P8@Wy z(Y*<>RyQY%8$aUSqLmd?PwpK`4W#bSdXU#2%Cyc*u$%j;o#XvRcg-K?Q-PuTLXa^_WV&R%|%yB@_)hH(=8rz00YgL&~}38X?=WDnC-HZkGW&yRb$85I|}F zG@hzF6j;MgzPQZ9lxq^H!x$JOC=C1B`;{I&>Yu&;ck(gT?p}T;A`UW{9A?WU`%usJ};ni1)=q!vDQLJWA85_bt zSW=qO2@op`9^#TA-|??yyP)qN;pF@A@J4169ziTDSr@VbdnmrmY9pM zq0Z=duUT4qfRe*?20eL_S<={@3%rT^bq)`0d3HMt%I$A3N+VkN~W<*DWZi?cJ!r7$TN@5J}3M}Kf(jo&B#&F_c+uzhz z&}|SPE@WmIXRrd&LaQ?w&|Anmu zdCJ}Sc^{%jx4-l#1`mH|@DK{$Jv?CH*KZv#AEM5}Wt7{F7ht@8)~?$xem^_h!)Kq^ ztEqo}z9JP$i|#}0VbGePT5M3Gem)QO`)>bkQWD9<{YiqfWzO4j|$5PvB z#FKfQj;bXNf35TcJBcs!G_UIsO`#?5#trdfeX{Z4h&4s&CDR>GNf2dm<#YHJ(CzTU{b0Af~Q??Oqdqk~;f@jgaug zl!~`pHYzcCIKxv}*p(N1P&F<>Pri*3r9DNOf;kDCR;+d&-34ziQRoMicNk>~PxUGu?hP35wO}zq>h&q+A z(>zYc7XtE(TKzN(>YJDnE|5m_qB2a#zn~yRSo@Nirhkn;DR%_eoJnUwYewrp(bJ)U z=~*r=j=a24S9`auTJ%b_?h3G3`S3Ft8DAQ>Kuu_2aAVqK4j5q_a2k|87o551a1jjh zfURwN_K4sCGalRA<(pPoPkBmXn`O2=J>V|(HL*v(grU8KE^xYn~)Yx3()1;A;6)_q{aOn19(#5?LvsQ zi8F0XCwsi&*veWWCVmHL$aBqg(G%>|Lx(6_#s&NNy{_>2#)b6ceztqMwfRd;5~aM| zf?L{?)*L>@6`zJD`Z?v1Ozou|l4QyfiWPxh`V>8Ogjh*CIoxkQPc~LWureF731wPF z7$&EWlqCzV%#6_kR&7 z8>23P&GJaxi5(dLbVhZGv#eo~cIRkI*M8h;b1eGCgt}>>SQS{CmP002=Zjm7UR%=< zwH7&&C|8qRcTjG27Z)(m7k15yp0>$f~NR3|4C;tQL8Yko=9gdxc3H--+{rCu9W7ceV0-bnpEt2D}OXY`Mf ziaNHMLofr)J3EzV?O)p37wc~tuij?*lUZkui=9NL7fi|+D6%hXZOATuny`q6Ic6@L zX`dY$wJuOGqh-(w+CZM2uD;srK?zj4%23d7l&Xmf!!BFTLKo|FfaKJ#iG}HZ{Hqqj z=RCpR`8U~DM{?+vQ=B2%3L$b~Z;u9&OZ4vC7&Z5KP z-}7Xq4X7-;{^@P6$yd*+>yqfyuYRlaR+zM-C+GT7STdUh>XLn!>oLMc&@ToBD=y9@ z5PvQg{S8{Ey(h^cY5Wo4_7{pK1dCM2P~m z=D9`21&%x9OFS z&R;=+ToXBh9DxudoYa)+e_Zw{P}Fl!%Px2hp@#?)XV5{`wLV$PMmi@m*Co*nd~qv$ z&;&jwPg0{bAGE)?x${P-w`v-?+L6)$c5!CHDHwd#Ab6BYq5j3$Z| zzc&*+Xfu847~@Q4i|VG2DFh-LQ{v0MCtY4WkV22_<%9+V<_(Gcs?P`$)MME$ ze`nmEZ*()JIr@YU+k|Q`4?j}7_}fl52)<`T*&A#HT&L={*aYWsPYE>lh1+#F&?Cn` z{Z&j+yB7CpO5e=BiAWar7|=+gPm@e6qC=coUf_$(B{{lwMDzI4CG-|+C{ouc&O|6E z*KXI>j!kAh;~<=rYDP5wml^Q3R(C(d$d@3{P zWY^XgUHx}i%N!&%e#dNYx~R0~#m9ecJ9M|iZm)w1!Ep9hQwwhG0CGV^i#qxNA@Yjx zx0D=H%ip4lWp*_ciN3)+5$)Yn*(~yp(R=%9gFYjEgIx|k8soaS6)np9sD;c#h3kN^ zh@dRLWfn_*E8Q*H`Z7)$UxPhIX(mv$s^c5J1imb5qx8H(c(H-3yHnTQc7G!6a(zAv zQQ^E}^tXlJBC$4B2@H#PWd)}#MZF&j<<&g#H<&bNus-?IS3JK>7&~y~4xeDDp0f_$ zF@o<0-g-&MnQxf~n0vf>Ww)oAV*A*mpjDu2@HfV^hxxr%@AyAv-LkVv4M6D!-z=D} z!5FxOYe*X2n0h!9L#q=3b^rJ3FK*EDV9&4#`YUW|{w9fnprO1~X;ZcJIf?7j_XMvO zdRT8-YOOJ4hbhzgl3jrc+6n00j#pJO8F{p<|N2QD5}`FW5AS;a&&53V>wO4qzrXvv zb$&<{z77C(f8DEw@jftrK-+XTYz#17fCm4QpFgc9{{45=25TK7?T9v@e zu!Wtczs#~6PlK3G5)e?!TW~L}u5Kc~p?`6T$P)FjHh5(y-h)^CqHuB7w)p7Oq?I;7m82jCvk zfZhE25$$Nwe-k&E$RX4e_G6Ii5v_zIQcs2gQ4grVs$()g%?h4R!;IZDMwe-$PJ%G^ zbBQIUk?1#N1(vzyp%{s+&GN`|mFlBo(jLQ+HF{OXW|99*mM{aYr!DXCdPYKn zsf*22Ei?EGdqRTWTQXEzr&=!q@R}mx{hVwVH4L<7gm8#4^)6eK@D7OCeM@N*U1strW2NOC(V{pOZYGKvT4wN+cJ%dERW=JI zIH8Z$Xye%AnokH-O!^{>`%co9c2WU|I)k^vqD$3j4g!LOcMEUMonfa_74y}H_*Ks! z@AuTM(4D2-tvQ|!J$g&j(XH?XD-z`;T!h}4rrQORv zX{Pv!ZuoDiiYdfVbRAgI(b|mlFvzy`jX^pB=v8cO?mn6oi9#rj^-5Qgic%UmATx5& z?ixC`kL*rF;;WRcIoO*G?5Tibvh!P*mw$ftka1GvBW6>KXGprU{p4@ zL~ER86)?|`_tl7HUVV8HOCecC#9IDa{APG>-CdS@skr$CG7x%V`0tAz$c_^0-l|FH ziura2&jVx<3-jM$dLhh!dwtuP(mt=AwV`socU5{Q-)6}_h7bP^PM%IpLL)6vM>0Kb zXjUK)gGWELVmy|6ie6`b`;6`T3PRS-z_^%N|5XapzHUfmeD}Px&9T!a9OYU9calir zL!48P=(e;ikR3$t>cx2(t)UjDjTz{Ev}r;E!-{N0gw}B6wSiHh+4*nUj9QqXQ4OBh zJXbQ1wNI5lS|G+VUbhFls@Xd>s)Rv@kRceNYSl2H18!6=>x3@n{zgH@*OoPkk6+wp!f z2Oj839)%Fqv=GgaWw#>Jj3osj6dL^`+cmLlhU;oN(=imPBRzhD*+g0NZX zutR;Qk?E>#!Y1x}fhE7KZMIHLcjFErKXUikW!9Dx0q%;V?lu7LO_EQ=Oz#=f%uS74 z4xL06`pXmy<#`r1z<;KHuRp+{39NzQB`7YD%Bkw8PDA8Isa2Hnqh(MMDTmR8U@`nv zy#<(&+YV@GAYb`SGuv^#4Ar&ZT9P{6b^;6wCxxdUSYAMWs1SWs!kn1R?+RaFN6&f` z+16B@=+^oJz`9A0&p;oqm;_7x#O84Wt*z02vQ` zF$|@VL4a$Lo0A0yv$gFzR>kT9WhL=Auv`M8@I_RRBqJY_-EbQuC7jJitX@AE$!S4h zR=y&6TLZ=~$Ak(cxgDkDld7~1W+rR`zH!Wj(|66v*OqGKth=5tdw&0;bR14^Z$TKc zwC_x9p+r~zN(Rl#82f+M(VoK$A)xO^WF*WfSjZk3fIem9m~Lh&LAS1e(d}0UL8hLi zP=OG*y))r!E8*^4>}#1wLMUeB_sE2c0@Joj>94wXtZ9ySeq!8fih0PK1EF9ZVjma4rY#C8$%SKpR_pDb)eV`YS~^N zm_ohe>-X8fl5s8#^ok?d4%*iy{X4Lg0QTP1Q6!D+k~0O`6of|93&TJ;J~+rG6I@(4 zJEj)U_QCj6-O!J5g`0xbNLt&xX|(oZM*LF+KE(sl)rnXqlj__pq54GWi9{SZ?dxta z#E}RI%0B#arODF9A1JHElfD35Nh2-xTt`0b4iXy3e`6N=PR2!=HTE5y(~xvbe?N7j z?Ru;#8JE6dh5GM$Kot+P^SrgT>`PxC_GDfUK<~i+4Gw;_LNz`um2d_YOt4+GZg_8Y z3?_*uXMV>VPr>^KZ&v{oRkwu!MWp2Yq=fJb(k0RjA|)-|-6`_(#+5$-CYXO z-O>WmCEf5YD#PgWt=G>rYw2=soOAEq`+WO5``crCk#N7j)&}vFyd?^uEA2h03aR7yek%slpYSk|^`6yuc>%}< zG8P%>bz0mro_Ue3sdPU*;x?RS42MDlY-pT~z1c%4%FYh^aW=DU3Yt)z9$I zoP&?bcVmr&D7Xm&t7$hYYjxx33pR>U9Y-^B3hO+dJbwnqyP=xv)p;VJMtcSYyiFd1V;X1${eaROS$41yGmj9l&Nxaoj zlF(id=(F0}FA2cO63f!;bBRHY491swAf1fY>Zchf^*#|Q=GEJg2h0hzqDNL=AjgF#!*R64$tredt_|GmVz*L!ed#s^>j_X zeWEBGTtYdw>9ru_J6nUAQ_p2*{LzLh}l!Ve*b) z^@#d{!MMSpwmdiqr=HtiY1t#FQRjf%flMMsd^oZ)i2byv$W7lpv)|uV`}AB3qcc4P zl0O`|su1xu?e@@ZKecw?`cJ_H2Atyxuplxe{0c-Wg`#v{8U$jQyu-oIk2QuAGiE^%HlAzAbu7u~>#rvC4QDEVGyuK4B!HD)q}D#V z3`t$lu!|?P>-PQgp!!Ff-h`|-94IabK5<5TR2IQLBd()!VLtzwn%cgyqv=E4g`AU_ zm+$xq;%;Z_R6=SWayBPCy5LrDnLIiK>NA<#^7Wev2cMpe`Vu{!h|P+wj5*{tooOX9 zWeu%KU0mMn_)B-83@ChTygJ$0EZ|+PS*}{>^!pP(B8AMHM6s_mw`HpuH&=Z9`#&S|2qH`P6YsHcfh|2K$&F@18J|_sdS{o^oo|(f8?OJtC^kf zKnRkYk&_r@Hm~(Xn60d0oygT{n9bK8-=e~mJ5%E$!4v0FPP$(C@fQ~!jV88)db)Nw zVrA%v@$L#ZO<~1yO9v5UQUhBYRk?-67eri9b_Cu2t$WGvi3cj!H!R6I#P^|kcDZYLOscn6F!uSHwVgjeiSoSaCYMr)<)A>P zi}DzAN-o}LEUj}RsPU(Zt$5|koS0G&;nMg1g}fEBgS6JI5`HOEjrRl;v;?;@BfnPm z6?eX@ElAzm{Yve=6vTRoWHee~K`KL36F&r$tlMpX>xpWlO0T+J@tMjv?}Z)t z5rQc^*{MnXJEIpWlZ~nG7w%UzSs~4ZpamK8WY%hS-{;CGdTSj|DX}e0dD|+dwj3o3 zs~P*+b{TtcJImwYb>V`tdis$dGm0>lp$9TdUzJLi1_P9%lloJ;pPrf9w1w6359TSg z^nQE1D&tQ?p;jIawQ?oTv;EhxC_RIV3Z7jUk7eTh;x5Q|v@dbU==7;8ad*ICh6lU*12Q>Df4 ztY;#!&uGU>x}jAPqV5)Ymy?2)5O`w#3~dJLL-%BmfZWFfqlb2QQar-mXP;t_rHrJL z(!Y-R-#jbL!u-P5Vv1yH@#K;@<*oG=UNIb zu7Q1_ZXsp(DJpa6Aew?b10#x_0~HmA7a!`Cr~K7xP5Yl~ z9k3}(iR}!_h%=6k*Xe=R>=rBB#~@=S?y-tpZs`3-$id>&yGM<;VvtKzc}%#T@;l^E z_Fv}W+Z0gVXcD2gMTVD>ZG!P$$L1{{#n_=UpRuIJ3t-Lv2kA7;+vuTlKL zkrGVyT@Kfd@;CG-@;s42s20^XdQ|Ei1syz`#*@;@eKaV%g!`2s-JA6V0C9BNx|>(k zpEAe@?+4)z@xQyhA1pPgB82O2Tuc3VDF2>3{Ndr->8iT-hCPG1A4$8r3_s1^u^q_T zy4&)`cSicLIe53<}Ep4#s;>HH_2Ku+Z#>W z2kk#%j+HkQxxJ)vqaD< zdcyw`IQLEltrJi6#on+VDZqr95v@|Lal*9vzApsJNQqPO8n3Bb(vv6`+uivI8{I{4 z9r~v(By;%CwoxHaSBk#AsKql$M1055O3Kqw+BLu8$hlYqx0}bffQz;#4pHa1wCDT> zW9Xo9uaF8ayt{pQh3PKGQinYJ=!>n-wCn^a4}o@?xG+jR)+^jeAz+<>+9M8%J2zTH zJ`)MPeLose2MtE_NN}|X(+V6voo_hdM#1u$dSG%x8`Hh$9TRYP%Vyd!3c$GhW;}K{ z3F&nn_nA+mgPsz|2ndA&{PTW068CPjw!lqjccv@1`~$&$pSQPS_Df4*w6*tomEAe8 z1i=m`<7YNSMRrHV2>!Osvp4pOr(WYXphLj_mFCEoI3Ry{)o}6ZGI?-oHh=JQR#s$C z#DwZz+>Z&ymds&O($ZR1DZhTsk=z|X`44c7RQpDugj_CI5LNa4A#Tcp$}47$kStZ6GQj5 z5Aca?^EfTz3jqH0{WC%=w&MWCPYX|fxo|h)(zZN3z2(Bj(U90wn1mzBqyJdV!2YWe3<`^YhRPT zW%tm&`En#cZH32|UB;?&c-l`iTOD{cXKTR$whHIZi!#QH^K9HYDK%`)uQ49i57+Tx zZq>o_>@>YP>8YALND3R-;9_q^^J$qpTUHJ$)4$(N0ImaDpVz;VDL=uDs51{$C9I&SRyvI_^zsmfP!vxMLSKfopEWp=G|o5;n-TFM#cOI>G&Cw z_T+rIGU2mE!e&r09-Wl3yRLmWiL)Y&!(Nr@RHOamS^P-cq4(?&?U_MNxoQ#HQNH)( zTXLiv(~p$$JPVvU3hs8X78qV?|#Y%9&0lR0hVef{kw`3Z`Pvn^&NLi&CTqf!%9hRiaoM^g+ zk|W$T(bG?ty!$rjoH5ZLs?NEp8KKyEin>&FL$j_~9Wwzdy%N0ZAU!WN23j@{ujH)DgVNe?k3S+YAIuR_n*&mnfRXTB(h6iW}b&E)d>rSMGzP_+&7 zlj>E*)zUWOw~bJ|I^a}v=(kLFM>8@MQbC!$fLpERDGeH#= zBsMFZX2zg3!yrqJLNkr9{Le)N>Vavx1@xtoI2;@rKScsXlpdE@a`Z;CW~I4$&RW<Sst#DfOg3YFI86 z8?$s4*H70a*ehihxmT67G7qZllkNtUxx_@Ox^zt>?j|28A9GNSWB_J>LoUI5bp6R` z^sWppR;hhaX@nA~k1yMACcHLvNSS)-qXyFeZKrQJNea zco8ZxWNAPeF=$v=++38Il(lYT3=}FAXr&O!j*sZhotcwJhxQaZdN&HEO>g>=pWSwZ z%%4P_$#&e?V4JL+IF(>99NHb3bCZitI%+Pm(jO^1CmUHy0x6bl2=|*+-DcqKMuj*ME|1!KU{uLcFO}PKSU{?NKnR<4Zb>ZN}?D0nZbTaSb zCRmSaw~VJV`&;2qY>h))LiFQCHmI&IT4n6l%_v4B)`a+DCm62OW~Bf|G4IBdR9=*^ z^=8_MfaRMPl((?(XlZ(JyTxqtPe_cG##Xvl`Fl%gJsgSH5O(()DUq_I-E}+<8a$o4 z-LJe01P2E^FT-?@@R*25XMLYuW>NgQb$((Xp9OT0ooLk@9@5?i4xi(w!zsTDc$wj6APSWxzM$K|k9h{odyXUWsZ;>!f0ug3at5Ox!DW4{5;w}AnXP5ML z{q4~XT6#J~1}c&=?a0gb>!qx0yj?gSK!2JT#XV_R?Ot`vkB1uFzMsU`lh^G~R-5(a z*5j_zyhV=>IkUj%)7=yqC$b}cooXs(LSvoFx%GKs_i<2F zZGJ8vYWi*mYR~qEY?%*^E7^n_3j4U|O72aiI7s75RRSj5Vq2%~ zmU28FNSEoTP4i%tSKAz7Q1*E%x~DHbAam-2{YqBhD1NppJ9k!|ZeYom`lP~jWmikI z4YzM`-rs+R)-k(dUCT4B+Ou6*?%2^fRK8@?5qNpaIaYRS?b&&Gi1rSZX+xp7L)Is& zPDKU&XRJKBuGMpTB0g||moq8Fa$9|Z+;f3EruGTzPD4P`Zu0}iy+8oNt-a=oE$rEp z`x?hg!8)QTyK(iQCo!6aInD%4E4xE4jf1J*%+t@KD0noI-FMxwR_Y67at2*PaFkGk z!oiAaWpkshne15}NVE539ExI;D!{Rw*}C4WU+U!yXUaSXBW=%;}uj$mN1M_zF<&1R3z|n(M7YgY&>Or5(A@hng_C;#H ziAYLQpd*>{B_I%eMdCjYOqX8z7K}!xNj+@si?CwTUpKvF(f;sU6L|$OO)Gn;j`=Ps z755(rcQ%@oK*)(ks~(`wO3g0EWVj&FR9DT6Ew{Do>yK}w3L=EKV&VxR9z!zwb zjMaTjT(1f^p5I%vEi%aYK)UmWR?+V4bnH@>Mp6Xdb$QI)>i12>Jg~v z;io8cx6-38?6Qf}ot^bj-q=~WBaJ|_1cTMwn6~BJl4pvHQ@}EvdlbyjJ|roQs&#);@mG^Iz1z^E zxz?%tj*iSdd50}Aa@l8mW;>wFNQl+OBBP9=Qp##3tk7tdyf=T)Nj?IXxhz&VtGke% zHD@)jnE{}G%#}^(ZPzPC478KNbdhrSlqOX*MoNv7Liqt^v^dRVMBIvGw#2*nomMZ}B5r^NT@MwY8M zopEBjB80om=BE3rzL{?^ZnVW#5&@6lRB>rqw3TSk0^Xiux#hH@vX-p}vZdncoMn)! z%%R%ji2d@|f=Cm6uyGw&YasxR_xMX;s!i}#fh3i3iL~cr1Wj|$FYzTDJE1!|irnMv z$NYBv_85u_8xNTW@epP#Bx9&w9;xe8$m;{gOK$W!{vOln*6j`vtr^mUxHceITLCFUSXw?%jWvmO$J)r7o>-7S_2H1$e-@@rCtXM?gKOf^_k^MH?Y?%(baA* z@~^~+{4>gCSx+|iSb!pC1*RQ)W1^r;&<8sDchLO4<|cgQaopngQ`;{+9c2&WAt~BM zpOk?Tb=lbixT~#W9hjXW)Sj#th{CDBrEzZU!TeGN0c_EDt_UGQaeR!3r_bP5iJQNB z3d)|2<*zPk1((~gq-~w1_yI}?<%(Vq0RJsTJax#UQ*^?8vupw&P{@CMxX@aKQ~l06 zzY-|Oun!q_hi;*xu>(OFvcr87W?LN>#=INC=MNIx&R{xrCkVo9uIExMf!QBiuz`rs z8_>YgD@i*DJCl?1aEJI;=l|QA^Z$i?e;@VF&P7hi`qtLxpE;VZj=_W;Gw~YE-PYc& z$mL+#m))0=^TGU=#UAR{U{TKM)R_AaL} zgvjvOPCk??_9*;MSO;26+nwp0?$uowx^A*yVMR5l-}2hlCUFrUuk|Re*a|1)^+$HWEw6^{M23EK3RXfHK&jqi>;^I0)9OAz)nJ3M zqTCz5^*&9)imGsc-((>CThEgahjO+Wh>J_scpW?16}@6n9SD)Zvz;F4f=;WJFuza3 zK>btQ*~aT{b!Uc%l_3|`Cuv5437e7eur4R@L8RUQx7?m+HJRsXX7E4LmDhS*IKNE_ zma|m$`r8UAu%HgpZ)Xp6i-_QK>=(BC9NVv?&be=LM__Kz*|@;`ctknD&*edh^FVo! zyB8;M2gMiF&s#6977H8JzbVh*xVGf<7t-IpR3K`$6Oq_=^TWP#c-XH|Q>-UjRxN|< zu&?^N(Zf0%qAR?swY8n+2^w?=h%Nu_a`oTXVX(PHRJR*K7=Id*Q!~w5adngx#y{LP z81Tg)Vx_hbx;L)uA2T7?YR_yF*3mk6 ziFxm#+mLr7DC5E2;o;RCWCTd=SXmL1YgW7olsI{1$Fn(ZbpKDlr$a=iid=-AbvKb6 zTf28ZU8hpTP9SmbK8v)f%h2CI-{ACM**8#sDh^UE`0K)uKB6{Igi1P=Zj^&kx?jOL-U+oi+tz z<89RJo^rl1Medn+Gm2*p(Yt~jDnfrFJ!%aR!a;OBIVida0?(Jrj6XF!+|GvMJ@g5j zR_2NS{mCbYi;5pKbnZ#Y7(H))FMZu)bMY8s@+jgt+MTHum_4F={hvL4J9FnA7Z5tG zg>N)R>C1WEB6dGdI~NH$!RbzqLV)?DD_Bt)|8R96u<&M6ca{Lv!$4HQ-YMLQtZl5j zYZJ!_e{>3F=P5k5+X&tm=kQn|y9R%R4fESH1hB!Bo=Aoodtt|9`%R~qX)YjT1ER#z zLB+JPv4KBQgxjIB-f7-nAmRsoP7&JIYB&&~mx1^}pSufc4=MjHfIVEj1lzwF2V z!w~UzE)9A8+ucS9(M!Xzrv&t{y`7!&)4n8=L~&nQqC%5}((hRj&)MjG+W$H~KP|_= z3;~uFq+@Y6Y1lFGYJGNdlW(J6UqXxD-0s6TP-w$)6wee^s@zgAMygu zh1d+PS&zhUTxPEGyy}^1_7jG7OXGBc5OEeOCiK70=2~F<{Fn83!2c0oA}XyYth+ZR z%q={aOSvg!^jzZOreI&5`kR|g7wzWtjGn8fVI>^W!$6VeFt$C;CGJ^UP{#TBF3h4M z4Fg}h-ftS^g(hG#yB%>NIDzHuMv*zFi;B+qv5I-KW3 z{blzm8x+`Ozr>|`UP9Y$wuoc|v~p~x)0Vt30>m-G_#BoobsDqIO{0ybKte#FQ^7mE ziX7zc-&*9<;gXUq$#S)S5?R%$%>C&X4@tlhadUv_qk;G`BCAZO&? zkD#LkEpZzggzT?cry7qbcuHe-O&V#baJtoV>L0pIV8$HTGEZ;yZt#B^8=Jy@th!EO zL1Sr0*xt!BYsbO&X?3H~ph1m9>b~7yv4tsvcN)7FthtaR~MZb zEV&b^80=d9HmvZ-AiX&K9U$UrJ5my%jCgAX+JRQ&HtoCfdMURggg{GJ!%1Nh8dxSF zl-MHoU4I38oGTyaV>1VaFF+-0tQUJqdYo~5aM#g};yPJ^M}^$AE}>)S|i6L2irOKI{~_)`ElK*zsvl`P}z;4Dx} zGmsT6JxcQStfE|UAIP^qM|YPq4(>; zWJ=)-Zq5;=Cv3$yXU8hvO6}!J1_RO-jczObZjz;x3BkA6*>mn(O1*lOtt>JE9}5w+ z7r{xkw%L9noDAjmVL@C>v$9Kjnak*4S@*~Rwwr*c(zk8`Y+1Kb0qNI6xyN*rfPHus z7cP%FdaYovhg(SoIh>t6&vQ3U|6n#?^G0lzqSphpKWI<^moti%wMmqvJiU`OOkN=k zYt+soP%+)SU!x%+Iuz2BE)h#u8L@}m&is)fGMMt48jPbu0c2kdqX)yByMHQ0R#%zg zed$_HekEzVqcq3^3EKO|J_F24oFRPW`Fxn1+v2y+p z!wNR0vNm-?AEVA}yiv?-2AL;Xrc`|$EMw%cs5UB3*OhM@N!_XHZT{r+sW-IwK*U$B zy{-7JwgYI%{ax6~8+8f3j=JRgOb7H{hbxKO@&lR)$A;e2Ikc<*+tP8|?<6pl3CAlJ z*aTs^E6y%n+Img`!gX`|Bi(wpVQ?aYM?J6^Sq{X)!=&=Tp3~jiHc0UGMK$3{>$T=? zm*(sG5z-z4qfP}0vnOk~oMDyR%FGU|+n_!`-rr|N@m=6QBYcZ0$lb_qE2wn1Ctk=M zL&(ZfG##I{%uiQ?(a)a2>mw_nN)oSd+wFeJ@*-<=D~*Evtw}UO((ouEg&#c%mIZMF zl=CAr_L^4D2d{+TLO&(nc_bYcB(Bo4G=B;-Z~?o#JqIX3iSOm71CXz=wuW6Z^Fk`n zlCjVFjpi)ex#{T?D>H&#>Aa?FRYPRL0Ls zc+Bsh<%P7uzvd94XXIXU!&Z=h_+aU}?l*a#JsmXQ;ay8F`xkuTbK&@#_62;*F0;v| z-Sr1l`+Ixs#{TkUPM@(l*mxWhtdoSlLV zu66WVWGLVeT869^R^!b^-2SQh_onS*{=q~`(Sz{NlU4~U>PuzIZP>;J%800bX8<{< zpIZT^*-4Gk6~2g?f*6pJ^lg|fcR!fCCx zgMAo%2}Bloy4=DvY#`DkF3r$>h|uXhq|FoFPodeD19Xp^t7)N@KRQ#WQ@bmA+1P;9 z=h_om{uM|vbg?x1m6WvSGyn>!qX3HIns7!FJ{EzW>~M_&4_=F(O!MSde6e;#R@;lR zUmctb3|6d1`grMog8bJGK}b8Ve(G%CJxVG+cnD^dG|5Y((*^Ol$hz>RbNGgF@wUoU zS9X0LCy&tb9Y&fTEe-$`Tdor2m-#J0oUnFvZ&Y04{E09x=tymUp+=pi%H*UJhQ-&% zJp`LC%F6(po<-W@SwxP8n1UQ($HnPr>Z0kytDA%o{j;7;MFKaE#(0iZA&Pq#8Me)V z+h$H!w}Z|xpy^;%HOOn;r`_hn-lY^BQfsh5DVx8=)LDA;vaEP0-*Ek2^JeviE%kS! zW)iAs_mK6gX!@Gqr7(c+J=PohhIS8-NA$C%?djklGE1n{@3J%@mR!%%DQ`;s&9kQv zP}h!oLe+KFwEz#^B21t>_2!5*hL7r5>B1Uw1HjSaByxdZ#RO{O$71dhYEq1L=&%16 zT(6NmGiq~F(CSP1IO&mYXDP}G$ZkzSDOI_enWvBJ%q43|D%zn95tQO3-OJaF*5g~L zu++?LteM_d#avH=%nxPr`c~j|vDDf|hpRCcr<-)iP8ssOGd+FToD$}GIuix{QT01F zl&5PHOq!PrRTl>Ql%^6};Qrv1X$7pGOeHXPBiz?DMzB{eZ_M#JHj9V6uNIO-HbQf)^CAx|oAVSVmjkMMpbKX1|n zFu6|c(FTrc37)1b_OU{CF?5-ME)3+b8DDp_e>CE{{o9zrdlL}eY22m3Y{BVSsVAVn zfZ*O+I9UIPO~SA_YNXOnT@#2d8iD!!$^WCDpc(9;q!Kl==ZGHdBUo1Os1i7D;u-O4 zk5M&{9lkzZopB}FUH@7qwh3($O9lh#b^6M%jqBQg6QA#p7XuZ+$7w3%K))?*pyd-; z*X-p_CX|={w;}yS{v?mQ#?ONT~DY%Nnc;QU}8HPF!%xeR_h;jwx5K}(H_VI z-Le*$nV*-lM+f9^)%WIL<#2`xKgr<~M(5cg!1_%KHqY`$ruY73fCt! zB%xkK*(!9|j0^wW@K=$KrYZEV^^|92r-+$2e7#QFSh8fyj6#_Ba&(?u>rZ%4UhY#M zz38|rESGJxdyC7+ktr%UPF}O=B}-|{Xspb-$#`~DT{g3J`C|va4_}W++Zq6;pw8Iy zbutPayHv?}D?emTlv3+>;tiE!MgLSD&Hb%BdR@gcH>Ak|OOuq?Z5`2)(izvYy_4EI z$L>AmkYJznC~C#&gPy1Rv4z~c`2}2#<5G!YpbPljg!eaXy6X1UH-|b$Lu168o52bN z!6`?x$Ly{StV8!9dJm=}#!I5Rqx3cGpA8g2Gbk42{GizP0h9kPw={qd=4A7N^-CJV!cw6aKgjStuGD`l%1Qfj}tS zm=g$2KtYPC<~+Vl?{r#UU~56w6#v(fjq$O2oL1j^dDX3(Hk;A-6Lo|W%-Z3P_s~DQ8=qf-~Tg(n@5W zS0LIA zFfF6a_gqk&rqPwGi&`L<1VntpN1HO%ObQU9S=59JNoD2DVr*)ArkUP+U6J#wWypDbpk4^bmtcbJu$g0{=lzsN4HYjh3_ zcASf2$;^voMX%BeE9a#@=JR|z^T{}kYQqG8c$@?KZ>Ug3Jj}B7c?|3aOy?IJZH?xZ za8P%?>g|VO?gm;(V0-yhn%`FH0zE*IcgZ3anrA+^=MfBHaarOdd8*QgLefs;{cCR^EGqS1vX+(=p-nv(YJhq-b^b>hE0#) z2@uUXd$9xY)7l@e=}KG9NjS%FF12APsL(si9g*$bsFFmNDk&Q=IOUY$iB7I9!`7^c zqha0{MAw^Y-=4itlVp;}A z7}X1Nv1`5`DWu5tt0D&Qi#j0tb7oz#7B8G8=hEH5!$kD`b!;x?lxB5|Ri{lIQC zB^G0ExLAelULPLkeopk*gVz!L_w7SS6KMh!hy79a2rf z$nN?QvsGjAN8=HI@kv0e9e(UDTqPDs*B1x)`{IvHTvuJVZD|!{E^H8ZJ?%B(pv*#? za5GNf4;7g1&x<`n9H)t6TR)j9zm&m zie7T-ICpbf&7h;4thT;iF62)u&$BV~r5LkR%uv(g@w*L6l|-!4B|d_4Cx#QVF3Wbt zN)WG$wqzL|B@crx97yl|%-Q~=<2Ms$F8C~#)T(8plZp$iqybdHZ zKPemQ2CW!5*?{C<0yVSA8A}UwyH#`#ZBS^&sFo<+4Q8%e7*%O~S;kR(NB=-EwobL- zHPEn}2z!psS!GTN3>S>|aHNA3GLiR8QK_r~p-xM?<-PtygfGppyzR z5VGjAW07<4%~@V6c zhSoSlF|~xe2cHagi0{~A4VWo9v6X3dGilUZw5ixLpzvP}PS%d@PJ9>tSJtjNDynda zV<4hD5fKmsQ5q>JVOa!GLXePL8YQJ;=~NUX7in2ix{;6$rCC~HsRgN}m(C^L1&i13 zo%7D&AI|RHJ2T(R_x)z>%6OWnzR6Q0zz82W!fVZy zo6+9CbasS7(bBxOfOg47N)2kGD-_;t%_dSRZ+b2vpv+lo(;a9nE)|s{q~86Nfw06j))}vk0v{adRnEreeshRf zEuvAuQpTATye1h$-X|>=wfCuhmTZN0g{DMFf>8U)u!kv=n(E_e%F4VUOv754vKmN# zr(lZ)8K-oV7{t5HNLF~?LIpu>;iOO~MsaT>HIj&a-v35y+XzSr5xukvo0rpJKNSuyx$;x)CC;-29@o&k5OG0&QSa;m7gBs z8#psVE0UJUx5d|xl+@I8CGO40UvL~4$o{bWYF;{x@4+fJV ztmu_KUmj>M;7?z$F0_AlBx5?h3`B#JLR3nf`R{Nz{U~hF4-*~ez!sOB_nu9Ec4)h@ z)_lhKC7kS&f2-9qcsl#k>7eA8TB0QW(xb>-ml;n}5utV6b;U$q|Pe_6Z# z5L(Bst{0+~12outFAm-auWGNH@0R8_V)e+=sI|MEfIYx-aluAENzA`fX9jt~(DD7zVS*7EJCuxA!_2xD*^ z0IfgdZwmGJO%Y*W3z46sHC1%@hLV(~3^9C?@q=SXE|qMW9DB(cV+Kv3)U(PovPqEc zKZF<)ciKGd7^g{8Eac!0H!WrJ4gZqn{NQ@F>Xct-_E?~?B}nd4oJs!WnP;)WJ)QDZ zs5;!_uhkIScv0k>T~X z92t`4$zzh+R`Z4^$@W>pjF+O(irMOQbJ~RTOJeqzHOX@CZ&++>O~Q+=c=7A&{H5+W zW%^icpc0RwY~;PqQLg%Rr0X+Kk7$3t*Yja1KGq@{`{oV21_c!1uY263=|9%&xso|= z5_2lYZ|I-R@b@M7pb&k*-f*K;?ry#yn?iY@*~;psvESXN_*y#iL+-EVMxO~vg~*OU zj>d)`Uq7Z>!%bH+V36U=CNh!LJ%;`i$>GY#;+vWtr5Uz*Hreajgsw~A?fa6_H?LeX z9-$kud@+J2=Pa6BV~F8A}^LTKv?-uYp_zQ@~$V%bRgn`be$hm?#VPsoPUWDwkbL zpFbt|>_5Gs!Dlz7R%gxt4+HU|o(Skg5QmtB(1q?Fbs6QCkUiT|5!OUKKJy<->|a!O z1cW-A%N}P`KzS7*+((Q6I;PDrEI7f(0+Y%xzx!#bpS>FwKDMmUL^DPeFs4BoOHBPl z(llRYe&#Bxin~&EuR@EEc*Z+7<#(xlw^-k=itvhst6xU_RD$0Rs1G5`{I0Z}e><{@ z6YHV!3+q3p`hCh=zMgQC`B)+HOb(I=;tNtRX1v}Dgt{uRhydR&+?RUcNz4@7(vjgq zbumK-$OJi_%gT8Y6&AI!SszCQF1s}E)S+Rs0uwkxT$}uuhF`9BCqYurtv<8kO~BaC zyd%BLyFsj2)`rKiwOBeo`MPvVn)-~DWUE=)jgX1QjfDLjCyOD~Xy4dNUa|4ju-Jt< zb~qg%*O*i=hW}>Q;1z7p-n*9I&iO{**IB75^BYpuo}Zm=ipM?Xq=VmWvZ=LMeyB)s zHROGGq~km=HMsi38bM2QZ;teYTCLR0aII0IC(dhC9<#JWR#VcB8htHyPfiP^=2pS% zj3#l3E!!#8hx(D2ei-T0P~H9pECP9lk9no0Zdi1-i*GlaR83Rv?+WZTj?Y5%ZvN8( zdopT(gRlSBp`rMv(}3xWz$V9BCt!YZV+3<6eruJQY{n-Nl~ed#n)?TSpD3E5UseIz zbpIVC9Cu#1>Pwqe&vxb^Q>(_Xo*b7K!R?{a9k%6zA!W^uablWgTK24FqC~>7HH6l1 zUOrp4C1z5i^ko~XXR=Y>w$t|dE`f%Qx27}x8kwAw@6~tJW+;E3@W#!*0dD}#Qd4~7 zt@l6^@Y9xun2h|Gu4j7Xn3RdKhbkHZTi%`29r(}W`|;n9sD7P$+iF#1lePK}`<`tZxjT%X}iuc?fCHjta~O+Wv2w8{R-HXfay z-J0wK+9ud(dA$t3=+-`~jC#(T5~^o3KeO6IBXL2xh+OdpyN2gab`8^(TKVbhO7Bb1 z8G#pQI_GkHlh2vp=wS;E*YLG60Gvb1LtCDrY>&wEGC&PBwQbDFf5{O-)GyLNV)Sh) z#5?A7lny>ARiuyGZwIk1AWL1Z&_f-dl-rq%E;%RO-bgUbjumN`D|6uzB(W18x3^`S z`di-N2&)Hy)?W|%xYQ>VepQLQPxnx>v?^W@Seuya{K>}|EXr-bd}otwj;^YnhfZ9n zV*8O@H1o2&lVs>M7i?@}5mle`%jHCwIQ==w&bJGlIh>pQXm;>7_OviwMu~9#r53X+ zrHI}bUFH|<3oq!o{iVnIB~>CzsdzGoc0bobl^8S3+%XN{KrHUFxAS>EQaR*9iadZL zaZ&dcx!39`NL9I8x3#|=V!g!^TN+>9U-+f%mYBB0?6GjweU6c3_$I>DHJtFW)D_=(SR!to%2mz9p=zGB9&of&j5C~xcA}c`XaT4f7bnG9hl8W*y6_fPn+F3-z(3= zQO17#r)_hBYAzNTowdI|voZ>;Mmo>=$3&kd|D!SOHG1(YlOfq>V8H1fDaRB(R?NMlWGl``hppWMP=aQ%UiF z>tb756)`R1MkVnAN(GMSQWsDA!nI`kPZ#o@uf!}m;u>itt7^S43{EO-jBu#^0o(cs zGK2#MZyA=fk1yC9%BfJ){H5VCyY5LsE#8;PL#+Pq-jOjfQsgMuA8xdAuJeGngBS70 z38)6Pg{<{#rsPh_sKi@HhaqJ*5pJ7Dc*0>>AvU$z^o5FQQgB^WJtjIfM&QA}b2dq5 z>;M}VX#)6fD(elFe=6(h_Mg13YYUWdbFA@@7?Oel<(4~6k^|MaJN9M!G}0%ub614= zs8N1@UXansLrn3nUy;!&aK>4T6o5EvCIX7bymOZ2VIhwie(=t<{Nrme`a?c%z}wvK zo6JX-gzIK#Xp>2u0iifkV*e7v5)^IL!7UwvEPTVuKVsLGJ<;YbsO%LbCOgTlE{;A% zl?@XFEDlk}FUMf`w^ebHKL8;a2j#x+q;$-1Wj@R%k4;eE|mU;M_lTZ zBv-dAz8ZEHb)+EGG(v)Bt=wRqNc^y;6FG_Mpm51(qs z1dccf6-$j%Etfc7=9=ftFQ2Mm;P6waRhhp&wJ+kN(Povfof_Q0`ECo`4uG%*DHGN*;25+{`;2H74S>mYZ!KU%p!@c52*j_+6uOqg~v*j)Uh^Of6| zlK@?qj&(r*&*rJEXx{x1D3@358XypE2p|wr1ej0x@Gn(m04TlQ#h#YeR3btIkZ2r` zs9}@nw4rtXf2(u){Zy}djtzJEV6+kd^h%_82u^0f`C}@!^<0OeHOoV^rMgqc*`guL z7hrDl^xr3q;*Fw>XQwU=oP>XKUG@`i`w~9hZt1?R7xWucE0I<2EAA{?I<&j3edy_egU@1bpjC&NLn zSk6%&Vkk?INPG<1?!?#G@&EO;PNwoo=`;uM2!vW=nlaJ7J^SV{CH zlqEgzmqq*z755m?Y_+Ff`jvHrI`9K4(ZVjnQF9~sug;!IV8sgnI)zD zY2a_}J1)qDIJe2h8Fw8E<(=xzD(lI?JQs+C$W6M|h4T*U$A|0Dfu+Z{8nAn-oZAfd z(RAn0vnyKHonOy6FHvut!+AyYceaC49||}*WF9dnJ0|Y+Ly0%fm;$ncatQb4nlH1r z&fV9!EvG8Md*%71u@tZctO#Q!v3ij*|XJSh%QIp}H$KFSmuPiqCAeei< zIm3zRCnldX-h84cvmH`93|i33BR&a0D+AS?6{MTbO;?45v+>yS)wB-DA;H3URTdto z947}IdU`k*($2Cu4)?|`R#HEyKWD@$YX!!Vkl z-S=)Q>hQ=Zyye1W4T|CKmktik{R}Nu*PW--lYT)aC`OQ5=1sRnO4q~Iz>TQR?pb@Y zr@37o3ilh*2HoLYA6464>T*V3jPi1c#dIuYY;Gr(zN=Q8jw0K(7%xUwprtz9Q47T+ z#BXRG9BeQ^m<(^^RH#mWdR~^U+m^#RcdhF%KPPDzI_)a{5&s~VFvwkc-aI@r_l!8O zpg~oK#IVCH=;$8b(QJu3l5lL_ujycKSZ6N+={hCsKI3p0eKdBYJ;YbJ`tGP{SqP!m zai;2v?R4bTvp4}ST|w@fu~1Bo!w122caXGH3d0dtmqGc4z5T9%30Cpp`Z;kse=1X< z7uSmz;IU28d(${l_&Y&|$6PVm7*Wwvsa5w@^M$IlJr$=} z7k9cN%hU4nJRU;QwqRzA*X(vg35rvisiemBYKDWLBf|DC_foGXc%UT?smHMNN0Bw_ zoAI0eO~N!YYjZ|r*nXg?>wz{DZyFWJ>;74e6eN4 zD|QujBMW8?IQ6|ujm4M9TV3#U7D#NG5&zipwD$a`KS0W2TmzxUG-KO@qV=ki;f;@>CHwU*hlibqei+AA$FLTj#4J6{q9EiS0H?FO#y6Q)@#PH*tRMvaQsI z-_lApzFMr5u?w}qggs@2ovzSq%4IWCY_#-^aFyl=%H+t|rWMK-1Yq;4f=#bDUYl$E zP(83gqL9I>`{C0L#d>lQzKP=XU=6iz^v_YKMSHFXIr8Zv7W1&2<*D1Lrmr~fJQUuW z#U9S^9lY_tT8^zPEMxl}_9t~5hvlkfs1FKd9o)xS^4ur4j{;)84_9L)Y9<1Y29i3? zRedP{j_8GqYN(2k37vNf_i|)ia&@nM+(ldRVVH<1SGxH6xkj__GV_j46QRLL{~ISiJF z#rv`2_A9#0jJWe;Ts=|FZ&mgI{3W=wb)d0Hu>{y|Pki))MPUR<_P!=O^=WT^+}1%^ zJa}DF&uNkO*DB@^dh9|mD|Kc^-P{i7gb(MvgS#2~<)I%0=N6gX3{RQdl~&yq84G(S z@Zft&b8=o~P7mZsO25yG+M-7(sZWynD<4@HNJhT0b0{2cc?m_iOSrU3e5cKVdiSJf zpAjdBf8{M&Rar--v(OP~^_H zuoi)C>Mwh=?Dq38dFc-9yPCodJ9B;1(|0>>N*{Y@l3eyA;in7~BOyi9*H?*arB{_e zeRu~O)rDbe)Q|G8-c{iBa12yK{R5!-;sb;ro=I}gE z&D*Ou&+CCX^Kd@Yi&9n+%TI5@#)n-uWjt2R%XZJ`8OE*;$BZk*KP5(;4<$E@6u(pe z%)=gSNQ#OmaVHBDU-^l^)V7(Sd%-zIL;EnfhQs$895gY$LQlVr;uQ#yRdMhH9>v`Ws&fHN~dX0XDI4j zTgy!89Al?-eVuNyKVz6O!%UE`SnbQ=L4>a|^}XeL09sgC6u97Ey%$_X#Eco5Eru<_ zeRs1;%=rh49ufII^6eI_>+tfV3f9y*4$vTT)SwI>U+Lq%!?u;#rsPqt?x-@}FA)l_ zNNe^?gAND4hYfu0W5WB#A$hZUo4R^)sb*z5Xn(5tmfMD_!OK6JPQS1TPzMOe;f;Ub z7{Byrn5HfwT~^`S{wq$67e&RS3qmafz{rpsYUEk!{Vl|spU0!d&I%sn`cKS$1HUWs z%+D*T(bC|BPSJ&sMlrt#k&lp~Wgs8k`otTR@Cew%#PGZB^2MZ7@01biaR0v81^w*b z@V~U^?1|HTw~di`g?XZ2+{N10cZ1H3eE7>J_zkj{uKicRDi7*e;BEAzsirbKY!H(7 z5K7&qP2za)&urpVfZfcOs%lv)zC7Ycl~?HF039*@H#y19r7OVjN$uw&oyY8p=NeNE z=%8K}oF|^EN&Y_nZ_=OdnN~|j$oH4AudI!QTQomv1f164bP99(;j$l)w*2VNc)ooq zXL*Z3)6;QW0qU4^8{0=z><@MBoJugi-+hha=5;Eae3fu0HQM2)NO-Vy=d(p6N%m$g?UUB=$JxoRSc*2i0V3*wU5(r{I4 z*P1qoWtLcw*L<7^fkeB_w93m4QnE=ylznKlA4g5%^2;D?uiV{n)mg6A0STN5pQo`X zZ>_4n`+~yZ8S=(#Zbs6Aglii#iTvEMTY-flpGtK(%^cxJi zjH2B##{^1)u0&KRH<51ES?A@+K9h;Ga}Aq(jp>ULU4BU~wXVE+acK2wG+fH6AexK% zGyHGGWn<4O%hJr@o__hj&-BU0yh-7*D+s|Ho#Zu_c}c$BlnGjilQuV0b6CP+9qB4I z!uk$7pP%Fy7Wf(i7bw?`LmpLe=Xo?OjU+kpsT8t^oCABz4`B9Gl^1BnOOX)95v;zs z%FRJiR;XZC)%F8151DCgLSOcj-Au>xOO8G=GW7g|GEoR;(x5;`UK(h@8~a+yCyN zVV{?$C1?klFa!zCBfFD8p7Kpv@YfzEEJUx>*Sjkn)T|XuS_P|U zB?`3jgzCcvO3L`SrukL3RH!t137e{_1w?qY`d2IBdj}uLxxdbHKphE!3$Sr}&o@S~ zVPxVk>A!W0)PlGMJzDL+=9tBV*n1MGEkW3UnY%VR^6gqMe&M|F77oY#bA+SYy<{dn zx!ZzjrqA+h1Pb%AVk86s`aib?=V_0b9nIA9-#b~K^wd@XA;jv#?Rn`$hoWnLyDn-Y4#2XIIo%eETibVu-#Z&cIf#;T zkBjv=_MPgdMu)v*wtap)fRSB|5Kj9&x0L?Yx0SvnY zPd|P~FmodJhErpPJ!8~_{f{WcG)GpUH+8n)dH$o#WkkX~dq(%LFZ>2-9n|-;Uycb+ zg3?Vl<|)vQ=cnrf%3&c|UDnu?vg)>^UL{$ARZ%sU;~L+MDvq}ba}Ibl*8DFOyYM?Q z8aK6#o3!i`nR{HGsc~PcWgbJC$?HH^l2_f0#z0BZI$2Q`0yJZKOJIwpC``ECm{#y& zDP=UVS)44gKz3K{5fPF(nk&eUT`i1CM*ad-WL}oxs#T<4sZ9)JgI)rZhFusQ+9`|} zQ_pxjSeEvFm@?Rsq)kLC34*-WM9b8avKSQdSOuy+NDp<3lE}!2xiR4zlavtq>@I5h z^_8KR)KX~Xs!Mz}?GSsPERO*^H=7)Pyq=~mu{xKOCYE@&gWOOrdtN}wUZiO$61~S2q@W1mtS1IZ zh=7e;55|%VMvgqOwreeA8c|x-^fOsYql`5x)+kecKH58!^rH2KFJxi4isAjWF*f2+ z)hgU5ThZ#KA%_tdH;SdHx`JlV8g!p=KrlAfAhxTC$|1IZc|CnLL~OA8xKpL#{5 z(w_}cVWU1O!b^e>X-UXLNr*+VB4DXZZ(yy+zO|z0@!3pDMhR;|g4dswY?5|?_>Hp{ z;Uy`eK9ReXWc=r!Z-v zhNL;4Sgs~?Td82CEuB4jebH5%@wnY6#_0rsMrN%v%JbS4D_Gq1B^3c~Trhpzh; za0P`hCpz*_({B!R$kp$dH5fg=7nAzdI{Dd*`V5SOfd*4_edJi3sUkTFbt{xDT~Y=h;FM2UK7h9rW=cmL z9eg?G_E|5Kx-fk%AG5}!L#yjgsip)?g@+?OKJvG+wu;xwJS{3dW#6xt3f{m=D*`^MyPij?6=aUkvN24ET8N~Xk?3}&qSw4C|$9CI4P0Lb&fFzPy zM1sb`OCAEo09HSx0Rn=n7O=@`L!*dR8!>o_AIoJrregB-wAp#`Jgt{P*A07;W2r?5 zBSC`@1B5Pe?VpSPkv~#IOCp?hA~p9#Hwn7blQX%g1GrOR+r7 z!&@rn=A~sXyh{bLw+*+<;QL>^CEEq9uBBb$ojg2VXjces8xMp+Vk)Dz%!AhvNOu&A z4tBFUD@$t5Vss@)dsQ(;y4piFboU+4%z&?ST8q5wd4rAs`DsFTSr!+nZn! z;4smrX=qy+{q_d0U9C6~uQJ_e^Yzt`ee|rDK$C1h2y+^NKyDUfTI}wGr#wQIZh^wH zw8GVn2y~xUO9t)91t#Kn7p8{_*q4{JbsC*j=)u*hu{B%M^MR*O<0tvN885AFH&Mz^ z@UrNWl>aE1!UKxE&D%RfqXyYTSc{~ESHWCG_X=>+26dmae%bA?9w8DYT*#7`Q%9E~ zTl|`@TSr3mF*XJ5RW`jO)zJoSQEoa0vOe;PjAqy66~%OE{TwBQC^^1?>~+IfZyDHi zS!-3@M@?t>H|J-}nQ)PX4f;BQk|`Gqr-Ez}Ti3-S;q0?}DS+EN z?qxlAazl)gplLJI*x~Tp=yXLGbWt>w5}Pj=&8-*aJk2Ch-Gk7U=)i7zjLjo!#Ado; zr_-MTy~pgihI|>MyPg$1E55OGWHfL)9t|D|*#V}+RKKvGZS_hQ%{_)oyO&PeG9~}k z^e(iSIjIKA0A<)y=T{|6KakJuYlDBIasR>an=! zDmkZdH#xU1MBZn0E$Z$3PUZT7?6xY|Pp?=MWyx(dAz5`43-atYQWixEat{*&K6F6H zg7p-8`t;eE3W--0+}NAS$#;`tX6K#z7HQzJTCvZVn&8jp2BzNGrW?*l)G|#x=g+ka zUEbr0w1LGo+rnd1Tu zgv+u^X}H7$1*e$?WX65U%`oA_h2Y%OHhcifL86FtdwcP3iuEc54*>b(H?8d%T$Wi% zFsBr0kQR8hG*>&EEW_urI5Rjn+w|fDX07k8{u4hF#NxZkmy8qB?`^W9gM|^k>`{|f zGUq&Vbp-D3a*DREuvJE6nu<~q%&dB;n(_AU-uYfWH_9agv!P*v8U{$^HPX#(6^2#8 zW_gWI$-VYA?Lqo+0GdWkYBRFXDAsFr1ZQM{r)y;>9_ z6^IidyF)SU^RDSCc3J_IVp?B?v&$(3qu;SIGufNxG1|)<=k$l)=S|8s^3?_r6@g?{ z=dZ(>bVm#r;aoD1{(!euy1_31%pVv&`4c~dWh6LHXTepn1}jo&?$E-&s-bV5m@Q(xcVp#- z?wAN;=~JYSMnD90(v+$vK~rjKo-8yqkK$Hgy0IcR!Z~6#oLD5f=X##(xFc)hNw#Eb z(Ej8iBPsL3`4R2>@T9DojX~$!H~mge&5=>N>aA_<)v(_%-@Rillxmr#CFcE`DjcnT z-#on4e3!z4myKIg0ZH%0s$JYZD~@{lM7G>d3CFhyn@orf{_as?bq^C+p{atFl#mT5 z=-HKg`^DAw{AUNjC^VrnM<^Nb_x(U;(Hyib!YX&%w>5uv6|RN zD50=>jA4_lkvWglVztleS8rUl}_SN2u2| zj^A?**P%sHv{-H=*-Kdlk-{Vy2@Nu)LPE$gb~EQFrD$Z&ShKG)p~5iZ$TEz5UxzGX zHyYa*GsFF*MRfhwH5!Zo)XmwTej7= z$$g}eaf4@hL}Hvk9Ht+Eg!@5z2=jRk#A0p3M3M1eu=gvj6fdqRWMzxmHKFkzmQUJ) zd6@}^$ZRj`Ew}AlW&QOYOe+zmEM1?MFR1!5FJD5_f4H!5z#`Jlu@yfv zxNC~HI9H$q@Rq2taSb4|)qB7)L8X3yClc}AeTNdqvusFZ6|omYJraN?D;E}=(SBiI z5N#XsSk#dW4UyBs2?lLEhS^oLt-Oh{67s#tI~MhXT9Et~FPx}UtUJx;kr?)_d^afj z!T=RxI@IzSr^xStTRR%n;N2co+0v}aAk*c2rGb$hb7`%O>&a3IjCgXaJVx@{rAnhT z^bj4;qAeKD(W6Yo#dIv0j_&m)7J{%Y7r{a;C%;)KjS%gayw&bq4^w3V2V5a&@{}00 zVo|dekt_q}#U3I+zVy{0UQMW`S=z@ph?~2=C+G!mr1Eq z9Ec#>J_|zlhXtnK!sK(j(5*1Y$4V#!qi@W;b_BTdImafSUMwgb?%qpKva}?W44)T; z3D57H@G~a`YL!Wl4Jw4BjVMj%wcTJ@PCD+|)i9Z36scI=hM-)s)m=V`G3>CV_{Uhh1F z06iqlOz<^Iq?l=V!LY~U2>Y1}(e6Jm_Nr{EW!>?bbENEC>bn-X;FoL$j=2GeXrhA$ zPuyLPp;}K1$m_}h^kK2xUY?ajsYjZssOD!OCD&%3df^z|##!kL?xH$kC;6ML6=U7w zZbBIv8JH1jH?(n9oH@n`n%s( z4>407j^K1Rw=Sl{-LBbB>r=j^2LnQz*Q%d>^TAQNrIx-`7 z6YZo^eSsJ4s*0ZAWl5U1dYF~g9y{72QTb4krV3)d;FNMpC$=XA_;0Tus!PpI9ImbA zX{UfMB}}}-e&>f9Y1*ReD#%8owCkEAryZ+yt`_dZ3ROpQ*~n-Cf{hFvY|2L zA(xvi>4i?o%P9;wKN=Ob=qy*BUU)cp<(gGnwg^y;3nXFC>Uo7p^!7#P^W>2irexbQ&v(h~L@Z?A_<-keNQL8BfoC?^g`zGN3kT-OAP9pW&_suGrxpfeIm<;HsV3FRw zHg$h!xak;Ve-yLGW<1CC0Ce=Iw<`oM+yf2!!<(F}~#*FD30DPo|&w zyD5!@51EBtlM7?leC(&ID!e2Pt2lV}p3Gec3(oadlvWq}ZYm^b!0SztgA5Zt)?*?Y zgTg`n!mTM&eCP74_oqZ>ZK^Ix^tnm}Z3GnHVBAK^#&ta|RjF_@f15@wIvI~{1^HxP zuzZb=!4lX)BQIDrpS;{>$Fc_-AX5k8Sl4=E5$%qM==aH9-y(z#;g0WVsZ}*1_!JFVf3fI< zy%hl4K<~^oSq&~zoxo&gMe66XZzBeKz3X*hl>MQ@eUo?8*>B2{RP|%0wpBNrD^Snx zY5frFj)Phsh{#!@y^UQ;z7_EC&BJ~7x|}9hC+=sr^1jqO){q$@nwvj>#^M9z1@-lMAbN(nbU`|;ZKdX6@6hU&*nWYe z{!GkR=_H<9o)0y)2rn@;CO~{f%W>ZJ?InVJ-WKPcX&&}~xl)C^Ekf2rWeO`}pJYB& zjDCN`=()07#LK-n?-!w3rbn0}TS3p7j+mn5B^LS~H^6iUqU-=+XTnEhpidC=@YDv; zUg*wMrvu|q!fBD%(4QC6zxlq`1q}VyeM)d6)uqf-CV%$3NCi7c2Wn^{-whK~)mok> zP!|{0BJTPNik8g(W?=@EI*Tm~N(u<}Qn(zLPAY%`e@&5VlFVF4tKCkk{}}c2g0oiw zjvU*-|N1|O5<9hHiRc!QlJ(aJfPby1`%?AG*g>{-Hsj|So=|wf`-2*l7pWr#Mm(x~rqZZg7re=RhrNHZGJ+VhXFqdUPUWbO4R* z%3!xeV(Fnn3P{jgiJR;YROM1XOpFRBS5cDT&h6%FlF{!LZ;%`WJUUA;1Nk`vhlrsc zkGX*9-LdW`EyCE3$$pkxDW7k!@EXz&JT7?JFL?H#gB=Y*oiO^gpi<9t+M4}P$$)S* zVUHH)zI(N+nbC(fMgrL@3Ez?#^eRlj)84c#(b=|jao5&W!Ae>~?yWGUI5Q5wUBc4^ zlbztuS<7lKTpLKa&~IYU_ksDF9IHdIl5#xTC+Z|0#^~IV7WE$$L_EU__!~OlCJQo? ze{L*Dz6-ClY;3xJ+?1S{+68hDodsXXvU-2u_^>jqx4h}(w)^Z6sPyb9{jd6DoM5!- zvU}^7-+~m@9hm3Czsjg&J62d5Xw3bQ7W&gCHxYD7nEFF25X2BIxD@&Hf#%DEoS>1s zE7Q--8tWwHxEzNE`au5iSF#CJ!a)kX&wy3Nla&JNDwSSTd)iYk!|nXITvt^dpYR_g zX+ys|F!x9sr`qfEU?fjkuF$Oyho|qPZhCbx)&nv&bU}=bkjw_%eW4E4O`Yhk%YGff zXXk+^#r;E6J+(yM^X3kP$x6_?ckz|z*({<#ea^N(1hC{ipRgB16SBi@_a%nJXQ?D4 z**;mb2s(Xn#Iza+&-<~QCjQ)r=lVcv=sm8`>%NehBsfP=ZTW95PWZcv#nn7c8b<2e zQQW`Lc?M2rb(=K{yyrX4yQy$pLtPm$ZyoQMKKgYHeuhHXSr6+O&MPAkD zTR-usMlRUs1!BA=oxHuHH;Q@3ADIo?cxKHhqM9=3d=O=op} zA&u%Cw~`)oC*oCdX-nClh)04;yb!PKWKhB@a`x0jlpRU;cUL%&!w31wq>jU{lg{Wo%d^^!I`>lj7Ep3u`yLa$M11w^f-QQWk$rv4?5Pq}6$Sr54d3Q2ORz*6!OMe3k`~&0-%OcN&_WQ) zC`^(WD;^Coce+iyQr>Mre9~VmZw&%@k`<-yv_^v_6$j)M4x86A6;H+)k?JH#kY0J{ zF~~(pRIDIOnIvldZxlLX;$n*p8RR3;7Jut!!z)xY(rv~#@NerXJ#z;tb-A{RuU`A6u2 zohgs|k9LqTM=vI_tMDNOo!l!6M@N+J9q~9P(&F_I61fHvft>d%GB!3EOKpdFUhI#$=CxvD^Pr*sN4JMn zl!40(*>{0`ae*wyc*C&7WU?J11*YE&hfx$D{=6do&Mk%_=6u9*d5SAHOifw=6Su5 z`xO`L%ny52*)#W~TYsBv*XNM3ziYQhwiQ$*c*7Ew0@t{m?CQK->)6td-{yVz>VSWj zM*5AYs=y7eBfjS*--6Jo1VlpMB|WH`q_zt5F;OJa^Cl6<2OwQ>2*)HznrBUv%k2-=SOUiC1n zmG$Your-*fYy$c@7)W)ku;-E=8XyzR#O{u2^8~L_@;7JUV?QUdk7YcVZvon2kY5xf zKc3v_>e5MKg29QB2OB%w(a&+>gY0*=m`{?83C?Kb=9=YRa^&YJE0PH4xhk-u5fkXS zf}E-IH*@m;sUi>eD|+@ z+tSmg=Fl69E5VbiX8<)zxjfL-Ej~NiJ5NzXrMe9AYGFf@RJX#FZ}f#A=&T|3lLJPB zPj-%dExyv|t4(p;eRY{oXrlB1FU*t8lnW=0WiIIa_Iav&Ry} zveU5|LNG~bc?taRlI9RnPePaY=!EZufV#+v5J*{O7+hhKLX{elNysg9C+Eq)?GSPP zZGZ}>N=rVc)^cmU)#8*=M{S;r*Ip^oSV{%zh#cSP>AW0UX-zR)_v3%0X&HqWH0g3; z4myNSLnqn+=|I(Pw{=l;u+bbL#RPh->GLDTJp_PC>Kx!hqKl8&kt-jI zjkbzPHkV5l5T#Q{+bVB+Q0}30#F?@Dl~4?Nt4IWpc$7u2X~kgE*CefG6s@=MgF6Mlsg?&k;A?8S(&yG`ZH67VD1U!QkXK(3L?atn?d&x@i|ba<9GYba519L(5QbD zvI4L^Z>>L*FCvbZcQT{oy%OX@1n7ptlaCPZwC^wg>y3H6tVdg(L*Tu~D1a2}z?%zo21OCOwmDj2>$d>ij`9bN)w{ZFXHTf6IDEwm`}t1!~H0YT7{ z=Q}|H3F2*@ZP=Jc)r>DGLW?CUw+=RDEp)52(tjquIF1mNs!E^QGyu>JeoU!!qrSe=w5KJMx>NpxpF1halvV5@7kCa~8q_?jm-OjH1{KaENWa;Qc zaay-cf7F|<+BfDf{4)Z7r??DQD zx2Hx1P&$D&uD?fw00KI!EZ$q;K&1I+NJg>4e=&B4c5o zN$(pVKP*{X+ZSdfvLp&q_{+jVx}@0G0LUo-<^5ZrWqxS(k3O#c1>l{c*4Bpm9&SiClF^T50hJd%B_pfVS|WbpD@8uf6+w6I`GqA1QsA1+>L} zn-QO2*S&e-w(ST4xfz6DcdQ`10+AxZ5faLpViG+jl+{c9`jgfeK?$s>BaOY-Y6lR;#QF z?NBr;E0S45+Ff&c=~u*Abq2$z-sr*Zv~ZEgiy(BxabCP^M&V%zF_7XheS04*y_r{m zMd9@yE=ud!WO^S_JO(O#(}3j4BtCK8W*j0XuZ;P%R<`s?#8~}8)0=hkL;koumX&R- zZggiZ8KT!CIDWBYq*fU}P>P5_i-3kpr*17h4jMnXivU~WAWD|2f7;r9<1Alu>p{sCp9;#W)Wk1SRy$q-#DtB2?D&kny+ znKaeHczQl?Hn`%u%suB?-QiJtwmUK9qTXgkf{%&ew-0gGfmo7MqMx{GU*w^JJL@F# z9wcY2WeyxQ@POBK^*Om&tNVlmbsQy7$%wDHME&`^9cd0Uw>>*vL(UE1NGT(u! zm@Jp#bL;n$s1TRXl$(}szQ;^L?&BVTJI5n)M8KmFT(F~E7JH$-k60QuNI#UA77eks zRJ#eWG4k@j>E^tOoW2WGe&(vi_bL?@Gza@4W4w_I%g?Glou#>`<2Blh_mLp4#b-a? zt@MPs(h!|anT5u@m?ooF={MReo!1u@2A)j)OOTH_Y!+k~BhSVOg&0lT;(ZIQveLi< zXs+tM1iXgjnYn^eRh2Y4NxNs^%LtM!dOe&cE%-nnEf-bm&e>cE;;5m@4Xhq1;C$Ba zZ-r(u3VM}9IMEoi)@+Y9{HLS7Gm$%6nn;GP&X)w@I?5Brqpi(L0y;*M?g0p@-}Kps z;bEfuQP~Oi8CNVi|F$*gzj#eI-4|jBL~I`{7|L(XA7FNk0Q(go6D<#^&~hFZRYM2^ z3Ga&eIzHcJ`{3L_%L^{h^*OG&)#vB$=&ehpO}Q<|j_VZbm)AHDHBLf3GGy!)LxH!d*gsxRcO=3t}if^i$3zQgdoGIX*{S=VbQAv5O* z-XKI|v6y-Y*GWJJhAE6mxdI`;E{&BBLNsTfMH3HStaneKo&}_Bsa*L*5hW$%I*D3i zsGN&NZ5_qj-RhkD;ZHAM>Xxdayl|K*%T#yfL-Py1J*_fO!RQh;p|!{h5n_HSxtUj? z^+9OMKoc{}_7$QBMnkA<6cC?ehLn2VbrL(7lN^|~&W=QWj!9d8ue18zF^GLZ+pXn7 z;8J9W6zy<_UnA+#^6?J*?yn|(pJH^FsSvYk8-Y=3Li72VR%iU4tP*5^lbZ_^FWPcy zEH+S-ap+ERbenNQ96UZc6sKs_TOw(8rRjfvNKmVpcu;eh?U&u{7Wk?iil(H!1-A8s z!^a8A4#P`e?!rl>8`a<-VmL86HyBpb|$lJ*X8u}vCqTD#Sf548Dn z0yB@JL#)e^vj0TMM^NM`IPvPL*UK4Bpbi0-pjE1+%bJSx>8`c_7rp5_U0%2;v2G@1 zDu!ZLbI+~7i0L3>wY3nfFRH05^)$!|?P)e+>Paqbr>{y}kUu=?{h>5RP;1n9Bc8iX z;#Bfr=o5#Ys4of|)~yE)sM*6=0CF+=)F;{d9>0v_&V&8>qrDquaQrSPZ53d{!*^SA zcbbcDh^VCWP;-^m9|Ln4)G>2o0*rGccIDPR>TiRYtvn}l1aH=>_0DjK$94cLh=&c8 z@H1GKpqk+nQxojZ4^Qio7rdAd406`Ub2;7QRJ{|JGLTW+I-VpjlQRi$_|>FrB{%e` zi90H24IlgKbG>8hnm@Iex{7CRdd~TH7mRT<@`FK0tA{4-gMPgRPQuMVR7&sL_Nk(wAUL*L!h|if z?9ftrPy(MEPy9^DJ+f*2;(L91Z&HH&cw2APrL@OK-alK+F-C?}Q}ar#&OB6PdG>nW z1Y#i5N}}y*^%aH&?bJtgsidTray9Z&`{1zBJUeg>*8#dmT;^!3e{8br&}m`oeZ<_? zl0d|@b)qGEc*STr0WBf-03vxVu0Q-0P;O#G6O~=bz+m+D+)si0`HcBpiV?LX^&{i8 z!|lQnrQJgK{A>SD4S>H3{sjHPy8Oy}KBBzzi+%7Tl6i5h!`sfpQW+!@cQ0dnFeH9re}Yb#TAf z!d0_>nzf^mS6CBLca^b2ch`%mpXicz=nBeLd8;M1|J_0+@e63C9#s@BoK7;boCw}{gC zhQxhoEPc!#u4|?K(bK>xqOUK}^i;pi%wVFT!R<36)t>;^5mLEy?F*~u32?$UY+ssh zdSUAGY2YkaOY7O7Qo@2FOp?ak6lv-?iERKMRQm&BlQkwkLFv=E=UjGQezSIu z1u6|}pD>b5{W5KWTmfFA zE4C~?@~4ux+*9Etc#R9Pc}TrU=h=Ca;GHy1y)fs436c)g*=-nK%`oBQ@BsN_M<6|c zT_TLyEE5mPK<=l72ZmBFAC*rK<<)lNu?wZW+>rZcY=q_c6&s-ucbVh6j=P_Dc1blm zgD!A6RvXT5V*ojmW~2c@HaB0ahf+r}FxMO8orinPJ0Utow7(-eTkOSMf7CQ@$M(tH zWfY5m`obVC^N$X`ATVoog5f*QwI_d#+^+YO&@3_2%$D(k(+Pb*?y|1*92>9-Y4pbtI!|!8&V0CcvaKUz;M$FYm5DCvF;cY$pq&AlMlD$t^KQ{u05qb`$u1f~(MBFQ0AwXO%>L5<|-E*WeY3 zv8G3A)bX5jh4Kx#F2W{!pQrFEpO8fMO=+s-<^7}w^XIzvn4ssWd3z935;5!kh@5nY zYOahe0Ki#B{Bc|%V4yX@yh1HGw$rs1;>711<(n&A3OfzCh0N0#RYRaObn8bJM68P0e4^IHJjxd!jf_^uD168@;TSW=k!*xXsg_k3V88Z=^=3= zFt2Cw{N0Fe)LN%R<{lw-ICxu{(~RO2MiQ4v%*ZKn1xf+$G#RlVd*fn#+kgH0(DCRTF^>^}xcV!F%E98JC zAN}U9l)YU@(nMEkW-x;DVBJ%-z| zi=G!vmCmy6X6}V%K@elu#N;w6WyR^ugC(wqiKwS*9d}hZk8;w;?4NAwk9zOjdz0X* zCOSVN>bMZE8{XRL@5inKQABERx+?v51R`7YEkHK8G_4b7eEDEgqNm3mvJc)mNKXpC zfIxWeFTZfYK^lv0%82EZh6HPFQr-&+IXUzccwGFTE6lJtH5LD|Sa^mj@?|zaSw4K0 znZ6J26tiN6_?l_e-icQN8-GntFjC!G^>W_8rF|b5Djys*xB1(JoiaUFP_|Hi-^DrQ zOdk&=_7Zkr{>qn^$v3IVe>5NB$Bs!|>*YzMuj{AMBMd%ib@-8g5=V7#I=b|%FE2r% zOxrg}KHeL{WIr3xD18~012@ZOsme)OzFT{Fh#%P!4qq)(;>2b?7XxN|{l377>$OuI zeiQUGzuG{ZDQ3+UDUG4Dv$clYj;xv6=m?zfN=yBq-*!v(qpf8n&axnh_UeH;pIZa@ zzJ;vVx2wb5iYTHY3V?Cb5951TqvG4_gx%bM>c)k#<*O);3Y^p3Ve-k?_RWorIC0>j zFPOQt8m9zYmZ<{>Hcu_DW&lTLWk-koVw}Z;Tp3RZYjS*F!{XTqSKEcwth^B4c;TC^ zFjy^SQd}tPw5H*@!-ux4#FDGa;gvOESA_x+bIwXVU@myN&$-~qkvS<98WKIfS{9eV zZ@+UV?U1yY{_xc->D|O!)F(lW^W`TepH@7xLnveVk5dB`<$^KU=8p*Hr2Wk0`-~X| z7eu&MI6eHAChpXn9ZFkiL)vJv-l)~E6HzM`9qd4OR}!ad!@^|eB#J(ki`cg*e;yaV z9Mc@rm|043r6_jq`%8;}*+m0h!#s-WO5nniQ!{wz4q<-YDYv<|w~tpWyJ;$I`%@Zo1jmWYy}7q$W}}(*8pj}9 zjP|A?Hr-$&pkxvl=*1F+JzSRNtkI={P@NwXq^}Qkz-uScjOt35JQrYbcED6A>bIB` zt|ScKFr7cI>yKB*jLMwG^&Y)=vC_Q<(|nI1h0l(Qvj03$e!9lvEHFw!y<@13Oo(#N zy~w?BhWabIUNfJ)%4yH`-Z(^U(ZWr(`?~8b)mt!WA8_gNB6mQU@{J1%t$BxB6up-I zaFIN;5QsR6m+N2o%I*ph4M39<=j)M`=DzbMJd`dYBccU;i+7vePP}v(qHJJo%S&;K zmqOVEImX7^%K!xP4@~>cPE2JBq$_AFCUv_gw|M5)r^&fGoOut}Ouk9*=ghR#7ltx( zGYV2#Ng>u*{UR{iGG9}gn$XHA?aSF9TbjnVD*-tj1K-N;2%s~NgDfhVM*uu&5>|T34>lO5yI{S}MbXUz^yYzIvqO0n_8d z1z1GUjgS7J0#RnPYXjFhL3-!f>tTv=Ygv+D-pIg7ubO2OPG!{gBi1-^vTv7>5Y!&b z39&Q({_(#V#Z8S>xM-p{yAzSatY^F1{OI>nqQfpb9jG~8@wH|{!tmJ79W-c;WY=QO zB;NT0x+>r0S_krHd`ul*ilTk#Ic}ZZ@Ew->?xy=LdWB6}0bVBYn@YkjCQaAO8@q3} ztJTbF))*DLZ_l_xznm0f`ZP?VM#_Un9NGCw+j+S)mVH-x_er(SGzA005oyS|vYKfV zR6D@T#?Y2SweA$zzdyaN?VcjF@Iq$D0{Ar6Cnr2Au6a9YmUnzxA2^vdlQv7-nc}G% z{P6Nd+KwOL$Ep`vRiY+P#X6$UR2bCZ(r|`r?it2pX%f+3wBs)={3%d$=nR14Yp+Wa z=ho5~iEvhyBWHbu!|6}S-DK>x=xnK_trvBmb{tXLj%?=HBu5!88i2tI30h2*ycq;k z?J=T>enbJ9NEm`e`st zm^euXWN~rCUeA?}t&NgDcI9noOVQyoG2ha@dd~jRJ@g-M|3~!y zqhFRatIeeMpm;v*v}r?%*{km}3OL;XQ)^7#h*3fRvc!h-J<9O3OB6mJ9T;G=j^`r* zim(|b#3?@LW2w3!lS!Y@?t$`~5?j|~|22!fUxaOs;47I?Cbi!^PpCdwkdajST7VLp zDZ)dEcv`joac^u^;C`XWb~5Lyvunu*Lw_5ilnYNQOb1+%NM)P3Y$Xl8~t~7 zC*l5-l^q(--dQ)&q05p}PyOC-;sjn|B9U|ydD}*2<-2F z=;V;_7X@@$*VH$S-1Z4J^P)-Cgo6qLKQHCK_i;rTu?Nqg2_xptjct5pH_IO0^+t62 z$V%zZJ}kxImQ#Q6X>)@c*4!R`wWX^VOk28P9K0WK4$t<&NJhrEsiOK$8aW)Z*y9E!bbij@WN$xc?T*2b^7XT>*ar+>Ic(Yu`AFCvl=(iv6n$yYNy%@zL5Vq= z#*9WeYykgVr)OQ zwmp7{aK2O($kCzuD+P`M&!+BvUOArMsQG?{^JMqANd;p*axryxx&NH?GyYQ{=*0qi zm>pI7y?Qb>U*T-cNSFZvG3^~~m5_MUWFIPx5sET&KhIw?<1)?~V-T12?U3EsjqX81 zg~aXY>D{%TbhheNw&v3~(!0|X{@o26rvc8+*4gk!G1X9OYH;QPj=6!_-En8eyE8Lt zz9az0j)_^+xkC5&Y5SLKI76FSxZ4Qb(TU#k78Cu?l&ZRl7pqt7sqt_6@h5@mDS(^(5Ik;0R))NYQD9MmajS^)y z+9Zh1(4z6KYz6O9uX$jHO*lKdQ%N+|o0@H~4%G~f;dZmSacb?8J>~xP{AeL|)MZ{P zf6!rcL|y?cMa$>U)e^M2_S-@26|>zXHDr(E_(w_Nj5~2>9<_dIAfe$vG*hg3NzVq2 z*{pl!*5JfJaHaNGM|4P4VEnfu#>MNY!a+~To4mSTs$exNyP0Y=&TMP zcdB;WcfUmGtO>%I`S1-;8oNH13Jkfuc}jle6>_WQDzHr{F;8{mx|Dg$s*S#UvHUAjR~69KwnVX@ zMT)x?_gmZ@TC_L>m*P^~gSWU8cZ$2ayR|sM-Ccvr%YFX0zmhX2dsb%FTC;bHMcCg1 zkXoXKq%#jk)K0e6t!cjj=KsITuiB>y3ej5q4xw&3EN*$I?eaYm)Nd%qkM}E#@pi*hhE@6#%y&9yj1$>*O>qJVxpv>&gvr|Xb$lcc<1NOIJnzEQcGIgt2Wo@wd;w~ zdX=e&gIbRLSkP~jWfy!UQr^pc*&5=1+rby@3gM^PBAyeKoC0X{;6MD+r$VzXD)w)W zL>!TRtANheL#kse=s{fHH{D@7xDQs%ZYsZYLT4+TtAdnB^zA-Rl0?0w@<5fUZFFWY z*Qh(_f^77kl25G@Z1_;`--3_e%t#!LctN6KDt3FdWm0ryrR~r27+8!XlvXdd)U-Fy z?KpgUsrB;fft?qGdK#ND_ioZ#`2b4p$*~6-4Xj!5s8>^&5UAryi9e=I351lhQb~g5ZCj@Uj;mb0D z1PM2;@kaxw>fv-aS&0)3IgWlgWIcEjKeNISV4SE>SNY++OS8sn);JyXi~ zD{NFO;8GXQ=WPlmS}OFTl>#L#p_M{HjN72o*eI&4ZoXMT{2>_%3QBJBo*1-00ApUA zU3|(29AH|4UTJ}5aD%I=VhIn_1dmHo;V(D=X=OINu*3I#LZ%Cjy5@f^w%(423P{<5 zcwhzEU-*BC(1?8}cG-IT>Z-}B=u@xs5{P2YVI;UU{J1@WxrSI`0OzBl2*7o!MI4_` zy2t9%^;zFy7{ITQj;|fia#Y&P4+Jn}k&;%3zY}9pVdO~|36yobAPqX}s9J1tSf|hSyFISz>UsGyY5Z4 zcX(P>72_%+%kjz-{PX>ZX*Bk}2ci-#ORUEge2k4jcxMGT!#Dsn!DP1S@r4#bnu1_O zCglC$aSD!p?Tm&l*<0rl+07Rycn!wc&76l4kDME3Ij4Zatkx_+r2y$10;d2D(v)9h5~kaBU!4h!2b@Ko3Wv!%dUYu#C9j zg#R&>^Cvy#a#ImFyT7bT z#P5)%wBjr{rD~~J1vW?r8jBLOdbXHw!ueWMK=ltjq(F5L~R!pnb;^H8R z`Wpv47i+xk)CRWYizmq+)#|1%!LfCY&(Z^$n6B(=%FEX? z=?%qpkKN^T{Mv$Q3?Hf=#}&bT@E-t@2kb+&_?`Om>0X8(?`w*N6f=aJUw@e+VUmgX zK60TkDjg61MVQ97{#QV~adP zBs&=Q&5V?2=q(^f8TQQ?Ru=!_i*!IDkus``4P%asKci-i`Ir*#P1m>k)xIq9#|!Pv ztj)ZqRgQA$q2mZG>jB*(J3Cz@ZIJV@3FBlTobeJdemuHV4aXR^e91dzgAWvKW;$@V zPSHtt>c82_LkNfls-!OHZHs=6#3)6gQ$;AS%uGIkB!1TpvmahUnVN-_aE)E zwReF!Q8lcAKgBwx*>Y<`tIA1jFJ9=?s~9N%^&WV_n;IKq)pcc)dUkM`zc8sp$|uSB z@|D_F1ecP@(_%1X@-gIk-Nh%SB`YwV<_iL^L_5|MI?$*C$T?T=}I`x5d#e zKled8B6->^lK%TA1dx#!n2Ddgj6S^*zPyXytj7E^cgBj)!w`ldsGS-&M-qL>9wZZV zd+v`iYBlx_N+xf7t|(Sq zU~{7=iYbR=YdedPI%@U7_*Et$*+Ke&$+x)WY~MKrg}b$RQhukMof5T2-U}hjm)eWd zruDOhn(dJynRy#8^HdL>6TcN(MuIZ6=XGgul;Bh^eXP8}Aq;j~GX z^;uz6roM1q?C-Q-KfG8hjQ=t#*V zqM)(0UqJL8Dy!z&6=%ptzWhY^%Y7CcTdPzT9l0;42U|WeT6@;tVKXpSr-G3<$ZI`k zbMw)34Fnpl=}Ub5Fc{_S)DMM5F!CE(_$jTWyITVMp~Z|VOc~Vn(XS^3oCOvw%gkEb z7Zc-Y*M#+sv(Htl?DC*MTIWvv_BCh>x;9hq&a&G#YKX?j)7mW$`q`hN2-ou`e0PZ< zOxn4rM{Vx5Z!b4b;ECqD^!ci+kFD2{NV-aGMT-$y^Bsjcc1yJpgVnDRt&w7!AEJ9^ zEpT$aFquXO?BYTu`+HUb4n8sDFpZ9o2u;8)E`@(dh)q(-*`YkF)r+puH<{~6%UOHm zekYb%eoJffGZr;PVS3n3Jk`N|9m`rq`*3h-8v>^4EOb25` zhKe7hP8n%FE34xQ2kYn+v4T18a|RBCX~wX#U@MxiuGqjR!jBX3Qv9SAx*5=6*(Ylr4*pwM_o>_R8S10VU_XKZ_7XK1<9-chS2cl*#V5TNE1E zuDyWark&V+`T?eEJ3RRt-wx{zHm66uj~+WS+w@9V{0>vKK}eb4jI$p6KwTZ2xK~?k z=X<|pOMfu^`FWE7RdEC4UX)B^VKJI5X~;G!bPh@uS~@cHW?6?5?d zVVer|uF8Z{cz}dlm&`m-Xe_Qy8naFI$rp40C>Ik<-0638PGT_XVvrL1RL1xsLI^sY zy__Ej9dEV?@bMTf*>*^|zamRKu6L8r@JMXVP8i9YfYGDwL9E-X9DWwC)E6T4mx%rkDEM@H=;k{NW` z)g@}kPs4@1-D@z(883H>Rh=m+n;o?w?Di$xEe-=BuJQ?NM7Nh1r`^$TG$S>hFf+X> zR@HD4&??|l0EjyQLV}9-c`kdhxhJhL$`9EAB+>?xc|dsSn zU>_LG8b8}C@#0X~X0@u=RN(vJCZO#M<17gL!MY%nDpn65nt=XFoC$#u-m>y4%{KS7^^?s-FBgGM>^TNcZ-F_g)kXAB|Zj5wFL zOYTUcPDKW7%^zrIo-tZTA!lipVLz|UB&~jD=3OgpOG58TJn#10Dq4Ng^tpS9VDIGn zw$;C%<$c!qgm~BS7}~oVujp$!L?TGAex-CKSQQx)G3Yw?0L=u-gG>56rt zR}PY2^*M zaB2`4jyE;-3aq{G17|d8SxvTFCT>>z(OoVyERxAQXViMS1{n}*yu*LqtvdfY;i_EF zs@n^0qyZ=A&U~JDjTKO- z%Yx6AnmmWnqMk6S*1cU$vuMT|$@Hqft$WM!u0W>0M^zC|m%8phIIK1u%#~RPuR^wE z1(aIb=D6)hG%8ft*{Dfv2&5ce^K%I$5G?uW1mFvMuYN~0Zx~Nj#_YL_HE6D8G!p($ zQDXajde)=hsqI+&PR1zQ7+0HwU>G?3$(rzeyPjs5rCbNM8I4!(@E4+L6FDE%^6B~j ze0(LgYN;ZB$1o>X7>C2|Ga8<-BP0nhc z+T|pA##eQ9qEtE5iOcZk5rKlpJ9EDDLK+JswF7}1$H@O z{l6*j-lVqoz=H;`R41I6@o^;{xm#}NPzWVd%?=C8A0>4qadKWljAlP>-(LqY6y?}n z$fAV^D7K9Wgm899+LWkURMcjZg;2|DI7st81@!LIGglQtd{7aR7SN~i5z?xqk|vK( z0CP`&CwMvkl0;DsTu!VB>wJtqEADSCrqgJyspHH%*KX%b$NGH2;yA`-#z-IkM%En)yZntw?=)WC?Bt9Q{|}iF3ZJHjpLyC z`4_(k=kcJ%Zokt69B!BooqmZSS^=!GUdXOLKtnY~J%J~Sb%rie(s%1nQtIVNl7}ye zO<%XgX;&fjFUZ-dVE$jxku=-Ge1Ap1%|WY9UxteoBMQ>mTdQ9B2=j^*Ofost;s6C} zu*JfUeHo$4s}p|tXbREyeqNs6hoLB|+B5lm2y6#VrgK5OYH=W#W{)*@7dKu3-NO>3 zL2E)4jCZ*?COUB@W*RUkl2LL-?=a*MlrkE){?%lT-sr_0!IWnu813}Nfef#03!S%y zF8P(qn-6c6#Ea(F9JBZu9tRn>9n95qWbkaidQhZ&E)q+XsLP0$Q-Q%`93s}Govte< z8-U{8>Pg7e3q~@9W2x<%;pmOvm&Uh=+;_qoW{U>tpVe&*@?D*Jnz9+LHfIJz$P+n^ zH?N$(YZ>}DOkW8SSG4j!9NRG6DKi;RpXk(Eejz2}!S3UL`KirN+zqNyb%-tpxm`_M zzhtxLPF>_98gk1&SGvBqo)SAF-JE;ExG=$b={r@N$J;z?ac_QJsI2Ci&gMf!l{?4~9pX7zSr*Mk^Y0GH;cFIg4Z83Dd2*ZVPO#xmuOKd-`NE($qy8#NxbovGpiK46C*&!jIhvVjE34LPs!n&WK%a{k# z_oJ7dsD<7*_0QV+x;%B)E-j0IKb7^5LI8G=!-uZc#EKTlKPW-|$^KURyeGUaRBbbG5G6XUU-vY8*M?EG zF6vy0)CZH4eM;5fv@6MlAy-|NMu!Qb(Ccu_?GoZM-~SQZRK`RSY>$_TV$ASW z4Vtx_s^)$S#bWHS6pzs?nE^hE_R9}|+7mX08*kK%D%MM?(1!a?=r6dAftW(aklrRm zm{uxh31A4TWr!c#h(H+JsFoTo&=PWbV^RG5nA7c1!31n0`>RII73)gIiw)SalvNZk z&6I#bzDSi&IhB?`X>bnfjmQ;wa+O%-+mhO_G-mgHxPd9JPJ+J?D^!C|^ITFsu*r)r zNT*c?9dH3XKP*>ci3u`$Zpd2`R+WQEv>s-tPQ!f|MzP3JQ&Dd0l zcI+*!hlHFPk`eF|xS2T>HW;V$qgHcd0P=m5hH9w+K2%3f%2U6jBXAk1f%V!o)QM&I zm5J&shey*LcL|5?zg*U7XuZ!^r%c@?s(ew$FyC<<1QdhTfh+5EBP(BBlbXugS`~vRmbjH#Uicv&bLLShj;d@l9PGwg zZGZ@tSqGEl(ULO)Ha~69Y|>_*>%~nxU+D1L-xj5T%OBvVwtJocud%VXVriy2**yfa zQX;@f4#U(vva>YJ+)G#fD=kp7j<$#AJC7J5JbDA^^va(3!tfT@MN|)z>-7RtXCPj?{GiHsKUTdrn0=tqJ8{K z(Q|p7wR%kMY4o*|^l@mXtWrzLd?JvJ6X1kf+#?h@^x-}--`Hne#{84dPRpF!#OCQl z0EF8TO4io=J~XE#rWC7M?zDj1c3AY@E#LZFZ-cp)?nuYriq7vG(tNd@ zZjBXdF>NyJEVonMS6p??wsqf^`6a_-mg(^Y<#^hDV5z0sCK`#o@Ul{IXt7y%2ms`k zl1!y3E=cd3uH{J1hi0a=glOGWEZ+{aON(^fPrGEl3Y|k?xzR{sJ)dX(L!%$Ra;{6k z{s4g<-}dxa)`Zqcsn=;*{aIDxDzU5eeED~~@90R#GJ!6BQmYts?@M&|87R5n^(oru z^w`8jl992qaS2MrBgpe)V?5tFsD>~!uQ=}_?62X5AMX47lJ(u1T}m42L=FLxJk}%4 zTA48VotlCmLvQ}yg|6y-J8*Rm5G4_?JjItJXFwCSa~|haB{OpU>cX#2_j0XH>U1)l zwrhWl&|+7$KZIcJ+by&`9k2_=Jh#7GOaL)67o0YRd(d%|&axiI(sH}}gfE(i3fw^{ z?JhH~c!C(L>wX96c1X!~i-H!fffFK6Cj$hACv$Cvukm3D5Zbdn&2?TXyjBF^$v%v362GNttw;oOij5Qtf80(U}?TG%m=H)f@A*YPrSf!#?A^8 zlzrM*?1SGjC&iP?)ESBpk&$Oj%5?A-^q*)vLD}ZAA#ftwoFo9aEp9*{X<}F|O5{31 zXo8%V38NUP6q^)9!XGlZ?h8NIS{g<|u5-hcaqbC@aaj2Po zrGdeZu4xcHpZkOQR70tbW!P}0Bnns^gadPCO|?9A)$1(lTA};8VAKXQ%*d~a<*URe zdni1=@F;N;G!DL^S!Om;Rpi+J~;Z)3W zGwxcQ`8cykSJM$maQ^~}y@n|BFSMs*>$)BnG|pJ7ftJ6ciOheO!bB56<9z=td+!ZJ z?{POiN>HHts2;#ebczVx=Wkqx5WhJGdofqnw*Gm<@bx%Bq8P^ztx?L(;`9942Y#st zo6OPZYFf*DU#Og&b+vgyg((bd@-%F0)NIt6eW$%~KCXV?&eFdH^UxR}0ggAp0}~o? z2fF5|8Y}GN{uW`hDRYVDYh(l)F~YaY0k`@H`I#=1kwVKo#4*+pSZoHo@eRGbPNVh* zk6=MC*L0A2GV|2nFD)iXA;}IOA}?KHA;6J<1Wa6FLp~>5LKoSrk_e|i+Bm%5)Z)Bv z@y;6?EQ=r^OBF1$_R?`m$MUx;YG+4=?{h-p-7EeGKE^fEpO4rikb97*&H=>lsa}8%W;*Ne-W8mk)<8SqHSU zIaTo)G#nk9`sv#`rfSExpn6n&c^lm%^gvF}ij&MBo)~ZAYov3#RGz~k-fZ1Fv##^= zikiJn>tjSMplJS5Okb%Tp@H2t{2Y(4itCu9Mx(H*-M;DE;ClSddGA@^Ue9}FkMTRv ze9qunM0uhO>81DuYFEM4>nY#!7q9h%^|TuhkL;^;X6Y<<;=>yLD#K5W-QAYYJrrI0 zYkL}L>h_5~V^3PqdQ;m0A*)Mkt4x!nvxZt4e=<#vK60FLhsWfv;4d+ISoONsa_Uke zoj;llMjxsrp`Vn26#m9YQXq##PntsSnbWicqmGh_pN}PTUXET?4 z1vEKO4w!JqAG(*CNyve*O9{(j8}hY7xDmCZj8^-HWb!SF1Vv}5_j<(K{c`wQohgNR zzY#9+EleY^!S`Xd)ooOb*` z5Ao#%fGY5=Js)GZvG9jh&1 zmYjHbl6HQ(y<<>SsY!arXxQeQHy#DNvjG>byFv+NQbV&r+T>O34ixy{J}H@ACNuJM zAq4=$gioiZ5@tgY8O4Esi8Wy>2CGxlbGXJgv3m*zA2nj%O~QYzxiD@*78Z8tjVAcj z=!zRrlS=I&$prKjc$V=aKjO0u51R)U60cMlqBJ44T`~tK1poBh`*m&+Y7OLXJszGA z#CU5zoeX0|QnnRw^cky+q6Z7z9LMy540tY@xbI$WzddBr@ut?<&(}hM-JZYN?D|z_ z-AB~@Y(>k^)4bm_kJz0MOKaMW7|1o!c-;h6uazN|WU#5m{gF4AsijIOR@Qwej%YfG z6i2+9N1m3?K>q1HE$6VcAbp(|Sw>I>0u2JdTz@wUqx?{syBm=U37MTT#tEam6^u2!R ztWYIX!0Y^>9bO}1n$JQRqEV1jv0H}~0l%}%hN>eUuAyz}Uxs2P1#3sJ8q1N)W);k< z%2Pp&^7lh0z#8PUUK&S|;#mrgD)`eySTgUY0nbJKdWB(h&z;vc+cyEE`5J`cfRznf zcd?-Sufk9*i}-okO?R=jVM&*nzxL#S2VFv3$687?hr=VLMZ;`!mjuOBh|KIo(}{8y zK4cILc_^?j#KL`;p*n60RTjhKNqB$X( zSBUk+{xx>KFNc|nak(FzDd_%nB)$Mj9vl1YnI29T5a>Df#8OH2-oK5R?xr+C<@Y8f z%)ZEN(DASb6%_lo%aO9-9{FIhz}q4NCw1`g$~ZdRMJO8|r4N>du_qVIx#xz;Xy15~V(iOd&Xf%_fK4l3(F+s{dOsoGAl~Suyp_g;M zRn_ct6SqKkCj(n%JL?&dG(uGtTh32yC5OD@tigCuhyMu3sP*ATrGkbL{Zy2;V z>gD?OhP9{Yltwveu#`DA023P=sAz+ui{1w;=s`t3{3?tFknKT?a(Z?7@D(zWVoqlq!GEZZ&M_kl#PmCsCx(EZ#1~*5}1zoJrC5pt5z+VPpUKFT#qmWi~E0|SzdM+(x&ov%7_m2D%6vhke}`ld1Fb*#%azwSQN&VF~k z^37SOU5j+aIbk)$XjZcs$#bcoO4$w?Y!$C{$4cCCz7`p7Gv}B z{OM2LM;jh{Tmy?t%KhGjuDcgyIk1GYRMzzi1u)+}**JTRceja3O&RU3)4Sc|3cV#_ z?pU4weeT09+a_phx{zrc-*8hsM?{M`QM>(XA8_sbX5osQMvG7A(KQC_ULWlW%2XIw zlBeJ00yCs)YcG{P-rhrATNH*wY?Z$6sYe((ZrM>jV!${o*3!8AkB zWqSlK>mxs%_gIU+bOjNYdcGwA?v%Tp7mwN4Q#M{Z_1Mn$G-nP|`a?Ohv4)Jy{RrEI zRV6Yh|13tN+cn6CKW6Mz?vwVZoq0veO`x-PRdvQb9F^*v$^CXxUOmC&+0`N4m#X~B zURK5gyC>g`)9te5B>J7LHWu{B$sOOv*=NR+tf)n@Pk+$&$vwn_*SPQrz>fH+U(GNB z^;(`%R1M-CEj8ES1OjjE*4y`k3QGM_v%nenb!?COWO(sQO((1M70YEdc}mvY=MEr4 z(iI%xVqMb&bKW3&HbDe;yT0MaYPd>72TYbo!OIQZZ{Mo*xC~_ZMOMfrp*MKBxEGlA zvVG4B;AVOKHDjKNnXIJUW~@Pz9G<|xabB6fi#%y=Q?Ch>G2!8vKI4IrWReDt{?gp! zJ3efes2mRByV%r#egKAu@pmeA-%k6X=sr;gD0#DX%WrtDd%4%TZ=efVXzh67u`~4E zDii7Qn>kHpCw}E=yB#U<>LZVxx{BwvO5(wo_NkYLw(zet;u}GWQrwd*L zLxd{2XY@Jt>5SC{q^t6WCft~_l{?ZR5s{fPKYd*d!v=yz2dGsdzHPiV&L^c@CoV++bl>86Q1xG6 z4_}23_eSg#e31ipP>a)6&5}uy6Cg91YTU~r=XIKoUI`1{e=VOt9NLZr3?8K0TmWy0 zF!8>xwO|Yy$)?#5bP}Om*|`T<-@F)TQmPA2OBPE$w`>PtiVP<(&Omh@!a)mRRD2fg z4lfADeI`=)mQHk|sb*-wTZC-r*#l_j|FHi}hQH)3s*l3&**vSg#%b4Ub^l4FD z0XYTLhTF@^2>DZ7L3-`&=p(wMl}E2PCy8H#zT027W$R8X_x#J{eJu{!X>G5w3$5n^ zbR9TacYok2y4a?Ci{2=sdz(5)ywCkpyuJ5HrrQ=eR+-zmC=ah;S+#D@noH!H^fOye z&sOYryRo$3?BGHSI3Bn3|T45 zC~ZgOtVeTf=?m@F&^`sd(z}9Yx^A;adX@Or=1eM<>vN4&)qOp6h(EI|7&X}F>kz_B zD+@AVW`eJ^&W_W{AJdgXk{n4k+N9xg|S%8rmK;3>-G*U;;r^qkD|+Rs)MNx{*>8?R>^QqVfp^!$j`JD3}I_gcL@ zIlU{Y&T&|OeQ{s&d^-BGJbxy1(O2o~ zjX`G6=B7WxBfKTg!}6sN{B*a!`lvMCi2ixd3nV`NLC9xWznh>wgZRJO4&gY6rdUjV zwx?tQvr)`<{7tS6RrwD4N_ZvI!oFX0q4Wf2byQ@H_U_`V4ic~9(RBx;b_IA2ZGy&~ zyffFC#p)VBZp4!QRA}Yhq#X>odL+Zm#T_E1ojA!fyu^9WBFSC%TM7gz34c>OWNOtr z8etX7^#=uknt!~7Ra%$oSr!RicdIl_Q|{)w6vv6L#ZrkYfVY}ujjZ07#WPol&AqQP z{8%}5Oywh!QA;;LpNRgN{G(6!W#TlkA!1vy2$c24pZo2216ueC?kwDX9%|GOAQp>8 zgO|~M_M{X`)@$2bmf?^MDldzi9Y#6#kB0u^Lgouk&bk8q4hSp>eUwmD!Ev;Kv^_!b z@6)CncheD0B3kYxd?fmM6M^oek5`d%g6`xGojt7h$l5sIls7Y+>GEPJyo`M?}LonwM*QmeC z7163cH$ejG#?hey60FY0gPhuGG5;Ydv`Eg?)X7JLeQbQR9`(&)&7Wo3eDA0jYhBdv z&GllHnJKu8S#ytqDq1i`LowUGDjEGT*8!LckLX%P%h_2_#m2}f2ACtQLWZNIwdx#`O`2HNhw&(WJuB4%==B6A=dmX>Q-5}jaib%(RG>Ehe4Ff}i(%mK94IDS)bY$>5F)V3}Y8qEGd+tNw_`f$iKy|B0jN6kd+CNR8C$h%V=I#O* zEj7-h#d7O2|8FQ`*PlQgRFG@uU}X+;PEv+n&J$k$HhmUg-KoaAxJSuX^YmRhH^b~n z3O+JnH;Ds@>Qd=!+QmhxsbOb;*sEg*615BKK9SIiX>F?Ve3s!VCr8=3IfsXOcQoK; z-2FtYBJ?)kuPM|(55iecdYdG)1-7Fc+9jCtA}6n!wAkylw3$GBi)Hsc3agwwHGe%R zo12escv;|omBnOe@=J?DD&GNHPoo_KnHM9m&^%-9P1R+UAFG@c3NlZY1ym)^I=JQa zAJnA;Y4R1$o{riBZUg+bZ*X0Hzid@JllfI7BAypkxOFOs0yX7U%;&SZ9zAjQ(S;&M zg7y_%Bi^t0j5LCj`FuBVS&@7=V=cO9xCI?gq|al1>_Wd8Z_n&z;ev;*w!d=b(hm!{ z0jhrsTiSPIwYUvD^p)>cTm%1nkY&uNm>b*9ADAyqN##)Sb}x&aK+i zemG#O$WP2+Z_ZtR7v?K&+S;Ua+r~_>54Ze-S+JB|{1F@3#d?8InF$lQ+E_LbMXKoA;(E9@0%ey7!szKY(Y~;943Coc;|a zbwHS%Km)#|K$lDp?=Q-Vz~6OoNu5MWQQV;u1LS3p{f=0e?~}f%A0`Yyi|F4PG_7)- z^(hI%^DeQ^?ZJ))l9y+5ITsmth696<$R4KJ5owWBFc!Iov#0vu#}A;H5!rll zYPLvp%j9xwlZ{%GXB6z5=$txyKHO2aorkeR;}LD3iDjPU&et3%;Eykv|AY4>70BQp z4;C+F^F{Ho98{9s3C0ah8kERmeNSWigSG?!!5KxaYM|bG;dJ4`C!)=c7dsqc?niIh z^+%lVuO2&WMkq4W5ufcc$*bJ$VxuX&PrJH}+dNj>rZ1%(AU|Cu>KHue#2-g$GKHP@ z#n*N~*!V_*ocGheX?X~LR?2+2Z*Zixa}8`}#cCoj)yvQ8u6(ces(`weJ-FUbm5Q#k z&S&v7od#CD`^h@@;Bh<5y22CTHZd^Kw+iJ%xqAbgynKwnraAkIee8C^?%?H z>&Yw^Hm^xi2|A;0!hR&T2+>SSz{f#hiHPAmJ*WC1g51(@`_WXARaC@yoMk3ET{H^x zXd{*p4L%<|MV=-AOHNYyQrggkyW6St?(Co8y7fMR{H_<3dHlD^ErU&;n?ek7Is+dg zc`7tm4eAu;?*}GK4rgp~ZXT`(CpznQ9`*I5Z#J&qVvX4eyR5fVc+%ZEja)gWfPY;T zRCu%-@3g7t|9U!0QrA04YjZhSW@zR~f1LTfOaJ4kJ3Kc-WHY-)Xw;zLV&~7vHrL8? zwRBXCEGiVt7g!4=B_M{cCT5-2JR?pnBMx zg$oDxO`GEy{sh0e{(BobxThU(M$V2>F-~BwS_$slK_Dvh%S&wG zg?+W&c~zA=^Y8B#6%I(gB_>ydZ>`wef)vM2HC^jS{2=}8@mx%8B{-pEJgrJ2f@e0* zX=K&nSrHMAwUU&8)9tX}UNCQ=nMPb+Typ4tci?;O_Mz!hq<#^-kzJJuBj3vN-?(7L z`n4Nf$LZ{^6(m>Uuc-WOeT+gU_#-a1Lw;cBhNJl09WHiscep&Y5cAC}U`IU;g8E`xKD$Y-Q&DZJmS^tUaiuqxRjUZF_SZjF$H`jXC^W~bt|dJnX4iP1 z&)m#Zkb!UqAH;KGEwWhZ1st%^!Iu~c2gko0N!?$=2lsDgVR%d?QaPZ|q7KxDyhkHs zeEAo}&K0KzopvKLU&qy7qEQn*c$Bra-|FyrH1dvPV={S;CwB;P8%Ec>HQ^de9em--sV7Pgn)F}lH{LVh8-{G0xJfi9b z)oq4OJfB38hNJ!?m#M~3p=t|TGEz?M?^B5@G^6|TpWG)nT0D=NTU1kzC5Kl;%ap_2 zL+zHy9TIZYFg|F+jL-KsccVyM0(CaSHB*)K=qkT{v#w&URyzdoT#sKHGQ8PK;JK#y zQ?xo7HcQSl|Jb36$iCREh5)~Gsj^KqluZO>b)V3#HtnvhN1x;vF5STA@g?(Q=kNCm zeB2Miq3(`3jWL|T#CC?9C+eW0%CuW9Yk)Y9E0CfB>Ud*wttLvvBuNAFyY>p*qCw6G z`#Pd$Z8T0?TJ`4RK}|V_lLaCEf80szBI{!n={tx+l{#U64z5zlWf|v8L_XI51H6=F zB1CA)W*%UsuWpysXhX~yWMd?6f;jELsVE4QbqTB#zbdfe)p)Kr;=J>(@l#wEdPFsO z#38S?fzIq$=X;?1QnHQ3dG8rIDs?`I`zW?m;EU*bW)sz)*R5BB@r>cI4w4=g&^i(< z^@m?i-Rsxz2cS&nm>+C)f2AQGG8qnAX|}#En=Zk`+cOof>-SWhCu9H~!u)7r z5unqBiSQU&NGGy6(*~n6$#dJ}6aHNd=CZl)u@2UsbF?y~CvOF?RsKKEJM4*e*~&Jt zJSh5Wzqi438n^Ls4JOC9lnknzo;R9j1=)=o0Zu9ylqcMI+Bo*>+g?0Hpco6y;?<+E z;I3KXvS4SVuUBcsU=I)FbS&34CAtx3k7=@7p%rq-;6@5q8{VXLewfH|*NEQQ5`wMM za~Z;0n|;n_I2WNK>m{7XEiz;^+!V+JaMyYCCMZ@j zYbh4V9T4Y@=s5Sm9=UIX@TM93x`N?@7pPq-OjdDxIN5t;fBy;<=BX0Y&}ovsnW& z4FzMpyh11dK&FQIui<|HUasdNmmk%#%&cS%^e95?jlS4%ZDDum${fxt? z$5!=S{gm?)i?L>G0X6*HOZpc?hvf|vRe;PAdb&C;lpj78x&16lpE ze+wA{FKntv{Og4LH@aT7&zOAv!dkpD+H6X@965DWlxqc2gg@%1L)+4mgyhW!;_ z?yiGxrMEw_(sjF;mF#(m#(s`_%b@rPMNa1zsh`4(SF`OH!%5Gz64v% ze$-CKa`t%s1lqcZ^oi^V{9gvpt`loQXqW z=N$gb$}4O8=zJnxLV^-oK=CECBI#=hvvJNfcy($_9D4l+Fk|xtdf%yMC&Y?OXZ;cl zDYzF|o0YZ3(Pk}iXWx}(Qa&%k|E5zm=VAb<$Z6Yn^foSdvxi0DZvQ12S%8#tb$H29 z(2_yGVUN}*SMeH;(wHdQ;YPq(f*{!~C0L!^3ln~eGkKBu8sYI9p?ZD+GsevjPV?Ev z(8RDoLwm!>M_AG;VL(fR*LC05?Yv&uyzX#0ifJouVh|}k$vo-sn5Zze$)#M{Z@!zhk?1_` znqu(aHf(T*6&rJS91+pU{S3QBf5B+bqvOw}KoKV7S1&^z=+PXJ)= zejbg>uMW}Lm55&7g0qn^zB;0eOH~u5D zT<9QexhmbTRaalw5qUlV=ON{9(lVItMN==H69_A!V4~nL;|_(W)lhy0@MTrL957*Q zdv4H1K-!hohqQBYM79=|-YHE4^i7KyU)A&$Mb@m;=Kc92_^Rx#lxfq10OK>H&xGd| zP2l;jrth>yp_WohPO!lOuJ?6);ZZNV*Ku_myzf;R9&4}D?tO!iz^2%jhZ4j<=W_jN zwL&)Ln4=GZV(8i*xSQlW2W~@53PT9ESA5LQcF=K!k8|&*J9vbTvM+mc0QM~~-69;q>0)+s4@Uyppx^eYxB`uw`2O--$`hm8_hoVldu~SQJBOdiA-v~+NW$2+OaRfF z!b;@-&qJxru7qNVW>!+(-Q;(%E4R1pA)RQ&Fmkj}*B2R3gR=-nZZK zO+_8}UYAA(BR0}R6rtyvpd<$|8hEdMf=$m6ysHp^xkb8Z(we#)UHN$jo-NCWYi8z zwUYK|aOP-Y{Eyh}dae4OK6A~Gqd3`TUJ$^8g7i)jV_d(lzL7t|oU6mxC8_?{$~<7g zh!rbr6341WG3+ivtrM?T`7OB3T6>dsf%scq0pCexD40W%e7rLZEU7E3ZqXwxVZ3@TXEEWH`zxOOTJ5%K zj_fUZd{T5mH7IYtmPb6*)<9f;0Z`_1=_Bm>MY9nT(bePRt*WbF=q`L)+|jo9pPIDs zx50&VX}X}<3d$R~=0lAi$(KXzVS zwn1V1hy_GV)vw!W62@X$hO42k;m`&5`CTP?+LohYLPAOS(${<6cAvic>9%8WH^dyG zT?l5^>3;2+=~3ysU9>v@&GH)&7ljCNXSW%!bHyIN?|i$|pi$e+38w>uVVz$-)(M>B zTFsKP>P%?(&{IDYb?3u)@SEv9A&-{fF$myB2}0b1VG+95YTvM&z2yY*m~zb?ft4oS zHZOq<0_Hm2_be`&1!c!j0`8qrc!5M7vZV)@J>2Ay^VrjYg&Z%M^sib$yF_{28@SwA zDNOfk{DMY}$Ixo)6PC!7Odo(yyr#8nKDF;NrGmL`0pT~gylEHc9K6Ya{DVmiF&`Oj z4NTa~Ug@io$0h%@f9B!}D%gwq>bki7rHS$)t5!rxkYrFd_GIi2r7ygMRsMo=1zKHdo^ zo7q$v4@+n3m&L5hwvJUFv!N99Zj#*VvBfQs-BA4QTbn1s_s>r?fbI&OUm^Cv$IvtMDz{;^NJvO9{N z`a9mKG*+m*R(E|pS|&AX@b404yZlb}=h~zmfWP=i)wlY9ozGB39Gt#}8f$B$cH`8c zw0ch($1boZD-05cY&i0U@{$S&yvCTJEaP81CD_Xh)BKds&U=vV!aAaDGrGfVE5<0J zo_QN;g3*Sc+D?VUX{HCtJu2sQ7ur-3@>TX-bHz;426H_}Dh|gejdBH$h!y)bzw5ih z&rsr3yCC7#U_KE}mx>>j!v6&P_w@*N)2;oXe`Zk)B-y%^Ex$jkA@(uJIXO6L%L4h8 z|6ORxYe``k-azM5)FQVI%qSIIYWXXcNA>^!sf`zB?RN9KDD26Q4R4HWl&YHKc%Gy? ziRa+pscXvy(yozph=A(W+u?HzIt|7_;+sbtXX`>d3kPk=rqEX$6>(~HI0&?0<-%}{ zaAcXa%CHHzJMK4L@?{zPgg_n?8ORns)|fw7aBuZVDsrYS(&k>7iJ;JVEs^)JfNr zJy)OA9&28INyjRh*ZD^e3L}kQu9j5|te}dx)ZF;RbRM z@1YZ_=;dSfrd~#3TkA50>ym0Ka)gSBcjj=iF=D9qPw`~s*D&j0K3|-nq&;NgjU_X{ zmvX!wZ99h#SC{CyN!~i9LQ_0%Z!k_|g-;zuJKO4WNVV-qz7Zn}APvsaFv_?m+&-Q_f&pyOy%z1U4p1R!7 zd+lKMP+6o;529&(`1lob8MPgF!EqlGwcxpxUo>(;FMb{7#ArCbXKa6pg~%1Z=`zN3 z-UF%@`05e9qn^r>YfrE)C;xfBTJB3=Tz6s+-mY}$EUM+aGPeqKG`wB64{musez89o zw9S6_F-s_1*`{rzXMp^V``qCM2xkjLxly7!ie@4*aPyFo0N@6~QQKGHNw%He5i_t=5hS$8ze<=!%eG`C@1P|=1xE0)y` zNQ-of^ue_>e?vlCJmHPi80!h#v7Oa=`sDVol`yJVCSZPsL9zOgG2PGlPhKyoM1(An zy5@Jr76sR!EU8qCib)f}YU}{vse`wucVn-VI;-5=6pALPgT9-$En0*NS`7s zpcL&lAm^who@2)lMM`>zlNGU*tVSZ~prg}k&wAM+PU<%ugnZ3xQAVfqJAk$rH)6YQg_|m-Wpi20$(S5VHs>r@klL{R2WoeX0M`&$l-LRVZtVm0e0o|Q4 zOoKdn;cHJ|6TiF-&Vx^VVHD|6zfIBT_59B`0%B_t*56<6_|9-EF-=FzIioDLC@le% zU5W-3q+6_{6EA+oH4O_Q-g{H)T@LHinO zB+pctMzo*pDU3W&)83n*oi=||ZPXYEmw;EAzEl#ts$+`eITgjFDl%MpaG>5^V5hzK zYaBJp2M@JqaxvLUpbzc}WN-#$(8fE+MifQ8t4u*Mzkzb`B1aYgQAM=j-z9ArzlJ~- zSEGk+KHJGGoyQM{_2Wn__xduFe7L((yLTbJ1NOOJR(Hz1Kl5Hogy{bAnxmuHG4=FP zDIqcSd~o;P)rOjsHD53{+h~vRjC2Wo1$+=KPasm1vOimQDSgd>l}mb8?=bq-**f!j z#JVBY_ehFS-F}r!LxeL4JWoA*KS$?sTdxm# zX&>EEKMN99Iv#4J_BX6u8J5F0ttW{3Eg@70_>Yki;L4{MV|VlndB3UgT^^%5k2$eE zXjuQ&ecX|GKHiOvB_=^7<$?Zp5{Q%7P`+m&$~$?7Y?j64bn`?WULDbzn1gl373REr zpA!GEKLPuW5L>Vny!dOg^*Hr@QYag>=}r!|+4}Z;a`8fs{!Sq^p2KJPRB-@gZQL6$ zU-Lx;-PCqdbt3Oty9zWbsP1A6(Xrs0qcu&$AZA)R>(1`{rQf@KUUtTATygOW-N$gJ z^Fid!1wnIu*o}^xF`Em0ZF`cnSfZXS*6clf=4hmTwCrMWFI05JWm0=SM z#-{)igQT1c2KHT~j{dePUbzu1oZNQ2PCacSY~0$sxIxC%VVEwl3n_;ll|LY=$#FY# zTY*}Tw*tWBWhrh?dHxu#7gEV+rZH+gcxZQ)Nq;Rn;kwxE=4Vi89<6%V>h7!PdVJe7 z_bqp^1bZsoL) zCcE(t!R2Yuadc7DxtW-(;!l%vXuYTUSb-`})y${S!YVCDpw#8JOa^}X6>M>mToHQ` ziIkq4SdWR`Gf+@%T582Cb7fo}%#}{FJU!^^;Edi4^d;8!asTAq9^cc6U3=~XQq=P> z?;0dj*o~0qUemBm?a8)1onmdgM$r#Ot9UaKNkH9nK!!6p!a--e^98Shh_j;cCL0+a z{PgJEjgE5TWjRHL2eS_L0t;p+t6*(Z<~PW1?V&E4p|r7X)iU*%ilXrSslt{c5K&59{kFU(ACWMu&g&^r2@ghYqK5Z!m!Za_D%v#D+nT-@|8|AB-*NV5 z6rfoKT&B*B0!!=e^7_xZzlJ0)z}dBnnUEv97cKkHa5u|#3x;e;B>CJ(J!37?4$AcJ zz^dd+r58wNDc-opJE`6`7k#zq{F`xFv&_G@+!;o-K%tuQJ5|LPf~ToGx)Hrfy}%S# zEH|xF_%5n2zPSHG2<7earG$I`(Tx^9=JL@^{6y5-hcV;tFeF3Nt5~A$yxiEN6Fv72 z#xo0K6S6OzDPnL3CDdTJ^tYYp3M&dumE#ZG5yltgk`URo67=I2(p=7-9Em-38iN(b zzjE}+)qk3_4_|=l+Z42a+6-or5kLX+Z<)%!uyyql{tFfq*o5MVT2+)^fx4Y84 zv7!Jp^G;F90chjz@B`8QGcS13CUfYIC$VYoj%QD|6W(Qeu6~V<9?OxuzlMStw7^%& z1v;2YVh%Fi-xzy7i@kVl&lUfO$tfKfFjW8M@E@Q9Wsd$ut*+Z51MLwWZULsM=y=+i zNH1ypCRFIP%aYzM8f4*c5ommZy%@g_UlWOMMg4v3U{Z8y1^$wlCqQOef)G zfT3f^C)kXeKfAyv0;9fawBuALa*t!OkCBS3S~ZPm+Ezrny?O-`xJ%L@xeZ9dOyn`~ z1F?-2zo<0n6AB9?bfW1s)EtV@F=QaqaK_NIesA&K5UR(f!y(#HfPx;BSwgLWd8zJehu5xw*6t1L5~iLVi!uCLgJ_e`=+T zXN%7#OX7TNt(Cvdw!RAmhu1C#B!(VJl6`XDs!3>Csz{yp;xMZ61in^_b{6aWyc_MU z+SGv7Jg2-wu~2$bKl524)CyHFNDY=tnmqUF=g~p4OAS1N0m^~XXS&B{JLP(R4Qu!7 zF?Rxe(D!rV-x&0BW)S<~Il{wHqpBWI?fdz|3dd6MQ3c=l?IVTlg;JpFnUN-2rc>^e zir-0=m&m)%A1GRWH8&VsR>M>V;B1DSzzV}yKgec&-^#{|@+q!n4 z9Y+Z@@42Q!F=(faRLn1)wa8siU}!qjWl@{)RQ9ZaZeiI|06h_PR3DRG!_Ff}1^BJM zxDR}xIM<4>#<<}a;raJi*tPlKlJh-vG zxJXGoie zI1OP_u72UZht{nnuoZ@A(X&GyT;b}prbiA@;Sc_t7mk5&P-J3`0QBRgsj%)7I-1*i z6;EhO^y_ey?_qGiXP*I~)U&ofBpUt!Zq^R{_*-a-@Od_XY?ZmI!hpJ3nFEo@xro@v zXskrwmeWeP^E@WqG|pu1$AsHI8)P-*kY?w0kH05KKch@rchCx*7jJ}c&OKuY@v1UF z?{;_GH$a12>Ge}<4~uo*y)toLXPFzbLvA8`uGC1%>ng)9(oVhz6oTd!EwrRSkxQ2@ zpD!~=DZ?g53u3Q&n|2BFY?g-GEO7%IJ`Q2tjtIA}x0XpCN#0GD&$c<8wA?R!Xv6wg zSD-uVUUdkng|igyG8tXP8lCp~Ight{A1N_P8Qh&M8Ru3(B`wFQ_bWU<+&hiLYCB2Z z`9rxFhy6X=<5>pO{jWycc{m?!M<4KOI2Ye|TxHOEN@iB1`98zS{4Oh?NSc&jeSVXG zf3C=!YRv_B^0^UUE=# z%7h$J_ng~Ut+?3q%%f5D7!8Ek$udfh6YDjzqhBTU5vzm;ychL6lbRt}UMa;S=gZTqo0?_fo3S`dLsPC=R1(8R+6%DCcmJ|pciXwO)X%N3?n zK}|-g#{xGJ)nycUu4~E0B7^>9Bp7vac*q#8|6b28dhl5d{`&f|kY8INVD*`^n8qipCBJO<7_UVlKV#bq0v zy2>@!X+M}eT@vdO``q>r=DMR?W~PvF=)I%Q2h1{G2Ye9u8!%M-4H#zDEPE(|w=Mwa zLrQo60Q#@NM`65+r{}MdHT$mWSl4jbz#*s6Y<3nHBF$y9B*TWn%5nfBTpp|&wr^?} z+JlN#NIyxmqWjeGg&8iYst#v@)M=a*TW@L+Azpr^-PYtXPXQT*zvSPswU~_Ex}#HX zLE!qEHq_&0JCh@Z%eDpVpGlkut++fQ6zqQ>p7DJQPZtQIGnm|2&_DJ!-dP&=)$a5U z?_HP^LE;&`kRfUwrF^fH$>^ij&L{bpv%;YKdE8SqFz0E%f?1uj!S?kGt&)n7Lcd z?Y|btpgZIG2?SybOJQ}I*3npags~^V950dM<6!9>FQiH>C)M|N^vO0l{@u?r&y(e* z&GyhgXm8Y4KffrQINz-nbNf7B4oxxLe>#@!9iK=@NIYC>YEnTdEJl0R{TvUQP$h*Q z1n5lD&=UlHbotspR^xq{6&u*G-IT3R;ZY8KeY>eLPsRmh)sHW9I3q*SGrEq4Z}##{ z-O3;WqRkprBd*ER59w`OO9O8sf6o2n7bWt1^A+=pj5C=9`X8#nYvjxpQ(*l4~S{edIh8j^aHfR_)w{}$g%Lnh5?G@!sLE7+;v_Y9KL`_s@MqTo;YmtZgC=wNU%95*1qU3QZVR&dI{u5Gqnq;k>WghtJQe4|O}!Rw@mK*#3@5*ilEB4JP*pF&2^b0U+>xl)$_y_Xjg+?v?8N=f z=~Ney%g~6rBMMg$ycaCEhS--}D4=f#%?UBZ&8MxtJiJSm!OctHVp$HY^SA#|LKi}u zH7fw1qSM+b5X;Q}oLK5Jez=xezcbxp+#4$DWT^Brp4q)Pv874)kd8$fLZ@5cJZ?W6 zAmuw#ZQN^#(pc1l_WCV)J(G%AqRFmvwA}>j<}*9@$e3xx<6KXD?>|23R%QVMkKw*v zXQJra@SsJMVG7L8V)K90aGG0DF+`#ZcO`sgfp{vgZi>>`lfoTk-x>G)Z+6}gkaI^O z;dz}fM^mA3vQ>GDu+QvPc>tRv=wyA#2JDe9(`k<}AY?z~evAj70=4==YmVICBMIm5 za>ydW941RTSKci6uqRvY)pwalS3BWqWsSbD-M29CH_(o`&=YkF$!T`EY- zX<1hh=bxApI&8D90@dT6sMA3Pz@H{HIxaY=Hkdf5=?UD9*JMVQ>4jl*f?yjh2U`_0 zZ`%6735@{RJ8EV8GhqUQ)&W~hNJiZhL9DvYP~RU_zd8$PH02X)!d#cqU4eu4IN=RO z>0XuzHQOmtDczHth4%D5R`k>-1fd$-nZ(T0gYI7(+hk*N@c~o3tnu0rbUFw#Ppbrj zyRK8x)wqDgosxLOy}>{K{hL;Rk>FL$c_+JkBwr%IQh~8^^_w?+#qa;#Xlk!xvL1n^ zGvrI0+&eJs_EX{_wf*}8j7+|A3du_6-_?#CWJs|+->Mu z0W`O$U}4MaYB~dQr0IBKpf0g9Po8t4#*|uKT}g+d-Pca`@9`4unUX|wBI@@G4bC=` zMY*F=NN~w%(RJExwkr4-!|I0 z6dRlr=}gX{Bm13gcgDaY4rO8n>5kH?`fj}&#?^3B0fjk_xb?)s^^%b~)CY1T32+f( z4CV&rtw^6Tp`MA#=tO!jLd^1Mk(Om0z|EQH`BW2smmY&O*Xz-s5K=bi1PKqF&{_ip zefed*QD|vEj6+WD&vqb1ikf2Oi0}kE8vS_66QDki|EfvSR-!f*)oV=-jcy%t)d?)& z)=WZ!HRzLfiqwRX&2*(5S%E+e+!O!Wjucr#g!fjRL~ZjOFQ8tcs$h6Yl*a+IzR0eR za5o;i3A`M(a&>V`1wgFw>)=ba!+HBGU;kjAh+^c$)^Zo)r-_MouFn`K27e@gDMbGK zg_9Iz81H%bM_F?ACdz95;o^P^(hBdCI-(+tgJcd)l`%L&?;0FDvbGawl`m#A^OkY! z15~%KO`Z*B2V9NK7K^8sPKnLhs6`fDepuT25%vk8nRTt!yEQ^vP^`gsD$ zvCkF8Ju+d2S?WcqFcdE14)7V_FJn{n*Y)K>o7N!Rrn;H+h11!VYM42M-P}P zSj{f5d4*qc7M&{P_B@71yO=7mm%gA&cfgWHO>-lQs#mQ;(uj%)?v%BsVK(uyOB6{u z0TIvc+-+WB!}CVYj$%?h=1alBp5Ib03-HRur=wF|x~Q8I5KD@0)?jNiTD}&mr}RY% zTo1)M`7`q^nk;tb(#&qy0nh@Rg(E^1T|X5T@zf;Q1u>^`{jMa#Apv~lmjlX#tt$%&M8wjXtfI7* zB(~{sNfi@*c`hs|b}nkKH!dpW>%4nbNJ-gD>FkaiJN5V0`ijzjFE750|9wGy36Ir60(m>2zBdF*ijZzG8F3i&dRqe>z{TuN+?Y4OICfkX(x|kEp2SvgJoxUx!=zPr(WJIvbGNe-}XjbQ_vbauN zXsKOK(~{_Pf!m|R03X5-9O%S1@&ykVHct$ZNwLuetrbTq3J7UOILGUr3=HYVs@pi> zYv<2QJ=f}sSk(-K$cya%sYC)fOd`9g7G%cjgH!fcvO*KznS}*u10SC(oVP$vd4XTx zc|!EgUwrzSgqMtie>Q7xVjAYI7_X=u#gV`*X2Rc}rSSvZQH>0|C=80Ns;m797&zm1hbP3*`?&*>1f+b`rE~9cjV-N|2)8F zfmObG+#I+bHwViKD7NU8o<9-&%{JfXNSPCE4xP$eZ~U``@~Z;t(IN)3iQ^9}+h`vs zK7+&EZumj|>MDJ6c_kVkD#PMv6kGf^1PSDf{niT1$hPtLf@yJV+dW{QQGZr}AhMYs zsCCB*0j4C(JS?B5{yAZ$|EelKL_yA%S^oU)69sNE3f3~_I!iVcI9>*5R9dlRX{;*tqEsGcRcI{{4)Ug{mElh}Y&w)?bub zyCO+`YCw^?>uX+JnDQGI9pjI)@(tkaSnrQS(H0-o0y~^Y%fT(ivta~SSP#t$agih$dS~*pQ^Ig$$Ol1l|zM) z-{LgjEgbwVw)~omMFOurd|8|Gq=>fss0Mb^q~<_-da!R8rfo@Q_+sa7`ud^H^EfcD zd?*Iul{+Q)>_*7Iiz38lHdi&tyj`Ms?#}@Ud*9pypQ;l<*O$Qo;&6eUT?{eG5gB#I z<9oF=IjutbDW*L20~d^KqUs0d@!v_24ztaxv-xh&Ypn+_lu%~!iY1^P<@E6HXKvi7}jQfg7xW?(5r^I|fsxwt1sLXh>K=%i4>VOhes!={$j)s*r~M2MhQgeW*>_OT2NT8vH^44)wC2C7u)TbmBe z+*v-k>3$icbnv=Kjbh`zE0`i}d9|!_Q)Ou5O6z_p1_0d-1aO!gIYgb^mhTmR^!l_Z zb%Af0+Megc@9{w3SE!WDfZa|*>9s;8h z3ntRGy!t&3(7mlp4-S+D80F9Ps3NdT40vR!=}KhUpJ5VkXj#rVTo;wvxG~(@!&X;9 zp;(l+zb!_t7x9D+)2oe-0#t4wGZhw7*Alu>RJtWzO|i9Ngf#G_8tr*Wy;_s8FgwyD zhr9b0vCF8!sS>8H#2g=7xLLr#2indn(m%8lx|%1H>UY%1 zYxE8%mmm}?mPx-(W1TSm#R=;H&+Cl&R$9X)Ov50U&!I3xrb0-I>K}u-f&wvCwfjUi zQHeRC(yQIPjZ&+Gr6G*Pz)U)X`9nw`5wAk=*KNkfGF>5Jwjs2OIFrc-a)fh6n}nNH zqNdJG^$dPs&tP$3rv1=JUtp~DCSNwUWU*IefU!p?_=6!;RTb_mS+ROW2=*wN{j)M| zN_8WlLqAn~bj!phi2QFPC?aw5Xjwz@4huA5r(}^<{E(NGRG&O%2PQeUs7Le2(9XWZ zDE*OZC4#g8*5bY(M@wOIJN{ul<1g=Bi#JJ>V0HC3tz!fqA`ZS`JX;yG#tE-It^VGf zm^-FuQu4Wi`WS=UCR7S7r~U;Q=wx+sgKLrfYX{-!JB}`_`A&w2UOB~*4{G!l#3X3v{Cznd9KFdb zx?1BEw^6tWuw3s9By?2#*!auEmFxKd1ul_&EknlnaOzigDO$V%k!Qt5(ANvp@*?2= zzw3@xA9Y7^S1!l0RPY4UD`0%|Sbo&)y)YreN!Q@@QeIS1Lh%%N=?ux|?u!$2qcC0j zmeZSa&Z$_14B*?r!pj>&iJSu#1%|3eW6=PomJWC%`kx{A*IAQ>in3Hy(WVjc*{{+w z0r;W33PuSCGHmWuyb$UCi}Ai3vhsA&-vdLeJw4w1kN^m@AZp$J)%aNVJ ziZurfprGpD2)1vOGLlo6a2s10Rcd8_jnjVIps5!{(!h~4QD?cx{mEUV>ge!?IRlbo zFucDwY=pemyQp`BKS*9=|6uUt8$6ED$C5(gw^(quhhLU3Fp1Y8*Yv~mDVkc+!KHKm z;XH2L=al-Lg^v-ElxwNH>|>6fWR3!Jn@R_@Gppw2DCYhkp;k_PlxN?#Uxql7$^JV4 zzo+G)+{Ok~pl>s4>BhZ$=AyGq0!!+CYc%uZ+r0SU{q72qb4Y309X)Kp$}df;cQhta z^HFuZf$!wLBU*^9q8Bq@AAE_bub4_8A35MhE{pt76A*P_EGIbqJZ1Eh=iHHoJx81x zxh8k4{RL30sfF>Kfho@bTGw(&8T^Fc^4YS-azc7)HxayfE7h+$T+&oFp6KQLq4FSs4a*d4!^DEU)lnsj5md=E?x;>2(OYq2z_B~OEj z#Logbg(VFUvkXO%`T)=U>ms%C^0TYm0a;k0=iU7vWwV}F|F0z2kl|>a2>?_+vx1J^9!#sj)s|<$WVyP zy3k$lw!&A_k-1hYcXGUeJn~FKp`*##H@#7sc%!ld6IzCtiZEh2|0f3%8+}1#B44`2 z#x|@bV2m!x&!K)>Ye7kt2nw%A2nMDsKV`qkHy{wBwf1V&cmm)+9$Q^l zTDdXIit9%X?6+KxDC~^aQB2-PvF3axjH9I*(^u<>;7N(+I;Zbdib>EeuXpK90B z9qL`bpNm|uPAKGLw0Ak`3V3h_F7q^rG#I&?$u#t~Dh!4Qw=Rl91y6}3t8Qp_V=-EFDu0-nlnah;5ON=ox8>dz* zvtd6#kWO??0_`>56;f*U73p1z0)K_ny(hTGHcnfz!a211^ChwTqlwekofJDE`#H|| z!bu@_Mrk}#3?6|{>i;b_Reu7PcUr2xxWMFC^;R&s)=`{g_CJDC1InK^YcDuS4MyT( z0Liq?v!$_@j*TlB70kX^qOJ@3<1FEqdA5#4pzgialm=CyW(kIJ8ik5_5p!hw#fwg% zj}aMvosi?mRG)f{ofc2GC!L#K5`h)IO6R~Jz8lFDHCQRh86CF+eRv*}jTA1WRksnQ zGF`dtwPurk5oDXE?#D-Eiu?x`E!+E0bX~G;EAvIpJ@WQJ3k%oc^_*G!8Fgt;2F%g7 z5#}iIRcOa)uebN_n_}I>ZR(_Ei;QM%RM@@`ArXb0emgh;10yJ>i2@K9PQ4$xB?s!<{< zY*~ufk{Bl~%n~Xjj8Z&Qug$$mg7cqS57ILqyZ!jXRB`z zjnfKv+9v}ZMmEGQd}Dy7#?^qtI+1ggK?G?^C9f>*P}?Csb;3C{@QupGU|3F;3>9AG zM?M2HHJ^`em(`TR64#f>Vh^u8@0OQ7-d~=;|MIfhdaKsr+uxb};QG)v)Tyx1?D%DM zWKZd0Mq9`OSD~R8#I*=h4?Psab=T9aI2b^+gK*7R$?hy+4H8_HehsWV8%pG%9eG#- zVfTMx6TQS+RB?P` ztF(pa+l?!2X*mX=4;hzI7Ivm04fW!s*)*S3n0{uJJ#a^+eqJ=-JmJh}cJ!Kmx*9=w z-TQV4Q5A)M#CbZc5-8@b8p)$I52ASF5o&)IYBLU5F;CAlyBHyoGf;ehgIl#x;uQrdr=jWdpxGu1t0>j+R}U;jTep8+ z+p4y#8QNwo;S2%SLQ)rMRluyPx-w{6Tfu)A4B% zRDu!y{VJ@{nt7E;8nqFMral{_ajGUMqD%Zrh{*X>jtmttYj0Xkw+$k9bz#j}lcX*A zQr-qBC>p;QKsjh4v|TpKv=u{qN{c|v0gTtdCkw9_CmS^%f;d-6O=^Bz4^nQ-ANqNk zX15tg;qSFHg_=2g&i!>9yn@@Ws{*LB>vqeR1ht&E?K50NrZqUV^|>QY`;#@$785DJ zJ%Y$v(xBR=XYLb2xhu%y`0l6sYSYa%9^->}zWZ*M&cR$lg9l{q^69H<-Oga`p)@27v$&?nqV3OaxrGBza0mag&daQ2_ycx*9| zWq25dF&JSQ%7!lX4KyttY=?)!?+_Od8rP)Ff=u^{S;&c?{kub{6zo zBE8V8bfmb}n{lm*5h{BHtPVRNFIUBn{l6z)O8tf26tC!Y@5wY%MJA2u(4eIc&U$b3 ztgeFEh`Y;LRWwFt^{*lvfasBk%eLZr-JMou38!|CXqdRmm7-q!R%S*R9VAT3Nmw|Kjh@0!%>HcZ&b*kMX=%zxnlO8wM`{Uuql?{ z_gKaJ<=0!>r<YvKlegKfcC*#?-BN z15|!m2PT+|oIHu+zZ`tL%BAY>SGjEScT3V^n*{W-A{m=KP}fS^(*ah&J^r)RO3ged z?tf)k_v03oFIRy>Ctf4BI@i?mT)zz9kiG@Nv>VUq3caR;yi?sOT-yI>w_zC1t&edB z2lVFHu%D9AIJ{oPQSl#X)V!Gk`UH_BK-Z_XJWYL-O8%b|aUOA=)6^{~UMn{b-_wlQ z2#05vI_DNsG}p}ncJpim-3)2-8+`#A*?6hA3R`Sk3-Gt=rC-ug{^4aA1dd%<={m0b=8!m}utI4#j9SLCP;te-G^~P2W zeeyTzp9+cZ6i;|V%>FMwm$+!rmjv(?R0dGxx5&#-(QQSA(`3}DX~-MC z?jkEnFMHC01bK+c5%;hb?+c!v^#!hRJNow&+Q&`N|H!wVBYPR5g8DSQp9B*+itX9= zdyU||mmB41dKGR5t%HgJfAktL9S?xry?6JEdkMSqWzng7DF>)`*J*l)Q?uH;P@@)C z$J(%DeV*k8^og@lIrv&vcUuqwghB@aC&mcX<#?-8z1f^SX9AiJ8@m{r_CF_FZ_4b@ z%32DgcY4?zw@X*$iIZpQ65m1siIE2f59KU;PMgwjlpxgZD*v;OVn|WZ;ShjE&g&VO z5;O@Dy6|!bF@{3^*A8F_ef#ILNvE@NN6GIzJBNN0?@cCa1r?^Yg4lw-ooIhzTOq-$ zawyo9w+{{>Hu{BbS#jKfw+u~z-)m_1Qn0VWRsHN|*-D?>X|0Z_QE=S&Ceq>k)jSHr zV3VGqQb1?y;#XR4Qw6Le5Q!y)GG%qt6_oe)%1CNdhEPRYH4EG_>HFHv$-n&>UNmxD* z5qQY=;T<*vT?TpT;?w906*`xF3B?Ib@A0kMM|uzP%jSs1Pdp8geuOFE*4bC~J9)a4 zCG%%Wdk4%)Bh6WBi%_*zhq-}veqEyE2Ctz20w}QcI`7Xo$vl7ocHg^Y&wOwwHK3nG zVDuu~7PxU}%Nj zLh;z*7{j{$%$(j42FRErtNgJ7vndt)lQFn1>|T)Dn|23y$ycpXGz2IlJ$4)ie>7z3 zG`7a-r==&K&+EFr@i}R=S;=%nlk@iRb*GgqllF#Skzs#m&Rw8jNk9Fe7k-L|hK*rX zNNlBis~|crgOKl_Qp3`RB+w}$q?sr_j0x!Y;(j$n{5d{XK^*IFe6Jxp#xwP&vf-*w zddj?n{NN#&axo$`=VI7i9LaAgYDF*ytxLoH{K%GeZV&U>%U|*ZZDq+Sq}1$T6=qc7 zzHNoyzYq4>qk%dBL3ngjGAU?(kD4bzLltP%;9L<{ z-@v&EBLlIBpnw|NrC(-FGMpZ#J@auEgr3{8fB78cG@N%;#Sq9+Ea&KfS3heZ+Mur* zct3L1&=gZznLHT|H8IiS;+&14Ava{$jW`?J$ie=O5;v8f!Si#Vp3KCjM^RrIw^*tD zuf+`Bl=R!iS?G^ABB)KXg-&PcXV2_8&0>6?&uLZb)tEOhf!B2v{k+PtAj7${>0A}< zlCKYGJ@b-Qqua^dzIXF+_Df<-e_{|3+Q8ktJUGCi#y^)n`| ztn+}{0DJ`F@!nMK2w(eLx=%RjSY#=dx&ifIz#Jz((%3%Hg z8v=?3MSbB{YdH%j*gtyf^qyUspDog@e$?m%hSu6(V}P`u8|BNV*>E`yFJcxlEU;K6 zDVTG~?1O(9p0W!-@7HwIt3`^Weers^a`Ig767I>nrZHV^?j>{8ej45Q;>qfT1o)t~ zgJ!Gsk5j?M#PT#frn;{etm{8&4E0zMvovCt2hGN#c5k@^a;x7})+JFr8(?C%(wCDk zwaFZ{E?EkK)Tk>>IV6-Sr>~U3QVO8=0Gcy!1F<5MoVQ`F5SlC&Kd@BAje3S)*6n|7 zYn^DNY3}9#iFa;C)yNv4TM%0iIMv!z4<%F_ciu!Yz)s_iji>^89;*O~yUlXRz$c3> zjxcr<1G68z-xD)X+@(|3hVuS-Kg6lmECQA46SdU)BrI1NcWU^)o)5i2jpd&XP%od& zREb3fwPyAkHbD!qx;iVzv%flshbq7D#0Lh;{c?R}FC(jI8?l;2cj|wIx|wqBb#=}L z(G%XdD|hg?4(yRQ9MBZ!h>C;ny0_Y#VR6-~7}6I&x$0V4#DAY4QiscZYj=X*O0@{X z?-sMU%3JEUx3dE6eVp5U_*)q+PIfEtgj=h=cJe@dCkh7bPFNO66DQdwelVM?^kT?} zzCcQ|Jta^U73nfiO0UI78oj~mq+KHK`fQ)&>lNxT;GPq6okYkPk|`R;@S?SIef-{y za;hD!{cj;;g}oN%2H)th{6LBv9`#EO7|Xw+{!y|&HIH%ttULo_$kao5l_M@R6e-l1 zXQ+ho>$1mQ=kSc%7@se7#3MG1nEZj>#6BV3m78c%T%UckOmbA-`ol>z7E9?cg4V_T zU-B&9Z!miC3Fgrh`+0GF=NvyRq$=AZdasjg;P1>#B2>?wjgq7Y`%>i85)XVvaXgE$A#iC!=%%kD9zS|6wxYU4wl zTAo(fGU=)D=`jE2A?WW$Vc7zf`H~Eh&tqTFk^>T79ppxHXUbRb*{UM648GNvAp&}> z;rNyyCLvM)%eh2sc}I}bljT>dW(Tw{TT26URqiNsYxmsXefhmnbP}H-5%UjE^f5$W z;@d=5m{7&4+sJQ3{pIXKZB$ijn~Z-yu8WqnT+BV7?N&!RV~6I9Hw8}HPkh>WKs49Y z=d~sXIhCYIvgYn`ySm*zTZGdML%qTv-Y*GB?G{@)nP7wuU(gpvW^Fe;_dz2}i*?4Y z{7ui^fzO}I*+pCLFT-UXFSG@%w&(jvl3g`dL=lxpvWCY*ZIYs^Gd>%W{Ma>NH|0L_ z9rn!gG-1{ma%yHNCO48%Er+piW6N(TYL^X6(KHEPq2wwiYOfjO(4@d5SsDnhFL^UQ z5N6@7gNSV7BrlkG-AAk?kF|?bZ&$t=UsrT|9-u?bq0At&yMx1PV@$S98Y}^xlxoOX zg5t#yLRA*v`Uk0>y=v!3muarWg{@$0wS>MOU|j(@aX>NJ@V?h)b?j1|z z)u5Mq%f2^_E#PU%SHdSrZ_7N|ZO+#goDDjs6*Uon54N006BZbZ$~|aiCn|Dt2_9rt zpb&G~xP@s4K3rT}Lx#l9>UYE*B+c%+k9Z(1ryWB_BO}*SXSSD7eFimp@3TU>#e867 zFloPw4~@NQ4WzF>`g#hb1TO{#_E)C;h(M8@QVpW1HZ7%M9mp3I>ltc%0`%AKJyexQFQyI!C&35qcs!~l?E{@ES+0BAvnfPbicxCcQ_HN+` zm*dF89fKy)%fM2f+KS(rE?A(`(&N~@V1i{mWmk1DFLt+Io{Cv-o4a+mBrB(l_R1zh zI?ydD_IuxORdilwM>OgwbAs1p-tAx@QMfL_tD2`59BCfjQ~R1@iaihV&7gh^0u$U# zc6DYdW^qB$DskN|DPBKb`S-Vzf|%l zZG@Uk;hs4C;3Ug4t5C1;unF*o=KG2K*$QW@>Ps(3+@!&Jb5_+bB_`d8~bv=}F8 zl*K>=BXYwH&Xo9ErL4gsig5YbfTT&zv|2}*k-AM2u?KsUIR?LoTOWFck08A4Q4yyf zj%4aie==$74%ryer)T|uC34-OAPBpXpd{(j%qF32Di&!lMm6s>tZk0x{gK zJXOJAP|$jW@FD%FQ7d{qF?1*+=0K_og z5Ns=U+^$h8w!vx8i_`R+_QJ!pe=ADo$jf2#;@xs1L|DXlHt_`D;A_>dWM}IdzpF1^P3`9ciw@QHX-}g!(OxED&eENP(f)cdkOF*1g#k!9%Ze{a#BK+VXo9A(T4Hsy z9zU2;jYRvG+&DT`_g@uFEpHWby;(zWw~h31E4Y(3%S_P>inI-;60t~1S^pFqQnQMz zS@k&~hIkqDWCw1kjlUx+|YK4a^KG zdT`-+wv;P{&^VHHF|)%6R@~r%$Hb3cI*nk8N;Bm$?KXgJdIc)0&5PLT9)(SOa(R4ffKrM#8eF z{hDNeWhg6Is0U90L_;QLl?Gv;EGuBihr4KSne!bR#8Q z(kUQy|LBe9e(rtC3wHi9XU?2CbAI1b&+*xIX35a-S8Vzhj-0EBHU@w9*|jy8+g?hs zR0o?{<#0x!lxas%3I1oOQOSpg?Tbs2>yXzyZAsgbzZew~PS;bK)rpO1+5*a7Aa(VO_kh zN}zz?>3>plQOQ?IH6$q}y(c^Fr}yVf{8A(^?%}c2=uabpEDXz{lEvdGi@yxIo_`xx z6)RF|_} zz`l)&$!Z&AQEY~{(FMs%oL~#hG2rjXnR*42U!L{1=ro^w?L-diZjY=gYkUe+lhRZf&0(^c#K#34r*L|z?BlWsIPAjPg2gjoyofc$si5;3f7b>b6V?T_o?lh|nU}R#zS2qEI*vok2 zNi=2L)#X!bY@}_W_`qM}ior}JYSkUM2qh8-G(_&>ZYr?LKmxL%b(WNOeCQ9VH|YXo zcq%x66Azb{-9Ac+*tL>GSKzzEBr38aT}5)bE@t9%qc-U6hlTfhB-^G{UaxTt0Ku)S zGWbXo?Tim^$rxfs-=mM0V?QY)Qzuc;6Pn+n2>h&N!%Lx5uiTb zsSX90a2f#_6_3!uBt^hc^`AGVuVX1a?cRFk&9hFG^0sMUVKCS5NMq~OaohOn7i(0m z8~2Tq1B*-4Ycm=anc@y+1L}xD7DL4-70;8 zMUq<$-^2&8j1sF}TZ9|E{ae}ZGu8(CZ~L3lo)W)iCe|bXUw!i|pT)t#uf>>m8Dpo9 z&Se=OggqeNvMydU*w0G8MG5J+-*`K3Frkyqi?sdEKIVW-yha^I=DG&wkXPtuI?d6F z1v2=pQL|<_Py~PIzjpK`R9qZLfp^J^d5#>7-8zv>!zQqvv3|@;t8_kcAQ9-)E2er7 zEY(mzJ_<`kt6EbI!NBtWQ>PSXUSAk5v^o^{(K|32so}2^hh&RF61_2?7?ST2xnaHE zqyF)b^5w=rFl}z?f@s}kw3&jApLuQmw{7Pyl5BpLbqSLGFHY8*gC|a(qr3Rs(X5PG z(R-+IE*ei-0f~`n&w0VRuVWB;|Lnxq%XPs-s&;mw{&>)aP!kqWiV6I1~>+?en|-pXYuQA8XVt84CD%P+*>$%@%FBN-aDxZfhumm0IC$ zZg#EQFo$-@0s;$b;_J0Y-7@NaZSWJtZT^h24b^LJ$+uD%8td3pd;npcB; zKV1U0s+(<1!)TwA7Qe`)Q1eX&G?kydo(E@^v1k4vlQ7+=x8AQsO!@D1EVkK`?v)Q( zb*`LWob9mkkq~} zT$RTRLY0ziZ=AmFryAwZwwkKsi!{_5cYapufF80LFyZi&aW7o&RfV#=a_&bIRAD>y zecJJ2eQ{xmfv}9bNio?ILnl+Oc}Ic1KbBKtVXqcqVo4Ur z*;PM82s?Z-1@Moy7TU ze()VTmbx+k+*?`r&J}-;NwuWlvVM4-zKyw-SlTYHrwpwF`}**2AIU5hJRd%y!#Z+| z5p&QhIaNR_eCWY7vcb7ntdyGKAlo$Ckm%suEk%+E0aWbejT5LR$ggM&9fglhoR^jQ z0DQ|;K5lHw&B*|-<>2M|k~j2hOo6lYaI+R|~c^n@^l#2*yBaR(>=|N(gWD zqEq^Q^3|HXLOhA_bDgWJo5uFB>!>eWwBtSMXfEbMLCBq-?7^`&QiO>yBH@KSdcEgp zy@PyC&Du-XDbVvxN;wgYhe);w~I|O*CboX|SH0>PGzXfK;N+9;4}jt7)S z`F};bnCD`<5d7k)QUsMMr7C#fDz4}PFO2X*8|2N)T)XyPK&GAiy1A=_p$sq6k)ApV zI{gQ5iY>v+8k&m81l*E#FOHLi{@_hh@G2Z8i6qcDjlf@OvcNs%p{90@7#{-Fx9_3F zVOwPV3qpYi7C+WxRYE#)f1QV9EWkO;kAGm=WXik071WH`XZoYwqC6vp^$^^AOOG8) z=M6LTR?wP$JS52IbFiARe*g8l4cbL6*w}Zsko;~qa6e;zL&LXc)4z6N55nFO<`g_$ zSL5%o`nGXuC>O`0kavETPJphNTxSApW-Z>)nuYh6?U*9WX$ND=5yWeeP^i+TTk^J&uuG%;V!3|T8L~Bd zy0g;eSctNx&1AY`fQdZ@3YD8*@Z-81mgs7Hz8UTD@GragSLy^@4{RfsGt>G*p5=6_ zo+t`Yk3s)sjd{i#C<}8_xnV}>Jzo%iZzvyE2|1)PdClB_{qdwez5qf%y}!R|W3t&a zF|;xP=l$;Y5wY{*lW?Pl>hPh&g{7wpCz~*KKqbR>SFT#kvG{5IyNTT)$I%V@tEwkg zju&5Yo%omUVBy)WVd|x5jWv!z=)DN@eKI`x%wxxoV$b%%;G;rCdsk#|afTw&RRs5` zNu}B5gAUlvnv82uIQ6aOmzKa zD5vedFximUVQ(QIRJwQEatbWPU6qcJqdxr~h%f&4jcMY1@0wFdvrMYkfC0Uy0L~e*cLJH3Bv#l>aL-oI%9` zJf^z70@+E<*;*>X1ioTEujVBh2>9W?BAiNR~thx@XI=;f?p(BV9@E+8-9?t$q_ z4-Nh61Y`G{mFITI+kV%>xob%i!6>}?a2XLdb8!z%S^8R6gWKGRM!&=A%qhK*i8V}oqE23>2Es77U z97$o$@2brAk}vZM=}jxYTmm9ed!nkvN}|>vvn)SWU_8_?=e! z{ZH1pJg;x#?jnR$Gh*t;MKc9rHJz2kjG1#JzXq!7y*`q6~N{q7C!0O4>|C*o~c| zb1Z;E_@&+A6~JQiW~lO_uqR@S>~UCTp}WU)O7tiGdE&g<`>M=5=0rrN?)Sv377{)$ zP|%)CJ#bHFjPd+hS^ZsA_;eX*iOZOUa^nskm0`rpLO zl2OM%GWmD)?fu4b2N^oL!+g&E;jzWvVxh`dMBj>|rZs=v-(Dju#`lcmpNNZ!@Rtbu zP%ZRdLWP>YWn(k%xok0H!C>l4Q$o=FT7fRh-~0q)H(YRBQvgu{V~DXxcgv1=_Wt0} zkwraHkKPr;J%IXo@t?4783Pby+=m}ZKHIhEdwM_Oe|MU|7p8cRHXG2Jlg(#zpUUqk zAdZHe$D;G@=B%Zc`x@ zD>amP#*cYnVZ4cIPgjF%jQ8eW(njn5#Nv4VDOS$phW<{mIr}ei-9z?i6y!{z%aRcN zSc>@zIIm|v;fYxE#ubml1DvhQWkG-xTCdcU9o^Dcsb%5W?k3!bouO4GX93;IEOKi= zo5o3nJC0MwnOo=z(NGPl@&cH5SxG72HW|4!tj(ifa7BJq_PIn7l?H|t^(UO|B@wuyCWQ+?MN64wLIv zhw|x4!^@!r!KLi8pFWAb(f(^IxU^5bw^yzy-@KkVx;|{)ZIu>W8mpZTz<%{hr+mIu zW0t{dp)#Jd&%w5g99Xtcvm!qp6uQ|Vma}QqA>>55*Q-Dba#O<+C&4S zI20P6zmB&UB3{76&5bk7cA9{jC6P6F`1grRwEhv1CC8 z-#*&LN3b)S{XX5?-!|G46!JjGP?k^;K9a+NzCWVaQY^_rIVrH6TnLw#k(vkbgI`kf zmt9GdaD-c%&mBurgTge0{v;;=dG5^a3%+CM~#=d2{VJ@d#0z;4+uM=hie(DRDIG^2qC4x;-~^FiBe*j z<`ZIu=>^&*d@b`WCHXg`mN&~oT_57LQH6tmN3U~K4S^G}?c+cu^40^;i;s|JvXJSM zJ?!&Aow-}Mh8cp}B;M)DhBa+g-rLjPBC)}qf$)>r?tepEKR7r53b9p)j3BIIupr0OKTl>0h%-8uo?m;nPdfCc4P$nM(G>R;a!k*L>pVs6$BQWES6Cz4D zAzpnqcF5IJSAPpO8;S>NjDTJP|9p_(6ul%+yrwp7<-Xg(Xq8YttL;QhJbpp_{52a! z#kh=g`Hcyi#lZ0`0{3Q`lPWY02xJ_C5fE`Qw4cynmZO;rnixT4+E5axYkTTOLFT?M z@N!5)akuk$Y;R)Uh@i36Zn7jgIXJV06jNJV!a&F#A5HyfNx)B%ru6!^rJ|?I*pX#{ zmwLo-Giqjk>KKyiyTm%F`oYxRo73D>1L$#gY0r8&qdeE1xFMG{M@VD2#AWAs~6#n7*$BQmUUQ=*Kv z)clyVqttIA-vjkfJ}05<1X`R+b0{&I*l5)-F%Lx5CzRn3IDV5bsa-)OcL&QiB5Rq$ z+d~lzv-1X)_peP=I`n`-%Ypbd<>4D`*j8m0yHhdwRTeGlyNCXF{p-tX@A`<0n7`P9 zrlZ)i;FbM9#jsEsO!mzCcw!I9%wi&@cpLT0{aq8xW!>2{WC~@3zk9zry}ekf)^Bv2 zDm!eu`;}=!IZQ6TiM-O9|M+K{<*2sK(rDeGyZA4I`TB3|(-glZoxCl+uMaEF%tNm`P~9A^?sTT|t=+b7@)&Z4~q_78w#(n(OK451Q=ny^_;5lTG!sJglGA z3WXB1YNkbV)q+Qxm4`*NT?i{>T|=cUrr$IDa54SvKmNLeDhC}oIsI8J{|6l+RFd$9 z2MDxG@0-}}*I*MWqDF_s(^@>j63f2UWlsO|d$g72wj1~U4dKw#%Bj!i+HQHS%3uoxM+Y2j*|@*Kxe4I|nxI70_&%mUkev{M<_-zSrUkEwA;iC^p{i`-|&g<7uX|f5pYW zaqd1!n$?R6fi)Cnv)NUKU-ewx9#1KM%j$@_kg0NgGuy38q+1*klyTXm+n=&_jr=hB zj9{i8IK?+K=XxO2^t90mn<1|E%z!;84Z?!`u!>R!dOJDwn*e?-2=6Vbf&Cv~W`hPY z&2GbXH`cITC+?yk1un;FimmZuFg8bPmDDRA?@;J1QofVOBat^qs3RR{^T=3N6G2x& z3a{ZD`YQ}s0;d@Ik$+JvXl9?Vd;(r*A{szQss;6cO2VH+#CRW<9Apw_cPmWo%trT2 z5K7M7;Ul`Pjc!KGPw+YjY_B>f*mD?L4YnOH?okL~>!@X`QSJo7CJyUl$*8#S>L#c^ z;pLrel*LudbLHjh+IWJlOwQ7tRx7gqYU)UAgDk=MP(CB~J68H#spxUUY)pwI^s53F zZD^+u2`^Ng2(Z-4qfW*%JF2UXoxeBhtvF3mc^{66^Vc-A-P7LO&gOO^KY`BX6kaf0nkA7}u#}}hyOFqHX z|B zOGk40$OKNHEN5>hDFg*KGX4aP7 zj(<}+@KOQOAE?sl@TaxG8GHyTKFa9`{NdBA2MiBwCUqdJ@@>5 z;AN2g?ZA7B!Y+?^8G)%r=Qf@Ig7)DtdQvqN$kvjhzI&`$g@;U3N{vvOB~`0Uxuvg9 z64Ila5?X{5BHb8QM6w8#<|l0jN!4(P(c-YVCC>cQemTb_ogXc>%jgFcwg{;L&U`ah z^!Mp}+3qR2lXOc83AFihLhrB6JhXPrL*y(Vzqhnv#Gg-i$H(>+S&%mK((Z(VIwj0f zBb2jT<0!;z_BE}Oa5-kbExUzVUZ{8Q=31}1f$s#D;w4XDP%|K^x#IFZJq@-nTEy}L zxmhfTl2i6FPf8YRx~m3&NxT?~yph5lT2dobXOvgW7ZBrXGBC`vbOdCEMNTT-MZzgY z0s3PugV>w7hIgde8mdim`@WC#j4?5gi6V&CyV4$?J=L(rY_+Xu-@-Dj2-O%hMEJch zH4!*HbTZ~0|_I!JMeIK%Czz==)SnlV%So}E?X{$dkw?j@;9!(EMWJ< zt@m)t5q+Re8Tro3CdJ>tZA>y~?a=>Tbofw=<8G@s)v6C7^xk;LATXw{RcP+r@p?`D z@?%W69{rZZx%q^9z`0-;TMEK?5j#{13#0GO|MV`FbF4=3!%p2|o5wh-Z)C~`3dJsF zEAOg{w$RkVny2G+A+6?7+E#MdG!<7cqu~k z6-waLM>nsuWv z7RlzEd0~mXqojXXN=lUQ%!nZ>L(W3?SbntziAn2Gcd!gpsYNBcDS|zjyX?0paa#sQWLucFVGS1X@}(MwUU!Yq)H>_RH|4Y5~YBWMJ&t3r}e zR8Ap5N#xXV&fk4omGiX<{PP7+qIR-jvh+b}(4b-ZF<1pGM7qT_E{9$2IJlz>F|*$a z#R!~I&1M1fdW-7D6hbHq0+eqt77mls)8J-uxEo-(kp^L}hmDP@3_nG-#qC24iE3z( z!IomoBt40;(N)m)U@H(@ub5m>GP4TE^a`8T5>Q?C&=*y6X5O*p0mJ{Q$D7a!Sqo zJ5ftlU3rzi(t`1H%9F3~MupdL(e^8TdJt2wA~p=_33u}*p`Pn+{S4GaRImQ~%K&44 z_^kNG$4}j_aW2rX^&=BcFs-lk`aJERhpZJ6>t})MY|I0l*VvHcCvv99zYyQ}I&GHM zRThjJl_nVheyzwT95L>Hu0YF$9TE(e0n2N&JNUiTwXtNA|GA5T8{$lkl3}I-up|qIzg*#EgH(8|qm=D-m{m>xJyIs3LF&k2s{I(h zXa`1X%Yoku$AkGFH?uqZ_W?D5{RB1dK5F%kiLH9ESCA~f}>rAN&EdMq2(PanEnLju%W$Pc<3{@V|FP^f4yAj>L7u%*=ZghlM9TP!ds2uw{B z&|-`w9Rt&LX8IgLwCD-{3_~M-qT7*kDcy1@@9+!#j)lb`e^`ytjx+IuJCr{&^Ss?i(gzco$xt1~LIY=ttW1>Fmk>+3kaT42yw6@IQIA8S?Vg< zi#7gbjoF1dVhH92F9VVJmJCQaJDA~d=7n-rEE}&m>r!;VM1UQHwaHtXB(<`YV*?My z!USUCZ=c+dUKRF4NmkfL8iG!dT?D+j^=bmt`t|kD3=OhBRjFJWVC1BkG&f*Ot~69^ z2tU0skrj~>h5^YC4_?0A4>;Lc)$hd5(nE{wKE_vL7?ycoa$$wAyiBPV2oSb?CP=-{ zoA>taphdamO-smw=?Llmuj!oG*^34$c;WoVu-o@#TIByQYsOU}5*{I?p+Rk< zsCKubJM2Z&m=HyneE*9lHKvMC%?f}MRU7=AE)LJS6AvO&&PV`oAnxn|D2VMxim0Jw ztJxR%0V8h)f8EJ4g^jW>*MQBDNnq`u!CIyN3?of7#yt=3H!Y@|F?94-X?p~6 zNSvQ)&-Idwty+&)8);>8>i6A!iRfpMFBG(MNch7OEw# z6g0>PV%QKsx4-U%96YUn3}#~rKC?4@TY@t1AYFFsFOb0aUvSTj|NeJr82y$rh4BHx z8!1m$)5th9HmQuXJSwK`Q7KUW%g6kqa=e;3X=esVjCuh?`GI^df>W2#RGZNbJGSoI z%3SMqCE@}oqBdoh$QXHe)N=;!tIIH^_RT*SX1R|Gu*jbjYfU+6XXW0Uy;oew|bYUGC$|=x2H4edXMOsy)Gs{HAyjwi~#?)j9l5 zbS5Mi{^9EAv0pH*a^FtM9yBo&+|8DyA=TLnScW24-^*UYnsxRsS`5O;A8K*eaZdDnIP^#J)HRJlU%IH# zj>sWQYkMJH+2uD~X79yNzr^7P^Q$*WW&Y1d#qXL?s<$R40_}0e^@W1e@7FoIp!N4L zOVxMBxh}Y>j2GX8dcSmDR#iJ)avMmXj`D$TjPCE+))an@Tt|_YN-T<;Y(ys>nZO3mDa zuS1SfWoU7wb{eU;lPac0IjA84iwmY9oqd2LEUR)`6p*Wx8_>`wBvRoib*-9iRGTyT z>1Ol{vGLtgz3%GP;q}M_q@)|&j4GN621R9fdeBVV$tz$3f)7;)I@#{|* zXRWUvd!{e?n)>X9Kd!8_d`~ki*{=9Q_=R-FsNMYVL@nx2e66>~v$_FGvl1bq?RX^n zUhTB$6crP4GloHWLOaA?80XA=oEZ+~T&W4yGA8?S{NFKEm9TlN*kU&DdZ?HEQ~mCP z!wFN`!nC*7N@aS&rop@~!H=Sna_|X@&|4bz#VCA6$)A*4=|G|P+@nLIN$VsHey>}9 zL4+8aj>RG5!P0o@y3gh-f@;4OYgn1QNC-%vd|v0XXj4n0x1YD{6sL{XDv)Nit-Lo+Bi&&E&vJyT+hP9d^{@$t9l5=?U1ubw1oZmF#td@| zvNzo$yMkA(_4F@E76b_%r!t<#iJ8rwGLdyqQ81)& zc8F~edu^NOdD~+X;forOFS$1Sa&*pCt%A2sr|+{Jx+&yevu@&PsueFQznc#r>OAXn-SUwbcT((CRaYXArdhx z=1^+~eqIYgz^EZ-6r;FB=)PHp8)0UChd)t^DK{!|yOpkl$;i-d<$BZu@tElz!PM#! zS5SYNg&#bch#Qi)`dm-Pctcls)0 zKK+x>qc?dcVx_@T7;m=$K26V}=$N^%$^};)ScT-sVPp{vK~^bi>PMc=!vVzmpi~)cM-aqQP z?s&G-ID9=VwOeYBP^;9c8bK>Yul6XlN^8Zeof<`{5vmkL&7i#&XEr#iYE%$Al-i`k z-XjP}S&7$8;1+)*hBxe+>A$5iotu>?&yn@A(K_L78G-Gw@y45F9q~l_3`6Y zcIf1EZ7+y7z!CEG=M$K^@w2-bGCfW0?jSfo*Cpevm9wo4r*q^!59FSG4n*dLCTlk^ z*e+^=S*=}7eSVnW3HSx1+2YjjiB3Q8TBX)_vd`tn=PyGFarKuWw1lo#1-Hod4z}mUEQ*)y)#xUuJ+|6d zU%kPB{Kbm<_2vJ9vlN)VpBF9tRTBUbH8U;OZCCr2cA5Ip z#)`Fg{sn~6UisTS0QPDv!odr6FbvRsS~|22#)T8tg%YBvuQ}Hl++7bf3p%y$zzedr zutsV1pam8x>X#-dDe>Rpu5^gkr7rjBNxQjE>aW{@=QNY@iir!WR6>Q#j$J?RAlRrS z#4kkyK!)ZU;+N891@^87$xyG=iW#wk%YH!oJ4@;W<~wFLf7r*=J>G$uL_R{>^;|9G zt5HC*eiq~s8TbSjO;F|uX9!Q0PZSTG^v$xD6T~2e=}Ikjtk1tK){?IVD-GO5$wLRP z>&a;uXcSp?QahABp5+fQNnrSZ0QL)prNwAl6j;*d{|FU|-Pw*_8%@ad=cJ=_VTm9W`NT1j#zY!^LO zDJreDm9a`@4?9NkgDI-Q;I%%T20MfBp7s$cI}Vl4DHD#zF8&0wb2O2qEVgcMZ`m`= z^$b@$Zi0Kw;&9wEnF$pihMOl|JF7ky`y>Yn*D9pFh*N$F^g z@}zy33xQ~VrkqFX?rzfXR#?@h#A=F&s=`2L(*fa(4f$o8NJ=-4|^ z4*LFJ*;&9K?b+9DbSaySRvCwpP6QCYviJr0(S1aCs+R_}KIf1h5vBb~uw#_*=ke?B zHGXLDevun@zs~>j!f?Mjncv+Ns#-PwjHrDp7VHfmb%sac!eWJpyP;lA&mB~8@`$5h zXjy}T_j&tZ-+RB*lVPvN)yXELlDVbky2aY;p$G}$T2pj%unBcj?r7a+UfsXovUE6$--vY9j2DyYXS zAR($Cs({4ty8_E-rq1flIc#(bBV5MJV9y<xHZ$BwBW_GS6-5byTm z@aP?G`a)ARBt$Eu^ghQDbP!$!WI<-x`YW2H0F#VrRS{23LeqNh+3mCGn~Zpfy@@_H zq?$v$#A2^rfy6&l-dKQX%s_D%Q3sjXmpqj~#IdV_7B~BFM59-2Fz_i&8W&;fTqdqu?1kVWH$w> z_8eYiwg+-&lhbG7fr6@GBr>Cy^JbNs!wQPR#z4L*=21aX$&yo=1;SHRK0#RDRW~X5 z>8X55Inu~+$zs)=5w4~KJF-lGhj9ELuVnU2e~~28J$>K#2Z1zu zxmXHnKU!Hj;DU2kDT`UypseF`0h1ff=@6BUzHprZR;Up3vGaHNTb5diIqsNtfUc`xX?ZRE7rQIRLZHS_QJL$}Y=Af*&-Y>A7eb-{F9VH32@&8dS`~|WUBbC`(v(W=wjd&77qZ0w4Q6?FAeZKYYdB4OPge# zeOqYik3x)R-}s=0M`rN_^!F6jUm16PrLIS?e0YzZf4oIm>BqV4Dnkwi{7xuOjL2({ zil!e#l@kBV^NpGn(j!E=r@;kS;00bNWT#v2Zi}T9Eq$G$6S}W<=rtHOBxXRoYnNIZ z1*#Qev6`Wrs})NS0k5?T9RnCW_ZIS}LfyL?bkw!#COnZ)tpil!+sB4pH|gmi!#&MQ zH;1{kd^jaZ?-LI-0kfiYihGWnTpNG};laWJvN*eNudAaKTM%{;Z}ryHt?B|h3J0`b zdB5%reCq7*ZK)ncj^Xfn`+*6IZhtM3Of?MOcebE0XO{BNWZEUEm4+_sW%}$sw4pL%V5iXMB(Xs}d>uef-zi-iBSTDQMJYbhHXxM^|ER_1uK{N7>C^HPm z8)C-WChF?%+V)uTQ4(9Ihm-Otrw8z0Ub}OCAG++lwu}no8T9w9QgQ$dKZEm3X|5@L zcmg+D*^!JYt)#d`3(b4d?d?`}KDZ1+=WSb_0k5t|-AFodbW=RcrY>M#hwH&c*NVm_ zt2%h_oU#I=6zxYc?w}0BLU5re>^KK_)r%US&G!eZqd~*rrgK+5dpOu29nmn%ok(3R z_GFAQ`kR+>7cE0U!yyfuWQa{#jWnMOc&cHZl`f>QbrCW~SvDbjsc~KAK5n}-2g#L8 zzZfiis<}ZK%Nyk)3P}6w-?7;dF1ES>wVz0VOz{-y8;m0-ZFGd0pP1l#HlB9(tYn}* zmk|n+cT4G)rG^Uyn_bL`Z%e&U&rZjU4VKFJ&6WYaEHnYQFNPG z3Ps?+*W*^qg;>AGRFNZdC3)NxzGY=nX(IjAF^u&k7Oio@H&@Cs-M2r5YSoXQp0D*~ z(GiFyA`!%^bZFx>6(cJubn0W|pFqQ6#)xs)p@}HcbH}Rkc zRuzM_SV8O z@JHlZ0=c_AXCiwmsK=vj-nQeZP8ukh?3q5OVOZimq3me5-H6)l+@Q~9U6jn3 zYsn_Io9&)ERoTN+5{|HSk&nSX?Jb3g%zboHTygp_@)a>f6=y2Pa$`1c(Fnj6N+)R1 zH4>>G0_;8X#?-TCMNBK8S#C94zX)(yUQDLPQiasa!fK!Uvg%MvMZ{4YHY7VzZ<@oh zJf%8wvm4h1W#mJ&6PUEv&s0b+`r4kpdC&rWOV}B@+uj%5#)u6Dqu5A@F zbvIR%PM(yOlIr=BmVDrT%)=IXoIAq%<9DvCx$Drc#C5mDs2ZFHknBP69rpC9n6tML z>ddtT3Dhgozzhkd+XIR`mJ?ZhMG_=&<|)SAQ+OA={Zq0U^5Ze0_x6yd@Q|>ISx1M8 zl>y;{uOaqx5`Vsy8kn*V&dZ(jnlhY>C4Bi;2;Dn$={w>D~H(+CO$&z8LCrhN= zTAmAk(bfPKVXgOg4f@(lC~3CbLXVj;)M(yYyY-E}#>;+S%Lwc+YuF&x>LQ_Fi=>$0 z-U%Q z-06fMddN#Hz%w<6O9wWrr?}ksST{`Q7f9T&*S*r|R+EtP38W?)3Z5RUMhK zJoILLDEK^NBzFJTN;p&=VOTr|iP8Migr7F^hN_>UGO3+d7OoJi-2lLFlby6=iY%&A z$at2*f=Su~qg{)gsjf0ct|l=4614yyE2Y6t>eUNqd*4^6YnxehIZh%7#?OLH=x$Eo zHd!!H*Qw^YM~P**RlAy-6;L;xH$kxtv-ds5a-U3{^VRgm*aj!!Y)N0<1Jy+>15&^* z@*;4vB2KeW6C7q}BaL`*;~Frm^R>O8jgBeNOw=ci?%j|2sckeRY?OnBzMC%^1Ag{V zVEho1S#96?)GPSl_JxeYi)VeT&+CUCyeBOkQiYua*qkHn14tXSmzB59C|wxgSQCBT zD86I-wQ}(SkREc20Y00*Jw2Cgqo#Q$cnjyIhGR6XHA1|3CHRe&r_1gqFbzIH`+`OtBL zj^`m&(kAf4L}#zj3(gNmro;@oF;TL@4$6J;0Oxp=8Tkpl@=~3NZ%tO2BNTpE#lSy5 zGoS3Sm?2}*;gsj&R5DgGu@Ey8ZMdW4hGch66@S4(3w57VA@UU-j~J1wGH}iTUz1t8 zr1b*ZFFAJm^m1*TmmPJI=0CsF#c}mvxn5l&!xD|Pl9Pjp#Ak5Lf(o=;a>Mz zmEIm$D17~+=gmQBrn`SLNVq24aZ8s5>Mna?LB$hM5h?u1fOkk}fJr)Yn33Kc|>|$rry+OXG^& z{&U-e%9{}gYM}0oZQ4|6{V>h<-!p#m)&I`;72*d@F21;p$IAxqq+2cfiyOB+CR=-& z4`(Erj+Vi^MVQsDdcsLP*;`3DVTdi#cU#3I5lJIkq*KRKE#gI>5Tk^Wx=T$~A=xC# zy)X^m#uMy*=+$R%L*w9WMNOVy%enj(BUGnMzgJ-BkulD5$K!;{I_9f%A>`CnS-qR2 zotB@XqS(fD)ub%H#;tk-X_q1q>8x4c=Qg3M{J#!#Iv6ovldmaA%P!DPAa=nP= z2pT?`q0WnV9mm{|XTw^~bkKK1If=`0?}!HHXSEyt&glBdL(iswCUO|iHJ%bGO01oM z9YcZ)jJeMzPSx@7g_+;nYkSm!j&P{w3-&x%hrGM&AQ3ZvB|PdPc+iQWQ0ebvu2~be z57&+yLo2}*mgY6eFI&$$KQ3JXmr6mtf~dfnX`RkFV?-WcD{E*NNUzVZ*q%10Xup;! zxJD|$z1((C_!DVuuV?L9@jq3KeV@GHtJbewb@;@hhyM>9iwu6LA)vx`UV+ptqDePF zMGkm}4YQf!BX}990N_GnEj{mEUf#U#+k!(Jr2dU} zK@Op0kCfkWMdIXR&-q9&bARyArCzaGK`?<2T*XfjYD+^mXd%QmB)Gg`p~YR8rZK_* zdv3ye27r#vAlEYU}h`Bf-*`w7b<95a*?$+>-H(?-Zt#X3WX0jn>V^Sd^QBw5Hy55a6 zRJm`PIv>!4Py`6_J>5 z4a=#V1^r@PS%thMYA+OWUB;lef2jzBe3+kY#L9sl(CUIA7DwOWBgMT6qUYCu zz;!c)H@R9`-3Pe7xqN8{5l!ds9+1xd9Uig+6W|6izeu?_3h^?LE^%LRZpM8{>k80xw>t{Z%|7E1QY-O00;m}j9OEy>MSG0$pQe1 z76Slg0000@VQzI{Y+qDmb98fGLqk(9P;F^rUuR`>Qe|gXa%psBP;zf{Wn*+{Z*Eg` zVRUtKUrj?_L_=ROH8?FXHZosBVRL0)GBjU8Ltim9I4vH&w4* zy?!%2U0?U~^mKQKoQx;}EDkIP2nd3>n2-Vp2(&i{2n5F`un&q+jWXKD7pR?rC;+5# z67Trq2ZWJ;v;YW5O%&X#4&=vg7;7)p;iAp znOt)-!Op(sb~)7bjLyZj=J61@_=AtZX6NeebS4DqA6FuEoAPIUbvW7TK~-h{4Ubhln^Ii!2_0$RNT-#5>`|626wxIL>|+;m*M*yxC&(HtF5X0(&<{3jv!{WrWZ z)(`z=i>y5Em*@F_PqlWFs<$aqvivy@1<`4Fr%r{U<|*iWAL+M z?Q7S27)(kiHUqO^dxv5XNf<`PT9Yg!*gtUe9?e&UiZ@yAlgQw5s>FHJVJk?B4|O{k zj?pVqxjf$Vx}*23*^~UC_DjW!^-}g-|AKH4s~YqnUc=TxO-=J}#d zu1{@Py+sd<#jbjPnsRzL9a>XG!miNyzJBa$h-t4@Ap!y-hpg0OoY?NL?E%k%UR@)w zYiDTAeck}YkL}H)I=OZ70oQweqwbetP#&j?HQDz|VBdRbO&ASZKsLtd(a!>Ca_JQ= z>#g_HREsG-;1yXC&FgK^;oC^o_{%Pz)^B}W`@)%4b#?v*$Ma>?eAr)V0G{`Kfc`@< z%Us6OJ|U=4G+H!ytnkt|jDAzpg~AQ72XI~c4AXj{_7^OPRgFsur$4+(WQpBSOlJ2X zs)~8=qg*U?IOqD<3Rl80$?)WQ!WF)R8BcpFC3QN(Zj&a7-cUr#VJk8)D;}@Sle#ST zQ6R~NVrDu7;6m2aKB;`qcH0PUhvnj#&+Mr(CZgRaD~yhyl^E&S$mV}&&p9L6xQ`PK=$Kxr&rd)wCBhBer=V9#RR&Fx$9mG?fI&e z#ipm?>4I5Ri=o+2U`b_I<9|94(4LPIxlP#*Ge0meF ziBtn17k3OPwY*ihTFvgOh;-~)pG4BIAVk4^sxq!K40L=kE368}Og88MLuMXD8u{z&1RE&th}0NvcD~|+W=8nlo>qCtFAkeOlz~Z?A+-C0OZan~ zYT&YDV-4EP#jnvi+^cT)?38m$H~xea8EJ`)bE_f8?+pISZl7!xTG)*F8N&~Ysan)e z&cYyM(=C|D2KWpF<7kxV%K9yCk_`kkKk1oqP|B0-GYcTPaADwgDh=uutWyV#*vZ0% zYDqy7FYu??)j|YZ05d?$znZx^j2fYWf$*#L@umI@rrj4WU|5_rxE~1%Q!DQf465un zp?>N(nCE+0PP{*Vh`?(p6OD>^*z7ui=KKC!1#CUKe2>JJ?0nr%*nGQqPNa2mJZ-d^ zD?X?1YCmA_Qhi;Xnta)#Sk!RY-{|o(s1Nk<@@FfNmE$G4fhzA#^QQrIXG_$W!xZEBaa$-vBZ*WeeZ&a>k z8af^BuF_3G&s7h2nu9CmdTjT?o**TtuEkmS^T9h+g5;Bj!;7U6vP-#r&Ok9GP?`C2UTbZ z2iPSX)u{Pa04N9uXCH6ITuRW=ALeV}Q_SvCEyP2nai*{6x#-_t50kQ-Hdf54)}LQ* zUPL0-mMc~Vp$W8yCfPUF*j;ZU=`F~!o~=XPJx z81XfQJ~>-{*E z-s>qZ>&?7x-RbwWk+I%dqjzdIWzl@u8RhjfW^kC!44eX{rwq_dLe)QoQ1A+c@Q05C zl|Dj5&hT1%qckA`SR0{)8OP=jhobGH0>h{I=2#PQZcIy(N$I@;{xm)t5VUrN6OCoJw>Xj7z);=1h=onk+A~hn<&YL9>{NX6ILn*02h%}fe#km@y0wO_FtzXB4lqU&8B253$7?r`4t#%pf+m+Xp z;0POQU?FP)4s{-mi;BY5w1Sg^O!-c?YXhfLKcGrQ7em0W`Hb}^7&#W^tSAW-TJT*| zQg;do6EZNoIx*8!^%HFYa^h(_q|L2sL%XtWP-1JDoh~|bq5*02aO-GlS%_9uKaDSx z&9YfOq!dHq!oTpCPSR3TO&Z8yMY#ftL+P8zukd&IZkM<5tWj))w@~b#lfvjvCau>d zgw@ipGRH6C2AoUzG+cqCQj zIsy2KX7~9UOWDb&_PU%WHwezQwT3V#6RZ*Sy~d0uE6z#%t;EQ}l;p4iQu&z}{M^KD zr3)mmy|at;O5%C3s%7&rmX-5JI6(kYT#C*13Sj^6l}bFxy0}PW2m?1D8@&@KuqajN1esSA9 z%tQ=~JhGoO&4WyfVu)CM(z9@uAFRz;W3sI%NQ&zkMh*aQ%J2~U=?nKV%t8Ps6$B6;U^(5+AqSgwepmwt-gDl9^eWW(p3}%?@W3)(GroG?@67y}0cF zGgmlR*C9idHjL?eA8#U<{3ENLCs3Iwy8x2BTs~mq#3muPG`- z_7f|>2;QrfBWI}sg!MBF6$*t1`-I{_ALyxdWzOM&gYX;nr%5Zv%VNi=>6^9kG3i-Nljuy@M4tvg5p&o>W%13#=s2;XK(FTK3%(%8yojV6SXq4 zwx)Rxma>H@?pv@tsBH_rE}o&SK$kuWN%6{HYtU-=<2#VsIQSQo*cK?uB@9V@iADW1 z#CX1|T5OjaFF2)C+Y>f(1+g0#IGP;%DIvLEO%E{Qej7bEZaorN?2|n-OkX}bmfXgo zkZ&-ICf6%%Q6jDfrDT>#5Vsrtg#-eVHoljYM5juicXheBpPgB;Qd(dyr=}c+oan3` zRulu7JaK?|Za}NN)YpMbj>M`#Mq>s|X`h+df`z2xHl1Rpw}c%WhD3NpLLZiLyRdOC zpAlT5rDTg~{f9q`-p}aBU%eEG0|lqL^qsEQR4$N(5r+Bn(Y(6Nx@sa&G9B1rSX5v& z5Gi01%_X#~Cga`;mekEs512#~$(_;grPnC~amYP9J`hwhEM8{UA>e$>No2h_a6%|c zbb+9vS-9-e?&Emwcv3`o@F|HZvct&YwBn?{GH|UE66aBbtOG1kS}Fu^s4(awZ2$0_*LhihDxE~mo7^vh<*e63~sOxq1_ zPWF>5@;QJvQ64;~hJ+UcBt4{>UC-fwh)t}4M*Sdhggtvv%WmQ$9%ynpu6?c@`>pUl z1-@73R#xu61RSeT-`5X;FJ63|w?EITI!DJBwA?JJL1}qc=Z3Jj46p)5zAg^3xCjr5KG{qh z?A7s8q1kXR)6G9+DrplxV6vya`Y=hXKZPWdIgC7>*}fyH#YTt)PBJ64N{wBaC-M&!OqdEGegKe}JL|h5&qcj7@D<4GdQlNvlHZ@hE|SMuG1D1+@{%LWTb7qBMigXp$x>W7)mG>`9dXCosyo zIvgvC4vDFpVZUUoU7S&n6yWS|ka9A5lj=VW=#OGF8X@VJirAQ@E!imgxkkgFKr`Di zD4xvEK$XNnf_O7y-iwq^a`!`(B<_!B{B$ZjEEt^e-f+I`plGz@akxEdOwv-jMFcWj z#%0anOn*G~a;H2USHtL;{8}wm**2VhG=J!Lz5heU$XT{Cd{59Cw>5|FpQPM1G1h+U zJjd_dqvWE~6|$mBRB_10&K-}4g-%<4L(@5cTVAP~jKF(!QB5^jN;1_`u}HXWQ7sKO zFv0S47fYhAs#eoM7AIwf?mLc&Mv3nI?a|Y{b$76Rku_{GTF_MgtlaR69olZxfUty? zkGNyGzh~c_L!8$LLpoXLjwa5BB$rdvNP%kMOI-eb!FIk19=E*9;EK``cU+!OP;)Z%ml7^#OP)ok(cKQy*@ zhrJbWeGwj0PGW?7-Rt(HB%%tcz+p*>{vOd$FXd2jYc%=W(OIj?F zE+BHyY?vq9NZn+MOJ~x+No$Nz$u`PVRvWq_mt%pHNJ_>jNMYR|&-IXi#BLYK8R(Fz z_?xbunGKT?%t-->seWZUj?y2;PSn6q1d1GLYN2t5sU>r(u0MT4Ts}ddc1K6YQ+1X(N0r|qCZFJTo@6Iv$NTzAp+1!d*djSEB^Hp2R>@4qEz7K55oAd@(K zOeIHkrUo{%wix*7?U=~P?N-A^eW@bMfp`~4iu1MT=o z#F+JUJY2XQW;n2~*B@O1H?9zlrrZNdl0ljE2B{E?uLQ{7yVhom(#f=&dBIyWUtx@K zhZ!__9TJ`3uh5VY1Y?CIhqDg~>3S&;i6wV{5yefWpV`M)>mxf%K_8WZZI%|NL$@Il zy%aiXWb94q^pf=ZN4}J!C(uEt;9wH5iZlFSfP&p*%R7?O$oB=?@^j1|>|hte%TJ_P zD0qJ@Xa~-O(}G)3#`P;UW2yGlQ!=PQ(7LvL$LuF*J^CDOk{Un8y zA?>~1p{s}J%aG~&2hOWUC6B}7H2T!xlJr0OYe_Td9%7_?4z{N?3h4qXL3omkQN9FP z5Q?Gcx!7Q;`EJV;ZIfa}@5H6CSo061TihzS>lHFDSltbb;Je$~-Amaz zp~`FC8JNf`%n;;lT{MY-kPx2?_PtU5r!vykrh8yuVI*}8G8?uj3F9Bc_mf*k?RX#v zPaRs38cyHT22W&YV{5S4=$(;_Sar#05ZI#>T|FQRmE+6i%OK-m8ji&fc?3sSS|m_( z#J0G5PZ+}`_A|u?d)e^l@S?j}O>#&Pu%pXrA!n@j?*m3NiIa*UEOVuU>Av5NqR$q_ z_!BkMU1MRGm&3PTa{eT{iV+XVoSZHl_Q|7GPh?{CYM=}D!4QEDuEL{;`G$d$l__Z- zQXtzVLcsC`nZzcB$Rx!TiXz7wqEZ}=%w*VGBZ2Hw(=2gxun1Tn7KQIHk&KXJ(x^2; zz65Q;cpL|=%kuYhRHt)|TuGXaZ&_jh@>7vI6h;(G?AXK-BWn~`v8~j4x!6GX;cu$G z)?Bn;A;zTBqPqOH!;B8-hxSZNo-CteYD%h1Bok>d+Y@}gaHzPmr0W5QfCf&I;)IW9 zlAduWWxf^}Hmsli@F&Uo*zo7&?>Bh~&X|gDlp{puB(l-DoTIhF?YE`=U#n=2hmD_O z$(u&00#paY+)i}3j#^k?zla<)G<=fG)kOubTZ#|g&@_dVAkRtR)OOt&Ldt31P$M=2 z0Mg(|I+P8$#s1_7TB@A{KLWS;Z1|M4oUZhNLZrD;eAPyCv!Kso?{Awfh^?x1EjvJ# z;mO0dE5fO_ehOpoRD>sB&@WkF{O^SA_+-lN!u@#^jVf_oN^lhW^D-60{b3rKs4-#V z{ZLgkIm-Sx*>xRzZ+#3OI&z+hfYSJsM5(Y0_np5gZ<7H*pF-Ie#blP-UQ*&pu>xu7 z?(@9%g*{dp+Nk0LDZLW^h4@=+I~vr`I#TSuQeg_L#6H0RvR@PFW0SWwMEtw!}}Jlwz$-@?!kafYFF|Ly{f`Y9@qj&1o~9}vij~p_=JiK zcH)9keM_Gb$g+m&(QgbX-@-9e7XTJCZjva_!z?i%`6#Oal-T-w5TBrwurQgW{2=Fy z(zGYiaH(^?-)hSH|(#Mk$}bC$c4$w-7wao{usSE>aC9!4zn527^K) zT0tH}T}87zt!QUF%&!Ahdbsi{HeWf-ixE&1fG9cFg7LFbMlp!ousqyoVc`Vp$P#b; z>w+k7ZT83SB1S&#m&E(jH%w4`Ur4_&~A9ePij`6#dU?aDUC_In&VBLV&T+JWa_ zD5%#)2sj98!n3_x9iB4pLW%2AlgB9u^E&3h!8OAcxqieLZU8!CThw(65?QMGlN3@s z@)G>-ssu?cYojb7m!tVaDv!sDW%F(%I`C~XjPIcZ61WLu|DEe6v)~8L5KaJZ_p8|FPou0ga>|C4dwtF)PUrrq__SO#-i#m^H;Jwt$+TIE1vlx>z?DIyfotR@|j+vx$Q^SgvE-v$3e=U z5^*1=I8Ci-t%>NeISe{bBes8~Dc_)4}<#jkm|B6f)*3_RjCG;HVU}ei_w7sMM?=|2VdY3P2J5 ziLwWcGyP8l39$cP0w4$B=mcXTH3N8U%4+J2!^KC*TulU$v(p5A&-}M()c9WDsZP97 zYD&xlCrMMXuEYbEQ5@Hy^_Iq-71iy?PZ`*H(l#jjehnM}-)4+aZ8Y?Sx73V$ErW@* zF;^%TGf3z#h#mkqR-3Rpi&24X#Y>IdsbTH-wu4DOq`r)4S)IZBT_!Y%X3+C9cVpU| zod;3dFtLgVEp(Or*~vXmx*;JgZN+ks@B!q2Jyvn?ZPXE`7(F2vNa1Nlwrq< z%;1h9>9SVgi@NbUTTFKwgnpWEZ(D(h(pb$Hvk55SjnACBV_8xR0fU+UP$bORoAF+t z^zX0Yx-zZPiDJ;#n6lm7#{6(mH##Tjecr z#%K@5W||grtAbD;Qw!@K+NT5YkrL9usxo4kuuH zXc5yGL!$g1>mibAK=AQ4!%FS1)QY22ueCkMH542tJ~P$ACs$YwsJks}5DhSmyi&?n z1j~?@GS9${377H@3NsbUondP5`AR_+_Z{Uce&HNIyqU5mEMb)tp%?-)Q879$wXU@^9lwd_ol;n0gqS&jx*oaqkOtbTb!SPZ)Pyjdgf&9b_ai^zyWs z*d`MC*$@1LDEyE?RSvoJcnp1cMLEOISnv_DC2B**Td4m*deSxTg^*{0dJ4c~L}qB$ z6UyM^>B#_P{a}Qpc0wF#Yg0-}IC$Mc`x5`_97u-L#k>j8zFd_;lu0sNy>EzsHt{5f zZ!bm)s+MtN)fQG3C?9Px8&s44fOLgjZ!Bq8fQZ`9xxorP@FQI{2n(A(n!=t^>=%w zBn(~iZX9W0-I+L5G6q=48S9Z>HK9_({wilD#aX_27#VCAy7OQRCx|Km>l9^W;%9&VV}IDZ-Kq~Y%FS6x6rksflyeqnl&AB z?kBh)ZuBpBn54{&zd>_yX^G3PkqrK`TweMmqfW%7usKI zK-KR2iM|W3sm@%$(it;I?~CSvTF)~1jtXQtQ?BT6!B(;oxQ_~Q|2@jGZcM?UFF)hc zHyy#B&Q$^&ZM=vf1f#g$<+`Ps%bYb$dR$s>)ax0zI#^__MJi!z9Ej`IE5t*Iake1K z3Rq32vqAkckZJee{wA2*XS5nnTIhOgh4o(iKLqntg=di>bzlZ2^4TCjj0PwC0RTr^ zdOeXE#F2$8sWi?F2RAvA6TcihP04mD=9LPRYER)qec)*WI_7mO3zSte6( z2OHLciwqU)@sM$UqF8dBemQk;8-hv8h0@+>ArWug@}fUTSUiTk!mIga4$G8^>w7P) z%fvOhV6EkYYE=`P#x9kUxE#-b%=o{0g8Xgli^}6p!_Odxj1;lvibj*#M!qNjwga!a)87YckvopA`E#yDgrlh3%oq5d9iBl4_| zXT!wbOE&x(ldL?OtCkjZejc6_$cr3_52%ZI>RbMnv!bS!#1J{k>Wa-d<(o~f9WJGf zCSX>0h@uE6>f3J&V$%^ELU!fKZ(v!jzL6A?qa|;W3jW68ZTr(O+DP;7LL&rrfg((T zxW6$@@71VhXOH)gf&a}^$#yLH%d8e#?lqJHA)-lQ3i3zG2fgl+FZ389Zg!LUzNS{l-te)&NRhz9?(7zcTiU9aC zybwz*#}RK<%fI;(=byT5#QFb~VC)F;PlFP4;vV#$C}i2oF#oMdiG}O)KTU}TVaW#l zCxXA>&_9Q1VjYpM12C*0$j1EOe4t$_Tl(I)yEl%{v#XdR8c|?r3P?; z&T3YrGVB~QY}!}|^K zXaJp^EShKW_rK4BV9ACXTK3lJ)IJE#`S$Z;7RAJ8aF9_yl|#I&&I@BA=&)?vzcWVq z8`os({^&Fkgy=_7NL6`BLKG+wTuxB4yemVNYnvID6m9&d; zQs!EFYEt^-3_d$L;95R3Ia?^+6}+A4WvPCJBmj@b7k*v|o7HpV$HVk5U~&3D*>C?9&8th>_(;CjZN!uE;`nw@+Lv3~d0XAP-ffS}=c0MI zz*3u#5Mj*{4oR(Eefrs2|-KGThGp&W~S0xoq~%@)kH zpdBD4H&5r)IgyOVRSXH!TJNhpULPkzobFcFN`ZyY&{iI$uA)W9FF}8_HI=bjixg39+fEsq%RuBO6!oREkia@tSS-M|X#! zvN&vX`vMUh92{1gtg=3~_J=|JOvqdAu2IclgZMSF&vy@p!tmDY#|Cg__H3!?mgwF| zsfeCRSnnpq5z`@cE%NQnU`mv{YWFfafT40sbx3BRrpr`=iK&xOYiS3^rPlDR^^~AP zC6gV*;H49vF8thd*`|_AEToo_%xA?FcIl8yFq2Du!G8{p(d+%yY12dH2{jM_x6y2o z&LBT-Xn?2MWV_RckBDOwY%@Bfd$v?FuKl6p`-g1o zGaZM6@f0q{Gr5J7C)cv8q|Mh`-*t!1-BR@|9k$W0;CihYJkJqcaYIWNKMZ2aT6x#( zMyuD|9>o04q>>qQ+#$G}BovmJEOvU`tTLT$(C=%GdR80hlk?8F%hUL*B@V5yhR(E9 zEH!yFRrU3N8=8dDM+}$iVTMjG;3ROaz5pa~87& zsg6vx2-tKk+-bBQ;9sAhZX*uZvk@foK;N8;imKdx-H)yCxZe@BzUJ?H@O5!DRfd9o zq*3k?nnt=Z4l5F415Nm?HriWSTV3ah<;^!o@2^%G%nWv&XA7lkQ74jl+}PaOryi=hnLWBxjfJWDkfQ?^*Gc@=sE2VJi`q z6o`)RZ|s(ep=;QS`!tT}98WRa@;^oP&63{vGsCku?+%;ZWHQ<54x`$aIO2(&!a1(x zTGy7_oUFcmoBudteD9CD&6hN)U7j6Grtq$z3w393%=)-1fhF;RhKaQ52jNr!AC~>m zfa%Rd3o`GK`SNRAe0@-cz{VCB??K4Rdeh++|L5D++qQSvJM--%As!ERpuH*mBu)if zZQ<_3oRtPM9l`kNN1g=ujMrox=tSGp&RC~M*5|uyMcnB_jjJ6_6$jpz6FMVc<;(Ko z9rsHhuhFK`U4nX0mdDFc-DUc(gtkKW{fpz#cy0FVF86Krh`3+Kru=o#)gVbc>=&gc z7K1jsTbvy$?|oMtUyf#8LZ+y)Vi{eo_3uCZ2DlOBn4yIQi_5VbMKzp&$8{=`=OYON z?~dsD;Zb|ppeNh%o|~HLe^j^0RFn;TYvS!Qk9U9)>AIR%q(IE%uJL=T@I0p>e;QO= z)O?Ul--E{*}J@5X0aw z=iu1uYrV(Jc826JW7Xvy^X5}T?QnPJ`szXZ&Fp@kD2p zDs&ufB8_jTaC7Bs+NHEt?qN`0>tu23<93mj>s5fLmMOEvf>Obx)S7pp$KhkTNrGm` za=nS7g9ED@(HK0rV9H&93MXNzzU`>g^Pze-X-AtvD%ajb>POAp{e|K_U*xh}+Tr%P< zIKv6)Vdj0UY9s8-^%xqlJ9K|Yl`NWi;-|uix)Igl?zorU)dmzyLK;yz?qNpM7|-OE zmX>O^IaX-2*k0`n^aUaQxVajVSail(*ICB7&vCEqxqx`SJ??8)I{JhyQER;oFvy^P zS)5qmyH$b4`AgUYYY47pAJwo>O)H+Gk8reH zrS&u|NaNVzkiCpkIv=hLSn+mzrwbC8LZ0;m0`45Vusr%C^{h@<-V;?Q8r>}CJ7s@g4M2Yl{|>JsV+&h^jXBYpJNr>=|m! zZ?~g7Yy2rF#^BFpDq6Sua9vN!X#|l`-_bb~aHefj_DZo|ub-|a^QPLOx`4Myyybu7 z+&ZJ0Xw&E-3c3iavWj%EP?Vy8ARR?v5fKy->Ag3p5kd%lD5#W(G^qiR-n$SW6d_VV zmll#By#xXT5=cn0!@6hto;_#%A%~ecGsF8noOoq+~TWK`WlJJMKJQOOJtWRMboB9Ns5HGfm2{sidAv4tV);F5 zx=R^9Z9k?QFMwf)EZoc^1^eS@=$s7_FW1+wuKl=P75VgJ7#vGV8MQuOQ_XKa6e)m} z;u}lxUoez`6# zOWAWh=Z(H1Y)xY$wgjV5F{b<^k*zkQj`ld{&UqQj+wNl$Wb>>`Vccmg=7#qI*2g#Y zx95T8URPJgBlggUOZdF3wVL0;pU&$7Ps`ZEA_}_s@N}u5tpsnEs))>8=njeSK|FJl z$sUYtbYmMkq)Q+Kj|#TTT5yZnvUsn| z+iO@@boixT&o8H6;6JxRz7v}^j_7^wM zDW&E)r4faf4kc8hwSt$|ZJrNQcsvwZjps+3emcx2MTvxcbw=}(<59K(VY_cdA7pY+ zW++DcMnUIWr$avaX!Y@sCn9^2SVdomCd=A*N6jgp+|eImd-W+X6QfuL*9_HVMsv%& zB>c&1qEl5|%0jW;n=+Z}0T$e!9hPR5F%1$P<09n}{yK17GiNm?rwP%mwtvijCPVyv zw61eoKPb;!KRfTK)d$~6U^C+%GF4Yy!`)dI=C5XKpAmqU;%0ma$&W5OE4LCbn`!44Sokr<%vKLq6K`=vylXKa0aMt<-^_jgJq!0H>T7kR|p6gMF_-f~YxwV34 z<7(AD*sqdSVcB0&Q^)tj`*d-jm+S0=+pVCf)ywNs+uQpn_bjTe)0v-$=V&=5Tdm*4 zp-(_VQE@_x(tvr+ppP5YYm|s&Zo_bCw;ZREA6tp5-}Kw|$A|4R)`eUBXRa`0MXO2H zeKk)6hI$n^_tHQ)QX@dOC9{i!UW7(Rw5-8^UOV^g9e|KQL>zsx%3&uXm6K2I-ZX80 ztCQOWowgX$$>{ctd;=e(^O>{m(} z;s_xVA56V7cX9Nn`e$&p8@JXpH0!;F&LKQpt{ZE*!vTuruL_00bU0UCYBZLDZe$Ts zO|)T8E6XuQpUivv7MgOo?JDe<)%IMJX{#D-?U6rpB6yQ%lZkKc`;DP4a$$VcB3ft0 zvcZ8`e2OyOyiJ#+duu?}zU+v8QOw2%?^yJ4jrZjiFGp+#hu&aydhjBQm0HFf>8;*m zyImiTbq+9~3kN)4Rnan-(03UVRtc!a`Hp2;-e~RousoPLMxmxn$Uf$BD=fG!l&9}- zxWA1#VO;PCYhM*iT5=oB*Na$Nb6<1-CfAeBmfEfC(okh{g>vO5)efk*eer^ttsm>) zhOf*#pev~aWzLZEhPl<{YfUhW2DRNyqIn>4BVO1u#|K==Q}cM7@50UqQW!I`KG{71 z^MOFOIGFucmg^g-KX1ZNDD7Mk8XZgtMRan4S|}L-+wEd~`JKsc(2vSvr1hM72g5?Q z4qO`OgWMbQL;A8Y%yv+sl{1^#Zt5tFw;Ji5@k$iNpsz;gPvNnuijt4Nm3ys=1yIY! zu03{+Y&f9JBbMWW$t48Gjy}8^#C0*pfJdx#ch8B(=J9zq1rl>pULB;EEeXv2@`f69 zFQ9bBd_fdNsNMnPO-{+IiRj_fcVTVn>Xe4=+M-Mgnve1cW?~hzyxwel_y`HgQ{*tV z-e2lLW1U#36&1~BSFJufGMj>S%T8dT3@ah2)%`~?Fp*dCuKw(dGCVm~?rUX*)oBlB ziGwa`+xaSbPFB9$wkIcl)Xi8MVETp5a|D8QE9ZBMTB7PtmxnFd0D!l%ye@V}PrK|* z+=!FIJ`Y?y%yzG`9-h<*pt-j~38rBeqxj-A5x(fY`Iv}PQ8U{vy%O^7{3;Jjf2Xcv z0tew8Y9UH{xgTWp<;AI?XrFc&u@xJ2IJHT}}s+|byysD=V3uit&HZkea z*at=lMfb5n;H7~Q1s$Jc(ML7ksv6{o&gU&-FAGo}F%C#}GQJ(I&=)rx?!0{VR@{|d z72bO9!;}Rd2uc|`Na<` zdoky7zVIE5B8N=Qu-#$Z1TllOLiymG1%NjAQ$+k_-D@JzcAb$uOy(qc1v~^$PIk*9 z@l^m3)abul&69lhz;QMMkMu`f&g3POV`_-sH(R1Wo65Bgl=cl(Zcj{=4^5_(ml(2Z z;+$J5e`DnUs$8E>sxmPYs(?UdYit}pGG89{;!l4~5avbtuY=%-pVb4DKk&8019>!`|FF@KLC0X%XjLYzkGuAt^G(g{ZY?SN3 z<|ga1)ui~rFz|9cXK#n$kIQh?Di0M}N%wEkb1O;~*B1{+o|gKRNze*YpT*gnQFdK1Xy}l}Cgkvb&{zz7 zc%y3qM3_V~p26UvZz8V(#O3_}B0hpHq&^=3ZQfPFyU|x<;bHkUQ56qDcL{< zGGYA|%%3~b(K`JiJMGgw^QNa;@+_jR!=Yw;PC7|I%)If{IKam2Tdw~0O~zgD413S5 ziw@npt0pEU9K14)@DS3{K+)=6)O6!z4;K^ZqE*FJx~5ddvoeBT`-;YOx47>zH`KS! zj899M*S>9<+b#2eYJsVdB-UMHb8gvEaO!P$c}ZS|ZPeHZt@`!i zV=aC|<11uq<*2_ls##>OXc*9|)(x3{n`EAy>}A3yxz8K3%Y#K>BvTs5=kfUYBF+`1 zY3oXYEj^BBPt|aY0zurO(e~$IppEIeBijg#3?Wash=lFiIX$Qp7y=+_#lv+K`_-B< zcB_tojoV`yc`VYM3k#DQzfH33&qO>;dMYEtWg%Y ztP^9Tab7!$%L*B$4s51KtvcF^#&zLZ{X+TfxmytpHRWi@w_d^FcTcAzgJ|%v*_zepJgdSei`Gtur=hu zHO?hG^;2^y7|25b#x7D;czIKUCX>7-oBz{OYZRcS145fe7+pfDK{d!oH4Oq=Kz|?w z+ri)h@AwxO5|SV;WXj}EFSC%LToF2Tsq9A)KK$8u>SN-u#%6A*=asXCwjHleZ65$* zkrVRM87A8YPOuE2`79nfj&4VjRqA+^P$eB;6DkM^D6gy-y*?J(NDDiPzp`=s#(^+)# zb`7SSh6_aUsRoW1P6rVzNt-i!quo+MxUfHAT18s-?9m*{xVXxxPeg zwx_;b5{8#lyLP|hWP{AlpZx$CX~7p50x+(vxY!_F5mLJnk=lu$sdglwMyWDD+B6cQ zIr1H;O7U#Uf$+>|FEW%5$L%*~>Wh|=JR*a< zH3)SW)YBGa&{EW>xIwy+de~T7JW`{8-1{VXFX!LGGmI120t&>#>RwKq3LYZCC_lXLNa$je&j9>ZC=<8Q zJAJ8+1zWTSN)al>Lq3NMzN3zpS;*6X@gJyJVOh2#U-Venxk8sxU9v)V^cFAP;2+u^ zRA+WNA*lod?x^`c^#SAVVV8EJJ6j9m#hU^a$l6xbhIo*nYKZINPaf2#RKM>Jg$K<& zKOQ2Zc%^JwfjaoJ^O8=S;K8u2h$OZ<_TlGHDFC%M1#Or+{{hOKR^`-pUNN!KUu>$< zj@80wk>||w!U}5&Il{1YxT!N8R!iJe+w`Dx2P^FmKlAU~lYN+74g%Jy&oJBj`I`{< zp;|%)mbzmRg&%5OqrwBI^oA@d-GYa01J?;1S3Xy7$!~B(1C;&a)sPU+V{p zHafXWLp)v}D$spbZQ(S=W*dsg9sJ(VZhlR9J;gA^PXOQLo_wH`oy7X8`?ON_pcm+z z`sp&YP|lSJ9Mm}LJJ3t9os;j>@D2G;ckU3Nv8XjI8BB#cU*L2N&eCN~i(jXOd#V7G zZ)%I$qB5qZmPHzaLd6NC%Q^L~{m6lqv|IC*JS#JA^jj=7tC_rhH|*SW`2BR1K=<2R zxlmOGQy9n+Or3`kz+XCL#;V~&+3OkLFtr^@0hdhDa)fz0r>mHqxrO%@kSIO#Gc>jg zuual!wr_Wx5>=`A>$=CMgQPG zF>)t8>hN%kvCQQSZCJ{TiVA>u9u`*Rvc(CGm8@k3DM_Wz=ua&^68?LJeB*TW!6&P# zDFi5jIIfs{2tS(}E{N#P+38Bnb=yerKVp=n#5gmMeRf-i4oLIHf=9xH!=z>JSeU7* zrKZbEOoNSUYcTzqlUMw7_~w2aH=>0R&@h3incthRv8l9eU;9zg;5p?7ba`7F7vLxrq?|d}Cb-657ptbMYbQA@x+2}tOf7xR41JF&L zJTW$|(Xb!Nz5|FClajW^*m^I_2T|=rZ#q@WIPgcY3D9D)@e$6YmW>}X`*g^F*7?a1 z+Y~t8od<2a?L52RwTvGjVWdOe&S!Fbj>y#i3G&`hcEX_m(SxXYU>FE?8Qb8uYVdhR ztUuJuV>U!VNzoHfs5Pd<=EAW5Xub4^6o+T^4!hE1r=rDGF*|79z4CMg4*5OJR^OGy zN0`>2R}jI?5vPt6hSijl!vi?GPQc+(vY8jV=C+7`3CEg-z8Iwyx-XBPq~5_4*V|;u zUuy^_)>C&GFr4rtS##_*DD41BNzGcO@(A8y^@yYhJ^SI`2CkqG$aCwU4`wl&LX@S#1SVOJ+*3-G^TEqmy|d- zlaX3-wz3E3j!i{6YfnWa`z}ntYrfgVoT=3JylgQ@kX1DuznZ`Hb1-9u)*c?Ek=w2E zFwC9E-mep@zME0I|O-SyZiG^aRN&a62yX$(a=CvM~ z5K9)XV^Jz!W4?_k#(dzkic@lkk?4Pg6x1{F=CKev2ylVVOob;8+K*h+XQdWJL3u>>7mbc|?J1tzFHk1q`sD>>T1h}%-Ov0r@&+dABk_*>Tu{B|cezueaeVSR z%8m}`NU!VT-e#@Nz?ulWB%4(9&Uet*Z;Gmpd-;WqUTXux!s-n%P{Jsg12TO$4~CIs z3&ZH|@anq^eGkR56t*cl`Dp}5HeE@wuy#KWo!cN0%b1#>??c^WWyMnfp_ZtTJ)?W6-gnB!|fl z^;wH}wro7`NWbO%mJ*!6{-*VGrMuAiC%<>JdCqD1x{eJ{JRQgY zG;t)JI~rOV*e|IS0E`$R5RFqxbaSqUwaRU3OiaL?QSB`luv)NH#Xu(B6|$!r?Q&i9 zSKRkr7zt12e5Tu(oS=}z7vy4^aHYQWeC5~;fq1#N^>0Gje@e=g)i3vBwOf)H_*kHr z?O+$K$bINM-<|*r9P1Q8TyyBkQVT812k%GBI)wfh zU)bYg62RR;c;xKRwszE`ERBHbtfL-r37I8jH<+M*=`UgLG5$r-WEBv-`%~0&AEha{ z0b?a0L+@FIwR*^|t5fDHD+I-IcXqa>VslP4j6C~62tk%uKkaE<^8!8cZfCOE_sz$p z`v8QUJ=rK%^_tUo;z4!(I;LiTN}O5_LuokEX$R}MPM$%__lvl!ZogwL}Z_OrC46KdmHAU(g+ZOVTTys$fxwpkO^tm6MvB+vW#Q}FG#at027N1^{yOD%}-Cx*$l?pT2-lnOYHh|63p zDDix>0euw&pYo-Cdp{vU4NRdy8v_QOIvxMzJ_^N} zP~}4RUyy$%xr#?JQD@|x`)#4A_lg0inzZP0b&hzaM*PWCa~8m69~S>H0RS}B`T07j zI>*mn^LcP)G+h0)PxNG6H1k`5G>h3u%Th|n-XnD&eLk0-Qpg_;SByip%6%dG*&qQ^o4*jO%rjC+IpLAL=w!tH6Nj+%d zXoTLUP^bD$|M`#GvA&C_l6jF3#6|Yfds7OO_3U@}&N%dx2{K zvbHv&ZmD!-Jk9I5-FY*;Xvfkz7j*a$M=~Q`?dxoGJfuq@R$Tx2qmF?vll$*aAHNb| zI3W3emCAT#x}ou;fime9)V#G2i{KWVs`K87vqAv6)5SL%!U!)S&gw7IA7q|0WqAG# zul34Eo<0E9qqu}ZMh%pXS~Lh7$jftW{p}cAt?VPu45LyH(m0VhY z%ko1xpcw_O_v5)arJmvvFNsN<$;18bCtE=B`{@z#`OUmzO@lEp6?IqysG{5iuHi!_(j%5kJ;iN8q=f)~ zQ>LyRsUW5>tYE&d0nUe^<#oxUuDP9(==yxi@nJ44G@xrfs{Uv6;4hzM#|?p@jKZ8! zJ91Rfa7j&_M%6Gp>9-4RT|#eT-#d%NXMNc#v6B!oJ1*QP7Pr`>P=pd+{$n1CIuyqa ztM{H-s#2ZY-cmQMLVAfHthlDypYn*sJjs^fmNPBza*tJb5Mv;{_PC8u*_(x@q-kci((XI5JlLJ{urBf3Nve>UV$pcekER;pF2| zwgAxuY&cg!3(JP;P&nJ)&(HRs0L-Dj04r^HpcnD{xo?2Q)7PE<{K=4l?~$eRFBRw5 zKiODa=dxL>Zo6tN|EKE}vPrC*uK#d24Y-n*i+||g6`R6895%?%y>rtDuv@B>UOf3f zKLGka4&1F7{ig$3r?md33;2H@FydU{`K|2NZ{czg*g_(v!4TJ=|ANBx3vBR(u$S-; z?d|P7Y-juy^F8qRuaFz7R5e7f#A1eHzFUBTxdBbU)A{K5>K&r32`fLvF*uxd<(KvM z25@OGUZy?PHE8RL@fllv)}!Tu?Q@;yTsgFh4ifzJ@DUz-tNx42X+mnNPmfQI9KGG> z<<^M%tSZnK3BR7oAGuGq`b}V%FsoN^sV$l9Xg7qng`|MZh)BQkm%G^e0!C3~01pC+ zBN5l~AmDI6PDs_c|I?8v@Um{4#Bl0^P}+ZgnbW^q%+XEq=R&vI+51vtZR*^Aj1?I> zafi^z8-&okwIBK^GMVx&aSE#bMjn4W^KWmBE5xAWw9Wx%+CQ^oYJSx__LsVN9xzTk zZ}7$f<=Yg%IRLW}G{6`iAD26&dSp7PRyBU-gTMOq44Nw|;My@yx4*3BzurRxdU)i! zoD)`1wE>Jl1dSRJr+}gaqS=-29$&DLj&R~*{@&>bx!<4tx7RxJ7?k?=)Bk+mO8^=3 z5f8y#5Jj@LgwaEs9{-LYV}|WKQ$3@iDs+{P*v$8a{oh~jZ6f9`i{E*EL*iHQ7v?xG z_35TV_mQ95%1Ry3yN>+JmW@w}-90>XV=mkbTpI&C&JXm;FHnX&3;%eh1BC09;B@BG z;ydxr_c!vbjW%)sZYe$~luvzI_x&ZQ=MPH7)`^cl>~kp^vr?BqGuZ>bV^Pxk%aiZF z##+V#)E~fL0BsO{@q$Xg%F1vqz?pZw2DUu|Af5p6y}%$nU(hcKd%aJfF-8e}+Bah3 zK3`tDl#_LO%$+$5=#=-pn)%QX<nbuZ4H{I@qrVS&jvDzwyea#r0*SHTrd0J8^0`T=st2B9W``DUX^_|NX+1)(G@i zIAgVJqBp?{5ri9BVhOf>Af`T4I>nkWmhIVYaP}|BST$Mg6iv|Z0dUuB+bh7Hm!aS` z^3``f@-&~E{kOM(B-Zuu$lwHT{sRbW=7Wen(O0;6QCjZ&QRZAb)CuTUN2g)sbvP|w zM8E^A@^s$VX|4)tgb=!QRn&(Y2lx3nL_)|yS7QsYUpJ~P;M9S0++>kkChxRXZ`SXQ zai<&(F2cT(>>Ql2<4qh1#}`~~J2*=nZbW1v!JWoRng>fANgheHmVbh@m%dqKi!A!gBS8AzMwgXoi zY{UoYrQr3?&SJbRb&uR?hE8(2*1tG=>%2s~OXJk%znc3GK5sre0Sw@=%!&wL0|gaa zhk&K%2IyTNnMJiDzxzAO15z(Alt{pP+d-N=w%44#>RYK5dsDt+e3mwnzG8q0t0 zA^n9f`pcC2tmERkruR4jRZ;O&yVsTMI8DeJc2DHooR7aS?gzF>{7#n)xI9Xg)ZCaKi+{#Ji$ z@1x=T!@XzovdDu~z%USs`sLQFix5M|WeXZLz`De?+R;yY|D^ku8kDb;&EEfsZUfQ` z4MZ)w$l8!KC#)5rQ}%gVmp1!%EpCPp6FRYm^9tFr7Kw-9@dFwr0O`m88nym7G@#~i2 zzwU`6!5MBpCSSc24pI-_VIR#vT;_v2H=5-tWV=z!9>j@giW*)(kO|Da4I!L}h8dRy za>zLA-fdz3-gF%gt%9t{$-!sU!_C3#ao#N@Q$6xlRE{cBVbOYpDeLM*;}|yAe6OC- zTb{bhmPA3K{w!7b;nxE}o#UT4UD;HXBG(?GTJ?_oivB9MQLzI}VapmF z2*_t`tSEwwv-q9u^7Ut>ABx|1{tEX$zQzXk(t_UkUZy@>rqDRy{f}^=$jHo^g!N5` zZ^!P5Cp$Y9+F#?@x1V}yzS>zH`FJb#<(4hMUgO-TcqY4QE4?py0}63LDY3__-g3N4 zVz;4gSP9vL`fus0M>2NET)fu!d{mon@7SHLTiF8a^Lo7(isdzB$5?-HFCpd zRXj=~`1R!QG`aff)z{)4lW_w``p&C#d}@eCMe5Gid{QA1x1TtYXIu7AkNUW%g2MKB zOMes)YJz_IO6#}18+aO7^I`$^oq8FT*MYq8RtSTD`fKxIH6a? zPW=J_Xh5nw`i^Jts9(RBZHs>m956L8@xlx5%lRBU`Gx@QsAK$!7X$1Asw)->C8YCc&lT>+sA$rd`=|kiZT5 zVnOP{nP2~l_k*1-x0e-EbzI~|6Q7NtMDu}KTs zm^MgLkYp@!ioFA)n?;2HB{aIu`?a+VtM_;NRv+G^&*#Yh=He4qpdW?%C0u)mz|c)r zF#`=^E6TYd6A?n|jRm`>cxI8t7bpWQ%fn~{MS_Een3;-wb^h#$$AxUQy6aR}PiaOI z@rv^ef~~zmVMfzG9OSz}*~q3eeE_;oN+3j&0#An0hbcpd?mA$?5Ev-@Y{v z&(7=YMwvD|bBW?Mq`%l!l0ks5k<#vf7Dp+62{3OLAWBd+s~jCcgAVpnAXxGfHq*+S z5&t*Bl4#!(#P1Tv4*0C~rBC!|WgDvCTj$z?5piC(&6&eZ(#Vz)2d$NkkOiZ+%#j3* z%#*KfJOr1&JN;VstlGZdAGII&_BD<6YxNBVRi9C_&AR_aimq!E;~oEiOCIktFCA`$sVi6o``d(oaN zjWTDahA(j%wB-oj{Nl*HgBT=y0X$_-&Qj7izZgwRICB2H5|>)6C&>v~E?`KauHj2N zH{UhfgLyVz3UHnM-HcRsrD2IK>Bst?IP~vtF7~#WRuHjsjFj_)^7Y9;KTL{_=5GJc zGcOu`X9$7x_(8AN4XLD5VT1|aJQD+BQt{f;f9wr*(&EvXDGYh6b7xL<60i&%F6xI3 z&rSPphC1S?+$lb03igZ-+~bdgk@hRnSQSgs=WWf!x7*m%BEzSUwTGM zU#i4PznOx)Q_)3Txyn2Adsjg#J=RnAGaPoYRAbO_$Vl-1L6&T*rt<_tTgaNo>_v34 z-sNSW1PuU>@<^7)C02eD`5Z&NyLW_xUGJt?O3YcBPp&@5WCOwsiuCWsO5rq(XQ>|gRDTg(99JUv}D0pu6Xvub^Yh+&I)Jq-?{KF zA2Kpkg;$$xLD(#aZV*wu*?%xc2*K@*54Od`K`@{V7or15oq7!@!e>H$dRISuW$t=& z?|5vr-0zORCE99puE6nObV|C7h69cOuLqa=qY?fSh5|JKFKMD)w6Oj0=v%UfE+x9H zA={v^$-{}dCD}VPV*g5PwA20LRL(dp`DNsA-vU-a;ow-lxEkAP zX6yiLw7!cO1`n8>kc)7FNHO6JlXZmWWSepWx#sjpn?Xzh(Sd=P4rc}Tp>S-6N1 zN~u^%_3-jAcc9ZPr%j_bqfojF|j>W8R`otV0$aTc$~*rdtO5fsoTY3`CE5j zyiKo5^p>8ZCEx3vMK}i?j|+sr9HQ@zJj{oJlmIsp_?@ow7(!N$|4Z~J zYFfjhF@`9{$3D-zg?04GtHf?;Td(xT)h73^$`!(mQ7gWKxJXvip+iaW{D+XO)g`Z(tJ@M>IiEU*pUAu_H{tz*axy)55-5B{(JNOtO+bhpGl#|qaebs$s9vppc1IjIXtHjFY zpA5C**W%3pqw)a@NKEf+g;+aozoI}6r;b@mdPMrYxW?6Y^ zII+gdS`v57gnNeG-*G<)_N{Y7Lb9fZq3rG96!yn~+4@^P8n?pYK zuzf)Thw+kX3rs5a88#B0+lkvYy75PhGH&ie50*GZ26E}s35F_?+PBd1Jnx+d`D~T~ zz>wIK?#ky)J@k%uuVJ;K9?|1rd5 zAm8|Z$rrqHZ*9HCgOZ`%2zeoVErxm|P4)6U?z?nUpMRMGn8O`+33QHu>OxIcQ}l`EQj681=iX?@0Th1y1;}3whv4 z3kC;Jw*!|oW0x|1B+6lRLJ=Qbn8w%b5in0(T-8Pq4l91xp}-YnKfY9P5z@{6tc?rh zDGgcf{FHfcvyJ64FDkK3g=|HwP5G5uk|w*h;d(?s?oA%p3~R1H7zirt)4TM=Vs_;q z=m$q;b}u57O|IPlI$rMtEt*h0&Iz#xKFpCeHiCxAR2Rkd=H{D6v@3O5hu*SPO(8cW zbj}hJjarV?_BF9LA>L5VO`#hfu`If^<-5dxF7{v!Tj|dZ;Jqijzankg|M}DO(`v8l z1L!AN>ow0>j!5)V+hT#j7(I-T-=ASSzp_5X;Lr9PjGebaT*q8=HQDs(Z5|D2 zn-XYVwNJzLCraB|SW&@4X)r^8`bUue^|4%01i)Eo2cylL>FuXi%2eyInNplLj*H$6 zZ%b&37z*U~DUsI~#~9H>n-@{U2oJ&<)Rjq>()fXMaeSr*;Z8L+yb31R>TJK>=@@c4 zGU8BS<~iH)$2kQ`VrQ=~ONg<^vN)+GG~Fw|jNY_1uhzftrghC&V$V7@D&CG;qWa2E zcRf=6dSE~{ocwhIMcC5Cl!Q`k+YcQpaWS?6`+T~X&l*ce`Jy%G9^~-zt=N)9b3{As zOEnM%-xuk*`Q}wa^{{g)?np6bU5VIoJ)?R;mKFuAf=yU5=&}gJ#(8N>X=*k~QB@q4 z=d(CXdYWBghMHuOU9h?MuTawP=wYP7{uzh?{0o3V8;_T0$JYrtPQ*ENoIyAC+)iYW zG`0)vG+2AWmwBti{7m6})wcFw^vcNEj~ueJnTOvL68?tAykG!!yrj8}NN;V)X&j*> zoQ!C;`fW2LUIXo=ocL`MeQsRen%5@qXzYxU9j7ztM7D zE}9in&obO3j}BR0%KTRF<&{XCChsbe%5csr=IYl=&V+Fm6m?YI#8Dc#9!}x}35f(L zJo|9zxl)K~@EP$vu2pFS6Ui8z#&mblO6K7EKd2zn-#}uyJb{Cz`{5r242^8It2qeD zQlJKcfpB;|p*Ele7B|lN&n$d2v(rjYq|aVI?(v^79KdrnMb;@|j|ltcMRK4rlO0y3 zHcJD`#fq_Lpz_?FU(#m?qP6wYkPg34RS@w)h=g}~ z`bCBG@AvdGQBKs45$*S{_&0eq04gk$@o)SQT40-PDh<{^NQ*auaa4=SUwJgG0Z;Y6 zGix-izwvbN8t}@m=KJzDa-tV(P=CMUoFEWA2?N1jDK4S!6V{54E7owtWeJ< z<@qK(E)QdqiaLBYx^80y?tVzW=Wp~C?0icXgmf%8iq3vAkwh>d&v(l2Jm>cJW-~%a zilbWwKfdMu^)(wZAe+*xw@4;1dg}?}ag{P1B0>U)RR!!fMF6FIu5joK*Cs$T02T^E z-`R!kyjTG)x04^~>4&Wl8$c`UHM%#J=?!Uj1ynA%>XjtKJavgCx6HYZfP!gB`w;$O zq2jq@OiD}+ZC?!XA@6^G2R;x?BTx+k7Cvj`?wRGWI=)63i1)6Pepc8R10q_Z6kOscF%~GAD z?gDf#K3~&eMXOCFvmsBS%vX+j(MZB1 zU4qE|hK!rJ&cVP;*1;y~=PSTn1$uqIy*?zYwe)hzk7W7slY2yf=R_utv&a2$BQOS~ zeLURkIa{64aQ}OTVH~#y;(zP63D`?qA!`7gKeX^y(@`gj*`RZIsYi^q;lLsQS&c92 z3R<_`(@4R1?D?-Ahw`=9IHI^P=y)Ho3NO=(aump<0fN--Cpn-e#y}hyA*YQ|S0=A3 zIx&wEK&;3J0Qv>MjAstYm(SL7U2|VvX>LQ{HyPRI1)DK@-?6!jQMj(oI)D}?hu%ep z+deKIOpEXQ94jS#o;kJFJ-mvJihU&I*In&f4MeY;jU^?p+vrxst0!^W2z>OJw&}^N zl=o?Qeh8Ots5VsDdmrtwBV8zeZ0x(3OLVq*+D~eV(tDLvi$Gjq_qzt*8qIdw^aR;@ zdt*>BsA04iV;bjAI}uFSuDbN@tn;Kk8i!&-{n_dZMZ5OQpC|upA%ZW#D0n1-K3)K1 z1}G@?I(@wRz^rejVLVnMVCDrmPFm(v8|w&p%C9sk^-0@SEQhu#qms2uVLXo3#!*Lp#H%k>K-;6h>QoX7b*6mfU;ILV3~z1YXjsfoI;1-N}|?$b{i@ z!hNC3{WpgdMO1<>LBUfJ^C80itu4lw9vZWZG?7JV^57&_tKhbElhy@FVrKdsh4wg1Y) zJ-(|~jIaU$RuO>U14eoa&af}4I`pED+pErU{wm88oX(`*C5*v;@dE~<&T8?S<@|iU z1+Y+D0c}(5xWI5lOcK|IV6eT{ba7s(9O*iPFQ(yyx38m@-g!$s@q(n6z{yi*{8iG4 z7UjC1PtLk+7J+@grE=Dxpzm4DF{>JQ|9r-DQL*!Q^*Z|wbT99t#_bkoKj!@z^z8KI z>ArEdk@R-bZ}F?gh4tmlR&4DnLlt%Pb>HVlU?VG`2MGn+UpM#Tv~7(%&COG-nj%3I z&pDhXJtq9Yta;&VIn}|1E%W6wQ|-$Be1$(BHzuXNrqdD~gd$JYQcCQGWqg!xz_`Ll5Uk*kYH2-8ph9y$^O%bZt|` z`=J=O0OWkGUUaykv3hG)UE2x&vZMz6x6c&hBw|bU8*Zq|K#1< z6ON-@Z*iIM3kbKJhb8nW?{vF1S3Du@x-CxbcL#;pzEAEuzYLsG-)HkMJ+XocdGeP9@B2rr!PG20cK{x{{B#TNI7qPX9YNOF1w=Ax*w1u zI>kDi*o|sCLMqnmR4*Iu3n7OMPR~JTq3XxnPr!Wt-eXpm3l7ze#uivbajw~-tP^6Qmdbf(`PJ3;)aSQsJrHfteZP^*!R>(ozqi<5(4XT> zq$a_%*dP;Cd=lu#5`*r~#MBlfQ(J1I&)+s|)e-8EtyU`j+8vrJatE=nX~nKs=j+Hw z!>rvl4oTnU%_KcNe;bcdmBc5BC+wN`xJ<~jo4oVc4DDJD^281?a*U2`zo4&Sqr%;l zU!xof-&wB3%!{L+_{G$q^k>BB2&B`+&KTUq$3CYo6-B1n$VP6;g@n=w(etL#(fRSc zLk@1;t9~7mycOKu;5hoJW(Aymd2a#WvX?@$Wn8&H zrsLu4lWZ2B`xR)ham8WSva)@y-P2W#kGJ#gu+*mW(S_Fiv=U@_F4{hhG7ZZPSSN;&X83Gf$^K;nibu4q9M8g4}KtQ1Ub4i%<`hVR&(C!F*3d!ah< z8-L<=IrSey9o!?nzcc@Src{(3OH4+Y<#o3iBvD$hpizqjXGAwEIeF9w?ZE=H3~l(5 zR2a{ImMQhB%iBM?ZUt!1>Z2LWWMfNgvsK3E%U7xd3qne3?$O##Sfb-lzBHJ9X-+=^ zL&b4NBL*uIsgi4?HTmL76?nkncgLbWoLn86^RpMC?6HA5zK@rO42Y3^HuF2)t+0Rc z#u=Gxf%cLTi@^j+;5=Oebd>kmmeDrNI&6m-HqL>qQLOd9kDIkp}uDN z44kC1Sb!mB9}t+{T^<3B#_XpHYQO^h+YAL-B-L{qodrAw-NWxYAC@dDok0un{MSQ{ z9I0PzJKQUdp2w)uCZ49dKRxUvYTsAmxQ_)XDK+kzU#UxZ1zesF()VG%xSLw;xct-g#Q~1x9;#Ud5uZ$nkBitb+15?#xzBjY5fFSJlZ~oA zX!|4&oLn8$t>dV9_Y8y+ZTBl%NKd2tMWnh)06HvXEp!e(&xce8W{2gH*(Y{ynGVuO zq3tlmN4->{vmOcKTEgK>*0RFFCbTlrHF>YfomsArH54YPC!pBg5ZXtVm%Dxs;OOAaO#@Ke6qq)LH zlEPN`EHAMwC34zg+^c9Aa<;{We`b$^J$j`7siWXy2pn2MM|7r}8c(Q2+kA=6XL{wi zOaIr4yy$k`K?L{ue@~tg0Ojz-@v`e`i!&%6IM;zgIE~eGEDE0$T@z4hn?60<4#^4; zPD~@L#!LY;XFM(~#oyH!b9tsl_#>pMHQfE~`tkt1lok#}X!wGMxAtZPG3 zb20Se^sa|K>tJ3_6JfE#+Y?|aesfwMO@WyQ5(w$z51*VS1o%gWM^cXHa``h7Lh3FZ4?X^C-{Vj>wR2Mgy4kvE_ zUAFJ&b5_waFzN5*w-o`OWfX{gxN{_cv%nH48$<4ZG8baL{`={@D;+>D{)l~ZxuG!p zV{`?Cb49fU(VHxXOM;m#_HYY6hb*k}?=#pKER;FbuLVkI2w zGN%-ap=bu4E|v(n1c#;(OxmE-2trZJK+GpQBJE+AuUGHVdT?|{q_uHI@7w`jt|U#{i33PrJ}5oSXVfWzXu2j zADe`k%Mge6oAxdlf42F?bxtCu6lMvcwf8o**cWO1yxXE*J;}H)=N!z&;$jMChu;Jn zp>;Wxkbj@SOo7T2rquby(v`?gKF}=j;f_x93Tu#(Y42?S<_9HxE!;dIg^r@#YJ^3P z7)2$FzZW>dziCbL=>lR*nJm6$+w~5>+p^Z_+nJ;Q5cBM|YkWIYIcR3bMeY~d4Opb; zHn%@ZW|goxbM`71C^5JJ8|FN5g`iW-(-zE9yerHd9>()-1a)OnzjdYVtoPdc#Z%Ci zVS|mzWxZ3G>aOSPVSu!vVgmd@Jldqd>?!C$5NGZj%u0yjZeDx?sK%e<5iJKd?z1teC@@^1j~C^q zCksW6!xit{RZ1oe>{S!Q#4G(nbL3MDh|C|EFW;cPqQ=t1Z4p5Y3zQM{#SoI(++I>Z zd6f~MKg_gwhbNWWrA!JJYlH;nF-8-x%+W_0V`zR!gq$_>DM1)$V4pISTwTn{|1&W* z*FEBck*Q^!QohKvCEPytDo<8=D^*Cn6I+JE+!PZ2DN`RyXQvN)%naLCl)^Pl)>k6% zDXt8^a6L2_i{6%#NkJouCaltp{a|wK4pew+$PnV;@6xM9E-Nc7LqA`G8DA$;k{)Kq z7NSe{wms%GI9sd6Bpwj>Dk7mnL>3Ox#k$bVw zShHFOteCq2I(JmJL(=5>$fPUqx%xZaf!60f`^}3<7E(8=scA>T6&(m7pN7MN(#m~K2;{PtE2AT=Z@2+ln;gPd0Qhd zDo;;BXYN&U)$cS{fy98KOAf!(RwflBf|PMPFw(AErQ6)BrcOZaHylb|7ho6^S)lac zwGBpyAW{ERM3{-9ktQnNB(Y-9fNF_`SwN>o2sNp2PbwWfZ}F!TeVK_FOAFae4Wxtx z|BW|PgrW1|MB-lUei=uuqB2z@+yy9{Qy+WaLp%)z80)IUWOysda-rCgH8aAA7rS0{ z4e9qVb!(Z|*l9}O|f+%k* zFq61T+^ur&Mxj0TgZ_~cn~Z0*0|#a}^xj~90D!0sn1$aFOpsPAvwA-I(8UYB7>!}* zgc?O(^jovbe_Aj<=kjSmMB85%bRAWmes9q4E$owG3F86a4Bq!w#9VftfyI+8;0>q@ z`-7GnZ6T|zuE2Sj2GleXTPpBq1Q*NePYtqPf7=k80En%!<&e((38;-94%IugYK+2b zYKv^niw)^Xxf_n7w>54hF1NA|m#-YpzT7>b4b6zUm9Oo)jn)LV&HG+Z2*zY?_Mc8u z%g;iJ*B|;0?ii`%NKLU#3W)gHR!jGy0E?&mDWtr#b8@gvR(xT-as9YhhLJ^Y^!03D z#m>6-?z$g%vh63}+!(SHnkHc*uEDvjC7k(z;vK-6y~}{)`P7;tiqii!t142_f_CJD ztH^YcL<~-3GuAxmFw9VMKjCHln|RprK;Mk8G_GO0+I#(iA)1Z;#K`=&t zb=?@zm6nLxH{LwEppWm95gKu)c7{*44Jl}kw?z!-@jvh9MXmdGOFe%#({M^baNgb|I04A?aQ@G_7_>lkSD;4aiDVhY4u5z7A z4L$P@Wt*8@PHrl|(h*==r1{A1%2bH!cTW7s|<&Qwpw4ESL z;&Zbh{k~mA3JhdYmK8|OZV0Q-oM&7OHLKOZ^B66V%4Bkwjrzlf8Au9gnV`KCk=Lkv zHcxY-&wcCVvS&ucy8YQjI1ibr$3<-}*%Tv+AHA3OH&PmBV@S2==1)5nO z&gd;f>_pBfP+1?%EX0brKQv(%*&F%g9>;~^^dqc33b_l0k0xO+T_j=SS8^{yw=}dA<25@3tEX4!)%L%i#hcJ& z@Kb7E_EE4S`x2&gYvN-qdC=Lv3-Wb--Av0rr&C5JQT!=m@e4Zhn4QNf3U^rcUsyfO zxI=cE!gxj%Vw5IxT$H276rW%cCiV4`s6#l$B9xgxHwux4`bh>GGp6MsKOX}NR)iuU z*E#08IInuD+gQ(4#(RfW8ghWghEvpU*tcJ5ln7ypJA^2Ii76zPB}!)~pFzfPx_CL# z%Vy7Js88^ixEJMpEL1?@0Am~jA|@>2sGT)aQ~ERGHTrX9n!EtQOk_?F4*-;BnA)WnR2EPI^)*OZzIae_6aBH_8d7lm!x{ekB$#=)Lvk*|H_jv{_4A}TA#=0^VW9Qe#;yipI$RtppjJ6mxE*t+!hK^MhS|B zm^hYTze)veDnhc$A$8O;+LjD!Y2w^Q`m^A~1+7r;H$l|J_ZIzTdVmfC^W-X-oSZJW zkSbhRGN>U-DkB+=`s>#zYgu}U;`L(mpTtp7En%rf@H0ayv@m+$Z$WIQOi^WZ@y(v$ zH0HQA{G*U6rXki44)UNYj-zg=J~*<@nU$3viauttG{p@m{^NneIHI3dlXWs$O>pg0 zcN^f6gX-4un~R`Rz`yq|pL?BI?%)t2C?j$NIv}PYA#WB3?Th(l&zOpoequs!-q*l0 z(YhE}Xx&}Eh<}8BD)}rv*09?9k%2rYYoZQ#Cm$m#%`84=ha<4{X*FcR=erpym0ZS+ zFch!ix4S!aJ@;UKAw7?S?-zt~0&AUHl@7-OtY?-G4hnbmFnA|5;87%V2)GZLvGjSq z4l)?bE&@QbEA65I=cpJ;WpCgRftLFrIG%m6(ftV7hIVD_U@&&RvI+U`LD#?$b;Tp?}D5RaRr6lY85=cMTn5;=%DPL%|=>m0 zOA6B|C*tf2FYO9h;LWRG?B zVl+YeQzzi$d?cLkn+zhHi2k?(FeYHf5Bz3Z%yEL_lhjRzxRcYw^E7amlSDmleBMMo z6+T06eNYsx{MkT}AS5$A9v>gMDMDV#O*N@Zsl^u3q2^(sYp~DyE{Q>-R6L#fYDL5~ zMJ_$6dH=)3Ygk^Q-r`r)-%iMz6{|whG}XSk4lR);Jk4tN9`KC+cPxu3ppsYialPInuN2}BwL8FG!iISVek|8Cn^Pd>n~Yo*%GWq!m0y9Iy~uMLD)M% zS)xG{3H`zBn6EM|`;81gk7$vWxEURDMMa6UL|06}1m!P{dT9hLpsp2QF@YVz`4`d- zz|Crk+TiPWA_r=L0XAbxx9W#2fAh=#`c*Z%(BuZ;FxWD%Mua^!5-Kv}Z*IvV2D&of zy+v*y+Y5HI9#_0cBUrf!8d%B~%Owf_1m_W}+|Ny%;f3%6qmk(XSiSN}TF3wPCmOO+ z-gr_j;}fu>sFRFHE^hM5QE?f5^0y^E1KeuV2NYxlqZ@G9c4Iy(n)8t^s>WZl52%TG zm{(97bVZ1Oq8|6JH{hp4zGMS?Aq{-14ErK&$lpKOuY;rru}blSs2{vj_2;O~I!KbFV~ zN|99$fYN8|hj)VGj{!(=AuI{=)UbK{ma&{kds~&sAxDsWc7}p}wp-3e30tAsOxK@q zY3u6B*XHilM$XplvW>qN6EvVY zi1<;fc)OR<{$W*#*lW{YDQ?bh*S6Sd-FVHXIOMPQU5GI28KVGzIa(9Q6WRz0Cb^N3{#e4ZVUL?!st%er!O0h$~@trAm{o8oK0>)bv*pBES!KM-7 z!vxJ=I2cI*sE{IqW#d)fVwXRkfimknr^tiHpoL>DB!76?ez&xH`ZEM@P`j-=OuZ)k zc>@{`XfwHDL2CBUj7VlXX)};jF2rX=Zu`ZrMZo=w5k%y%Q6ZZMzfB>xD}esJw#zO6 zoyx`dd#^|Gu1dMA`C;MkAtRF{BlS*pxb4?aw!WS=+9vWXf+Og|075{$ zzr%IA@xvlt98E0KX=cN9m|BHGJDG-ZPYPtwm%nu3O>T%)h!SKW8h^-&geE}x>+Y)S z0>~imur~A_&(hc8m6+z=aw=cHQgWlHE^f|JAfOvb!iv{{ONH?_DR_mApE%P(|H708 zkOCazW!7MJ4Wx8*UCxsQ(w&mSrk&cToOVDwT2o=HIhA+~ULCK%N(XqO)L{9D@7#xh zc;?ku8qyyN2w4&Z@5wqA1H=-O@+KH5Qefd6HqlfV#Rrlg<>Te8HQ}26Y>365* z^&Ua-)PA)ZF?JEdXsJW>gCkbjXyO7J`V29o?KM-~rElRPFM_wUqJEG~N|s)G1Ds2f-yAaW&<<@% z3y@Vv=UNE31SPqh9Yo@gm!}&Tj*7jED^{Tvtz1XmAN`KgY%8#Fd$SG#ED~o%0 zr1UovwZlhO$Ul%Rd=*@9#{*5g$)U6lGp>Q^ahd;!QY&V=aaPf4+_3*9VWDQym> z>VJ6Y-<$;N$q}ro0J23N>24k9sJ8>H0Kcv z{zNSYE1`Q%r1cMsTKmf@x5&94S@VzMBzn^FUSwy$yQY$q^z6a>z!w7sRye0Uia}eB zylz$w;e}2R2i>YfjH^p-On6ccQxkij)C*K-!oN^=)NgT(EwrFq*?gZBsch{oD z2}Oz*ZE?2*r$B=qE=7t{+}+*XDbPZN3)i!m)0vaG`;W|om-lvm`;*Upci+t7yIwWd z)npCxl0a*`#n#Q?xV>assTKc2l%`=sqUaPp*bxfRT!7wMK=zgR3Hf;Lx6CC$*p4hj zCRGleerUg&NE0Ec&Nm6EP#U+_Adi;e7l@$LPUNN&~5qK?ocHQ;!NIa_sS|# z4u0Aj!uIe**L@@{8Y8&Zm;m{=zQ!z`rX$a?s9v5m`7(tZqX6UWyGb8Ye z`mz&fH}HaaA44V_}9M2 zvzha3i2>f8%;e7M9gKzLk8#7%k9sec{BEMRQQT6@S3r^=17O#jx}48I1sS$`S3B~(ohzg3C#^f(^g0#6ENadENU*u|T6vqe2e+WSm zwZ-~JWner>JvAST+u+Kw;|qO;fupjC;j(G| z1|>nuBKbKgw3{TF7B9kug0XC7D2L(O(L}kBFzUuk!XbaH1e)=lhTTDDVgX(VBL=Z& z?eH~-nqEZMlCB<`p#{kxgo`rRRrYtgpK>q`ILBJhf4A_1ClOHwZPsG}*Sw{=eOLTt z6Q3gd_fHUPNg4%ViF1#i(TeOHiQ{9=k)EMS9wie zAPFM%RzbF7j9{rL;MOUTjVHKrIlk!|JA8Hwg|Eh3{Je^#%5B4OL+u_;j!%B}*m^2N zesIn;5jY|<)X!vVO#UK;7vKMsNSx#K)TVabv%(rrRWpNqe9-u=wJwleX?j%b-G2ZF~GarG)Os*pEO9LM=}>g*J~+w~gD`EP|{@K_(3l08oH?nLyep zCzRh}(HjQ?2Ua}1sdC&8sKC{GOczEvtCWWtTe7E@V<8MAl^nANmUjsxu@ec|bWPaE zR9oC7Mto9|-IRs1@u35#y{sGZ2(VeNW;?;E&4>Lr6v60jw(H!>V;hCmPt*h=%~Eka z-8oSC$FCg5a|yJyY%TW2IwROntmA$yD-g2r2|YTaIP%{k#bOP037jwDn5gL#?Uc1QJ0Dpr-mrqwsJC1w~Av1(vcYfY!pwoC39*Q?RYB6{A z=3U)5^g^=1=fw{yFN1^L8+VdbvE{{#X3^gTPIXu4y9S#x&K?3|Nd{VuSfC>P@}O?~ zPBNgIb(KXWT;8L>?m#**7I?nrV*gT7{&fc*=%a#Kx+4%~y%eYtd8LP}(KgJ6-+R(b z-;U<~Veg7Klmu*)ZA2zbmv7$DJ1Ft(Y$+m7y&|hrOM#Ov-iE!30UD9l-87)_r$~I#_H>qOLBkD#CEsFoBm{Gp^QyC2i>I)`+@Y_( z?D|b5qb`VYV*W04NI&#YP%CAyxi`zq%?B9M^~vHBuQYSyr%30K>>JHy0r}x`oOw?* zySrkP;lmOdTdS5HL^&tO@`wk-i_hc(pyidpY^D!VI32(1a$zqo>StejKW}$R#CD~1 ztH4V%nhh=Yv4oO^w#N={l*OPs{yqf|vz$a_b0Kg~7jpb}1EE7Xb!6$>IeN8dEY zvKG3?!Q#=+!{@cngzkDmD-j3w;ny`p+S04wTh%JI`CCpetkJrU*Cn+xwCG za_R~#ey*Yodf||{itZEyXEdljJXGdmh&2w$k>uY>EDgnnbH#NeX0=>pD=cRZJwi(_Q|sJDws$9x|li>6R&Wx7*xFw3WJvi$;pp^M<$Q z%UQ8S^S`fNjaKRApL;_yc6(#}LZLCykNEi$3;BLR-d6nIM@siBo>n35IT3506j)4ku@LI zt=zPm%I)9*B059c5Dd{IzJLw~7^bsYe;P7LN?@c4gCq;^yyn7V80jqk%`GKB&bxP9 zE`<9{_;hS?43^ZJ;zpKbp%!DL@btB*$*(GnVwxzkCIdZ<_BM$6)=owmiV8=n8PTj} z2b}P*=u4E324s}Qd>U=+XQ$Z*vk4oDPXwehsvWBo5DKsu2sH^aztFjFFpGhgjkuhx z*2Q8X6iH}(^HIyJ^lzaJn1rm!p~3=%y97&)DTz@Z)bnm;9q+Fjcs zN%9^k`uD5AFiUT+T^c@#CKE=Mt0*W^x_Surq01k#FiONU2A;4ji_tPHO3^oT$qLo# zophk*a`M`n-656hJRL_8l4f15Lywoq1bm8tEg02JS(vO!y_(Cf>eO^77&2z#Dt|K~ zgrz4(MGF82lXS^rbB$v+DzGhRLKE!MBZzQd2{)tf%O@s~m!50efDb6qv!gY z_xk!hI5PYbldVaDGuimrZNY#BIhLaMT^h6tc+XAh=M(l-9Fg?6Q&(o}qa~*gt~gr9V|kaCvSrLI3QmM&<~Aua zj8t%$94&~u>tOzR&^;^|Jr^|=JHJu$y@>>0{cxxNshrQNj^(Gs1^kqGEfhz#`9D$8 z{$(2bmLOtC*p?WcPfW{thoZk^zYYz_ZDI8G`A_m^gz`4T{xZezYuFgO#p6A5ISK z;Zxcc`aU3|2n@3;wQIF==fa1te&!tVL&c7S(y2ujF6@{nIdz{~Y~BQMU+)vo5PpE8u3}O1SmaAp^;Cc=9Cg+>6d>$NRIJ42S;-?_>G zo}(br9Rr-&jS5Y#yzY1?(osPD^Lq>UBQ%s>@h8T9xOtt2-bAAa%$5(V(>d&wjt8OC5U+2$}G3Ni?1x#f0UN^xOP_y((@eowQd0{46E4c=vTx))Q5-gGrz!Bc5 z5cQ7*S;B{>&1R$9XnbeHg7%u_ax*FFz(P8}R5#oIA>vSJhwzNakv?E8@z71`~oIp3qZMYbXVg z>+*MW>c@~rzMfxRd)X*|yty!VO17E5j@?nCS>r$({b@20F+-TJdKya{}>C1l$E+w<67U zF&`5gjILDVO?iFOLyTL&-AZI$rY{SNr(#IGmxZY~Vkyo6o{w9d=L!{(UGbURsKX}> z%!MQ$5j208v}jdwE150iyPmSX2BhVuBwmhne;kn}v$R+xG={j~9F(D;R`}Z`@D`+5 z8-DJ$1`Z3)+1a|$5)X5ZYvytf)+I42|5a)W_X*B&K+1}3^W1S_Y7&KM)53ZCryizQ zE?qSb!d5T>PXJmifuBMJhUg-&sHb+3@G3oWJAeQ?Au9wfPsGRkWf{egNbPS2Qi6w2{|Di7wI7epLlf zvEsR4ZC%r0V{_3?9YgOkc;sw8w^H~UmQ$H;W302M&}DAAb``if^6)O{bwSjRSmqhDC0ZulYyYngx>UL#`8Ui9Rk(p%J& zTKE&P$RH<$o0RJ1&%37|5weuYJWI* z4IqXaf#>~K6|gl~*pw_lW;({the^vSWTc-`{Gz2@qw z)6_g13tT>)W1MYKtZZ1^LRhkEDX$R8^uA4qcCv&;VAeqfF*}sNARF75BAJ76 z$BtfE`Zrpk&M(a9I0Ro#1ijFsi&-)XUlOt(q8=+DMD&%i;j9J-7Xp-F3Pzl=oScVR zBJv=hS?_kTT+X+Sw!`%EGWW+1CdINgrGh<7_IB%N?#tG3?UxjoNXH-7?I8(q4-JdCx6{tSxX{-sLkGKylqeu*Z2@!ro`*&Q`154w6y& zhl(fNzcXwZ8eg#Idr}u*EYU1T6&&rs_asYBQ?taV>e=rmgIPfslfU{mwA%fr zdp9^>T1}Z!F6(X;V`l!s$GfLfoJ9{Pcb$`+EAr(rqG(~Gpb{-q-?WYED| zygPTs*wyLrQJ^&l=FTcnVBrt3me|w4NG*yvw~9q~<p{7 z2*(NkE^rlr%LXdmjrd|3_%o_+E-d z$Lla}9m1X?F-9uuywv;k0e@smcWB=#yMkkwJG2^k1Uw3vye>g}>Y#{YhgiL+B(P68 zf=RAXpSIgvcU4MUnD(fl2rV5|@AKU+bCtc23>&wNX;J&ap#D#naj45uPfAfe^7&;H z5ponh81;~n>^gbjzO;(z(cl`dc&?mZY!_*_V+a63QxtUx@ZxMbyLNUV9ih7Uq+iAN zn-U^1e}UbDKGteX`bdyoG$Gc%Akgk~f;VlAo;AY(FIuPg+b#sBK)()6JiW@II`bf? z4plV@WSll_!cdcE0rXM{%4w^omW8S09;3^PU9p!4s$=2g~9a00G`!u>Pv#BpyHtm$G9BWT%l5dG6sqxo5ZkssZo-r*x1cm}a9B`;})J}J=UByEr zRwiBbll{~XCX$H#F(4tC1m6Q+;?11})xPigOh5D+wDIoq*1SRo+P+?_ws%R9O8Z4x z*YQ}r4Z)6{QW`(uLnpXU+7tNJGnmY4qnU0I^UBylVV4leO9W;PdM8zhQ1&xQ^A3OuIM-Tds1KZ!#k1*N5(JR!*k)-k(zU@x0t_V zUBE}PJ7DqBjVL-3GbSOfJ51uqC;69PSswJU)U7y)9~1z&=c3Uj?cW?{rIdRgZ5;Yv z`>tDC3#8;XIV0PjIz4G(&3B^pY;Y!+J6_Sgd5|Y5DCa5QV|;X-vGguLt&Vz)Iklll z>122}Zk2~VdN1{Cf1fjraThSaQlpAe>mZuI0$F{DFi8A6-;gz%q<%SpLRVY+UU(N; z9X#bN!zpXMa}ODuA6|Y2xy?LDjdVIv9VD96RNt0Ki(r-$<82}N4FE@i#pUL@Oke3k z@r=Y zwi$cRAY=d*RyAYGH&?ytjikJb8o~g^L1?utughcLCOwTfCLZ6A zBC!(tv5|{+z;kNhv+K$bGVLdwRhxfMm2M8p8U9A4Bkt&35^{PPX(WMobOI?b)C6CW z{x$f)XL>qTDQD`(d|#r7e2V?@(=lz;2lQG&im{z*a=XrYa=#OoVr{&jlyg#w=O-@3 z)H)=#6)2RB;mtHfRiu){@j`K_2<6HAI*yuNsu`KiucqiGIxrVt<^G&xCo(6tW|I(G z^y&2GbCQCPjb4King@Szw66uLjq+gp5pC@Dp_{K#iQ zxp=gvEvGri*hN~tzXokQ>D*y@9B}C*R&nl7^g%2DK}F*fP>F~G%(8zVjuxeV!77(u|Nt6=?R#Rfk(;`%uk}STlzKAKIp^@vtOs>#F7rMS4L3C{Ce(COHSrY=3}a)h=#+zS(aU&mLBl#{6BCo5_@_$; z$?GaxXJkX_=jZmgt%0{<``PfmY#!nfj{6=3|Kq57xEJb9tOu|Cy5Yw1C@Z1=*I0Ez z>sBs2HK>H#WcKwDFv3747nadAIc6OdW3;s_0)`{;C-m{xsy6}$%A0s5( zFeAy1@c6+LT`?#M5sdG7Xv4}BKJp48PGGu;H>P(%NuSb-%`wZGUE;M_DMkQf*!T*) z5lkf>?`FCaPj%kleipE@%KiCT8T9N#tKW@{#snA!kda_8FDH$T^+?X65=UV2#T6#5 z$tB6T*(U*#Xbyo5EvB-R8id7}>dob+40WaOOV?xOLoX#l>c92de|b5ahkHS|x|Wa) zfNQIf_+ZgNE{~%B0H1s0f9IGm_-7h~Kj-ls4Z*U%e|t>8Cf)DsB@O?Ki}2?R+ibZb z_YXa+E+Fvv=`W?$vLzA3>VQG zHP&IbxAHi)7cX_SoO?CC%FX1M-lz?_86C1>fViJYx}NJkWE21LX*2YYGsI8_m|$Ym z$DuVB3OjO7!|m)!jI1t)Nni9S6B=ba4ojI#Z8sk9#A{48r?0dFrRc~^<}$sLez>!n zR(*usIzmNpUOD7N#ivhUNpSs$7oMDvXv;u@-gDRY%cl1m?6i)VgqgI2ZJHPvsRHZU z?HmOuy_4g~Kn=YYe;Q^1$QQG_{%mY-SzF&AL_KQ%*zan)os0Vd9w&mZZ%^LeCP$xY z1fw&WyYe%m9F;SCrZZlR=&L|$<~nbEopOFEqrAYk)_i*?Y{S6m7+5p1(aCqUxOn@$ zM?eR;32(sm_TBDK4%Ed-$NojQX|gesuCVEfbBa5MZcw4x204E(&!m8pkd2`nRa6PT zO2I`C#%;;3)rx2>pbef(7?h4RIrs3`YSm)sUX=V4_t7S+hxzI zme2K*(Y)|gr^!1;oPNd3VSfrG+t3XZN|ob5rRZzckz&Jllhf*{Ge%}mL$$$Y1Zx5x zE3z>=cH+Ro!!yKWflL|Us>zV10k+9=&)k5T_vWj#VG6=?sC*Yjz0 zbS4A*n3tc!MXJzMr%CxLF7S(Tg%;V_x1ea}lq$W}KQwKBoN(`#-u0ncE_diTBa1kRQ$H1BeX1`)9XB+$PWT%%H@0MucM9w5fb(_^ zK4c5^_e7oI;|$Ncv+KR7m)GcY>Ik;g6dQ!8&s&T z4zLDZ1l{!@$PHn0 z($%HC*`@=c?Wysi>yI?4P>=YhVP#-Vr*au7RtO=e694g>eC9Bv`{swRli<*7O%gYU z;3a`S`@rj0p*N@I?HrM>4ebaTu^=JLg!Gw2Dno4Sc?ot2N!TNj))0V;NJiAG*-Sn+ zR<*Kj5rWLCP+nJimXYsmBH}W;s|*BaD#}|gXCZ;cT!A{;Pd3ds(g5jSn@Wl86od{b zy`Qs?bgH4tqP%uSyS~oCGPcH&`A(7>5sa(Pk)Pa^gxlwEg0BjNt`sewLy;fXSzxNZ z&yX^zC(KG-2w5x*Izghq!k5+=gxu3Hu=Qii$$6M8OqX)3Ze{tm@cj6&byz!afJ za@ViKyp{M2Gc|_!%8yVbHd5#-nL(tF{B<7^v!e5ZP7>5Bw~xg~VQB8cD)e->sjOlH zY(edQ`)Nm%TqG;(;;mKs^YA_?Z0^jdzj=NL)hoHUq3wO3$4~uTr1EvO9m*CWka&_0 z^Y^cf5XDIwgjkJK4w2MpJI6Jmjao8wO z0(1ZDz=4Ok+1_qYpBt-YGU((abdI`}H#8!u4kEp87r3a?$iKb3aSP%8nm%(M0 zKwL{QIX8h1`-vkph$kZzvU?(jL_@LAWmd%M+GTpbA7(( zE?FO}Plxc4*RR;#m1xiA7y+Dzdekc*M6Zxnr;OA<0N_-HIKR4l*$llX-Y}*4E<*!B&$Zhi2WAm6d-=COBY<7BZT5 zOYO3Fh=pW_0 zc!LmoZ?maYhD5L2Xm7irO|HPw0Smhdz|VyUb{h)Ri-=C&>A0(UnS3qo7x#zU4h$?h zEY@Nc45)acFa55uf|MwmpZ+E$8Y+?$IF?GPpA83w;>IxqreEPMUE8id=NA*KqyiEaM)V-Dq`vE9u3}@K(k9waGNje(D zSN26QkSUtRO_eN8DTJBP^#d|)BySU=3R;fH^|YJ`A(a}h^RP5=*rc3BBuJFEHbnIK zX8?Upkez!$y#=9puR_xFwA(4$QdX#*g%KFvJ|VxF@trO5;yaUykO}}UxhR4(L6}xZ ziE?~dm#$$^ga#s}@Kl5XkpdcK&OQ$KOOI_QmSHXIjBJA)brvCm!rMv5cMH^j@r!?_B5%IdGqvQbS-&T~GB0uS%xfn<}@0$+h*2$EydQd3SJmyKhZ;zP@ zH!NBw#5M}Un`_s=B+9;H_M%s29(R+&TdoJeTM{Xk?rEIs{De}F(J58wRK%!e9bjbp zVUK8I14WJUl7S2vrfd?a`?D9*%lx3Sg1n8SniRGEh;UHK?T_nHm;Ay7W1;KOjA9y| zsuoMcj~bY?Q=JBB7esnq!PpS(Ic;q5#E1!eyF)O;u$y35XhgoX){IO@9_Uz$^ruLg zoW9I0#csB)2EI$S7sIR9u4+0=42tw4$-OZpktRL!&h(a3Vz|O9`Wf_S2myq@w!}EI z0fiW=T5%;buwZv*vGgOM9i_<+l$<18 z8TUX#OsvbkK5m_>sc7~+JDqAC`=(oJ<5M|QGrQ>f<@WTm-?ydT^!~KcES$V|k9=E8 za(nJMLRcnLJ(oFF>V7`6z#cf9TzW+{PjqLh+3ux5MN`5eCzw1X>6^uijW`^!nI6aX z`SD4HRfpaFCqe6P0Jksi)C{uazwWx!v%ER+@K|v95>Xiku<%XG$X}q&IO(2Mlknxq zi3pPMzeI>D9`;q?UjQJbmryShnFj45bsiOoJF=>W$kw>^Dp@y6yz}8kOPMaPFgi+2ITybbSGGh+Ihla6m}|Cp zcu(Q`c+v<}`7?I91+zt`3{}+)6&V6zdSt5_OE2GTqRk~#iq@Z6-HNj-%Hdzt7`x|b zNuPRLiPyFXg(j=wUdfF{7%#Sx?uycbCaV_s8278R*Gj7%Ni#;zdu!*su2H|hPTT1j zR8Au4tli1k$}pcx$K|k#(n|`BU9{@D0IKYD*5~^d9mzVyUi-;TK9Vr$r>yLhZGMg< z^0VKqOz(aFn{ltg59eDp&?m3vR63#vqIW~o8e7GbHQo=Eju6KW0=t7R5j0gnO~sjy z7mpmEIS0>ff-I(YcSZPX0LSkzqcNmwb3n#11h>SoZ|ZhtO!fC-o7G=-AZsV`e~aQ4 zcy~pC0cHs9y(?0$ZZ39Eg;Y9C#yd<)Q`QAExcT$2Yc*>oCYltLu(_ukedMLi1dn}i z$7ujDtrp$J?)h4Mf&2jJ#0y)>Ni&k~-PFv#k1l_2Z&S7#Ppq76#&su;p6YjVyR`cG z*?p|~_ie5p!>^l(E51j+_%;szd(D;W&G)`HS9@=_$$w6*eQ!T{`+Xr&y||UnRBNk3 z_2-7S`duu%q01W%I?t5vXb~?DL5T%`O)GH+)!!JX@Q+kuM#H`q zx@NkMN~SgQ_=;zy)&chV$9iD+tt35(Xw5p*Vxo|OYE$c{wi!I{#YzUqvuu2gwZ-tR zYqq}jrX8fkvWG|Mj~l%8z5Oj~R~go1xP}j?C?cSww5WhI0;5ZjE^%~sjgHZA6r{UH zcQZOhDKUC9qmgcqZa70v*L8lJKfA8gx95GIzVGLIS8o8Scs$?9!m#=D^cV_IIjU&- zL*&2ZS{V{}Txm1~cGNw>iX0~F-h(=xR@c#sB>6Z8O(1;f?6Vt78-7RD zz9?LW+#Zurj|D|JJ5@zvMtd8}9}E@pf3SGJ>q5vf)qyvNIE!4HNZzh|C9E2iMsSj+ zu)o%ye*DGaDU#D0j-8#eKT=fn5}$bsrR)MLHp&aLx_y(`R?a)^^lYm*92me-Ju zUqK5yd8 z{8fSX)>6xvw(xDF@S0BDL7?u%obFjyniK2I!0m3!;l268*}a>^TmKVK@IY-NqC@pn z!^FZ|;${?1##oUSa6sqqfM7OZGBmoQ+ie0OUzuRBtjuz>Ye^lhIj!_AVZtej7)(?k zQ>fIO9U!Y?R^oqHp`xw`ySixa*d4Plj^7NIRVC3;l`7wdBE}=h z+}Jj)#?l*{FWG6rmb*}QjG&#dv9r1U4WoB_s8Nn_Nt(1Jw;m2BUl9r>310l zEyZ?2v9-j;F-7Eld$uc4r?zhxxFv4FNk^i=e}%rTr9sNz#snM_UTO(0oQFg2DZBjvRnA$ko^x5Hbi~O9Z3=7>2FP;QQB!!qNo3gmGTg)f+b@!=$q%$LK|xT-bA zLO-m7@%Ojl0X^9(MS|>E9=c>1Z(%hAf%(|6fCnA$e0G~~P!J=?`lJqSzvuEG<(N20 z^UB9aTyrHp27|MAl%6cBry)p5WtIZDqi7wThf=%>P<`gZ`-xke(w9kns#S2OwG)cR zy{u``ZoMxcs56G4&prvlnZXbS#-+BCV zhEmHJo$uqeF`X=Ugi>H9)YIG|Nc8qed`VyoZTBt)xs_r#f0z}1js@d!^ z>9>b>3M*gK(At3CH-4n(SC@)U*f_4h4hA78{lJ;l8~HBisH-LcAMuCRbM|-9(5gHd zQy1a%D+*46MK5qxlZ|OL<0BfWcA)hi0^z+hVPVsiOq%zsyUMvO*5JVyysHmWoENP~ zZbKZ0Gr*tdQfmcO4m*Qs6v~pML|SfpZ|JCQ_nmKN<~_G`8gIidk;1q0x5BenR;f~m zecR#wcW~XJg@&E(Wl zN1V8fdoyjUU+_w3&aR1T({U2Q!HDDHk)a>&a~i|tL9bP~s$9_<=BYQOFh`b8OqHeMG?OeU5%WdPKowAGPDrYTJx&XCstps8w!HO#gV6dJ9A=4DkoM` z;T#3LbnbL(1{&-C!JgW=@iDQLA*PvNEA}FuZk`)#x%Fz~-swXN1USonNncL&5dYZN z?8c>h857Kbx!!UhaT^+byX@|@yLbKUbdj|IN#(jXa2xJD(KNW47}ZI0KE`)J4Y;Ng z9#Vk1gpj;=xCC7tyA`K5Mn;^5SdhLQvGXJG9OH@XgHTEgH2`QKh6AxFQ{%69I24rB z%G4Fsg^o|Pw|}s8jn-3h1%y89ZtDmt!2>;Fji$rm8cuAp$a~h5bJ3PBN{Z+~lI6-^ zNIu1PTz?9q+v+7|BR8GRapEJND#ALs4maEK-)G|r!%rY3;Rz)-DP)=m+=cE=EYJL59kYH(xz6l$ zx*bhjJ90x~nC3kC@l)RU&>jZ{l@I7{gx&btCU}Fl$5iLss3T&p-Mx1}H?`j9GPilC zhns$zE5qC1mJ8kMft!Q)8_g*J;7uKY*F2>!ZGnu}5@pzm(+`VG@5U*SP$~~F_PKES z8l0SrMuoC7kZ8*-F>r^W(JNFNF%hAVGMU$as^ET2gVo%8lmonOlSi>qB_+RT8Gpi~|wq=SaS5s)hb zZe?(X24l33oU2O*4~*~dL(DzGEp-}L2f(~;lUZP+X$$TcE3ptplD3#}TBjks#5~7l zjE?Ts&1}9&amJWu%%y^G=VHrlnTMTQ>Exk&R;`s5cu)Z1p2FB*KSXmPf-Dxbx6 z>6jJ^_Ypl#XZRJ3B7NYoKTyU=EEQjuMC}b{1Na>G9J)Ox5F#_PIHOUd^!H zUP)-3w?l6oO3=$_xRYQn>6{&|Y{pHSvdON;W?7Tw>HlcxJG0NA#fdjqho`l;b;Q1b zS5Nj*;7$6M`I!Vvloh#*ZisY7w-x+V zQITSr{Q>)5zRhz_s!U8$3oV+NHXSYb#jj-(;t%c;-~I2s9^vl(r{Ce~^{;c+j{WXd zQDuNm`iIXEfIpOyb2D%)#LnkKgmsu)Khyl8Xo^|?ymuIbB09K9-$H}rUZ6DvEn~*r zzvEBJnj`pi{DQ^NNk#6t3R*$$y-M6(xAf4Lvx z9kdZXI${U+Wzg@qBAJa>#4mq^5Y!zqJ{SjX6Zfr^EYUI7m0$l^)UufW_eH3dylz+f zcYkI}JebA#25hd zGC4A-I1TY`hY>!_501%{t(gJ0kZOq(D1bVpO*q}+RBLqQ{!BM<&1&c-tB&-ZFQa)y zgT4RX?XOSHQ6yI6uRT1Ox>Ho%to4b_-VL&NbL5jirt4 zS0S3ar?L=8$o{PV+>KK~Y~-ElhvFr(cnBxXN%xV{!K;0PZhR(`p?s_N zY~!D6Jda_$K(wOyXl8_K1^E8by$o&o{4KZ8S(4D!>BjeOV|8wVb)2`ok(bp4`@yke zJ3Rb&WzXWJMOxBPzPD{ zvEe!&Bz1Q$+TwS++zh{eWOL!^U7%S7LeR;FJW!9>yUJ9k4`Y(8DNt6SQJmk$cH?|w z1DjE0;*kOA6d$Tzb4B<>#?Mt3=Xuyczr{9XjRZUA7OgpJ2YJ9j#<|7)EqpB*^_RTY z2g)^BriTVe+HKu*3rCgCOx!?oN_C$eR@a#+?G?oo2^k_bkT|lSnbbR8dA`B!EL-8Z z=_I9z?WyDXU(9940CPRU6XDQbeIfJQd&m09#Mtq&AN#)L1I+cz8SOxbkq3i_A|5` z9e4fM-E-JFbZ3*1$A29R21L$VM!&geu&e+Tl=Q_X=UDDzqn7?7VX`RdMK?x#q=WTm zl+M1kWf8UX$afT@ZtINS6g$}g&A!HB&C!)+KXp7FkKJ~A&CfIM_dM@zM`|-B56PX* zuW&N)S2}aotTsPcq%bC~&xG+|mPbFN6f>dkTN)U4f%N^+l)(*4u<+2V8-2A;ZTjq6 z$61Vmo%W)7tS{BWT+m_XF*X77CzcVpUDG{i{<**Qc9#6pKnA?}Lf+{DE9|yq zotxsEP%fwC#<%p3VY0BZAq~O+H9*S0CeA3#gBK+@Zcm8}{LwVuvT7Sx93jHz$h&u_ z=I|Lv2yq(g;+rGkC%Xh2nn2K(Z04lNAmq@5VJZ{*J*!F_TtTq^mksqtex<{qg?Z}X zpEFprVC%BI9X~ru6xS@}&I#en)u|Qu4!y6rU6fR(pwaSvhw6LcCG&WQSWaWk-(@!` z{@`Byt@~`Iw!@?isPp#o$*@t!DsuEnb+B=O{&C9`tndoC{0gz4h^2XLP-3q!&RZ+i zKPb`PF!j z8|TyH8Y-e8R-{>D=a*W&>Cw$KA?SiEDXgZ2I&nU6+hquQcKa!t)&p;t0K(2x+- zz|tS*>9Bq{Vt1RRbZQJC#xWTB)`pE{9vpXx{U?NIL=0 zrr&-S_Shuaf%JN7@~=2o5szK^jYbPq&r7fMqF)9%dnm$u#-ZN=vk)hn#GqJElXL`o z%Ywyv)~YrrQV0>kw#H94+f_9Gny&sRxw>|S1gU@Lx$KkjOM-T=)P2kJ2z83H6iPB@3v@m&oA#3C z^0U%_`HzQlTGjLwD`E?Kml`43g zi9vY%KK?=QrIYt@u*tq6x`^9jQPB+QV8|q3%%yFl!*H} zQ|+u%T$DqxA(Ir?yA5HUeSeHsem=yBD4Xi}@HNB{oA&*T-TKo9SpE9}W+EPVA6%{K zE%hpHE+kpg#4H}?^&#`dymEQG8sj{)SNMiD$>S1|83a#Q6*NT}04h^;0i+c|73(g> zVFio>D`T1(f6a{G^ZQ2|X+B}zIo;m+NfyJ+FH8FPXr48^yQm~^|HHJs0s7S3xnk%M zQ`6f_p^n-x6tXv@p)FhiFs)`Nq<py7LxFx!yrMDYodNw8>h9cB_A^MG& zL>LM!^j>ZJxyZ!EN?C!DKH1j~4NcvbX_BNrpT2jBe_IoNxJ<_FnM`j|R7nR|SxJo4 znMqd2b{YyeI?JD2d9x{~HOLg8ZDNXT|6IAtjzDgD=@El&Q2mTEq?eT#k@b*H{S41VH89F@tmZ?DmmhOW51LG zrmHKOv}%o7_dn)Uc8+}W*mFJIPcKKHk4#GxI-O96Cbq;breC`IMtp|_6WOih zDE3jud%HJ&EFtlKLh^5x0L(YHFu2>*gd%PWKIyUSY@WKK6VXmB3&9c&+DLjg=YO|Xc&v6Vbu zO>fj798*HSu)tPaSCoCPUxR<><|^hsdaeO%uHDeuBJqz!*7L~oh7>WEqJuPd#GNc^ zeI01zQf(;tf5*1CJs%e09f*vVW@XDvw~ghhGpG50#n+&zteCCYtlBYT~B&t=!dc;({oitIAU;`4XMQL{x4y92YXGdc7u(%X7 z{8v~ImeRtSC?=7{bj!Eh7CQwYe4I%2A4woatv9KYEnK~2TYV}!XD~BhH|1kx!qxjR zv_VqtQ`BKEDEitb$16hPb)1heRGjTcnU3*E5Feh(0h4REj9V&&e^NXy;xR{)V1lyc z#5*F;zZ!=E7HkWDwlQPV+6mKK)Y1-Dmi@;vE3^`$K{cvldN6lv34M>vUOH8MAq=IKn0xRoh9fg(GS6zVYFo$> zLp>gU^rlrfpDySnh<;urW2x-s%t=wdMaPpwZPJa~;yTW@G+SzFQT%tQctA0@g38z% zHlS5x`IU1wSnen(%iH{-`oj{fqOtpU<5>IQL!bkrk`0N$ zo`Zz!jAf>W$v~fN`?e6ooYXigGw>4BV@NzW3y zGfSX4E^w(K39cx_vfvL7O8`hBGtf3=dYp(8({L3NHTrb&71aWjLchLq^~ukDKC2}E zaL0+r_tVJ$9Pmkrp&CiI;PHN^m{H66#VVfccAhkNtA#BkuIEtG9SHqIvhFr* zhuDW$Jm$Rp!}=(fn?Xl}6v&3;`$zpeitynZ*N?zxrsnF#PsNhsY8yL6{+Me6sYfBk zazpLcfMr1jL-hIlk`C9b3|jdq-gyNL{7hG1&YmGgY=iQ+3D=mG$Q+La=YvVv^3`I7 z(!|eBYXC^_PX-DPCoZQKSY66)xZ4$;(0pBiH@Hv72(prTHqx6AkA(#iJcHH(;uH41 zj}kzkTNxA{4o!fSSHucoz~ncdEW>}Xh~_5->oBuPlZW`aDINUwacti(PVJ(f0!Iz5 zdeBY5EGo%$KCj}|8ceF$o!$v~7_`Q(*-JAPfm8q1Jw#!y(>!kZk=-&mv)73;%vs$H zT@I_^_7V-xGk<93MzN^(O`LFqW?_|T_j+NRD(sM7xUha+Vy~$#kA!AF+|6O7tzV$> zmFA%eqpaK`GABuu7+hAQe$7Fsg+ikikvrj0{@^DvCxl8{Eu7nzN(1&T>WvA8DeT-c znCrFSaDlB5XfD56v$Z}b_x+dOe8f48xs4@CLuwn&O|Zq6nLXgDMnLcy z#Z&>>s8SnRU#VQbwEr(`_0|x~>`_+}TI38>vK-H`UB~1cOgE}Hs%`Qqr)RZv~ z11y4u{ErdcOaK35k>eh!d3|0D1ZBt{qFmWF}>7T_+od(%J^DD3X-Z8QAxJcVlPEIvA4 zlW((&TUEnwE%CgK+A!-w$^{nNh$DZnUCq=0-6*OcaCjEY_?)VDMSA+nm2^ruV3A+E z_Omb(Hk*ymv;H3_I4$^V(lsr|LdbZdqNnC4K|>Jj{8IlXMF*bO84NjywtdIBWby_cYA;>^89NZ0Ov(TT3mtKq`JjO^043n3DWIvI1x}cpe=}HKwT~1bj_3 zTN?P;iLNHw-HBqw7(!ox)Bj);Oo1zXFM(ziZMcbU!Shfl9-Qi(iB}z({2C|jAr~M= z`4X1V<0KzPSW9aDhSyr2pt9*62QBVkX<$vFv!!`jlUvo23FftxrLZR6yU!L-%eSt+ zQqW49Qy})Ouu5v9&s<1WqYf>7GR);5MBP>YLTb3Oxgz1Ov8*P_N2l-hWjpJ{xAM)6 zD6A#skhr3HMb%}8P~y6^YtGowmnzP|+?&rh|4g7PEh^KbM?>9NP^}2)sz&9)sZ87O z^ZA#$J?_S~kjf|o-e{rETaxBT*D57!#rD*_9X8@_cl&{xW>K zZy;Qh8B{vsq zTlnVi zv{?=-us%?^CTg6t0$~@LD8H;NrY6l9z7;Pn&o^z{v_!TnnY7(#9$`0sY#o+@prWDB zz`(=&(2J!}?$CU)_^xKG6xN8#;Z0Cfvt{Hy^};dK4@#tl<|z90U`#m*vW)dXY+){re%g#8r5t~(IN z6LU9c)%{p(P7nj9lS%jG{pRM6R_M!HArP!D_$!D{WE6B*T2(&0y)xV^h8Dy|7BR+Q zL0g6L<`Ud6xxY0h(U@kZmsRIZ8aEsty}o0}|9rWDH`mHD9=dw$0X{2E`@A~8t@Zpb zIHb+jTfvHx-t`CC-R!nB9ygya(U6Olr-l%UDh}h4qWwr${{@S`Wfxlf!3F1&M=d({ z=-d(=F>Un8H)7Y0%Lremt40cZkMe0IOc{8q-4n}nPj$(ofcuBquC;(JB~Ku^a>~Bk z57B5J_}HKX%ZJ}2ycG%*F7|DtC)mJ%dURaorD+bO&I?SwpQQq72NU_ zIFZB`$G6gPXn%m>-MT$g6+;!6LlS#{I3C{uz!Yx)TF+NtG-Vu(_UfN_q#)|ADk? zOCSI4GOyE-i;?{PQ-7pt~{Of$^w!e}o(jxnut`G7qx5gRD_+n`Vd4f$pH^tli(xvl7p@qW#Ci zGqjTEKWm}dV@lGs(?*n79w-rLy;IUeVXb>D9y-5V0$RPSuZ?#UzOfol&6z5U zUK~^N%F@`+zmn(Muc?xIH%fiIHuB8yc*6nvAD1*`MU$R2|GCvhgzm=x;Rpz$hgs{e63qAfgW_ITjWYSbSll~2ZCM2AXe{xQqM7^y zFy)-^PEud3w1V(zU9FaToXQpty-wf?w?%sh`@^}7T4S?NLy{Ur^nQvWg|uJW)gpd# z13BFN8McAdmduBE#fyYjBkgHTt)1tP{S-ejyF1zMBx84FN-6@T=;eo+@^2bpQf>HUCK|S%A zGpfeDnuboMQ99Abac=Mi+Xo<>tOI8InC%j~R89CEjNm*3*(0l-Tv3Cu~K9y zF|gXf)$lc1p>@O5hBi^}V_KIJN2rNfcJ-)B-xYI5)&UBMuN<=gM{r)aGXnaoriTfu zH6=2pi)$n9O!wEYl~LNEmP5&n+4-ez>3Xq)TNH=?z%tnrL>&%?vDHl?;`sYdzpF_` z7TLKd;>Jeh_~wC6uhWBxnkmX)!=V~3hn#Z?%~G0$!o<>3l~tN6)m9x=nqFC99#jrV zxy~wrCJg}c(Rs9+PF;bC8y?HB-yRI*L%S}}z51gysxVzn)3e`?CNtn7(Q46DAueg+ zKfdz*l*jGVyE33-Ma6#6p2*)9b2wnQp2X5K)~}I61>(!aXXQiUs~h6c_{!H#3bl0~ zsHka!G2|5mLcyjZdqxudYMTO#-xMp!bBHHvp-!Pjw)Xzy-&tuAlWxu2sQ)`Sj(9oL zIr1?{X7jShEbY@gAJ@QKEQv8rBe+kch&(JKNVK=tK|7DItIkDiXFM>tWx9jWY!Kz1 z{|OtnKbYCTq*F{BiPglqJ}CSC!Y>CljAQs%^xn$R3_N{f?c1+{KO+sW;UCDxv7&vWj#nj32<3)NoA;00cW-rS&5&B)dtGA1x(A?7FjtVtshss< zO>bJ$lu($)iCtezIqHPxJ;U{jRA%2MF z!j^?B6JBZVgH7c62QP{>-Ul>(WLn94?i8KUjOp~Qui}#qkWhiN$5=-L^{EIWV^|6Oj zxl(cr*;(@u2!D$Lnp(p?j?{_oPf~uxon4s_Fh^m09$toti8G+-mRA2jewt4E=MwU9 z)F^zu=AE&7y>++mQii-~c-|k+xej-i-WjIIkyefJ_EGgmmYS`zDft4J>I1@{X(l1v z0S3$YG`#-u!#p6goUW|wQeMM^*AQh;?v4EngvG%ColnP4y;A+VBjtN&xsIC{kU(@i zSCY28Xh%$b<$A@*4hU-p&0SXS<%>&-tTCLNRq%iAH3>%5C&gkEkge@# zKO<0Fy16m=1WRYMhcefje`_|<|w6+(sTOB#MuaAeKe!9?yJj< zi~i($Wmv@K1>jCLnN==e?jdqq{TaAmbFE*@>AS}^$=Z0J>exhj;_T3m=BK zXL3tVib`aSx+IZ$FWV{naTLo2$-@IM+UefKAme&5Xt$u@M+fTJx!|6!+QuHD*8<4S z0uOwkwweK_+6i&kbuW)4c^+XU5+cPlxNcrOAX5$~v@aR6r0T%Dg!1#?2j2E3y0YLh9y-IL3+JaP9pKhU>+-hJ_Y8-dQ#Kn%D) z<9u9AKb2S(jRujm5qxuGjZ~{jHN{81dAD8-#Vt2X>@z=OS$C9LaoO;;jyr7Iw!&x4 zyiR+D{V=8AnkDx{T$aO0@5C%==OdjpPEmrJKM&S`4p&wX9a!f?_>ZzgKp(w)QL$IUhWuG{08!j&CJ9BGLtPcfi#CmI1F^aD zgxWxmys9vT#NPF=h)rP+QXjPZW^-_&*x30;`>Xe(^giU!+e*a$g_AfAr<9pm^0VmY zF+zpZuKkNsTbMPk?ub5^oN>S)-dIZ0j=njEy{jD5N4O;ZWpSS?j)Xpm0%z*2I|uFX z?s2MkgJ%8MC{cXkU(9u8WDR@!|4X+cW@Jw%D$7X}}+g)6ADd z6H#v;J9n?){XF9)F>cSj4}gyKTzftGYOo>hFRv@Asw!{J-j2vzsZchzXzej>f{yKx%k792fj!}_bH{+C&9&OK5_f5 zNKO&=xE#>865exhW|h}%xsoU|0Q>Bji_07qmtP#!qbymO?k|9d3`2EsuGfsc>>F7=(4Zcev{PuBhcryG#B3Q_uW*hf7LdvvFJpKB}t!r%r9i4OXpOSof^Th zyT74Fi>QgSYCM7!ahJiOvrP7{e5L|c%}?%;tyNTrS2k0B(5ECR&V0U;a82^6d5%jm z^cg@QbWAUE6jGW|Col6mji87p?`2+6aD}=o_t@q+Tae8cT4xtj|B55-VvI1z!D$Fd42$=xD2y1rQ3t0Ow?d54=Oc(I}I39E>x2oa?k ziYUDWQRy9N()>g~q$yQeVgr=ki!_nmrFWtrz4uO}gaCnr9+Hq`Z$!Us&+fB7cK7~J zl6&slX=l!ydFRA0MtS7Pg+I!`{pL2ejkL}~Pj8;xmW}@~f7Og}{d*$1@ZRqhZ}#p+ zJn}Y8@OUzIcWOsysNb#Qi%)S&X39-9zWpy+x_0Y*_e~#_vU=>Fr8K0y(%)dQx9c$Pd|)} zr&X>>c#G@NGn=fb?7j3pwnvz+@QZqM-(*oj#Y04-kP1O-WOwd%{EFOZQA@z$nk8yh zt&eA}vO_Fu)%ncMItgqrTP_w5wWU=6AAZd}Ux(RLrG}-|VPkmx}n)&DL$&O~y-YjI6B{mV4Ia^VOlo{ygjMeAlG^ zNUmMC-1=Imtt`7?$hb1ITgUBYPIB2s+vY$5V=oj}ZAlfeC#b^0FNe~0bRuuWIaFVP z&{FIEvrhLD2N-PaZ~R)#EDDL!6vFP>Ofn0rT;~j!kWX91s7AlT6=;^mK`rj zur{N|F4}_P9&+k@k*>`4zLdy>ZMGBPR8Z)HC{dQ!q@8!KW4!3gm~NRfWZm}slOB^- zm`gwl&w8bcXEL+n-C_8{_-Csz>W{>(Pm1DSYpiWdGJaNLL@QSgO%&gq$c(TS_{daK zt|C-$(+s7}s%6PQ9I^^rIm^nEJSuLW<%fTr`vdIB_OqUH&`fLYnp(T3$witesdp6o zq7FI|oV@+Y=pJ6NVoafE&s6}mv9O?)TO6glZX8=gQ?>Y(wZeU&D(p|8Sd)^J6_Lz(|Q&BDk-6vzR>ut#hKc2 z1!k5=!>1t>IB)og-ddK|=kvH-j!0O8I(CwrFa%&-rKTm)6jeasE9aT4k;k zbsr2SwDGE<+(SQ>`9xKDEEY*Qu{SKLU=O!$ne0$!i5HGqg5HVG za2`F9WWCtLeJ@_vIDbzxvD3dYyX*cS*HZUN^qm6xh36s3a;veSfjk?#Sq+kYpSR;3 z#ID7~8*$vXp&2+=BmlV_SDBJwX1HG=ZQO_&lRXF=xJt8UL zojW1P$h8q`k+hz`I~mWl*}n|Gon5G3$pyQnj4p>Rw5#xHHT7I_T-q$9v!Uxh$)%xZ zQkniym+b^kUHGIzo2zHKf@Qo=UUb5|ZRu^>FarBbNu%cL>SiAv%Ygdrb9xN(OBrSM zypE#u4yV<_*b?kd-Y`uN{#f2SZl5(FICM7%GZO!BgiHS|*pdEX($?olh;F>P5Pp7r}foJ_zSk;17*esucCCLo6CuGSnA5 zn!hvB>tcJ=QlergR$XHKq1beh@V4K`w~`)-=HGtn3LJGX zs1;IpE7+rvbp&2mz5DqrwR%nsZe9^f5bbTA_wE|!)uB@tT|p|GC-aKj|MVxyj>_HJ z_wSDi4AZelr+nI*3{q5Sa42ruIViahcXRZet>23BHMv{2>$vHytqa|BRh9`Swt>?{ zA_l7(-oR?6)jeA;VG!OYE8N_crJbnBuduH@b8=)lBJj>Vh2h5*ew!`G)7L}x78lu? zrh6qwM%UKz)Tf3YzaHOANfu2Ie(({EVqL(f*uW$-?RZoxt!cAsk^r_3=q}PJ7f*z?jxF*>*6$vNiUv|;9tGLZ`=LN$2B#QG|lxB#5 zZC-MoLHbWfBLw`FE2Y@IsP{R81*h4(SS01GAm!wVZ{R-k@8BO8NaERkxFCRKRiQM_qwn5p1ZI-@=GwCEr372P2MgR5pwnL2v5{{^4vyyPOkK4o`UvUjd4L(Sip zL0K;S=TV6VrsbQ|vji`>Q(;Rw&c5X5$=iYG@0iwY!`>Fhosbl4H2IpimmDXJFl=E3O8t5!3!a&)}9up~zHao^pIRh?(PhrA=1 z`uivcHt@w_@~iNdWGrQl46h}gb%1i)m;!j7&_Q-+o*lTSe5FYQ$byd>9G&l}hVrziAX33rgfH4*wBy3z{ zw=W#hH^n!xyBzG1|3k28f9pP%VdS=SyvL{5x4V`@##w@yqcuy#FlMFXx8og0Z6cNz zY}-*%tNazx#L*JZy`pYjm+uvpy$L#b^rs6;oFxR)&sJZWi1==OttfB!%$Vx0-9AYg zj@h2YHzHU&<6uM5ZCdg$GI0;XfCk>OD-lN-YWUA%{ zp>o??Yf*nr{5v?Bnmiy}C^#xO=x@^=A(OiqF2*Z^8P!h-DPFLj1k1|AGnNuRF6A)Y zbRo92$S8_$RZLS3k&cRd-$wf1vy*(QlI;PcW8wj2F=geh)$hK3k~&#e?UL8k(TES( zL~ob9!J&Dlqy(E>Uo{()_vrC^t3V-n?L{C^=+5!q?rN-E3~o3|@bfq|lvF0c9w; z_)l|y3BD;*2k0ZRO)|iyd|bySyrVWM590#w5&BrX^Znq5ZJXS=cKVr{h#YnmBIErgk4uz8z~*X&zSr7Y&t#OO*x=_Z0h?Ht)0|ivDPW(kk3## z`fTrB=Jus9+6v1`lU?OUVM2;CCGQt!rr%A6zUlcZX!jLD#3Lwkh!I}IeifzIf+S#3 z)DX1Dkb+rVoYi88N~K>PeXIWXL;Bnbkyk3zlCVmWBiP(^Yf_ZAi8p?#@tJT%GABT! zZJ?LCrIS0=N_@bX?|JEl3-1*Jy7FN@Hjkp_{`*T*eBah4wKMVB3(Qx z!NT%Z5sj1nomI9^lS*{sE+0`u>&1M~*^iu#Uy$9=^WovZJlv`qgu{F zO{6zpne@%0uB-i)rgvmu^`Gt2uA3>lkuF_%+SkP8lE^oNw?h}4th>Lvz4WQ}q1;}u z3;J9BQ~UmI%+6~edi39R{P#+t<06W_-hC&{!1n3k4{-9G)@$Bkfw^S?b?>+g>`@mbRF%hc!_0@xkSuSJS%zr;l47Ss^IG#p$@}|; zNc;mD*^4!Z#JRyP|DYvJh05%cN&`OTC4=e_J#+0jFHUp6wrz3$+pdnkg=0#Us`t+b z$Q;qsvUgsiB-UkEUvPTu_jRawmejcU-Ef^hEPUWd)Pkkq3wz2liE_UQ0H0(xiRx`K zyw@e9niZ@WZ7V#0D&UmTtW)z#ww6&_&H`4UM3PDf=Zw=IA*mC6{m(Tn;XrD2iD})^ah021q5#rkq&v z?yC!<4RJdkKP#tOScbhYIh}7Sf2TfAlGR?|R_Tqka>kXEHBLv35g`i?(jdFgeY;kU zI{|45p?#ZSC+hybR$hMYyR7zmLf{i^nc3Ex*Q_L)Z%bP{wZ6kXeHwNF&0H7c zyy$$+KJX8lKnP8UJ!$f|v;zJBN46lZh53YnEjHOwWev!q5P~#$(IOXiej!)>asE(q3gZN|doNAS zKpJUf8jk+yWnsV4>H3@0KAJBALpEo=8-!DHf~m}~OE0Xb%{VVjvih!mDZE0>fGX8M zq8pt*22`n2sobWfJN9vMPrt`-PzN|B$OZkW>NPb38yEB){sO*39WZ^<_dJc`acY;$ zXEQ?1D?@+kfNCoO|B-1rY992kZb#>6arfY{9h72u-d*fXAdl=Cv^n$eG+`KAzB+%N z`=i^gLcZz_=_o+rIzagNN>plpUXV%j%h3w@!o2>v-+%_3(jDVtM(^c_bcMAAT&JFx zRrTl5`BJFKr7B4DnK9vjr+l?k{Rm;~Tep&tSw(-IR6`eVS5OTQWp|nBbAKK^T^M$* zM)vy(8z7b+AlCd2pZ1fH<1JdBl{i1TH7MkN*bxMHsOASGGRW-vs*o>;EI(FWr2j-e zsu4zQtD-9I6oH?&d{tLdMINo{XRy0$1}N;AF(7V%MykJ`f!ViH0C$=FdF+31x1q4} z9(d8c%gHZCMd=DZ-2Ouc-+$XlFnThAXG?rJx_b(^gMa|fW9!`KR)v*ny&Q)Ah%pjC3pUTel`|F z-2<$opAghcJpzc@zjEq{lA%C(p2A_409=@ai{0&@PX55F{o6PW+4Eh)t4e+-qGwvgXeZJYn`_I?!fT>#= zhj|_&4f!xzTk0c*EinIY+#fx?XaU2B2Bkg}1t=U|UuvoR9$vjv9uBYX{D1Sc0+6)A zH&hJe_M1Uj+PvrJ{1npu=0D`()&YI0I_2bCpYk4%K_7nI*~8K%i{Ga-<2S=qehsg$ zoQKjYGxd{M-lS5-eo`n-3-@ij!7j@8^KaDM;HM`5&cQej+gVJP_U8) z-OtZpeia4x8RrD!(CZ743Vgs|jD^n6*Z3cG%YS>ED8*oR+QR^@#@D+z6Q7`;b zSgq2zY6_@d@J7?0>yfZ2HWd26S)?pA7KqN(+D=HgO$T)75pJa_cT!e@D4jO24smFx z5Ny|_ak04ijv*AyLO~)3EwGLl#9j+*Am;H&k&*&{{2`o|Z8wC|3crm2?fZk#8nT z(y$>;8G0D<*B=ANu*e7)lH__0`G9DFi+ROVmQ3yRZZT zmI(JH;e0W~Ml6Ngh$YUzmWXBnkJ~*vJr3AmAc~OzynG*~a6rToUll;tor`v}k=cn{ zE2cuGxGDY)Qh0QROT+ZR`sNl_jfjehlz3N_Pfs>wwGDQS53+d_)+uWzM-J)pC{%%& zOkX5-Yi(2RQbG%Cp__3lIG-!IruR#6PCh&Zu7;c_89o)1wXyrD(d$C{)-}V!9ipnL zgPy#eN4$Fb#MiydS(W8IEEWU9K2(v|CAYU*!#ae_)S!3!1UtO1Qy-lRWa;8!*NDoG z1(+(cKe%eXlltCtVxddlY+~UNp^LP13rR^p=b)#p^H|cV- zNcs;{S?cEz{o;83VZqcL&*ho9l_(VweQfJOgPp1riy9wIa?;mS@;+@NnGLbc2*pg1 zXI)Bs#scJ)q&V+X>O;Sy<+gjW;aJ*If}wde;3zftsfE~1ap;H>In#m^Qhl&htbt^O z6U2E)8hATcKU`y)(ujY9h!$bfInZmz;_XzBp9Xy>op<`iNJa*fM^*z|ACqbpPc2JA z5anp}d5C}QSVvl8=Q)t56H(TA2^9h&u4=)ymy!_?BNlE{9aOSw;FYEhnqp>NNUnap zxqhI5^>NWROhqTgIW*j1MKV+T8#`>$+#`Z=x?McA=sdV@7az=RGv*eT{g zP9bn6;>o)%V_SXVvJ~I2mzw-c#gFwo67TB)10)8O%AOW(U z!gwGA!;RH#1;Mvii>gO6VE3VG`EoOmJFvUA+Evg8rO#fZi6G#F<I%V0?;GGccZm@A+iRbVso8+o{xvI`+et`o=Il>L<> zf}5+z1X{Q|fi6RfI0@>KuBRkVuEInZcRNW}K9e-wI+2d7FZnJRlKRJo&Les%$>9fY z=1g|)Ww753oaypdHY+MD+w<-u+>y-NzT}6NiD&TK9~{fU zw#TN&R_WrmVe_|Om^ku1-Z{Q)X}Ntw&AfT_rLhk?se!QU<*Ov#E+vDFeo< z>oc?^zEW7kzGgcnu-bm<>>|%P7lPmYqWEqYT!uy#g-Uc6Jz%k@M|;cRnP8YQ*OC?7 z!zZ*9SSOop!_A|mPJ{2H#Nd_-i?8N$dW~yql6~EQ2{;7}+jp$o9Y=+fP_(bvG32vJ zt6L^w+l<-NCAUoqjLeD5xR#>5AxN3jv);Vwca}ZVdS@8RqhdkpUf6W)?zPgbYmV>j z_)I4X&ONI1xHPsu(KBjZ{mfT`4}M3~*%zKEPGpXDp!my?qg-<$RzA6)ffv-V5UQnr z$FRMqxtjVCS_Y>))}_2|kzEw$Ob*HfN^Kpfgo=!M%Er_rt^^(aTg2A7w?`&~bW3jC zj`C`>{a!Ld=9@Cg=yLxqZ2O`G{*F$MG+Y(~VW3P|5HAiGdF&r=&MDaUY>U^0E~969 z*g{Cb;;H0an74i5InSfP&&gj6Yo#SD%$?v1X(6$WJbX&_?hQ?DjG1DVSh|!y3|6w% zSu1c?)cxJG^+0Hr^YE4dKb8n1fl^?bOlfavdp7%-0c(MREH?JpI}qBLdO8#7rWMQO z?H678m?jIgL!p#bkJmNe`O;jqkJ%oR?OhGVYl-ut$7dh4Y^@eogKLwYM}zTSB=hI5rZ}JJ zk@qxvQO*jwFNM7(P#P!PPDDt`qPpw2iZY*BmFd1SM&y#toPjrnHtqJP?JD(#_gT0dqoYKTWpXY1UOxE+(}b(x+!}ZV~HcsA|A zI^Cjrq8bF9N;=?CIK}t@)1q~{rGlFjFi+88OU5tXR}x*<6OP8q1~~5!#m&td@AI+N z9h*?8`y{S*bGINm8ZuK%6qGE;Y6Vx{;(tbMQ`miYkInbR&D$0sRM= zC4&8QHlbx?H8tnkQ9w)t@)mzb?%ktKo5s9d9ZSflt>c$x$#S-<(U#UV+CZiVOdieN zk6^?GGvzr^&YdliL$}ERm!7p{LVhVzqQSO@(6!sW=lB)!EIU9?-UIS6fwRxFyuX*-@QWLgRJ9+rwjmoc}R z@cz~@y4I=FWdfuMaR&jE9UI6d8|VN#P4TDg2>?kzw!b5PQ)+@eMLliYQzJKLz+>%M zJU(z;wzE#66PU2-Y0ct-1SI2}E`Pr4V;A?aJZR0pCr!LdgR~%|CEtg~XPJfQnvV_R zk4DY*C@!8t_xn7yt`@(MC@vvJxyjOEq z*E0PQaF$hfOjVPG?pM#ZtaAc3SgnpJeo*Oqrbl&9KSn_xp`^E|RtO&>RDG*B2jrU% zgnfm*BVG<6_ekEGLJxpsV)JN^ba|Bpg-|PK$7@14O>&c=CrwIrSy@Zw1*>gkM!zI4 z7jq+JVe=l9hi-q*F~X@b2Ep&KiZ~TuOgpsNg&<$5VcpTjEEMB)a0JXYvW?JRs8{+K zvgxrX{5*cLZ!pN89I`Vs zXMF2&?fio%a@zepW^9A&^-k~ZVxsF@Cs!S&;g|leK!8-%x+eE;<^VE|Eo!w#>hb&U z4~|Ho$46O>PI)Zy>&4b=UN!U?p5F1!cy<&-sXsGoaI+3J*G9Nn{qy&NPb@{nQq`W-o_wX1nQ#*uYji(SEdiL!bwKDD3|vtwXQ>M+5oL9L z{MR`E#GrLd6~P)($jKtY2SkGjg46PxSBE^Msqck%pMn@iopVh$zf#O|6&qF%dI z0bBE^IJ5`SiDct6dtigG2O~8}fp8{?IBXnopLMq%M;R{0Ya1ZIFjPb8(`MBk zk&3Xr6)cHdQgOd=U?y%Q7(}3hF;NPCTBZ`z`8?6A_}PqEZjVusMg8G2L0H#8n-)10 z^)s%_C>LF>sCVlEQJN?V5OP8okYU3}ZNB(wryl=rJYu=_2mSe2;dSHppqO+7{P`E> z4FU5b-h<{#JlDzBAi{n2a9YgwBGMxDRMGDkaroWC97SNh=|9dWsCI zF^$94YZhPiDm~RHEP{z}*{8{ByKP0EO+z2d<{`t#ad2caWEZW1SJIsh67n5$QXvp^ zCx(L)E34ZIY<%Vdk;_!KKI>x=C-44T)aktUt?5w+c?&pAxw(59w$wFCbi)Fy->$nP zSD3iy!BhCJ+l7`X^5YQL^Dl(bOPNY63)Y49Ry5TMq|4ZR|rtV+KDk z49p2p_Qgq1k8~eAqq^wLMI1$6c8ApV1U54BP6vf0t|CB;HN|w6U=b1zcf9iBzA(e-QFOEX9c=6jPACw} z^9X?jHfK5W$?UWWLNV8@gS!oHiuju0QKtS(l%{YXyBD&Fn$=h3pk06E82CijR!pxq z`G=try~2_R^&Is3!CJfUN2f&{zi0clW^007Gl|eOx9a^L!N_lf z`$SX(pSxvNy4Eyz!*YGMi}{DGG`+J2^vY%HU#s=)3PihBB$EsfYZZ2v;D8#S7lmRU zzl-jL(q~J_TH2Xe7*3CyK+mh5Ek(z6bvxg`7!Q$ z34x$|Q>~~w&#kJj4KZ_Dtu0ljI7`eR%l1sn;GRm%P-V8Vi8z6>-sY?#Z@1P_W*OT= zrJXQr_$1nnzqSWmEt{9D;fw23eeb^b8-1@}n@*Q^$yIFheu3h>S<%|9tz6!9VQhkV zweF^GbkL9|rIjXqjJ4rdL+R`=Yd}0l5mtZqNoXCtjRonJ1`9`nG*i!fI1$C6lL)s z*C%m0O9d&w3}dRpjXZm?O-weHV5HVRF4^M|<4W$d`_B zV=h(}D8^4?d%eC6hIr;RoO_C2r5P}P8DWd5#rMfeD4;mxiPgH^XVi$xCm$ts*KZOj z&ZA{ItG9uhzLTls+1zZzOd?`iyzNyS0$UNwT8FXK>MSkon0n*f*mOKE4((Ysy$>N* zCcdn+C=jmQyS(oe_Cdz!oEq+Q-AofR{8ed35HE65iy#sU13%YLL++YRs9|@cI_WPb%wUGyx!rs25K2|Gv{wg&$`O; zl;+g^~R_ZK0+&Yu!=Oz%2x0rlxWs>eU7)4MpJ zM1FXk=jHhbk-Kw2CP<^IpiA7sq${9pqD)c6?^P*G?5qhikXi>Zsz7tx=3 z@{=_957OpWX=EiYW7wN`vVywXQj_h^n?_~7q0l`!+y4_+IR9kp#c7Uv(@5?H`y*00 zzE`D!B6?ouZ@7-*A#%%QeFroOKdG|*K{Z91#z6+sg}Bb|p$;LhJudrxor;_MxWtsA z+U!p9%?paJ++*rDC#DZ_Qvl#CPj*I)-3wOS_R|nW@!Vl!f7bnG<~XRv^RXF~R2GU{ z1-N4&pXB%_VTBT2LZQ(5ZO^58i#c4- zh5-IPQ~Z6AQ_J~EM=l+XAE(n`AM?e?hoKb$tGhJ3I*#oCTHlC=Db{Xn+9=t4t+@IN zbg}p24g-teWcnuqe~2xpCZ9TCW&O3o=g0@R!pWb5UU7%1iJGON;VtO+mllv#N4BK2zB$2f2UpMKy4^LyFlIAOc~Uh6 z`lOyvnW)hr2CUlZnW(uH@@GUy)P%8=R}lZ~-J86*1;rfdXNqgeT~I4>cO~#Cg@qhb zj~~bL%Z^}VGHjl&$d0Fe@@bHcs|$y+i6y0UG|{a!46fg>VYv!lRcaS9I-4^^^TS=a zsP6i=A%dx`m+#cFE)Zp~?7oS;M~2~aC-|cx< z1z*e$AE|U!23Y6OihRFm-yWOv#L#x+S<(&E9Q5GIlgE1rdHl|og}}-}AAbu3C)%CV zQwP(vZEoWq2A%l&*t%KM zc?sF%oAc=TWkB=x#Q z;2^s-@kuZKXaZ6G3Ih$d&ci1Pl~Gp|YTZNF=J_d_+a1Rq-_sy!ggM*fgK63(hWGe~ zkV_gYu+jMZ}e6GiRUCNovb6?0Dc9;44<-%y;;}MwYBw0#5@}-^=vr~6z z0@S()N-1{AqUv1f9Cd9YEUy>Q+N0+6wi&Z**nS8YnxLHw9~FIIuSu!P@aq8=1m57Z z6_9k1-?fNJzk8W$M_3_{A8(2ak_qlmdNuoKk0FMubvVrqyCNm>FSX!1wYFsx)AQ6Q za|_J5&*(BFd*#WtQ2h$>A?^v}DOK$EoLpa5$?hyHN1M~fUXpvIRC#fy2g5FcM}cMj zb{3iZ(5zcSUehR*4;T5h8eL?^suF)fr@nt84#@b@_H*y6E97)i#gY!7HT1{z7o!sx zS$)xbhGSiSO;{gdDNu;nQ{)Q`$~vGYGf8c)2MgWZw?+v7GFHdOoG4CFzhIopG|^pJ zaYsE-=bI#~35leQhWn!QIi*d!T_Ddbcf%fvs7H0pQz_kN7mQ68C!EOONrT`HYn0W9 zuXS+R^2$0|s|h*_ONUDba`>q?-p-lNql!r>>+6QvwcbVRlqe!b6-2dk$OJUqd?kX+ zWX#AN%vgsDHn&idFy7kRo^Z2LU|*_(7Xvon>~$)Y?j~CPKHUq)nUd%Iq^Hq*TyLuRk=h{Nrzq=x1A;Ul?p^qT zXz)YVhnhvofv2pBgG6iw`emDr|X3PRuX8LD{{*BiZwnXywwkJpHJr z?dIU2E{;@$^>}^Aj@)=?VPW!%?-{1;w*v-PCoDp4@k8(POKC+a4K1*fD+y4FM=Z+5 z7nn(vyqL6ywiF5+M>LtU7?QAX6VGA|Tqq3+~plla1-6QAe#<@53GxNdef zv!+2BjbghUVkXFQSw@(qp{k6K&&i?qt8F=7NX58BM%!I4b0Xdf>LtB&Z1#jtgJymhD5Q0M2_m;4I(y!OY?JJNzLSy(d;-%9j zoLOwS$df38;L#29>?*yUFC{4FiOMy0=&afB@vUu%rN!`X|5T85f8fLk$WNU>{lZRU z9X~K*Qln|9wC5cp2zHAO28&JH1%RuLCis1}hw^PB34w+T1D%$&wkceQ>)qFpG4T`BU*_JWfZVFpM)IU{)%ssu8^3#GK4H$L+e9s5SnFW11S6>VUrPm2M&4}+7XL=MAKIf5)X(5#*ighrU&La@< zN6{KlL7fw4Vr1+E*B!btLJQg_sHt3^1)#KJ1g(N~r@uxGWDy`clpIUSVg~il_ztr< zR0T2@t8?>xhdCmR7acQ4?m6zY8WBHzu%0mscu-nGrcmWo1B4>Kt6fYPg#yx3e7n|5 zQB>9_C@?qm#DzG{vatyHVoH!e(2tpv@78z%x!s>-P0n+^rA^v(jHRVuG-IrB!{L=* zmAb>N7`_qA+B@6iyND+sgvd?n#hJ5Flc(<9UBMuhpNnzj5;UmlUVz z1-Q%caK-Mkyz8`lP#!3n?g>-E6QM+MrAS@a9~gI&m!*BpkNkbXO>l$OMVrM+M)m7iJNEcB$JI!iSsiB5ez?_U6AbkF!A zM**7oV|Zv!D|ULKxa#3%_@9DSK>{YV24RaMXllltJ zV-d5caZ_uk6lBsSc~x+vwWwO;AK4;g7&M3u7-WW0$8+(xfhS; zji`>MbSAA5ITNU7Gj*sFA8#dr__ITta^jLJ^N&_ZA4{)bn_FTg5q%KAH>`Dny4txz z$qlUONk9GOPpB&|B5+=p^!vPeXR?aP`CJIo+Qbk7jZPZK;Db!}np70z{22QZ6#Z69 zXgrt}n+;1bguxOgR?gf32oT#6xh2qgl`y&_;ScQEGmn>+Y7TG%$~+8z%-@!+H!7?t zUGx6%P|HK3xPADm^ew{V{Kj&TDuLsq*ulP-|B6t7k5Wo6ijZw3RFOmG`<0`pV8#u6 zsSL#e;k2FLaaxSYNoVKb1K50a^U3e6)mS8ps(5uH1fnWYT&SB0^+(zL( z0`ieI;jiM^RLB zLStAKS9>dy^L^|5gcv1^LL6URCGGF=ZtqP@;jd}cRVeOcaw3uY!7V{veCVLmIlNs9 zoqa<3djIGU$Kpy<6-Q-Dwh{Vw5~3@O7NS6&l)i<&Q2&7$4t2K0jh1%;M+k{?EraxjO7vNU1G}q zL?U{vs%0M$k9-*-E1k)L>YEdOCirlZPu&d*9YQMLSwAjk-FkbltOu`Q`eVrT0UzHB z4uZ3vN@lWF?{awEb{@!_1FMd16Ncngr6bR$Hy7Zp5|b>#x;g!5_C z)l>zP(q~(P*%SkxC8C;js<{j2wW5-qKzWrX=%L1u&%dM(QsBnyhWjA-o1H@k2j&>G z^skBkh-Z<%<+MT_8Z$jdf^^L*6jv$9C+nvZ6Q7V>KTUfZ3l7dX#Ry;mz z2CX{s?tBv<))`7+71UFKr`e4$6o-6AFDw#~TNmvRNzCYz%uqum+bAc6APJRz~6N zAwT2So8~-+uoorWL2A<CN>6Icj(gQm5|FZA#I*%q zLDu8fO^-y8W_#kL+Q~y+kBrh+r>ltwp?MXGQ*Hh!&eJ;sq^r#gWfa?MprfN6OE8Gm-R4(G=TK|?HC$@SZ#_W%_7+E zCcca+?E!pBfKeym_p?n)*m>oE{&HxC2pDtL!@|{tw@m=srk6B2k)NOJfU1w?264bu zk}N(mJhWOsLiX%_QjO#{ZSA&qDzIKIuxm@aXbBVn-B8w6{sykQ=9I23ue5#J;vPh0 zwHQ~Y58@F&+D7U2R|mUQYFQ+8&!V5is}hm!jTW*T-Ks}!z7Vd@n|hzqDIX6-t9;dg zZ*4Ptg92Ga)g_V$fM$(Np+6>muCi9eIZO_VO(a<@3Aj^SV3HJ>&+YuX8} zha4%+?)_)=$tRa)`vi4cJ%a#bOYjEusSC?bH z5$syYIsT3Bk>uAvX{-BNAe8_SZ$k8LmE z#dDWN^L`AU`}-wCGh)upG?dkhFANpKU?w^8!lELctX~&Z-(EE9NiT+#HE_I+zx0v= z?mR%D$Gl698e5C7@$*6GAEb_0xxL;ua{rUo>V#q#re5PA9+)dNye7_49miAPK=rWH zBVnJdJ<4~czu8-N$;SkH5&LjUjh$)JR?)D&!1LL1x z*x9D~My&);j*11nBspLk1n$UBrC3DTB(|_=MZ)#a7BElYtDO*8J}v#=18p91`c}u1 zF;IH6Te`2hzeQZ=4}0R=Pi9h4Nbe0+Pdk2d<-Sm`FzjQ(H4#O(kf}Kewo(^Pc%8=B zFY#1A3%h*_CqJr>Xax6Y0a;F$y7caO;mJTeydb=NBZl)7J3#B@R-)nnIvFCmAw*Lk ziD1WGPNCUWZ^qJ9lKbn3;^oY$U>zlzG|UnXkF1OuYx#Un1CSwnDfgQj391iW;dyR>i z6%eJp9QuijHw+mfJ%?mlch?7c8Om|#cZ25%JA?2fziAOPIRc4dhkv^{Ku%xlCbhi) z_VQn~qbbMel)^6=<0O@j(9; zb9-Nj8W+eUD!*=^&qm6#nRI$Sh1ZVNL4Q5qb_nBAZp1$IkOg^%y0bBQ+M^L0*^X*% z$lOml#4oylbo&Bu)K5w3!r6i`6u8+2Z*tUj3JZv-#2uv1K|yga)(l%{g=W|4lJkojUEuy+&IYS<542}$J;RP8t z3Q*GeJ<=|^*H0Sgb6>9}Tervi7MMEz-NZh1tVNt-0zzl@Mg^e22Tec^bO7z(r)xHNK!0;6qmC7C{m?e8u}9@NsB`WQ6fO zQtvrfdtxNOdfWjMk-f+6Hgaq!#x85KIs_eM7 zqjuZ?2@sY|Hx%2`t_O||$OZ`}HuIk~d#Q(I6T~2_CJF1jNA6XoDD7uf`MsGb=!6LS zu1%ydX+{4jH7D?#k3ZNJ=b4O~x`=WJnrKLnbltJt8n)xbw$Wce`2CbEL7b0mgP5Db zG{SI083ec{Ti^ym83n6v*ejoCnG{QEewHyefihgNdNVSfv~3c7FE+KDFDt$xA-`Ir zfmVA)yM_b5*&?dYZ?JPBzI1Az8e2G>XUME=goj1u&0E-1IP5;Ba&b+Z?oCuhSEUl) zj$_7^qh8qSU;RUxq`gfkiy9qES{njw}XBiod8ZU+*jx zR!X3=h8H%v#saaAg~>oaK_+WW^H4(jZ1zpWzVzVl7RFjIgDu9G2Xq?#4hLiV({>p% z4!`}hy!&V|S*1?H>Na6#jsnS)dPjHva~w0X%8R7^N%3}O#p#glrmzUc?>-m$Byi3f zo|lKWFuxi4WVZB`(R1y-Zt9r0i$W_}UN*d#%vi3yCnTj2yn5yOTSbvSx+ZfXeHI0y zWaMzC-Xq83>cxLLf_P3wbZPzQ*khk&8K*uByZ5{*Vz5WZh3maW$a5g$=W5X^3iW)N z4Op1(h61v3&6A*C?OsB-AO5|q1W4(3h#Xd-&*o9 zKi}|Gu$+81{rn>`XZ-cma30`TJeysiL1B_DvgKFEm?_gouxo=PB1~bZX5}8ME5eqE z-{i{6x!(CP{GR;R=#swQX;-h_AbRHvOzjQ%0zEx&g4yLzSFwY57vee4FHWNIEDFRe^j zX!SidbO@MQLs&FU__52BhE2!{&O-0D5nP@k#8Z#deyBFEiug?u0IDdcH<-s6wt{TO z@21)pFa?sPd_ZeQTv%)Op6iZpz->}|0u^i2EmRt*Fr;fw90uztEQryM$0d_vE<{?R zv=#K~PZ%)H{FniqvFJIOg>-b*!q~JuqHZJ?d6SggO>7x-eLl6~wWiVgcru%3kk90v zs;di?%XPXH7Wp4PXdDjnlH9kM#6-e>#eiZkL%sIkA0+vZLj)wyq;Wcjp+36natu!& z=aSCgQKv%!QGwJeq^Q)`xxIBF#*Q6`?71OZpLMPi&5Y%&W;Wevxbpt7cPG&=Q4rMF zqFX~+8o~CQaHu?K*&4yROej8W7C&rtKaxv zRBVlh*P$Ki<^WHb=_0w8hHOHUM zPOiXyUrj;7ghSYPA!u0t5V1x+3~xVtYh3}f*6j}~18n?=ck?crO;5E$|ELTh!Q?PR zzNU(psHl{#RG7P!Oee%0=$u7@ltf`TJ+4a;90oUvqvYPus5Bs{be^Z^rah>!t&W53 zGSCbBbMAX+OCr0dDqGh|-O?|ZfN>Ew}%e(OEd*%+DaKanJg6L-g?{C27` zfJ=HHS=uDZCGUcjLxE613?>51EHunWKuam8S}&B}mERA`mjDsMpKQX&>$LzR(r*-j}k0_D3?CLQ4E! z{*>WemtmshoE;g!-PG+Zn-b@+u=j@WH4MA0^%wi$WU0m&KwuEhX$`UtP0v`_#mKiN zT$X2f#&kfxVepiZ7<`ZBQ?*~Unjsch&9u)T&_(>}m4;~wX7%se?%&;Au9BQsyp1U= z*cf69$x%@?jbb}usv*+A*Y_bcaX{iqP`dDN)KGd)x~TtNLdHfIs_jY$$oMa5v_YzS z;)f|;iBx&cG?6{ycUhA*iGB*BU@}oL(U0}^`2Y(Ig*yQ*6IO1^x=&T%GTu6LQN{>P zReCf*U}|LQ_*&}20#7U0KC9j%hF#*beQh&%{6KfwM1GqWNq)O*6Ln++OM9WW0d-hE zy9KB)nLgCL!Lq!nahlX5fgVllB+cgW6+TgNxT^SOg*nNN)#bm%1!3z8+U85Q*4c2d zwmEU1@ydx!U>P~mOR8~>E|0AMT3{pUPz&69w-#25Nm0MmWTXEun9bz%^$vXrJ3!Uw z;tB*u11a`)ByGidj%})6fQ)++G*YTxZg+_Z`KO$Vq)S>870px_YXYvlYi7pV zaSR}C-?~p~`AuS)X))xtwzS@jdJxXsJaiUoNN%B(b?T#Xp&&W;0W;8658I?GME0vc z{5(@4HTTHk9vv_Yh=i(=ImM_KjXX9?ZYVGoO#4ul?j>jc{ayLD>k8@U!$U7w$~PE^ z{u8VCU=$ogm^^#wiu1q=ha1!MQ8E;jHe$Z2T^|(zKWAOf_NZOdDbBFMu2w6AN6=Um z(6F3byin>N{Pw-$@B9Z`M~FC3{;0Gk&D(!BV8AioI$}P@;7Yipr+rhw2yV?M#9G@N z>Q#KVUT1*oDEi15K`Ez{{{wRt5{~=Rsu*KsdUfqLJ*WL;dDfHu^4sg}lJ)_vS5_D} zGUzEDj9Nue@vF=FQj0cGieO_uJ!xp)&BP4-;2y7=$^2xj;*vqLX)_(RukYb}gEscxZ7>FfG{YZ;veNyr zw4|zv^W$tE7fcM0T))=YcJ;6rh6};Fl$&tOSS`p^Ek^@B)F^DRD@2BQeO`E#U_siu z@Xo7N?X%Qj=eJbK)?=O%)X=ID9_41dN=QQ2cBcotjpAtyy025?uj}dCGcO&XIjb>h zdp3k=ABkE#ztaEWQ1xZzB|Q98019U3OI?#G=5u-6rM7*5HROc^5^XwcB*k+TEU+ z!RQsn`x6ZBw6bzxcTz=1a?!YXTSj31unVre;dATUr?5>C$`ese;4D(D$J1Y8Q5~Dd z>*5m=74~XIy7u9Jgg&C)Q#w)Au+J)S{M- zT+7RL_Xk-P_7ACGM{WAzKlN0(MwT4jW;~u$G)?7RXBgY^Lza1G&(d)sTRLr^v`DZ7i6BQctiho_%fRHd;iCCPZUc<$+pKa4`1(>I4f-iX4EXU z#q#a$9wOYPGbHoY4SW8c%lGpyFf3mPu4l`AUh-`K^18K>znjD`V30VhqvvIcQ$Mw- zb$6CSN#L_Lldg>^1&^$*)i5Z6!TOgr6pmUvR~6+VZ=I;=k34_x_Nt$vT{~HPvaZQ_ zy$Hk;nM-dZUf%k_FSnp6`4sZ$-YgaWn+OnJ5HRZsQZj#m(+Y+gy#J9Ovd zYPE?v`V&_M{c>ehKw)I1@&5;5&yO<5wLG-QW;q+5=OTsidA%@%vI1tLALe$Nv;3v+ zAZpCihY=Y=<2#6~xAX_wkdqeh$AG_Y0q?D6866CC*9>#rsE_S{4X)^etlA{;im@N# z=cJdG^vnk`2zIitiv*<*3Mk$Yp)drgw~q3f#KAtbJmV^8i9-K%XYNDdUg{S$i{LeM z%GT({j0Z3aSzp}tt3iC?9?;)f!|(<;e>-94_{H`OCceS1Vn?zcKjE?LheVcfi%zXc z4?f(_>u-nyGbh+IvU!2L(i(|)y_L-i4=XrqYzDs9Q{S z|0{j*G^*d_^{xqvO8z;6z03gTSoDet+1`rxog2Di%0HHE#o6g?{WPa zp;H!9Tp01#50JorH7?`h6AB1aQIm=&j5fLFT%*g0jfZHM_Y)0W|0x<0Jv>6gg5FTq z1&@dFNH?_cD#!N&!>^XO5apsHY0Y;9IlrCw{B2uoPm6d;$s6qgR>AvAa)en0-kFjm z#4>gc4?w(q4uZAj@n!QLQ;SJRVRw*I+k8#ZeYd~Yyypi78;ic&wJG+vRVX#&=uU6B?2VyiMOU7j{ZRi}{y?aP-V$p&Z67buFrPK0E+Kc6#5Giab(_anPft zOAbf2#)bbT5Uv?yG8zFTnv41{{74?u0pvl3I|i*=o|ElcUM<_QL7|@Tz?)3@#tnxu z9576C--*#-<4!$_9D2PyY4NmQjIHF>_6$c`ur0l^kAbVqK;g2?s`c)oCvN{!^UXw= zO`e<=i~iq7aNoCUe=~eC+4xMs04f+Zs(cNkC0Rr*m`P5Zt(d+5y@^W~p9hOv%wg&~ zSzxAL{sP>DejB!8{hf^zHy`4TZDFD~m_wzm$!X-G@G8Z<@VewVh!|Xy)9)M9X0WUT zYg|a9f7ao8BEbtMlC#}USp;fF8TXD_X=Kkq$M5y4_}SJKwN z(k6#0B1$+~g|+UdiU>i(@4eJ#sp9@!MI?IoCl%2co=Ii;SyDhe3i?RJ$o9hkg*x{{yvcwt z(lS7WVTv@bJ`L z0%lEmEhd#1Np9D;iEztPOW)x>ANI!?MNnV6j=Ti}+fBaNXcbzHsXIyIhWt%q0`u=Z zMrOA{-Rq`g{C0t-Au8ZpBhi8{JM#ze^^~^p+ z_um)h((E2w<89Df|k<7#>0%dE7AhMhKiH+Q$#a&jaq$9NPZK~?ub zY|jWW8#LiJD!iXn!qtTzZ<aO|Qk znJ#0RifrK=e{lVHr%qd>u(Dv`2%#4V?zosnYvE)R1g|l;r%$hnwH~hUKOo6oY%x1**ZnsVKm2y0FA^2IgUE(cYAOX81C0$X|R zz}>IEGiOU(Wa{y&83$KtHjtv&jGOEIfu%{gvK35IJ7Egweh}WyJeQmM_2bXXVjr#7 zO5v~k_r`^3y)%1ZfZ6@jbn+9o>Id#$JRtEIL_*F@p!HTecb$b#cKiOx!-1PBcO03M zJ!03hF=wB$V47z8h)P`jZ2=q!JCg<8xB)Y!M1q$)iiClY`;ecGGktao1tue3sMZg- zCGgtRqkrc*AF$CBr*{AY4?XLrG}tlEiG0$1 z_Kx2A*;6+}hdIkvRwGRL*AtsaT@7igFbHVGIG0>e`ZUFaNoZK z_+acBPy~6=aR2TvdNs5j!#VY zUvdBkxn79k$79vug{AK|k6+M=oely4e|Fwdu~Age@MJY?SYt%>=2!pOct*g?l?8U* zA&7fyA>ggx&E0t8ce>X>Q)qde%dGoW5U8`GXC%+`)|Eveip7jI#DXzw(;3a*b12p` z0Al^t^C-x4=HoU?ypR$7MdqnzN@a3GMwo+ir4*$*_)dN}aP?P{0)~Oy2%|jd6}3J# zhmuDt7z4_EqsHUh6!u(Ac6DSmvVGpwG_vv186|!$qvIQGI?WlM;snsBO0A>CfE+I8 zCE&b@d?(MZ*W*7gOcx=WhGEy^2XrTNI2=Qb%_B0bixSSgp|Nf-{A@#-%98$|jw?Pc zZ1mz9h8CxTz@hzzMzdRl za2g9}?rSW7^`sex*}E_ny;p8@UCqhVwQ_Dr<4ZDS6W7i_a*pOBJM39p8ZW_|hGxRv z4h(paPOrzm?V1ZQZaeafC~?3Ib(fDrlx!1|Vgf%{%;M>Xt#Go?_nIi6c+Q0*G+bDx z(CjYPpMz*Wru(-D0<2|>oUCtq8L+M)<-hFo`akGnm$WwQOGqfS zg5|n;ZcsOHRm|QpZ>I_{dkdK^xysM@+S!B*XK*O2ZxTA&PWsj>^0s#3_bleZ+jl$xp`RvfZVZP)Dqc>^KvIIyNMZO5)dx5) zEU5dk!3CLB#?+@@X=ptC8QfAQEVAyAi4do`V-YGTM&ncY^I1fyb`hnqN462%AkOlG z3z$LkT*5ULa=A+sg#`j9}!)iNsEHS(DXUvx*ixz@TT`UT^B$U{_f%Bs6WtUs96blFx=2b%q$oMTo!wn+ z*NliKU3a@+@I6_d)E~`TJOw%68+_e-;Qd(a^yHlf7v+~^JgWl{4q=zDQZoz&B#roK z_2n-ixs=h=iNm?H630`+2#}J*E-;5%ZH1ar1TMH~w3f!`IbM6w*r-9&By+2BV>}91 zckgPOv^Ov-JVy12V`eP3`c0wo_tiK2BQ`BO(;?|Sp9_VgZ>mFzX_>B`uYSrMg~w4_ z_*QVroY+A>l7fYX|K0r4r{9SsBPb6*tN0@zL$+y(_5NV~3n}1Vd}(L z4mz?46;8)f^lhyWbx9^`->|MbddFfJyl2Ww6b-g)f<#TxxhN|k&KpNTW?4{}u4(}D z%DeG(H6vM(rv{l#4L6G+M=XRNe`v3O$lfATs(FL_7L-w zy4{^cuaDAB(d>i;O^yRu!^6109U(VWL9HIWDnP2DLd|`-;^%6~;tbN+7xum`_?NIL zS|jgM9u6oahNK#r7FK?|s0_faK6T-&!z#xGr|v){pKi!R@gxE#?Ls_|^c#qHcnyN0 zu56`b(^cF6H9*S05Rl9Bi-M<0so>|*xBlAPnRix*O>}jFK}OyjFe=I-xZKW|b$Yg| z?J&5$Bl3#cwQJAay%Dc2EkeZk$}APfHhB`&-qH40B)>?=X0kh``E$AG@bE@BN| zB>^Mfot(N#mgLfpiXWdjD0KCGHX+a|FGNM1>ZT|>nl)$YG7OVc(u;x)fWQ{nF<1#0 zyV=%$U|Y2woVXmd@Z7+)>jLu3ZZW9KzWGIR@-fhV&fSvL;DSN*wo;)VuP=)kNhq!% zw@_A?ycTEQ*_f_#PvDP<&lgd69t6XR7o?gzYUx{p$Qti0kU1Q%xk&4t;*e$Rbv`@M zgGo!MPw%g%V23OlO)u#B?EGGuEP@F`F3Y+OokDU?pl8mo^ZVlW%;mwMo?*0zl6H%? zme&^4hv{`B3hS0^+Dej@M=+cN>gfk2LAyuswQ9ajs-PN0|WscR|&SDc-wYNr5i4D9mYljP=oNWkKt*sEz0r5Q(9J|g*p&UKCg#tQ@jmyZDsMr zZmVbsV&DHGg+b_{4+e|g3S1qWp-j_oTMLCIg>RX0Qekc?u9F0d+q_b$r2QO~X4cA^ zr4@lcn$z_Kk42GlHN^CMXP_9IPc1!%^gE9Y3@H=7J9Hp5KOUoJ)zOu87dzU5EuE6z}cH5grDK$pOdWti{kyz>4YJuoM zZ}%*s+np=BOO7R2`LQ5;j$!-xSAEj#K2=AI!iIG_AX)P7{~`6!9PX^C13@>dBas{# zjzXTC98sMVx8h?No~~v78hbD8sbOTr5)%NQ5+DNVThY2CuFcRa0H-3oqq(`_#HwY! z$Dt};#-|;lM0*H5HM&d25nO0B;4rY~Y5!*psosKQPxgEPwNB}eQpMyPtgZZD+j*8@ zY+F6K1?WF-n&Gd7a<2UdaH1ft$Z!|)qtv6EdHx(2=>p8o|b>C5Xg>2U>#91XZLtiG%{sG zepAwBUds{glQ0IiBuoHad?to9l1gS;eJs??tL1^;Ee`p*!m9prg>|;Q#P3N3nG^mN zA@X)Z%=dpa`=37AyLOzura=Cyi>mrg_uTK#=~$P@O4aWC!sJ&&I~gcD;LG?`Dwn!T zYM#bODrk4Jju`%?O9vobj&q<*Hf&mSYm34EvEL*Q&YR#fu_~V2P zKDJbdoiL+hr3}B{9gM!_ zGNObv&aP-CC>OULBby#2^Qt?S82{D2{vBLjfOCKh=3*1t@chfzOTF5CfHb=QyZ1>_ zMXrk{*ta(MW97aF1pT$^Fx+p1jOMDg=UIo5P=>sD((wM1@KE4O6C36dCpYnA1mwT! zC%?PYXL3t}tvu{ByX;H98V+;wksmsDrlg7wdJb$lQ>D}C!PZt5efnavXAj?Zc9=m} zEmdyrQKdYLyMrK2`m^)sTse<@XvCvEqwW0qio0_d=DI(TXLiD$-1+Smr3m;^&!YL^ z){)AoT@n66Za_{_;(g~d_9Oh_CvY|b-f-B7?u`*55j)K@fbj@oTrJj8P7 z^H8J(J@18GpQ3k?Y2KK?aya=?@96OFH3-z$GUEBBNw?4p z!}o9=b?O=uS$r+~&9nCK_e)?alJiPy;Q2a#dFSE7$#%WaI1l5U3$PR?X)&&;8dlz; z1;^~8aL9twZzCob2sdB1@K>p1-wZ0WCJ6UxRGCqHoS5^b#z_-YC-Nr87In5{)uSRT z=@U&K+|-+AsXTvs7pNWI@5jjsc*>JTv+h6e#po2^dqx?JM{?~rG;d>o)vu7@^1wkp z<%u9%|J4&f(2VhOUb}cWW!%>@%V>Ew|4csh=7@i?q$cd7F@w5=KTr{>v650FTrr*Y zv^=NLnDBGKeV_$5Mbzqg*4fQQF?!ZKRa6k+a#`EjINWgA z(wen3WpnybMF8s5@N19m`#Buo=d)y3CM7UJsby!^v&{yNU!D%4C^x~9!7k5cLAh|} z^-Zfzp}9a?Tiw2}K<{t6jGQHpj|!83_i)5gQ2(*`iSo?pB_0(_pWvcU&T7RVgA`}Y|N62F_&1+b_~xL8IM z+G#wNV?J2pvGpLWT%Jni#Q+Nq%klHk`<+>%z;y{0j4ie;nZYa@U@09y?}ui}8*sh{ z4v=^I|0?0$DLP1tbBQ>YU3B*NI&*qDZ|`n}V6xx=xyb!D!wCT^hQZQxzEVCV0`mA+ zteMS#HyBL^|7iLkyU_z>&dKP)sj>jw_+}`ZE4v5y_{*dCZjN2BKYnGh`(2@;g$!(* z9vQ?B$sf|MW~qOh{&4jhkMF*I;lB5lE1~ptTZCN?0aBRz>njfP#{0r2)hr(XXyEn< zdHTOQhpmeFcR>4F|@-g=g4T z(u+r{H~r5Z_lrSl3u!=3y1ij;cY3fsJ*{LU-R%dP;9crCu<~QH*r0vYl(Dh)> zc`J%O`z&WOJDHE8C{DUNVGhuNPp`r3H?-}*=pkLHVtcN1A1ZM-!dMy|pqmbVJbGo1 zDkRnu*jQ&qab3OTCGrA0_}2L3f@%*czRHEZu9&pbr_*zeB_$rlK>->Cd$JX~{;`cI zhp$~e?d)%;Y;d30jF>wRK$7Mi3SZq@e>}^;!mfEO6o1o(9(rdS=RaUwn6zUhgs-Kt zsdrM@82}i>$n$%=iFy2G_3eX`<%iRS-J9%ZulI5L0_P3zXF_e67+atH)XrjOn#}u` zW8_H0;=%uEzRJhT*5F;qnN+v(pkB`(#=TpHEZb^F7)K z8mW}FWyeDV!$$QOhOcHR&Jwr366y-KCaK!LYrE@P<%lce>3FyD=Ffxe_`sL2?cdtj z-Jl-aii6v^u6q!@%4XO5OtH zY!%>!AAI8+c`$Yp!M$OmXo0#j<9ABiJ`?Q`uS?f8jg1Il{+kcf+0cx+}(Iea1yGQQ4{+F zVqZ;av5Zv0Y_H%z1}pMy~`unla)d^RJ$*o;w{)CG;-7o*=r`WB~2Tl^P{=IGrk%{;@b# zViiUo(}+YDOW9Z1<)d?QD?EheMHlvurHyzNS0s94HNNYd?)_}b3nJbQ>Sz5m#HF~Q z{<{R~VR>mX|KGe?sB0{MZ>4C;1o=~zm(yvY9zQRF@2O`rLul)It0cgfP>|(j_I%fY;X?|OEV~|S ztjaw>&K2&z@8(O)6U1d%46Xv{3@KzMl}s!SpU$IOrzMys#Hx^Et$z{AuhNK zFUdtoL`wTeDd_@Tk6@~pVx!(_Vf0T*NSqA&>MH@>qzV+Ydkz~cab&IMKTWU9bJ|9z7GfA@LY2g=A6C( zyKdD%58l2Sx694Cvs+tQT}AJD!qph9piwyyc#;jaw$~f~KT=dXuaqV5h+bigB7Z!O zaWjxfD7b0jXZ|asIVe?iS?!}KFua%L(~oSe4Y;Kauz0u@#i3dPe;VwV+5Y_O`Qrsk zPclw~29dzw`r0jGVLkML^`41FmB>nx=*&Ei_ha^*vRw_|BqTq{eOEH6;MpM;kE^)q z=wqiH#qoT5mRDeonRqlxyqaAr{>;~qP)aw-$%C+pUer*JCVSYaStR}13iLee!s=h7 zLsGAKVG8y1;5sZH(<0!&xRqn<(6{A}@+B7}hd%B00SBFc1LTgVul~I6cWp7uZx;(K zKGuM;82JVEvq1Wz{9jBXyiyl8!7{M^RHlf6FS!*(@W(uE$qIGdSTqT>{*s&ybxA#f z*9z~`Lnb%IQ!blCNLtRhwB=tODo>l$5A^V|oDp~y9WxhE1{Q_F=~}qOF3ZBnaHOG% zhX$Qx*ZbzR2w4=BVWheYKQ+oqFvqN`ZkkXiu{Y+h7`j@#`$^uG!LxatAqw*x&c-a1 zwJ2KSe!tvxvT_hWbBti~Q*-QB`H`E`gYrA-8Jx8ai^YvJQsf$s-k*cS}GsZZqrCzGvo6^-Jju@rScz-rkCEcrXpSFBOxSq`|{z9D_ zEhRx@3c(v$;K7NeAQxfREnqJEccdqOr&jI~t*)-vcN)Brzck+e>Y+OIhY$0Z!%lWH zem?&L;;&}w%q-^x&9z>Qo9W{M;g{I)Fsq!cz|fr`guN!8LH{oKZ0EdHjGwx=J6k_7 zvTc6I#4xJlx{4nWG%?*+(2af0ZU+7}{0Zs-=h*sz=aTvp{fg0GW2=n*dRYg|*bUgz z38sjcl%%gMGh%pdfo&(KbqL#$BCHCt4#GZiRjN>dd>acF6%l_t-*Ivt9QtBwM@hQXV)R*7jtkN)Yec+A!L-kGE8PI1ObgXGT~kn(50wE!USg2hdX5 zub;Iy7&w&`T8Ffw#dJwBn?d{ftPPnlE)O8Fgxg|zm>f^Ou>p`Xs>I&k8E+W=i+YZ8 zb$-o=__BL)>f3l|$b8I_P@hR)l=alc!9j5~H3X96W5qh3axK>f5Ra0OoK-bH zqKcN(eh>8}kcI$%;WWtbejJt;7sq+wW6AScczU~rFVEovmpV-m83~>}pl)WMwmb)U zl@Z4rOFc!u5UtfkJv_R)HimV1xq0s6(9Aly?MvOPvY1sIM{Bgsd?va#U;jN@%u4vv zyc~!)tw@0=W2lEOOaa}1lSUm?aZvJ(;<<}ItWtWi3RQ3!vllrzbr!X(eJK2pN~1#` zLFPEy6AG5fFVX?w*!OGE zd*EHdwbt27h`MVshlYhinqR4wDn$-o+CCMHVF+q7a7Ibbjj?!RRi-Hube?ho$g3xG z>moCW6j4R!;6s(z@_cn~s2cPrGR(~fA`N0iOF|Gmv(0gy@1}=^(v*XMvq2LIL^0xe z2`9^PatX=lT~*c8cX+a_6h9$ICI0awY1yk5CUtz7G}s7Am<~QtAs;SNp?)Gl@pZ>q ztuG3xmca2ixg`;_ZI1kk;lgFIJE2kXglG;qpTcIEFo$d4%!pnn(Wbs5>^bv5F18fX z=d%H&X1lhfFa2%QYjYiK{iF;_%Z-B)!UL4nGKt}`1FH3TmKQ?DDORbyksB@7Y|E; z)uh#}x|va~`WzIs>p^>9D;Ffq{D-l*mmTGD5!6zy{O^=)i+Hu%mrJBw!ez#f;nZ}+ z%Xc0i%8RI$U3{#nl}q&v9b;u`Ik8f&gd|vF_aGz46@9t^3?QlP*cj; zG_}Ij%T3Is{yzJ{-eM7r;niAYRn-N`QqE2?ud->urI;5^!XG)ndpVZm0YIvc&!nmQ&0~%*lUwf5$Ax-?zGYrQl>Ke;- zL59BSHO2e9m>?4*njsWFXukIy3H=M+6xkorZ>M+mdS?T4L-crG(~v!hG9>tD;qq!H zC+tJ+EDc9nRn_^<=nUQ3{I1&D#zE3db<Vqtg_93fUA=lko?bC-}NF z?V4WOq4Gb7(f9>a)$I$m;8eYWN%bh50<5N@%E*KC%T#tMK4%~JlOl`O>{nL5A%GT_ zN88XSNSaP|0N*4f9~WI>MMIsMi0xaXNKcB$Yw*d2`T0_rEi>B`dA#3wy{q?4HuHAg zx;NkL=2V+8%0WroXO2GTGkhj~gkh-l;sz0C4z zuhvN*RvblpLm(TVdt54rRTZjaH4BX6ShY)4!jih=9iPi~sSmNMrB%PtZDeNB5$23t zQ6Qbur`70`gHo(a_SLO}V=TGpy2!%uZm#$SX8}*{K=Yu8ety}UT&>~yM4o)=``{7Z z2i@Hzmi%Di>r?Fm4+*L+Aw{Vna5s$Pz-PdjG|6S*o0VABs^!=1Oe4rrBqhI!m(O(2 zp$%IV%bApNA0v<%JdUCl)!$4Y)2I=BqwO0KCO@I`(#FrAukEpl#-%VLA$kA)L<~ig zl~t}@kxJN{K)S-FhRUb{d$g*01)-1cFe&3gAiX7b1{Dd_mod?niN;JKl$h~g-8!85 zPFa0|8+J0k_4X`cKZ2;boR#6afD61m<-d&jBZgJ!@s9y1_;>F;;sf{N&q)PnKZ(b> z;8|+BE=sI~y%KhwT8?{%K%E}ZQ~8O!rRGs~#SFTT9qg6s&=U6clS^jGRTY%A@1xdF ztbRLy9g6MH4m!8kW8Gy&*xwC|%KmylrBYXw!V_(r4y1^(=GyAvNijm(%auR{p|57@ zdi2?nHA=Jd42Z)U8p_O5(VEUq>+u#an6aV~d@)j`7!yu!8l9zSHOiX@uvGYJJ3<+N zfQMqH`@48x_rUrB!Uy~zzQe}0UJ(8gXq9Y?0w`1GXW4jAv6m^x=^hQASGLr?_|eX@ zlbRVw;}F|7X6e@X>LgT7c6g~0Qm}k&rc-{Ehc2kVoRY=NoYAlnlrAwm(J@PlqQh+j zi%Cv!l%e~Tsnx7dQ`pHb)68BJOD*IhgillmL2$bmDP2VMO0%BQ6fd>THhStld~A^P z%Dy+LKEZ(ecJgxFd0%mWC~ZP*2fo>Fj%Lyh)Zt=#G4>*V(YJQ^#Z%~uj|rD*a$?cfi@8dP06QI4#I4I_qI=q zpT1uvm4l4>ikyNqCM5|7z)XUap@C2k5Mp!U-f->F5CwLXkYvvo zdlUcY0b#}V2INGdrOsI=vRuv_I!7Cn<^;0E@TH&n%_SFSb=P4oqlW6Hh&w-oB-4m^ zj{ogy`COljAWkr%Z7Q<~sbjxt=_%f{clV6mO)!Z4CKv7D#)8FY2C6==7SHqY#&h~}|57p>vne*??t zFU?O_0lki&f#Qb08b-tNC0Mp%V*i9s{wj%RR}QW+Q+9XIgT;v6#wht;&JhaYWLFmE z1DpG1L(w%SV1akW@^LP(&w+cs_+`K@*9)e!{@k>PJ}f~mf{u= z6_4&p9X`szIk&J53q~jxl+re-@cj3H9ssH?Q8cHJzOwN=M#b`A$alR#^r$uLH6vZ1VMjP^Vd}Y$) zZ92VOy|jvs^V*l4QyX+H@SivlpBWKkm3?|GYeJudpGxU|i#D?e?h<4rVLWUurV58> z;I^bfY-2aCI!DI@zk4ObHy%M5Sta46roNs9NYO)&8L2?)ll+s*Nz6n^p|aPMT%9De z23{IIl2&l-;6^!#FUOQ@%qnX4J&{99MSX29E)c(-|CoFU*Y6R;8_DQ(5JrWe=neVV z_XYV-bEHVtI8WP(Wnke%1S8`zt@Su8j5rOx-`AxAm<3g6SeJ_I^6z#5BnGS@4MLUQ z6CN8(h60G$fBmaQ|5@;vhLW-i@mm-nmLM zd^}?oe0*5J)A(t+K3P^Ic%U*kccVy2melXt!*xZxo8W|) z`J5xD@|CcAMsrw*rh%dwvM?y~1V>+p&tcGl7)2K;y3uZkSZeVJa9%^}*gDMV=EHp> z+Nf$Qt+j|IL~RFAsK%x}2Gg3W1^v!X!n6psH9aHB(v1u#^Goa6GReeq%*8S|b0mjM zuGarPB_F@iuj-7ESI7Cz_yX^YPYBdu=V%w?kv@~VC|(S8JGc;oP@vF-%TnRUI3$r% zZd}fEg6r&uFPxFF&(~g;$5eBdHO2GNCfFmcw!$}e+c!VZ3Ke($rg+4{(&kXcV^C^U zEUiF$Nl4D7guAY5X+m7?z-iM|fsSZGk#7j=Gt3h-FUBB2qaz`n``PROA*kfLenv4( zSydcN6;(whCP9~&s)(akFm);b|EG3MS`mghm`b;aQ{jT#NFW&DEeRP^*}uHc-q3nU z;b?GhnRS;oS?8aNLG8d-G`GD4_ebQ$q4VweqCEFmcH@AMG9*a(Qw$%mVg z?t3y9$K*DU!sOIK$|`1S&nM!}2({8hvj9zTKVD>}8cesM?i-2p4xUD6SdS$|0>`n2 zO`hM1Vl$jq+BziUOJFt-Fyg#YJIXw2kFO-7G>l zMmiS81Qr=qU_|yxWtCH}s?I0Ld+yt)YMPWz;F2{FFJpe=J(>^pc4oUDfTD_Hi-l-0 zYuH=I6GQ(Y)Y2xxw$JFaXP3-0kMb-W%DXl-5?u2;C&O`_Ks%=Aw$#S@I&#g|&id*H zaj(_N9d!2F#d@_iM@~B$oAIMWvPSCXoYk7E!x%={TFv>5XXcTTzH3j3d_E{@nQ?|7 zkr?`U0*#1$Kjuh0!RVPw{tDRpy-3^3hB2YVRrNXFsfz@^>3Vp4S272|#rGctUVH|D zP76qlE{M)!i<}RJK+{MGl|hIm?L`(ud)`XtCPok6up?(IGPz?~jEfvIp=JAcJ^;#B zk1f-=Ol^9kf`TFPd%H>S%w5W2Hs(yG+M$mo6pvT@Plv zMPLPSx$4ukUmOl7itB%&p4gJ!R(X+0j^S9p2)p>`3(@L_T9~XKdkMPl^;H^?=FI%7 zwx>YZ6YqofUiAF_IjDB}Fn#<|JD>Ff_L^2xuwrEk{a6<9?Ix!$Ns&3>$(@5y#xXoE zjg1?q)F$??jYLrm+sBttE;d$Vs0BQodp$#*aBgGgC1UXSD|bjFy}U9au&CQjM!ef( z_-FCsew>hi*ZK?~M1p#Q^K9$BPYD+HjY*GN#PUK%q3YEYElZg@jJW{ke-;!8-kGT= zg5*o0H_t8`&N>W!AE&Ro=Sp)7zgx#LwxzMp1eEk=wU|zR$MEho(VU&ows3A(PI@fnaj; z!*vFye4r~y4%&n3_YarCn1mcONv+hICl?c5Ten5+*OkADs3to&B8zrpDlVpe21O-r znEi7sg_W!U;kNh3zJA-;+ils9%J3;DFPRbx;p!Zf52hyEo>xj zxsTS5xAlNCS*PO*asPngrO$O(jDY(tB|HEz(Slz%BAa8ZH^hx?qR$2uL(~Wl2+mI? z_znt=eO@0Er1VBA%E8P9VbW$q#6H{C@ao-UQSoAYH5H&wK^>NNu%Gwogg_xid)P<7 zpm7O;g#JXq{+w$;(S~vXCI#*g-;6=Zg)fV<=>RTM{`tk@>GrjSZdE0U zobd*~YTkugG|&@Hf~WDIscgJ(MOZrk3akb_S!$_8dtv(!L4Sh14duJG)E+Y9AFaBpZ?!oN+X750ROm+t8!FBkE}e5q`Xs`&<+9^9#Bj+!~71 zBYoG9 zn#HuA7Oe*US@F%XsqdD(!RuQ6#_sqBfW7jBU9du9+_l? zne6DQ#Ef}gUFP)*+*YTwyH(s_8e}%t=x|LXvhOxO6WGJv4sB#~ew+Z!i@DOpn zdN(#T%pkuu!$u-TTdp6?UydiGGRQP=C;-(p-R7(lQA}7I#4bzg!OAp501t_%3&TQ9 z$VKQu*%4eY80!I~RV~<7gya&?ZH)KrR#cNTOPS9GopvUL^u702e@xBy;|Ts zo?+zAu~gVA$I7%o%lRW^@G#XlO5g71g(X=vW^p+py7r5~xfmAodTE5L2?u^0L$hBB zN!>u1JdeQ~QFLWp36)Id^xX&y{QR8w6A*fsgCJw7&gkL;8)=&-;ETXWB@DqFw_u)h zxBA+ecZhu&MAT(q{$yloPuOuC==HPxoBE?WHQt0Vzg6wJY!%*ROt7ov%eq1X@1=@~ zf#Uf-L8J8I&oH{gj%_GJZ|h zA_e^U_f^8WX$2ug4S7wHg396m$+(&?&t|JR+^XohA;?J3%;IwSY24X-^98YUy%0`k z6z{2%1lUl48+-CrUn_=V(70^)=o}qK6|0rZaG#o{y?bffJhH}5fV>3&WO?4foNMwD z4awt*!q|D|bqivmAO9I2D`;bL)sH5o(mtN}F?sPaOj`O2(=~BUru2K_oS+cPFY;ue zT{xePEEh7xHF_hwF9h0;v^z>AS|J=SR}ak5yc8{bv@xHtOwK(*OnjC?ng13Ckmk~) zFlYV=1oP5rL^M8J{oMu!KCnLBUX+SyB>_qENj~|kllsDd0pt8~DXwu+t!dfue2=Wh zR2Gwv_q=zn;Wb$Q`W|8%{S*A_tm^f+V0uH8j7s<5b@S)OuSrQ+VXVO(tO}$y^t zbwTufrUb*GiJ6Bo8eoo3x9QF%=M=`gw9G6sA*`a%n|6&H!kHYMNDU|hXqxuGG1nZA z-3>k&No-ehE`5~Mw3OtV*5%%4NX-P3qnfP!aL3~P%{#n*uy;Uw&FHshba0v8aNT{1 z5!BBje#doV>;hbOromrv-D76IxNefQ*RZK)U7-OmPHSSOavG*V#2k1Vyt>OLLp^GV zf%!_*&`okMYHU$P64Rp_dAxoiDLRorY|!KqR)20rNM@mx`S9l=4Y2P++DJ1OOg+(S zqBoPKJ?Y`J5!aG@`nQy$y7}d#W?Ut*?vLNJ6`>dgMW4=Il+3A88W=U}ybX5b(O`gf zJg!7mx7cr635!ZhavS@Ev8M5D;p>=5iOua2)g+Irw-ATF3f=)&7bF4~8jqkA{L0)S zW7>pGWBs@J4#MgzMfXYFXry1o13p*Uw*C3BGA9QS6+na*7{=(Z;heh>mQ9%%C6#+%UAf%;R5LBckhXzUM?)*tfOLs^}cejXu#K6!w zq;$8$z`H2I=<~hzeXqWcKZLn=?z!ilz0X=}uYCm&#)sD=?I>KYOh+F z9VJ7{JsLI14A-C~CPz6Rl%4O$jvUtZZ~-s9FH?1>ea1c{%ZB+CzC(JD)ZwRQ==bq) z_#O89q5VMrGq~OJw$d4*0W0qL$#Ee&P4I?#-{wue z?bS4v%FcUa^K#mD5j)Sxcu{c}pmY!O3KK##awjKSwq<&6dyI6&y`$a*z;6%FhvNw< zG@a7o_fh%nwoEvG-m^*zxwR9Y((@e0k~qf)cW(jNASwvLoR~4R%{ll3d+M29U{C%* z9bgY^Zk1Lwnf;uLgC94dNsvP;kCl=YE7c!MD60W&S=PX2Y9OF*CDskmG4iMwXk=dX z$A5nimOZZJ;5`fQm3A8qMczpc%2d_5@_MlQFjYLWO1WAkYp@i|t)odVxl*BOg@B-0_04s85iq()?YTQl)sZo1VXW9JK_LjLms+ zIGiTSM9=arOuO|=40g*t6@yj0M3!~18)izJ_mNCYp)nY8vXKrdGE=p@F>QHj^P{jB zAo=&9HSjvrwi_RhhRr;y43dN`Txa<%`qm0(GUF(=t6E6>Vb2BNJX>T45JTmpdb8|P zoftKvEDs$m--XhK-gQO)^n5QKNcUF|2!7ZuG~U7MuLx|<--yf7uaNlF?v$Z_*L=nA z!D+tAH-FcBN1O-h@8gAEfXGioG2Cw7NMiAhKeFM-1-IV)DHl7ypIVi4s57my#I&HK zkAC~Wz7~RS%&yDNsvV*mG&@ekbzp$<#{r&$L-rGR?05d>4qiC0dj40}EeSXr2z)0^ z0~`BUn&gBB)B`xc(3nQwjx$`ngn!%FumZ9&$i zru&PpFfakJ^vjDy@L0XThsR3Cs%0Kq51;J}kSwpPklZ}E^{yEOKa9=-=TG{s?Mn8b zR&!U_5axFCqlZCnMrv8_MA)_S$aLDr&<3E-TL-QRz^qwUXH!~d&6}#Smep;apJ};G zO5?%B{Zjrv5ri@ZJc7ux>bB?)XxzC9U^t8PiOu)Tn^c#uX@#nWqb&!SE72;^Qwkn3Nm1j5hUh*s%l@8Lq z1V0Qcb-q2Vl9DoSHl_nJBYCcEDa-{A<9>Xm=bwMg70`)3$=2nsl0T8&TSIaQvgzV46oP%QAWq{ z@kC;Gt!!!=G4ZSDI@CsVI*ro_zV4T4)M=W7_A{H5-#TBjfqO{XlYMS&a)Hg2n;3YJ zhZL~}Dg0L1o|Og6mX`1O(nK5tJg67MVe+t(dhD6Z6ktbbX<}4+7k;b%7M0kk zLOXSjTxEYgsoTG$pkusls+44u>xIv_Y4D3J@~-Nq+Um4)k1Bce3J4910VUSvrK-I% z0!AJ+3TP~^Uwc&xJLAjp4eH374{hGbtKQEw-+k|naES{l@%WO69=8{*(n*o#=}-#<^o9#y~!vM{aEWIjffnMPfF;N^W+uS zhc-RH(md|`6d3El7?u+CZWYDx)oqxDAgOxhj(I>0|K1wKF*YYop zX(>saUxfAEUNe_3u4oD68Ir#}K6)G}a|QHHpO$n@2bi5g1&xcr|W*t2RMRiW7-5{P5A6@q_3 zos#c=N1ZhBYVXH&nckoN|CD1BRMLVXD@24^dTfAFob3EvCuZ^!caSeCX&KHDHf&7^ z1=CRA*RwXziVb!VcYl0a!X+w$_8H7tLZ&et1GWB^#291bx2s&`-V(0@=cD*`AKcQM ziFHQkz0O4kZ&b*Ni3{EURuSGx_4jEn1m0rAd9C(}yKxwrvJbs-{9}9W;KohAtD>Hb z>e65&hSdcACc%obGPNUf4(vlT$2a>vSs=N((VIj>y}Pyv72ndeEJAkt!!|aJpI0yr zY89uURt+^MhxMf(BKPExswv;c6bIf7-O^HkNzo@_tEM-k!#_R*`KGZG>Rgl7AM2RC zc!ooq&v8h6=%u(Or2~umlzq9(z*=@!2sa8B4EZdpovhSn?(@ci>;O^k@&jDM{0yBp z^0hwFe|5gH4us-{3No_CZ)6|L*n4yd8A%j$eZ@nLi4pCvL@6S(2-@KEEgy8;HQv1z zVOet%IiNd_D>hU~ImtQ9O^g#TJgD-#Ej0e=cfkAe1h!m-I3L+9AS_@4>A~mLTR9wp zByl!wF18@F1z5l8<`&5km3saasReaFtOC}_S*p_nwKNJn>WVR z=NVh$s>n)5>j?Hc)13pkM5=Tti>HrTOiULI7;Jd# zZXO{xUD)n8=t~enJa2}YG3CBfnoGOX=M)|OEvjf+Z!}l|3r=)<>{E#{z8txo)>*m% zgLKGj#B*zuQkQ&a%hw!Y%ahy7dX3~EBUa{eE_DZb8P<{wu+?#TeUGJLItzSxFyLBHc=y5a zx`l&ia*2}61q>Yt8IrkesMklH#Wg4z-TU@Pagrm`*O1Nv#esd7T3_*FnF&tjc!!2C zjB1Nqmv#OJ8eP@lH^P;OrW>VKxuekBj%##IIvX!Y=QQ&COmhMXE*2J@8V`--;%Q~C zP_rE1zf4_6^l#%{B@Tf3WZqoQXd>7d z;i!n2N#Ie_VRNx|`5|-G-iSUGr_y5=t=mh@#=`dtZa2{@MfX^?QW`VTPY&({5;kbezl<;)*Aqu#sp5i@lkAK#_u$EB3-!sBNH z0De|kE_4GFZUqvpCrYNL9c_fYjbNR>lhp0iuZ#VrF$&J zF+}7+!Na{{FS=90-BWZvEof#35LsapPQ|3?y$JV!`9V9zk zm#q>%T_=X}w;0dw1Lb!(3MvX-T)qoTJ*)oxmk`X=6%tEIG7tBV57@VFw%K>P-=|D1 zS1YfV)b_5&i$-0^vi*`Fq*0Xt@351~y~TLCI)uH?9Y z#=f-#dA~Thq}u&w%^(i>G&u-JZhQ?1U*0CzVlID*aqgdrpyxFG@rANvwzku=)zERrqZw7wg_(z8u-=l($-~_LiTCM_srdPb z;c{4Z)0rDsP=Vg&k8WU~A1K`EU}Va(cMno9Yu)_$$UakUc#1L201rn{5ULXs5_>V@ zQcaPM>)o6>y}~JToi>c&O8+(6_Vc&a)Gq{n?(@6wzXT(>!S>QMHx=XSX${T_138}I zGVPa89Q_a!h9x=erl$x5$okN(8~(T-MucIn#Es^PY@I!v6Tt4|wSEi^Zdsy4v?VsC z?{?-+Vf4Xw5Zx~AJl$H2r84f84jnfK=}o<3_qeB|JgXkoBw02zOFGx_s!{ugWG39C z)5v@a#KB$+E}zw#!I5N>1sUV{#;eKaQiQ!NuekJua&2d}WXJG6WQ#4f}wodBv@ zl*iKw7evYIb-fmrP11-@CqcqPtS4vp9ErR^;}r1S+LO39ojiI+xJqvjG=b9&Qm!dH znE5b2pBPX-i{B*c+d*VEZ9V5)e`I52Vix5ldq)uZq4G1vMPL?`^Ap4>&#WJ_tm@Rb z?}ddMk#EOg`mY&FEQomZi~jv6Q;_DFReKV2B@2Fl=DPrB4&P)oe445#E@_(kRPC;j zI;kY)sbJd%GNW4OXkRV(O$nV2HW{}ZXA&H%gt~bPF4)lYw~{W3q|AS#>M3-}H|sSj z z-#507+QflM-OBkY-%W;*AB@yh?n6!||0*%KPyTW2n^x`6Go5kPyr!j(OHnA3lU8wD zV9Pp?!k*u$Q$)n?lbaZ8fB-~5yT3hh#%N_owuyP4_HW{7g_i&C+UR*c*t+l-Jax_G zIac<_n{e%U4zvzt#po<&6Wj=#B!snEuVYU zTviy~e`}1aU4GcbzQ~fz+Y%*~TXB|><=qPy zeOtlvp=+3y3WWwN_Rv5)fU00uO9u~fw9u3(SUYPiVNtzoIV@Uo@NAJR!fVS`dx|xi zr=>zHw_FsZDSO=JOdc)MSLBr(1>3`>tVTuCbEbrPJV2vEaijKU1D*Lr7CqR|{R^<2 z1R^WwJl7(C@Lb{Q&hWXdp!p|{Y;>0GTZQl@0D(rFBhWNa0D-otePoNx9-3(=xU4T& zyJ!sx=H{+A@~Gmp6*4}qX`mt5v6qYcI!X>w))9`%cOG9MlgoK@G`;ep;BHo%e9-ei z|1{m+ZA_cQ{L?;1!8fihu7m4(MQEl1p;a{R873MD5$RCI2Ni@%%Gh_H4xZ;L9UC5M z85#Q_txyo|VLu-w;LM8j$+(@ z?acl9b6kSI;yvxUZz@Jy_nkZp?+J7|g6O!56ZHs?=8Ilz(dXXTV7qfRE~)>ZeEy#s zV`J?CPJyz@;vg4$E5rFQx8D5=rBiHna)yv z-53tU3k0;LkZ;&#Q+H12CIM(Sm(SHx^RJ6}$@e@b+#5*qm`h0W!gz?xgyoZ^DO3Ts*zV?%8>P;|n8n=ZMFK?u9^!f+rjJ5cqd#)OmV1`nHw$slI+D%gaL?Xaa~txu8Spn19C+JDB4xflclq z{rz)%=IU7_b|aB~g-Chw-o?d`;TEoG69?zu66rkBc;opEJ`#ZAVIACpAgo;){s$LJ zzx}^oU-%=}vz_PQoOkw}8aoafMfrKiAPYQy^#WEsBJ%kc7~edfoj9N!35%YDkbC{( zWfV}}%-ag<65sw?x|yG42VMY9-}*_aOLO7VJP1yf+Aj3egH%aWf`WD_f;)QwX~raV zp9Dl+AMtRexlzYhv`)KGR~IHQ9?Gu<+$L!SoKc(B7;*{?N6=Vhf%>ufVcErqf(oAv z+hKlU5uo|3n7Wu%@3~;j%;Ro?>0klRy(D|;Ig>IIP{qfu&q^Jm!Ze2$8$-jhY9Cd$ z+9ei#kxP4+31UzwbJ-UcTx@>CUKv{GSakNdaeohX-=--}pmmJkl!Rwaf#oweY8@^5 zkrQukuzt=zzU3=I=#@#q!x{R6$CaM(I2o%Zs-3pMD|7iaj8{aKQ+%dOy#mL{+Ka=L;Cnu==BF15c}&{>CQ?7f(+fAMp~-UNd@qtPA4 z$qi&yG*UN*M%K*9K|Bt4dLPS@>qttf7<}j0)^wVeiKB~ku$oJp?L>(H1iXTl#Tqqh z*pbPV30oR#yj7>}gS`D_0kP4KFtQ5T5Hb1JcmylPif0oANFKDT)1RseiPq|~H*0gu7ax*s997-$~`Cq|+RFpv~L=_iq zZVBPNS^>JMey5R)G%mKh?7CEN?u~X-nz-yR(5>9b{Vn~je8(1b@yt4fL>WGiO!^Ch zFeCrG_tz98-n5c$m2mX$AA&}A-5gMa0%AtPm`!egMP#nXg`jnggM*`ZvJ+V>7#}~b z)Zq`Y_LvcC5+Ye*DK39bKp2QsdOPMt4Vw1uS48lp_J^*nw)YkKEz0{cq|Fo@OiC*1 z`&6PdQLz;R-yBm}4Bl=>7;WrP|F}U>_#8BrFYX$zMFz989zJakbx#fTH;q|n4BN;j zNn^S9kyM2&9gPCd{fgms47ZE8&z*33O47tu#F(7y^of19nly#R8zqbsSvO=^qu4I| z;KxXe|M(c%aXmWy@K2YC0G&Io& z;g-%Zi`vl}QFc_QjTz_^W-)gx^Z=I*6guL1%k;M4ue$FGQ}f6JvOsQ;mWDD z4=Wr(%ORjCgVz!9RH~sS0hK0ngQ8$HmPf6s=`SmiLRHfF;%gSt3?hfbF-8I*d zw>(g>%A9yfu&SIBY9dbs1u6gyAf_>ApWLxdjI321K__g37fj7J!#u+d^PC3B-wRcJ znj+^J+}ljJRs`P1wqejRHpGz_n=*%q7{7{RW+sf;044>Bs_e*tMn@-W%88cTKYrixKs|JLyavdwTJ`M7nv zV^Y0h(j^TI=}a~lb;Bc}BcY+uXqKvbE}G?vpz=JWp-0JJd z(9hgVx3uYH(qjc$i4E_U_UmO1&^}e;9sBB8^S(I7(+O2?&6h398L!9SF&?^2QF5&p zOR>&}jW;c8I|iqzPkvO3AeK;gf6fS3#Gu{ZXlh3+blZgvk1?Y3QQ1?U4haIt%m+mC zBmY?^dbILU&y}?gA~c4t&2_uohrQcD`Z);aZdCYE2t}P?{sAr|X5uuop3*;>F;0Rg z3J;~qC@)G0^C&7M{gvi7OVh$;_bF0xm*1n6yln|;D)V@>YDF`=ImIj(>UjtYfVE^F zDA;mW-SH;XT<&^X{ z7?)yR=P5x323)FcpZ1L=sg(?VvKj*yKE+(K6`moOrDo|r+k5+dag~R3giQ`J146_d zL!=Lh7-YP@G(wLlVcwyP5As8C2Be~jUXo+#W!n;#mqvJ?^;oPIRc(#z`q9$0#boDK zKA+JEJ0+)m0ZGKmY!!{NIrnAb@ZyFV&=i@xro)u_L|=F3=2y2cbE-0h4e5}G81&|~ zF3nQ*iG`MX7U_!XHEIXUGJ}ZTE!kwH$yU}@6)c*fGaV}H$ZPnC^heS$sp;AM%+(U` z_ML<2PE>3oa#gPC>aI)*psn?Oc6MkT5hQR=CyEqP*Z*wo0I`2_Z5FT1&>8i;+;Xi@ z5=pl@tnBShrPNFoeKnu*Gf<6`dIrDRrJpdUNIT4t{LMHM>J_U5p93mDrEhV z?oZPSeTnM?R5C|5iY?3JROg1Ph8W7cSaYJLH+t!@)4qpDEJG6ag0qwlkuJVKHHH7& z8`yMx46b6C!?$1ylj1sDrHB2#Coby8>d(K4R^|<~NLL0s98%$EH!H1MnOFq0ff%?w z)Gdvo_Jw^748No~5{*CjL9R?+{emMMPjO`DC|mM+uAjb+&`{gDx=%`Q6ybiuB>x!qwLly5i&BBov1<_GvVDriS2Ag|~ET zbaNG?&qg|BbcwV6fGS3+r#1fi`_uJ?yw`kFdXYk<#>;}aKRx$RcAaAtkK(eOy=a?K zdZ4j|cR~GR{8Jer-%y84!=n1)r}gcLY=y@Xay;6~HWmV^_tg&2?K1g8Cr zxzA7b&`~W20p`MTr=+3RIZq`cKh(KjP$x7Zs40}#$*;sSa1XP&GL6XBi(jPDOV1Y; zE<%Vq-aaZO(P=NooV<_r43&i6=9L@S6^kA!yRYu+;OLOlRtFY!bDT6k{Q%?sb(SuT z9VlV7PieCA?HH-B*2mSyj?t)M!?=nuqN1uYZq3ax#RD(O9yD*EJG6gV*(Jl=T_$6j zE3WqFnh(!QeM(oL&=o^f8ph~}QZ)n34!f$;+}d+n<+TJyPCO&+=p5J(Mk1I2fLsadSfP-Hf}exW#!qc2;)%R%B8Uwp~BL<2{BA>?p%7W)QH1pAogghn9iQ^L)J5xk4SWba#1B)~Wu z>-_aA?>v_l0;?xI6Oqh$9=B4T?zO2?F zc`>Mxzl#+@-=*t`*z|J{*ETPxyehIdwIIsj!;2NG`{sQ46d=v30`1ZEwj~zLh?f4$ z6gOxk4V*=*XOo2f+NCn}5ekHt17htjEN~8p2kVRV+6K)6Dt3729nQ5CnxktkQm-X; zUV#e^UANz*BR#p}@PMPnP8i7kYiJ9V=`i2L471;XmyvRLR%vooXzK(I{yL7*2V^Ai zJI6-u4k*A3Ub>h;vWsZBnW!t>gl6gZ0B|F-JDv8E6IeEnAuwJjM3iLkzVG(w&iF{# zxg%u4Pj(@)6WhPU*u?e)7N1iNF2ai7C@|tS=B$?7Uz+cnQSQM>Xc_Q3!vMG| zY;_-~T*2Qd{F?szD3liY(A&BCxT5o#`*P ztO4`S%2mV93@{k;RB8zAP$Ke(n;@pR7iX4>|Ly|~|J?_AF(&SdV{arnYXQa+k?aKm9I{`)sW z^9g^T&!c?Zuzql4ez!fgnb ztOd`<_Zev(coBZo>Fjk2bP}ONY^^bUrDnhMr(;uq$XHPBN}zxX3E%*+Uqh#Q+tu&^ z27}9CoPRv~<9* zt$~a58u-nSg4KSn@%+<#bPeqLd=lQW*Af|k-{J=6q4*8wpVGbMd3%Y646yG!UfZ2I zT(di%ZmRE&M!jXNv%EuJxz(L2V#7PvnEdToq1UFw_CGo|Zr2kZRuZ9nuwAzo8*wtI zm0o7z(BOOAKVG%HAY4>)z>~As2j}@(?Jdt&XFt|Ymg{@S`RYz!YbOo7M-6*5Yfj>E-KY&w zzXWZ{#PFnSV6ysZOalG}st5{W!9H0)aJx7M@JCo-XKRTMunC}JVm#oMjg@sEc`4I*r_HBc)<#?Q7dfucM$B&yu%PJw;1oB ziXqtBg&5p;G?M8iOuwTUH?~2Y&2U0Vd=k=0u$2&ZL{Qq#ee|Fx^3m^0ES?JC;4;a# zk9n{r2i|W*s)v)EC%GJ$ih4EHj;1^7`g5n*6$De?o_#-S5RZdaT(vQ1LI1ic7TuBDY8;=4F5fLH9~E!X&-{ z55=m$Xy!?3G1FbX&g#dY!Szm&gAw(IeDvgh{{VztkJsW435EonCzleod`J%S=UfKz zst0`bUC!m#aZZ(WQs05Gidz&B*2A*gu7*9kA(ACkmpHns5DP^ z77iDM^b6%gTOGsl%wnF)F2>K*B*m1-x$fQ=;a=k|O_|DZ2)EP07Birg#Qk>V^jUyn z1r$^7@zKWtquzliyp7Crkv!r4#v?Jl%)w)x#U+0v@ZuP2s)~(bI^uQbsJB(LIaRmW z9ISDv&g|uatc>=$*TcR*!Qq|=TSLkBn}YOUf@2P+KI*B^N}Nd8RJ3pji=4BQSDm>1 z_I)+cTQ!Fo=dm`3T!11Gb_wP~a5>imxIKNEAyB5sS+?IlF)&eeWJi9fP&UI*4IUwp*8`y?h4VsW|Lk>?Z1<6xjL z+ue{CB3`0#dUtxf;kB0!?2+fCuH+0$eUe9Z*ve9c7+7S)AkT{vEKyZ|bI!7jlVa_X z3UOq;?vmBLQVOKeqCuNE7`>tlXvsldvrU8<`NwUBGJOa=ik{0qNYu$rvW<401G|6N zC!;tp`DiO^pID2p>M&V;ViSM`g$&n)e(Cm>l^Mv!!dENo;t^J^)&LR7R1W%($B4Q} z#UH;JFx-Bf(Ei#B9aruuq_z@VPv>kVwzc-x?WMYiYDa!Y^)1w78@2NljZt-XcOv6P z;>oOm3;FWU$x`6xK}Fu-P}#}B;rPihH+>gs!<|{=d2hs;{pa(fd?d<`{hH&e#$>Ik z9wBZolvQ3L>i>ooz=26;NO`aKBf>_k=2eJF5SQBe{WgePtGJYFc+Mf+nUu!}?g9jPmRW%bi~OB5r@y=NkR%QV#Fy zJ5dfTr6W1C38n}4gX(ElmuUVFlIvWFBs<6_6Ul1dU}e3%y59$lG=H-*b8GhY-0^!| zmnVYc@%{md1!%yai=|2V#+e-NS^`EKtHr*8Oagh#@Zl-CvthPowW znIJPwqKnvVSy%IBgg!(l?=vddw}9gYS?S$8-1J{mLO*ZRjr-xLr04Uy zuHLVCn#&vM?;`Sgxl|*jr_BZ1^7yMPPr{!PqvFx9N%fu^?~;;{p7>G*IwU-y zZN214dPEw%NxaXhwjQv|Fa`za_&SBH;_mlnnQOW*X5}7`Rp<{8yuRm!>9y!kPJD+h zsKbR^rSlj2PXH1`gT&Qj z9?tr&Hugv!kvA0>(ehyjGK;O%IgMl$-}t)?R+@~jZp~@Uq0^*xPk?ugYwpJ!XCfA- zewFM^DoXe(m+WSNJTk(8W`j_o~8 z6JG%0S{8vb-j&XIO`XJ?^z0>qv_$=Bn%_ekKCm z?$l}KkMk+#ErUC&>JD`lYpXaaM~NcURI*Ggb;mxYrp=k`+HUzeI8~f@h0A^V9emji zBh8b?Ju+mm6Mopmgu2g_$W@5MlStBWigy^7tmeF-Tbm@*OiGB`d}&$3j-LuI#XUDb z+Kyr`h(MIjCI+JY)$MZpPIq84%xo3lCp?z@ z?CvZ8O%^d;N6Y*Anc8mWiI~slQ-!&9ca~bFG^iG;5%SWhMK8qe;A3?Ht=fJJMRfC5 z7xCAme;31Z(yn+=0q`CF{kz20WBL0t?$9Dg<8-$j@JOU}xNs7S#AQGqg2Ci8OLBUa zD2T;0JogErp>Z}gf!0_z!k5AH&h-|nqi@ajULW|Xsl~;!7NufD7=mxOsc}Z!XzkJh zw<(Lt<0XO&&0)aES;LJD>h=m9^}?JV`$R=3zhALt*_<r4)g-!03@U}m4t?B1`ERO0Vb+Ku>Po=rbSvP6 z87CgK+Jeh>e&5xvC#HP{Aj%w6)$wF~U`i}I%Jh@xC8tRY1pBnzm&e}3|KNnv-^2}n zkGk0FiM(?bk0~5jW}nlZF_jCI%yk-|kM|NnzQo-_7x<$p<|VI|1_i^fp+(H^R(((H*kQSiMvP8t3RmIUjWy0&t|6h0Hyk=_`v|V2Y~c? zC#{mJ670^OGJyAX48LBLJ#7)mo_h$3GtaJ*0p#PVx>sDgnJ!?~pA9bVU#86bv)Qm) zG+F-mqQRgy23{Z@{nKueSe-s<4A5Wb!cu~}ShFm?(-foXG{Cz}_@&j1$zva%z1{@v zI#nPx9hJ%~`LFE&-5S;ItQ^rQCw!IN_Ims`TCOXg2_T88XF0Is5CN3{N025>P)evOUAlB> zO7BQ0p#}w{O6Y+=0FmCMgcb}UVCcP91wx0=d%1v~di_4`@&|<7x3jaeGqdwX^lQ^K zKd$tXa(fw<%aeHp#(VE?QT${CG!ma3ZWYasM5f&Tl?wDVy4*}dadvM7LQDN}_a1;t zvmxh`BohgXTvz`px$Og4*x)Hk6}03mn`l8?LHeHR-&0i?_-(bkp7t_cgyv!cZMKv} z0)-a~o8<0rVCpZsSO5xN7wMA<-gC&go>TTAm{^f&e8{Rc1F%&OCdULtsqOD4>sL3N zmL9$>tL!B)5x(CKbo^DJ{;0@BSg9{jXTJD*Ln0-|qkR9Hpv?GL_epp|T(@bv^r-5m zpbcE7-qY(}L6YGg4>`>s$;B~A7uB9pbs5NRFV5A>N8Z-x8-WA|4x-&}yRU#VjlKGI zF#w1HKuI6OYIexx;tDvL?4Yqx>8xoaZEa345?FOpu`L=zWWb#m4@m^?MVudf~i(T_}NMwl?Qd3hjiJSMEv#k>vWv zLZ(6#aiZI)3F_OW)Vf|SDsx|^v}Onf_QQZ>nmc*c0*|`-LE(0?<$pw6gw+f z0W9`h%603GX8BUJbL``#iK4Ca^n&iCs&F-GN@R*-GgEQZG28QiFcm}UG zW4Y^3c?MebE6AzQr=-dvzmW~L!t<@Gk{;MW?DfC7#3!jGT4S)MOW1NO*EK1cSj@c@ zHxqXK!Psg0@vF@-m`~hFMXqH1_0E@A6{qh86?5sTjzYA{PWFQo@ddFWy0vCNAHDli z`?!CmTKKhIQTFE}4Au@F9)DUtPlV1*X8Z+spFRsDOV)TC>_Ma*c%~9*2fQOBEY!Po z|BQFg7s(7yT8Cfw!k%#O%5k*b4-PNVUp}oU>FI4bmc6XhCxb!i>JTeRloDQ;&`6cd z)jVZ2lD|{3r98fSPgFF^w3DoLqgC#MTr0A>-^9?iR>6)N%VBNSy~u1a<34ZV*^ zg3${=ksR$tmaVP<@g;qxi|bO_!}^-{#d@KSn-th6Y9bUqBT@s!iIw!eSyV!g}%uLup++Csc6mKc{iM?O(a>KBwco*Lr3CC-?CDudc)9X9eqv=TX(K z#IICS4E_0GZ9uw|eTy%#-MI0CKi^1Fd%mu00P`--6u2JsJ6V=4-s4+}Noeg3%XW|f zfVt~K!6)X}n0$ThLx}1|tkBjFbvnSRuYcKM>4ojqz2)MjQH@5DRuVkh-L{WcC|hjG zW#hCy;AQ)`3{4~1R=Ue{3>rvu>!;%Wrg@97H>#^lFuV1wBkxx8WvjoMy(kosU7;C!y`>WSb5OM{KV!r)-A3~Lo z7bXN(t(T@tiC<_fDfVSeItB8ktX*aE9B%e5c5PpaxCc(?E+26vs=HX@yreG9!Uexj zdEUOZ0AyG2SW$*T>cU0!c#;Z?3k4&7OXHh&{Vi+GrkbB6>GysShg{FOt>?81pS`+} zHOKY`c+9;XQzk9exv2r<-gk;E`CNU}X}@qfb80vT(Oa}UrrrI0fq4AE+`k6_=*`wmUx5OJnrdCpA8{;L8 z%hRn~W0>N_U!GEaQZA4XkULh|QJJCls*URWuRmq@5P$vfcVBF& zVczCfoi_0^0RNwTML_J_hSH6xKmE#dS1>fc3j_+<7r6~jp#Ipg`+*$%3*Ae_MniLu zzarw~UjgSFMW-dMo&A;fwko<4*N{wpC#Q^~t?EnyKpbkcf{QsG z&ZH>(KJ6R&<`m+zWGB;Jx!kd<{5R9qG=MBX{oH)eqe)0#J|JhfF>13Lx zmw$V#8m-#2A?)Oh?{ToTYroPM|HBWb|5vOtibzDzlKwW(8O*OIQ{u<=`}5>WQN z{q3(lfaz-}tMdLClI3aF3B3%!$4_h1M8giUH>A6_bH~Bs^j+y|%P0Tp;6H5d3D=AY zD^)G%5t_!b9&vqGBo^05PSlA$Uy+^OIVC55LcRugQC(WzboIu#CZ4G1E7i||o}a!( zwyd5Kkzd{a1KknlwULGO^U!tSQyFCVlJCE&VMb2+oJz#(qUeDh@CT&R3I;_I=B=|n zN<6slwfAjTJa#YwFALhqM_SiU$QYlrzfm3c>WuIBjK>JggcC=zw-jqcCF{KXF`#ko zPw*`y9R%0yf{*)pgocDj$9A;t=hRxc?s-clXgnoVfY!ZKl>|^e*Dyv zxPR%8SVdCzx1y^ZA!dcg66ULADH1cWn7$0gQ zST*FyPT1TqZ|A3Go)-|MX2tF8tE zlK$xSI!k05ut(h10P^lPO4i8^-`N|eTc%So71 zd^Lth1MJN?1K{h#MLx|Kc2j>~K#DO7rkWS85272M_tIZ)UFNdun7etN*nhFi%ocF( z-Hmr%yEfzdMg`cJ>Z<)qM=MYm=c1n2aj)3wP)60v=&>mCsLRH=W@5py?j1#WD$&9> zZQMUpHZQn<7ny|^oZ#wgUN^EyjBz2}R0#7#_ z5rn#R$coe*`Kr`qys_7A_yTb6J#qfUUb=0a>b(%JmH2UkA-n2zUa=htsK+4mFgV7e zeYh4oebuhr!S;;XYZJhkGtZ*zT*bSDW=G8WzPVfX=NMm&tm--#&c^W*h9?uy<6-fY zD~rrNO{_g#ZgH0xyDTqYUzPN1JbUU=Z0fn}dhUl>T&6p!1lap1S?YbQ;G*`LN2Rvj z-w#ATz7Gv{qUZK1kWT7XLQE%&O`8-`E5hoRv=0jNFt0ZJ8BkXvm0i)%Yz4j=WDD|? zz9ea94*g=hW(n9s6EVn2Io;7b4t6YO=XqQJ+qFAb=Q^k<@aS2C!GOAw0l6Z+j}8Q}<&X zyrLPET%l}&i9Z%AC>nTfB=s)!U_ z2j8xR+cZ$@DK(|}xVWUi zy%lhjKoDp--P|nvNww8ma}O}g%?{}09P7^fLmp4F8js$zTwq8?emAM504iChhEhS!ACg4 zVVu%_S_)mnx+m9B2VoZxgPq^B+dtesPO6-&>Gxa!V0WCvl4eHEY@AbV<{~ncZrT&6 zdK(4!?w-~G(?96tjNmlHke^+R3j@CrOVVpFf6%i+;=Duev?)|2=I9HtP;b0X;G|I z3TDVn{q1!oxtQ9~=XpKGA%;r*#c8S!*KL_9*|J6vj&G0?k8`N>QN2#wWtRq&Njt`m z)5|dlawn8n>kV;kmNXc{{$Ih;yGBg-{8?C_6p_`dgruAWCilRxQDB%1jOwiTso8bAlFQB3A7ksdRPq2J`e?@UKeW zmtMMg{oDp-{4nu&6MZ~2e!NfE-`w`-);XHvs#;}+t(qN~WC&Hy3<*^qxx+LRS6atc z)44ob#Wr)PUw^-XHmx@m1?3Z6tAR|LX-o?e@0tg$Tycw(<&C4eXPRTZ`}##aGcw;0 zXWe_W=0}xa-X;S0aZ4w!ek(X;0UzXoci!s2@~O9_!yB13y!hU(@>J~2m0q!pP<3o_ zS$kuaU~JKqfUKr!4u3QJY!7LXM^@`=@kXUC2U>?xdl7^y__@3}i;#R9hl<|I1;7ps z`Ry}Ck6(%I^+I9zvZJYj>KXOpUH5w4P)=+DQB^E=s zg2CoclFR7!k+}uHBa+AN#xHAgP#-&HhNGjOPg48Rc%KkcoBCc&8@=wJ_$}x~dwtWV zsOd{@=NX-&sGrqrCCTMHhLp{(F}AknIrxq3|1dQj2Sg<;7lrQ3_0r+*wo}WCxn2XM zDCJH9K4gtE0|b#ZzVFw{|D-lJ?*rQtNNRU#20X5jJl4}|W+!-VnO zdaHiycE8u*Fm~M^Hf7><%mJu!dv36)$A3U#e%k&efST>0rl{wYT9YgnADUFhTk&^m z6J;vo?3!BvH}CJGs#|WA?&-$OQpV=q!z9r6Ryh4|zuGI6klmryb4I9}u&?p3HK3H# zWR{Epz2>6-z7zlDD@D?1DWiEn*;&IQ{e_)$euzV5cj#7dculKJfp1Q)Lq8ss#@qA`YhYWV(E+ZO#Li8Sm_#@38X1P)duCG# zG3>q6a{0@_N7_U^+*eLTu_As@y&m;w->TmILfB^MRjPOm7LW=H_cL>Wa^(*U5ji@7 z7jpLt^Mo*S^{q6LO5D0gU@CQS)N`U=cp>c!$JlN@^ms+*XtUpITdDdW-fPXOdLd(c zW!hjTLi2E-VeD|3noWG+0z!ny`)FSgmrFlVF^Z@%wawf2t=YGx8oF_7OTsBUf~c{B zq$wZKr;985>@qif!Nk&`UHFGhEr$cVUP^t_Phu{Qp9u^<<9Yk9C!H4rxhJa#vIs|B zXS!vQ^}r~ia1P)edEqYczC}fy$%E9Y&&MYTt@8dF?BSQnzeWIcSrqSf8GVT{l)doT zN(R}qN5yKIMqxcB*5_(14Rv2WCYp<(%|8*$ix65``RI-kUG<0h_5n0AN*>D(e}p8z zIsA%wXIf9L#d34hz@;mqjX=87D^KA5$~VHqr;nmaFZtWaJuX~2i8@A(3+VsR^Ka1l zn*d0F4YhyFJ4K9=P(w;QX0wzG-%aq@TMIwOJ6V<4h4Zs|CxOfNE>DZJzeO#xwuz6w z$7RXY$6V!SJpF!){$CZJKeut~+;34{+jU~)&L4kE2MEX!A0Fv{s}cOl{+c*Qx#I!@ z0fTSLsQ9>~qEtOcrc|-ZkT|bF1^`dw`wP$aIY_UvP?L*1aO#0I)Dl8$swWU zGrOq~0=Wf;0=q`;(moPOG*s0jQFPX%B8(&)T1@kCu>3C?jisNk)Sf%$> zbX5)2@>;R$c$SPsIA6L3#ruG5 zKOH^}!9f2hwh3GC zXxCNPP)KfTmK$hJn`S}FR$QFxUE~l~T zhZZ8Du_NQeDbmg!xO!E_ito~og;JOhRO-ec6R=~9GNTW zj#<49Z?zu@ql?U7^XsFc>)nFI#~b_Gy$J9c=6r_d{Cd*nToOU0Oi%bKn215TtVfO{*x+Kboo}c$fm!3+N30A?0Oa)8})_{4W7l(y!BOyR` z=^Qx6y#J(1nWC~njMD)^+Sz#_C2@XhT8MyVz#Qi98*Y?Ji*Z1VpE%^WoL_PYQqW@* z7}P^Hxly!-xbT7;ihP_u1CdPQ8)QlvQ(N!j{DJncvD%bGH{9sjRFt)no7*Nmp3Oi!94NGLsw3>^GSMf!6r1H|&Kz&ZN<31V8AMx@tm9o8cH?wx zb*2M6cl!Y$TX1=lf&L+Wf@52gav6If^9xRH$V^t#Mv z@t!lyDvEDl{#E^Xw+t)7bpn&fXYvtAcGV|)%_2+Sr?2-S&&Nu8MJxMRs?z@ zw1~S?Tva+xKddt(aO|z;Rmmc%Ao@_ZhUvfAB1uO-(RP8}R(vx%J~iy~*sreVaqo7|Ff@I;zr<)C6G z-V|+}Bmr-JWmDe*C+_^7t=nB$`~LOMtmFOGDh7EJT`twd z1e8kpuw^<1-mtB^4V-=HQnGiJ5oYv;P6I_(S*z|64 zt=E!537QqahHF$2W)ftcSW6MwJxDnSi584X(79aEO17&}15~34&k~*af#@cC z$c@mzw!rd(S%kZD!UirmxB)d+PLoj&Tf{{96lVJM_FmD)I(7K7NpWu?QknSCWYcQ5;;^g(R;nHsg23{1zLEPo+j+V?iv+iOw}h5*gTH%(p)@vLBz{xpsD%H)o}Ss_!oPy^dq6<9`^=vni8;r{fyeApsNsV5xE``!DdAS zTG;p@v!K-dkomQM+Ou5^Q}Lu|avR=mJ?Sa;d{5kxKz9mc(VZoNCdSCYyR|usV_~Fo zVX`d4rGZFpU~Pr_8>^J+PH5;voU?OH^-d5qSLj$P!FRV4*UJI3T#Vp)oY@@8q1n@gQ0CF z$KS%nwTGNzeAuv^mARj;-buq**qFJJheNaPt?x_2$QML?J$~~E9R9EL)izm~((rxD zW8>Kf4Gw}!izjz>z>vzn(uwW5KWWJ^@>c@f-!5BFscAmie{l*scbK?&X+KpLrKPgO zGI)We%ph)|Sy)aFUw4CR3V2~Dwg14hhbZV>U(C)5=YXbiUxGU16mLS+vFs;Gk|Hix zBb&iam*$s4Qp{8mwkuR$&uU%C1Tt|+?AVdnKrEwiVy5y4$LDF@jN~~spP|=5zUxbu ziHdeb$dlElECeL*;HF#583wy*?fyVa-PaM$!7>8MF2;|ukIa7*rzE(ojSdwyhC**S ziS&yn;`uu4LadQ zbZUNB=9CaElE>-=ZBaCdrA?58Hqxx|hKg_{e1O%#y6r6=(b$LoF&pjLkjG_uhSvb32fFJ(d`M%1Y(#b3bLZmK>B4gfMn#Y_fBQ^YiOBBN4F z6od+0{2u_bdRJ#%cPdgPa(i4JJqsKD}>mw9pb|z zP(7?(w*bVD_36}RUk+FXPWnZ2fs)|EHl{O9tl z93V*4JA6~qnn-rJJe(JIlf!B#uyq*qXX<*R2DzvOsk-U>mPSqrRS!e%`Em~=#c+t* zFk8LtQq<>s(3;J>l&-0|AY?If$s<~!owvDt^hRh)ThP^krt@e%$@kX$QKnAtm<0@v zK@nFUoJ%`he5J8`Gi>-L@|I)R*Ff8)fhpYGc{ifZ)odeS9nKJJ*``*uw#RkD3~4eL zP;M32_q%kp9yxcAh2G_iblBJ1jy@6a*arq4=7wBeX<@%AU#S!|3G3ytA@x3_xxW(n z&zV~YY0E!o3ol7U8fKOs{88|_J=~{kGO9|f&I%f4v=mzCT}WAqT(3`;6cY1J}6zy zl5qBHu6tliyK;?+?jn=tzMw`=;s3nxdTAb*&oq`=cC%JW7|H{lQiCv_X;3ek=z> zpLoczD`^JgDVFL_pz9G{8$n4E#%qTTaV=u0V4R|{paL8MVsS8Sx$Cv!@C-a30Lv~( z>7yh!`a>HOJ_(;KE&|z#$mMy+0kr*zVZ>#>@e7Y7doe!pgln+aw9!a; z5`EV(M=^+0;cgnSLOm2f(Bf0jef3~5@i}3Sa^0u2xkCAK)Sy#eIT5x z)BaRv+NGy4sNu$Hn1eAbr054)6HlaP84q(^ZWcLTP-YIuo<7J$P84X@1$H(>u+y42 zb=afFqWQA|E=#crh3E2}w+B=>k%9S~^c1GOd4$NgGNK$tLk?6FuegrheA<6OuiDXi z%_yicjgBNGz~@^zj7Klw_!V@Q6Au&$XT`y++oxM%(^SAu!U!dho^a~Jy=u?Rh4J?e zvu%(EcZj@AD$Oz-wRn&D*0`Mj#fZyft%7kJl?=?*H&iqwn{e(NW1~^nz{gnc-$nVL zzxc1B{G;1{7G(kI>Bp<%)3&$lUrydIw4d3YAjt5xrAWpBgX_Tpx^j7prc{nZEs)u! z0Or5r)0W@3IKk7q$KvrSXy*bs7d4$8a#Dqv4WwEp-WKlK(8w3s)Tz9)jMy~U8f`-T zsW@G6faU$NO(<+=2|8+q?|+sz6fZi_7^H=WcI_ddd}(qD8!ebyk%;$JX;QqCvq@!A z2eH+YfGg-}MpnFQQLK~OtoQ*ulUltj*c^P->2Wg9%KJnUx{`m27ps6>Xx424JA=9{ zAcpRIW?$IlS~zDo`=h@e52#@?iUiFE)%>)L%Vo4GndD(zrb3$cpaauAQCun3-I zfa6<$pEYeXd5%ziehUfFd&_Gf;kKIh4FSz(%jgDx#=2Ue(^uJMfkNEGstP@!+45(E zrg*iw3n@_vG8)w0<^Chj-dvGY(L)}FQ7uVSp`Nxm@vljPx$iiPJaW?O*p$ODiKS;! zW8d^YbqXPZ9#ILX*Dy+;JC~24<>;PbVfN-R`;xn1DIZ~5{e*b-^dp^nh71j@Kkc^J zkA(Y+Op8j6xFLpka4Cu!66pc{D28rjXaoLYRDtgV3Xd74v3}AKwbm!lO2W+s6gz7( zKAp_|5VP6tw7e(HbIi_+Bijw~C6v>cxv9ZD0g^?N5NpK`u3)rD!p5JaXw~bSn(`T% z96PYBUE+Q8#DL%X8}zkH=!eO&SeJ~KRUT}GyCN(g$N_dTU`U3Au9?Q7hLdgmJp;4p zAc;XSaCIZruzDohzej3>I*hJ(O3NF7OV8KI0C(r56D|KxPe_qIqZD4EWBNgTj+_8( z{AyUjY*UHuiH{$s;3w&cj$_09aG9dA-bvwe;+%7OG5HMiYJ<=bMOLH6LPD~Pvo5@q zgpVtuG}mD`sK8NK6M1c@OcE5z(?9V@QQ7@o!snN8Np_ybM8>aBH(2M9Dz!n)x8#mR_Vo}{tO>J6v+KN@n|vYR z9l3BS-vng}9>)$w{JEBRX#0qcY0g|>P$i#JO0H(03Yd)OC$G+5hvQ8D#?vfP{Io=& z1GYR&YwvTQDQVNO#I&{8aNLLP3;qf}z!^%;Rl#>09$(u!=cvt$rLDs)2S-ctbB@;t zkZMo4_v9t4QA$+Fm$K%`hot~7jfR{*#=P;duNIyv;^7j67$Oqdlt9+zScIe9GNaM{ zHNhHjN*kK8n;c@MjjKK_-v)Y|79N;Y_HJlN>cv;8^ySoLqW(C9N_TN0!4YQpC+UUC z()!MAEX~Egvr~X1vzL5+$<8il$fjQ3L5`QkI{ZT<5_w=dWAal!uVt(Ehu(2lizbF6 zg74)oEe)&DOI9U~3n5XmJBsBi(h3fJ8L5&G89{i$g!s2i8=0i zScN(uE2NzN&qTb1=jn*XrA*NwT}OfF>@BfpRhDflvEX93bl#LCYQYY@yV-e%lD-_e zpj%F(P>6%U+;eFXvci+?w^G^UlVqB=apQKZG5>eb6AobLu140+ih;9qKiV&C*v`}u z(*JBhMzC~yK!a{6>t$w*oWu}_C#eH0eQ!C&-^0gvm8Jvx$T=#^izK;4EaMF!-|Mcb zgjinV;_r9pU}Lww37qCw%W95(;ZG-}Fe{i><5UNw6Wf>3ZlNneag{K_3MO#UGDWD! z#r-zYug5Z|#qMeTq`Gbs67JH#B*xQQ8OM+~p$*4i$#rqawdk*;-1Fzl67%`ehY#Sl zkS6w*qQA01K8!?@8`GjweAik>;jP^iZxsYH9H;$s@85N&UgMo&rFFuBinQ9mJOJ?E zv%uFTqt57=?t_*jiK`B{ON!U7sO;f;e5Y+x(8$V}+ecWzSyMpi0td#-=@-77L^4NVmeV~oK51d&NIImYUMrc>DmxCd zC%aZm_qTFoKQC>nJ@SZAOUv=Eay_rm8Rp|`otXdJx(l3kpMNS&WpFsGfPR z1bSO5ehWE2t^lSDIuPJ2Yf`Dxo594LC<9MFGVW9tf-B*g_N-=t6ZG*1sNLC(`DanK z(Ua2AOVa6#Mpkt{A?H5%0a@4irz!|7R}!}LKbIP<$5^x6jCWKNDBFEj`R0b&VaO!T zXp&yL`ORA1_3X{e^*rjk6ZA6;!c)fa(s-BXn@`JfxrzxI)4s91PM@X7oYe1dN|3R& z!EOwlD|A?_V;@9)rY1Qgam1)E*m)t+imusmHtDrHebC62?5V zOwd^B33~0l$RZL1*m=U$ z?02r( zXK8Be_?>MRsu#d5qicB*uq%=uJjx(-({YxEh*S-%LJEv3xI#rCMbUYr$zrYnWyGAF zrG776=(;_+bnSZ2-I`r^RIhGRjmqO&#Oo)($8t0Ts;?QWjYY+R*0n2$1H|Q*vt`nN ziQ#vmEzTaTPdt0zeai$&>@b8{vD}G;%uhG1501VY;^&A*nTy>NvO{%nh$ zMz{_?I}OrdQGypu`o&Qil;5YJ@BNHXU_87iP7W;agoT06iN;sijOO#S+>O zV`(XDun;pyMU_c9#XcK80FCR1cu#gl(?usN;uq_nBK{RRh=_u%K9~yfVA$~->wv7q z=taQ{@;0^g&h6a=f!rFW@wQGjtNF1gtW<4d-`7g*H?X_KwpxNbGXsH^mK1O2;1ard z3c*A6$|P;j)ZFQ(*N8SNKtWF$sJ4*LD-Hg!0Agx}Ua09o_FND#s}XKQ3=-#@ftor` z+LOtkeK}teQir7l7lU_xrgo5^r$1`Tx zW>zi(c!8dOdLM4t#SxEt9eVAFBFZ5aW5T-2eWPZL>7U9RdiMiL|5~Z`Jld$f&%3~z zmNZ0Q!qO(0!R$p@Oa={WPDPYYiZ73$YCqYf-b!jxbWVNQ%N=ers7(+HF(A9$>v(*v z*5%w@seVDp?VEao9OA5l;Is{E?oP_j@4G)ksSVRwNP>iJ)~9&WWLWgTpUp@tbjlF1 zGwZPvI6y@_+9|T4v`X7u`pr)ZCbQzb2A``b@;d2`LYy6y+W-z_>=d9}hHD6nQ(gLD zW;&O)J$lXNwz_7op{-hXW+ct_65GGinOTr5TZtn}@#oAF9Y;^I;Le$}tQoa&OQr`v zjLAAP)7gm08fkc|9x`LtUN?^l((!nHsgb?Zuj@8e=i?n<)SEvpywfogw8dH6MyK?F zJKY{c(A?VPTt)>*C?J6$>HSMCmEBbca$sowLFS?{ml+PA;odWCySq~4ffjB5BZ9w^ zEdH7S?Wg<1d^W`bZ9rsdR_kFW>4!@)yZ`owO$l?;_tTlxWpvf>nLtSnAL0OR#WPHGf>@$IFGQT+tJ0(gLlO&crzqT#xUxbmiB zQvIaW$0e7$t<}~elO)I!8Ayb?mzZaDiN?nRhdw@V z1*{@_V^E&a8K1~c{;=_9(rlZtyoAR2Q}I4>&{J^Xn5MU*iTo>aXU5OicuE+82IVvg zU(M_qoXHQC;!D}NWaL0E@r3zJV)({}%>TZo3$wp(={yhKqZAk!4L|NRTzGhQ*)<>b z;l20*j|&ODEEIzhsRlvso>CI}x^#ylzAc>uav(lU_Z<^ z^##VGEP6Mhdu5i@At%Ipa=hC6lY9#adXxPaaG`5Pdf~}0CZx2Kq!)?uV(M|7!iF;o zkp7v=Vtt+d?5G|PVY2qK`k}*kU-dxo>1=1J`gxGaYsiVzRq0!)46ocn@uDVYkH=*5 zr@JA_{28(j4MUBTwrz`!wh>f_ol4O6by|;q6XsO)*opn*7$57cpQSHRM$aEY7vkNT zX`U~BXj#U?N-EqF+9+$xbPYG_U2Xj2>f3+yc8Y*`iOx46_IMfe)^91;;d`>bN8jO8gp>250*NURNqN;t_{sb0R$-Et$ITlq zQ^)Tl?fut~M|J%scRy>ZRG>)R6RyRGq5 zkt`gJLK=_MTa&@hhV9?}-hhF}O5f&F7r;IRvWezBDN9SOuYe=9OMLpL9as{x7{~m9 z)3a!2s0oi8J}?-cG^dixvJ{S|doL!eT|C&deZD-Q19evt1-$7*KMavlQZciznD*$z(n{CzV{7J3mXBNj{qlH!QgDm7GPW3oJ*XE0NQ^EuQknS z^!)10x#H}QPG*msiO4XEv`U9PP<9b_#pVX>dh>3X?Yk!$nEbL&JolTXW-)zD)!?!Qa`?p-f+1N@JMXfui$|hqAq1cQf8`{P61$~aR z)FUS>xCnQ+9{qn0@=faEWxE?sj;d2YSn!?1LH7c?KC9*3fi?TI`eCoe^vGFPoJ9QG z$GY14e9R9{zUInt?(MmmIm2Xa+-%R5C+<@iD3h8UmKLLK@j>f%mz4iXm+&Kga=R$C zsIeNM(Pky9x62bCm5yw!thjr?_yTthmn|F6oEF;p_Qn_Akdaj+W z6Pfpw0mCS^(^sc3F&Eq7SmN$=>5}TFuz7V_l$A+oinkWLY~85M-)qU1vE?W7EVmA; zn+lzuR+f7!aPQjqD&bG{@L#k_UTTscl`FIh+SRwr0uS{0ec1=SKS`I}`L?LkmR78g z=tFu$H}<}^0CF|*%fMTncKaSAB6UWTfQ|Vg$9oa_PI~$$b?XOS3}=CRKD4a+fg`!j zsp%$F3I$-5yXP;}7$woam|Fur;DA(x3m^WJP8VtuUYqH2CnA^Y+%pgw*6ChLJIyX# z!|r=LRdbITT!qaF+7%jiK)~(0)-MF@n+*B7&{3v6r_z<$DuMh&OkF(eh%k(KpO%HY9GJ^t~uF zQqzG7Pci!HCY$`j=KN~K1r--nQy*tUfqn=slMVD0_Ke=1vVo{BTRX&-Akm9KIAaIM zwkJrLr_&51(Ua@%dr*QFOU_hP8SvUue(ES}U54k&N|k%yy=-%=v!->TT_&<2x`*$0 z-Cei%Z1G;ySdqO(rU)o7=WgBmdpUwEXOrNcec3`A9jHQ57A9E2>5C()6gp)D{;vMX zs3Hpr<$BJE3Oi%f&p?_$A_VkL>+cPz$Nd0B1l}3z^S`p>)Hc&me9sARS&2ikX9k7M zOK~%o%nR}rw48*2$`Zvh=+mFsdJQ)18+UKV{G_W-ponT|=@UD53;5?QA6x~yT)uR7 z?D6iv<@_)u>@ZQhjTZ}+mO7+g;389GO|Nv9kdhbQCqO(Q;_-h$sK(+2bEly8I)!8A zEm;C9q3w1RFmKZ`pUxsVgg>#fVgAMWHsuMv4#_U;8YBf92sB4M2}`tCUc6LdJ*W3ReJ&elnsniVJUAYaT96kS-=)9o z9zVm=CY->3Kw_}+q-Ck2xgh8^pSedR-HFZjn1@y2HbFjf6f%8CqX#RFt{!DRt#K-x z$h4&-n8OKkC5gd(myEEA6QF%9Kaf&-bu#n5IczSf=L+$|Tk81b5?pzE$CrnP=B@mx zZx4?gYlk++oEt_^odX%79m>Z$#Lw`t$jP3P`18PUrLu(=TPhTro~M;%c%7`;pbAc* zK#iVKlrr(&ni=c0{pGxT#TFhTB&ANvPM1EDl9``P8Xr6@4K=x`J49LmkD+zNbqJp4 zP-^<`<7y*JDs!W#K5P+2(n`WO%%d@MXmx{f%R|xG9-P+pJk+1L$V5?m`G9xRMRyGm zf=8gy$*XV6jJB)ZY^~OvLsrb7Z{Y)+K!rbKBQFpvD2I{4Yc?Pp4(hD&H0XkZ&OEfD z`&z}H^_^zfo?pV>;QC@vsEVHcu>~;t7-~r;Z+F!ux#l*4in|#ZU)Ec~AMF&96yfgE zw5(kn&o97Nt;#leD;jU`R4MHPaS~VktXL4;aw;HISTCRvi|?WEWVE!{g}AAoe4o}v z0e?hN?S4!^M&DKflg?_5E!Em$+Vr*oU0<{qw2dnsHq8H~>unI&TG=N;f0xB2%Zu0| ztC6(?O6+7RfeAWP615Ji;8%t7of21Ogul%c$#r+Wb-CN^7zx$udIzx4Sovdn3fsk+VW8}bK;OE-t~zb-drQtNIS(WS;(jGTz*jOY8d>IO_{@2r)VcF&?b z+t4@OOlmE4j@VZ#mu9(_;W|^;le~?ZSJB2wiJB*Mx@!53Bg)ScEj^myULiodNy&l=?FI7t(_R=4QVxe2bJ@OeL{-$5RW~=V>SAs%l|`II@BP|NcF_ zf%>sc9-O>8n2hnO6rDSsyZ>&&)cflaFn6AavhMs2qryLAWpZQfs`76WUD+FU_l1zx zf)ivGcmQN!%{1=|vM_nSGd2DP6Bgkvz<^wVn>0|yP`%QF|CLv`Ikj0Nj)Mg{XP&xN zAq}?8IRfAjWd{OK@6Ahvq@Zg6qY%{<=UwMA^5)zXV&2L`s*}>PJ@)3L#fVPzr4rTd zwLf?I%CK{tP6uf6R9qZM2I>5o@4xBvFBfdW-@047 zyVPjOa%nntk`ElO_wtSRJbW7pvq;b2XZ4q6in*Tszd|a9 z7XV1b8f5LMaIovuB#HijtUbvJA1MhqEu`I>e!o$?VGWkrrEx+|<4laZ!G7#l=CZXl|0pzq>UAS9%@UpJG4V_p>}V;9x=z` z^Ou4kF`H+z0lgVBK2uRZUhxrNBf#_a`8mHaP-Y|Y1^RWv?wWKU8$&K}p^J{;*&vs+?LZ8xWCCdq1U^=Xa!##EYA_AWMhMosWVEra zX9!d&-m8_a2^*p4t?Z%~yF5}QuF z^6ZbEZ=!#j+n(NQrGu9qF&3CHXEwp@(lk|}YN}xDLr1B0rtKwLf`4&!@Q_YntZmwf zs;4#QbW-Zy5YJeZ61DQYSNg93X0mvN-yfsfK4_lnhz1XK#PjRqCpx5@n0`Q35U$2~ zKBvchcPxq5y|MlVxuT$ZL=a{O15)P6Wx_`jyFhosmxiyNi@`a|fN1&=wlRndYhs&3 z+kxDuZfs$@wxrhir8>nEUT!8)wRdA@f3kaZ2NGdU(E$#q0Q8gkcV7l;;y?244gYLt z*%<{CZg|f8V1}x@mtp_aNp~LSr4QDQmSyMl+8iT+bFA`Ye4?P4rs~{B1M7(t6KwjQ zWy@AN6Mm3d@m?%KI;Vv-9TAe}9|}RH)H@rel&cja6hzIFlWx|)9W7o*!(f}*=m(|#T0qO|=*Kc_d*dwqYlX1gjp-g^uTDsqR?ZO{tHzJAgH>=7>Boi_BON12V~cDF+a!Q}7Wtz=v$Tb}lf& zU%aTQLJk(ubW@@}KX>>}l`%mS6KKX;gB-~x;+b_8??PGbyDCTQDB^) z0U0&Gw48|owz)N5wP94y?9I=KdM&_a*-Z!-cvt_}FGr!LweetzVwmK?@jHom6>hv; zUgnf$96CL3eb7~nd`jQ9W~vC8iWk6U`~}k6-0U~+?j?fkcgr0v;8B<@(>E*d_PnA` z+}ZpT^luv+mC{(^`drj7|KTT#TFa{oA8AQgTVp^--YXt%2Kc5<(opzB7Iz54>_tJg zKi&7)jjxeb5D5zu+?s9r3~Jh&q_9$bc8~Q`jGimIKwwx=6roCwn$~JK$rSb;h5PV5 z!g_=+)_uA$Ya2ck-aWZzYqV7x$37WX|4#V2dXk<^Ow%GUaV9=DTR}WfQ!nXOH2JWV z&gsW*FH7m#S5AL7-yYv8yCrdEQ`oWw_I$8t-LcB3|LQplNt^V0!9xTvZAno#B8*ae z1_}4tIko_Af6N0iT;N$?L|(Gf-H^zdp_L@kvxdcO3UK$GO?EHS_5pJDb5`L8p$D9) zEd!crH$c%rS*lVuL)tZf(s28WyNaJs4}$FCTgQ#h!uwMT@T#m~tqe1)e$9=3+bwF* zayH4}sbgbx`m}J!kgw^RR(xKMLu(=;>Dj|_F`J<`60nGZ?bV8ODz3Y7Ho-Y#W>xR* zP08A2cV}a%pnCi{g~N~ZuB!WV0Bq(IjN+%y4#&~tMR6+&-kqE_O{)zHceWt z2s2)gw)h5eC@IK5ljbYRdeNrE>BU2KZpVd8mt_<@U1Ey+cn%mrYi@i#(8<&T6{((> zy%{K9xSgZ9R9iSYo#086#qCxk$cG*6$iWJyoVZGmcc}viH;}WAWFYUh z+>Uy4=ydi(tcKyjb1-bAS=nV{hx-|-xz>jsg;LlrMK|*z!)F^sL;9YJ2KMpOgC-g= zbGfr!vvRjmPfTFD{UJ;5IV)3$aT<$vx z!-~IzcIDJUB~CbNog?212w3~Ge|kySDU>cR)it1tr|HNno1;-Q4A_e@9Oj=29T;)$ zoMtfk;`(vNwZYnMw`g$TIc8k7@)vannfoH|wskH6s+4FC>U|7A`0{{FyzvwXG+3+s zY1`qi^wa3L{&zXFK7hCMfizui1Zd+5BeVfi^q5YQP9M{03mrF<)_FKklXH+ zcdl5J>#vzL?+dpIJDaH?J2+bx{R6}}gQ`H0&=DAi(WbfQ16ezZSW9qe*jen` zdBo0SF+#J}^e~*WS)2!Kk(Z+P+0&D^LFNa#fSL4-HIKfGyu&rj)VS1TvYkqeDr`H+ zrXqt4yjmK6v7?1`GIyzcp%e-Wf1I$9UqRU!IE~pXgRHI9=RG?i8N0aj~gJ3j^`Y|KJZ`3`_sI>s+ z%LIk4H4>GPr#7rSY1Pq1ws1qe`hz}Y@vTg-UC5Rz5E&2So(l*a8}+ySY|l&ZG8HOh z^F2NIorLz>@YTwgVXQM4q}tZyls3@G1M2kcCmZzR#MLb%9l5tQlE6rB!>1Hbjdn%M zO|bvPW!LLwup0IOk5*u=)(+NX-M&75wM(2aUoO*Fw+K3VO8v4u+d(sdaw}xZOuC7g z?-PMF2Q7UVxz?4wWn+rzE!AG3iE?~6cr^|MvRx|5+U^Vc;4-Ii{Q{QmyLA%$admg2 zwLi^U?2=0%#p%T|`(7AgT40n}jrWl1RZ)I_a_DjESSRCpL8SsBRxy7VmY@Xez+UG5 zJWIpkNN_U&Y?-}z(){oSC5`Qa*#f{BiL)bX%3}pp$~xF9&d?zeW*a)mRO2qWgpVE8 zo1-A{OJV&%Y0XF&#!t<3*S9 zgbqhdjmit_r>cD-;hg3|$a|MNmG^*lVkMy< zTQ%4yM0{LtT9O*MBkwO$otYDsG9aW>t|1TLHly9D?6GzysBc9Vj5a?(A1gpoznE7`u%%~v$Acwb( z%`H6~;9Gu5*}Hf&#L?vQtI-m?NUXQ|q55nu)GeMY5Bk{&mnFhTJFGqh+ z0qz=6Ob|D`X}5#9*I7vi@5~kohY!FgoDNe~zG(v!fthZEY(6%{v^JWCG8`-47Fij# z4hzba%e`H~L30JM5rS_jMiZlUZYd6NBxV{4soy@*Bzu=7!w> zA@;Fn> z&fU_B+hH`J#~tgBh9=&Gk8gF%>dlys(cXHix^ZU)Q5tq0Z|h38RWkR2If*|D2BV6g z;M%jsys0Nle}v4Z^zD(LnzTa5g6VE0gaM@lENBGZcW$koifm6?v zRFMY6#Zc89L$NocfXcEW z-KaLfE(YpXuIMgD$s2xI0%Z^5;fhxo7oqyR*Neyjfd5PQ!5?tI-fnDE4LU8AAR}C4 z{MsB$*<+Z`1Bmc03U|b38_%7_i*83EIO$59Dk<$<8m`tay+B5B0cT8T3Vi=nGA#F! zYrG_d?Xh+TsgzWLrDTGx(Nkr1hWv}^;X__xi6kJ_EHy-5ZUqa@O8h-}`e0+hmF8Y0 zf5v*QYt2f%Olj0hX)!!FdiqdE4z4T39p(oY6YzV8HcSSXB+KR57v3(HyG*LE?Kug1 z6%pa!Epj!#fSdD3iEjY%7e!k2D+!NNfFAudoVfABF@fGG!Ir}a{L}-#%k|C?)dsAW zp7p?1rRG*-o-nM6z=lSz-d+^Up`;P?XRsUguM@4wsKi6gsx4z`d+m0XtF*X1r-P0| zyqG;7f_&!B*lb&*bBSA%{BrsRX<5AY_m7v{Y+Jo_3D`uXlg3#WphYwm?jRa^8g5n@ z(s@FrWltCT4+cJI41tHqY>T#oGtjXrMXhE0YGe;u&sPEn!O z@><_EE{?lhgCVtXmkPCK;1KF!)6NRJg3PVz)n>_5puz?k>Dw)#l(o~DVcVx^d(jXK zy-_rnBAoFdJ~>LOD{lDPL`{PA+$D78e`r?cKVJ8$I|eIseqtj^3bXFAn;5_2$yP$_ zOmkT&S;3)AQ!lK%iPzjEXh(xe{WQ;^yynZfkoDW42quNI7$4YhEwlr}Z9X2l&Hp^4 zx{mJ_x%>w7&X7YZ(Y*$XFICNRf$)$!Za*|Rt!(omB5SXXo8`kw@?j18u(3XS!#?3X z9{8lDml5I1O3PrSH^^hluqFfX{k$T=jopRENB4X|@-o>)}#=)+XguQ?SUEaTeQ! z;NRpXx)#nIoWblkd#ohI4amK=YcCyN^P{S+c&K25;KR8Jq(FB+B}M$Q>NNUKHt2;0 zKl#g%jxZ+2bZ4TEz=SpJ#K&>>&#mE%!mSw$!xTf55ao`UvNoDNcVMn`&RHG$1stJT z*m{*1hPVQ~=g>xu7(@Mc(6wb5clD%oAa2tkyjR&ly zId(liTn%))FMRSat#(Nnk(_Vb?UMW3{0|}-UV)o`Cd$}UzW!?i$ zzsmGh--C{kH8POmKAJ2@h>Q8-4osl)lYzjIm;LXYt$Ck!e35s8zL5L!`*gSB+27LL z)y0C&G0+lZBkM6~N`janSyJm?vNrl8azz(Dr&T1JpZ~Dl<2tdv)F791vqp_Y%Cj}K zY;mY|F22_g9R_Ig7uFpvaxu>nvP4B`D&&x8hVw1B?|kUx-_v+^`T%UW`EE$Cnx!7f zSxll{?rR-_+VX+^gV4_EuFeEa}w^D6c;rmorM=DMe zszSdfUBNFK?oG9e`z*rQ0O1n$iT{i)Q?BUm_?5?mt+7abbH9Y zIptQXzk}J`Z~Xa>4KnR3?A2>@Vf08;jbPLLQJ?}T$!uoz!~ZNn`lo6xh67^G0?4$d zm^|knuLP;wb+g1C)+iG~N@~j%RkyZ`{=A+sQ!62m8a^}eE9qjKg{cZ=IS9&HMR{X` z0u*UKwJ7*?0QPu{J05nL_xwmoK>Z@Zh?hw*TJH$hww0dRs8?WEib#;hvUlbCS&i3uXvv#^Mj+?=*^R&m&%SMO|V%84)S=e*6PZcFU@eQl>meo(b?Iz!g4tIy(L-!!l zlk*cBQ{3?^PObzoD00gIv(v;`7#9hJF?W4xB0s8z{h2SozU&$CLvOgNuet*~IeV9O z^>S&cMB(%9`tDajw%hDi^Ls}dTQxsFD@U`(DV+2^R$9~kPpi^Sw8sc1ZUnL^nrQZk~t%tz4bAA4BWtVYUK<~CYS z0_+pb>w4lbnczI-t~i;cB(&rc@d}@viutDXG6a{FwU>%uy=>ZBr*KBlJ64!QXw!;~ z61Q7Qd-@VkMxLJ&Aw<^=4COBKBs#VMTny2Ra5|f~Gd6Gc{9@U#dv4axNx8#;9xsy~ z8M?Nmh}qk&T9x9y;ZmrR$NwB^fSuDg;UMWi4lnA+q^&HtEwY8H(7d-@D>KLoZ4-M#YGKn-Lg6G8 zuCdGBOrO|~z@-$rIre?PaCX)P)--5Z39@`0Lw{_#_ZnXxJ9bA85YVd~rb_pl6<(KH z<131nV~(zG0!95N*X-HO9?)yIrVF5&touIPqF$ic4rHZIlXD!QY@Ow`<{*?wweUV= zzFaMShXRhPb_(1XX*xgBqfOPdOXU~G*`QyLbXJ$>yAV!WyiyfN)wq3 zH@`vR&iznz7QEF+{F>=(%fgFgBr4G&;fICor>GbKu(DsX2}7$$Ra6NlO(l{c=3(?co1|AKHh%qGe;Ncvh<6QOOnnY-7swjY-Rf-!Tg+l4Zqb#g2}`0}&F3;qDz`Z#-_ z6L*7mGBDt4GScq*z>6p9rLs{9KT;U+!Ga{Ox^#)R$~3#5+T!C&JkG{UMQmuJ`Q|27EOY17vkgWxxym#LwU*{wb_$whM= zHdtShbi-(zVe9tN+-Vll_(R1^39&QaB*P1<8`0O|K*k$9Ew?e{=Jl~20UgMW@BTG; zuaG-4gLNwpC6Azqlu#;^rZwKxnnU`T`6)T&zAgFM(ucoiS_iGK6*ZP&UIAvI-m5KH zZ?Vz+-1c%S(0yZSYeVbIM#M{8jmWuOH#=by3?sp_Nzx3cXvMKxF`H*u5Qoc9kpVpf`ccJM_ zG=eC?p3f|ciqvcsM=~XmsmtOYlYk>@`O2`?5XXT5}RuJ(YprGI2uPh`2A!u<+wYp(la^Xd?-yz)=m=a5?NgJwWI z_nJzYcKFU8i^BGf6c0nlpc4>A9nr-*?t|&iB7QAozk0hqeX4mSL5;8$o3-VZwbc&QW|(q1Ai;yi zYT?~&VckZEodFEnhwCM>-{ARY3Xn5A0Cx96m-=1J)0?;k;LH5!68^KjZI}TmEx^-d zLYj8<5L=r{>`tF&joVbpYi@)RyM@asU zo&w#%aM_eVttA;%WO(c)Sy%;p&A#oFke;UAKiXX>QU)_Vz2wF;uK%I3#PBUd<2v-< z)1jjQ&;6gDFZ9lK^V9eHlg>qP*}D;Zr@EtT%r1#V{~W=aa3ta{QIZEbK)GlB$|cRC zyf{gg+R zHkbCx0XcZ7hw=BDhWH1a=Li*kubY`!W{o*NpFHxiNvMk?JxL;6wOACk`O|Y)MZnmP zmlRr4#7gO zBE?;b1a}DT@_72ae{jy8nf1+DYxZoXO+|S}yCWoW{r83Dm{!rV?HgaSG{2ti@iN}S zw{^JM@;_64EJ~731;l4Sm3({ok{2?~vZRwE*{1MZu-~ztV z<$Eu2Z|ZwEUz=R4wuk6+7r#gduZG<@&Q+NtNM6Z@+M3{`&cMyPOkWr2tIe>_n8D5` zlS21rDz@J8TB0$}V38#EP6k(Cjhv}2GZy_-;lub@ADN`p9XA>atuc-(=Z2Oj?>p^Q z%EEklid5y^Xoe!_Q!Nvd$+XdGd8=D9%b)H(2SkL+>{GPbh`)(;+iiI*+L6qdBv~%_ z>HfLZ`r~h9_Ji5NgPR{%d_1Gvf0cdI_j$Ul-sJL8%_eisymX`#_(12b=#0m9z<)5{ z1M4B}%&6czP+MvP7)#)6X*htC4I*b^*w8tOPT`lP&Am!1AhNuDnw>Z@k3eQ@Qb;CHa3PAPKwou zYU4D9@zw!_KM?N!GAKDfObc<~C^dlEgb+2{Td%C-VoF^}nlaEXc^9@u9wQY{c)T7p zQP(={!hDs`Y^5 zs%jk^kqN$_bt-M!5i{ueiAAx1oli}89$;3!P>O1n`U%UCPTmjG^9y+DbVLZQQ*A1t zlEz7H2Kt;W>WPj=Ih`*T$)FIO<-OudZtU9i?Y&iZ>oDW_fcRet!yDlHRqY^kY?)k~ znK1U^IjiTdW z_#Wr}gRiF-WNpwW>N>H9YwLq96NB0 zG%Gm3l~ao597%0dzbc6c=@`dw!W*K!zyG;YpGC~Pb#J*Jbj@rk;JiLlm(RDxPDlIJ z?awbKxX;>l+2tSMe0HevlKSB0sNE~>B=gXPld`0D4Surp!UsBEO)8`z)}>lSD(Tz? zTF-E?!4#fM{s!6WR8ow$04qS$zt#M^Iz?R_x~=QQ(E;8mK%vHuGhRi?>1?`!`PS7} z?{Zr!H~k4xoxH31k<4X{nhIH)z9$!NprL? zH_Xbf$j^?f2SOz5>CVEXpU+yo*x(UOQn>~}YUjB2k=vKDNUaVgYo&fsy~>JX%!+Bm zDWt2P2av4}AJy#xbj*80WR*IYnV~FmT~QFpSujyHirYt?`Uzl(wVEi;f|zK_lou6^1Z)_B(gzPLqJl1I|1K&&}T zl~o_`1?Si|K@TJRIKw_F`P^F0VK}?sTy;Y(XvJ%FTx9*e9Rm>XIO0AgaotA+6o0&! z@?H^vK9kOomCsL43wc4SR7#zJTWv*7AY=I)D>Llj33jQ2NZxG@w3EtE^Bqf?lCXYy z99bm4^&tC)H%P5tsX}QM)b1I$an78*JH_kJNftGR1>~3QW0kT2`<@@$IF8HociInI z$ZeQdaS+=Bd=-Xn>3t?WMwyL}qo7eX6PIfJ>nX4)wJt8%(^fTbXVBk2_0F(+7Q#52 zorW*4NWyNY$U#y>Y;FIKYHUn~mh=gy=mhY|K#$g27bD)yIQA$VB7xdC)e@sRP3 z4xLvdS`}M&jOI9K=c&pajH(x{yzUvghD63-|KC1EhwF<@)~V>&5pg~gNEzhh<-8zN z46_g$v?l|5SFn^!~H5U~5zu26a^>Y+5Qa>GW)w3mGV zS4UJ@-xar$e68Ppf3ZZmii0FcZj5UP@D1+y*OGhd0K<{^OlZ^6%mN4@$BU@~T3?IN zr6Q>(ABKmEGyEj??STA{r0axgI8;h?7kASg&Ru9mH*_4*-TZul!p-kY0?enTkd^7J zW9S_ydqosMnbb)^oraku?BrlMi-FeXl)Bf#FoUEo!PYgPVD$t$F6FfA^(H>g()WA> z9z;Gsp8mN1Ds7xo&Guo;9Q>=yoUiA8Tt^gbkR)TvxFQ1CM@eLMoINSW=7?3d)wpGQ z3_$7HFqx-KivDCA*cpY50>-x4m0{tySkStgBi|}tXC5(^0P{QA9?&5DC_ho z&(9Zl?W)g^b^3_-6sdA>yY80Mow{81BdTafh)Y*+Ycy?H9rdh1#$qeXkGb$i!`-A~ z%GmNaJ258*2kKx&rbrNDsHVbt+bDJcSw>DwDBf|<=<6c#Tzn~7@fwTa$MPyFkNut8 zbdOJ@sS+p|n`~LdO3vF|$hM&k4sT}q$biYoGi@Qc3?4SzMarqAQK2BliD|!!&&U_m zEb2Lofwz~NJRJ`|-aSq1oRu%2SyXArhQ49sHawf}-Qt+hp+HFR%YDInYv0LRC;6*H z&J>YjQ!lLi{fY$#1+*e7!W%}?tmrDfQa^qkz}JcMh^^kd^lKOHiNWuGOK8Q1Df-z2 zyKlTaFX`2S&YqwKP<0VaGq6Cgl%P3iZ?;P&vEbd8i* zru5GK)}a(3B!d(4d^T5%le#}$5xF0ncEa!I#jhe%p8x8tmR^ub{#3&`Y3SI!3=F$Q znkioC=I=^B8&+w%-)D;kuN#?2@|+qQ^&*d6Ldo~7hpA3l@=n-V|D>4Kwaf6KJJm?A z{b|krXXT4k4m(m*I~4Y_>`x+IB%l$$JHnBwrfx+H`CnD|S)O~J&mKu!jpP(KT~V7f z9t(bxf2!cRiT`~b=9@uBP zL9b|*ZVsmz!tyb7_DJ-Taa5_o<$uacpcaM&d8n=<=PQ4?;ihU3EyggGE<-2E%_s?H zCR4Qa0ze74*7_W^Y;`{xIkE;tPJ3yhNUvk)@fh#&5U4GPFsvPw4Wj28DcH$UL@$th zMRttU`A&2-Y{S8R%t799QUQIj;DP}^r<^r~BK^b~+~%N( z_{mOWh@||3GrI8o4MXsIVb0fQ`=kj=QYystlB~R@mqsHa``^}%fpck(_{4L7Ofb7$qDfDg5c42e#sHl%~WU0QUj`t1Z< zSS$M$M)e-`l-R5ETl#Y44Z8cKU~uiYSrtjVl8=#+GC({VO&~a5UvIt&%7ITOl^P30 z!bBr&rs`=Q&su#=y~dXp3~J9aV1WBwBIObAT{{a8-a(g7=_7$-5YP}LTQqozh8?rL zo~G=h6w!E-*ST(wl;<}j{dUetxe~dDJ*!2CvqCgUR9xIYpKetulE8l}?sGY#XZQQ- zyK~9i|MZ*BI2gIeclOeEYgWkb2c8Fb4U$tjBQaI1u_|Fs9hr(NQcrPg^`O1mleK~u zK>l(Ezb=usVV@4KIcFi3qr7v!bK!b(;J(f zAx|0bS(D4Qn%!lNb%vep_>ZFvg1E{0NMsT9K`CQ<`hdb99{GT0Hq9UMr|Z2oDk+=> zP{&J4&#%hNCYn_U*cpmi$^p3IBjT~h|44P$UD~3kD;QnkrYSld!SQer6K)D_7$}_R zHKqN2vT`y=3kSGAsp0`}ogr5lf^a;Sd(Y>x^f`_kjW(as=qh(td-5ZD_rHkLrbYhh zARYMWtWCqn7YV#NRJ_lVH1YFKRRG%OL8`F!qQ<5ltq2sM<5wm!+ zO=TT0n;^0%{E-6@{_-Z6gNcPn@*i3j7Qkf3uaIl0HhZT`c{*!xpN>viqOZtG?wkjF zHz64Vb~uz|obVqTl~Wu-Fj4RPjB6o8r|Nij>1#&zv?{8G^#s?@)AURJOJ78dQHGwA zaUI~S(@vDxY-Nd!E+>zga{`vpWf0C<6Cw*|8RE7@LhIUc6A%aYn5hNJ${2+I;Z{!) z-Fd={&%HWYKIxRG$KIYbV>a{X;AHnl=Z|8`YIEhrxz3lSy4Q}kTM#a3_f@tn ze+!HVlzphujB}6wM9tUgnZI*Smg94aAj&%j;Mx)LC&Yy*%vy^xz9BN@!Q1EZ#uJmO zq0{kXG_1#J`vR3n7V`p5x3n1fC_LXC<#1>`OyTg1p6rdC{}Y>|nJ&~F{cS8W$usg9V0!^2Gx;ZUsiAmmG*F+F;7jH>VWWz$6Uz}(bYS7K zC0+c|3KITe{6&&AlP57~?Gf2pQ7e%|I>X8!w~KsQUeaj%UwCA#nz}$U&Oj>qsDp-u zcOZc9yx9HxTsop3^uw^jCU?e3Fr|Ek*(Z`;$?@0)47txfa$K2#lB(yZiEO0lE~nWG#IeIB^)@3?--Iw3x2g0Fo0t6VcPcvfD?MPl`` z$u43K9+-Lel=b>rLbpQ!41oY3degZ2tB6sZU2o1`>#uGhF|xB?ElFo7%mqR`3$!dg zZsre5vN@G|#0x{%X3g19ph`yTJugJ)L>(id!bb)lj>_rOd!J@}xp;Rl8s8ZDBATlo zJBtneg;n6z%ZbASSEAV1qdRE&io!bGZ`dv6LAI77TBWG`J?$A}L9Zp9& z@!{78&6Vo+0`0_iQfAQG6r#o|Zd0hRk-c`Gxs%8fn$YBRY135FhEa5_q*WoOM%lp0 z+o*&qpGMvGcOwUtj=ErzJem9bbH4?nh)>xkhqKo!3xWY>*VPh`wFxBnlBUygwtygR zb?s;QIKkAT@oH3+H*`$h)Crw$Sn5 zrx0|}bGXd(nsa~R7&03SD0*rwb3CTj&JA{`)&wzaLB>tHRES~8aT7%Jm?rIM7y?zP zvRdM@cis{xeq)M!-Xq^yEnUHnHfL?9yFY6c&PYl}m=3vFBvQU^p>FjT&y1HQZK%;} z{74c;~b6KK*I68kV!ldHZ}3hQ&jB zcUrux2-dInJ9@HW5k!ccEw9Ke;=jGW+$=5blQPN&IA!RyHuM!2oL7ARCRFNW(*&gJ zwG{Ze=Urwkt29egMp2&FSg0Q^fUX~BzWl5I??Ss`G5FkH+bh!Euwt}UcRC57&lC&7 zI|C_Mj9PBEz!WPVw<;s5Em*Ze&IH%F#BA+miqjaHFGpcnIda>Ee0IE5$eb)8&%lI$ zOu53C!lb~PxrG;1R(3=vF`%EETjGF$<;`_Dyvm?0c*M|brFhMTacC|hjms|LuM230 z87~3|PGCSIb^859*|V+C!(qu*`W%8%Rki#OezVTUGw5Y9!i-CZPy7a}Jkj^l887K{ z%$hY?8*-2kJrmTV35X{o%u;kn)SJ{3vU9-_sS}jVP9ojF7MklwhUT0uJve_*v4wj#Rjm5L#kpJ}`J*z61Bi>TnZ3{Q76$qtVK}6kkvCY~4U3$xODEtH zuYBIzJuM__zpabqeA)Bp75!^UBD`}O41QO*Q{PN4}E%`cfECL zL4v!qq;*~1BPZw_Fa-AYqL3{tbse)S#`BL{>I=NfrJ{@0H_}CF%wqH7veiG_Q}5AF z(?2cM`d=R(F4TMPj?>4ggE@^LhtTuU7dcX%;u-8)@pg`zo_?+Gjm0i|D~7kCjs-my0|)RpK8+ghL+eg~$yoqRsQ`iu+MjS8rd zjS~f*VvAUleicw;!ovy%Rk5Q5&dPQKX{Yfh(ic{c4xDy0)L6rR41tZrPNc$ale3vI z8`8aY+}^)p$~T|-69(ux0XWnk%eESf{piwU5_vav-ETRY6KnAKFR#6^T3TwhNgLfR zvh$71K*~7}uY5p^iq~xw=(&K@m#}{o&TjfBm!G7*)pp<7+*ZXYxIO4LW@2)*>_jW4^h3;~sU$?Y84)=M&J|#8()D6XRrd)^{qpI5LaC+Lo@J5JwtaiSL`1l9U z_{U<+z?~{xgmYl~UYefMr%WBI{sRGT)vA`~Y(qu6>ATOiN5r(Vw|fPD`t4?1vWQIW zvgvlZ=R2++)s<#t-Q{yGA8C!CflZpUaFNTo*HeMS$3FM{Dw(F4)z+b-y2P(D%y!A1 zSh$_b*0WAi)zS9d z0AK%8S?MELQ^XVq<-9iIE2O6V+l?#)R9W}E*A=5-Do=%F$Gs3GquPq0+hAq&HDMj* z_;DBI-pRplZK-EBx4k-^ms`asGoZV@!$1^t&;6y_(|%h2wXF~Rfj620QU}j!Iay+0 zi^>R^8I2JP2)mnW-#c}afDcKi*Y|F|?U_cZ#a2XAeIQxt(9~OtlPe`W&k%k)9v8?A zcj>-+Yg>*xJk@W`UEa^d<99Y*c!i$MSfIP*)#AZUYtx&tbzzRPG;guLh>|gx8)Ir? z#%#Q;&3i&t@$IjJV!n7Bq%5uGSb~z6_ttSnxTz{a?6A{KzivT$4My)DfX_Z`Rrc3? zCRv0_W#CA%b_AEv<9Teu_Qkh=E-7GD)^xru-1cb6bXi-peCDC!G2nx%`b8pToMzfG zZcg(d;Zh?W<3SI0GbL1_hWGeas8ermm)nF7&DM>pw=@Rw#c8{4AmNoTH9>{NZ@cVz z8wo>hi^rb=Y}}-5?wxQWg`wAZ9Mg^kkl0_JJ{2xIzlzX_u1Hm=?EXAEGC^g;m+!U$t9Ks+@{?gYUUc(y{v?)%vd=kXHRL2t@B4of# zs3jfycwy@^T$6({INKb(u#2wOI(hH*SI-%+&_;p~O+^uFmH#wq{%KNKa0$$>{s_kw zvvaO_BaCB&^Fhc!TBs8TNv@Wi^p57?9e=S_nx#=ZaU*s=XRLYU$s_)a@J*O7I>))( zaa+^)V?$nsB1sR_uP5cRQ2AMk-D=Dz<`>>Gtlx(A@k*3L$hVFz|AZr#)bP)fj;lkO zn59ikO7dFmO^q>iZq&4#G771*&~qA|Rh)fwJUWswBedLi+vk7RNeYKxH^|d~OqudK z*+l}494W@w@c`0FLLJ4_v-`B)NCre5<`+jJliY$pP9@AFuNL)I!wGv-=!Q5LaCp9^ z|4naj9gUg_)e=hZ(Wfhn)m=*<{5xPMWy{~|WJEs~FaE`DiJcIdTQyrKme8U0vlF8T zrE#b-xv}LOXj;ZAo4EEj2-dh%BFM)--HE?m@#lFl4`1vZV~X5UR;@y%kqm*JRqwZ~ z(RRXr;*4n0o_OAVZ{2xLVmuH3XTQ()7KHskwN)5Ax9s`c!*jA3_rhM%%F4h&;kjat zYDFE&XytRCG-}htPj*#Ms%aF0uYLp(2q+nJg!V!HO5>$B@JV}hpMn~;u8U|Q8rDM)`8jM7=A|V_N{sxo z+c3_Ql0sI?dhcgNdtG3U24&8L+VD>^E4{4P$Mv}-9PpsXy*8rM4U4AL1xe}n0lolJkpcvY=0}(&0apnGRhr3wYbj^SI?}=a!cTKKJc1)-g|TR z?vg5_@rcyyr{><7=Sq89=T*~Lg9Fv`JN*F%mb#; zD;(a6a{dE3EC`w9x?9q&>bp2>A$#1a23UQ2p6gKk{n}mq*3jATQn%cz@(#ajZojwL z@@YzhFwdF2;`cb4Ge&12{+r!x?%0x@tHD3Lr}D*M%ah9sbbeHutBqM58ex`OeCg1901kPbIUV#YY8EAe5tfOGW5hA3q#wQbS;OA< z^A84joV{5N5+F~(UftjOh=F9lx0_d2BOUZlkbA%Uef$n}hlmWPOJ}VFklbV~{BIAE z%*HrTor9L&f-8SNw6X<%FoFPTt7bl8V}NEQ@h|*#wxdr>P*M%HiCntt^lXY{zQAc9 zmt;X>b3$`#h)Jyt!}=ZXYl#f+I}+YMo;fPWs8v_fXU=quOz{&N+KWlPbyJTPlT<5-~SXNHl!uhugxQztX_*_k4z*nXl0A}i(6g*wQNGA z&rr6Q93#~O|B0m8Wf-fXr2;N5NpFB-)3WU+^4G%{)|ctCN4@dx%!q_`8*5hSn9n;z zH>Jq@@XXU&+fVQgJcdf#8V%41OyVfNZd`29q7B2$E1RcA?+$$R>SwneAfIy*<*#44 z;%@^kCO8f1UWfo^?3j0Q%TUn9Sj#)zPmvRfes=`2_YSyx67Fb3n_;i|ew1l@_a zr#t$VvRB@Q)xEp~b$RA&cJT3wLT>@C86clfpk8(nGeQ^LrV#+Bp9rQb?>EH$yEhTg z!&hyyg>sd;!Sm~N=q6<^%4ypAVG!lluRU|GK;RaN@V><5ro1tr)7^6<@AJsBb(Fyp!+H;rR8?O~Nf`V^Os#jdWuB+mT~DT^g{3@+S9$JDK#Z<0Dbq2$UQPu%&4{OHg?g&?(NTe&KW^c{*>t}4|>1{>wH9_lN#H~Z5z>V^_rN`q)IeA=5oEru215QDXBdIn$hH%@pxmUYxTb} z%0I#yJxeB=$8RLVP4{?60=LeX3)-L)KSrU@KQj#dO1eB_YfIH< z8x$O7;qxAV5@kit2BwdvFu~4E;4D8(kEa$#aSFH& z>?P7VBdN@+mrm99j&yVTI3X&xvP)eg8R}1V`3dZw2~`74r_MF}8Is8-qhyOgu}Uq& zGF`8Eg-XuOiNdM#-j6%>w&Oq%)2`2?4!B}>4E(CgA;n2e{7(+hOEzNCoaSY%eKbnZ z_l?+d7W$=bd``v;2VaEd+B5vSzcYibOkW686lssf|y#~Q1H*&$KyeenYI^6Inc?Fkd(U{P=dQKNq~v>S^>WBZtGx z@3>sjeGS|Uv`~U{cO8vE97;ye{`{bx76loEhoIO0We^_gh+B?3=*VT`k=M6x(_`n- z+?JE6=Tot>lL@F;K7Tx-m89|aK7YAm>XIuEcv%Ist1{8Q>xx(NgPD}%K0*qmn5FB* zP%yJ-YOuC;vw8lm{sP)Y&99+qNuam{#NX&RlRpX_srG9k^MAW;>gY&fIfket8#W%p z8m0{qII1^cB|{F9OdKH@6FVFFfNQ31Lw82d{A#}(?Jxk z^U{k8d3f!*V@eZNHSB`PN5MrY>k27WJu!B&!7qhqbC%?i!IrkEQ;r?U5=5X4tkfKlfsfww(1`(i+2dM$XLC zVTa2E#eof8bI_6doq#s?z1aR0pSzqkMEi5?i#l=H`}6yO7eT;!Hu9F%c*>hsz2A|{ z={^TZoGzGsVPuBL6NxuT?If^T%EF{+`UozRMGVW`J^m`9!?+}t(m%#FCo$~N;KTMC zWMD$eD41ftgMVPn|5?Szof{7nQ8TRe~q(-@9renr#8t4P5T^wYhdSV zcnv2L1FB3TB{Ai&(a{WW4Gfg1aX#GQeEzjLlPOL^@XH8WhL{A?+Fk~KpG6Yr*6F`O zF?6=g@{ZMG-!80>Vg)24FwmITNk*y9x&pDP>_{A^04Wt(ScOPs<^#)7$+SLQqU-KA z_Ps#3nH4Onq#m$4R}w{i)oWOrEl?fKNv?>WrWaPxuBCj+FxYZB8tFoLoP)%bgU^YT zi!>r+d#^?fnwVA$kyKd{vaL&el42S-vk~>_$-NSG3Z}WRMyGnE*jdX-pWNAl`5)Hc zk7yTqVGTx2E_fS!Z$r`XT2H!hdREnGp7kz!pL<$&!0AkxY|?fwGchk40nu*cc~9P~ zf%Q*bM?CC+GZI5I=gZC;8IS#=7jxlRf2lyz^wV^=ht^9X6us=%UIe73Lk~}#@1pv| zw&rgs(DObDj`{;$p}kBGKW^#I{(U+NsQ(>2Jf393E5Z&5$7PJ@iC*~PtHaF7zv4Ym zHcUsvF;3g*gj>~8`D4oLM4XM?MBz=oOFyHAswR`quxDl zetAFb)+U)OnF$8r46Yf;a-LyK@M9Ut`Dr(1lk%8Ay`Nt&99*RpviU+&8mnPW@6 zA3SF%XdgM_=1?8i@J49aQ+eD}5-*F&MlYN)E&sF*>?RVX)y6c9vYz7lY(U`h)5fGc z)@7k+g*ccPx=2pi{G0ez#m_~gTqm(tV=rW~dG!$QRKoSS?Dm!Z&fJuP;>b}$(&3yR zYJ0OmOVH(J;Y5XHERPX*uNa9Y?M60BXa%ZfbP|dSW?XVZbq#;tWI!r%GNrH7CH6hx z+DO=$NW3Z8Lp;k&~lD9@)lL zqdn_N{YaIHw)bNe8xM|C!YDi?bW5+65K1RaSyF`EfC#3bBRrFtJ0UD|zReYRrEyie z%7yS($@S0es`jH{@4zn)=*RZ?Uudl1JP8H|?W(cKwQzfE+3w07w$vp65QsxZqDhx7-V%yF3)_oTFluWBGu>uuQEe6mcMW6Tdzu7LVd`kA?3rZ zu2>kTl@<6W5B5xDm=?(pv;L*9PejiOxWVoBl` z@4s?}b@=SCF$Xi^*AP3Cv&{C9f$z3zl|>p0%`ri>u5-w;?;6GSqvx6|37b`Bd_s)4%Mp5H;HTra-Qq?da%Np^P>z0)T5w%eo z71AfL@>rz%M$#fyqI;HP@H9z;%g ziF-z*VpXad64t)-i~JRq@Kw_Powr^3g-_Q{-UQ>q+BiUG&DR|7mvTwYWBlR%Y6>OT z%{sgU6STU6L?1Z19KYIEA{lLy+}Y(Qx%wDD$?Ho}oJZe- zT2kxO)+%JmsrK)yw+Tx|%l?@ehc5v`S7aY(5%7P(?9MKde;^x!l>-hRRBKMW#Ql<1}|2M(<%5o~G!Bno=XxepV_;uFJZI zqGM45!;r&H=D;jG%(hIRapHw_U6Yxl)4#BZj!+C;iHmfIB>eQ12=8uc#VQ9%-+D!j z@8O^0S`xFy6OGfOjIBgH09KbyaaN-*pi@jz;d%@+Mf|gzm8Z`SJ?c`87U%>E`~bFf zu2@Hra36m=>viT(Sz;UH!&7c+qmZ#YZlw`vwcFGaj=8rIaeaZ}j4BllP8sf!e0NV= z3p9ap5Fk96IT27T#$@HfBKdC58SLk?(V-&`I~y!+HJFneepq!|(Z>e#u>B25f}Sr2 zY~^4i!y6Dl4kH<+s?1yTOLeV}ij&@8q5W9@r4H;^e2;iL90*uR@3`?=gMk!8Kzw>m zRdEgi3qLr9F<|5cs^bX0e8bLP+2P^9P<>rUpI8{s zj7t?%P$o&h)1zC|d1PO==&M6WWokx!Z6fVUQ0pK5^!ScOrA ztZwZC%=K$L6q6A%XGwiI3_Fj3?-sCi za$9WmzQ^Z~@p@zM>s9+^_Nm@Xawuvmre6pcduMsJcVs?V)zaKxCf@ibjJ{XM%(79JmT1-}(g}Yv zlX~R%7PJgDklJ*iCV`z^x|*#N0`M#k9n|QT0(5IkYxJBe>3xSgms%`9e$RH79Vqj% z& z3g5_z)1S276Q{Y1Z;X(S0}B4O_tz z+G@l6$r9g8`QW*w(-u{yF^o@?3Tz6ZAyD#iW#i9p_)f;}f?car{+NW$oFc~+rZi85KX;WuJ3Vx4qh=1_A^dV^5Sk;VG^{SyJQnIH@7D zb$y!E9qJPp)2WPZzqo)kv`+<(#HQwWI7``XiajS2y!O3Z^I6z(o2v4>@h?d$$SJ!j# zE*rNt78a3GauUd4MLm`K4<~S+pmt%Phl@LKB*aCx-t1Ad{0$*lma5pSTn#p_iI=OI zvMsXco%dEz_zX#GZhZZo(NHcXq!W-v-oQ_L%q`^#^(I+{r-v$=e`50BobSHvrKTsf z`%NRw*{bgwMX^O5Sc#aZJ#qD&vx3E8VqWPBhPjs=^FDbG`UL(y)H8C17+Y?joPOB_ zZn@sem{v`pHHh_+s)=7ss|tQQQsPlq5V{B)r2VS6Qc1lr%g1y&?tA)@#mzcS5MY-! zKx~PcFzn6^yo^2szWOCF!oVvrtD;`k&J&QP!dSA2V@` zv1c`BkdfIMh9to^+E&yB0y%gG?g=JL^?ASj+v!9iF@Y`4D@VNT-jtKdTOyPLXuJ!L{pr4h2h5yR>5xHdd_W>#!_)qbiHyz-cNT_$S0%mV{RlBioPF zTJp^jHgJH)7d(3nVZ(5xl|Nkr`66SKg7L;A4|yoHG(NV`|6A7kdJ5X03Z&`;{RXfcNh=;CbN6y?3cN@`V2*AcW@^ zkuFk5hS*RTAwXuP{jQa|{2_^$aX8bo!lT{70)^_-)QiB>pOq`ikL?*q7y%cUC^!LZ zaQGL~U4vZ*t;_oP`TSik&u8Rzr{wrAi`M@X@t4|WZk>-&kbSbq!Ux7Y@n;mf6rqR4 zExv9TnEkMMuSx`P>v^=&87~Y)y$z{4VoD-8>!p{B8&v!7MvqY+FFD>qZe1nlv#L@H zWB>5L_CuEP$SuPt)fQjLcgBC1OM|ZXwQ7!j58oQ5U1>GlnMZm$O|Uo#>5mP2WFAj{ zl9{NEGxeTfH!5~pwfI=ef5kou=N{vuD z?sCg#0i6$G2dlBy|CBinh^h-@GVIKo7`gF>e*ZNDXrk)U7Rc4XBPtQqwGZJb>3IBF z36WYTmQp?F_MF;L1Zd(*ONExh8!_sI)IR+;vI{w|vkn_I<01GsMr7CfU%LE4aQk8b zE*Gs=9+dlbY5h+bOMBJsG0aFV#A5EYm^#m_XOLpZSMONZ(g&`j80^UNJGADDuY*X3 zD}ZuiA?V}7!671Fm9VF3KxbELAP^Xijkm`4mf^H_aPc&x$!;VzG#Gf(Wzv5SI5p0F zvc5)~X@I5L8JL{D4QYDYp8rH46Y8ut@~$pTmw*{Bo|bpI(&YRVyg*<-Q}(p^DO}zt zZ#rTv2P$Y>`xC-f6Mmo-vyTkCCuYc{D&GeVnu7iLq8s^z`9;_hADG)IA^592r1_iB zA8A1VOrkt3%q)IRk2OE#@MFjEk}av5!1wO#{M^Ys)Z)-RlqPA|W2`iiF}Cs>5zp_V z+tCgTq&`c3B@U5N2jj87QL;gjfLc>o{4{UtM(jCpQqvMYH!n}RPHmYFNtR_v?pNqX z;s<9TTBJ-Pp$k;2e@!X~y|mjuswV5)H6Q`9FZl2nA{X(t1%>5` z+s#6j+mS1uUlPy=-~3W@)$iOHdseT8v76>KuhCy%5%0f#LT4{yQ}-NaZ?9Z9#C%eq zp-sJ6<4mSXnYK^eAlt6ImX{7$t6P_c)_dOaH?+;U^^yCvw+3$abE|0GdQPcwABOsj zR)Sbs{JP@y5b_@oFz&;{(+PXz$hPOofcOIW#awG~_eGnQ$6VcN?-uBr)H8TJCPDCc zD`YwN%#>x}TS!bT=G+r$vi%%FLjGs(*4E(b7e44NfJv)7q zz>+?e&eVw~{+l0*i158atniASYU6(koJrl|WQFnL3H;d|#D;w6dY)&=>Iu|HKSQzq zdc91FyZw1ja#Z8^ibo0yjde*#_U{>oZ!u{V{)`C~)M8>k1wT|;VOOPCWEm>%W%Umu zYD2fGf?Kvm=59A(X7ZrZgJn*{zO=}Bmh?KUCd=hj8l0x`Ym4XT$w5qp`*SMU zh|R>%Q8@zX!Wn) zzRphjCW&%VoSEpUASX(Ir{HmDY0;FDb?m-+sKP+Gk)_6GY-nhuhhv|DntCC4W`t*5 z)+JP4fjLJT=+KNY9W1CR{_wx3tEiAOHD#w^lO%6C$1*E~5K4d7ZY3?E_-OO)V?h`L zr@<4(Wvt*^o}o7oT8s^ZWgjsATY8a8!vS}Drv@-tZq*>4fAfLyDW913Kr$}Fo4`Ia zMYk#DU8IIZXCo-^QLSCr;kA4O;h$6Fsf^P!8brFxG>)G5iQva@xl{Y?tKe!&zYEs3 zYBi)zkd-qjkaK(;=$p`QZUl;Wz_ z61v(vxxs?`@oOZ>c=d~hv7%VtwPmaGDD%$io}NVOf(TaI^UiK(1@MkOpe}wtx=Min z6$z#YKj1>!yUgf$Bk2~XRNSlwhWPCCDwNtg*dF~85IWN-*31E3o#dSJGWj8b{VzT-Kj)+ZI{L;$VNkv6XGg%-52^Ap?t58KtOD_lk31eQHju)DEK;Qfh88k1ToZ zE%Z;^=*9>WInQq4fv9v?X@LHn>(?u%FSTdn9t0lh25XL5)?)Wn7gzd3K29_L$pLCW<0RB4OAMGsytpJ6M6+Jcr1!wkOT-d=Y?1Ow$Rwzh_=#L8LKfmH^ zh8zpE9k$?KxaYJ}i4VJV*rVrrh zOCe~;UNWqi>Hg>GcwtVmz>c@wv9#5z;{4Y#PJ_v?mYdd}d)1acdi>{9G_B*Q2eW&j zsB0}C5SX2WLVcyr@*268zTRgQLZeW4HA%NVo5xJStOgvRcQ=Xv0MzE*hFLQ0AZQkM zTRl>9v(hxW!sQVyZPpl8=vp{LBlRYpgLU?vJe(eDIDOp%yrl?Nzy_BZ{4L(BY z-9>M)38~4`pVSLE}J`;0(9RBXD;N zS+=p4SqVTj_wF~RREWuZo@K-P$Ip2;u}~y~`XS%^m7X*NLJAV7elFh|0qTU*9RWCK zK%*3ef%z!Y6@LP{b?>V|TNSX>_6JdGT@SGjf$Y+d5vX&Ta$$=+x8AypKS?yBmuR5w z$vi&yc74*@IP?c>gpaMkn?E~D5&qM-@=9OD)P+YVSbOgFGL;F={a|Q6AKE7pkdU*+Aj2Kp*|OO)q!R_$HhR)EH_5iA z%`9c#yPk#HUJ9B8ET9757j#QSh6tH%1S9HfHOSrE+pU37*WL2@W2YA%Ht_9-jD!Oh zn5Qq9oAx`%nJ-yA8V`&kNf)j|+U(D-g~<^TT=)I9arzZyUY_$z961L<#H?m-;U?Ab zr@SdRY~v@mW*lP#ET0AJG3yGP;-XJku$9f3jn2kEqjxQ4Z!E=-Q>A)=V3s>q-Q4F4 z_ATORxizHaS?5JECLR^14k1xvzHlo*WOqu(Ge;r{uT*y(4{L#hcN|@3CdjahW5e8= zO0ykgf+nkZnmC`2%-=fVN8NWwwE%;+R2YFM;aaJ>_n&%4&6LS4h!ypGd7n7ek&0)2zGvLu%V!dye$MCm}bl_Rn({8rN)IkO}opyk4#fo!{q1zqi%6^xwkh`YhzbCrR ztMd8%m`tGuW3*=Ef(yQmr7f5qa5LPQIEpy9wp(9Lme{}D&Jv8V@VM@t!ZJIoMg@T0 zj<(+PMR8?Wnn2wqGR?Syn-0E@d*DVCEx>%!IA^0A*N!qUn^K$YM`~eq!Jf=BlCu}Z zl)W#{Dn7ZUC7^iNo)Q%)5fxeKT8X0u(n9EZ2SocI#^H&-40#81cyhVCIpf)gBfb|X zxO;IneIezuAJ01u{sh*ro|?h$fC%#{wXfeyn zKJ3gKLr=6nQJ(kr2>)UL3dVp%;!x|@d76so|uJhWhi0#=oFn?6Z`1nUf5N`hw zxDST)<3XZ$402MW1L_OgwbcGl0uKD|0KiAr$1o^F1XXZ@^}vMbU-*B2YryG<{QZrP zd2^JfO8-RRYvIO~h~4S(m}8I}N0%Mlhiqae^>_1T)}`wC$-3W)63WDQYpg+0&-~`^ zz?;^KBe(CZzLVaMS*3n=JQvRv>=vA$4pPg-4`M5Gr+P6&PIy8g+yaI)8Wp!DG*O z$_F-eZ{fiudb##1-hP7)Bi=x(G)GTPW9KB>Pd&<8a&O9D!u-uQjjfZbh31kY?Y_sw zlENte+1BKb!`DYlN8=*Y07*c$zrx>wPmA!3Sk33JdQLRkEA~I^mRC7HzfUA{ExWR( zpM4?<<5e}l1m+Hc09mqhyN#7EN|qUkO~~`?)6fx#t(bU#3_AIn>K$eu#;ZV6#Z#&;+E`Q0N*^_o@|JHJt)|v1d+E_-eip5W_sUoV#N`Hs$qKv}>cQ|8;dS)CV>8BPsb~@{&TB z#5w&l=HQBMPQtN9f3GUN8U%mNObFSWvhi>#b$H5POV*Pjkh-u-r}4-7u#DmM)QH}5P~mxVSJ?@9)l3ZdW4><%6z{r)XitNa%F$&SfP z7RZMOWy*@8$35%k={H>c>S4nQb9)F4wJ5N|xJ8`0ACer?Z2j|JAHIS98Tr_I=+a^b zg9m~`5Pr=|KgoxE|r_3V53&t znJPcp2pSovj0;UHyi+EcwRjY&D?R|DyUC5CtzM>cdEjAt$DU^aG(;ylvpZD7s*GE5 zhOHv8{O>jJzK+pJmmT-}hU8831ty!-GlJSz5pcV{b2O6WbuC60Bcu51`4C`#E(XqXc^wK=4XVKBXR6 z`*QF`O5-40GSGVlP6?eo>6#G4{K$CjTpBH12D-)ulB~F_eOSX$oMXzPcuk*f9sDO? z?2dUXT>tTew5%_u5Jk-!rSoWWs#ki9Vt;gk@N}hUh~|aV1^T|{W7~$EXHNgdlt6S| z-*IPbRQhZJpI$K+e;*LzU=9v-a&I)?DQ3je%)lU=zqmFZO!kCVrk|@ms%;TXHSY>Y zg9L$amg`R9%)devlAQN(?T_)Q#0oUj)L-|>{&hEz$INe7X%L>_Mc}P_bhf1kPevd2 zQ`-FTf}dhi;x*V4a)w=$sFtR}&9G7P9fl(6R%ySj4}e`j>gGRDQG9B;ouhKdVB^Tb zp|au4e^kEVo&SKRwtiJeAX%;C!j&Lgp4l-IwG+@{_6_4VDPg&7o!4S}y?H5a9BNXT zuADfnM`;i{{OdD?3c%%f)wAR=KLIEWVJJ+GXXuo{94;tI@Lqf>YHVf*&G~TGBf;cv zBi8Kr*Q#b%#%Ppb3Yw5iz%unb*c5Dso4_R zd%oDUB&1T{_}7IACI7k@q1k)q^J?&zN87oftE+3(+a~DMW>yNiMpdTpsnk;|oFP4? zzf{Ch*i2kv6C|y!=yBg<6q?bd+IAmhe~+pB3A0QY*TgZqpbB)J#@rxcUVttKz+j!7;HQ|B-0^JTAP zz_h-~d={g`!jf7th~4nG190vsuMYj#H<~nz+MB!&7G07AoA!%0n6;|B-L|xxJ-*E9ze~h2xqz&rT+NX@x9liK2d$kjJeMz3>oyG_f(+6cG0DQNy zRLPKti__h5u}67(tl!M;A-<*8&IvWp`%5+84#FU619l%(cj{&w|RUbDn_*870XZ-5p1l&37-5`hum(l_QnTToPrd z6VwdOb9lv48=61adv6@NX|8Ox9OU-JGg&@lkMz=eU+>R4>2#*+>nq1)(&x+kPcJ)} zHu$EWijr{yQ0xGF5mgfb+gTC2;{zvlK=;z*NjQkQ8c-&xYn`MW=)V14HFCcJ-hL42 z$sKYPFurL}BN@WJ)yzw7-^QDg>+ycVYvxDYolo$vJexv)n&)Nkg4&0#kDb*Js$m%h zB|14DVPgCol4My4dtxd>5hbec-@r0zR43gtx$A-(?Fyyu8^`=br2U{0mDhe+hiMjJ zciTTJ$TOPHPS6KvNymFk196wdu4NRMT?!|N^j~jcWlz8?Nyw1A-!e`VM2h2Tlp5nt zFRPY4xV2B8wBA}QfcGySE$bPv7{BG`+u;2BT8L?(X4L+`Vi4B~64<;v}OQAQ{;x3mYjK40+MuG^;>&t!4N!@na8uo( zG>uUQIn~3AGIx>VNWts(x4BvphdE8|qX~5_#i4BnEv1qyp$+%-)aM++TY$`_Sc!|}l4R{@0uKwTr>5tfX059Y89G#L0 zQ>r)Nz?2s)Qdus%va2D`3%G3c7*DbAf+*`~acj?=zA{DN7uUR|bsD|~7qbej-9`&ucU8P?J9IpHk%X>9$AKigH1D30Qsm``D$?G@+W81K4!axl{#wc_?Rowqx=Mq_+7pXN= zHX9R&O=MMJq2c;tlrf&~8tLXfbAH3h1AJK+`6%%?}%seKj67nB`i(gt51H3WvO=iSC>(7SuFL+ zY>}ZBkINF2aexmQdb?^z|TgJ@97p82oN8w{hynxZ}3o!K59;tyS@Ys{H512&Q;@Ud2;o4 zlUQLDySP1QlMBtc2~J8&va^k+N@SLRD6~6qwIF#GkdD2I+)X&m`Yod;o5FvHY;3(U znbY!TTn;a`0+BsWLiJ0AhdyTpr&n9i%WPY@F!rgWi?fKx%0kJj!u}SI`Mce&$@N#3 z+tiZaWb$X*<=o5lL8DcEG%tzAWCQYFWA> zuu{Gg@!)ZaJeGZIGIV5rYolZ`J>c0}$k@<$Qdk4PM}N%p%Pd)Lvi?%UstIj=QJB`+ z`{hHQC4-qjY2fo>#pIg`v)g42+xVHL#~yR5pvHxt!HW%zK{-_#IG(Cs93K#z8L~@I zd?=&ig-Or=Y4SqpC|Fezu**jzumjuuM zzL`Ue29HOi1@=o+++VG93Q}644hL03ZjWOSnmOp7W-%pX!#43MauLc_{+s=)MDK@0 zo+u~}t>r1k5I)w_*Ss3AD|v?^9HY#Y`2iVBcj3-#yahjn)z5$$I6W__zJrkNA`U9U=6b|!{;C@F zc{LTnzfHE0WdHPGG};Y$`giSDQwxqUCKJ^r-Qi&%CP&BvWU?$-BaW5jZ-76K^^APK z`R|Q#ho)K{LSZSnH5Qh8mdeg|d(8}?FTylSTqvJ54bzjYFM~=8tW2A9PjVa?x9bOn ztm*#xu5lXOshFPBj1y>DpUwRJoC@*tAS^dgrY-e3s4!}<>9o#$y1`*xNC*3j*z;w} zv%PUy)N%K6q6}sQOfNBym2xzaI`P#o>473$)fc9MYL}!{EI2zeH|-BzUMd!*KjeGu zG<_Y5DXt12&V4e+dXb~~xug*Fm2+yIj_@~n$Q{_GnWKzw{fh(5fy_oS*@Ris`fpw01=@>EjpWUfJ2Xz66E*1nP;X$To5-%wW_ zCKmhPRmM}GN&8oA35#-U1DRi?KfQnv5Ft$XeDopBndc8Nu8k5?%cKeKY3fs6oG6{o zJW1zNZx#zMt1dV??cY9)(t8VcV*aqqe>pWXhgZ}k;D^#C{w8L0ijBk~h>NEmgQ=Au zcqS$|t*IY4o}Y9{FSArDDyOD_dlW(^^ES$VV=O19f0moxgn+JxV;3ZjR=g~oKhmlU z+TOMKpL}G(-ENHf7&{!az9pERCfrCl7iC46$F38H_sr(8?UkkgnZFt&Z54*@{ksr# z^R-tzsGKMR8Q;A?6ZlFqY>uG$nQe0qO7 zX10}g1KOP0wv_0J){5P8Uxxaz+Z+{tSf&@EALDkgDaw=!BAVH^CT6~ynmi6i z%laQ#U7cK}D}GgpmW}k@DOL(Tf7ZW)_j~ep zdIq3jlfD6+A8EgcBr#fl=I}XCdnL(tT;9|_Nm(VtXpC7iWb@T9k*?pce_YLo@BC*k z<8K)J=$@JYgpKi%Kmx#`6@?Ra>@#U4!z6#Uc7rV!)n$1L%j+}gbM%5(uQ96vzsy+F zN6f@>A(yF?^Vy`}bMtkN&PQf=oCvkoqLEhu&p;_QIUXfC_%cP}SSW}oc6YzfuwXfv zh=JT!pdxc^4+!gX%2OtwzqDzzGQm{=)f$dVw0KPY$>p$%pR;`oD6`>t zedEDhQ{~4tv~OC)O^e9Y(kj7bJpfv8AZ%H0v~X2jXRUYfsL?SBm5r@8XqsVwKf;{5 z>gg(2pj7qolvDLhY}D%~0wXd=)JxWb`~I_>&>+7(O9c7?B$*t~tKVb4Cy~%}dkBOB z%zo}|K5e^5XMG=$l}FhenrV4j!Ula?<(#}#acWrAtY^aj)XwW&`)uAWJb!dN3&e}K zI6UGOEpVXIEzre=lDBtQu6?oj6Jr-oa|JrsDIdM!KI`MX(FI**1h+c%ud-9-;3uM8 z8N9!YYkm$nYReD0WL*YtZs@`EIIz8UPbEXl3_~Z+&~=o0)q>YH0at$(en+JC8Mj$& zMF^J|zaBx|X}L>mUzsh-(s0QzR)snRMdKSimUL>q&su=q-F$qMJ|*aR^7^*L$B9O- zK(jncS0!{#Ox;`J@5T_nXSR{JT}D`~X_dGL7hqfuvC^h}TU^a9ZoQrNn}Gx9KeY2# zf%mw#uext9ru6?){dM~T|PpVMl2vHLkF9JJm3w#*gnys5e`MM zUH&QvHMgWZzp{iI-rM>qh>=G+`7!m_XQ{ITe$l?9shoko&zWM3;%N_=Da2kV84hzG z%GBgka2WP9IkoVnVBzyAEySE$SrUJ;c8Wrj+G_y3XIiuc^-gCTPN_*u0@!@$!9arMQS@7DRrw0^>^aC~AeDObS>c_#FU&3;; zQe(tN#8|EfAHSN+)BvZyT=)l9XBE&^w?yGm8lZS_=cl+saSQHH+$rwv?poZP;!be) z;_g!1o#L*!>GgYGc_AlfXJ+=yx7LUr_lqAV>5>$lYe{#lRi8h!b_}YX^0r%C?Xsyk zft`LE+A^wlnT`63Y9TYcy!`| zh^74SRvE6D?7SNKeH%0WY%^wxKRCAZa8+B;)b%i2807(DU?$vcGiXBNXarEo24pqn zZomH+^_vJ=uK~u23KUWsImoGk$U^=jUI0h`x6h{5?n_<Gbgc6?43eucT7gYQJfA+b_aP-+Rj>9i52l}Dij@RLRlrtggAIH>QL?&;lr&O4a- zucx_#f5CX{_GEOH7_A-o$#l`!K%j+C8e2{x&q!4$r(gJCJz-93A$dv!)fSmdR=p=S zfZ$S~v!d1tL-_CEHNX?*=6j6~lyvRI56&wj#SO!^O%AJj%&VKwW8rhFP`t9#3V<)p zU4Km)$!zG~g$I<;-GQ*CVI`9;Ag!jeAFk^y5cx7OM6Xt=RD8DH!6Wm+6Eh1RW{xHp ztE$V_v72r}j#l>C`fV;Q*8rcOIE|Lx+h&}_=2jebw0YyGYT#&s?6hXte5i7Q@D%ir z8Da!|x_M62VL70b*=toy%@vyT_c4S$1Y8vl^cEZH9)$NgTojMFbifEVl^mAVY8e!m zd=7{ygIHZq<%h)32oisRVL^!BjJUU{hB0BP%D2>icAi zTriJdMOF>i`SC0Wn?8lAsK*Gu*hBm=UNW*i(M{u8!wmA<=GJW+>THFD@U2E0tL(+9 z_0R4a8Tk>Kr_b&EQz?|<<|ADQwz4hO;8m*Sn)t_hML&7VAM>) z1T#xvj}S*w_KbypL<#1rs4=ZPLB*!&rgk4PDGw~0)aGKV?Y&>$X5BY9nqC_X`_vq5 zs5Dyatu6~(b%`EM7Pjt@&(quF$7!rB_-<6{Z|ESyYpo8O@jy?vhWr(B`Phb1!^~a0 z@BPV1q&Vi0^9U{snZY^Ro3Gh@VI_)dAYqy5R$Tb0^Mj{@PW+ddR*dK&FmRZyFJoaB! zx|>UHuUgpUYtUKKxlXEJ%X+RH*_C{B{W{!n*SkU?>(OE(Md>0KV>oLU=_rqrCX4#_ zV@Cn50mRyt)1Az1tsMVTyHJtU_BPJQpIQGqkUQpP7y>9+aV#7$Z#6b0`#x;bJ%D_#v14hYF-cl zW+Oq4*g3uAgfO>OZW>Pzs1@WIQ|B@`jhIVZAd?G2A+RDH*gMbk#T%y|ay<2<{~9Na?>%fC`@dpF>%7MUeqYx4ZXnFk5?e&U9W zXI-n#@~Vu`7PR^{&eKFdpk_TU+pp76`s%IJh4Z{L0DEB7d_H@-gJtF6^ER;Fo9!H* zHjCaXYt0S?$xc7xAHLIAler4;46x176!-5UykXxQia+=l9AXsSz#ID4Mg{3vmoW7} zduh=7>(gHq8qY(8&?SlC8Qunr`~4|)u99WyNBj`Q^AKT)b)r?brUZf1!4E%)#TE#b z@s5JOJ}Tm<{56O(Y5-twsEGRK#ezN0iATP-B;aePltx=jMxtP(HGF;}laVoIEwyT{ z9@3{ASfmbV4ThYbR;y4yaNwrsT)V`Yji1-OVSRY*4Ir@6Bdg0UHNmW@w}}CB>qYpy zrOFsfjx06IVgKi(yf80fAOEgC%Kjma8AU(HLcHf)8e|Vkk2?szX)jJ@7%i@An@mtWgK9!#C1~U~#ERhi5b_@}2*(6wL5I3k# z;1%&psm`&z$1vtRD;+prXpieC>tKO*r;MLleSmgy>huPiCXm#D(Q)xeJ7lbxVmu;; zbcbe<1=%(I(}Zy?#M$n_mh%Cl8s!s^@Z}#`ZDR6*npEk`TtJjWvo&%>VKuM;9@SQCu(S5d)5H3n4^6D(B-Lf7C2_`3||KI{o``Yi9@1 zjOZu=}-Pgyvg2=(ZHo8moO_W+0&#frQvH@R5z3 zq&Turfcnu0AY_TA@)uApi?@YTyb=$I;mPeB;D`*~dA0WS^z7B8sCZZj0{9YxyMyof zA-W-Eu8@t4okmZDn-`Es$~n3RaS7)|id3L)In!qG7d}@E^E!|~ox8gd5OZ6Lj&9vt zSZJen&%8Ebi(BE^_S1Bxh=jw!?uL-^mu_X8c^DjU=HtV1Wc-EB=3%a^BF z-l6;u0Ru$CyaN2~<9so}5i_RcXmtM8JF7Oi(O!~L3@mPWg=m>2?^k1633)WBMw#Ag zNMs<1MUVJl3PWxqNso=;jx`84WLA~hHH$-J)ANADny#J)mDX3V9LGA2 z&MCwkYnMCwJZ&!KL`tkRnr+JpcsJe=ZNE+z#@2c>RD+z~Tkd|E6tc4W#nf&*t&a)+ z&`q2AbX7xx`j$EA9E;u#b{?q=1JOE8`b`M4@vP`aF{FW1ap0l&#*aoS&n5(BF= zn9KH8r&%dpJ_+Siq-_w$ZkxVB4iJZ<-`sN!>2g}tq5Vz;XsT{QWiXl$pSxm?9Eo2~e~{9CzmnvLrM;hoH5kcDW7Y~@0|?xR{~757z##VL5b3(!V!Y|r znFLlM!H&`rrK`|S+Xq~W#M3G$^AN3{lv^cZcMC58=F=B%}ZrI zq6&01NYvfEFs9dg0>5IV?J^2)GXxiwWhuqL-eI_1HPw77KmrkJYdAWYEhzN|)E)s2 zRq3Cc%z0nBpKe@pRs(CxRdw$z9wj?aT|soOzFE zL6S(WG7?N(?iQg6_J(+#U*>cD@+*HfOGs%n+DNH+X~5IWStU%ajh(F1FZT>U52O;w zN^}rVa4;3rWkup^eWtcu=7~=FOj|C$B(0^*>^MHb=Ks`gFsOe&b#NN0qtST#reS&J z2`)$Zb)I&8`nI%jmeK05LYnRK`tY0WyaJ+H8?S`msFzP8)>VufPMeP~D?}jPV!5p6 zZ1-Ep^%wW`=&6lg=l^hb&I z@E^u;4=rupS>^CelkoyD6aHA!$|lCkss5!L&Q#_{-f0L|&onrs8I|H}s19e?srYV# z8;-rjdCL9cg@F~X9^wI2$kda%FY3_|X#VhXFKYZ}OIHEMC4eR8{>OX7!@f;%IP0yP zT-R5(p4U2K%?r{XdyiuB=3>zZjTVm|!`*upO>6DOZStL8+r0eW(Z^!ePm!7YXU)L= z3QaO6fPIQwf$LFeb2KsN>J^mZku8GX@aLHXoRlcp&|CR0%F%3aC~EXSB@I>~n=2L1(Oam`W`W=!kRJfa6%APHgag|*_(nEA+c*`~`ggB4*y z-&r2*m76KQ=_2yiwG8|XE_RlE^`C4|1<3}R=>C(OK+fFB<^Z;pP8?LLj zOI}6cK}a%CTGkfy&gm-n6p)~WA`g{R)x|e!CC5$w&WisqF+w;L!xtppIhZt5nvDH?Cy0>aAaP zO)kHtP~(H|mPfkeGJU(R>loaACqT1mqYgQ*PrP2F5J>|uL3)NV<>kip z+W{yFk@7yd*j2f=ocaUH+n!kLp2E8LZ>)Sh>{~9wV{k1fw!m2@84MQDg-+j$djX_184HCd%mE_|gSken~ zeBZ3%r1yA~1@*eqSaCw!Y-+z!MCo$=;tuXK?%y=S)5V?fREOv0G&Fa}Bi?!O#)vHCkPk;+GQJ^403HnJG5RD&22KPo>60tu>3U zJ0l$rkHQH3il{c&_b)piG z3oruDUw#>ES60m5)b8_TGbGZ9NsL*yxk*rqWr7(aD(q{E*YC!s`6FNZg*G@fvm2;X-Twjw24Gj?Uv zDfr!3E<3k;Mj|d)b|OlZr}r|5bW!kq4DebZWQwuEP(KOP?{MX)vC@%S0d%5jw;b)U zsGh1f%$81$HW8;oVmou4Dhl4UOEHOI#%-J7OEE3~tIGz2D;m@8I_SMU3x(Zy^*G4T zwf42{zf()LeYM(0fF-7FdfGQYw>frO*)_iRs<)X7Jvn=FTf3HSY_Gm(BWmLN_Iqak zG4u0LyHUBtfX0mzk>O%1U@?(F0T^&6B&X8o`Ta8{z9NlG*-T?$- z58fi^M|~QtP?v{0`jx2zkr>jB8e`|-)qcPS{HKyM%+4I@qI)qMLuV{?`<<{wIHhS| zII2-&QDM;xy&SX|lwQGMyENetO)Qs*)#3ErtM$Z40YLcCL&bQDZf(9$lZsSFSkKErzm>x?Ja+ z4!i0*F3`$3AR3hcu5ez58+G->vz)A~+D3pc_Am*VXfnh&a|!Uc?OpPd4|=%`8n1*C zQXh3Pi+3s==YK}jw|l|cOxVKB+?Url{BbI;g=q=%Jm`l4)&eFxEXa}k;fl`rE8DL| zAR6PLkV|lny%-7e6uWIZbM-W)ME>;lo`qSq5iHyHcnQ;0&NIZTJ+9-dgP9kn;)g+) zS$mUV4x}G%4kCo*YU0+!^RK^!72`}I?BaZ9O_1}T2xQ=j_Z`Ln|X67H2u$B_AJe4bCEsO#_=a3xgby?a%mWeOH@ z4d_cZ+W7%DyM`0oqm;BdvAvWz#uYdrQidPkgQ(UOt+vh)(7(D*gl!ukr-`oihBw=UVfXhgyqMtG3&VLUXIm{$)4{dHeXlb+*AGCAw5(K zUqki(^UuZE!f!RTZ@0e*3G*D8C$<}(Cv3ULRW4P~BK)wh|GoSJ_)qI+b%`9Z=wLoz zgRK4J+Qzw+eVn+ZP)$HNsh=ZFg$agD6?Lcnmjqm3?@OFQZ{3~bh?#U~YMwI-Mh*wx z?ZdS5#!J2LhJWxic9Z!R(&vplcpvQa0jy!Af<|^gq<+FX5!2eBZWdM{qA!)owUU!( z?^~5r1>JTkj?7>bc?0t2>o9F~w66A5_H4D3juxDgY;?3PN0#<1@9DG}zsAv=O1XH{ zjs4s+MsHKGaTDDGBGBBv)kB18YR50ej}#~>60H>HvD5uk>gt!v!)vZ*OU#F5CkQE) zk!Ydocs3YuVb+!!H#|80?@7X&Fh+7}7e;UdsO0JJB_^Hg)-etzUS|H9xsH|h=;VZ` z#v~`PQOdlge@amZ4BnK*dFoX-3R>a1!q)5Il~-19)v{CalJG`W9dkpaFvWTct8h5b zvPQl`Cl?45J;(;zMDx0)Q~*2e%(GqJJC*xDO8>#|B+q)cVAr|>9k;hfAVkI8s)}xc zYDGgJY{7n|jVyh{3dIO-O23(Us}z8V(5l)`%hqw3{HY4^^Nz%2DFX9EOD5>Fc??wq zj}$F3G%{+fkp2DOyuy4GUg+C<2ofvW+K*Z__-)xtlb}>77;|7!_2%&_4zNM&2Igq34W+_MeuFevWF&s`z9nE1TQBlJN_$9uh$jF)yQ%AGukqt(V|%?_Z!-4EZ-Q?o z3k@mjcVme>#Z^Q=%hT@~mV@-GH@n4_RlWuu2BDVQtKh{|>w>jcaW2|=sK}tWsF>9s zQT@y+cr%Ys@4cB+YMB9pAIxS^cV>?>u4J_mlNi6(V_YB@`Qup9R!gCht_$H1bis(k zapGxpZV1W`AqG_RGpi>X+-y@Z)#>$jMiul#fz;(ECD>O#+g==^xse*b(%b3586yeO zw2$KdEMHH4U=oXl=aiMesoe%}6{RNJdTuXX`2Bgui7R=LNt__eYOq* zQ<-W}{g2Om-)E`xfsyR@1R8H<4^Ks2Zsiyvn(z;RT7k$0Om*__pKM7GqjjP4BnXzD z2tRZrj{UW$Nf2nH1G&6rKaRZ>HJY^@D^@c4VAMmH@FiWQMZtZxW3t5yPBpUgaJ3&pi2)2 zcO_T>-mNv*^f2YmBv=J934RiJcc)Ks@yVofXk@#;%G*SL{yUSkL@o+2<|ieBz5RUO|~0Wrb7wK+*q%c%L@{>ytd}y``8tuihbn z4{i390KZpLVK{oOWbsMfwm_GHQbhnU^#*ur)verFi1UZjd#|Xj0`GEk=e_Wpbv*TTd{|&rd&PJqVczC}$_br=@I5Xp_H;;m!(faA6)})KhvdAD9_JDo;Qo&&) zLHgy1gA!$ppK@<8V1NeL(7qI)mR=p<^3n_D>;30i1X4(JPtkS=qYHfj4WELa-YUC% z+#VRuPajTJPTnr}YY}vxU$U#l#-3()mUP|d53U*eSHVVMqpC@#t_9mUx{uUCT$r$L z+K}3w28nwwYjoPycYQmmH+sE0nmuHkI(s%T>D+X@#x-t}v2WRd)ZfeV)AhVH-m{yU zuKiuypzs-X8xQY1+dcY^DvyfZVPk6C(n)064GF1c*40rxL$j}sxSim=&2m2v+V3>a z(C6UhFS7BT{F)#OanGxet@SuQtCmbFcPY)|!EslYvsJnxvkoa)%em79UWTh!By@FS zS$}d7W3jy32F*XN?SitL?LRn4sb#7TTHpGQ*W&n~p`Ko~!I>&dO&5Yz3+C9_*h#M) zW_alEQ)6NIYxJx*l2AzxwUvLN=Bxn_`wm|e!gWMG_IDp3ANCDOIcsS*Kj+QxVJDr{ z<$1-B8@GQ|=#-D%y|k_xM@TjN&?;Im#yq*HTyz%fPq(I3vDGM5y_Zr!ryax^ zoi{SLyo(s&@Ge_8gKn!LbWjQ#89%gA1f7zHggOkt`d}%bEa6er1MC(MOihx9;=N9BMEeK;M?zLdHhkwufg|la99gu(FeLs>{A15{}Ns zi;1+2$S1qg2hj{&?fRpTVxYv4i;@@aeUS0($J^~8oCkYfKQ-N|| zSKZnA!NUjUuV`N~HmFr;7D9!D`=q=`r?CKv>bs)?7x35y_I_TNhM2X<80FP}!V(BS z3Emx%wLPwuVp<4B=GcAspPMqgewtx3I*q7#{DC@^w?`H8J22t_b8wJjUwR4w$&W^F zG}Swrn4EpM)FB|bj!5>Fj@9GO$#6B|c^q>kh0Pa;0*Y1~YKznNFPYJ%YyuI+q5)+? z%)hT8&;(lV6WmwjY;Ly97*Wf2;DFywAOd3aFxFvWc+jN4*KDrA*K~uw%;Mwe51ePa z+F?*S5EN9fV5gAEfpaHQn$9`=Nqd2?@v()u&atv}ch9FZA*L-la2k!MpkkczI5zc> zcZ@U14}R0pK8M!|c=bxzF+}K+X;I;f(rI^!e~)%J?8RO*6~a%o0o{fT?lARTs2Rak z@lQm-#qMf#(oEB83u`#j*DQBaI1B%(fi@U1mKS7 z_vOFF7rPGr?n4dk`Fovy;jT|itnMv?1JS!v!sQ6?7I-&*hg9LA_DDN03jh-B?axV9RBMM;>GXP_%We-#?} z8s}Kjl1St^mJlRE5@e&F2ZN zzxct5QR1CnZah7%&SH)U-azYN!IG3IbNmhU{ud|lPw*(d$<5cj+|)6Q7bhED*T=8f z3w-R1mk0foZd;>B+pCV6y}u-s9(5J0XeLA#va{dQjT&2XabDkNOMe!3;c+;4JlN|6 z-|Y`{jd5Q!;kJQ+&O5>9pmw*BJdo|=@a0ovrfbZELY|S#v{)gx?N4+a0v4V>^y8kCo4j`wP-`hxA5AON^pejTj*K5aNHk~W&pj$G zR01-r>3Lj+ut>9IszCU2atoI-1bvGb(TOQBLcxfC1THkk&k(FLz6qwUC<+oB{8 zXW2vgxf%+wyIfiseI_DyiL+42i0Iv(+FE3Hv5W?egc~i(daVNLqj%{u(RDP* zrE<)1)eZ?(3yfjaV)f{OkM7GV;ip$^05jir>{s{BUUskakwQB|^aBb4!=iyUb0&UX zPCBO0SGhAO6R*zzg|f>dzjteVElLoY24<{fGdu94k+ox``@`kWNNKJ)+MfYbr-#L!G zZTE+!Pteu*IUmR4jZJDD^1LWGB-MuSS9yL*w~j!t*?~mk)xVWF9oL-{mIPGc_Gi@x>EEuTz-R65dmE{$=K8Dw~nNY=A&CehBe-yt}qIi&3lmw9gcC`xW*7VfT zKr=5}u|rc2aZ>j(h?rB|wHSID45QzMVd|C3>p}D=WSX*h3TrGfc73z4dsk_?!0M31 zw3r4G0DPaYL21xnu8anOhQ(NXgFz})_Wm4>As>Ki1m-;Xa4)eYCGJ8M>&inn=_A`V z)pv3E3GD9^out)L07z%rN12bUcGhHq%i+dNF=8G5Q#ybPW0yXuuj;Qd8GV00k@2~c zLxl9&fzfm-UhjQ^;E=xkj%XsjPKR4f`cHGJ;|;-z@biLj>qM={l`+2|dSUZ03XCu} z`jRe1p@J>$M@?yARx@V!HO+hJnA{6`vN^MUCPb_JGWAFrdTA)tHp4)Ex>D0V$GnP} z+Q!VbelAidabBb(Z`!FGrDdJ~2g1C$x(YydLhW3Sqs@S^&H~Rzy0PV7**uEcM9Vl1ivmcRcsU_)pV*7l_AL+7 zL-MO@b!TU$2EoTJ}o!^i4?~ck?aX$g*s6fs?$79Rjvlb=(j@({^&CTh$<&A`l4Q<>EaS1EO07)GwN%G*#HH0}b=Xg^ z+O54Lr7GqdGx1G4W~FqeiRppl#2i_WCAf`K^(TtK$aotfN%0J7{k0RUh$<_o}onrBG~#nhc@j z)9;bZKcbzP6w!52q^gdhliUXLGe0aBP_y$ufuNEuZnOEYY;j|;&(L6xsUzWF@AGP;q3kQf`9u3Z-&+|g4>;PL$UnmKJwdKwv|i zPmxl>)?w6dUO3wMt$mxPa0D`{7%F*C+m~@O@9DD$JDtbPT@vBD;klNLFv20Y1S+HC zajSQ50d1M$-_u-PCrgZ^X|tOq1evkQ4$Ze~pEY6{a;t=$s?tjt09g#AT1*9sTeR3e zb66_$0>dW)1UDR-Y~EEw*L7Qg)uxw;+c>d%v{t_NkDtc<_j*JB|bh z3FtAHv>Z7;ZK{x19`3kHJ*l1%Dw!9;s!Lfi8n6d{VS%=sBp4GCcdInMeCxTtWP1DU zFv9oba+oqZl9<19&p5@BRIkm@TRln)?IMa}Ag(a*zROjvhM-T^D=Wl53juePfgZ?g zE9n~H)O{suJ~pbn@+km7EBF+s2mIuWMIs`fL}B^Zpoy- z$ajb18$1FMJG{?-87NT74w6L>OVmuutjC8*B>cT7Ce!ruG6y_-{=_`nI{@dz{43nw znB}*yxBRA9k7im}Khu%7Rv}aBi1kRcKf``HEOs~Mq9#{?5uhtjK#uehDY-$_pq+ec zSd5;G^`zIr3dbU{&tJsMgeTa6>L&;N`Z4ugH^Uo^F7WOLl?LuVZgq3Jvq_8@9>n$Y za8gkoc3w-G)-qWx4%cDmkbb!Utk0=ke^~>_q2m2GhPc3)NKxOh+~COkNv0GI0fhi< zVQ}u})jSTF{?=0tU*a2-H`b3B2`Y}xZO^&IqrYqrN~b6abYAC~YTOy&4d1s#X zS||05<1MTVg^u~g-JoavUYhW=U`#GMiHnPWs|jEX;NtgAw%bjZX){ffB6<$f1@F`H zA&=2`d%2|P?o$vvk>wiKwJuL&f5@)TPaXLRTOI*p$b#?(#d@E#kFeypJDg0fwNMY+ zW4}PaRkt4nR@2S}*$3D5V-DdZaIBDX^@MK@xk#Q#J75mQagey?wzh1S>&Ca~HU4ht z(QYMOA$Lz547v2?0U+e#a1E$q(Oww*%e6zh>C13U)3^PTiLW+3H5pu7x^NdVzeYC> z-K@-|xNn!X=CCEJVk&fVoSI9QYfF**jCB=*dceES{FO$%p=YPh*U4L*BVODDYi^$B zz?A-$jydrkY{iga*sW7^oPmsaKS?m2B@khp5-~i#6HK`^1OtaZVj;OXH>pz~Y*UXiFD&zwZ=LDunFoF?;Vd=VyO&DxE|lm;K||A_Q#}j(LY_sf=%84G z#)!#q`?WN02Oi5kPjC8Te|Wnx9k}G>7oYF#T&a>Jd$Wx7G}1KgC5iEL5fmF-T)^55 zjiqq`qQUA3ngR=;A((`=JXW>_9#EwpxLQGbaAarh(dX38TBJ0;SlK1#?Lt-2CEc5V zmO5_A>B=Fq%MU$tKh1je>_frb`#?rh9hZ!@(e4Ze4ije6%Nrb-XB9xLPyFbz&Or1D zVuFvT%lsQ-XTcVAmxgf~VF2k)X&59VMH*=&1f;uLFhJ?E=PSa^_|_+(}Xk!;aSTh?4YU?RQkxOPr{zGMx%_Y z>kwp48uZMBn_QyQ?*dmjB!+G#8$&5Hw|dc!MK6{cHZvQ|x|&}O2$>8x2`7O#x?7HIyafq} zh#oY`Zh8r9`=5V|Dz7wF^<_3pyPMoQ%QG}`o0|DJhtu*^Tqn}EZIi#28)cp(4m^V4 z+hu}4*+`N4Ny4*lfIF0Hlv~OZ-7Ny@U%`NRA$o)44U}iZI^`Gmk-aOC$_m^dP}k44 zrzZ$+SR$id9<;?!%GYF>G)1nRbC887JoLKVvW;XiUVhDa%+GYQ4ZTET={YVYeAvpl zCI;H3p=Hds_fk)hJ8k4Yi8}n)e~O#f>DOa$ZM!ac-HlCF{exXX=-78Pmc_Mt*a(kz zp6`n2Fiqz5&ppN%=mkoi8P4Q6KGBGL^3Zi|t>)SYO-eUhfJMWURw2^3`r58&ZzFn%!ATt$xt#-e5x?sb=?$A`2L;Z+4aE2T~d9^YH3%zeM#y?}9g4r|<76RT7bWy-$>C zjpfurKbBB6o-TUtNlZtT>Zn!B(gfzvk=XPDf7lNL#fh$p@IW^G!T#2C>qjtB8JJOfzL>)U->?Px!9=J$;th5;e1TXUIg9Hsh3%Y^ zE1}g9A9Y~7H#m8qQ|#AnIDbQwLEq{G**JgX4w_Rw<-8hyX>!ovh3FRNS_tcL#RQE` zwIz0QL{u@9Ce`WH7moto{`=5#?*f^I;JV?ncWS z))5qBKKh=vL!$7gaV%xu9-ji=5GNafD;c`9DRy}066kpQ=u@~~XksoRgNrX2{{AMC>wP#~knC;_D#wBP;BfD$(rEOHH`uR_CWolclt!-a`C0{;K zOpx*8$tov&NdwOCqV-=H8$_Lhh=kI8Xxvm~ji1w1f?3{P>Z|_orS+wG9FviyJ{WmxV>93Gz7XiC?hI#b$CXvR}eBSHr#C)Zkc&TMrsc+p!|qya-fl zjudw_ICB_e7cw5`=wo6JLZf}>74Wz^lP$7>fOkf7JhX9_;8KN<3)5FJ*5%an{TBZg z@OB$XBj&Z>y{tMfOYI3RvH94{t9EaLVi$#NWBf`8rpw;jU$0AD{FUi0)sejy%6Xy7 zNT+l@pXssJndk&wI^F=dT#ZZA3%};V95^}Wd5*$4I5}pUPWRPzo!D=Nuou5jo_rXY z&$JQQ`iU88a2%*o{OD_?qaQ{u(tN)pPY&zY5n}Y|UU1*2VE*1EMV|;$KKUxr`>9F! zS)`xsu$>>0u6`-3A3haGk`k+%HF1jw95qG<)u{Y%MmDAO!q2&Z(&d%61n)8ZztC8C)_}^T zZOcEL77;1&k^qbJLze*cDDL;^3`8KqkhVd7Q>wP2{j(Cy7yvDsWnWsc@^8BNrARq~ z)l5hg-~~8Cntk`m2d71L$4Tn^_55Z^tuma z)i}!yuQv2J>LxLG7i)jjc`-qh{_~K;ayV1CP>!k)7K^g<^>yW6o9LICR;wTpC3ytS z(QCnE<=)p_^E%`qw4&<;87xMQAU<_(Q9PKQ%eu%_yQ0W?(-b>dq1P#S1))5xQYQMx z!R+F?b%pQEN1>XhS2~nIi)D`ci<>Zyb{VA4sCw3~_H*xcwkg-%kP>RkDbh`+j!2&P ze_J_|zrH(n@`GRl2eU-iFy?N;asyuPhD;&T%%M*b2_ZMZ+)TS-dh20>2aYQh)Os(t z;kUd-J7gGl%A-e{9t7{an9dWeHN-wr)hr2rVV=~_q;KF3a4 zqlVC*56`+{_3PT2$Nphv#~`X@HyI%;+w9#N4$Abj>ef5(INM;}6}>r4i?;F-+C3w4 zQn`2QVa^)Ld~vzIndOa$s2dXAH^35M9~?$faGE2;gD)x6^l`*R@CB~_FRQXi;vk@) zn7^Bi&^r06w7OE!JIv!OWWYnn6?uB$;ZPP)q(GtcB{7~&1U*6}^%!KsdSu-NTe8|v=z)5Br@^kAyqE&-u=t?6WGAo2XyfczrGdq?txvmqIrb}Zhn z%HGq;qj%eBoHK*HcFcXfRriMKg|=na)NX49_lIu>GtP;gPA8YA4AaQ`=1O8kzemOM zgqvFkUBtjPT?pQ_V=9;NZciUwaVIT3GwI87S~^}p|Jr;praUrKZ@HH?9g$hN;%hsB zmLTUi)~w(Bt^27%Y^#R4JqES*3Vb|X*#T?C`-aJSDjX|^r-%VfJ+FeF{9n#l135r| zF<74-qC5G0_$~i6FX0_0EhDi<^YB$<=v&D}?f%J|!Xzgx-QabT z?Q4rO$vom0(q>?lTp3wF5#cxv!8%)s9R-L{RKku=R76L)MUM0QXzMGV=V|nqYyI@u zs59kq+cFT#6g)bt4<$r72tWgFvCF5cIXQ+{B}~Wb;<^ei2$=W}81Dxt7U=nUUL3`J ze<7a8+jQL1sAkr^6&c()Joa4JZct_+bssc3^Dw{({lLv|B0P~NtC^Ar5rR}q!+xnV!7VDS7QLwD>vTB5}A$|O_b#wIsP8%m`A>1 z5l6sN@^5A!@S)pIfq}6JB#o{tNOrueMPk{7LLTg5mjKVWvO1#PZ58U z%y+T+l8ct2c&4kd{=OF2zb5_rognc3tr{5nuNTC>s*ovcSkn-HpL3xnwc&f-=Lmnl z4!6Y=jLVrp4J*kGAI#M6yUw%lv0Vz#&XhS2|Po# zLwlGu_pS%`+$^k4cBWVbVNzU#lUFN!?T`!wzvx7R)rAN1HJ#<_$% z=$eP?1eqUy28j!!>0k0#7U6?ZJXEZ+S}@A7DeuhzPVvYe9Uo%pb1P*u2N1;~$H~W% zZteALGGJzX>Ne(W_0M2*sKO*392!*+lxLOs5-s>=t|X;+1V%#MEdfYX1(+Kg2DF6? zEXiLJNYf<|IhjQZQ2@bE4h^j#Usb{JI!C$au48J%7u5lwQ8LWkJOw zg)XVuOufzF3qm`o!Ze6iafT#snkzhZtx``v6%2MUjlKPSypdmWMOCJ$6=B;#*> z!sQ~@`1v$(fUtFPkBgEa$Ju+VZEmmq2oXRZ-$8vCtG=(A5bUt~Tcmg2`{)H{#`f{` z&2@kpd8sa7x7wTsACs=jI4r1KrUcowRJY0!I>H@|uZf#wwMx%Z&ItnJT{rC(OPwa^ z1x4?#QS%0-9j8m3PQ+WavIxC{LTbuKx$%@K#lRqHxkxGWO?1}4boxq?Zt$ywk#03@ zn8G05xyaG!NqoT3h%$LJHl-Puf(NIfP`50)PWgOf@fHCO!-4xKtEiQGLoNIvS0c=%in%AEugZuh0q)O_L#P`9tSyHK{H) z;`in@g$;ZRMGTlbkb2NO8g=Qz{DA&0oj${byf3^|&6WAe7}E2vUmgCq@E!+ z)~5G9fQ3?Fg-eT5)utuel;g`6F?EX4{6Rr+s%m=(Vv5T2)hr?)CQ*!>N9gMAm#2ry4& zh~7!Kq1AW*H_o3vaDg{1BJ=0Q_J@HyXN@p`;7pn@r8}@C9yw*kfhwi)PacQ26g_Tr zb>36jt`CU`NJ4*}Xzm7aL{Z1RLz0~$?l1i+qVYYUhwbKnngbz~)u@iLd6O#6x_GpT zM+j}`5zqkX2uhLDh7e$>iH6b1CQ0f#Ly|RG;cG4jJp$Jt=@=yh6al7j&x<3-@98sf zkQAW}18aJEl!_)ca%3$~Nnfh+nWaC?EFnD4Rn5+{728K&M@)&YYRe4(R(Cxu_iL>B z^t+7Q_cxm_fp-VG(zikAvlCMx=g~1!Z^vHhxUP+CO8ZW_TD=01Vf4b<*f&AY( zcz1XD%ckyFJmRC_QVs^JXSf~7oh=suUf2v$rjb@TM14CM1hp~bL3mrZO)sCh5eJL7 zcM@ZkCOJ7E%d(;eywRa<^ev2t?gFnxFHlDEjlq+R6YW5}Ip=pDsQ{X+9?@$sccEOy zLZI#1QwY%Sppv$4J#V|Kb$y3Zf z<7o`bj)k%L2bd56(xX_<-Cm6{yop?0rEoTGjpQe~mj5;5RUoJCi!e9*!I#JzwzPU24|UYbsdAg&RI!yLGF& ztq9n9)gE$spLqv3-x=LKKZ{%Vs98KwIK2KY+toI>O&2pL(-exv^X>^9EAh@={oPM< z|NAvuce;+jb%0D|%d)(qQ^m)U;tth;0P}av(h7QX*Y;@iRl=n1*No?a zRZK?C6rAMBw8q;W6sd%1rO#w0)%E;{kkoi|!Duq$xQPTt#H{habe?B1w{}$3vSWSC zM%p>0Edp2PIyFZieXuqx86sW{!SK@Oeqm8ZY?cGvw`LyHwKHwu_VV_q9p|&+`q3P- zOKJFl8v<}BbF!K4xFE3g3ol<%*P*XWbOVCYtgUj*kPZnZCSE(;XAw37J;`SH)!-Z> z+HoNX!I{maRJ0Iy>qz<0H@ja;M(S{t<=cBaHP{?yPUHaMXeXeW&7emKbt>qJ> zaj9adzkZnlRf-l5yqYneyb*HWQK+Z_t;vNsT>y9RV@?mrRrI!#eep$e z>{C(~q-nV$obxaW#M#7kdbjm<EeG3 zUJ2_~wc`DgwQ3c_F9)bp^6jdM(WtDHI0Q$j`hUNjDi`@&E9+T^hJNuG)oK$0y7Zrq z&uG&fkT1)b*%66FmdW9U5OLa7qk`VII3mm&BqpFHKAk+SUp^v1+%|{JtcG4HOag@{ zoORl{bZ$zrBIjAp(~px;%tUFiQdUD>^@Q~ei_T2b_Sil`#b(7#jRZZ#dA#JjQ~he8 ze2P^t*^mjnfxxI(HBU1`Cc~EbBXqISEb=Nzvt;^+gClmR0z_en0bRkvVi9N>@bUR{8;&k zZZ+q{6K?;)_TlbVm-}4BYH5h3hiPb%T+T|ghy=P?9>JC(PQ|kqzC49{EUDC}SNSwSm zI*Ae;Gu?obTq528{uN)0QaE2`pcd`txpVLAMzhy{&?GLR#;fd^(&&?Nj=xS_zm9A@Idv?jmTYotV^msg(oDQZ#DB=!3&XEK z7?JHH+gbGpPR2PL?PG@Ng+MYt8OhKL;M(BwSZ<_xKj0M!ZL87#p<|5-`|#GDjt`4| z)E6*b_O7mu4|R~2CMRC?ON&*$;d4*I9h7>;(wU^ma?w#`UmyE5{cl^fl!)X>v{+{S z>Xll|;W{#^JMdw6Y;wA>i80vHL~+A9n)vp>*@Lo3)jLaOiVsoOWGy3R1CP=V@S`SZ zvi$<{8WdHMOG!39Uz3nJz%PltA&C{vMt|I##`MB%t}cXJQ&qY94=N8tU1KZ|DsdRe zT4(a(Q)*RftQK2n+a|UtG)Q&S5b1YdD#LJlD1&;Lf#pa>4HC1zm;tQ5=@fnK+g&1I z7e?V#SC%$Qo@bF_7k{Ma(r0lFXt&g}2NFqP28|j;SvU|nIXKXjoJN8D$yBVb2Oem> z(!cY}Z^X%iHy<-<7U&l@BF05mPTN2PGiqmVJf$tlJu)b!7BCz1;+I0#_IB+vWmQ#~ z>yVwQi~(Pfn@lpWb%p`emyF^$m@G_$d#+ivJyv~>2&Gm@jmJr@v$hFij*AM^ah_yD zw6%zrUvtXxd6DuZLm#YN5A8^OcxLZGOWx+LM8yz}k1O7W>9;f_`iIfW7uQSoQ76LD zpnLZt#@Q1>VBrWmWt+h`qxel<2-$O7AS1)H`rUOzX0fP@Z-?o^3&cfiKs1`2lCXQA z`0t0J0Gnam#@@$@)Em=#{PkV5ap#?s%>CPnm30<-pHurBPBOD8vN5feFpFmL{jItf zf9x;**T^p;!?tOSuyVe>cprZHA|J}ZkoX;Nnf-y`VB{u=$+KpGD6GEhft{zR&=9ZL zJRv^Tm;P#VI}-^@ly=u`l2;|D+CB(}E8`o<9!oXSSw4q{1~#ZamyaEMR zzQvn{27`f-o{pDaz8c4-%(nu0_6x2d(~)Ksxx4Yb;kBEp&(}C(y zzw@CRatlB85FeQ9s1$TVDB4S&V0V zh^SMRfV^$>?46Gu(WBbJ8BC@POkc+|Fm7Rm37yWVg(Rep)3C*ByR`hr0B^2#)6|bj z6c%ayI;f9vc}#83poIP}GG9|U%1!h~Yvrmjar7uWUm8c=uqG&+a!&U6s5QU-P%J$f zsxsQZ0C3FexQajGj8_M;WO8Z0H-3FNv^+R)oLHb#Cw}OIQ&4Ft*AB?us-Tf`b8}%y z$SFDWgT}GDxZlY32B$zDk4Rt{BZEjE^8cKvZZ5@RiH`w3(m%RzCJ+pUAfYVP2Sl7% zOn9R{G+$f6Li3j}*u&Lm^CLZ@X`n1mG7sZu; zxkK4U^a51unpKXUi%z__(msV14X4w?Jof9jV%o!rg5=xd#WnJR%q`9!!~;{9)EP&< z*LaeR#}igwOfboeUr%R(0NfJV~^AT43|er77}jO z*B)Ep;G_5Op%hV|qDC2tpuRcCzYno+_PPJ?JdG8GNUz@~ws-@##gmCl zKs75bK<#0`n5OVB7d}E`{v`{JGoa?**pwvXxp&!xT38^8p1IVM%y$&Gn@_c;a`_u| zA|&+Bz2}lhA;h9%g=xddY1rzDlHTS~&hn~+M}ehZ_W;8-7S3Uzp7f<*3C&~WW0hKGBsxEKaq3wF>rXu(xWb4fQv$;19STJEe&1;8QR~IG>_Lk zI=;gvlQ(^;J!gP7Y!zeNga7Si?z2Rf`Xn7iFgxh5B&oA`=D``5!ib5CQCIZY1>bRE zq^mGfZ^1x4n=^mzm>??i=pb+FT;WdUBrUL{WQf)69CG@t)S~RAd*0K<_n~zbr=29i zR*mVch=SxW&QmT_-WYRLBxg1RG z-#Sr&r%PJEIat~Wl=VcRsEin+waPq@_M_S6VbL9azUh&M5yar^_+tpMAITf$FYE-O z(|*jBq!s%}@9U}T+@sLN?B#-4WIq7=zGKivGf{5*4pCLG=tQM{dEN2*_CYunO<|6z z#Q+QrkiN^enDV{R-idsf@-K1*4F{+AxQzRGt8M z1#Tl&A15l5`}jdj6gNs(8>y&BH?A%Xk#7L%BG=vp$VoF-Hwm1RS=oV#Ab#71?Uo3tg&2ZY=G_aqw+W;yO&x%0I`}j3--l-M{|RcK#K16 z0p)Wn1MH1mmO2yL`oVI(2+>l+qy#kXhKM<5YQ97ufa{Ptvs}{d0+@jpq``_uBsHYk zjkf%2y{ylO$8m$e3_A4d_2I;AVRT3GRRe$(agojSp*smqW?Z zg@-{Aq=>bBg?>GkyrPS^R6z9DrR7Sa+!beRa(!~niri(&yv|;ywegm$9Gyx*9EKss@%D;oHLoN+0Wbwpd?BF_ z1#`^dNMcMlumZxz(5MXv+0n^xn0TaYJx537+b~f*rUtF}KM=-bI=uJ|@JN;;D8neQ ziq#iEP6X#8o2ZiEaB8!|kg#-&Q8#87V%k}Yp5~wx<1g!>`_8VRP<0^v$p9*2W-_dB zkt}At{T&4bKJ0vl9NeJaaxPK5NMWyofK8a#CK?-U)<)#i*|pJj5#-c^ge&5~401Ii-b+6_Rgp@~ z3oWOpe*vcBB|Pam0-3+;u;chIH~WSdYL9`LqG+h+X&-tW-1a6RY@4$!Cb#G@yDGts zja`OkFqt(DtD?$0-u^fY@Du}QQ^z4e`!%`h;Bp)Z{zE7PiE$PPR|Mm||57`6X2Qph z#V4~Wz7y7O^1C|n{(k#9np8*f$ArH@aZ)Fn++`bFH!{nV1VJh+Qxqz$TnyOf{i3qW z7Rm>UIP?yki(yro6m#RFSMf0cS}sYW{=|`tZa-4FFwaVmLoEnPPnskDSx&ngW-(Ag z%(PV!z704_NU%y$wu);pyjV2Hh*Wv}A;&PvUcbb=9mSeC4E2gBjtuUD6^6#v79**8 z;)}l-?pRa%ttD?=TPrq~IUo0Z84PL!1{DYABZTKVG?nwIgVvqT*_AXDAc$Kkax{Nd zfPUCMd}#{ETyV8E?1!_tC(~2uTiqi6hheawU+^bmDs{ zc$Z`lX@`!rE!UdD$u4qIQi#p}E409z%;zrP^r51CR&c5;%`E*>xS@YxXrM%(v^#GZ zlujK|s*WL1phrOyYpRnh@GzPaB1a9?g4$_+l(-F>iRYha<)9Y9(|(+w(X(db8$rkm zpMZ*inKRh}!6xl}mP7eRzdB92pX>NP#ZDRJ=KxBhwb579Zu9N!PRz-GPjk9fOC~|t z?iZ&0;}i0Kw7V27CMh>->JabGNE+i;%3)Tb4)En7^uWnW0$tof(Em2DSzXK9#6Owu z$EgASn`VP}df?Y!r$cI)Y+l^dms2l=>r#QYH23Uh*qW+ev?$hI0TjgjoN387-$m#c zIx*Bz8ZKO*GT4J~4XJYf$jsClD z?fIKp#}66oWfUD_EjzAH=*`v#5*t2hQmGY9yfiSm)T_qy^kFmSvUA{jWp6n@c3g_eo>}V0x~gFh5Q(lK0ixl7-Zgmt%zC`{I6{~PP5uZ@sWt5&wg3D}2KQM4LkMa;ZmO{*L4<~!h`V3DpM_Zmf5W2$ zIXa9O)ZtfXQM1vEf1oQ#wFDRHDVn;8LlWOcm;~$-NOV^P^p!Mt-{*yrXmLio6zgvg zxFeR1U*}rv9Ma`B!KxGaOdsNTeJ+NctTpE0_=`LScLD<%oZyZ`KbIkb)0&n;&&p$phIOR74(=!I}L-;V<&Y&`1|RO!$$%W z?I~3T9Tx%p0GuIgq{_HkPFq3qZCS!QNe-e3Y5AtgPbT0i`ESifUuntXe`#pzWH}^6jlvdHqoDB>tKZ~UOO68}1c>%{C>R%KN!JN1#9>$w| zV+&3;lhiZ2?AeTBW79SYkS39en*dUKx?*ccZzhT?kKK}zZAtlm_rpA=?>7#lc-@+{3b-^KAbfc8rBZdNY^gr*)!U{3k_B%w+TlaZ?;RMIwbO zpOCJ~oRAV~4&6{?!D5=%gHw+cvRf_sbB{Vn`gOHmlX~5}FsQ9o)kc%qusSuzC;rM- z$OWl2CH=m&k}S0#c0O|JdcPn>Gt+C(Mnxxp^ATN(a(M$4RD`zO(wX!|Tf)OBiX&g1 zpSIB7$ z^_&YLZUTsJZ06+C3E66Y;QxwrP?uZDGeJ&C(jx^a zEjZ8<)En;VX7#-1V~8cbu7t;k`4b-m1Y$>dX$g(ZPaM2}i$M4`F4=JJwZ#C+^R9$< zE+qeFw_TXTzMI{GMmhx6w`S&6UZI|DZ?pyRUq64s6;?=wH4F;QsL=j38Aw>EGK}b(R@9))2pyH!tKF z<#{|iBKqA-d1X-KYL+;L@rmH!?%67+gb!Ik9&9YO*mRYgG&~oOrn8b_-~kkWo2Uar z-Cbq#NJRg~J- zi>)-}caND{;foZ4C`Tef9Fq%{rqB1n>v^LR#DkOZMTsBA*7Xy`fslonk)Wu_&_(@f z08@v>bFgK9Aw&s1b?35>>r+q(8U}AdYM^-Xnc?>B@IeHuPUSduC;ho)3mIs}$ftl8 zxtvLI!`z4}Q0iEk+(rE+3Y%GFEbutJO<6gOg zSll*XTpLhGaLo>x9;cCpSaC!!7Z$af-DF0o^p!;x0lGLaRYGqBb(BySu*iO|wG&^@ z1ymQ|E$qHUy0+##){g{!-<8e#AL+ga*^)4sq>|dmH^?^#p#|q7>JqsUfJ39dvZrC? zndl)B^)~u`5HgHMfT(^=4&u(f0jJb<>~N+QLgzIkvCp!6P`@&)bP?&3n)}{?weOR) zc*PUV5f`cR>@{JCvQ>Tn0PoS-X}Hb1>M=T*$7STJ#K%TM!UyOa%R?o{q zZ4RomZZh|&De4sTy4i26TbG2yN3_)&of8QrCYHG^M`cEu=G?9@I(o+?+_C5rD=A{I zRp%2N4O?>H`4I=a9PmS=Kl{F|AhL&;MPf}lGKNqd_Wnh1SMPk{TSHRpdCX$L?AUpjeby^XP_ztI%X=LWL8FCv@IEyZ0637TZn5ius%hF4?}+5LHW z!qvTrn@Du2YH|@v89*V0<`FQ>&oY*qy=;G}xPth1~iow+2+x=8sfdLWG-kyMu<`VXV0mbV0FXTyE+_;>Q zCipeh7**VOh3&Aa1$lDAVI(8)3e-D|=_lK=`5R{pr(Ji`4V<*va&3OZdZTx}Xe2Y< zYqGks-b%b7NZ&_DgD8|872N1+wvZax*jdX{!AN-0=vn!3g{Jb_`$JP0yK}#3D~f%= zY{%^(Y6pn@nD5nB{+pf0rWC__h&5XaZP-bDPeeNU?|VSinze;?oTkp=qe;HN5{#j| znX!&NUDe`fXNG$FvhrBgcjnZ|J~T79K>ZCud#0#S~ESrjf1xF@>hl8?$v2Mt`YqWV{YKz z^5`v}x}G90_rPQ@<63Rc+Le-nh7XJ{*kmpFO+qivHrW>MZEA5(me61{s8ie?qtdKG z?JxBJ>&tDkIAwc#I>1c~M+dtH3BSG7HW7&=%h8WGra~0#uuJ!=N4st6&woZ2Gy7`u zX1jSNc+eF*nyA2rngl0UPhpHz@@uwC=?LX!UFe4BSv$tov2}$19un_*-eG<6 z?j>4I7{u2Knf%yp+yGFe9r`nDRopLTQdh-1=<24Gd|c)%1b%(s+$L!K!(E<)ygPj~ zl*GfcTvkRH9n)JuM%`o{gLoz%(T4VZ#q|PO^O>GLE0B7X0xvhGwZjiG5B+zl*JcV% z49Vx~*a|KxMHB6wzQ<1(`Ipk^OE_Z1Mvp@_bX=VK9?aWJ+X8ElrK?QJ7iuuuNlON8 zI~p3^P?9inkOj zvnxSG{dCvP;()Il8vN}Wrnb*k1V8FN+T+HX|X<(=iCz9e9 zU|R-)d*jbIuJ{>`=JHiFxs}zCepyX9f>L-oZblVGrsS0zM&oyx;Rv^G%Cs?XW6Q-C zdfibijy82J+edzyY5T+{8(@W|!W-kuMX|3tK?#kB?_0;PD!IjIjit$Sp@^l!nsXhN5;D?1?XNi(!cx(YHmsY;f4SriEO_7o_Dj9EP`ia zAE`lBlJRVcGW@CuVS?j+^QntIiWviE81d3lrDvQSjz)jZ2V9Bc@GLK10_|8LdPsbQ ztZntxFeg2e&iGc6pLqzuE8~23tNLe9xH^~NN`zd{MY>4Kiq04H?rij@JGCc9HpA&Z zv+v0160m0}+8Et)g8rMdI$3F;KD(x~gId(i;zqn0lxs1~F8doj>&AfQ}csKYYcGpUL9drX^KIQrJ~ySg65yM*9%ctKbnL;Q^M^ zr#7+{1qcnv%fsSf!#NJy^zLBrx=4BKV2D9#b;4mvU@gf;givn?R|@o7-v|oy0oTgw z{HdZE-}B+JtYc*PWy;D(K(nin7ma0JT6KL)%g}7{>B%I6aG;*KOSnHW#lcinnkW z!1x7S=oBf8g*o<8Pi53H;0e0y)K^QFf=lKhl`&hG!%v}>753%v*B`z}=-C+1;`gI3 z_W2LiFL0Y{)e6eo|5E+)shyg2%Mr^Q=FqgmwXkG|E$Jv`;XnnscZ3`OSb&3L(@R2* zPFa>fC=4~JZ>U-KP{?p%gAi+Xb?}_roU!YFxC-1YZ3S?*J`JXqP^YgQXfwbL1@zB!Y1M_USmD!9eHLIPgR~fqL)9EJ4PI z5?Q#-!s#==>-kv!#&SybeYLpi0Ss;0Z{-4M$!(O^C;inU>Y+N*@_i6lsa6){sHrux z44IHeu~X_FU>pV}FcMQfE$9jK*L#jOIOMjcNdFknWJp&O@-Azj_)B;#q6=@R2%X1% zLkMg0VkwzlJ<|}IQ~d`*vk`7F=~9UI$?p~uLkcNf|-XaPW%C2`E6~lhe02_-QYik<6nsl5)<)X$OM=Xe62-K z<7DYu0q>qSyD<$jhb%OG36^QNU1i|qn0)S2lTeiB-q`Z5c+EzQ;)o`hw8|uik5;Yp z1xNp1wsQBpBW=5cbGn4@oz7z*J+>35AM%_nlsCK`Qkd0cbxIhbbVhvQFsM0WF38iZ z_I@B=q;ee~2U{F+o>g@K#`q`Ygh1y9vGQKpZDowWq=xP06IZ^~XT=$=^wAAUUBww0(9 z$79yJDSF59rH`ZRE&5U8ern|@(|m{0&mm(_LO$K!&JcYZ7Y zroY3n?oTYoaTHziVGr|9?Xd-dPW3t^W>plvQOqm*6PUik?1SnQH`yu%n zMv-Xce1^6rf4mo4t-(rmgmfY^<69BE{dOcDP5iA=os4$^gTN;VFs^{(?-oXctN88c zNuEiay=h6qcZeMYBU!0s-?TE4jiL_a1w_YUm7~<}xrB*;oTJ()H9HV6!`gOIUdlHW zRGcYo_CD?nJM6Vp;MxNW$GRN zr-hc~?qd{5PW>JO5;UAa7r3hCo^Bkzn{fHT^eTcqOjG5u{t5N_t9+S4BhCJVL$)P< z=NzjD#I`*cpL*8F^yX(uZzR{}npZ)fC)flMcC&QL<3v!EAVMwzLnhk~nQsL%-MO)M zr$#enYJN$#^v=r!{p7CbsuXxn_7lB?R&)o^P3zd-P(!qT_m;@=qOjPjBX5h;ez%ZV z8GtmipiboGIMEYY`J4()p5T(QZqc@$Si+9aT6^bCT!TX{9F`vVrr?5a&QTj;8&-!1FC$pSaU_kW@3J- z5h)7KgeXX(+Tlr|ma6kVjyf5>MeAcH&X8}1@2kGvWlv6J6ACc+!MeQ$1kLttZywTZ zXk$=jR$I!>sB#?&NIq z8Ue9hB+0)t#RRZR_@E^ITE zZFofNGPlSQ13G?2#xZ^T5G>YsS8>jm>{NzUTuS`pALT)e?ffFF@%`mIN;yPbTzZK_ zR1Ko>sp-VLQx}c>b)ZmwL4~8Wn{QK)=|^fgh=eqn?TrzIy<_#pQGnjdnu&QvS~b@% z8rC0FHtkREzpv#~-=-F*j>7Gku%J(bZ!nY%MH z(URVC&kmqBztqW}i$-U}R>oh_j61bo&wh1ONl>YjEHN~cFi7FUc1S)_74zi>x=76| zy6MUcOq1u75*U7|Lh^94!z^!|t6N0uzR^BnfeP(0M_S`{aX%w|A~)RX2l%@6#WPrK zk`#-P3=bcoJNl`0+ErTb;W@V$7}@{Ntc1hqPz`LIbqgES z(#f=x_Ue>@cvL&c##P{ft($w+t1vwQAoB>l`zp<~oJ|(j2w^v1FnxV_Ar$41ZdZqB zVv?5MLpBl(GRd0{@IXSBGYXg2 zw)8$2D--@D2`L|QR_LziS0Dk1!~LgoyS+}8S@eXfF7AY`2>S5-unQo+08muq-ds>y z5xk}qHz565)JRWub}_8U^kuh;Q#_mH5R}FlN;<)%`Uw?-f zQvNe<-|1M+Ddfgu_&R5039L`?Oh{U?*CnYJ42X=f&eU({*4M&`;a#_Y$X5(nPkNt9 zs2(m@NW{{YO$5dutKC}?Qq1HtZR?R7NpapVVR!f)PJPr}fS`B2_zO2<j-T29PK3@GaBuy4FSOt`ZUz< zlCkB5igT_pzXMQ90|XQR000O8xQ$v<-!Bsd$H)Qzu@wUVW&i*HO<`_zVQgPiWpi|M zUqeGvFHmi1V_#=wbW&w!S8{1|Wl(Z&bY)|7X>V>*bYXOLb6-tEUqnM+F*Z3ZF*h_{ zLt%4eUoAOp4z>P-zwNpCBNB5@|7EHFtx{9_Va>WsfH&s++f7>Fsw_gHZ?kwjqabl2}*= zy?TO8hru;}_|lDV+RjsP|6mYUWdtc=a`H$a$P{&^uJbBJC9HE8%Vn?Y1(^+iCEH#0 zXQ#~{JyknTY z7pp~Ri2pc~*ninyz~y|YKZvT;hNsi}CAU9_OW^1CMyFZ*d%(v|AmCTudc)5;falq| zd0pR8>K}aG2(>$tGgyp|3%x=ANeGx8P=?M~X!EJH*D1CtzmGf9lkBEv)jXY_=6!;srq4ba{KqW7aIoad$L%>hlZn|BHvd0=Hm5ZB>*2>QNrC6DUTKUjtNLyG zSvz|75sFiQ=TWTp^*jc_>+XlP?aqT`&GmkTRKSTJD~T!#xYlbijdx5o;h ze`KkY(LCnQ%HX9{ad$ke3NAQR>YSwFph&>uX!CH+4-Q@XG0c?eeG>%_IIlYfjOR_g zt&L)SJbbC^xL?q}?soFN(s8}~@dvMIJHN?bxnTs%kE1WF2g`zhmmi?u>AdiyMI1;~ zym>qO?=w})Fd!hbf#(_wiEWJCaRJ9*oSYV(Gtn_+Ju4v8;Pq6KIC=yiAY*w;8a9v| z`6ts^Pd9*HersPiToZ;%KP?#%=y%==*39Z@Bc_!cf=#0s25>X_%T<^mmWRvER0uKSRpW4IC zl^P4)du{koo^lB@IU~2rn7UTKE|?yqO%zFOJF|B&TFMSsW*O+iJl96lvTh24!D-W# ztxQp3aO2MxuoOwM4{t3#AW&(I;mpivbGkCgnY^AM_N8wInriKnh&4C?aPZEvcnO+@ zWn~*|&ln8F!(PkijSb>7JZpI9r@36t`d9aAQMQ!O6k+C*d>JYUgUKN@blh#~3kKHO zmfi3u@-m1FGHTK)YM2wM zAWlSj^nW;N>7oNwmd(wNF25$A2R;Td zc^i&n_12%Fq`E^`YebIMXH_amSb(al8(&cqtTPmI2sH)xAs95}fMFVOtz%Q7y zNm0o+EPhHl8m=pC#$I$xK3f{$OYhc@3i?TnBCcvp{OJg5FlE&@jOvx_Smh-0r}_no z+fTw3J*CS~1_PiJRxtx9;_OyJEYT;Yj;d8rRh-rQObI-c2UBtJ}<6+jfwL~<`r%3YpeA)WI=c(qkA3617vXB0w ztIv2ek;%vM$gQvIV@22P@wCBiD*cM7r}>zx?`3x}FBfnVSJ&}=+anq_VG#okfU(uc z%l8&JM$`)6g4G6lwxRDRXG(;*dNJ#VbFg$S;o*7CrUrZewxszYl84AYNpxJ@69fD5~ ziJ+y)gH7e|&fx1}w!1ZWRY6yEfY`=TNnZaB4-Nw280z!6f(^MrxY87db@rTNGZD3b zBmdxw>&I?Wp1$w4hjm@A=Y`Yk6&}B*c^o0$bzdF_(TA1Co%9&rDyLc-e?g!9M%^v%!S7i3>jN<^LMc{Imx^n>sp+j$>>qHa2NK4 zq`tLBa`K6&@xjeTU6$|uP#LYt%usQ=QH;zg5ax#rqo#VX7HHHW^8q1s^pR{RlIXOJ zn0y@8GD4^ekyoWR;J9-H=`7-ykv$EvV)mA-NsY%V_o_{$5ac8^Yu|7M^MxZ?wc%pY zXdo3y3MeKGx}H>-V;Z${Rn%1k(CEL2crp6{J*b4Hbbq(%L_d_YT6y~#8wAAuc%d6_ zF508`KyFqxX50VUya<8cy(Ij{y<(d8nJm%Ar8(Y@PHSKUUtZ1!5$NXmxDNI_`QA@{ zVdOo@hV=V5nWA@f;LM*^u7>88f%;r!P!#2 zC``_jO5eg?WQmY3p6s=*O2Mb^8n{PMB2bTY)*5u(g9xu)mULEAkP0J=4+T+JP?Ym6 zkRr*Fopm%T>5vafX89{OB}|W$M*_SEWm+p(*lQ}5lyH{Ex)Q;{Qah`hj4+^As-_J| zF+F=wn_zHzy!!7p+zuwV?7g zFX`u?RdLtTlLd&asITbB-+NM+p|FQf8jvx34Qy!sS026hnG>D#NHq!JSn0{wv6QwH zQ-hg!4=X1k{0H?C6bRGNB=nZJn-l|MHOr+?tetOBpac3aIW)nU>Y_~+lV~{cI8q!B z#7H_m_zaEBhon`gP~!T^wl|SY7mX^rircCM7#5z0GgwAoJd*ZNavIjxL zi4~xZ&bI^z%^E3Sf`H7(t>G1ZzWan%tdq)cSJ>-R@}VG^+aBG7BMx3GHl)jge3!J4%Sv>(JmzhZs-6tbaZR!_^df zY8_{rl(jrJ<|#`>P68jVgfyu_B3WO3b3Hagf>}RDYKMg9ckFMO2KK5@huqWp&j`N? z$lhu6*x-f_KC{J#D-_@0fpL{4L^oic?}?R<1!~mLNWp2kqHwexy;^+5JRH!(z*tMT zZ|Kv(+T!Az`9+Y38^PLaktsQY=CB7-h*hAAO~EaNj6EnHGz^=`N<7MXQX1M-KcA{2 zgUaSakGY_AWI^mqb2oQB%$Z~XYTRyF&n*m;MeBHL$sUVyLq%5FDD_QYcYiFLckb3P zawIfWm>nJ5w3=q06(W|#x)!VlsZKVZlOq;!NDID@!lgJKr}~W2EJ2w3lkrv9N^x*1 zI&!p@T*b_l%sq8P3G;H`A-cvo=PLw(MXZrn=t_E`Z0e_1F}`99GpxbTC6P%|s2Qs$ z<>>0+Zj}#fto1Auserv`PwvuaevTMyG1?X(@~{xr0uKxw@=zX53L`NDwL@-ZqQ%#T z;$t9Gu##=tG!}YKq%V;g2SujG#(BhS`j~O!&iw|(PU~9j*E&GwF4IS#?8j-Gh7aH^ zYqQl9nm1v`)2y<@JZE?+z2W}$9U|!k#IDsI z>18=vL=_pmd~{Ab?(M+<_7xQ0>(!pb&P7d09=nMm;K1neA>JW%Oae! zk`q1@EQKB%DQubr4N_GhSgw{5N_iZm33{769x3-sXp~?EH=}%vvAMtAY?M zZq`c$M%HNFl4T*@$rOApI|M)Z6mtpK8JL zq2zW;TbGK@z#==$V9M=BFofSPQc?#v$ey;yro4OKe^5Ikm4@*5iIL9W-(+jE7i1S) z_)Nu+6>4jpFL^I_HVjBV!IbQ4%)C}~>1R-mdyq0_TQ$KLeMPWU0jIQA)wNo11|8PZ z2kj7n-$jrPo^j+TpzraIVQ3ttPEogjaA}KbqAe1(af)?; zxpKKO)tON?LMTyj=2-M&^-D1(rffTlmya9glC(V8LX3S8XqyoSP!ktqBv?{NL;3$e z@0714)1?E25n4u8fU2Tcj|x9HpIh0qG^HKv7C1SW(uvZPQ%c`n)c3Q=hUUu;3foP|#AmF1+^L$Q{X)wqjXJA64 z>e=6onCO~G?J@vb*qW4bMkZ0}eM;%g8mkzh*j`n#A4(ogNp1^oO78G4CT7M=H{4P( zFIo{hqL=;JIXVL-Zv@pa4XJm@^apKe)QCJBE5ED2-{PH9ujN~UMMii9Wkh6?RLsGo znK*gE1xtLb=$SvY1Vf<|=GaGIWgX?fV`xT?Z}JFJ(qMUJ3y=ii&UB1TwtQ4`T6rm`+|G6_+26Gr;!9ht9FK5B z6^6-p4~^0F)MOY*aL-@UTtxc4?@I|}n_bQ?yH0sofWD73pvAucE`nx#Q!CQ@=P~G3 zb{u78z(2ognGl(epAhgKIIfnFkT@Q#VbX$Va(iQtidC0_8lx7JC?tO7#}V*|=cX5g z<+(fEt}yL4;1D!xtgkCougaI4qbg%kV{}2G=VBz52Ik3HhhpRtoT8=0uuw}s!{vc# zt=1|+fU`S-li;1y3_~tUh_!@en)aOo28F$3!EtE_S8^KWv2* zt-xu#I%*v1ECVB=DTOybvY?~oGeqVPf>D;!dj+|buNAqJ*uZ-9*$f&QLirv_7Q3&I zz@R-b83d6|R5lEQOJlHtVt|a{Dr)#~FQ?e4Vj0O)v`{4>2V7dgoc@B9Y|}24#+ih= zhBE%|NKPy!H@5&=)g5*UHm+tpNjKIiwOI7+98=5+v~w*oln zRLMqQl!FPpZ1ysWq2~w$iTcVnc<~K(0`i-wF;_}jhth>$llVy!AYLN`_4EVrdWu*g zf;QMA*Puz!Ko1}B^a${hhxenyd{x)3rfV;B*bnd&YbWG)t_rM}q~owDSPDfUv)%xX zVg(N9K?fgj#;*1ig*Jsk_fTt_x{brj!Y!~9>2*Y)IJjI;1Ux=zqXO*2deoiTwQCDp zF4f_`mx)9V_J(R8%(lHJoyWKo%4QLCk&`JH7}k_Kle90i!&FEIg3<_dNRvT3Pw}8_ z&DuMKLu9D7o0+KF74qB!v_Y{&o7v#Fi)N7L4h)ZxQr0a~L3eJ271>lVhRNr2ATg3_BpO0;d%J#|Fn&QWq57mUG z<@FIXrSO#F6X?;Wsl}Y0O4%A#!qLg=N!JNGWvy&$VGw8@{$PHt-r;BwVg)X&B_h*^ z=+eHeP7);6aGb8IWoT~b>Qp21k_!MEPRHmXH*ao~_553iQ7|PKFk+D|b5wIYq&TP* zk0HCJ3~iN_s#^O>OMi4;V7{N_-2z5;M+I7cFUUtPCroc`e!9R)iX{Mw9gP)(Z5NO> z5a$!!!93b&UH6ACS0C;BM5ZTf`-=po~Jk}D>LeeFrr{5C>n8wYP3&steCBP_Iv&iwbJkumQ((EDGcGEbZtz)ZGVRt zg*}?Bh;x6TW^FoW3^_tYPReNgS7Xy%pV8vB{DB>~`xDRDGkfnpZJYR&B1#l<jqPnFX+!ZpFbZIY;}7|8?exDqzGsDxHwipkRKNG4IuP*=K+kTjBEmU|%jv~sHW zafv3yl833Zq{LzxdxyFL%@nP~hAQ%=@N9{)7K=z-jkp#nMizGZaH+}t4;4BkR@mt& z&_y)CP?)2K6;y3B)D08tvli9^;fdcsFcs2+SILH40cASYjqvM;o--t0<7%wYRF~IP z@6ir0;x)&hGld2y6Lu8vL!rEH3EYz>Cb{q^{SI(r7G z!An|!Uxgs+7OU7ToBdyH(7f+rul|s>dX&l!1b;@m#iUK8jAK#sSB-f#2O=+yhf8H@ zeJl5Qa=j8rPP1~Gt8Nq;bqXhVIR>qo5cS%?@oJ;yu|`ZQ<8|FcZlTf$2;!7AMzL|? zHxeP{{DJm#LtKV@flUbO?JXtP;X-IZIvll0Hb($=lX7R{gW`yz26IN~z6D#NsWRT= zcH$6dB9Emi$JVcS85^uZ6RpV;a%?3-dfRjf`0`oK{!A_|HIar>@m>lx$|5i+X>MGG zpvl4YeG!+6<4^taW8Fr`Buxu22x(t!f50T5MHGsvz)a4CC_z~b!OB)Awi8P@8Iz}2 zn6U?9C?&Gks4B*P<+0-6QS&ez56#UK6@`LBQ{rC@O(SpFc#lH)%;2q6IMWjE>XP}H zoyFLcuc=jIRLJe%bfrNcQtCoAsURueicose4g)RyPdQ$>+c5D&v*TBe*~vL=GtQE% zoJie1ucrd-CSV_;b?--)CgA--2d@O|oX0Qc+%_FEhWSb;eG$AeZssotVb^+`-;E(k@}ssA#XN2Yqs7uecuf3s zz6^rPV8jfi3Q&-LypU=BrTs-LIOh-bPhA|;|6>B2t&nD$)%?CLQ;kN^NLj^Q5Gyzy z*e6}*(b>1EeV-r)$DWOet=J__t z(scbop8xMk_ZNZX%FoF`uAxwS|B(8IQqeMBwO{GIk+C&LNJQoU`$C$+=iM<7#eKzay@5@WfxdLx}<&3gXW zCW*QCOA>79+!ET~^+27>hdYNmd>wa)Id7NKF>Ks#ypj9OlFV4X?fZvb!C~JRN{Hm# zxb0i9Q5cq^@cAE}datafjI>Xv%ho6PgD&GH2M zJEM?9Mes~3Il6f*<-=7j>9clhSoRC|?~2qNuJgft$Hkf@aa&EU8=r)aG0}$+DpM+x zMMP?fiAkAjejXKlCX_(VdebAXHHAT^9~U5-W{rc3u}6?M(yWtCX3*wwQf?wKLviJ( zLqe;#9MJY$+$a*^7CqpSQ@^5XwnPl%|KxK~l9UAlFOY z9iL#f=7^jMCF}c+WQJZ_tm8ixk$J3#@^>AOsV+e^TSTY-AyMzroRZ6QXvLM~ z#noKQWZwqelqyn!yy^#;H5FLxOb1^Pl258$MOux?&>*(;jW=3^1i7ONoky+iQ4kJE z$*vkWE19i;UXo-1IsT{~wAV+b*pdWTxC5d3P=W;mteLu1=|tFJQB#5fyV1ts5I4)L zHUC4p1AjAfUd-n*il_!3XU^sIj#rW#(*Xg>DM<%{mH#nHwi4{**-~K$Yt+$%w{={B@Jq*p1S+1TrSv;rMO?wU)v#=^Kq?PHGfZYK zV&r|`18NAHSv7`;HL9x_%F^HcB_Dxin=8MDF;X-U($1hv1kEbwy>V2@jn0V_W+pR> zf+Ss(bXP-X%;qNux}rLqEV2D8J$pj24caE1W;09$AWsai?OCzP3QX)|-dr6E&#S`Up-I4Pq|=7we^9MI+_bU21~NYkSXiK=EK`Smntx+3&zvK#X^=S=~7=Qz$>FIP*mV&OeMesk`FaY=tS+qr4U1k9-h*k7rbX7{opsmeG# z9KMmYu>1EK!IgdbyY{@PkGS&h2D4Tx=7Kl!cRdS1V!I=#vqOTFP!4g@@JO2W$|?F) zI%_P)BgDUwzErRlic2wYr{O3Ehlu7zV#LBH;%xp_T37d$^uij2*q`MRY*ahqMNx+Y zKu6RzYKyA|lobC-E~ji&vr=g_*O8-EYp5-rhiV;2N_PK6=F`6)imNr=|2=uD!}#-?HDM)2_wJ)Ya26 zcQ;xOZU0=%tV=fuU7URYUPIP;DPI^IhL=od4D0Wz!lyO@*FmyiEAC9;75e07fFmeP z?8$_{;J1$plZ-+q9E_=>c9g||e8V6?ugr2sPtQ#irea1WQnXf$hC(~7n8WLM99qr{ zo2_Bb$QBuOc&J@IDL+|`xHP<+-05au%1p(I7Aln)j3R1_IOM_IrCkLliiQIk*^nDZ z-Ll7Y%Vq)VNy=M6nE-0!#w)*ZY-pb(;ocuvE^X8ldsrd~E{1md2Ksl$BNDe2ViS`j zr_5UkClpQ`ituE{&()l~W}w``jG2-UmFbRv(BVW0+?YuB&@iD~`AL12m;uEjC$>sa zsg=ExEauW_UH(;g1m`TtVQ3r#HjVgB(nv?X%F0%twT;aH_f?GB6=quE7};Di#LC)I ze}J2I_0;r`4?eKhpM^C*8KNd5S5^)PpJ|(f8^MSKlBZYkD+?xrGfXJLE$LgVBpUM| z6Vh42xh{VfnjQB8ik%z$=fkK_)9AN=Kvw89gugvZ3GV`}>D50G(Psa$#P^H3OG2{b zDL>k=X#BHIr3FC=9iE!DZ?eAW!t<&@jSeIA?1b1f38HBZD0}|j-k=nr<{AZ!4$%wn zh6?&-HXI-e^|$3%1_JSv?bH0&e*T;Hap1o_{I92l3WonVp~{D7UW5K8O0qvD)jtvZ zQT?IV|A~+|x6l1gLzKY&EtS#12mePxJQ?EWTP&(25V3qv#D7?k*-lWD5SFYY%8{%g zaOV_s@FD+U61z2_$05ox62!~Eic*bPu!`8&muw~QPXYfV&on-JK0Gwy>AQsk#6OVd zs)fNj?bmQCm!p*;VNR|cL4Ycz#_F8mRemlo`nwiB&G|Fpn}d743}_dHYD$B%=jSwY zBY;pN8)SHSk8~D=;L`_2LjGN1p}%tdI-orG*8MYDM;FLk4T2vNYwzc8$&SEq=l-6{ zpjZfDDcpS%n%&fxL$MMf`s^&_tDK#4*q@t|wX}{SL;`w2|OB4#1AJE|yJZ7WX%46D#!L=x zN*p9StMN#52s{=obbq0ERJzGZwKk}v#Mc5dhD}%Dt_(p--a$9L+r#Rk3s*X8k?kmC zT%w&}s{};T8d2j{+&RIX*Kv5?otpvcypGdQEZ^nI$&$8S&zGFKhJ%SN11|a;#M4Yz zj$4!C%ZyucK`2B|HgD=K6%~Dbe&A6wo&Jp$>o(g>PQ!uVy}_{6rKM;*u5U}_%4CwU zdaX7YjgN!-^;~F}VvqUjn_w|)p7*EG4%BE~*)Fe329Itwt4uV?I6n^v-MlM*L8@x> zmW@EN6;}Z{`!5>uI~?B zZg!814JPA>LD0ywE#kf|gj?P2v-x?pgdU60y~x#hk6Xttc65JnnYBQu)m`J0f1~W{ZS(X*+OA z^9_ElM`qc*z5Lcz*OQqX*)&Fe``zy!Fs?J?y1)4Kib(H`RV5yUdB+}UaRY&n76v_3zxw}@%RGjy54#H+^vTp@ITu{wa2#o ztB$FrjFpwuNHh+a*Qjcl0s)`<&xsVeI3hvc{h7 z4*mN>{HNSV@QK#h=?!(hmVhwD2IHLt==B|zoW62&`RTHaFLNF;UXM>{c7lAS1b$)k z!La(XpIsYsf2kiNCfvl_P}S5XQdzImbsZ;o9eR){0Zq0yuvVK&aPm1YnL0`ZwfxE! z^v&CR%!z6uGv1Q~lV0oR4DU6y-#|DD+3!G#cD`+IhvsD1;CeoR#^Q4{kzf5q=S8T+ z<@;;NJQ?XPAyZg^JC_wE=>8Hk$W^6mI`|hX3eP**?VC&>!qbfQc^dcI==O}n?XqZw zy4Pgt`_2tZM1yz=BIs!!fA>6SU3c&Mes}QY?bA6;cv&2YWiRVc=~8wxBN`n^vcD#V>vfC@-xXAPU41@Fu&M^{#mCmv9NR*t_*y zx9=a9WyCbjd~YW-kMp_ua>UYmqM3de`2)F!-(~1Wk5{pJ`L$|r|R<7RO7@iXZfW%CMvAlfm5g1qQF2gYXo8@2hk$34m8Ib{MGXgZ!WZC z-ru+SPIZ;fev{&gsPh(C-_QG^N3f5stu_+WRtWHL)Hc?qe_WTEIASSex82>*+37iz z&SJAO@puD_Y|{gGU<5RxO{cS&BYAZx2{5L!zz=*y!KPQ!*Uxd@X?HMwZI*mA(x9`2iK>-fm-|rw!>k8b4Qcg^>$@trN`Z|&;7il!;W^N?=Mf& zCG>6vo!LgFsd!rpyiygU3~gZ4v6Z67Vzcaj4*;KN22p$R*cNTF@`}!5JwN=Yc-!`K z)X3{f!TpO54Xpd;-c1}O)kGub>c#e;_nU*Df^WK39GFV}!TBbUp^^OOHHgUuXn6QBF~@qA}{$#Cz7XG<-n z=GHrVlky4<_S=T0LJpt%?GVyq+v{>u`r(D5fz$NGlit!%ZU41=JSR>Dx5NH?k>vUh zbHAgBwM4aJJ-4%dgE|5{f$sv352uYke`F=+gk_d}+{`@=hq*D9jJ|)Y&UjvMO^|}W zx!PsDtth6&wVUp|R!F)s6pgkbzs`8wN#1#V>Gs` z@1F0rjOGJ7@$r08M9N6o zI-L*tWm@MzsVTr{!lXNraEL`^CN(-sl(*yfb1^TCN;LPQTZNq_&&sbK1N?{CDARDi zLb}-5LVAPIg)M*CxUtA;(<4Dfm-VRR&CZRYpU64~il})nAkU58SvyQY^?3T%4|S~B z^tW6Ub^@St?nQU5#stBpe8$QySWEcAKC(X?RaIFD#IF{|qX}f-3FyPI1Z#m;sk2O^ zB3^pkL4jmN&b1t&KHp#IX>bH2qSBZQI>ps@rhv}%w=lr@?tmoL^tr5lS=T%@ul8w}jeC!%Yd$>PBXVC0CO>b-J6t3PS+P1F*1wUG@33Zw>W{2jXINA39WA0z2TLljVfsO%Y#C427?5o8Jh*)t#;LIMO5ASCIf_GzEa4}F?% zxw*NydEehS=lsrFTwrbW@%_A_qG^c)Rir#J!X&r#ijE{l zdz4^-|8<~8A&66ASoS8TaTz={-L@~K4n;#Oas$27!xa>;>zv9%EDqdEOqvAo`}eAn z4i9pO@VaZ`e;A$Gx()>Xar5tMF3SS&otZLJ>pJ?n!0vW@!h+*QAeDFsSAjOuOB!YZ z>_=%L629h7b7U;O9+w|iMf%txrfS`EwXTuqlna{pjVk(f&&K>%I&4sikx@=AMVJkL zMqmW@$M78;S@C^vFVEB5*WR7EUSto&;;q@`ab|LivczeuLUSv;)5;;9yhPdW&Dc22 z!%>g;)~4I73`vgDOCeLFa;CrLaK2ISXw>e;4Nj8uU1DG^|GI=6Pg^a@g%U zP%{ZHuLA`iDAR;06@x>NEV3#sd}ScBV{5)+9eAy+0lg+mK*fKvg*{UfZR7TwHK~1d zyu#KY<&7%Nk{!P426*tgzKFnjIDLQYHwV5SO-;5@>&2tXdp_t@VP{{~l*F<_vB*8h zy$>3>8K+&=l{Tu}dVX3R4q~2lEENrJ-yT1qpH0(8@B}MNVx}jyUnU1q=N$v+V5-W5 z?OLa!dB9GXGv<(_Ie{NsFDe_%HS?icV;hSWKN^U~c>TfP71-MLtSHI&;6faEo$ryR zUzP^>{8jAgA%jLLF{%hfEl7`rf}sux50}4AQ(+fjF{!Uhs%yFw(iczC99tKkfca$=)8Z0DhR>*aZ74bA) z58Qh%E>2_S*yl*S$F4-#0PSV{3PE#)OE|Bhs5E7AEI+W=qL*`J&CI$xXJ412%1$a6e)Wp6c(((Co=V z{Z7fK8s>y>x3=t>X+p9(-bwWB!f|>BT2JZ)+JH4@R$z;{ctb=Y@5IuhT&@y}z+pw! zXlS4ntvq3irgzaZO8S#4)wQ2|IPWg@D*9b6>q_$yD^6?9%r{@(hyHh5z}i zxP_eaX4dsZYz-9uObRcn{^QBm~6oB7oBSYM#n>`PPX56M3 z!pi#}W61A{gckEY8@vDjn{+-M{<(rqgAX%aI);%)$O=$%sP*(^;rmvb1i5nB;a*VP zR!gV>+MlsG!QKIzsnhHs|6gG3%@%yIhX*DWS z?<964xIAs-yOmj6%?{(OjQzlqV;g%T-eEANo{qcAq&S$5`X_%CMalr4T1T4{ENQ5~ zRs8tIo_sx-)0jsdS|?L|B{mOE8)#Wh8>irzR^Tu*|A3!d&6xxl$V!V|>I^mCp zAQwn_V3TeJai&b`&1HnMu|gi%JNwBS8A$mC9*kFYor0KKh(wzmw6Cg*b2%r;?td$h zNIontznl4*>5W;ft6;gmC6|r~_}O)b#!msmRm+*-f>1;SmXIQ-V+Fe4rUh#pj=B@pM zrpz%nAg|PoL!V#|ar5nwR-+Rd`&k(yw=`GFrMI{A!0=MP+YNd>a{wFt5+x>%k8X|V z#7x(&WuI(sdDZH|gjmP$%5ea~UXYnpKCXc}pyaq*G}G)ppH?rNyxc6EjjQv9mpjne ztUquVypQ^EKEjEYcJNL2tEBJo=Z_5x%D9@Xd*UK_AvOStV`b+|Q4Q$-;pVDCq#pj{ zy|aE(+%&3DLb<10Oh7Hky2DPb!s88}<~i%s)5Zz`viZpMqzwAiNQ|t*-z`K+Fy@-Q5Q_Eu;=< z3oxuV0>jJ8-#>{aXRd9qFPv0;$lt%cw}1}ZJfNw^yMU*i9VYd)F(1rd$~&z9`d5Lb zG*_$nes&29s*=&xWo0}n<-fl7Cgi)0(sMOct2?6hZ0%^U6f-ac9I$8M?7ZD4@rZ1OG4wLBAh3ydy^H=sinVli?A*qGKwa_#PS#3 z^fZ(vf~4B$fy)qV;BvwHKAVg}O?q!N`78^S+~BuP4Zeh5lAY_Hp&tz|;7muRUYu8UnnEID?m9IL@G$!7^U#xT8A`s|7dGtA^fE{hDx&$=| z<5U?4n5w~M6Ml@9Beudh&H1;6>RLg}?Y!y1f(ifNRCK`7B(%o)0Z%|ai1Gc6DFk?w zkH;y`SY@XykZ)%;R|Dot$wQHVMDTBmUKaIY3$5NC%HWWb!=;Ge&`xQx3@&qH<-B)8 zHW`1(Bwx%7DmEmnk0hA5J#dp&yIgi*OdsNAgT7F|F;L{xFkI z71l_(q#h~?ey1;W_=r9cwXN8kHC$@jJnN_iiP7V8xN|v1mcMm!n@G;HO7`Wd-++tS z6aAM5EC_oCA?gw8-Ld+TpSy00+Oz0jXfv-B%zXOGX`Lw}ymvG6(gETHL zvc_m{@zaNcnUrbx^(3<*f_uvfOx!-IQ}TxD*4dGX>t>A!^L3oY1;E%fD;BjXks&6l{TbADecSlt0SB7O@0=$c%*X;}V9#lE! zYgMvU63AEEJ|as!lHX(xUAJrFvA!!9cx%a5^)0(wJ@sN*}JA31LHnIlRqI^Kk)itrs^$3y8T zLRm*WAX$`{V;KMjAb*E&sqVa&5gr3n1>u$WTyJpIPNKZJq~$U~zyb3kC=Tl*YS{bi z*)o2QuRlyrK)H-Wk8a3E3yk-Dk5QK&ihdG>dkWOS$&^U_Obs#cI{<$G*G>!IsxK~f z0ptRYlYrFv{N`1?v_k*O$4-0ok!EUhHwuC=v$dox;&%-rZhz?lW%_(seLT7-U~TWf zg%uhQrN!9z&?8w=uMdjfX(l3Z<}^62l5czFxIH-Ne%$@A`)}|20`(7|NL6?Sks*(E zg04GK%COFpZp?l2Zpp~{>_==hP$ac{6zy`+-$8Tt!){2mlwUSe9fPm7uPWcHuzbQ~ zaQTPQ4XjvBD;{=vpk4D|RgUE{GW6=>cO(?m9=4xOO^yqC;D8mY+?R{V6Mq1+&>8c1H z<2caHm}YaeucOx*0N=fAh8ol)Nvx+YNUB^*khOp4e%?v#GxCB%8l2h}*6cp#9q^*J1oo%0qiTEJFk<^k`6C@Pfo_>=eTijU zWV(TVU|?XtQJfDzl)K-nhd$0X3B18nIFhnzre`}dEi<8^j`9L8uD zxkdPrcgiGuW3mQI?t{(+RoL`CWWDvrC4d<@m^C~2#K#GlH94CMuaj+>;6M&#t-Y~g zLkFyH6~GA|_QgQOnebI=p7{mkIzt{Rq*wJx2Sa~fx9Ms0AVTy>fH@CZWfq64Oce8X z*VX6iPX#lF*&B2_L(&2(O9E&Nx;Q=%)k63{qq-Q5@BlhPpL25q;aMw@n**sU3;dDL zaWnuj03n)uqN=J2Q0xN^R&y~vKTj_H@djW27EYDfDvUkY;oy2bf42t^8V<>h(&}9uYh&~qvzBb(+ zsq@MIdMFpT`DoYw5XhBOX5GUhA5-dab-dJq)%d|*q=pg`@)E0F<4Df@I+yp#stVDW zIpI4>CVk@Dv*aXfzP92wQ++bJx|fqi#{fS-z`yKWk4~9h`jM<@Hd?+m0rqCl6)=Z% z{^(G`Ol#nX()sEK?k|mNT&xFe&&i|IKXwn5pw^#-aZWN89Vu>`iMCf$Jc`SEzCaOO8_Fv% z3}Y0rAx#UPRyizo$5z9tCWsH~nwojPA z)DmfbYZH%Au6>-wWp5>)p7_e%xvpgt%y${>K@#*NHW~c9_}l4Ned2S>%m_zTMAI8^ zeRq(?>1@ZWF3!he&=AKtu0mMOrNEIdXizyBqOvZ+MVX#%I zEZ|&T{UudAgGMoRKL&z|;a&@SjCmSQ%9PSl=LZR=PN12H<>loWfu)~!z6Y|8@LOq~ z%Vf3lSgFOmngCRKUcJL`KG0zXNH-x*icPxutc8%hNpd>nz%88Q{(&_SfcX4m$JeiJ zxYn!*N7eM9IT4bt@pbzfd1Uy*5ndnao4`Umv?5@1>;P3ktDa|y(Xp_dWOGj%-FKtd zKVWDwx!U=IjnT8{Sa@v3L6 z4Sr=d;C56-F|(g}O&|cD$**DGU8NuZB$i4Za|MF}sFS2B+d!Nz;o(&a_Z(~a?+@#b zH?v60-Cvf&fhJX7f@pE7(mw~Vk9Z^xru;_cs<^t@JV`WW2uBBOTaFT+TER_;7bI03 zUF}`UEFq?pR$y zww>{nd@aus8@*3nKI$KU0rqT}(nCocjj~~EXec7gJ6`29Mv;zBn;Kl*8ED}UF~qD4?siwWB$>P;ce=5-V)k8!LKLQ4~QDs`~v5DiHUN3mx8kl*H`aq^^gQ+5-LQ2uNU3_gEqGsqs;i24u{y`CnfNwQEbM5m-J5n% z7@&V9yq9p}=Gg@WrxgrpT=B3Jf3BpnH5JzCaasvSB69a7en)vH<1$3gww!T*KWVn2 z#ODqOUg!FI?sBW?s~rkO$98-d2I&*1V)F(Z)sa>QLvKla4%pbjtL_osIm#EsvyEFo zCK|k@k_DmhSeu?JND3k2Gs>CxL7)d@ zaVr}!Kw~i9^#<&J=n-ELBLNg^u0kE z?(!af-dC3m0n;u=LpHw5F2+su7f~PzyUk6@J1Yt8p*o+37F)39JM?co@w!H}3z}%p zg9U>kI6z}MW=h!{lg0vR-4pfH z{J6+Kl-91}AbV5gbHoAGP3%OuR3V$>*QX(?gSik|O9*=f^(`=-FPmgNn>Ki4GN`v9 z@psEYCOgbP-WYy9-HQ3ynT@8j+8pnA$&#wN?N+WOQRwgf^6I__zKM>Qw3%k z{r8rdXld&&)@M}rna4X+YZy-BEuonr`vZB8a^uYd>Hy;bPL(Qv{A2xGDF4%HC*S!< zg&Du~A|n7tosAN52DXAZ_r}qOwZ56rxz(hJc2V_vPTyiZtw%`qb;rG$r(FOk2dwmW z4TkB;-+(MWxVJDGEllur*LtO58yM@-n>3VjjSi9x*)O*pnwXd{s;~i+WTPg(-LW#O zST8oj#*9Y`t2(Z^ynwVf&f1C~Ok@^9N_~4j$!Ux9SoO4@zn63YfUxR93*Bw!0OHK;DeH8{disQ$Bks>}wiNHIJq|mHpKZwrUfZ_tv*Yt^;XJag3KdwydLqYb zgDxZay7h1o=K4bQ9MW)SC6I(~>Ot$31A3ZPf`8j1b7Q&t^efsI_f=Q+L<>kT?R*Cf z#x})qao;_=t3y4|eJT|tviRCt;Db!&m073t>W&90&Q>tiH$#zV< zqJ8JlTKk=i^7sFi+drGpAT=GZ5TmlNAJr-%?`&3KJGfKCj;@#+)SIferE*$3f0zhrUd(wH zC+MUYkU!Vf6`Gs2J^=)4@k;=@m<7^z6=r)H_H$Jx6B#}L8}_7 zZK=64tBn4`E?klM&RQ7B+emeJQHdJ^{;^!9&;Z+9dq?#`1%m-`D&`}gbCk2+?EWn@WCcL2k`6BTtxPA=>y+KZxh%Em;8;} zicJqiV9qByZ_Qfnu1+iLCcp#p%dhq)Xs}KwGAI;qz)uR8z99&Y3CoDpY-g)n*iB|G zjlEn4RCWq^!oZy9v2GMh^vDbJ6$)*-C8C?62#gmg-qZD71gWDz{t+)PSyV;3?|G{T zX+%786$5JDlX(=46AVky6gWjvJDrrZD^TI&K02ot;7s}jmeiV9rWFTn22eX`bG@XfP-Mcp{;tSaS#`vkUcf*N2+b@l@Zi_!SBvE{ldaUL<# zGO=%;l&s1XUIBB!W%@PBuss5UmV$1!u(D#B+!>Y9-N$}eAj&lX3FtQTPmXu(N&xEPsJZt^)wDpyez9o-;5YKv z+niIFdeIsQ1j2Hvw@gNP)Lmya+RrvNz@PJ_M8jpOG)^#CA)ppDf4ITF?2NB`(bF!R ztWZ2vJ13O)mJ29RfUGPBVBu>mz}}B5z1GTdSn1F38V{J%58z6=l&R$nxUhg}j#*9L zA-(_0t;PFdmM_oguW|grMa@>p-C50c6{Za!yC<^`H2(N0?i zF`o!v2$KiV^U6%iZ$qb6U=W$+5d>+bsa_X#&yzMv&78Z zH<66O-`ehq6V;p^%R=7lTq!c=P+#r5yxA$|c6~HkOBJS+E6TBQf{aII^%gmUn^Fb2 zrcozolf;3^h4+Fwa`rziTCV|M$eBF!NKbY13#(}ZqKR>^?%J?XP1%?fKXIvwrI!=R zIh=FkXI)eiQuw>A^~KVxgWBYKmx>a8f3_o%!uwpsv9 z?2@RNavwGI&I`U12hfe@0_vTd!1X@=P8sW+wWO)*`uD^A-+hn&##)thHox`M%YV2I@Rck7j{}v8 z|8U@UF-Jz%e>iabe>gB41iLhL>eo9_$XMh-Gm5r=YB=sq`t`FZ8Q!J&EYtn{Uw$J< zb%vX0{yOy@M+3Q%zrR+nH@wj+p1PT?(qeP8NJ-!w&L?u|ZhCR-wR*qyFOs!^97EkW zHx+KfuBUvSrCRoAxemig&jy0}z}0pge}(g^TN@3>6+Vr(MC;xOk~sRWvhbhKKgp(( z*%h>Y-HcnfD_*$vY%gb;=e1)__D6^I&*ED?v82LlwT}JeDm-DFf=N(sB2c1%Qc-Zb z15E-T1<-#_^ITVSUkE>!n%7oC`p-A>YwMdoLm#yuNli8W``ZQuPwpqn->0MlIK8jW zu*9s%bM;4^$MU@j2z!;r*?+m~g~)o;b=Jo>&u$4`=j-1ONxt%zAhVRV|B(f_Y@Gpg z4-oGo2(V0WH8mBCE+uzGi--;<@i6i#%-Mv0z-t3m^tfHC!bp2~ll(PqESMoV|MTFQE}$nq2UPTcj8$Q~+U!KHeI}1qS2@;C;f2ot1$jvno8`aA$Qe zR-IUiwDuK>-^xk6-5x0?-=kMKC z^xYmRR;3O9PWIH;kM#0zTA!C!)yhrGrN$b|juRU;jI50_c(<(eeD|FU>*zX87Q z=Tu)nmIuVkG!+M$N$)HHBKRb38~7a?G8^K6aR7VuR8m>=OF3<{sg#wG`WjvG6Yr9z5@>VMzIO@Zf{TuLaP9NxSg|%>JV1IZidJY#(150@E!fM-$d-E zpi|C~SC$d1l34eGc&Elx2uCkO&cEcjdZDpQ*S@0vIEP*Ji*s^3q91JQ#y<)EDhKyTu#c_3WB;R_2K4 zx&%+um#htr-KchTIM`DlMM1T(mG$YZ(_QB!wycHbGwK8)Z>yFe?$!jx_j>?19mvn^eE zF3Xf7h&9E&hjXAz{6*~E$TEA1_cx)_h6%1GK!sJ;x^^C#lV0~9zmSchQMPXfQ0ub8 z#v&|>ePHVkXJhy+zVX?bTj$z6Vmw`c6F;*z^mTf-dH!uO25<#T+^jI=eZcv7vcr;l zZ`S5$HBP++>e?WGe~3-rKCS^&Uq0yJ5hq0>6-XJC5?Hf0FB8A-7)u9`qFbl+24&M9 z>760a0)DBFVD76rdq5J878#2GHaefJpTM{;0?rMuCpLsQ0WfmqzbcI<;@F~r5J_#BSE^VWo4M6=b66b5kb|1Cl%4T z4V=GOmZ;ovvM+CX-jjQgqhDw8W3J;=R9{UA>L+0y0z`rj2mAUNb$_{`AcS z)YdyaRMUl9oTT%2>STeqwHq%NrcL(T%FnWX)x_N~lZvZfpiu03l@+KaAEJlm(M=7W z`!f2KVi<4auB+=>Dd58Pn=JpU4|~LZMw~TCI+)8P=iyNu9plM8z5~ciGX-9iUYC>NMMFM9cQr<(wSDhIDj*43A(C4VZrm4A)%udDtC#IhJ^ zQn)>GCE9dG@P_*-s4sn*57DPvT(|sM3&L}+OWXC#yauT4Q5pSsH%41~MD}M(NZGsn z$2u5K(8|t|l=meK z!svqfh<)O&9W z|5jA^Urd^7Tx+I<8FNX{G;8_pq#sj;Y_e9zz*9Qe5ifx{JHxiKBsjTO=G>z|LM`N9 zARPoGYqv|JsXDa8u+w%_NHdxZoF#mw(78tZ;ldRD@V3&GJ>vIQDudXUt}oeSTk8sy zrmy^^1O+uJ0mE;AUM}pf4HvL;fmD)ixG!`9)8>syR`VqZ^S3@UNokkc%;j$R?R6Y* zLOqcY4+<>P>nP3_ud&>%*LFqu(c6o#wZ$m^yRo-+(!XmyVEpN6ecD+x=#1I-T+4$j zkIDII5b>#;%YGab6R=(f3Q=$xuXEqX(KK6;cwM8q%f{D#=h7&R{_rrQyhCU3yQ8P zb>yDtKRjCDw?6Fa&T1WJ@>AVsn$UelP}f~bEI)NfVqAq9DTeB6qJ8LXpo*U6CZ#4$ z2lJdeq5qk!Qgi(P-Bp-U?^={cc~>oTl~3!Jo`-XGxhA{Q>qV>=1SM4P#VLi4nehi^wg^i3>@kZ3iU~LG@6lI$HkCv}V}8bYh zSk!JMfj4K)r?N3R&ZBjcYa+Tj`u-%!#Jy6eB-K6J*ZlFP4ij+{;TjHlA=91D;G4c^ zpxA?Jt~zgc#``@?uasxr;Y$iqSGBy`1zPaNjBEA8Nn`^%$bUDZQoob$tCj%7Ao?L6 zu}_cwD9WJOC~TVB^$lp;=gvz17nWM12n);;^isj-2cEdMQ$4Z4B_@+K!zd}qDN}qN zEe0VKh1y)5E1KkJTy60V7_DEH;G$ZRtZG#H6URl@FG8?km0~gE?jW0pTK(Nmf5|a1 zfI0TWAATAhUY^?8JlrKo;mdu7URscfQf1t}Z6^D9Hm;qR59~fW-vD_8c#t{t{f&iE zKCz6NdwN(|dcsrU8djtxkD_3IfwwL!?UFF`=Eaq`PMb-urJdNw2B7~@r5ly1TmBLpLU=`QIw)SQZ-#8Q=(=hRxA#s;)@^A~sG;o8jK$>!VK!hC%7Qf0gUm1Nz6wz|sF0m!*7@tqu$ z!zn2x)jvr`NT~V~3X{PB*4>0}gcLfR=sJYGz14Nn^4&#abVSo+*8?%lK{+pyTa9Aq z7mWV#tdc(lj@@wOOx-EM*U;kMk?8w^xX9G9_gWe{X;z1rlcuV6`u9_An{#OTX4IA5 zwEV33Q}>?8Z%ZFTXHMw^^Qvh)aIkQ^aA20mpyM?6raMGNjc11z)SZ~UDbg~Gi0dyOBY(kOr_E^om_WS34am7s~ zVF5)N4@h@Qcc(N+gCH&4-QC?K-3`*+N;e0jQyS^+*x~cry7t=rv-@xP#lW07GtXPk zd&e_#l?Fzs+bfTmD|If-3*R)|oIAcz*c0J1+pkfCUxWNJNoA=_##rlpE@;+6(tgI7 z$x17K3Vf79E9uVclrBeBM$r4ff2m=0d3Azu?F5@xR?>2PTj)PaO%aSJ2xd$1;+~^2 z%Ozi6s=Si=NSJ#e2;)D3w*8bW_X|as_APD81sCE-kN2Hu==CDpPV^3=CTydu0tKGx zxV;k}F)B;oTsH4c>+p(`oE4^J|$E`>9*r9EAVHSGfNSq?(p%(7j8tb33ION zm;F*l^pw8K$W?ZFMWgn>_7L)KNj>d!nL4}pH<@_x^DF=o;sJ5EN+Ka;ZY()aFYhPw`En=d{jV& z{F%-GS-Y7>Z)FFbHWpzJhW69jyB3=>wnB{{ORT1+SXz`>8KeYC61T~Yt47(@7(c8! zZxpXt4V%YI*aW)oUuDAed{nip=^%d*fG8WsHCc5nwl@41e;b3kI5B3y zQsL?}$_8?JV8@U5)NW^CVL=ZMh#pM#3Dt@?n%oL-E#M&S2AikjlWXc1J*c;+2DA%W z-Xb>CY@wHkrEx*(BkZNe8zy(El)IeyP-vO`IJpSoKDWoes`ol*-E*Vd3!X$6`D`G- znPo{Z^x~tOu>0%OM;vgt)%_NQljDJn<(}B#-c0sTp3K!{%h~>dm9yzL>*A%lnQKPl zqjao~{cf1>EG zFaj>?=0VAc=^JvFNfvyr8}Lml)z|~_S5D4dSEgur8sZNpV46z&8WKoZuCXgjE}h%X zjHAeeu8M~>e3$-gk$L6-@E$Vpa|=Nba0l;;!1>@$(aJKJaO(LcB+0Z-qPy@sPp%K< z4OEv`#dHsw43;c+8!vNXh#lov5X>nopr~-OQBcR0*L6`S8hx5378|kZ?a}w2m{+Hw z>=m0|>iHrN$zP;y=8p!@AQOoC&5mWnB>M_!n8d%7mVE8VGBVl7k_M@){)o?VH`H;w zFUVH>(7#Ak;Z~4#oM&E!HI(8o%R9cSLz-harVwBcsUjeRT@tk3tcBGz2*Gdn`K|>^ zxn*CSz3t&Zxvl$T`eyw5X#O!bdk3#x%#D@%n12EUp#abn#Sjli7#>~+y%%T7GY_=~ zcA2du7u)4++r^Jv$auU3ljQB(%+jN;FL|Ro+waDYyv&VIQgKq2+hb8?N1}xzUP*2= z$yOiT{Rx%50-%!acF5s54-HZT&-iO&SGf!nf305^kMS9NcJ6k{fJW%L`W>M7Ou1D zjibJ5tNZXplc0R1-E`@aV1@g7pIR%XPxcU}(|>=q)}o<0Hw}v#$~)>BiA@p8b$BwQ z!^Fdn=jrGJeJq9NeFMAFZfmA|Qa!@R;vnIXUwn7u*W$21j}_$KJ)QEor{_0<5@d5K zc9HA0nCS@mAo-4YQ3|=B2?_@K5jOl5RHNq8zQxIaIw0`&&W&Pfx3L)~&M#}iafamI zZ<3<(vmRV1ISOcIepW{ZwCG0*9op%?t~WrAGa}*}SU>$67Mo=>aT|RWC(K) zjX~1|LO@c;`UB%#v8Z*~KIFX}Bda?u{2IrWFBP{(tlGOEEq1WzJav|;-{-pD44Lap z^<&WE++7kh{`AQ<(w>`gy5INFX}RKB&JvDzY@I8R8>NO4@ctdPvrCH;WZq1-@u+EY zn3XqkPKIlqeXSp=nmeVkL?`%~mTZzyd~lQ3XBU+);OmWFL;MXp{VDi+GN&AfFm^Dr z`LUSeP=~_s#bNWHsC;NcTvb?)FRxdDxUM)-|6PPh5ox5*z)RiQuV#DiybrTcJtqcU zoqSq#F95UDTBY7<=&{?;qLRPKb+B5@wD*%h$y{U<7iE%Wvi}&{c&GR_V$H&&O6S~z z(kX48HRC|Pcq4kAJe8*QYPbxuzh63p7_*)a7sT%o4*n})fVC`*A&9#!P$PxG*O zBGpK)#LzP>C=x}}xSMVB)kid5FH*AeOezQKUQR2yz($^S#-Ye`k7x;)nHIG0H-e;) zq+jD17z*0+4kQ$+YtrRZ2~62eCX$LSVG8RTuhir{`bm!0onfS&7@5U_foNq;gBfebdVSpT!;cl zyYK4-RYWLc2&U2ym`<9glvaHV5Q(a+Blyp#<;)d@cE%~FJt7D2f-I(GoFJ!|j76kq z0v(s2^RQvdB(z_XC>P-`#RP8T1?D5U`WP0W_$ELYk^T`i`^_$^5DJ4}Sg-W%7_)J~YYc*Ki3o zr)C7|f{07}zAq4vU8Nd8sXawhqdZ7r{aHRFtLjfyLne;z7r-keFwIWfTIGil2zgZ?dL(1mWn|66K{;a~)(QN$YhFWd>C)#QO5 zRu)|7pX|pXDa1cNlk-F|Ol3X<@TV;?_t#<2_K%e!P=7Kp(Ey`E2016!aFi7;pZEuX zGy?B(6#CbaEt@jWaQf17=;i9qKWX?wc^kg?Yr&NGXpbI05urawxT3eNG?qyXWmy2B z2j=-JG3SkvlhW7Y{kL-l%OD+gpl~L`P=KM*I3Bbyatm}Tu$^PS53C>tx zyAQ}Pxg1#Mw3HSC0ceLP`bk#ixgb(++9Ac3N4!dkliE*Xe_TTHsN6 z$WhQ=2bgUVF<`AL#^Q6o1|Y`x+H9Te(R4sY5N+#No<~>S@#u86J*M7dyXgT`O+$jJGLZx391#rAR}Ro5H- zYoXx?KmwS4TaM_FRc)nHOByJ?GH&bx-sbHi%cS-tkGJ^{ZD-#Ok-G3z8=BC#(aYLz zey!rg6XO6(Pg!xXju!<`5(C&xbCp_t8>ma(bQStDkp@o&;OVi?dS1L%1>0GR=>Ub%J$pWan+Og;p!PLGcn0iHV$vDA6w zOf9FcSHV|WySx`wiG3f+Y9M$$+`7(|N;-q8rw10jmoK`12IWB8mlg){WWSvQijoKd z=)OJ#Hvu4aoXGz$w_>y2D?!AK#i;9FeR;f<%4^lM*$cF0xki)i&FN;&9naOYx)nAn zRZk34@wRHAEJ5sRZi18JC+_yGnA-!ZalNP5yMl{rUt2=|ncXk)dq=o6tL-*81YhT_ z_s`2b&=2q%Zof5q^ab%<-6#g3r*pM7t{&$Azh!dOMoYxYM%o`PHZ?b^U1kCONSci7 zB~|>A(YWPwRPzzRy|DJ~$PXPZbm{_tpjIJg z@`X3#r=^>Fz$6s#IHm8R`0E1d1vYkxdY!S2=k}E8WbiS2G`R#q3f@1C{9gU1#|MBk z{#30$05HKb0Q(C81zm~CW?v2XJ2uGyHT-tChrP^&huzG9{&tjOrmJ)+l?%^;6+Ww; zSQZ4{HNL$M;tt-OQ=P{Z-JG}9wNB|J)I604o8!U!v(6+XB_+fci0_=x?GIeO`35Ve zt0gCy6qaA#UlX)GJ>FTh)qT7=tdRT&uz-NF>0+39tg@7ZOy*iv2Y1DOccANvqN zH>T~;3U1~~wWo!cBT6Q6`;k>1FIlTH;ARI<$5aZjrN`Y#iq~{W)#i7@3Ea25HztlO z=5E_d6#Nf|sF})0`1)yfM+8qRct-b+5wGw>y*P|V3$z~8`7dYn%zH4Wrlx?~(gp@{ z0u+&)&Z5WR1;-IbO$VZb#Fc8N+hi-EW-Y#b7Qm{IBks&=nd7PVzQzFzp7)?>X~pwG zFy@eNtKlURY?CQ`a01J*J%W^CAr>;eO%Yoa_Kne4N{pcKBWAbPHSHz zaz}&w9@m5|r7~%g-NK<=S_TPPip|UrtJENt-tJb)M&fns2~}7)jk^g#BT2@g+N~H9 z;^gvT85z0_-?>*@_W|;~f+_r*=6Z12!a+Dq=qAp@@vmIy;Eaj?c?k)^(FC9pElHdVG{rPCKtQM=2vg=T=K-xrAoVBJ6@*Bwkv zO_SUKhw9+y7%-cbx1Lr%XNHzbw<6yy8kQV;&=P4ioBey5wlmzC9S?4w)i+m*c7xx0 zX3Mp?96o<9URswS`1EZwU;p!72OnPt+1=3S>)jE5x!w+7o|>nWVG!;)odk&F5}!~NYV`=>m_Ae95o$639owwtX~ z^NU&ADmw#HP*Jo~rbtVZN=4sI<>u9{s|g_40l9%!51Dh<0PANWJNB;HrTZ$MW9MVF zAL5+LP6LOn^F0k#Pq7cb58H`wb*xdbZaRY4xNoRPB$5vUL#w}3O{t{;Z|jhGdys3U za;X@m3nWL_CQM=DqII!G>hN&=l=TKGe(&1#I5jnIE0;p0xVHEs$|OBH103ZV_e>^D zo0_dGo^7NItsT#k`_;?v5En&E_+6n}v*pMcF{ESf$ZGh$v}g^!6so96-P@R`rxXQS z`)m;#v#w9VKL$sYMS7z9M6#`~c+k75CUC3j=Soh5-=R7?y!uLItn@F_E5LAa0Hg%a zH4f+N_JV%`Hpo*_Lts(}!!SeCoA=J(-2Hz2iSaDq2gN1+e3QN5RD|8GGcuQ@fY)Sm zI?o2fqIWs>WaX8=%YMaJ4a9?71-FVtE2DLIy4%BtE^vp@5 zAFf<>Cn*!PZc70#>~J#kc0sD8>&27`pxhn^HQH9ua_Ip&2{{>k>v3n>)pDu3hLY3G zT5-DG9(#N5WA)jm)58O=9wbT~iq2`$R^@f=7Gprxd(c;>Hxu&X_3j>WI*;Ri_hq1i zYz9x2>sh><3&JDfPEZef7Pr*X!yY_W_)Vqh=yNd~wm$Y1_qd0$GEdQDHGdqiL!0we zQ@!&2x!s4dJKQG}`&B^8T?WZ|3=p}paA0pso=^oLPAO87n?x!e33!28)BdDAJUqxH z8s4_u7qI)*5M^jw@k5F<4ieM}iGow^`!JLz8$U28gwX63xP_k5Rr|Q7>w?#=EoA7b2`tej08Eb-Oe$VZD|!n;tE{ zYba(-0wpbSOG-=!V#xq_ZV6zv0Vm|#3b2EzL4~`^(*jDfor1v7=fAql4)n%?x(X3m zGfdXCS3lj|EjV4_0a;i@JoLHFvL#!jAH|uuz{-!aFIWVcs2sOr_e*Df+?0DPv$qJ? zEXIJWcM6m%8iCDW{qy!>FCic^^YOe7Fsf0jl&3LoKa`d?pEmE6yZy>f)bhBPl1b;P z+6G*)Teg7oderV=<%Sf<8f`b=pX_b-UN{nuCCf?f&hYd+N`^!ot3`NT#2UQDam2Nn zwaL-hJ_$@;J1R#tKZzpXb-3;>ZbRJ5;PTKtSbR?lxQXX?jSQ#pm?As4kFLy{fF!RT znC`b{ybpW4{MOy7?}izg$Eu%8RJGx6uY^b5j+2qK`;|>XvmEiwct+vf3nL(gq~hZ9 ze-M>7eHRp>pBJrQq9@utp3&IUeFH~Wp=@=lcBoA{hq*;u&_q7 zDp6c6HVe{CkXVH{bcU8XQtij!*m%HRa42#*+I(U~Q*?cnNuHG+MMlDCHug~+6~^pf zyn_d!=w&3722OUb=igU!U?P6FyV7p3#N&QWG8=8yw}8~pZfjTw9T;P(m7jfVQGvD& z&vxqWE5V{qTfXyrh%B}XYVh=$5|hI5f^t1LvU)0VXaVx>sD};E9Y>lK)NOq^JCeGq z%g-IQo9e>X_Hxtj>#bJ!fVzEvOeJCh$ep^qA)pl8z!)0GKLB;{^V;6=cu{eC<#jc} zzS6ptV)iU!r2{?NP1t3g#k@%9f9??WkBT*?_K&Lc7G|}{2`=|Bk~TJa4+|ZqEA347 zfgvuW^*B}S_w0Y%=llLN=$B5w<+65N3`HS(Wd3QU_;KTlM4M+JE>Ayn?Y{O|2L<-y zVe85estb@k{z_Ef&E{yJ*PJ&21GndalmdWCrbHZFqhSunPN(XdJ%F!R^f@utK zU!4R48AarIy>OlagZ9%dgE<+c5~Tr;F4-&4sHyt}ysso)3twS)SS(k(&sZYX?j@vF zd^LF?<9PR5`4>b5_2qfkqJ;E3a=u$xw&L(}(uLji#0kVD5`*F#ATqfqULv7R5@;iH zT`~J1n5L#Av>WOT#+(716Mrf}b%N%vmkPbcd{i7Z`L6=%a8sD`)=e&$#EDe>7}86` zDOvpu1h(a16N|!+^&?dC1X5nyn7Q*U*fX=zCJ@QeiG`h zJDVf~EGGTi^IxxD0-C>HD;-aOx%%>Gg`O-P(5j7O@@qH28bhgZo8ogeSxnvuS$SAZ znNo(}fZ>(*V}o!5alm^>?6_QW$KwzO{Vfm=VL_gDbEt_!>t9qVb~v9B_ni$F$*PWL z4(QyPwQt$8oDLTUltaoEV7>!$*}l$o5C@O|E3h&dO*0()9||Cz_$wMur7{r!D0l%4DWcGqLIoxuTdtMY?(tNq;jM~^d) zHTCUNdTyjl9(gac(gQM zogs#`TMWtUPDO%OQTnj2Tu0yeF0l0i{m$e97cOH^J61?f81~CxLRB#{@AtTLMozM%!WS;9GNTDYe{rJu ziSGJ|wuq#RND>l8BzB2v^c#aym!BMo9!;RDk7JJ-v9$CDDe9T(H!-zRB`LwyEPa(`R_?%vY>k_tob-T^q(S z_^KuG{hn(tImS#ZdmNq`ymq--;gCt=bKN~J4~$3$HqFi(laz)9xI75hlOBdk*-#gV zuVvWwje>ZJtuQ+tVYqd~roJ5xP7+_3p5ohA^oiuE-ouIE9dY~+a?CU{Gt2joD6WLA zeaJT?H}M!xoVEGIK32BZ({VkFL@AFhQ`;wN@ohWM}2q|80sKU7lK*- zxUcAxU8!6ZZcKRAHfzlEdz@`J<4x6#E!~kpereFBVsReN-84V?!Vl$WBZw?v`)VVx zLa{fyRcW>e#KY-6UDo_Tsb6?G=16@t1!u?W-cAbqsCi#HDkYH~lFkoLQvN2Mv&6+b z`*sAu*mxm66lOoP#T6^}u(%3rVbxz73nZDL{@`FN_b>C$6 ze*RY=Erkq$5z2GlYMr|~NOlN9%3NDfSMkb?yGf0#?67J-t7od~cV^X7LT--qx=Qwf zYE~H%-Q#1Xs(_Go1Kan@Y>ZjTLD8SXj=HDRknZ0c-7A;jMmcxVi5BNGbggG)h`3>* zy$RtjkS`&LG|2v-FzG9dQi~+>{Sr-YJ1-5!?qte*D4=xFW;hMR)Iia~kJ~rFWjAXE zS`9f2?*zfMDd8`wi6_$c#YM&B)yAQQldij6=Cv-}u|E%>|A+ zQM5%-`cOYiiiI~|pI}q36h-Ko?t2efbprXvKP8c&IAlK>`Q8OO6Ce&!F zczn4H=bvtCw>mw&xb)rRGm3059^GO$tD6&L#!omZSQC@C62z;@<*qapwS>wiGCEv5 zC0)`V2vW@7W~Xo`DZ+C#!xw}!iP#RBqe9RwAn8lyHDG(60(rKBQlV;=FqSL$ulOa& z+2h^O(Q=#mqp$zjhR}BaSc=eQzhupV65F*B_^<|j9`a*Leq|ET*s<^Qu;mDl0EIu4 zm6j?_1O@_K;NoCG#WBB&|2wE_`mz(A-u-$tXra!`3Fr;l_TwVRyyxH^3~d@Rr)8Jz zk17FNtwM))I4-#AbC0t*W1NbOsNvgwNpl@IBG2W>L! z`y4K}!fnya%$q;6?ZzOUi+gb|St~u>`6-UC?BsorwJPMBfo54h`Eu_>;!M#zUR((* zS@lWlLK1cXe6K?7aBho!c|wvhbqSbqvV=mEeNQB2Ex`BJ>8YZzmk3ph7VicCDw$+o zycu@N*G!DeC={;fM9ji)Eu_BUhv3^T8=A7BewvlcS(8IF>T`t~ab~p9jMy?)y;$sk zj)>vaui-Ejya^l_ogG}^i}CnobjoOXlk}tJQbCwT9Bpv1Jige+Fl!p{1{^2Z@JuSX zD9mPQv0IL@6%YeEl?;QZLO4b}l$eh0MLksvl2z8bT~ixdon@?gbk?s688uMRx~p25 z&*D3K1{dqIVxyHw>sD>rExu66YXl9%l$cSAQ5?Iox#yE7S4kWF7AM!b!k`scrEA1 z1-N(ky?!RDINs87(|N4T;N3Yt@jLTH;&MJCYc6|&oX*FD>hIJK{d$^y`oddwJY2RM zwci=>-zDESAAX>3vtJFs-~&ua>`V4P9A*OAduUv)E<3pDchoLbB5FWdrIusM-H|ie z?G~5A?}Mh>7Aqej0@I-ytTMPAz`Rn+fbQWW8<&UYY!^H!l&rQf?rq4kjDol`{C3{M z5Zos_hHC2TJkOo!_=X1K4irO@so^0T=o)<iXe8W7Oi9Jz7(_0UkfHn1Yc#kSLR@($NjIv=4Btp)x8N%& zsAe^xp#<^4>3Q^K@Tk>-^$lJ+j*1vUycbg+7~c(n9%ix8HKNL|lo;q7A9;U6tky^F zLuV(@^Cz3a!USZj$!Ohk9)>`S*pRfLxcHgsX=F3FnjEg`uVv zPGBHl9Zu#I&~iWNImemiTW))(usz^oJ~caHBX>~=2I#TSMepg?==Z8o)VW@^Qpk*s zd=T?vk&Ld!&sd!y*10JC}o#D*0DFO4SA4%a>*VGsiD-6wX10US`r3p;l zC4NMkw6L91Tc8)8sP_=Ae~8cW8pMCOMH1AY+7K*Y2N#092VynG?FxS>9!#FeL=^Z{ zyn&e=VjRwnw<)OAyM*O zuZFiDqlaVi(d4LSV2HC~E2qPIdYcF3qwu}sc!SfzROQ3v-0TrR;Y9{4v{k=k$QIKw zP!}q5P0FZbpLV!7|6B{i0gYyZ$)_L#;{>z?R zop2>sESG9jEz_?VsGL%Q_%Ig&KHGwA&<`=Oajb@4-&XB&ASlq(OrY$2w4NYy<*e$I zv5>4)xOk^Lf?}diJr%BR$(l8b@5&WPkq@)|CMWL>C-n}rww~6{EsODno~&~f&gdB>vSVIjs1hdZ5fn`m$&mX#s$b1T#8v=; z%YPp_v>P`UfD_wOt1`bSOD>7RD5WmFC!OmS^Sqp!ajMB!!KFq_SHn8v%^_Y*7|5M;CiZ^Bv8f|3ay5X1?)Jgg)X^5$+RyYbrm` zmNA$jPgycTVh9@g){*r>B=Bfd((?n?54ncrKb!u|3lCm7(C1v=&=-h1y5IkJfOlj$ z2ciNUfSTO+@4r)_~UfGfA^5NzivjWbkz56UF3zF;AEK-q((@%dqx2s&+HVoOtw;a}g;1ex{gy{c9C>EW&DJ|+j z$=$Hbc_cOGDv`W667z7qk;{^Llhdd=yFL{pVN zzN1-A(+Dr$?t2bv9JIYf#S!adT{tqEJzG}K-Iut6YnWamFZ2!8nna2IsUd~0c|O}{ zW+_}FN%B8m9gR=)Ls;o-gW;VlQdkHnY?!WW-ld}jqS`Z5QB%`Sm$DR^T1YDLYbsm$ zNSJa`K1sPR@Z>R)Z%Kbg!{v)oY2TMdyz-)MT574my@QMUpO8q~ih(Ap4ca}F0n4tEJ~oRD?n=7>#u#igt8Y z-r&Xwb|k4IQ63+at|XmpAjDa9QfiOtFSoNG(<_~`Y9@kW{rNZ% zwjTl?Ebq9Qgc>^}rnniSCdGexqOFMIa57P5BEL9r{N|Oh!M1|PtN*}B{T>%^RszgL zff->cFeE3jvCcI%dR&Gu@U-3&rf`QT#4}X##j)9($_d?&j0Fx5)`ri)KItTaUW;!Z zjwh{}(Hapoej#|xUeZK)lhiszu`oW_4dq6?i?XjCo&1x#q#g>7TOv4EYTsfl)-%~0! z>?))hwf(!q!cV)g%2f0LB{#Dmg|&e~dYRx_)6fW39C?8Ph4i;=p43?sP#9tcVG=iw zeJ?w~#Y#kr7_;I-5o&d7iBmA^m(#0kqw}YIHB=(sGNO||d=;T9F4JZHNUtm%Q{Tz+ zSvNOISNL14IGSVu8scZ|3n^!1t{_t$&|m-)J+j>2CXzkURDRcnNvBxnfFyd*E%95T z;$>H9vT1oZ)XYUm{X=V740bThSIHL~Bm-p-2e@MNG}+ABA2;eu+IBQ5)L*2%WGiW} z5^M?G735Zo`@G_d3)7a1%}p^hio#Y!6X%1@6z!KOFYPaz0qby8oI5|PoU1C4Y6F$x zlxfz{hvZ2d7}y=*FqPt+Gbx9JIv`GzADWo%3JT?z4~zd0u2SaTuJ)@bjw6&=LtuzZ zR6polCzj@wIQ5h})aw6;Bw>yxC>)56N{u$wLcTj?#bBZ_jy|{8@2;8PR9bIS-h@<7 zt}aLJ9;Qd>J!l~XVz5H${<_XI-^y;A+8=Htx?YGFWE2VMZi~IB=~@IR3tkvua`6G6=K{FM6;QfQFJgEtK)V&i3_tTPt(6#5^N@i z6DG{c7L2DD$Dm7e7SDw*DBCqoI_~{4j!Gfqu)I_}fr@p!SJJ4sV6i`kgeG@~lrm@t zAx6--xKaKkBg|i@JIkOp+bj&@g&>9CTHM|FfPT2UOK=MgMGLgW-642skl^l6ptwtL zZHrs+0;SY8Y}ajeR%Uj8W`=q4a?bnMb?$R#^WkuPvqYWaS*o(c%wT7e-9={4f^EH^ zA@&a!ITC@yP=C2iNhiesQ+ge?tlAeoWG$&g73usm^{Jtl4no~`=+dx6vsb!9^2*d> zJ^SN0K7q(QD#mGZSzzl})?j>HQ$rnGhGbG2R%tISvEqp15?yQ46cvI6Mmxs5XkgiJ zelp!AL70GWJwt~b&Fsf)5`>TV(;~EjSooqMw^ew1I$ur_Km+6`ZN(L}hjZv}(uJd= zv`DK~%C4h=Yefzh)9YhmXOJ*v2+fNlDz4SBeUt)1@p?>;Nx+CWr11gJcH@p7k*Xoo zc8FHc&mvH>JKG-wW$^Y8*Dd^Y^Fl?RF=da}g2<$S>=$=P9`-5DsH*{HOk?RH;Z2#p zA|Z!T3a!`;QHnnTA}^$R1?~f}Zn#F!e<(n5XNKA(Z6pGPr3rIL9A9Uysb1lpq?OVK z4r6qaG%~ISXMC!GtOnbU{J^rJ77O}8*oU@Ft&CGNUU7JEEi8<(f}vM5xW)b+eG!qt z&;gdf{ztkG`?NfPDF_}m5G*>Pcl8OWm{Fq!w^^%~jjRQS!R?4=rtExPv6sPECL~`V zcB3WXB5K>nL^3M0^fGe?PNp3Sdt&Euq^5bkV*}2&#$Q>Xs3u~YxiUfSkZVmW-K&YQ z;-bba&1?3SQILqQpE#?vNMI0}-0Lg%TU0|&3E8E_Zi}EXz&=uPj!s3ANwIB>72utC zdrmt)LKatG4mGRKP|}?P&W$y5$}w`KRWQ?2C0J#SDb+GWekskUBEOXca}}e}X-G^Y zA?ZA;0#-_;lG*SvqVOg5hc^d^HQBz9>>y?-rR}89>53#73I0IE&SmD`AQ%c~-0Vxt zXn(vHCdcC7GLTUaZb%z<4ztm!Df{l(OV)ap`jrwcGwyabp>B7=&MqkX3$@FRLaX!4 zE}~!MN{i|7Bcv(bC+<=#wbajLyr-7@=)EhDM-=>v6mnHxShTiK>8E)GI{!@Fdj+2} z209;?QMBoNb$ED*{LovDiDS5V`=b?cZUCoAgb?(EM@T^V52qS4p6`PWzDh9-9))JY zA1F)=^ElcepJWJr%fq?+=C*X3e=TYBRkt)g0P?~2?DXjwRW>FR?N48Zo{UX4cg*4= zgC2tlh^ZJrf)GHTMpBC6Rgwqra31ijh;}~S65aZMz5{y0VI68W#b?%*LP9UhyG|(URuCa%z4{av z3l~~Gv88rALQ;cofX5I?zNk`!o=~xGP+%=aPcA*}OkW))JVgv2!%j14vfKEC-^@zP zMrZN}+ajC0U0Bl%YHYjYltGm`VVJa=Zi8=iibECoMQpw4xObG9;27AKSObG%B7#BptHJ;OX`5MNBlGdqgo!X9ZO zo<0eqDd0j+0CEFV36vfAdikJ-eokTcM;v7X>LhjP34DVElN7O$NSwRqz2`0r)LDB4 zs3&AFt_bN$6F4&;*WFADOzzq)>?zbYN6oo`9wxs;7|=s8%n$S%YoT;jh9h?&5+QYQ z+D>c}2>A}@jW8|ng<6rGBGvDB6eE~AFZ6_CXi8a(U~j8(B?H^AeLG8x!PZUF_l0O8 z%xAA|iN25UEqMe3Q9!vwTXQnEMIy^124zPUmir$>Jt`k)$N#=y<-sH`&?ND;0E_@r zQRA(iP6_O73Fbt6(3Y>DLHbe@hGK?#IymZi3WZ4uPT$AfHU_OvLGp652h zQ!k|30xZ5^O%W@3(R=)WvWe8~o!&s3lY!yOn|{=^8Cvw(GAGNFv2;S10N#LrjdB5%$gCE6KiVwg*Zh>9 z;~v;fAMybB;4KoZf{_YJ{hdWca7@PabC-hd1nYQ@=DrCV>#J5)#ZehVvE zmx??41a&m~9sAXr{@2+rV(*Ff{KBp5ER|dLl4Zd5Lv$DS@DXw9@$<+Vl)6?XMNK)8 z0GX}bw6)&mU*bD`nOe|-1(G`{;75b@oxwWq@kQ^jR}*o9(-1!Dfts^P=p}{jUxpNs z-nKXq&b^I!hTX8aUS|E});FQ1m@?%|)8)Qllg130p%SQetdLOy-XWuGJD_rlh+b zGsLN4>&SCer7mdYxQs|!Hi>#h8_rVx#c3F9zHX3&e|`g@r)Q5SWscER4sXd<$%CM? z<()Lp47w3>UoMjjw7-X%CEHbtG|_JyY!?oU{jE4lxtSnc!?@jbk+!kuaOFXouJzr-kR)yXFJ{Qkj&_ zmjI2t+Gm|~!Lupv70{t6VhF5qOihY@e?|4O?0t3J#(&2$e1&hbPYC^XOjh(j`PqmX z6i|7CxK5ZA+IEaI%`uU_Nwt)f-9SJy$ ztX~mldI_gpiDN}OHQ6~kniv%LH>VtxYrr25Dm6Y7od-eN}) zgvO!A89c>3X!`=vdboPaxjXH3RV4Hom$pV5a8x7~E&Ww0>+=JHD+(7?daMD#Z&c*% ztQw3BIW|B^{X%)017}$2B2(n!ZJE)~=78d-*3;_V4u{2~S#dOSNz!%w+Ic1f8~~nF zN_6L}Y`f+dMU(O%C7cP5UwpgxUvAQdf~6Ty9o^;~NbwW6yb9DKQ{I{Kwoc1Cst>dB z4BwHL|B7597JXYU@<^<6vO^v%M^|ayD5*?(o6Me3N=EQ=Iu@U;e8D7%4G&Vh_&8z-oRSjhLJ6AVOPGY;mWSugd0A8X3RdegG1dd7 zqFsxVNQ9W;3}{)M|17*TC&2gEe;HmYTyW80-iwE;-#LksBKdTfYD%DS@s8$*FDrX+-4gkcP*=AH0ij0I*i&Lug1X9}< zf~^A&4n_0R>GL%Amr`$^@1u25Av)ewo3A=vYm^KU_^SYsb)MfPuv7n9C%+&eHoaq3 z9F%V285vTcAW%;-A>jAxKuF29F=)`#$4izAw>24sVAT*syCMdQj{yrxN0leE0(M5Y zv-wohq&U=jjjYFus&Nu1)h81;q_F7K31nAkL?<|g%Qz-)@qfYe?<0ChlgnA6O+QQ! ztd>4M#Oo?lEs}65AIee2ShWilYfi8}0P1rl%7@T4`Q|T8XyTX9yrkEwW)Oss85%Ay zFoo#kIdI5)9EpqeYOnNvZ!f zm_!XG3|%mm%fIJQX)`Y3%wTlnhhHyn{{+>}zxC@CltGN5bqK9}fM^TS(;|Q(n-Q@$ zAaH4!|FQd((8F_Lf{h2i2ev++%y{pyosP7{Lp`*6R*Nu!VujwrRk2F(v`3n;rbLw}9p+h?Q`+3Uf3 z-?m7qD;CNyi-n-_GAO?oLUq7Z2)>#iIEjsld$1>Uq+ln`88moHV*3c&nq}|%h1C0< zuBXQodO99M8}G}qTaqzeQ1WZPE?3jLt6J8&f497x|2Aqp?M6iY;NWu^=6P`U1BDBh z61GZHdD)tAkfO#A643)e=*yjLR25~9q6%iC+gMMA3%uMfrd*$*%_K}$%w+S3^6319 zoiey=3H&M9A40N}I^VQMbRctO?ac+d{a(f63O*P_bjGNpBVJsjyFjg7?fZ_7P!TOy z#G4R7Wo!7cmfw5yxm( z$w6*7Imh-W{^zcG&tdd^hVgF($NZM5YHP0Fxd2dv7?pdoL%fPg+~`C?5=>|+5IX)y zqx%>%I!P_v+?mUojo(_zI-us%Hs+T2V~@7TPkaB4+r}x}b6c4GJ-1C6e!2ahZ#t!Zmv?$BKOkB7)1^zg>KYO9YBOr$+I&TLJh_5`nsT6u0lnlSO(YREa;>ie75PM4OV; zKC-g($I7O)8$?l{lMmXzOM@Azo|el_&6L|E?!P+A5B>+-^`(hfjLRGe2MLTIU;0-Q zqE_K}dBN)At7KyNcck)tZ$BF046AqztlC#1q~dBD3&eF5P;IN$w}YYb&P^Cs)UL0` zYkwU+v0n+u0G8}3JfBxJ?Cu}rVY&e7W!3Ur+p}urcf9f&*VW7nVi4`O!I2srUF4o&40_$brFqkEfdap2++=z{VBIPjEBv7o%d{5Y4vk&Fh zHvTO?@T)_>*r!ltgAY=C2LG|Ct5YVTog(6K~%=s+}ghC%=I7O-y^vE)FQtZBC}E>#EOTJ zq}xhtoN2Dr=F(g7BN4>Pn>dH6R*W;1>TxdCYjIu<$jbOXu#Lr-k)=IZ-B3-;S-06| zu(R_%d{Heh`oqLM|GVJIsO;7z zA288xfq6)|J-eTW=c*`AzZ}rcL(p$-K6-IEf~kWJ#6b?E`MU^@*U`rIfK);ybNkp? zeZM98PZ6!^r=}epcWT8<;q-0;0t3~_6bv9qKV%>7crUWv0I^hndX}0>J1TM)9lKJ; zX)`N)l2NRYAEL){2fBkMBj882bk8WoFRHxp7W`}V+j|U3sy?9d{k#PYAxZ_{PuT<_ zP*fv#r^U*o&Nk{=FDshyARe>O%I?3*+tF1Hb zv+W6oZhoC`xp*TIH7kf>A51~mV;MUXJqu3TH)Hbv0A0ofd%`BLiATY_`;gL13A%j> zsgDc@@DaGp*Jh;n5$*^ihIJ5sDf(R?Z$+TaZ%Ut`ns~qR`hwAv%v!jR$#2cfolc?q z!0VGEsh%OzfshAjMy8z5O)&M`x^R8+Qx)om1*MzdRIpU2GI6<_-;#c@3M20cuv#I(8WbiPBgLf<`*1OWq`g4d6JQ`ba*3$#kWwX&T!2%+je0wp54YryU32N zU{YAssH2)7pFELNba^#Lc_hII_QQ0jSQ*u-9P z9yM~{Lb{ouJOTaA=zXam@t*{|zrD3pUr@q7zd&7GJzC98Xtu<%*|QrcWW_39)^RoR3urfJ zCIX-}lC2Se@0bSxR(OKdJEsZqPB8h z>s;@9DisBTN}XO!y!y*SEQFqRQWu9_+_VTn&y-`%A(eTscrm{(9?+DvcE&=`r1 z;>-B_?Yh#lxMT$+dOej>PRn1{X@lGf?{|`>cEr^NO0lLM8+c+wwo}rCQ;^&6&0{xl zECL;!Osq}XGa{mk?Q|C8!i%!cJq~GZj>*2yW-I94ronp{^YK||_7suWm<(d{X_e#a z$$%kb!&ZGJT~sCwZ)o1ers?9FvhNQs%tZ)Hmz#*eGAFRy4exYo zt7A_a#@*sK(f*>4AponlGOlqf2DF&yHS%Q2mps`}d`fX7S;AG47{;eUPSJXYDMDX) zI<$~4^A6M@;^eH+TOv?N?mc2}H{d6`sUi&c`bZ=4$+~WcUmCx*XWK8rTK9bO)RLnJ z+4V(vwz7%E6_YRMZqn;Rzy;6aM#L#Ag3xu?Xif1oO;8V{SLD$a!AfaiDKTmGP^r@k zHHVX&p8LE)C&w$~l+t^$lP1>1(bpik&OR_Yl(wKY84gi}HZVJJ_~wn}?Y-798cZUe zG1x=+mOwrl1dEMezKyfQos?Yf+%29=ucP6 z3_g+L56xeaGl_C#HD>pih%B0nwjR7M5i39T&VBRwC<5|H3zn!hiEM!z$nkWUaK!RQE<=n!uM&g)5?aTp8ZD92l(hl`lbu z+LII8EVYn?F%|0L0cfcu6KC0#%ZjVDH{}NHCfe-9C$~$kd_$o7#q56bI804%2ckqR z1e4rYl<5c(%MXfYguTpDa$#a9D+TV$+!{vpLWm~em)=o@2s!E_?)O9GLKPdr0ont> ztCwEHae09Fqddeus8^bbyN9wkf)AgE2(*qq6-Xs{ynBu`0YP?}|Zm)Yozv;W5$H0|NbVo=!7J=|BgI=>QmGt_kkd zQZSb`KDyX~U$>lXv|TSzNTy1FEwy`@7IH~i#=I|@d;ub{<1rSJ&+Up{s8l&0jYAA^ zp-)pzs27&m5vPmSOzBav&fs3eC2c%#X$<@aihO$$y{MnJ2G?)pNp9nfncz(}N%TGO z2IF=UmEZTdaQt38PCw;R>@!Am+}5oumK>9vB0AHEnN6p&%tRpfBx>=#zeQf&{`2<% z4X;|Gg3K|+oN|wwbe9Fnw0YLAuC{m%c5>hkzvKHmC09mX^%bAL=LX z5X=WF;_sWV_QyOlOKzutWEpR#3$~^O;VLOaMQG=ft%`DJ^ww?5awSG+tB|?nnMVi| z`=P9x2;8s~{D(Be_gfqvB|O5?-IA`bmgO?dR|axWm}ybjXKNk?^3bwJbn7i|pnGxdV? zW{GTuT(TP%&Z#hT@S$Ds^74Jw7;(W*yAEJ_`_}K_X3{ln1q?gJs9+7m4HS(1RD{OR zUs%t$j0&*uD>vCTUW+vaJYEK2S=)j8^-KidN!-LUZOVPh!8#E{D(S;vADe9+^Sf+W zf52qZ#k>VTY#Io3YJ&!Qatg;+TILA?UejBM##H+(KalZH?WpyQ-y3wj#zc0vV52Y8 z@pnoUh5R;6#>O5E?QCxs?-l+pkMP%fN6O;-mF=af)gb&EyWA>Dgb({iR4B7wXGW*m zZ!XS##ltR=umLm3Wc^4;CFCF{4gad+rQ7D|-;RbS@TL@Yk^SUpA!gO<)HtuD36z?j zIYO{fQvIG;vra^MSdvJ%1dYiuy-K~-N1iHW|+)G!zL@1J)HzE&6O*qNfVMsr)#e~R5l7K?c zLGwypKe;H*TdVJsvpp1A`M%EQoH&>+8i?h7$2lDnAldX?-r9wM@S2|Qd z?XbLkK8*2z)^PSNAOXX?k5+C}m|d8LmD%oN;;LZT??QI2>A`y&Nc1dC<$Kzr%TxJh zf)DtjA7OSOUZ5EBFjr;9kgSqd3=E`$F>(f8YK5gLO<3~y~-#7XM= z3z;m+EjGIvbKE3CSDBN2juF}8K&8-Z! zNuon5^F@VLMTn2io)K9vJgkwK(lr6`>mW4?440g~c-grGQ87#?Y$W_!oR{GMU*@z0 zta`o#E!GF?;*HqZn#)lLp|POKj_B7>Ic54t$4bX8M{gb=NSeutOL4s1l}I+T%-WL^ zfL74_vD5x}DDU+FQGpY6LHWQkeg!ujmN-BrGuUQU!(C@C386VBTz8_A!J4Wxey<5(oZ8mCv+6tLQU8d8vNj$;lLu2 ze3Uz<#JVBo&&#m=O0dBX3})n9%3uk{9A7NNTu?+X*Wa?$-nOvn;`ayutH;}^zDDJ) zJm@Nt6W@bH5dlTBG}Q~%@oiPj{0}P4e<(-3 zpOZhe)0n~CG-a4|+S2mDKi`oV#K7rDGrkN^3lt=TdO-FjF%Bhe&qb>70pm}68;kO~ zOYi5=eCGF{`1a=_oOcg~lSgWhk?in(kGy~0xc}gab&>M-zWc9-gCjnpN&P8`N30Nk z5a$N{Ow9dflt07Q@#02*@XUIAAFrQ%_Q>!hRAS`&$3j?_0fwkKe{X6<^izQH*V<%6 zN=bf?x?_`mU!g>ZX#Ymsf4YY&-bd@czxrJFZH0W?NAX%;94T$K{botjRi@9JznbIi zB7D>T?*B4biabdvLxJucW#ISt*9R}G)Y;T6#+ELCho<_K+S)TZ1}4K?Yw}IpG(}~N zf`oFt&6gvq_8hOJsz_C7ZETuVDeSh~E>~6|H&4LdZ$;Rj;YQYwx7wT)_ep&6oA)58 zHDE$_z=?3zqdu}bE0$=5)uiI1ek5dkVDY=fr6=c=V+UO(UVu}=07$$>0Iwo zJ5jebR!*ky#?BiqSjNyS973;U@cU;BrG!`W+yTY8zwNc-;&v@tAS6OMs7L^*&gQ4@ z$Hrc%)ILI@J&SEvpChLJjxoy^Bi;D(C0@+>OYRQn4e&I5s3)%|;VZQIEadEMWw;-U z$ry9sCr-BfR(nrJ>^xUI(vte6#i@OsmU;@fy3*tE_YxL(ka({mlP|wqRqXsyK6Y^w z*;wpc4ixkQyf5R+NNMrx=bPid)Y7ZAVoxAd8!`NOHL5=Tb2atnj*biSa-j7I?S_=O zKwx$_sLOspg~I>wi{CmCUAB4sN1ceq<+8kL=BD;!xU!c^E{zY&jN=B z|IAe2m7CRgj%+x}lCZ;ZkTt28suUu-HWvKJkTlb`NBIyMJ{r?3P!8YOzfj^k#I zHIGiXnBpov-n8OOeALx2+h56m9(NV7!z2C88o4N$zT4~D=xim^r+K>lgL(epkJEmd zJy}^I5%ti=#c%e^mTg!b9F3oEt-}Du2HVygeX-MLx+=Qn=*N_fIuMd+{00wy8oG;!c11G#DWwl@GbEuXwN9CBC_&@+)+7H=$XVR_sJz zTwyk4^B0S8x!sQ$K8=9ln;)vN#e8kH^kw#~SqtQSAD>W9Hans~ZjJ9;jm7TGVQ6p%e{ z>w9NT7@4BKyZr->D)v$+wo5KF6^(eA5ZDgX?sOBw|6=PmH5iebJa`_kj4;yaDFuy8 z%(m7OPOI!|C44f0V7u6jbv(vr_?fP+7=mF4PexDFUxNMXvulMIMiS3g^~co$Igq$U*oVptEQGA_s|2XEqxBmxodAxOT~vvf zw#xJ&XP~eLKJ4I*o*;DywWblK_tOlWXLhf5OqkZC8sQ&^oKRloiWMPxce;;3@*px6`?B{-;jdORYrRSQ6+Qh-*{Tp0x2X5gwo!y>~uFa9p zz5aZIo0BKT$p!F#?s`K-|8U=%bgu7An#EmBwT!;$dUF#v0gImr((~9-!3H>s2|6eZ z&mGw%%QRqE{i2_u3{E)8VQQZRJlP$006ms3`k-0yC9 zYYb*;iD0hBP^NJHIa7C44xEtd>rr_H|4`b1MZ{tfLz4v(qV+;-q4=@yf_*K5m?hrm zbKKPsOzBwSLRV7u6`Dn8!q)H=f8o4rnfD2j>y#Jd0LAZB{;qQM^+$MJB2_m++aBuq zZGhLrT3vC;{59UYA4-aGgZkYcDwcX=d6j}1n7;mn9nJ0!p6#mw5_VDa{tT;uYo2tO zh|fuO?NCNVPF={9p$O+-F(RBz2WqBm~ktl3rY7q=miYZwF zz?nLHB!v9bahwmqqPtZvLjEnQc)RB>zBy5qI|`F(bT!(uN8@mw8TD{o)tP81n#iW3 z;m0z**3S#EI*oi#pfF^FbB%Hm+boxplaXamV@F5tn5`#7unA_C0J+hSgN)>JLf(hf zU}qovn11(0bmh{{@7cz;U#a*AXr|+`qOk-C1tN3mOombwH|q#mLTLJzGqBpV!X|CN z4}ZnRitmLk#uY(L)oF3EGTlB%+h7m_d6~w6u5@zCL-Ju|7{!qodex)>z6@H^@0_bA z)}4R-I6vxjl&AYj^Z54dMAwq@*~_PHi=Q$-rF-+xe6~Oyz1pWUj$l;wb&C`98~IFC z^6SyKvZ~wCb~SwkRQ!NAT)FR^=lZ4iOI?=5jk}Dn(K6A<|Cc%kHGIUs}%jw7{HH}S10kLeXsZLZY zGwY#l$N_or`?A-z9{6k6@GXm+J>)xMylUi{1P6<v$b}#{IGQL%7M}d))KQ_g@$;2KV7j!<-duOkBcqt~*VJGZoFU<%;#K zTtTY`dt0UbCs_-tW{Osufja|}m1S}PRYf^G*-yOyFlRwOpM+#2p;w|CfP4Z{5nE{# zpCl=9P%#-K`l2sQ{WYZxK;qD(Ph;@RYT~+W2oqgEEGro8dZWofqiQMaAl%#MZ zWpJdQ#1RB9zXLCD2-A-OgWgd!pRN^GmDAcB=#Vu@ZjA`0SHYVeqsJr^E%MZtvNmv+ z58i1zkSnJ)AF<`#;Lz_a^gJuH7@V{_)9{Va%7FV-amhPv4E2wmaO0Fr#h8h!TGrrC zQ7t5j(8-BsBfadt%$q%$9;r37@~@moKmC@^WF%A%S0^h=T54oH0i_sp&sRn#{{lfy z&3E!%YR|j+a7Y(52S*8=;u`D%gmPI%imS|Slx#%h2?$iwj)U@SW zi~5$ir(BVtG|_2zy|C65@_X4uWaopuJ(B2K)&)>XSR37-H6e9sS%%aI6Wgr3$(>o+ zWHO6dL^2!_;F-Vdiz6BI+4(hcmCw-DTd6_JZ({3L(!f{FQ%hIdVWat$JPN@YLI+oZ zR0m6L#Te?dOxLD_qXB*I(s`y82i%z3`Bww8HyYDPrDo?6vmquix<)e0-qo*l zS${*^S%yW`ZE>7Xkdl`UDM{%@7#e}0yHj!KZUG4qlpLBtx;vz#LAq-w36UJSd#F3= zd*iwF+;4Y(VtC-3z4w2uwb%KrefIdSHv@`T%s4765E~T=shCEEvKpSu&M(t;Tk!)M zhzTM$r=H=F9p?2cbxTdZrHg#~j=}ts$QCm?>i46Xg2q4grZBqN2`%;BOuxt@!rnfB zm}*cC7l#P67Ix9pM)nf33K3RCCv@q5#QkG*wgidD9_ZB|oB8co)GP{w zE&a5_aq0(6V(pwBS)=rOvwim{#F_n#c}*+$$~M&%sttGxaz5TU)`aF;p*pqRm=)^L z*_SpONu;$aFz5xNuuOgUM19eB?cPD>ybaa?*y5@A@ zC~^a=8f)@RgI1G9!P39ycA6lxyuHd+5tu=#Yo zrwm{yS3}z?RfYm79GW}O*LI>{R>Z%~YuYQf%D=o?OiiP;RZE-!IKY(mm{Ogsm%Im- z&3n9{$wnGzA(Xb&1@x%>%NoOhprq?Y=H#6(j8z3>#kvyvYq5#o&lo!#ll3G%Z2k^Z ztKDg7cUr&QJ>1f`a0-hvJ(rsA9pcQuv)5oAZ)iQTuB>#AFEj7rU)6`P3Tm09r=0C8 zHZHmt#qP^i&U){$`F?r_mL>NgKk_kA<&Mxd5|l~p=(xcC5S#}DD@=NG1@k!AY7p@` zbH$=&$iS;Oa@d$9V|8VJ3SX!d5BZ^D#P8_wq;>KQOsTs;-9`OiNF(PGVg*JDw3=r&Te`gG z1^(8XS%SL54W0c$wK-s7zNop2V8F2c$7-NFBg9K=I_qX6d8Bp|#8=Xw;bIZ4JQz2X8KB@Ue8>9K|0t^RsVB%S?_o|q}&}eK{lkD zy#R^{BUAiCciasM(1FO#mdkM~?JZbkKHB*>@kmTZo8w5pVA#dvgQ|Dze6JyZGqjD6 z+uUh&m=LyqTnbK&oBil2v`@SQwGEi9cMDQ3G%fVw1l2)Wj9#3o)nY!b3UBq`HM;3gS zANgRk0-gV&-0fb?l!Y3qzn{Pua_i8XB6aAsFzrS+<5bBvnHfMYv#I#;L;sRj4Tn~p z@2K9@Cgp`uHvL^ycfXhT;4A*GM3o1@fciuHf`IGHaFLTLC2=~`h7whBxs!8WWpS~j zU5s-gtg*XXn*FI$rlMtAh>!Fdfyl>?Mp_F+ z*}uTpR{%9Y%D>H(W$`%jC`vyy9m}2xuksU;y$)*VOdA4;xorPv2sJKWQ;>%q@G$6D zBfZ!wF*RI0dZ!r1jBW%ElhiSB-v3lwF_fLDG+p7(C#+gyVqY3zEY&}fxgSGfps#IC z_6KAxaO!QEvvu^j8!$!Q=fzduGdZ2NN*Nbrh_eb+D}?niGJ9oke0yDL3T0m(B$niC zK02*_kge&`LxXJT83+OxG_l z7Lm>CndqXy-C*9Ca{KiDfwLqND*xy=%V(Op?=ILP z)HV9D+Eb+D&4#;T5MRORw}z-qxmA#bd_b`E@q3JiHMEWp(+B;9N!M#$;B3wl`Ho(^ zC!0!s*$H+Sm;z85ztf*L1 zud@_H#Uwz!f21jzj7MNU??J(5Bb&D3aNbWpmp(ZatlSfZP3y?VehWmmcyi{fj;?R? z&S|>PqZ#8VISOAYhTV~u3x|vRl_#l0#}S7XRn*HDe`G#?>J!+4jSL`2%cziqL@6HU zEJr++H$5I_F!A8%RoIlj^FDhApnlu>;h1x?mU}}oRJ#X*z8j4d@=X_y?Bdb|_KwGW zaaG|=JuI1sp9S4sHhEq}LjgB~11iV7Z18$-oZfHVs~xhM=%Z)Dz5iXbgcxWQPmkPq z?>EiV&+%CfKoQrgG%VvilF7=!``IQ{zVc;cL!CSY)QwxQ>@s`bY7;7rwHG~Bh94`L zlH`V-i1gUGa9V3+T22lXu1?Ku!R%_a|CPdGAFsv`j&IpN!CIfJR1&vuN8X}Flznl| zQ3(TaSL4$qAoWY%cC3GKsQJ|6lTea$ehQ@HC}>ivsx-ISPj3Q9Lg!vDiuea63G_sm z)FzBstA1(Hft;RF1}_pzhs{krEpv)zNH^yVJdysjM*Wewtn@N`G>#-jv7>wGt~JbG zQu}TjHOXtek;(}3(O62fXuC-Sl0A@MlrR%{sk`2w`vLPK@~(`r2ELcBE5Y5k7bJl; zy(xcWKb7eG^p!Y+iIWb}Hx>Q$hbk8mGC2pzgH7c=M24^>jQH=sqk{uu+?zkp?Ek=A ze&nQYj9*OYC>7$tjKYW1{AknL3C}63LnZ*J1!Ij>(bc>=R}to#rP$i^!Q^r7 zVqe)IoWUi3wXZ#0B`2}su_jM`UEu=~4ie?q*%IxNRB$*FvNu5$limX>BtaC~CWcH1 z;th?G7r#bZjN*2QjDdt`F9|wU^R{}?<3!tOf0tbBqJ9lS`yrydBcqKP!21!4h$B$f zFDu#aE!Xexe)9BlF*1b#Dr5OdaTb0y`g3xu%imELqiZ>0jN4q1X)t4Cc8pygt2&fOVzbap(S$z&>KkQA{dbc) zXG@aViL3Jbd5OPwl(>bvKL-Ulk`d{nF>SC@NpJLySV*SSs#IhNfOBU%y!61muaNe; zt%5vf*c+ph=$CQhydih!^__lpURhr_Lce-pU)k~+B>n9^T7stsy$~352mKp(R!;i8036=jt%O=jiS? zBp9(BY{0f%tiA6;$wMBZJJPj@8P*!EypznTu^+CA+H2m4ReQnhM)e}f(^J3hx1pId zBi#=Ak8@61Z1ArDW`x$x{W;M6_nR@@MhDDe{hF*n47}uZ1`Y=NSh6@5avN~&Yb~LTL*d`6|EO%k zw~uQ0LYqO--K`d{KlFM^TB9P%_e-%?Pqk4!v9n}`;o*vp9ASWN_%AC;Qwq>IYnV(n zye**d!ydF8o5Rh?qRg;yvZs;IoxRf;rNV!uYC~dUuB^-E`eP?rT{sTQQp}1#IaaUC zwmjC=RBF?{!osTRd+^*XDIhKjWg-ff5fP4GB6}yM`@;*`+{M0B5If!I8pTdp3Sb=~#_vj%mqZ6~MbWFwKL%;;A5AoHC3U=ChZ zd&-2jD>3XUPfTZzLZ=uWD#BkJQ)l_ozd!rQfT#g(74rPkC@tl|wqRfDDn7<4DlI5`{h=TH$brI;Vd(U zC#;)D7mizfg(J_Z=4kETnwcj_*T06OS$Y&H6v ziv#V8Srb;Rul$1%P~q1M1KRk0fomh^rc`~%3T2v~QY+EGA- z^IVp!oYx>|f8B;Kr7=PwGB3CDs2N|wdhH~9;}=P$=0+tFmyZYGZjj}{SMzKPG#tU?TOokjb`tbs4YrKWs*eOfVIZQKrpT~8q`V@ z$svmZv_eYYYm<)=fNbm86#Sc1Nl}#;Efpr==ZR>2fig|a4uY5|#)Vg*8%iHAm42tK z(kQ3YS9Jbsu3{Umes>%GizDJEpPX)5FIojOmOmXGm|Ugs>W@{vPqD;A^}9#( zkBKWkPJPv}^T$#C)UZh2L2N&e;pB)(@Nb z$BgRLwwV#1Oa)vm4<{>0I|@SU)3@j`@?Xd^EPlsj&^FixxlxrSCSO?Uig9yUQ8&(O#q#isVe5%`#!?h2#DfjQHI{Vx$AYpe+`*36x=@H{ z?7*W|1V4&@FP|k)c!bZomsF@TQEa;T*n0q8>|1GD)QN4-+RjzWNy5csptVf_0MoHn zCO_PWR$`#yyT5v6FJH@v!K4m2)8i2i2Z=@oTWQLcUNGywVXjLkH=1t-E->Za^~>F* z_Ce?=hqf^a`mNNBVERh6c>0^yJ>v_gNOQl}ysd|u8*RvGej0rn3afEdmjPjGX=kdH z3@coHf{IfpOH~LL*{it81+v*bmo?LDaW}H$l&NTR28|}$MCKMyag~*rsVCxGAF>&% zsyI40PN0wfT!6t=2Iq{@s3gTyy-e&_ecl6CER}7#ICk9@BsQ7uKck2hZE~|0!Q;QV zM@{QNX_%{r9kI{x&&BG7KjXgQZsLCb$K9d-RXHbo=Dx!JyzR0(e z#lpcu0@2;}obj)gHL2-jSpW|+T*K7r(yTv*6XuA0#M7)*ERF!FH|F)U&(|<$&&XS@%b3TPvUp;zW!9Fx2drP?^K!&IN!OtjFOSogqlfetf7%3M#pj{Txd-8i zbFG&oJ=baXUVC$7Ahz$OvXyks7L#gA?pkc&k#I7^Ei^hT9MjusQ$>pO73psTw|J;n zxCE_C^ki_HeZ>-Z*RC!prs!h$bf;!CJ8%|63QEnhL3Yx&W0wG~6vaM}w=1p#@365a zroRxUa9R1RQ86v&O^*D!F1S!HJ{ zT6Ez5OoWJS@1_~>1mm*gDAIBMRM71Q^6iQE{Rs=;e%ti6YA0 z+|(#57m%z<;q-7c1aYnm&AUcmCMAbPghE$yAxNKxe4JH1w?wCy%}uK5n*^Py#LA9Z zjA)VRU>{>rRMV>&P5n@M=inhpM&XYamN5!%O}{Rl&CqfX!eSN}$Q%BsmV~vE%3|$Q zzXLENQXYHujFx?;~j34 z$T5E*FC+5}q{Ns?yd1$g5qnhRNZ7FPB$V7=i&W1Bek$=~h3|q%K-+a@R#CmJCBb=(arkfkIL`W{r-oy4fTzH? zir~4*_8vmaWay^JGwf|h0=ddrL9aH;NhEg3yRvWlQue0!?|8{#E8WKa45x6#N4Q=W zSB5|C+pZf_@0V0>#!NBMvu-Cct~L=rXW*jyUtHhAqV8%d?l1iN?|pCJu9^O$mZGn) zito22_blx6gbn9^V)vQ<6L#Mvp@}C8irEl!5g?%Zleg=uK2pDzW_Rjek#B?R++s}; zSpj5rbfiM#O)_q+OS~8qw}|xsP3nUkap~Kou_GpHF%|d#Ogbd1tiL7}s3!rsWLuHDHwXc>jt)+v{6cwV^62=j095)Nm`g$FK z?r_TY51jnzLYmGF@kW!v)sxTe7?N`g^r8CT0@0~ps|uBuZS5c2cfVkwoeiqX?{jJ5 zY?R2ws^+3`2U0Yt6~*D|<`~FS`@AA;conUsTiFL4u$DKNdGkTRf<(3HKa=bnp2{zXoe0D4woll;3VaGe!nk#kZV)#3vd2WYjam+Ko*jC3HU1+N||dI4Ptc zqJ;f3F+Js5sWU9j`4!Lh5f(c3icVR}6*>PV*KpE$Sj@W973yF&HPDXcgp35$uyQ?k zu8|(al3R<6>-O?x71K9Otg%s;;o=3S-!}ElGWG4IKhfirqaXL3;^)u(bOk>zC*(pT zJu2h-IO-uASP=N*Fn!yJkC2t(q*Vn>tRK9j#EI!HY_GV2!4=rrjKW!~Fjl5+LfetN zJYdgYn89+qOO4qNjBz=GAA4jQME1TxV9yf5P%G5PjQj5R*&$7btFR5Q zKnDPk`RcMU<8BVr#8XzlOYzCIac@5mpB?cTchi>St1kowJ-esW52n@MMbuSYf$tTr z&iJjPl<2PpCe5R0zPm0Ik3(levf_PWPUGLd%dIByT4U`(3dTdK`4deNXQEbmw)_6k z4~)a3gdnX=_uSjb*?hYiuj>aTz$L-2Ua%caVLdqV((w}{ zynGfqUXKK^uwomUHONpM%XiOeR37r+5{2vy^d`6zJSNvRYlUUvchWj&MH{i|bC8isvIiqyM^HLCs2uj8}s)VX|ijrpiDd#o#6V3-z~==xFz zjr(XVOoR?xRG>t|4MxkWsOOhrad=9+z0AmxBeVDYk%n%1Ew68T0=cSDfQ?*^N%$MK z?>R_b4=hb5(}@jF5|64Fa~?r79#0P$d*#5>j>y9zxH}e>RV;X@g<70HAkx2Vothj2 zcYAgh*%(`HqpC1T6Q$bvPuBTL3GYRE~1>Gundp>0LECE{y?O z&MGm^gnBH=a6rt*))=eFXV^#zzv+p_gU$D$)S_>pNV|%L975a+9b>C@9FsUgGK zjik|7zr=7gd;lf?q{B!SGGX1U?^N@{@^g}k&SLr*daVDEZm*Es&8%>`cJoOigH*Dn zH`JB)s1iB=5+R%RYWxES9s}GVQ*Cj~`x7G{vg+m`FtT$>#DJWG$x7G`$#Na9p!Xo# zE3!92j(!W~9>^q&YU!%2))d`mA*(Aw<~D>Ba^)3Sj$Z_jxTJmow~p0Du{u^=#Cx{X zu1KE)U1JpMgR=&;x4oIXq+vogxjz})Z{zbnnZFAbKjCk?RP~=~yJ7O{y@#v5oo&0s zX*==1FSrZ8AI`X>ypP4HkoHSe@jFcSTTCB&x~1q~e^livq$8zzJX3-@dG+#;Ki*%m zB2oxfp_E63hFL(bp{q5luf7+;iyL2bLZw?Ar7>Ars4is13tjMt)$qP_i;-2pm?5`~ zVmz83!D^+bTj%wGN-_5V+-EbWNIP%v8iEW-&({^)MZG?V z!8BdY)gJev{lb>t!tpZ2&osr4O!>ey`y5&3VdB5rJZZ`r`I?WpG+}E_IG2=B- z7+SXsmB7B0pg0BpeqM6N97Fny_g7|oIKZjp178UIMLfZMf5pa9(shF@ccfDeq$l7s{{mPI@qQB3uiSX=*pZhpUoPV#Q1BbH^UaorPYtvK9*ff; z|6;ElM}KF%y;LoAG}0xQ2&NiVjD}?S_~(@>Zlr1pM%fVz`1fCdLqxqDCI1EZvP$v& z$$RO{q81JR73YTiOtHp(e}6i#ld6HH{ny=I1fT^x{s&l2^pi&a>e&ZT7sOz2x1E!NULRG+Md-X2_K;C>0-m z0c0r5L-4NvIqcW15KZ9kgJ_~c24G5oQ75x{zYkO0nWec<7#HWgk%!L<3(pfmj-iBg z?kRe9CNFdJ_dSWs2_Yv#&R-gbi`HV_C+={iyIPyh?K$0Ib51%1pLw#G1TLS)vO3?- zD=kD=q*tLSVpe=O4{qGXXOU|eU@fAq=1qRg94dKtF+tUOe%kQx-^`eYF^b!kx8*D$dH+xHyo|Jbtzt&iW~ACg~A7^_#CF_K~!8BCLgbNA+0 zvwftFm$3ES+j7PFt&Sj>>HYq5N3k8nJE`>tNaYXzCe>a%V#&PQ1^Tsb+W-j%X^&$;v_!-X6#V8I6l=H|!6B-@Ah#TujySasB{@!TI2 zK2l!2^yoZ&`>U5Vy6h77fu{GpABU9`vz=B1C1kF!Opo<9vN{Ok=5kp=;rkVJ)uHg* zoi828B{l07lu^T+s2E9y(CS3*?Gzuh)LF_j$Hf>A&XGpqs}P@cjW5TJDyd_0S0et` zeo~hjg)UpE~o2sd(37JuHn6ut1fX~b>-*ruu5EB>p z4D8vvZ11q4BR3Abt3$O@S(QpVIE0mn5wP#7JbA*T<)Hq9A6OC;X}obLgj$g8k@c7} z3($QQ4>)^$4m`{CMemAgo1FEh@bLZH-1whE{N8*Us-d62KLu9z;QG>ad0n0?oOcP; z$GW~-%hYG@Q~jb(c&#sxQhO?JY+j;8_~X^!u*P}+B0W~D@*x*!*!XjW|Akwl?orB+ zmL8FHlbcXZpYz+2@U^dH5qY2n$oKg~yJ=pY_pA0@sZ|O7t{p)-8?(08E7-BYVXaq< z?2NVJwV+V&ut|9Iv0ZOVG+Tm*a{|oVg$Zwlo5hWD_0tPXy|_yLqtHKAtHoH8a`kaA z#D!tC-6!V{bVvPr{&6mEGv3akpPg;!JLqib`*c|G+3?<4(fg~^XQV4gK08kuUgI!U z;CV^E9QKlke(TJq`j)JJC#E@VOnhxv=$tnM@~#b#@S)sU_2n=UowIg=jGbp zMH7+loOTAv++o;s+Kv$<#DdW>wVrJ=DC2XSrHh0SB3H(ZXg>sfH)rPo%%AhBeBn^% zLC?x4f0<^q;$7NDubv2;_MrU**NM;;F1chplV|l}gqUjU0tZo8uz2FIKfS(r9Zhs@ zcIvON0xmT@fEsx6&C3f_7>n1o`q~DR}g|-9kgBVbXw#ybgSB4-v^vS<+}HKCy#++P?(UGUk#4&dQ`tp>9R?%eXD*7 z+n|80Vcrw(islp|GSo=jn>V&R5pOv>-AY#l71eTFY%zQ1A7vmE6VA6M#PCPF-9gOa zQBT$YHgn^b$<__G%Z@2Cuaw(|v&j0`HbRbuo<79p^{xsPN{(Ls>8vR zKn}UjzytPQyU9jbPHqNHN~H_tYQAhPjc2q&Gm?%o2EsB5pc$cz7yU*fjt<1AJD+Zh zKl5k`o}c5GB~3mPhD`9e=zK^W%ISW9<481A6?9URcd`-wT4)&hR%~l>wmWb-g5N)u zuEL5Z2~hLlg#h;-*N_P274^u}2#_slADS+aTDVBunLDpdEPV;$bYGW6McqRsWI$QR z)GmwOv}75~uTnun>%|w1-~3)EuZ2PvOD_=Hv6F$uuJa2@jf2(~#VuKm-a9zYLi*^g zA*#{S1T1$qj496MkdufPC-UO3!|Vh-EJfL;;E_d{(((#XUkAyM^Wuk_ZD)1VKf}*J z#&r4#?_4+!{2d>yKv{;ujOGI{<-uKSbHHNMS2CZnb684kzlkG$u1cyC@2QDb9Scv7 zJ|66+F3ndm$80KT)$W6om5(6^QC@=pX+A4gTEr|v%%3#)=uk~_(x?pCD1j_gt)NADA$0g zHye4Uy$t?l;wV=c(F;+MJSL|~lx3^I+oO)@$vLiZNO}JxrT)qCHEmwH)sm3 zt%%*|4vvuuOJ=ZI{DgMCE={jC&g)(SrsTGAr%|5y2NPQyMnS&ZK1A*L&TpubSq zGO^e&+Lg{xI1nlI#c~bO@#6SQ^K>DX-^y&g`jSQS!z|sFo?8)GrNZP3tEoS@R_UF# zS-@U+?`#&UM7B!F!}D0_51dUj{rR?)l!uCIyGND^UvqcV2e<&H`h*huM`%~_zi5K# zH4y!I75>soemYHaBoCYsr>4~1e$F(TPIwv#Cm z6mo4XTv$-)MW;5)U4^!$wlpo>^SYcyGI?-+%qj}UoP(+dU$Bm6CDnZn+Ri_EA4z0O zG!|(`D4G_L=lOEW2(NkV6H1NgB%*py{pzVifLp22~&;bv1j|F*OmOy&W{!flK7t3H$_7Xv2nBC zGGwac&D()lAIyhVUDI7wMi@VL?UDg=3rx~aB62&;X?GMwj!#;u2KCKE?XB>-AVP(b zDshj6RI_K_khebz_cZ0ApoB~;)VrzptO=GmS7A%W5h_>nG%LT}+9r8v87k>o>w43S zTJ%xY7^Uy(+_MH3Dv?OfJunhZG}tlFFJdq>cc|0OrYM+U0Pt@WOmyWO-iT94BT99T znB)O}01$(TKR&kBwq;B*H^C3{O5~v&o?TTLiaDxL+xcY7_#SbvU(``uY=z;ptq}W& z=C=M@eXPp1P2yGNz_nzRg}$H)_gA1)_!a3W`^%`~pG8W2k|QJbu$|%!Or@AEgQ7X} zZ*(N|-*PU9f00ei1buhQsmxkSKcPmMvtEXo+3VS&mBj=7Ky3nG;}tE=`)|e|b$VU- zPVWv~(lY#}$s+9NQ>~n)k@Z~D4a|I`k(@@TwWamgK|kim3s&bsgh6<;dJQm))(7~3 z@>WuEkH|{A5=Z#AFuxFI(j95Z2ht0e2L$}8LM-z2#!#+HGkHJUbmmFNor-IhwBwX` zZgfmpYC?Zz?p1;Wyb8|Eev9BYheEMaT(th zMy>vgcTb64Lz>_(tX$P(HKFY$h3aJQCPk?r>G~)|d4&$(BuHF_@J^{1wRd#i;n79E zNjT%KX4Mi!_Pgq59r_S1F1Py02IsBRbLkm_HLJMzF`kkjh;=^YEy~*?<~&nb*cL%} zT{!Ei%;@AefQpN)imFTxnIz{?GRaJ?wmcpUd*L(2l4(wJv$3*jDGCSeH#F9;H@gFe z?!?;YW~Mwvc8?Rv(HxL%LN!1l&*kVs-YFU>l_kB|d(+ofDHPXIRYRhoDh+5l9AfH(ImU*ca>$KKo0CMKYW{N2m@A8ei`Y{cvM z%l?z7Sl@%*!QY66Lq~|L*A-jB9{t=0x>Y3WnKmfjHo~z&{!D{E+k@%(=Fi>U#e_K= z0%Oi3FzF+j$|odTVH8EPH9R`2>}j@8B8nFQ0$tYos&>V&@@h!-^I>NYPtXqmhj&#q6s=~WYkg(0@g32cD%Z#K*h zT!*jbCN>aOSz!<`(z@R;hsbL0t%q*~b?(?^59Iw^B0i3k16S&z-Oj5Mb2v;y^gsAy z$(lb>tl!+M8fvi)_^Q_ZLuO!^M7esb5h z2UTgn1b-=O745z3741=GeQBl<9J~_>b8yN(9SkXF_5o=h1K1>*a${e`tb0F-ob1?^ zqWtHWIHNDQ!`$I0X<#OVKBLLbqn9K};Si-W?xlQ6z@XJTF#^r}5vRmU1n z^7d2yLdaSE|;Zr$z2_LR_$&_+lwfk{^m(k#y0=iqBZV zZUK9saD%kD4?(;t!>kT{mwjCFpIE-nQn^zfsX_Q7BgQwhQC{C>GP}h08LI=^Ad8)U zdoCtXm7q1O_j$1nNJ-*m1~D&r_tFK1Wlaq}^{bcO}?$%Tep zx$jrzF7xpuw(|gLR^)kA;62&K$bS1Z830I8DcGatyA{AJ&57j>qB(?>9K)X9OrquX zzXvj}UVL%4`h^$fYf4ZeuT6dA^)P$=_8`<*wL-59FTr!lu`I@1b~mF;=5Rq1W=d4P zbP?)naa}g!8EesjaXy=#h;s`gw-Ad&jF89pAzKBfPjzDMfu4Jr22ry?qmYXt(THge zn@T|P{q4$+{om$Nnx4|+Expjuji0QHSDa4iqn9@=wO4R1k+QZ?p2BZ$i0S^U{6=oo zgs(r5ag?hdMf+Lm>ub=!!2t4?{e_8J#?m=W9L|5JdF*aAYfiM=RdfHJv^t8;U?1OG zO>;;yg&<&wCwxkOIg23Jt{#cXBP~|=Wyfp?iHo40DoiPzw;GHl*_v*YQNxsGx{nKv>I5tzx1+k{ z=Q({T2N3C8s3TtKFh_2*9Y^aFzRugLTr|-kg+$WVlbm7wd8I~GHvKvDW7}42b1{7N ze0`NKLD4VQzehxLa@5uzMH}1h0e$;A8Say%NuTI8(f_)|Q_<%&4#~6uy{n-$3tp6c zN-d$wqh+6OCgEH4rH*{9p?J(d^yVG$ZaOUS&HkRLR*M{P@S5k&?WyZ|8SbVdVXlOV z(eNm#spW3(`(EA8AcG=jP8^hXG>J55PHlIRReUTsa7($mW2DO>RaCz4wVooFOnYH} zP!8t(ukSa(t6q|9v-60?l{Pt$j_$%Nk*QW*Yoar8nxg?AJgP{tTM%^6jACJ6Q>T z50QYaF-{eiTMd2OMTZEat0febbd zeA)t8-^(ERNonh8vTQ%ebH2KbFAOl7RH?__MMAf2E;lUO55T4J=M2p=pPrKq=#3`1 z8qu&T7>>tILx~c>#t?pHSLim@F;925xoRg_$~kz%$a~VJ|76>J8palv(sohfzU#j1 zdGqPIf6L3N#l0iNuOd$z)a#3ny0bqOE!EkSIuynah9{F*Xneemp2ln(KzN_;ao`vo z(7bW+S;7+Vkbx~IXu<6{ALg;E7}Q&-C8k(E{8bdk3%yyEf>iw%EFzziBDhzpo%QC{ihw)ZEAMibG^HyyWni=PmfZq%-}8=6T2k16V6T zAafRC1U7N#&TT|Qt-(U(bH5(=7+Uq1{PsJ>C(K{2?6+T|o?3(db+KK`L-7&E>+zq) zvQ#WST4wz*tsDu2V*^F*61#UdJYGp`z~6p zmT9TH5r5}S$&N@bYdrw5*x9s3%7koGrpgA~*{?L{3a8GjEikT1bZP+_@-zAZ-QQ5k z7RHv%rY|4=d}GgYzVc34qNC;ZSfxPzh-R`QMIL?i{p-s8X2x%3R6<&1yG1wdD?70@ zz07mYXLNWj4}IR|%X3~}&MUMdV<@#K0n+%`LQ{6Cj^);!H{1NgMdItjR_5Lc4v+M# zh~Ku@cXm(ycukPY#u-xSU-5!5bqwpv>F%0x?OqYv=L@?AtJ;4St3UF*W1sdrvd}HT zyKP+G&gy~JzRfY{rft94AO&DDlBXu>vw|sAJ9ICcQMnKS*0 zO97-Kl*~&}`sKc2VF!b0OI@xjxHf+5b5GpGnB^&c;sd8`Hl7uVq{@SiPoeQDUA#(5 zz}9V`X5^F2$V^r68dTSX_;o;!!JC{2WtF93*GoVX$Cj0c3WfFh97LLjtn9%6X#zPqzZ8nU0O@(c@<Di5c;_>m^rCz)1rwZd22l~+UiG5IC6`EtdoHK3QP8IO>BvN14cA8~#=yz_4 zyZcef`(w#(f}!L90HAl_pRkRq=Z@$dN0FXiLCtd9(XCzceL;B9Uh`p`_P?jyW z-{4GjQ=$r~+j~#;Urq22i==HsMN^4~hgO~w{p))K(W8#p2D%`z-){nlzNH#i{#z-MF$@3bPG3-IIIv{qJXO40_;X!xR4|>#2rB z9p>DMGn5Iq?4H5>;{kmB^^4C?QP{@e@3$b3 zD^tc@C7`<}J*=2U@k0g}HnbL1;k6=8iV#Qlg0U2?`bOu`*U}aQ1fbHw*4vfPRgHb= z?XBlVc)FU75Hk6;tUccIn>qV(byKiYEc z;_nSN@kw}lss1YlRuJZyDB*76$#1i&A&s~4otdzn&*&7PtNj2_3fqkXuit+%gUz=+ zOyDo1bSFl+RLt)i>v}3}2`12fKIDAjM@5X{!VPnyuSbI1KUUQX z_(-?Ky5o2`e%7r&aDJSq`KD;lFLyua89Ph1t>o13gZ7DU)eK>qZ7ykdwpk{<*-@EZ z{%}cqOWNgd|B`%3v3b3!FL}ptWXz>5Vm&i;ElyT^iu_~jZb*6&@V**75!1N;`xqK0 z8=_ie70AAdTy48$K3$2xn#t#@EtagN?TFT$fTI*1i}E$f;=k7}#W4|d*kbX08dYyB z9S(^AZzDUb3~m>{um{bDU!`RG>Xe^@eSr7uPk8a4;SaH=%!>6#=X$Rd*(mU=x+q#^m^5Zf~8`FP!XplkAN4xH#h_OV>kqmkXG zm8a5RDi!L{o1ilN%=T)pYsC6dR&YL}ypt7D>%$jQ;rze8^>p;MGh!B4j^wGOm*<8` z9P~Es_lJ(rL=HTDHB_dj$EC}14OaRMyYkm3uw#T;?{7#X2euSAz1yIlfk1gJfR+T3 zULciO{)LIJ`paHD6$P zRMLl}{@(o0Kt52cJ{k~5^?U>p-{RJ)`kx{xk!2N{*3gkXMcCUsciKk<@>LGEN!c^@ zY}xh$vzSxGhgRZy@to7`7#HxmGu~sfqQj#F#(lZ{;4-d^S1g z(jN9qjxgxH)pa(`wra=rs=;j@2a+f)_9g26WAoRN$x?bUC0@jzgQ(_;Cjqixs;1`? z()#o&uJK(6EK<+4zMGfL^E6u2pdn?|YC(Zs(vLxw>}$65eTPq`H|?$~H@4j+N^i`P zp8w48{$)X4s$J)rEl8@Jt$#qP*j$akKB>0bT0AAbsXv2}she9|G}O<0lvjas$*lBl z+>_S+0sZJTv;Hv@|4EO;X)iHs1Eaq;=jZA=J~D-CpV>va#yJOjkWJpHBD=@88A{po z)HLw`Bz^0v^}?vb&D{Aym!_1rb$a!m+@`06T#I(*!Y4I{=VmnoW%SKAm-BEdG%_4|pKEUwEAP-!YmfC89D%E%oQaAn2g$ zt1)cHh4GBT14GJ$F&5j+m(#YzDr9eV=jeAwfM82EHLKf&fHwme2@~4h9$&%#d!-)Y zEGBbaGrZ}6FsB+DF)Q<~*(1wFZGsZEIS-4~)M8bBb#_JBw z<9fsoM!Yo5^sxwiE?2BD45JRD7-L@Nh4NJhw5uKF40}rRF@5j*J;v_el9xp+Wp3Xk zc@CDtqq0w@c^Q@kwQ=pcbfd*;r%&m!Kjb2tu13KgDD_tRlaplE z+p;B566h;AZ3U{-fh(QYyLH;~W7l;$$on*jiVhUDsAoNYx?uh-5aqc_%F~{oS%)I& zt8T`3PZC5RA?l&W8^J$KS#>y&ndb_woXu(i*Ss*Rb+%kb^Bum~$akl+js%GY;^`2d zEmt*~LRiC1LXiaHYN)mtRV6(6QVSSqKn%}PFU*f{Ov1AsA|6(4+@L$j(O&>73*JL6 zGHZ;qJ(lqhhI9xuAzP&3O;Q&I$6GSbQfZv zo6$_vE6$MX@u4gm7;5y#P(&fK0WkEFSlzlK^!tGD2|t$sewbSm@d?(2?yZu+?*Oy1 zYN%5|+fQay2m~0h3J|?WJnYPp$oxb*@4d5g5&9x<%RuEsr1&68^4#@TBGTUFas=zt zum4yquPEa+u-JE=3uZaWh56TAaHlzZ03dMU*NPwBJ12aoB{0iTD$J+&LnyPCMtO=1 zbX!gJ&yBB<cUx0@_s>fBpZI=LnJMm#z>aiN4(pGS_JEBhA7e# z7Sd0&b^*!u;N)I9aPRGZmgSG#3oG8LY#Qn`f9PRxR3*tkmwE9J->E*EGB@X)uJOse zjAprTQPy)nM80cR8gU|uP9xx!6C?8;Hl5UfQ0DN8NEm)?5*Q{pF+#2Nmdw}w6a*|x?bS?2w9`cngbXBcrA zM{wF0SVAw7>F4L>X`^1MB7NFR*d4q_G<;!2Gm7xn19cMf1ZIiTr`{l57Gm%MnEoHv zC?&A+KQ6(`07w70?8r|^|8>ni_=<#r1;V3(9fxkzJ z<2k!iI?{VBN%2Z(>>n&#>itEht%SGOBN2=Kzl+26!_I-$1h7=;wQk%TGdScwlO9YN zyVm`4yBr~^%e|n+vrZUeU*-$Jf8{Raoqoo^+P^R`5Vh95y8RI$y6GM&`iUxcFhoLF zL`KpZ+cY4a_KU}>K-HvaD^vFGJO?8p+*O*ZM7$I%O;;^jW9)MXI!I!Q%Bt?0pEBU` z6VZdfMp|@qnzdSvwfC^|q}0lsFf=6H1t0#ZZ6XDYjk4aGq)o)s1YjGSlo->g(QQ^UtNAj1mvS>xl!3d95xAf-&;5OuPJWthcS-NSqlvJRJ%W|a z(Q%#dQdRstDvv|`W4@WAZQS037*-qC-wGaa^*YXhp%=ij1s=ztxUx{(D(-M$1}Pwh z)diy$8tytiR)Fq>Vu^Dgo*B;6(X9k!;=5=uw5d48Q4>9ZgK=VL))V<)+at}mTcEEV zv=ysA@SWZ=#!so*&r(_q>e*>_ABnLOtnfi>P2TF%E!5ghdtm8~&IwQWmlEfA$t?Djc86vd{7M4=NkF#0$&fpBL#=&XKr8Nj$SCW#g%OfVX@zEy_C3*2kPPn zqLR2_gvS0dg3eXjWYPwXb}om%{h@Z44R>{bM?Ef*ut&+MYV zmn=0xF!NloV`xgXgWYKgoD>deXyzF>v1chB?|f%404-2^qkAJ;(2BU+g0qq>LoQ*8 zNwXs;L+x^}rPxg8UZsvVo~X!!EHMi`l&Hhva`0v}T{X$!C%vg+5X;GmMGHeN0n!6j zBgIj-Tqk^O=VfsUHMw*`qhsF?R6I7QxE^#nj46W-+htqsMJQHS1TzL53iF~Lbf3^( zaKOA5=s~$w(ev!~kqPP`CKpHW5BZTLl~5eFLXNgZYSF^j;ZToteQul&+qKP4 zg!9~ugFT`dPifBhtdGtp>Gsh=VI%z#3l0HUH;+Hnej@C^dS)d@)v|OFjrJ}U(geUx zU9Xc4Ij-5p=pR0|ovvA)2*j4yz}?Dphf^Mc%kpgDaNmmBJ8X^%wjMokCF7pR3ae;m zKbLV>^dI0K-;aIhCCoDu=3iV z3NtvmU+WeqQp7YCJqojf9&|`d%n1v7;+L8(PU!u#9>lKW)^@!XnXy^?p6$oT&|}hM zU!PtwDIRoMvv6}j&~8^j{gLwEl37$6OYqViAGf#$Oq?E3vuap*;MjYIKD`~2ZDXAw zeef?)-rf%6oJQY<9KI9ZJ5;m6irzH2hU5Akvrp5Ve83dkREWM!)8j&pGCeU?0^Pb__z zk~ncQZ0BP(yQEP_v1MEFj{x6gBA%Sm+Rd3gIXiX9aSjV&EB9#sn#rzt+W<@Sdcj#( z%aV9AQ_nUQ5FYoSG98}1CUO;wUFKx!=eep~Z~ojF;l6bd+Y6fLFLWH_EwQI$HiEE8 zxy_d{+!JQcI@MV*YFTw`v0RI#2%1ZM59+hXyMKGSFh60IGN)V}wvasLWKz&8*UG0_ zLwLV6 zE>){VF9PEyzIz_Gl_AW|v%!lLEmv#VCJ{T?HsU45BND^h3ktyQF=|X;*EtSKFIRV; zK)f>3M+=ML=&&m%8Zi+(kX9j1iNOrc>kqZHGs`FJ?L`|}tg~m7qcCw%>QOA#J?x`} zqL#z~lENu*jPkYFg9>ZWn15)5AtIFF+j6(A@6+_FIT(k;l^r4ZE`0*knZ^WZiTr-d>qlrlVHwMbqZ&{}xH$@CEyQMzHZ5Bl zu4ypkeaL>5Sk_%v0KMOx21NDsmQGV4)XjC%cId9WzR|@S$HBG;C!!U!blxTOd6%%URi}#kgpxVN$8p=>R3MzB52)@UhV+LY zTEp6GMn+M+TDR6Q7Zn}p&{Q_jUhbtq>ljJjRdN;%$*yFC>U23Grw%@Ia8dkt)fV>y zcMY3E8Vfmi7rHK9Ml7n2F~&)m*yeq0)>a`}PNa~3oi{rCUBLDyHOa;duYu@6n)Op_ z%I36#zXUo|G5hLgp?*+lz*$#c#D2$SPU-TnP)!E6hy&XW3wo_5tCu#UL`9h8#6Rtc zDpz@d;>y5M#SU%EDKn>fOT}Oe|~sPwpQkn zXKAU11zL|r|Hg7ZkQnS6wk$2tpNmF>AX5&Qt$_&fEd?qey&K%RT$VQuNPKT(n{AJ$ z)heT{SUpZY05EUxd`1Zpi(6Ai6)YHhu9At6UySou7HEq+Qr|1(vP&t#{45C1X;Ann zgw2NC3YqaL^2k**@lpGLc?Y8p^;cQ@YD}INrNlAMi7j6RLIP+%+F5SGwiw70U?_jc zS}CCFQ>m-N&)g1=wu|T+!1_z&VIusKV=KxHLslj^9mMPtu|N#OAVIK2AmU~y`nI-j z&ESv)SR>Ej!GYfIW+nxBj|!YN%F;4>iY8IU3u}3!s6I>_VeZ8lS7Lsvo^c>hbT6A! zWy7#?=iYWL$HfR;_Ix~>I{iKA+Iww$r`MyVi=&q+Ors=?H)y}SqT}N{x|5|-j~2IG zv1S}wc)Az-^uAS)tt822D}?~OU%@d@l}1=EL1C#forQlpChn_Xl&ocPEGo>>f$@@~ zZ&BXgExkF2Jth#+ETUCeqhkc_P@7C{Jmj}UE|Lk4vgiKhG3n8WJ=YJNRLmjnpeqh{5a*GhlckUSr323joz@wHj6Q4$ zY%N6+mx+la^(ZH06_sDRiEtF#n%XtX^OUIM*bSn??6_UW9iAzIYG9;%=1qkq9AuUk zw2$@4ICc7f*tJ^ru{OSa#!mNqPh3p-%)T}*4~CL}v`>g*$6z!Q8S`dy;T%@OV~4$# zJ&!7^niR*UQMS~DcaCpV)N_t^OtPutM)V&(DLC}tQIQ_B4ZZ&af}rUQNC0qMilh?u zONeiqVJ{K|{t85CaRt`J3Qe2clYv8QDo!j~$G(vR!CRqG24uLaZ$d1y#|w5|Oc>i5 z&I4Y=*J4__jHyL-?9prh={p{CxK-cVM@I5XhLFY8Oh@n`;JVp`s)U2P7#u*Hae z@L!~eHHa_wQ^+4J-3cj919R!xKYyFhzF| ziz?UR;!=_R;>?2?X06@s45s?aPTo7ed4tQ2tzQ8i{WIpokkNO>7Tp<2zwQZmxpO5l zQDp2k(;e)%GByN0TtqGO-n9n3a2xn&~~xA2yQ;5yk~){uws~-ipvf z>tmNlNwk3shC{D)yB$q4zN@?a?TYsLmGA+`F?8mD=DY6>2xhu^J$hy<1I|0%(}#Uk zd5vsg^Qe91v(ORn^8~iX7jLMP|U3b`&^gvL1npsy-sS}O5C3+gr z%Hn}?#obcD!1`O0Y-1Gp86&$V29G-k^>i5R9K5$enc(& zm|Z;G3Xv8PthDPu9z$aVgwu`YEvX#dXbx7WgOIV+ZJ3UcX<$_Al|9o~5lQp_&*)oZ zMgNY)#a-)Zc%JBs(9p4Bx|SSv$1wh{w#Hez6cZL;;FqRGj@iBt6;G58ycx^sVl>xg zd?H>kX3R2?RcX0bzwSnzkZHjvA6O?<=tM1NHb4=h{b`Kt_n>UG=+su z8T}k-Jdy2Ondxb30!Pf2q*wWQzV$5)=_wlH?OE6{qlRMVy5;0e$iH6ZC^stD(aUX1 z2+z0ZU(7FRUzb;kGcu2{)yb2jVQ9KFc`DYwD(>=Ym+n?-<{uWol)b$;lxjRTT{A!C z+!wNKx0vv+(OGzdNXf}+Qw-lX*8^s zB~=s(oGM|vD6nA)GS4B#Bw=K5UXperXLWCF8CqOKQmU}9lhmhH?pUXpzg7V2A~0Ji znMz>-C+Av?T?JJI--f++sfv3r-&}wh{su`$?8D*f$9LaayKY!c{2bw$adf9Vf`W0( zp(AJ8D;21Pd7E$wcZwG5+NS)m01vRhdVx4lj`P9uT#K41jGj2D5=BG(FZE)OZ(Wei zUe{{Ng;8aQ9oDa#`y#};E;*Na>Cgw_W0{yL&bPZufnr~r?-Y41s~=k;yK5E%j{UzE z4~##>PEysbqrl6Cw@gt>BiO33?Y&*m5f@{0qIN%tC6&8-Z^+1Kl8Z1T?q@sh2&!{# z99-1WS!FppA!@Nxqh#GkgLI$~_98&g3n+~@Zu)bp)kKaCXn{n9L2EII(x5X|JEmsT zgl9~XVY}N9K|SFYQMEwnsyydLQt0GjBkNoVY`%e}ro1Oh&FHonP)&Q9l4rH-SfX>N z4~}MiqW|FJ9~qkI-%JMvN#>M|l#~?g`mB^qRTWrA7ueRRAG0})0scuGI~)3s5^Z?` z-qoDhe^exqm$jLG*i8IG+OcP~(RJ%fz04n_Ur_(ONLyA0oYgA8v#ozG?MnP}$yD!k z$AvNL3G-t3&=OFCyI}VBs_Ve>TfPyW*~Ng5f3I)8h+LNRE{Blf{k}+&IG%tl2-d)_ z6e0+I7p&I~w-GP>-DG3}@UH$YYGb~-)ex{;Cnb`-{zr8?pN=fF;tAvYy?d*GOa1~B z^X=Z=aTNfHDOFXqC60f8%scPVwj1#)`a3tmy%y18>FqrDy!G9z73w6c6UA5R zTJlxmdzX!M)Ddr#=Hi0#`(PpopL+|JQs^VCvQW7a4vY6hy*RVA$EIzj@_C=yhwW!* zYNpq6Fv+Udav8p%$-F;iNpXHi^NV{%M+I#br;oPKqg7kVGd^;^H!ZNA%I_^u`6o{^ zRSjlvKKGU~%G3hi$e?WRGN zG-QH8V&}5<-#R_{xm)C%!j$&EUvanV4Y&7~ce$6tLP{S0d9T0zL< zIGmARfBCt{G=AhKzYnQ?wdXK)FcA7~b@57P8lLrchkaH7N|T(<$zr^CM*6I0>_6=V zYA?A*Trvop=av^TaVxp>@LNu2>4m5VmYReR3Cx5=7%61l<32Y0uIdx@XPGjVk;OZY z@6)e8%p^B=9H?{i0A=732yI>HTPdLQUXlfAnOAb9@GD$-(v%u6OC>hD)j6GVhoN7N z6kDNQTl(DKF&O!n>Ygcu^19)BIdCj@tS(7o?!&yT8%;;VaZ*{gk4j!HeR1fmZkY%h zUcB_f&wA(Z@)>IcOm}SG$u&v*)!%qw#kU%d{k;P^E;+L4(m865OOeWybHiVoB0V(p zGgM8^NjXKvWZQjv|JkU|wiCwKe7N<{|H3QT!Y{@2?~kD4&8)IY#Ex2#naZgYjGo-I zA%@XTAAB^xB8toRKItpfnLG$WJth7dYgZjs)tiI~L22m_P`bNQq@=sMQ|WG{giCjK zmq?cgA}MhtmF^Uf4ng*y)b9Rv_t|~+{-@l-neUsKcix%rJskMVPNsFX68%N>kQGS| zRvhLqFrA%mY}meCms%oGp}p28gUL7S2_{o7)4TKMvS${_m`XlS>QlMXovS}UQyQWO zgxM6MvAg$)y4=e3&l+?nZWgfs4<7t^IPLX3^NDVUej94OJc&RXOs0f%43893mG=j$ z^-flNSqlBd!?N7%s(V)IyRRByX(ndV?!Eju@j5JTYaSY z#AxB&$o#jSUpw`>I0b9P2vYjLBg-GEd+Yk=v(@Z>mgksq=yu%glIwq=A)Cn`+Q6sq z3KncYtA@zbelWsk%28bT!4@_PklW+Jymk55o6E)rr%2Rcid4ez_o85Ji3InRV*ss_N<(v z32HYk4MR!q_itj>npf2hCCqXorfZ@}#wC1gGG@&9Q~MxUCqMpbEF|KF!Q>%9uEsQf zj<>&AG=IqYmDPzMf#*dz zkN;S$u4}$FWqRVyWmJL~rzNtmsS`q`L8t7TbU@tUik^2oH?WE-+m`5;P(e<{YtJ$C zkgaMyst12O5|-Nc3@EY-k#bnT)k80eNts6D@A^l@%*ec5p#Z!W@ov@Udq!>t_ZcMBD`qaVa7F@?V;t$h8Z1N3fIh z(nLaZ;J_e8e{hz?48Hz{WgFYnxPF?n!vTC4C?5 zaV?wb6Dtm2A{p?|>K|&yz4S^K9rIvpT1w7#1U0XQB2KN(&_=6dz!#^Vk}?Aorz$ZK zi^&(~0`B_E4$|{u8wrw#uJ(^U_UiAUIZXd7G4#gr!ZfL<$K4d0!bhm-88{|H{S#fP zzCoRYib*gV8kx_Eg?ULy`J{YQJnKp2Q)sNYwoUxG?q32mCJ*qynsEDLWkH2{vRH-1 zx=(N{n8~h9bB{loLP_a!1{MrtVYrW@S{M>T_rdzca>Hl{(ik_Wh8dts4kiRjI~-WS zemYdAQ5&f6qb4ctoc!&zj1{gRNzdG3_pb&K*-5RP+t#&VY8wM~|pgg5t zaRrl#TNcG|Wgtd^afSs)XVe{|dABNv+++SQz8^h|J6{c%?TJ`5x4$8PA>B9Bzqad& znVkdAGR(bJ8%EAObl+6)C*x!H%*kvr!i#P?Zc^BbiI)wG>%e(Ya+Q7h9uQbHB)xE>!7y5&j-hh@-R zAVOvw!cTu^{GLZH5K~}zxq)7kzCSPJ}dI5 z2>^}t2Vc0>gu5aCS^he({Gq4>%zI`&*q1VsS^NZ@&9Em=|6sWT<25}6)c?Hb_srC! z7c^n9kUxaUL>N3^O9@f66DbvW8agqfeg*yk*F*|<0An^0_*?xJIzd`uNE8dPTJl$j z%5+@~74B$7d^UgtqWkaZ_2ru!u0JgYhVwgE1(#7Maz~U>=XJx5fG0{adAF>lg{`ct zwh2pbNk87rZ8%Uf(g~-xoVJ_x`nP^{yV<1?ZjA`L{M4Iz6<9l($k@K44xvB}sZsa7 zQs?IK0)yW-{uBOQ!Go2B9j_W7&K=Sd9y|b-f=b*$dr<2%x7;LoXv`>5d}ru6Pp0S0Uf5n3D1D8<#z%d#k%+D0tn@b}o<_iSroh5Ej5rXTuWI ze#Z*QI!3ssRLo!7tRmq+u~p{?%xJn3(ifG_YP*YWnaVI z2-}+|^8kTf5a+#YARU4L%3p3Zz+_46lW1+`y0)JP|CNJ9d;&nrJM_&LA-Ac(*m5U7 zu!BAJ0&FYYtNtnkfvXXW(K4*9oSeJ*@cRxpTOG znRWfQ8%PedKh!ocwUz2T{cY;0x@`YY+xw&k){jfvGc9H-TTU3^z#lhL51?-L{@XvM zT+mI*B|=QGmebml0r!-@1r2(ro0~m@+Hcbw0XZL`9PN|?Uhdo4Ja1DxKUfWWW%7ze z^zYJ+)BT@&tBQABUAYjY3>>P>c7|D&dg`+t&u*`%L%h8L4vgRksj;|p$RQMt7))zp zbtlraVE?Kun5oupBk?6hNO^QR@xa>2IehdM_Dq9ra=HM@;ba0Pbd81s7FGm{^C_Wo zt-Np8S#ws3$`s}2@zuF+` z$MK}E?L1Ps3^~q`KZ*^sRJ5GDz6~TB+}qTp6S)69*F+!NdnV&xfE9@rA%)>iFvq{T z8I+)Acnf}&_2FmE?}obnp18y6$JMt1yp({-Ntraa?yFuYw%}&44LQy8YjKl!=Su?qBFU5`g@IOF!;U7U$H_5HYqw0MGoC?pM{csA0by z_?5KYM7-AD*F_3%-G(kG(^gWN4@W%Pi>XVU;?m9MI=H%K@L*@%V$|lfer|r;*OMMD z?3(FNH@|T7Ha&_Urp^d_54IO64S?jpFL#c9TCUm5)V4pLjN(1W9TEvaplzXB^6okO z&DCnYSK)BC2`vkTO8xK)pAy&{x${HBm-S%a)B|Mw^@r|G(_deE47Fb*gAf5X1fa%! zc0k9Re!Msp_@TQSyvJd8$0095?qW@KZK(wI`^!tHXTrZ^(FhE9%ttq_J>vRKlXfI_ z8(@}zJ-LvKkgAPxF|!V?gzZ|B^UA{rEo3y+^Ry=l%PZ z8I4pozeJDWCIC7CsrTV%WjW|W1o)H!@9oq30DO?7AFpn@Z&oh}5)i_Jzjz*1KUO1M zK04JEEZDyjMml$cKfKqx0^&CB`2N?L`2S$De+3o*_+13~+`X&k&0U}FdOlWM!o3S8 z7I)yJ?HRyErze|&Ccpn(nMVH4Wm@xx;r3;EtKp=>^aFhNOB&1_?!(gY53^tNFla|$ zn9a|Gs&F}Pb>trYSkY3Sb-G8_!*W~VZ#IBW%qQ*B!qj=2CvOQH*n;FOo9eJRX1?zQ z?_mydmVhM|r)CyJA86pV7WmvmZ#hTC<1J@vWge_=br>1SdWX98kqVFE_d{V0Hh_t!#hOh)?GU=t5*3v1BKm+gUUv)Smt+R z99AcIc<$eI%-yP<3=cjHb}-3+cks9mAlwSf2fv3mmMh%NZTe}O8isEPJb61yM`*jS z`!KKW6bq`m`JzlqFOFe)-f!ATe?s6F`oQD}}QO0yTyA5Q_OI(-(bm$#WrZPB-|wG2p4Yn{WLbZqKczu7p`_>Zgm zXF>u6H{7m~(BT9BmeoR_>SEq096Rfk8K4{JZ3u!m2Rfx%_mxy#1hR%$xS(ygOxQ3K3H%oCSzDC$Q+!^)ZTAt z^a~hJkov>Tf3a|I)HVuJRoZe;B`yz|=5w8JUv9GXvJwAhANj};kXTAZzY|gtacMpK zUduwNsLLVSL{Vmf(Z?8C-Su+h6KX;?q%g(dBlq$t%oE2XV9XK=e^$-Rs>XtlIeEZG z$w7<2dc79Oe>`=H{s-hCms$Y2y1rSY)lQU+#(~FQJ+1dJ&E;L)1SjWUJ4IQuCMM)M zf~j-H(*jsoIiE^IN+qZY$)aYFo9>@l%@p7?!Ihgxp_MYZ|EJ~J&=950CA0AuH zD${OO&5vJ3Nyy4`P0p^0!PGiusfHq;Di`M~BO#@=YM*6|FVIE88%p+7_F8;K%_pUv zdx7R=WtA<>^ksS9_=z7PdZG!MZp2inc41Q&m!bGB3ZhJXg_raH{08!)5Ekma+gbtQLn8?ffQ*B{}P zB(_Uoy<}4lPH26Oi+7c)BKrR@)6g6V6A`C}F#|>#KYK#`lj7^l(v2Z0nT%bnbbrb} z`hf_unrUSp@eDsYb4gOky2*#EVvtqkg5vO3tTKr-XONz>qnN@mPGuJ9KGJBffsc|( z>B~o~&FL{OLJry&CV0-bS#j9D&Mu`w&8zOqC{o^6QKTANii-9KnoL8s6jM|hg!!1V ziC3KWh^0h7^Iep&x4Ok=N4f=!bHqK`pPxxgnBL&mwZ|NP+wGTM=mzWc(PD86@hQ~) z5JwLyCUZo*%KEGul%j{Ka@(R1U>Js36_zR^)~V-x?|`KaL4FFgzu)&L)@h-+#E`N8 z-{j$aYpVmkF+X84H0N*xlVGK12BhR}Y54sGW--w*jI1~V2AIE67hj4iSHPvl?RVR7 z25S$ZA{!7eS2hvu(2(cjB2)7-3{IP+@{ro55ls!+B1r~YFm`^;>fqmy)9seHBMrY_$D(1y?`>6G>2*UdHZ$2LGG1ED` zL8a_BabX16-9=7xRsd&v zHu^hu+wdYL8c6*VLc`|DNiwjyJh-CP$RSZb6b*KG-pMAlA(!sE;>t4KS*+~8je_l8 z0%Fl(c}2K@VGzlJyE^Nz%ub)^-oWvT^a)Y0zXTKt(sv{Jh6Xt}R~XB8<1yZ`==E$~E072I|uWKmk~M-_HJklJ$p1N=eGeL1r@@<5&xF!=e(-D*=v) za&e3(KS$YHD;9f@C4K38hOVSmnx_s9Ie96K8y6k1Zc@u~t`00=-9CDHD97Dc=dGn(op!O0;ny%$x&*FDIFg94vbj9~%e?i6>>Y zCaH6NYGTn5Qk?9<{vp*~$9W46N|4j{e#1ll!;FO^;R&DfsMdW;jm69S z^q4+7Fziu`R^_tjtdclJ&p9;oNJ>ywiW)qQ#^T0Z@I zOB)o6<_H#hryXmiZ=xRWChD`{!6VbJAW|EENv0h#dPZuN(t?2RD`Jd5_f|R|D*nhv z7sxq1%51bHcy;hfB1sJau&-Ka4_lhs507UcQ&G`}4U|ns6Uwma8?xZ5iODS7E1O#D z0$BYBYeTgc55B)cHqa&FlVK2`qIYeU&o%0l-n5hjeI|2J6u^?OdPSm2+i;Wvmgb1>8p;b zZJm|es*r?66mYmaq#5(-o4FZdO1p+sQ&CCms9a`s8BAzw!W%e?cSS6g(#~iz3Mag@ zUpK8bdoV;~+|HB|%Y@KAs8z@#@%yJ$W64*P>dg7eBO#Q=_Wpc1ZBF&u{fNvtl_@DX zvWCb0X^|Ngk@%wX@aCVo&CTRSDOaqp;6kI^%$jDiA%);HUcG&1dYym)HwnlHsd2Cr zC2Tvo?cwx&(AtN-1KoDK0s=#-!TyUC|Cu-oswk908B{F3(Gx?yQj@59-pc2W$0jPj z@a9H7OHc~}qKj0^9Xz}cQ>Kon{n4E#tX{>UxTQ-n_l@Gn%zF(A{YGdMolzRi7mz^1 zdP=@w8<0Dg7SzT86pOHgnF8w=8n!q5r~*#3fCAlxxo2oaAtmZTXr zIfyqXuu!SqKY=yd6mx2`S3B1d*U<{vm#q@#Aq7|Wa%aW|ab^wl-a$yswG`UCru-rh zW|!C490Z+R=K3am;L-(Kj)MhonA~rf=4qJpb3LedG}CcT>9qPs?i;tnQY3oZe6`rt znH286)tMyq3P|-cyPyDAOA{uNb9bvOy|;4+nE`6Al}&;IVXx@7cmY%s+}+-`#q#-Z zOqzpzT`NoCFfI16EyX&@JPHIQXzPlzgGGMF-yfE0Q-f9|>}lU9*$jEQBhM55#2LDU z?Dg4IAuN`MaY4UkzxSlp`!3+lKF+}o2>9p1cMX^ZY5$Curls0cD3pAY@@}EM)w(2zU$ocy}O_nFdvW*A?U*t&)oox*;PX&aA$MM z;ldjqp~@0&o_Rcjh4M*!UO&grugUub5gso%3|O61&3mC zIoen!ENn8{$SV0LvKE=Fe1C?HaC5?fV?t4%WwFvMw%a95cpV3>M+TxP!oZCw;5vR7 zZ&z@}aON)?|B?stluBYC5C47|AZ~4{ZuU1Ht^m5OtmKmTnwsZ}nSTg%nLKO~Yg33T zn~}sTBNf*%hqSrTxviQglLHC1;FR;+*B;RARGZ&NBR2fpbly`&S*Q#=8BFm1EMHp~ zC;y~bd8m$`o$+f4mp5KML7fDfzx`Y6Nc!a>$A{VDeG>_bfB3YJa$kE+Rf2 zAQ#R(Rt=!YC1KcB4v}iqo+FpZ4>29!HDN;Npe+Xjj6y=FqKw!v68aC4m;_ z?sr(iI+fX01!~${)t;7!O@sh_PnZE#6FT zB^$_=Lq)wtzML5*4N3wjZ4CxQuWVTxp0n9Z>vCWXd3cxFzf>1lG?*_HjE&u394Mld zoi~LUxMj{gU_AlvR;X(_!-?}JR|lw@PhG7n9$xnN3?=9p_QfA9PqG&6asp6zb3dU>DR&+N<_YkHCb2(s)DW;^~Ni*j*&G>#!jyprq0 zPID~n-5|q-t0;_hQI(%IA-AF5kW-MwAC&%FYylZ)Hi$Dh$PtlF9k6Mc{~0aP6ny%1 zy$=a~ZRC)tM8eEYJ`^V(^Dz;Y3zE8kpZPQ`ZkX6l?u>4R4JV4Ue4N-gOHKJXkvNA- z>rG~>4Hk|3L62&FFPvQxLUJ^XVff)D)+kxq4x>>p(2Yo8vr<9O5cgJZk542glDA9VKBj6}&qU%>6>i`$YNoG4XOEQtV zrm&{OLJm!UU+P;-#ULk$0YmXB5Y~wqTRT~#$0q1ds|`_C%Ky6V;fLJRY(FRmb7H9d ztB#(0KLbnW~2G4CuEKVT#fuAr3%0czIwPV^3{W%1ys;-9kEyUxSJ)# zIpo4om&7&DdUb>*=cf26aWtl`4Mf#-$)_jpmzCv90I%^dVe{uyU#SZq6`7((;z-@9 zjOuhTsFs9?a`P@g#cDl8K8FsiJ;8!i%uG}ZFq^8sG*T!VMR#J=`59o$A_ z#`*l8`~sp_g@7V!^TyTG;{|x3?#rK*=waRz@Mt)2`^Es|W^#fz`W${SAdRxxCyV}7 zpqPtaSwIRo-K$%t)$EpHuCmPJjL`eU@7kG~`^q9xnkU9#rqvdcrJo3kz8j^IL67iFVT=Vk$omp>P~@vZD|ZuV5B9OVumw_K`&(T8I@s~sC+OY z#FfelGM{BU1u3hgJ|D_p^I~yJdDcK`$(aJA>nIinwnjCYSN42dM$RH!1+S9q#BrvW*l_72%X zfjLz2%;Me#0WbmZ&*sVP0%vsEX8%d}7V6vf1vNuikv`D!TwM1uJ#2y%S_R~S+N5=# zL4C3&VzfGY6ha4QiChd@1_j6EjD!T`3#52(sgxRv$|{45pfMg5(=$31N0ZPsi^yV{ zA~_m`tQwBbk3uZPgjQ`WO8DqhWJ)!R1*=7EH4+6#CZ|Oni=z)5R7qLZII&0Of<#ZL z57zN^ySOd4wFmf!vR#|27?IT55J?5GT0{u&zM4B@QGIKOMMP>iHlRklB0{rzH|A5I zW&jTWJpV4qxoka?;Dw$!j&%i9EDx2WP#WI5zo6t^zQ8Fb3_Qi&8H!qT;RZq%u~$aO zcMfP8yx=ra-W@#95b_^UP&FhYH+Zd4vfisPG=krJTCP{ySWTmd!9~~kn}^RR(C3B& z!kO_tW;-dI{vl1wa<{yLas@pS~x zebjzkBw~jX^s@w&B0uw)dUi^qIw`A!1`ghSH;C#V3ktxaupv)7{m$>1{e%yN$``KH z@m7&~?Ifj8Z4Ak2%8c2?grP(p*~8+l6liU7@D5eyeMt_nAEj&17+B9xy=#|E<$IzT zSS6HMLoxxmixv=awJX3CtLAMHIt_I^!YXVnfF+Q|cTnj=L-@%=qqWXfHog08YJi&Y zInIkX&YZQL2SPo?{JNjrP=h3$39jilvv1}zIuLhkQ2uZ=s-YQU2Gi0VV1jSG0;bD9 zDx;hhPA*WZ>z$UM;~rM`*0+Wh!c_WsoH|Ltr!hU2RO%hM`c-KwBJ#dfbrEMCd(|}! z(bS0+J$rRZ8P^{Z;KLk-&~7tnH>vwCa_uV;cH;`^Ri6BW@qn)C@-M1w#E-ieix@1- ztU%^|JN_N|+_AV~uw8dlV{tq-iT<>H*?eia#J3O4{pk|%@&nr+L&MC=4-bedV$Dm1 z$eJojtg${cY5gwgit4NbU_D{`e)QWq_^;r-DqaE~Z(z`nDUo-QKMT}jR>#wW-7-NS5R9gE9YFZ~9 zek<8UvM`G)EJDs7+C&O0C=%MaXonqNj5@7e46S?QAtI>|>$`z?ZfYCT`LP~w>Y(Fy z+}EKAqS(c(2tw5UnWpMuTP8Hb+e+K7pIK&D$!>JqTK$D$LQa?PCcYB9JQ(ke&Sx3_ z{Hj}au7A4IdV3ZL+^ubY!S_~T0ek}2I`8`e?FXXFL2&~xO@QM+y_ze)4uzw@LgMM! zUp;T}-o0w?b>`jCcS~=!hY|jM;!a&-=;MsYGxnp)rz()cof{{Txe^BkpCJ@j z$=YrrDu!5oU2#)WQ(O#=4dI<;qe-!_C(5z^U||?_$}NR!A;q=3iHt4P9BdG^eL)za zxQNv=8&%x(cF1oJrbKD>ZS3XL;(^9T7S-a(a$4}U$)g6BCd&aDn2+xydLm69fTteB z!OR+?!sStfAt8l@uCmnDW`n#X!X}zU|1#BCG6a%-ch(MRwkkOn}=^ zk)SDg5x%H>8b~!dTt0RXQJ&R>Nuxd!YRB3~lIo5*p&n@AW!NJ>Wu@zrU_{f1vVftC z5MRL``y%sGLCw^`anQ&mt3#wa;M&Md!y39BVylG$&a&qQ#_gM=k1oY-T0Uh&{FVAo zUz$O~_;b`uEsW|Lq}P6w&5(hFncrpd6fy1+W`NE(FK3R6qau|4hJun`)l!nc*k z0{4+;t}L^UW1zp3(S;T4VvIB=-&q=-YKXO1H9>ROBFIxyZu1%w>Z$8;`Kl`(irSlh zUc+E!voIgI_@)1#TBB=6=Z(HGho|?C>a1vZjWSEzd>rEl+a2|-RL(xlTDi?ltczUB zW}4;Z%l+;(`l1q@OUZD9F(n;9D00m`0;3!?)}j#Ox@*@5HKU&&w#wW`rA25#V8&2( zgSC|kh+|-UzcU{x#yzBVo?bhUB`1+&gO-uh6O!|T$%O6s>LXwv4pCU5F~M%;@s#Qt z&IYKn*7bAlR-rfhcLuHjE96hs9^<~B>S?T&|#@@=GXkjCvYXi`pYL0MO z@Zw%h;ss3$p0DR!)MjZYbY4fkArMAQT?|B86aq&jfcO<3w}?R7m(#_*5kyWEBuKJF zh}}D!@%odP)IKj)ihL_M1(m)TV_G})8Bg~_6txmMH{DwFoDD`}4hjAzZX**{zIjzC z85Vpck6f{CHW$A~Pl#s~$3hH3pC3zED4LtyJTYX2*ntyr?La~=nQVDVX)cdUYvVG>uh0t#L z^i1{4N(AWn|etn z{@zj3$~~_4vCfMh#}=~Jmd5{zV6QJKn>-7oQW;^aBMjIF;g{v8VHd|AGO+c@xMNYj zQ^5=02=YT<=^uYoqcz4XLxjZ@{R&yew1G~P*}2x{gj(W_L1t8o5HwFBsEl6eqt4F+ zJ^dNh3*+{iWWL0o9H{;9i(bWVI$}PA34nwacYY)u-V-{1k+M*z@7qD)dW;4Jl8HIaW?2T2Kdp@DF}lk7rbz+K!*6 zrs$ia_M&2l%>jg8YP8%`?k6r0CBrmbETgNCPUipopXSjD*rRI8X{DM@>q1gyl;SLx zopoS>bBCo_@S_v7j6xi2)9ZP9@nu!$SM=EeL@AeEFe@@xQMBugilAoL)AU{{ z?o6CFBD8 zo+Yz&;O0oq$59*=$*Qv8YdIW6))klcK37nG%R*+IJgC>uUP&A>2@l}wtV2Wm?w1s?I z^swCZW}dj8ZTs|JO?0JHL0a1Kpn3(aA9DdzqOf>P9bS&Lpb*SqgFaARS$z;z87QfJ z_zm&PGJ3lzWH@_$+~yA&j#md?%t_d>WoZE=`mku3?8PInPUE@-epOA%W-UfYapLAH z*Rgx}5kSU7m{owah~Hb?0lF#ReEqovd}y}iY&PaipC? z-TSbHdQNzFh^Ftb(8H)LbJ>*4N-dw=VZf<=ZCwa-Z2nkQsggVkUX z!RxsgNg`!x;#?sVCT!YD(aE1=3|3vw(rGs=zrPidu;keDDs4!x?7LirFX9?4MZVF2 zL!C|hznM+v7n2p=jHZ9;{VA*}#`T}px~9g`8-D|QlsGFHA2ja98fo;W#YDcMHjc{m z(FbpJR1{F>m)R|(Kmh&a1u@0t)P~*9+|gv~F{5+leo{#*ZippG_Pvo=GDbqY4TH~@ zZLCcKPekI#jI5Z9UPdJ3TQgRj2%EU^ZYikt`xwHLwIW^AST&>$ssP;e$|`^A1%!1H z@`K}UW)vg~_2EJ(-rTZK2eV!#J;&>QMDO=2+*!~we!hJQJXTiEf}zX}ixkv_`XP=O zT@4LI@r@ksb;Cqrqr@2V`XuZn|9m227u6U3%sbksid-cZx@M3|UCQ;j5;jf5 zd0AVm*}H>as5T5b-|De8>UEJajcyn24-${MOyq)?w3iNG%->lsXn+*f#;6!XhTpz9 z_{=Huj@tLa2W&2SG1^Njj^8~WFUbl(1}L$ozpSk}>G=b;PiQ5~lDyX-UVRDT48T#< z^Ep;^2-r8nUxt8JRSXy@L}|@-rcyFIV1TgUr)}W48ksTyNdZvamX4-~d!-B~Q(IBi zK3*Qf{Ulve5D){w3VmxLw#SE3RSIDXBMA1?7&HummEYDz!Oh$%EsgZ*U^=$k#T6tY8l--tI?xiiYh>-Mx- z#rd;umq@^P#a==nkr`a-2p(R^v*5LM9K5?~p1U${@y=HO#Z`{3Md3CBY{QQ<(UJ2~ zfmuIfk9n6B3|NQPu-b&joGZXw++@i;V6$Q4tSMgUl*?Y2X)#B`Ss<2)p7{T^1EM31+qlbtj+vQ7WQx_m(g*9`^38grY~_k<$>&XPCOq1mbezK*`$E3OWL$eStM))Fd&kWJqa>o z-mhahSd-3d5*_&r42WU9Rmy+?akNC<{aA&|39*09p9yjG{Ae&=w3bg;SBIJ|Z}a=1 z3mM>K*Qpul4cXtU$hjgcOr*tR?0s_+ADcv0^(hbtx4blyB5q!Lv zadOSfTC)~^@YcI=?z#Ky^X+ecdp~A&sk0gxo-^OcPn%Ynlvv;Yn5Ye7uV`_>XYd7d z6BD<1^b#Mn_%T1y_*c<06Y|B(ZJn#k0z%wVT_BXN*L(xYtwH@+;jb;!9z6M7g9-{G zwtg|}n#ze6A))+@Kgr)SH$Rpk}J^G+gV^0uAMI5nuNc-3u`!j6$KFNHF+jIPuP6>0+jcF1IgAT zNqGV_+`48_0dqu@aajT+NXl&h$1I(lu<}77C}xg4A4l=;~j`UOr8w_ z>%CBsu5Fq_)NY%?I%0G2(*xS1B!bSXrG~9N`2-JZkHyU9hW)?*X`YBt5{H~mt<9u# zAX%7Cvc%lJ!)XL4l?OwZFH);g0YU~HT5uu5VPn>&p|N)`^@2Z!o~~lQ3MJdzYR77S z*rZ9)fwl)GcDs40N*h~6OD%qhZz!N#IDD5MsS#o6YXngQMjt}>W`FP5S<6^u%kbS z)bIcX1*D{d(OQCf`2`)k(zWUy^AP@iD_cCG*hb$@?pupmJG`wBk7=gJxW?6+_9 zP`qR6-rlXKj4Ca_x(wD4C5&mvdXvq=+jWf;jSIEOQ3gMto%n^kj1mwLd+8?^r}U~y zd4AOwzAQ7zD^lXk14>|lVn)8Oq=aS z+246@ABYL3^O2I3RZW23UC&$*qrcPHM36C7-Rxzc^Ai+ix;^5i6b{G;Sz&Ddyw1Sz zxJ&!Ny2`WJ54nOpm_T6Dk4a8@BddtcTl_KL4P8Bvs}hB11e=XfucYHc>xS5D;;0$) zX8(~gLfBz@Wr9;X2>TJQ^gm`(tq^@#DundR@*TtMJOcxXai}%3pQnH@0-pz$11&U2 zRdW}-Y#@swf`zc^@T9o*Ocj3-U{+#VJ&BrM7Dw68bgxU{)J3Iz5wPDc3if@-TrLHx zQsV`KMJ^ehU#Q*9?@?wH+N=E4hDT2+xQQZMM6sMs<$KR#q&eYXK3~~E0RuG*-FozR zn*sfzx|SQ=0WnB-@a0B#Aobd)0>Un-Ml+Bs%?sduTmUu7d_l+k}H+@S+^D zL5?9R?}h0d<$EW(#^tKQrIvtnsj7po4DQ+2QqGlZbGp@3?q@g!VO_1-ZGJgbif`8K za1MskVG_9JC8wt299{>}XXBUT`H9qTcGI1o@T;6E&|N{h`a_%O-g-uQQDniQqXlHd zE1exttw${q(?AJPQB!@DSpv`tAUy*~$>X#opOEG_!4H z=R{AutHfpiIj|9xABXlr0Cy`ITC9DVS7@njXi+oz-r!5MH5ZYNJDwX|2T65t9upMF z6#cE)fQVqo;95lRF`|w*I2+@Y0mLnMy=A*)LgU5Rk$~SaaJ4s9gEPmo=_rDzp-7%s zC*L;p5t6;8GF4Mh8CyM{>>9O%Lbc}XQ=KjyQ}W;#ltr`GuulA-@_Lx?L0LBHBTWK=ZA=`u^!o2~_Sa)Q9!SL(;M^ zgUOIZ8$mjQ%oG4C3E%f=40?J=H;(+!n4weL=;I%qsN^J2sc5k0sDO?(8()uBNZyTS zRzI6f(4Y8fV^dtdpPO8d`{pl+ft z>7y7>@Pjn7Xf{L7K)L=~=dc$FWwW-ge<;^$9`YDKRwy#CGDweX@%y>=m<#Rt9MX$h zC)8i7>-_N>BJxAzxpnMAg_J8m$aeTQ0U?`17}s)vP$3n(=xM}8LR?=Lnov%_HWTA} z+on-?XbrCkro235-w~dB8T6!P_@oVJarw!fBt{Z9T39B((3-dBKPqpd1l!x4IteJB zZFN(4YR=Oz(i34CJAN&F&FE7!lFEFkB)GvKO55@>oN#F}UETp@Kc8lRmEm!6e@mrh zap<+|)ldN>du3>mA8W=&QyL@Ff_p~f7lBC}_sUrq8f)N>J5P+sQOO_|JLQc?7r#ar zJ!2z%MfxnelIdNt9wMQk*A*%DaJS1oB5C*eO}>8G@wR+i%pKS5)Ovd5ONl`#IiN3! ztTXAyv;7+JYA~1JbIdV9M7u&Dy;29qVt_Wwv@a&+-JM-}f}e@{`H1$Ff-W9~9zE4K zC6}tc7|QP#265;d2&@!E>WZTYn~T^~8`!}EvIXLZxg^;^5O50$!FDo$xK&g`r_f~b z6E5#sa0#EsijLNg##QZ$aXBnDJXD+;x!FCCGy8Pc;0fMJ_gj(y%ufJ7)IKQ^catT^ zBl9zpyCoN)t*^<&Sm-LGPRzOceT0_nAx;As*-whXMiWwBvWh_=`GtBEz10&!2wqxA z{xUi^_MJv@rIG*=cVP$zeWr?Zwb&m#>wP_1{yXv(ysG{evjno~ zLCD~$R&?t$tB+nlA{QVK2h;ZTXc?1*VzSq8#jIm6ztySE?jJ#vCZCX&Oq*aDE?^dU zJrVMxaQ9}2Q#tAc(3A}?Ucrh)lFfl_J+bUyT@TR1e&R4?!iUohLffprZ7pcyME^n@Nm%eK=#RM#D_=`pFde~&$W?2mr>UlXoT0PU$Y=oHc{`*!k=3?BQyP@ zT?60*dBQ&9!1QyJczNV!ia@9hunM}c`%Q>#amMNGnGa?N&k6yVZ{(ZI_rSSv$m@XxT>rkObthQ+*!5z3PjhbgxE zf-t6b7it^;KF(li zseK|B)kq%=Fb)ewjyA-p$~lk}_{HCBf)bi>I;`@n{6oheQ0m$I6E7x#<3;!QKf{Zk zvi>3mUgXtW{r!9qKtDUwiyuF37&}$(Dha`0sf6&J?H0^3*`m`HrKyV>6AtC@xkbN? z#I`^S{F(oLONwB+sh0*--*W{L9+r4^86p1KvXsGB9rueBCAqnlr%*Q9eh`RD?=m?m zooz(;ajR+(b#pR#vo?f<`8;-0o+@``)2>+j8D_*Km+PcGW?uZ`$aKTRj+bR;!S30Uqi>z!)WVo88ouT#~Za5K(VC0CkZ{H_>#_*#?+|4;$d&9BX3{N^jXV5 zVe?V4<#JT`GYMgax?jx%lRH=1d0-u4YD%2}G@q+Rx^I`CSaue}$nQ9|fx~xXgND72 z+7}a3P3~Os-S{KLmsb_R`}hjt*VP45Fi$WNbercG%qMtD?PSg(@*I+ue&x4CKto5o z9lFzXD4GW{8*xw=yPZOcv^~^oq$Mn2-jS)~9_Gpzfl{q1;T?QeO zK6^+d5ppnB#~4Rm?0Uk@yuyl6=}SeB(EeN>`pb5AKyC<7hUV2>#I{^zAYZ>H2r=fN z$G_xHcY9~9y+tr1rXNyWyIw=W0hDrek3%awSL#B2+Bw5}AJMD$G41IROIVJ8wU)J& z?)rA`p4CS1jQwM}#>fM2fRYnpY#dLuv*kowv>R!kLSOnc^iZjIqBuoOazMyQthghJ zMNgDdFCok%x53x&&(qZg0(6I)W?;$cO|=I>HE-X7$XO21ZjA!p!-ztB#XpS9K*wWe zK$BkQsLjHZQQ=?yd5(IL|D0UR775X7nZe3zoMM3>wQ6KT%q{%ei-41#LpAL)S2bMg z*~f$`Jr~bL7VNHpkLOHZDY_r-*uh0Ua%&FSg*u^M9Ky|d!z&N%`n@B2UIy!3fpR3; ztq*~}=D3d*3@ql=Uc|QkoZ~&{s2f>l>Phd}yY{Puw4N?_Li))Sff(`nx(#_#^3IpnV-CEh)m4X)>FsQatF!~Ch(Ka2TJNURh)%JiZ)-}EdF^Ql zl`uO)qy#$5)CARH?F+15hMIO;*d7K!ImdWjDGVzQP@J?b&(pc1MI8|QGG%WeVzSlW zhKOvaV|7KFO~HX>W2{_lTZ%dFZtOBOj_uy{>&BQfR z${!+E+M4SF;H3g(Lg8Vo#Iemz;E|^n_0Y3^r^LM9>y8#HBA-&v0vBeOdJVo9)3aaX z+;>B4B0c*TOy4@dliu!e`q$2JuTot@-7c?%TxruKoRDZ0 zR~d6OS_OiP(?@<*y#B$*CR!eenNk>lEK3>OAf)=#pM@0>u?=%!yc1umq7=l}IsbJu zs~om~oWVb&;g>94GwWi(005` zNHdjtq9OFU7?-;;z#FENVpWz%y|6gOgcDR858iJ}!wm`0pB(oF>0;uCToo{_$ohC2 ziv6yD$zJQEFY*JMT9*)*TvD@J%yfS$$6T3 zcUG7QTBUZhwsb+=rlqgkle3N7{tp+qQG{zTjnol8DI@wmjn~v5*NOR;9RMI7|3TLM zC^Smg&*}}H9X|U&2|0xOQo-^h;_aRc4!WAK1>X)bW1HKJ9Ktk9sPo@-_vdlFKGGcy z9Oq$*QRF%Mf8LcE$bj0}jY_JXnh6uK!ze^D2^YLfkYA$L{RLbVJi!yRgm&evTSjBB z$M7TkUS`e;R5cU^(eO}vgmh=qY)!;iH&ade&k%(FE!b$W{o7U_*ngimRHVS0R95)P zuv!f9y`mazLy711`UaYR)dTNJ0K%HZJ(bJ>;zey}L2r+MM{;(1^J0bzcM-}4aa;KQ zoI|^0F@()~C@%|@^HRa=as+nH;(`k zcM(7zm~WPPm!BVOQa^a$}$P)k?fULz#J`fI_ zhPmpoTqI{LcHz$oD;HNN;({sa zKd{Yk)}z_N@-?$%PL+B>XwDj*U{- zaj;tLVD67BXyf{Fhb}WDJuNZT6ia$X_P(qe`!0aGFPUu zVU@N?RYZ3$<|hctOyk&0$9QUv3~3^zswdoh-yHqv3!AX0@XyG)lc?7cW2Kkwd6A*@u01cqs;(M@vxql8jN`BF(+V>PzUo#DOM$8LN6m-&3GFoJSKo8k zACWQo+7{7S;j+b(-~Z$WU4Md8(h_@&x7J<&R@C=&0M+;@pb#-E-mDe@Ue$9B>tLZU zOMnvKyMC6-%k^`_SkqReN$+?TpH~{}mBP-}QRZ3{wDi$Io*(lb;ZPV7bi(@N2OSrD zpw$$@d__zGgN5_aMEIjItbq2bkC4wik2;>SxKpw~QXqYOtYw1Skap)idRY*~lX4Hf zY3+}&(Hzj@TspU~`>mDWUB< zGuLUeS?!($3Zt)o=K`hrVh3`uQ%tb5%$u&Y3-kL5Yw(A*EK1PR*itfY;Z4&*m4cn6 zPf$p81vEzl?36Bpi+rm3N&3Y*=slzkc;B_LrmlY>(l(AucQko=a%3N3eBjk*hIv4k zT1!2dbD|`cf6PxY-WhO$%ap`O?~ftony*2hBwYP5vOk)q3?>hg-P?0VF3hUFef1);BNESyYjI8+#JurQq)Hr< z(Bbc640?-^6Z?N6Ve!VzUOqm1{aqh(_1Y_xAUv%mjwysKb^O zD9bE5s+GbsXK*AxsWv#LHT@bm?d`xHC7!2R>sBx!0>!B?#&1YT_*%R1MS~?p-0;&n zU?~>9iGS))A_?(gkmo>B9c$-(x59cfGI4C`)Px?fATB>#A+VqqW`pqEXdoaNcb&Pi zQO=Yu^qMWE`BA;c7a3f5R$0DYCCYpm@aGn+)i_DDfnpkn|P@auai~>4cT8*1&(R z{HEO;`B0eRLJ^L1AzWHS_#*TTjZCZ0cGNK$H?k&?k5sZNnoOa79j_@xD^E}l%ctVc zDv>HhH41l#m@P$=c6BhSwkJ?Y4;6_OHFVXClt<|Czl$04) zdF@A-mkauFN(LG_Anf;=QqeN8jEB4@GYqnl3^Qel3@3?vvM0cF86qe7WJqo5BW2lx z>maSMWp|z^-qhau(EBY=v0uE0M z#a4Qo6^)PVrz~=uMhoppN>ZI7%ZAM>ziDlEc1-N;<>EFE4y#hu^+UB~E-vdKYM@Xu)x~%y^uGR1{YouMdc=DuLGsEXd5uGSTK$ZE0B+*| zbLI8Cy{lHBQpH4F>X-Q1`IFf2avIEuozl=2!a;IJnZ`2drXQN+H8G{gU)B{J*isNS zNHYdx(%+rdL~Y#IX5$5XfXs}EJR}P)+8a0s2wdW`K>e}IrJFD~fC6_5O7xp}2?+p$ zX|F^*ED!bqU)%laCr|OQaZXLsr@{vvz}GB9ussE|^iy;Ni}U#@^oq%FPAv3!E#yWr zXXV>xc7r#q?1}uEt3M-KqEG_yu!Y#eM6FkO?^RoHyFQTb_(EOBXgDFD%Ywu9Gtfc; zkC~~sfB6L|@VL8O@|U~*GjY$(Kfd(LTdRuE>cPVDa<^TYX3#O3UcV+|S>o<;iU(Hq z!2a5hLV1AIH|&YkWJW8!XId5TJi^pG#0Tb!B%t$TTR}zy#8j)POB7EKfDqOiN#T^_ zHf|CJtrcU)6OzI(2p5YK1-}PowwsFXc|nU5gy?YU(3(MeBn)6-9X`k-mS66%=W^fy zDx3A`!PTbceZetRMcdE1nUSpQ+WvT&4^?pY_B@^#(31dhEn^H^<xA1yMGH*mJN* z3^Y-kqL7Z&%?XVGAu4hVO@{pO9_9$QhZ4_u+N^m`f&cbeagjWYySmP}``E^j@bI>+ya@T-+ zq9##t2<2+*GZ7D=ejQYDJLf(SE;%=Y2dhyv{WI5uedU^(ozIl!0xmwKp$>&Y8~5V|_3-0tU=>D-u)9CtKEYk*rZc zH^}-kyX-^gaRR2lrTaFV1`Pnb05>85v~Izp;RRyQ(gUZWjzN?4XL>i+e|%|dkA{KC z(tz69bHF5SSJP7D-(M+h9Vs3v@n-VOW;pX-X2>jDm!X%xU36kYgQmq=6!emHp!TGQ zIrV20u?5|^DuVd#m|@$zazJCr$Id$d?*@MtWL_w6J+<~VRkjw{*3D2h{tU#(lv2h( z$Zyq~%HxE_(wr)o1m-`wI6)_da6-CR7~3|CZogEBZ+u&vV7~eIkX@Se?y?^w*s5#% zOt)>kh_TrUd%3CkaJqK>7cQggLj3$f4e|Pd4_Q9&;`rewu0&=xn(Gc zvOhaC)caeQ+wRibyY*43!638agLGul&EaWg=9QFxv)eplRNtS-ejwk{b356gpvjJc z>!AIR zL~3*}3&QXKb3O)sjWRGId*gH6K2h+__x7N{s2u>}gRQ<%*3#w#`iXqpj(Vq;Ir7Z2 zmdiEpu^QlQa$#;?BwSBM$4Cwo@gL_%ykO674ZbG?{MBMa-~s>o`N^Vx$K)!FAS7r+ zn1jiDKXmEs$-6RkV4Q1#0h$KQ>u~<#b^U{Oz%^A3!hC=kBsPhx!Ct#X#jN$SQ$o z6ra4r<4QN1j|^)Zn{v0OOnZVXMe^Y8-k00~MB`>YH3xKVlnL$`)wnQe?DlMk+ox-7 z0oyv&i=!YoyF|`ErqHiV>!95p#)5Pk7@#H!0$%!zu=kjBmCE9y+fywvMkVOmV*~g= zE8sr#vXKb9Jea$O7{&qLqcQ@y^#hR1a{BnXak811fCzK|6I2PFo4O+p8wrBAJmf7#nY*=c6iCOE=7hk2D(bmq|8f41u60__`9P6y}Jx*9%}B38uUbk>;Zp|ls6)A3Sf5)2?E_U3c{r=wv!CZ z%;Nt&Gs}Zs))4=*N;odiXv{BH?35h@z~NR2$PTEzAkKp%oqg6fyr(?09(!pK7iygQ zKhOmJyZ#$SD`|e1nDLDaw&&`Tgvs8fpBCs_g>Sfg?(xXkfAG8lKCu_}R#SU{zEykV zbRW`DB*Wnlq%dJx5AzbGba>4Cvoxr7p<-c_<*M^hE zwnqKxDDkC#gzL%!NiWCK#VwacjSH+HE+xaVe5VGI=LaVdoadvZ#(^~lxheLF^pFiy zACLEA)%)g>$X}VeETj-~z8R`tPm2qf+TL5$Kq`hyvD3KUKy&j~jejugfRZ?Md2x6- zxph8yI(f*IA+h2)(*XpE1FI+dYuPG-tkM=X7VRl|wsV7DNXT{PwfytFU!mPywl>r_ zw^fqA$gejQz`U4@$V<~7lXZ995Y1Pse!bPc*tlTyHsL8{#o?C-SNSAbUH`3Kt4d~$ zU^=Hxa=YgH=`E8dZ4tG5llOL~OJ~SphSxMyB(^*YhL)1bUFE+KQ{c3GTZ~{4qnqmI zUh7=bQDTdgDsYGrg+oVazAtH|6@o>iipxHN(zD?q4gBhVx>-UE@7UQ1_vX_*d{>&$ z4e77T6BwW;ZOD7i`Fis1vc{>u+hMGN>lXXPLVX;tt7#o&hQt?JQIK7^8xE%Frsufm zVIS%w)S)3yYLw^Tmdjl~CAeH*pG}i5rZq)*`aqcSmTwUD@=l8ImJJKI zyEZ&a+RGi`rOPHOK8JbzjE9=45RkyubO`XuxT{aj6TwBArg(@@@1w*`wvwA@U&wG= z5GROtxV_#n9#-D{5!j*q*8|SGyZpd;`cD0hx$ADA^9k1F@RI9kEKF{RI{UTX12O^2 z;dmd^xxYKlvnKIWV+C>^zAYnnKzjq>@^k~yjg@ns}qOneus zjDF6OK0)|L;z3S$8&*U`%F@ZkWQypgS9UoyuJJWy>W5Nbowf|*Xs{hK=i3SEZwYd} z`+A2x1%t>d$W8ZH*ajAL&BAH&+nKwy{5+~g%VwUZl_31V(_O>GTriUmu~+`(rMtS= zZ>~_S*bvWj>!g<*&>#^xMC?*dd#f-7xNZmeLaU2~4@6Y+C$< zQvQaXDH)HGk7>Leu8Q7$}=vI%XE{5)nRkbvAEGq}A=>hqO~? zz84NZGPsK-tsUp(?Fx>(Kc3-ydypsDMBN)-iL%D9Ae%ZjDd;!kHka6!o!K`1Kq?C_ zuq1o2_qy8_gn@#SQ< zXQyFL98FC+6^}k+5R{9d*b+U0JoArt%9C-YCf4c+<#AF&=Og#C|yNq zLiA)u8LG729X&}fnNt=rnU~T7Rv5u z{e%_UfPQcP2q>t(SKUvtB1u#`kL&FC6dMEI%FWT$=Rj7nqiw}~e});!=+1FPebTcN zx3H1KuS8HbllraW?J2Up<%K2RY9HuT*6$P?@c!0D72JlnNjK`xlD8Z-HO}j+x3*dK8oWs350}VE zuF|uuI12XPl$xDItL}ZC=9g#ntHQ8Ox(X`N@-0!^18Zo0YyTCfUcs^C9cu)FL#`EY}b2x=Lv`0 zuHV`(yKorym2AHLh-QUkYb;)^ac!z}TOQHq3G&fTNs+(an6Tk`B=NW&R-q^6vhA-b z$|2^!h?-hr94waSC8*($PZyowmKBd84`j38Kvq4C(KC*1fPo8)kn~{ zonMqNiHZ2~^*JNKgxT!Tl(~Q(mFzH&`zC%Ze;#+FzniGRdYSfGf4kcQn~Qll&fm_u z@>yH`aVPiA%9PEi{=k6#Oi6qdgz0hReLO_oS`L?2=dw1`qPsXf7@u+NARXni)=&%8 z!>~?6lxzp6Tji<;c@S7lSY)RfEKMr-*%}I+RYh!n8dP+-l}YhZj|%da`_ftm6jgE+B^o3a(CSJ^+S0ja`PGsNbz++UfbmAq34ULP=|m zkc_%=2aEpo;oZG(>dLk&1HX)U?#AqQsg_vQ@D9G;+TQf!h1>3!`UUfc#i={5VoW~o zvtyeOeVBBi1;K-L-{DtFBJP93TNj&KuG4q$?59pAm%fu;54;(rr*R8soiAXXdgi_P z)N*}V!->tceE`98aEtDk2sD;r#-{-y`GL<>{1vY9B}e`i?e!9-I{D6fD--5UD&)rI zF12Y@tP7S0R(iR${OH(z8bA!FFzKOEDMudBNUSofDzLmlUB z@VmdRiK(vB$XB~W{wn^UO$8^jqxKkkmTdOvLN5{q*^%$b6z#D2A9)G~gWZlLr+TY( z)m&BMIFTA^SX0YgHE)aq=gkl7*T|h*Dlfgm<$ntlh~j8W7#&1Ndg)^PH76>2$W65PmQ3)sXo4WOMrde8c?i@eZws>N8=n_JronFGKJP`OnGH z^J|ac!%S1n%N2=bHLON;;<;$H^xG9KPJ9+=j}uTZ{~E|GpeDXJe7URqO1-h6%XqLp zw!jI!%3hW2YWM6i(TB1b^jU3_EgJFEognkyPp_R4HKL1f#E4wc;5m1(Bkn9R)uPNQ6a~TPm}o^aiS|DzxEw`)$q}|_sYX6 zjL(`rU&c#BI&c(E?$mW2n(vjl?y#*cd5`aM!%-0al^tS8yL0Jk1E^EfI89ceR1eB4 z&Ie~rNzJ4cH~$&VU%-rC$US1X@0HI!wPV>8_`VMS>*huC)!{t^)7OT7IeU+x_Cgf_ z$R{0B|5ui{aH{EfwXy`mG>Yae}hywX( zOv9c{o7b5%yXuCGOM~^g+D$F@Zpjg7!&< zISaO`^08^3CJ#u_W4c5!f6y>%{sJM2$0MxPq*IA#;sJvD=k}CJ@A=VGaNjRALSHmB@9=;k< z&pBm&>>Z~8gchuD&Rh9_dTyY?Cx|GTWOxb`7&?oP^XT+23(E-q*hVl{zbKoF=zjW} z7=a2BDb+!?fy1}RU9*eI#;S!!LUIw0C-RTUN=9GrlkDWRP|^hztz*&6q;faHwb@fF zf9=Q-Hmq`2i}~P0436isI-8L%W-EjU3KiE9t?v6|gX+l?g0|&LITC$!7NcFo)1t0^ zH&F1JPuSo&6{qS33PTQ7c2;XM@=F)or;2m7-D$^e(9#~_o;fTOMjCl*G; z!^uix_h|?nuCM6Nh2Y8$O_=+5jTSrLI{aYI_~0^hREcUXhAN@{j6!Eu;l~c)ua-p4 zv7{u|5X|TZ&KA?}X5ue2+!nJn!YAbnw;x*^M#r%)cd|hsg6U97wSymIDMxFPzw*5l z8Q+IM9taGwfQlOTng&F#ep`yb50!`v z8oLx9Yq-bIv;@Zy(LQJO^MJwgt^FQH;Wk(YCp~#vArWK)H^mS|@sW8-+>}_k!xB7I z7h9>7=6S`Xt!c|~)Xkh=d6pQGzAB-jTDO(2i=vbgCESJ95(cPx$F^mvjc3a&DN1y7>HPMPD2P#vdG7vT;KGw3*+Er;`#Jgl-L@%C) zH^m|FOADLTn%-Mu(DJ5XLLXDef7GB8Y$HO!yZ^I5n)+e;8Xv`z^zpYq1;)9rsiYGv4T4^{>EV%JC4;ZGj>2Tpl{@Z z7h2+xfwDmh*k;yD`HIDC!!T~no- zBL#Ig5^HwfJ32~tCJ{%ktVO(wh-OTOwl_|AfRV|Koq`G19bN`^ERr*jVNU8FN2xZ= zEVmpc)+{BNGCsA@>@S8qkFq0WYSo5zou1uM(E_tEx~54hq4 zG{vRL+NbO^TuRB#Midp>&a1My7JJzs(&P~lE!1L%sK*_6+C~m)oxfzK5hz%5Wbca% zA*ckCp^Pq)cw*0@w;GyZ-18u1oukgxwA@KHb{eJ)3)dqvG{?LreOzz*kS;%>hBRZk zBSD<;l5Fb=ye97Ska{TMhCa1(=w<(aER-P)L&RCjLx;S@S&JL2u-5 z3Q7podGqcCH5^!Wof` zg*6u^!=ljBEM9K2L|9x`{JDmd*`{{hJL3kizQ)fq5(UnW7{L>Fc$_Nt-DB$HM054n zGS%x(gxgurkGrCqiN8@eL6Vib1r@YvtMWishvP;l(vO)y!xJ%^toIx+Tp*6t{Dy!Y z{kW$SAthjCPzR$=RJ;!$< z_mUWL@pHHmlQj zxsw3>1jJsOF=9>3xGEX9p>1k6Z>D36+mCyI@*t!w$xOL*bSGGOi9TyIbt@;Bo;|j| zY{Je1y_BbQl^=hOscI*m_EpTW-28^zH-yakjIRm$z-GsWCZ$YF36#AvgIn`4&%3@v zL~lx(aUa!P))*yt8x{xl!tRobJl1DK&knUTUl%>)I+vXP_R(ukvyFzdc54syxpyR> zc2I9h`=FL#E7L%Er8#A*^UGC=%cc5ZIN!&4bfqyTgnbTwzH!JW&#bQih zcD8j-b^ynHymwMSVV#^AJ0&9t_8iYvJbPsG+1lVx)&+@Z~gjL!t;%u+=%_fNXaQcjeCm`x*JZ4!>qp8Tb-a=Zq+Sv@Y(`}40j!CUd18A%Lx-N8hqI(5F zqHad5eOKAC)}H=+^Hsj`q#_Rr4G?;~(n!pM-Ed%ac@K**h)+`@gJ2WP1cak5BPK!tV$L;0%fed_2x;T(%)7$-qxxC3Jw8 zXjXD($4g^c;O$j3wW++Q^=x~;1c}bIT2~nA5-<2wxC9y5<2pu<$vX;)+mY*t%f((1 z5ZF(LE?vNpM=3uSmjFvZw7&|;Tx=xx9F|K0ZNjmQuc6dG5d5aOLVQiZl;%5bT75|T zuJxV}lI#S?ov*N(IS!W{v8lIp8B4Ldl&{jWh7S~)WTHGhQQ|&NJiKEnd@1|5t?U6* z+-I%QTR+cfH7tO?{;o3(XsuvxuyOf>^t3A06Hw}-QItbhN2B{|IAzo7N$sYvI0jcvI(RAFZ#NtCoq_RBK6FA#dY_JHms zJa6KGo8PYEPi4`Szeb_3Ys8G&t4OTrD$YQ(Pyf(1firtFN_bd#drg&l|k zY6beaSu1M$@8O9kcuu1Ia|~W!+g0pvU|BpXl)5rE&S<-B`>F0;${Z|+H3G-qz}gNG z+%xfdErU@6+Im2y5-~bIFOss&q~nA!DYQqY8UV;VvC?aW7+vW4epx-=)NYJM0ITxT zXR)M4^=OtwAzniuhJR2dd^eN!*SWu3JT?*Z!ZR_rKvErcW`tUgY*G=ILsffnaqNxV z#$FPa{CVy0>s<;8?Dc(8&aj*mQV(Viv<`D%b@SP==$FLTBg>Y5B=z~V=66lku9Of> zsF3CuvI(Wwh3M99t$a;OshDdgoG8$54vgxA4cQ)RrS83$kXYL)j4M({(eGs;SF2ya zjpzQtX(gLLizn<-P z=0y1pi-Wut331;VdAH-LChGk@3F2jLh1gpqP$f((bKICSGEV8Sj%vaE7R;tqENBG>&I*tr8S?juG{cAm4*2_@xde4< zn$UgRt9G`>(j7kjf}V7yYpzgtwJ0P+Y(4(bTZ%5Hh_Fk`7{M0(pYFq3J7w)V(9G z=Q7Y;A-HNux>u8eKZ&DbFKp`6H^Ty})?jBg&P-WixPuYO(ZR;m^J!3zN1bl`9^lNL z>xg$->|~$Bi#`2-8zie;fcRCOdJX4ZVsj|Eeh55+kFa+0n>ZX;{mEW5Kg_go;nVlx zMoS{LQS551NU|e}o^AVY*B|D-uqqmu(hu8TD*Exk@3=U1x%nhhDkspIx(cJ znTzpL&6y#B0k7z0DH~r}eRIDJu@c(CR)h#a*ZhS#QWLX6<(MY2h^?l)HvuB4+84*9 z>0@XO{gk-kcT33Sy(MrHnN&WCZ)bBX(arp25c=^zmz_xo_8nFDzVAZsrw>d|Fydur zlpSYx-fu#w{O_l75yOPMXBd%XeC2yG9&A&cA{-mKEw%Zu=_}Lv!mhew(;yW@!`Ry& zMV~VZQ-3L5@w}q6&eX}mpwG5$yB4A%d)ULK&rqJW9aj41Jg90`X%%h&?;8$mIN@WD zuth~PF1pNVfJ;{%T4QMdMi7ZHwz||Ae7O!%D~LVe@$El)nFfLylA%k0crFjK-M)Ee zS+Px}P~K6WoxiRe&FNForyyshi@{QBGzrW*#YMwy92X8&Qaum&V9GV8wBNpum>e?Z z4ea98pQBwe?VtbSRqX-CNE6%_;})0 z6{zNQFA~kidA33Xoo=M!r5u;C_czzzR2EkE9I;-iC?eWIVSZYc&57FnVs{|V$00l{ zPR5Ii1q;F+9Psgv;k{I6OQ+*kB1g6k6c)&cdV;HvPhnRWhIHVK8IGEsV2(q22~x{d zP0Z&A#4G2PP$wvxt))UPJPK|Q^a&oz&E8gG|#H&&=dOs8_3`g^b zIVMvp5D?EWvXv~33as=|km}=V0M$Qh=#>3u(WVo5>)^XM`)xLdoCnTEi;c!eOP+|Uf1=SB@&|Te$^DPF@wL1xB8Egi<_$|!BDOc2JF0>Z zI^XNNACVfB591P}E^_=o&lcTrED8+g8;+6f0EwfiZ7<=cCMb>Uo`O zWcliEkfjp!)Fu)Ru3~T|;DXroV^U*=OHdtKGenGS73s_QsNpO$2UPEo@TM*&x%& zfHv#i&vDE@ud4p`s}lJ-tG@*(YJlTu;ljr_J7H?UW5jew31HIS0K2r$>r9#Bf(UNPD4RC5i%E%l`*YsIVWRbo4JaZ4MF1*oo40)9-y&_Wscm7*)QW1z5t4{6YZT&q zesI)q!+a#7M`odeAm`)S4pp1}2+=hVETe)Hr@N6!101=M%PS^z)RsrIClQTgF1BxD zCgt!?)S1wMe6i6QTJR_Yd$LUOiaKH;y`?cdz7WP(-xkK?lK;lqu)!}2053OmaWF~T z`j!D6-ukl*YavxVfXYu>m3k(g98q?IxP8e)6o&q-%(kNNa&uqL@i_ls^RaCD!F>MlxdWlMm{9pU zC`xA=nV#2szd&WQ_KUA^Eh=1{vUXiVrK6mT#9#Y$3N}8e6F=jnz{a@#1ylbyXb&B%_*1>KGbV}(L@Km z`fTUdYNqj595sI7HE$A~N{8MX4!mC@V+W$5EO;3${Qd!ylSl8ea$bP))7)j0fR-PC zc>b;!g(gEH-o&^>0BbnLj!^W=50ca(%;?@Jq2HZn;pAnSF;sNPilCarSpnsnU!-5I zZfmD1;)V~qOY@4C23Ts(odW5F&n_bQSQTqZA0so+{!&od=AIr1!Ps=uQU^t|5JJ~A zKPi`Vr+uMOYpN&2vVNK36uf`0&9GeAXBE@v>!>Qfu!a0=^lDf86*MPV0?q#nvRi1}b+QaB z)+GlzKA!6d|D_$FJ^5ap4(~E^IRE#cs$cibq|8X*7jPa$BKy>(MI&fV@GuCCMrxL>q*W)(A)d_ShZZHv40MIjGjr2>q6)h-*R<5cOQizj@aJ4F!vCKPU3Rs9~rGDG{?5QU9@#t$fN5#WO z3+~KUOM!H=6jZz_&a@40`+L6ZaTT?Y1AC0A*nh!op*Pz~RuMv29FsJo>Q%!#_EqpT zj$u~RlW?e}%1*cq)q2_TI^o|y_{vEu7c9H{hvCl;tRtP>zw4%#&$tQq{y80o*+Tg^ z(W5yK#gT^kF3%!y^UaSh_6LEjM}r{?)xCGgl0!GEvd1sZIvlmSwBM}TKzldGlJ3>L zQu6frUde(fs#Vd#D2CxaLyaCHt8G~8sqa6$OA$VK5ucZfTbRB@L?>NZsyt^+6YA8c*h8sxdd2TJMnQi(OBv&fhxZx&FBcC!4OV?uySb zDUO`dU8*D- zQ$T#Xlq{qWjW47Jw<**1(Z?r%l`+DUh^C!z+#ZN3 z7YI7+y^6Fn-~I;Bdq$svVL9a?cxx?*O$ndjd^}ShB_xUgx1nHUuL+!GK%M_UfTlpW zNizsXwi#o6+Hv3t zhIQ!bH1JeUwKl6{Lg~4u?8J{KDHl4i4wEiQNcSmfj*hZd&P`lVfCc57Qc^FwD#w6> z|A9Ww7vg9PUIqXnS#<~FbH_5_f(Ka-?x<1>UH^)W)@@`vYZpVJ%k!zUmNG7Ly@s_6 z=?{Ny{OZz{sO-sY#Rpno@yzx)S4~=!DROq1EU)uRou8X@ru-iYcTG_uv{0*(Jbn^Q z{q#Zo1CpQpO+NAJ7tEdLjAklAXHI5wQ434Pji9hi-t)NQld=HmZ3Z& z)~!wF zM`J!XEcSb79b{ce@{tL>i%8yztWj_8SjJ3lPI8)vfz1HRw*v;d*ILFLKi>_6EihN((h6m{^?v#P)JZ4Uc$sV)9`&8u3bh5#84v z2~8m%DDq__-gtKol2#hS6H@L7{skNsipkx=6He~D{4|RZnnXbt{7F($BPwZ((eW*F zGHecqBRyWy!{P1|>j0}<7M{%JR{KwNg;B1s729G^O^-iw(R1H-*7R90sLU7Y?fRCU z7(;8b2e0EOsaXUiYamz-6o8+c(z-zM>5~KpLoT*EgV|}=gY((BnrG^OoTX=PzvtpI z{47;Wp%ZwSoVMOz#C3$_OC3utKt!MpE{3ur^N&5}0f2l;zJc}P7E$2NqTBQ^T?b0S+#rix)esDoq#>+?Y@nwWg;iC~N7(Bm!@1 z$F)Nqn-s)IPIxeDPhM0Cr1F@;*{(O9*!9K>h1E5)g#3zLUOOf3=XSqv{T&Z-bIU(? zL^7J3d|ulPz;`560KUh;juq3+{xkfJr`f4p#)*#P8^t}spvArPgMMuRC3UuIP#6$; z#9xrpMc~%o^mNoyOdN&`9MsA!F=xNAa0Q0fa|s;4@lSgwYF?e=4Bqrp)NmEVasBqC zsNXs275TD6JKfKRr9{X!3AigGZ8S9M?f~ar8a%2=-VecFPv``cE|w8Z?2aeB$AaqW}Q1!N*-ui@_##{UFYOtF%%Q!w#RQgQta2{ z1SaG5?TpHfKDQCV!%voZ&oX4QK4X~@*?1O#l3K5%%5MZ-+su0-VMcR}?Rk8zmh48r zPz1Y-(Vb;+27?krx)}6(#qz0%0iDZ0@K*m9>+pfaHZ~lfT;SFf81NY%iACZ!1q?MP%tZ zE=NTEEgcV!X7Q+Cg3D9-B44C#f6$&B?y8^N6sjyPWt#g&t-em%HLb|W~5La)pjp8U;+=a`9LDab^e~0zm8zH$kePmM(%b1il5|O0A4n^ zRzixX?ib|AAL|ouDDz6OVLGRNv{tjPkhO8V&vTW1!S@@)i?xDtRPz+F^Bmb=!`h#( z+(z;lZK5lreHhTOay*Tzp)1KENoPMOX{Q0r4{N%wOqGrt1oOPgHvFr?TiVe^hHF@VnH{z*`^e3+mK_wI^FGmuXV9Fy1$13xPF!-kvZRg zJ*vew^yPeP3*xx2ru@2N6Z_EQr;Z- z{kBEgVFP3v=)G|bBj*?G*incT~zm6z| zS!Lbvo2}+5>ME;n1hkCJk5-;@Mr>qeQ-W;+5;-bEx$0ZL5m`fcP0dHQ-0Ym_+pU?9 zRvA8xIH3n#cK0vNu;A%q`fzSCMbF3Rj9Cp1i66T{53{RMg}kay#bcGa^)J{GsvUbq za%)jlOXC2&qLO#)?}YUElq}3;y=cTiM4TKS$CN=OQl?KG{ITz+fyWdC?_EQ8@UPv!cAM zpGGacx2{OwqQHweNy_SsG!jmY#GzM2HWqg8D5b?$KP{cgNik`M>KB$??0jBDo5|k# z+B&cMf~zpsCK!LxYxU{ymVEh|yYDDfcAWSc7bsJ755^361M-)K+9!^D zc#rn0ZCS~>9RIoLUU}11OLsrHRDlGC{1cSE+Dx&G5H7e=n92=ETuKL+@Brfe<>_>J zIp+d0+9guuzKv9W#Q5LeAU^?A754%rSvRd;5ys!UGeU9I)UCsJTdHyw;NlmNaH16< z8CP69^8NJPJWsL!w#a_Ce2EcvgAH+AtJAi3@^ty>&DJ(Sv>}@Y+KFV=dV;jFStq6aYREauC1n5x&lu zZZ(@jnv6oA<6K%uaTj8FGQ0eXb8{zlpP47XysHX6BZ; ziYms9qs8w1y7@pG0o@TB{-3-SZ{T+Q{$o+U`x(HN-TMFkwf^ZW;TE_q2e0FBz!BemSS~FQTpnv<~oELn~d6s2v8~N5=)@AF% z>Om_NSB+cqbh3r=q-wkjA(85A=V|EZZ{e9FP!4MwXHe8eU))-p$3;Al2j@!H`tHm5 zw)A7|C?;K4zan+oBh-$$|x_I7o0pGpnlKmdQO z>XuborJ6s3Z7pvY0paQSxjV?Hy^pN5t>kv$t~;fnEqqyV#GD2T8C6^0l2rQu)|x1K zGuC-_X1~D9h^-uFC5%J(@^Xn4Z&koYL#}{uXX^skhxU%xz}L;$Axmom0@_Tiprmh8&Jm2|tD}X2_i6}EPctU{l(=f` zSUG_X@DyeXw%q-8tySF%8@CbN5WTMB?26aW}8RgtbYgcmYnCdrlWrV`_PeSDfpc&l$XO%^p zuOtoeH^6X7FjzP}6+ibF{^=p&UBjF*x0Dd{!y!K5KDp2ApHf4LcMuzxxm?s~aKq_v zI)wIzkwOud;V>!tl(kjn44%IkDoiM7bu_w_Dw~B=1_MPeJFm8{%_;S}HiaKRsCYfm z>^MY3YL|X|b14#gxXP-;5B=Z5kNb+HsJp*#F#iNPdeOhUywIas{2|woGI%Z|CMt(E z&k>U>T(oP#z_F%}%;3vjgwgil6%Quz_j&T!IP(rR4^Z;T?-H2{GufmE6e2IerHAT` z(y$ep8=PZ?-0p-}h9ywODE#`1h=oeK(`;Gd7IGCu69<`a=(8Yi`=k0;dJR2S z<~MCL>;-VcCKzc*W>?{%Zvi%?Z0>Vy zY|20#=*bE$s6?hgB`Yt#k7;T?F_%Nm^!Y=ZT=_Ou>ab0$xa?U7jtLJx>r^)~-sEpD z%cq_AGP1bxo3#h;!ER(5h(6%Gchl`Id>t%HJQGcU<@r`zc0TR2HnTP)_Xv=VNyCGS<^ajF}Z`t0-q2eCs=Dp4v};E zt1Fw%cQJc2UB(t?nW9c}g)ZwuBB-oV$s;4GQ{T0_s2M6tDJYmRm#a36w>RZV}G=gDSknVshtEn54nK2kkZ=FGQm%EvPUl6=KHn4Z?oWxR2$tYT`CP6sRNh1?v5B{Avo$P);Po=wm-tR zx4lg^y#BjvCL-vdQKhtB7^%MNrC4_5-ib>W`AfYP#1~@i-XxY**P0mWGR2~)=LalQ zRgG8hS$7lPVjtFGxM1&*(7lQYSziCz-l{GByAdjdr<0am?hnN_MWZD-gN}rAm@gsd zvm05u8lcCuzhYH#J3d_UQKPcyt&#YStax{YNY%a8jHyf0)WXNZr&-j~mj~-u zD1DiwrM5@_7mP)v&c88UEiOK&FG8aZazfv*LOMP^HepR(%Zd=*gJ7w!ElyI44E*p< zm(6`&BdzuD5+zICoGiJI2lu*?GyY23b%r(7C1E=sq9P(#An*Yy(v@ncDqs*HiZtme zgkBRu=qM;n2+|28^p1e^4k94ENiQL^&_a<;XxX6d%6{AT*?k`VklfsP&zzY#Gjq;; zFWt=U8C#31#{}~=s1)v9k$0v4#rn#@ZYd9GyN?n~%o(>C9n_`gRA{emUu?4)5-2R@ zw#xndMTk=*Bk|xAnccI{st#E3q*9*?ebyT-92VB71YoNw#pE`2&LlKz$?}8f@aGoE@GD`LCxV2Mn_JX1 zb$_NEy!5}=ksOYdZuL$}hOi}Al7s-~6v%pirorJR7R$WU%Kz|c+toi)s8VusjI{EE zX^<}5&+K;zmXS)V-nOD4z>}KP_3U34`(`;NeR}$~@{Ne<&Xo7A*||RDorGrW4dTUQ zbM8tx;O2v!q32X}j>{zK7Uq`UVjga;i#o`wL#^~6@$>dn zm5UZ_HbhR(l=FUBJOX+qHvU4ykbq?g)}P_P^YD>%Ey-y9ui@-#xT8EPeRrv!;g`uw zeka}m^zUEG+0wtB7@{T5ah<4q>a)Ui_Af?L8M|_?P}d&#Y^y5NMH5dKaI%f=Pmvk}9!9FW#votZBP<-}oq%yXAec$x{M-TTQw3~=Ak_vKg*&Kju!UNuuu zzuc==iDly15SK{C^K^rXN^1K@tsk?dC(1TSs1^=9*NlH|*ugNc`&dl^qK$BoF6@{5 z^UFJaJ<&u@exzLC;E{58mG!NFwGVEQgfwg({n!)oAxM6x55mIVL^BYyPqJxuxdy05nad z1}s;_A^Vhq<#>ovYiH}#${U*I&LR}q@e8SXUrJSya;dYWV!p?N-W#;RmwHCY5oAH= z>q5iw?q{Yv>oS*z9uiKC>p&i>7lNgDGmgMVAJo^9eJzsw#;PqHM9i+c59F-aKDacf z49-YVpxSg07&`jvyxT9bKMt61#wXcC)>}u9e42PeS~h1`{~6$!C=TzjvHUF?DH`^N z3q1W%#IV;w>}~)|^##TL8kCK!u2R%^mH%{A-l?BuEY0C=!293t)_l>XDS0n}zM?)! zck*X`{{CO*=l{plzkbxZ0FkM0b+9dkJoy05d|U(jyMAcK=QeYo6R{5xANR0GAIj;%eh0HgAbtv!FBd$Nu1AMpgv z2*Hn*l92wp-z#v1RYy%V-w>wvLv4ELb8sMI0i z*OXZE{vly_XZ41OKkc^0$u?%Mj6JZ&V!sxP^sjb>@~@^D&)pRJ?<|YngX(wHEBPGB zHMP_^t3wlxcKh1{BJXXSQx(W1GOWJ!a94xs?%@;GQr+Udy&+SMH;%0lz4Y$?q5l7M zn%T-FOX{c&9eIrp1%{+i&HcEuwDWm2OJfL0%C}5zpK=p;ckdErU8X=eQGOmApr~7J=v|W~Tf7h3U za!16k1@!z~uN0S7!#F{0PyO8=t{NmkCzotj>^e;^2a{sbzru$kK z{EhRLwByCAhq{KszhvdIllQ4JEuV>jbC>;&=!h?IKb?B=D*6#w8sJd-u|MPwUMot~ zvbQOEaF%eA=Z1pX>kEJXVzL2_&!`cFI{S7&$$c&C2Un7WKUeg$)*RwojQG_eaz46k zF2{cS*LU^oT=inC8AUw#iw>7!S5F@OH6_H~$sZqT936Qsmg_il?9f1u6tex#F5wM0 zvX^iYc;Z)_nQh=VX7y@Ae;6q&zIM!3a$e@#ue)eJ&AlAi5SMrT;HMr(Facy^KeRqX za{JtX&YWqSvv^0vcX#?Yc=G(Ofzka=mEglD%0p#8pZKJ_)eK~7)p%_3!9vi#(@FChw+e)F!+)2d}#QA=biH> zAI4+9+R5Dp4+R6IjpWpu>o&HryM;XIZvZF=+&WoYY=+cu_ZpHO9q2U2y+IUV^)SM!%Y zq{XbsY}}z7;K)aiUKLP6H8 zkHF5WYIanx$M;)ZIwiTQ11Rnbr(B$ZjANHv5gTo19bZGp<$l%$qm82;kNMdtzN6D9%VW zq8Y#YWAUwTV@q?NenL7}Bdo!9@~AI62LXZP|H%Ko7_GteymoRyjaus7I2au7X(`fU z+GQFOx{|$X zKL-2J>3vStxnV-{3B)S@ZT7oWdu38n%+5o3`vdJHxy2ZkpFbK|alvg2@{z{>u1xe0 zwVRb&t3bBSPX1Cu#cABKNne)4s*qK?gt3Q#!*}dcCuW$5Uv~C;#t@_#5vjd!*C{8m zL3dCoEF`&gkYzmhgJxP>wg{8hwEZZRF`qfDcExUX^JB->+Du$J9)onPb-_i%r^P|$ zTl!JwvhA3gog^d%p|%v+?kI^*k%33{s7PBwu9FNg%hGx~G6NK@o7k%Tk)r(>5tmv% zl9g3!jgh>-s;MPcioZbNkX>@8h=>J4Tf&Alz2@X63ZrRALv1@8di<_g4KQ z7$UVB=A2NF|3$|sf%=!D^cQ-B*w?j!>Dz%}%Xv8Lgd-C}?ykPp(?Ed) zsq4Y-7_Vm;&7UsM2rq>>f=V z-CrFesjh!DJz4oGznjcHZC_#NvIsf$(?6(~_e-g5JRY0sjCSb?>~{knMj36;n!Pn# zq$k`bpA-s^%#Pt{6{~1%HWWec`3~i6>1!d5&QgQ!nB9n5G38R%rL>UwAfR#nM#!IribDPI&g*RFIh?~fW{HHa+PB(ooOZ*7<49!Euzfgg`}hmD)w8(GzRHP9 zD`@4r-xYiJ-bC|q#!@6KM#HO7U@5#NaV^kdLs_c{;Acmy(IrTfq*1B!<>)W+8yWMe z3@mPw+B3L?`}@BRpSm=&$^3o)?9No)m(`tB2$GGn%GeqG>Csia#l&`J;G-3vx>p|kcJ#;t!AeG{3K67~SW89lxnQFaKCg#q-IH#hmc-LF)x1>-7#C&g zNakDV;r*Ri60rpx^P-0Q=qyP-Ttr#R$?ZLgpV8^r_BWB;Z}c&o6wG`nK}H1f2aqb7E{>#*DGfEJ94(}N#RPz%lp5MjMx=yiq_|^}61;!FrU&NOMjq66t;x{pKZxL65uL3yAMEPS&DK0-b-62KX+^@pz zpCr{GTzc5|K9AvoSFzc!(Vem0$)$)?78 z=n*ONwp6s8M;KgAVO)n9oQ2VQwUHdb%8PeO6e4hS#;OhG8?>@7?d>@ve}hwq`?oL> zx3c^fO$n;E{monwiK6XPeqmV$CFKv-!nSUe%2Lx{z>E@Rg0ZA%@(6`Z`Vj!DM=4-tHbP?q~A` z&i1V(;m3c*T5h+kM=>K`Daxv+OSf)`?f)jaHwpCamdZ&s?qFAkHIJ6A2o_X!s2T}0 z@-NnJKd^*;3YOFRvR0Rz{a!wkrshpuU&JK<&l9b9Z^nb+wJsVWu1`$N@D>-B=4w@Z zYdUHnYe9YM+KHLX^63gv4FjpVYBwCWm$9_BU9^`F8HxO<-S$9@V@9pjM#C#GY_XKDf@IEi-V49*#-7JT z5NixNUinLKws_RTup3wu(J6;fqc}4u2Gx7@wnBv3W!Z8^P|HKQWc%GaTA~!@b|Ph5 zsOa9A!QSv6qpP!}zIEfoOpTsvU$|RWz}}pb9?5NYaI*>za@$9YZ0=|6VGsZScK55* zRt}D9D|u-*rfSBD^u`Et>PN&CHrl}0hRH=cR57agiQqf$6B>2Ch)U{~?s*RHzEY~F zMb1KcbKTEMg(u@L6jY=T_VXV{5fgL7H!r;Uxl;6cRqX;1TQ3SpGbjq!6NO_n4KuWa zR569aHtU74fCygxDYQ8PiJl;JD z7naOir%_nRh+DX0^P20^H_9329d**2*FLst=Pfg7R?qcd-U3K#V*9OC#1TE`=^_`h zL9Qv{)}@nlNRE(bddJsk_=7!cKjYoHh!LZDW|p}al`lU6aJ-5}!72>%IK36m_?d3~{Sl2UhAQ znS+%2l>)D^{S({}7$xKDn?DY@gIF6nZn29jp)0Z6pHLg1{4 zmMeK=)!a&bSzrfU)pDh9TRU=wKH|fzG7L*k3H(R4YS(TU!=J)D@U{NV?cGlzcoQI7kEH-_mIM1@C{+kI5-ELei>^~j4Ca8IVi&6DJZbXLMIlt; zllRkC`=N-cX|u{zc2XOTgxen|BlT@ok~yiDF}P)b6>+SJ2#{Ll8(EJIcUz!t9$6jP zoa*k9`SYTxHwCjLZ2Ev*VPI&_<&E%fMTj7KPB4 z3Dgnlenck;@iJt!4%*egO2)TLxHNO3%<$#joCO1~aOM-4c=F-o4r}YU=b&rqMYiYq z=j#g>=aVmqATCPOSwo=jEnA+tqXv#&3^|r>-&clPJ#MvAl1)UqZ6)Ep>Fez+kiI$L zw)6DXwwaj*oJL@!{Q0`i2aX?k)q2I%xUpNxR3S(NrA3g0eUlt|+bioSp`??TNIa@v z_}SQs=lkfiUX3%`s&i2>V#|tCy7u3#Wc2eZKlq<(2_G2O-PMD2yl}$c zm@Ozs-or30>&x$H&Ce)2duoeE-;jMNpTIKGX~2{7QQIueq$K@Sc{Pijw&Zfj@t=xs zc&1LVxDIhIb3olGIwpAVBHYn*8$;$>Ti0OFpCUhbRb?FC+~%*wmMeUtV{&eecP2m5rrTqjs#8-_O#@;KN_;caTwOU;M|_NL-o2xyC56{xja} z?^lfV)YK@J`~9xo?}y62QC2bq{A+Rr`0K#X3Gz+G2Qixx&h-_1 z)=qtU0mB=K)7bsEc0`7^7o$y|G!vXql3*X=@52-+YAQA3LoF+E!%<*E=whSpO;7PT zmME`%vH)#|aerxK3zF4w>06mki!`#o$U%@Ff9Dxe4WQLcU7uiyiH+nXY~8GtXkq5p`pSr}D#89JHt{Bw_Dn7RT-M zUPBxa8lr3mVo=UFtyJrD6IOmSB~5WU*1a9(RA155Ntvp0={w$xHzvdP3T}5wD}xp& zB$i7${e2MF?4j<~(Cj$5jr+GJm8b{AFPhw*EB0dS)Mmc}n(}su09e`W0H}Cpf@tvHf?ZY0Ae7K#KQI8>b$}z-x(smRxshH?SW#uP9SBW`l=@E7FEilGI~N| zeK1mR^CGv@ba>!*G-UkmdftAZ3Ij&Zbe6?@s7hW*O{snVb(oXso>=rtWpzrhoqBSv zZXJwG*S`ThAB(vKN^UHYc*r+pX+j|(I+!VdHllMz67(i4q;$=1yNRu&cV~-?3 zne(zSTP2oyYY#C4Zj+rZ1rX#eZ?y^eGrs-Fs!^pP9r3fkaZ8}YbYjVby`J!msY#!N zjlghQhUR70co8yDpIuClCLAu=#kTS!u`YFj2`U4_j54CwHY}L@6@cf$5>)Hy*K3wj zwb)aWn?+sgT`*V&(kgbubxGRJ03r3w+HYii@{$Zv;jguHvHbxnry2A*kxjDzBzB)zFvP z)orR1P^wxhjr@!DD<&!}l_)ZhgF{O$U|ao{g9;+*m7c6XyBU@M$A&2l)1`8~>45^1 z{8hYt12Iy|QtLmqly^IeB{WN{)X5FOF^In7?ct4qSR0bG9qWau20@}7hIqVvDV@&b zDzui^76NNmW>V8ueyNh#TDgk9nKF+QwkwjCNWBzvE`7Dk-4~Hfq4WGwV75|9n#*Tp z+j4BGmaO=scNyNcC|b-HG!QWpmzJQ$*D&)%#_9`sAOlo&??DmPMXWP)RwDJo70R)YC9}fR?B3HR<+uSv+s!Tup)MWJq*Inl{lcBD1n9ie z%^*OyKFqzfIgN)95_A2c4JMas^~2>L*@4arkPaK7X@PG_nM!Tw#N!y`MTGKseGv1)HZ+nQ+43&Iw~OOo>-iU zV*@Q9AE;HchJ@uq{M0>i}czjhgsMO{%~)ALnU5eyo}R7A{jcJ%|`a3P^C) zS9-Ay*Z_su`^(XTx!{=zWEprM)Ise`V?3GAgMX&jxgabBdlr-lMKjjv$HQ28rAqP9 zI_!HkGpzhZqL%e0Im|n}_~+c|EZ-r5Kcw1)%)29p_*&N?(Meg*m%f*vNOwE%)^?Th zQ1K=aL6{7NdGVKx%eQ4NWbNo#Yi(X_!^-^zqNK^uhzL%wOaH1Fq5Q8@`9^ZFm=L0a zGOBye-GmIg>49ukH**-oT6b$^Eeu|}(mdHbuhpot35kHBM@{6dsb0dr;no*g&eZcoUgBZ1ibvtRL-Iwuqh!DqK861Q(Cw=a1v0Y7fEOq zZ)Wi3(3J~&BaDGf54$eGf_lS15}hj*JR4{zbWcg!2vRR?7thrNg|y23#x8t?e!XW~ z?>96pvF!?^G}Ew@;O*RAuv82%a#TUOP|M~{(4U5|+-TyK@#Hn>S&2>&XH4)-1;8QE zbkeyu#Wds3i1O-X;!O}WN*RpoAe+Z$UKgl96L#LD%tYJWgVW_RPbrXRthF?gZAGW) zpZeH=o*i4W$!PCIJuZGnz2xq45`xvZ{sV90PRt4Oz~6U1t5+=Ivt4zDvp<^c&vNa} z^b`n_RBo`lep`KvSXqZfa=T^`+|0YY3eg;^0d`Eep_HZ;zA_ppqsEI$;-$!b4w!kH zpKuV5#4b5o(0;hfJBskNH~UCz{hT=>X0V*aj>`l@?b?Sc^}!@2H7wa)zGKu-fhCv5 z-3h-}kkCY9qi*r+%v)gAa|I3_R%pl*T_hWms`d?#(NkoY&_eB$1^B)H`0dH-O>nlC zF!d>ea9<9|oXc=+*AoDrVy;x4M~ya5DiyKbxK1t~7TE!%p@&Kj=T7^`S55?SJkXv82 zP-;cZd5&wJ>OpdXYIO=;+`c$f?0!2b-@8HSz5@_xuVRB@#5@FQ_U6+@6#?%F`_{h? zzuD*S-Kv8M*5ORvs(smQL!`02Hl7t*$bG&39#I&+Q*20FB{@=xwJDv{Xj$ikvMNuh ziW_jzb`M_k$>nbk;)u7m1>`7C^`oy?T+85Lqfs$ieXj*+T3pm4A(Ai|1#D#k@X-0* zt7{9`cuiT#^!G#F{oES^i=0fWwjvj&`BQ}rftP6zJ)U(>A|_6M3Hi#(3Zf*3DQ;YX zZ}a3cm|tgZGN!-0l`>aJ+_PM!#8Sq5u?ao@^mZLPeFCyMTq8#(qp0HPd@q<|o|6@q zY*`CYOJb`>4z{TetZC=%4l6D<%zx;Am8tN=O!-=qowSMCw0%h>*Xs41mkV1#5YZDc zep=KezmV@PQAE%5A{AXf#Ai)AHslRIsHF$yrcNoqxw1+3ZNfCd{JqPVqQJoKR2l+4DD-fnGQBD5fG^Hs$Qk9%IG?oW15^EXrUwwiu zFWayPTwPJGB0Kti`eoIOr=?MSy9w&M7ukcCV!90WSz3X1tX(G15ZZev0ev;1M@(0f z5@=012~bcNahbuo62^#-i3z2%A!wN5wHzBnPaJHnKToT&?u5ISPYa`g)LTIIRMLfIV_xkwA^AHhlIScxHbNu<8 zEUUb$s_80mTJWbT#!opE!R&Hp3kv1bGL(S4Gx^Z&Kx%ot!cjpj1;4X*a6qKk`1A{` zW7r^neF9ibCfVBy&9?eJ*y0CT9zyecStyXjP!aP{Nk)gxhf1kdYh}znxGje^&tUmx zh6gfZJ*)hotoAMW0Uv_`7H_A9%y$hrX#`XLOCbY3_P``G!E!PH`m%xW<$Wpd%yyD~ zFtc(u&z{_6S;jN<>%p^gyAO!!_#^}W5-o$`6BEGwq}|b14K1wP^?T)WQ#Po&_M<1`5964fiG`KZR$;g z5d8B48u*gq3e}?P=nJl@UelhDjktEz+T0H<3E+>fxPHLydC|JgeaY{s9jiuW)lIfA z7=aaPK35vqauQ<4s+->aXW-b>QXQFQlT_N%_-C}-WJ`E|uIDf6wOG;7n|ex~EEG7H zb|?=hV5srZ?%siF4;JkC)PlO&{#UD*iDEWarr}H@?0}DBTjQghMo1kU*(hf@K-HF% zAVGuGRP-~f4IBdgroCec0efpGvzuR3QkNaSe{ng?vP#72**)_7Y2@0^58kWqaa12k zWaYh_G%u4oc)nI*vX|39&Udb9-mBc0eH8oO?cx&Z>xgpgq;sp|*X?x-I4USxhkFFmdP@iqi<0x3Sm zLCrPZo7Wu%WP<0i@{@CUMwDl%G_Odk^Yx3<+&Jvwb7lABkfJXpWY}X{l*T*4)R3ct znQmFIKB*w05fF%MP`~E<_fow?irXuxtXax-0HtJ)4T~_Q+=Cr=^)ppewN7sURduyu zZzu3tKCMglXaXlT0if;&_leII<*4j5P?rF}+s)vuNW6DS{ly);nna@T_{gi>i0kzi zobL$3v7)UgOCbq0rM_g#kaf=6ob2wxDIB^wpO^dn{+RFeXaj%d&&diWg*f$k^0hKY z-~h_FrpgIB`74ipq)t$C@J9z=0R&Sfyd_To51oy5(VBGX&IIs{<$H%W3NNvc6Nrh} zvcTuq-s(X5`CNWJQRvGs%r~KCn#Tbg8_k)Hau&4}M~Sx|A+K*)lMM|XDS$O~Bri^i z*qa2^mnz^BEQRJ!AvP9tzrnL^^^6ke&#Z1ikEDZXSW9JFktovc z``a|Xt;BJ!Ub@3|m)N!=dUS9Q)i!WCa&YVPIqJ8DMkuSvT5hp1tv2PpE`47Y3d|@= z0Zq|m9x21doD)~bPFnz@Izn4ZPCAo&z-q1#c zz>isG_ctjK_*@F339;~zr$cZSiSNn~qJxqt*O*XTXMCVTW`lF}$yr({z^=^Xdd|7QZvR}}>ksfU9aDmJ z8ISI`KCU8bv4pFDK6VL=JKcKxPNL{jEc5}WS>y?R$?z+w=KAhokFxUaK95vJ)sxqfzLw!zM2ZS z9%8jCC*m4Qi@OTD__{p$ zI!{1YQwVn{+mGnEI9S(J2|)syBcb9KiM)hZP5hQ`H@q?fm?d1w_HMynLE2PEc1l*K zKBG890I>XC(bXUwE(8*<%VR{iuooi*@Lbh&FS{u%C3GwliiowWdEAS!7o26!g_S|w zTN3O-o{VUV2|rf9B|MA%ieiAarp{Y5^u159?-yaY}+h))_sf$)i{-Kw|vlzPJl z0yw~Od7NcD76+$a06jdHft_ z_2>A%=+)TQlQCa^)%K)*a2p4vgr(1~X~fg{Y-7=@o$<%}RL~D&cKnvhW=8;&4nGI7T{twEjVZUW9rYNToh3V~26R;!a5d26FMPn50JbK~n(CLf zrrR2X)d5u8>mU@(I>38VN@DWG)33dj7O$I&3A;6Vy5~Hcegg~7PSTRQ*P|!qDlW_v zRG@tm#~G&?Ac`xEJCqfu`>?>9xB36Lq~?szgW`D3i`9c$f?7Gs13O~w7HJjiZy0HC z5=OV^aSM|0>= zW}W{Fcy@XeWVwuaKH9uunu8jlu9Et`_dEpr-k}?LAsN?gPF6cs)NQimY>A=DhVZ0W zgYqOI-lB?PK*9vbmFaqAILRXMdn!wt`(Yxkg>$@Q1KWf?pO*~ozZsw9TdUvfYyZg6 zhjUy}^Zt`K<_(cUtO zC`SJ;?G?y=L}VY-eWEkeYLh1E1Q*CW zE3Mb+p(%bya1N0Z!O$Z(XHcJs4nwv8?cyUfPwJPl(Wsko@!iY3fL@Z*XiZ{dydFXm zRf@cm+KaWHh8INOn|(O=V?qf-g6XrqW$uH4`sDI^){aq~@RpG~JTJS~WUP#*XzY!c z*M%1is-_FiGQJwiskiy`CIrqmG$3rIWv-bvO&SZ@J_gN;wVH)GYTM#L5Oyb^7-Ag< zXPC0okas;J`*ApvO}I~mz>^kg)s9*`FSF}2Ld%lvx~-ciqu;nvHIiW5jntf$A#}>w8BCTH!&ol}L7;+HQ|7!~QXF{L z?=a~Ql?EDh+rZ9!u!u4U2hntC{!(aT)g$)z?wF8Xi&&WGn1WEu?#C)*%~kEq1;&cp ziAhaXtBzQdtL+)gPX$nfjyi*yOnLF6H{<;JyWzF> z3KlhCArn6bfYqSOO;AXP%p!L+06<{`B-*mxrXXpJ@v4nch3W9aQkQF!I$TwS=nk`9 zOU!IBAVuSbT_2Fp3)?XOJ#f|S3*C|H4uQ9kONM;($_jpK5N>ShGLHnQyE1Og#7@=% zy-Kvgf|#XgxUJ&im93NY;n%Sb$GL7_0o$%>Ft~x1_N^=9|7;k z-((Yp18kmTmc>0O({!ftVusoEC3{1)amh-Gn@hL+*khOG*5xx^cZOnbhXi4i<=g3L zEm*ikd7O(_)SA$-#U4uHoc%VD4;E74;Cv?k1MFYxRz_G^xq^ivCnuI|`4$Se*F~dC ziQ#7-;8m3Cdw7gM6!_g+h~}p(pGC)?muP{^2LnvEgXq+`$Wq~|JW~&Z{6z#GiGg5HB=%1^3Zr4{KOMka}vgc7D00;-ZJRAnj?MfzX{#HftRxdsOoM?$4e&_)m zs}!1_iT)n@ovupF=~~Xk2S^3!#lf7VmegB{c@113HLxv17n^Y~v(-36CMA(|#R8u? zp02;#M_&ddw+rF_}J;v41=OM$1E@LW(yhfK(=?LZ7Q1{K_3YU^$;4Hj@-!2w5-kZ zm2V3p%s|UuL#!B7y?3pf?4O;$j4JGq6`N7a0OUVgVpd-%knmZsl{K4D1K4Sy5D=^A zI$X;iul$sTSO`_I>B-qLd#3}eu5{1w53Cc84-u${hc$_|1-wy;L|h0=W6tYd&uS9B zKD~D-5DxgMQzW=jOH7!U<69a{U}=Xk&}dCI#77GBNJRCK{>0dM@HLrbVSH!QMQjWr zpwb3V>7s%n1jr&nkP<|igc6kw0#ZXwc0i>`kS;Y8sgWQh(j-|Gq$#~ah|(dDKqw)E zkbTkF+1c6s?d~VYdCxuf-se8&e{XCXY82ss6h#hw(=f(I9c&Zq-gi~ zi8~r!@cOk-q`j2H377@iG;#VMOEPa1Jyj?}zE<`V^K0_j>%(gA(zgcHq$=)|)F3v( zE1rx!S_YYx@A@cbH75OTm@A_D+dRZ}Z1@wr{u~>s<-=z@ni!Fug(j=Uzc$ z-CE>PO7sxd>;&m3T7XO8RI01EHt5QxeQJa3pv*HJibJjAxo|fRQ6H?K)!{}uX{@rH zD2d|uNIfg6Kk#G#81FK%cl$M}u&mbaZ588UnJwdT3+7%=(YOw8f!wGTX)!P*C^(JA z|Fp2b-i^KRf=XfPvH1rVUR}Dqx>VKm-P}N^y3d+<+xjUgAU%*f9vR6wLFLoI@yV z_VstMy(Hr5s_C0Z>pt-I_vr{_=WfG8YcF%o!QTVI9#mjNW^*_9P`P!Gz`RmlExd!v$ z^7%4<o4KVoR~NC=kV{GX zzk|f4L#u!DUMy6BZpfw$zDrT08(->98tM$vL(i$5bQR5x1)cWxG87Ozzg_}>0y1u- zm1%uDukN`cU1`%+Cpv2Dqa+$zelXP~J@ulp zfBG(WXKOMRhkOUsh<@tBMY!``iu2;C8T%LG{Vrate&GItN)3tXo*TkHQgF7TfUVR? z#Z8-14mnz`%73qeV^8~Jul<%(IMimjZOvr+V%zfd1$&cWtZ5*@caVDpaYqu!~-eDgv`wdM9uwg)<}?W#fSLH=7zih_)$kGh7>^2>Y0nhek< z{Th+k)(xNT6RFx)T1Cu;4>h?gj?A>4@;3mV)aB*+;2oA3I-FLY?7MuksDGw;3up{k zolThz-;XvrEe2+tGZOvcK*Dg@1Hs{UMNwiooA%Y7gM%fo`84$W*uZ8)cdDdz?y(f5 zK6N!g#HFdp5t6HtBxy+Tfa=hFKT-U&_%=UhE1{6^NhOKT{01Z&j$vOg=1FFoZJp3|=7r&$?%I63h z>(d?*2Oyc4uZSOr@aD`XhF$`14(mG1u-Lu*_GaauywvVPeR~MLx_tJj*=>qOrX7qa z7h46NtS@yDKKb_?f>XoYHZ`%=eBMjs4>^(Bw3_eG+z|GN4`IGC3F+`WkgHKg_%tBZF2EqD=H8=rP=%WcO zRg+6sGz_%xY6AEKJ^^0*H5T-ZSc2Yj#mtYSxZYJsTyFoe^ps_67*CKvK*vhyrqLPy zS$7;PogrL3v+zEfZ$G5$dfAy3)zeoU(IYmd9uKVvMg>bdFSlQ8s4{NLvpmI+^lR4hDgF~4dlweYU6|}O_>gycQgd%I8Yf5o zG5?k6v5?W;u7!4s*1;Xn#rN@fhjoowKOl_o7P5mKz){H7JhtBC^Nvrm`Td!;EPJW4 zQuEuk#)zBc4d~)s&yB8)rf!qlI$4;+?AL^tlAiz}TfMn)+FWiu{}0t$gX~rH<$pIm?t-wC4X>z8os`^7t#wM*NXQ-0mIpv)@&51H_xXcYkJ+S} zSQ6&SQmoi!?*8Uo6Ab9WEHB+XxO67(FzjPo;C8S=X%Xxw!L1*QRf;Rax?NT&a~)_$ zW8b&^Q`PTB-+D7W6&?Q1#B1KN&MH4Kv3GbKVD z1%`l@E(ppO50;c(aGdWt7h*N< z(@alo_*YV;F?U-0`4gbu&%GooRTL;bFYVGQVgKDPHhF!PN2mLbU_yXC+`DOO-*f%1 z{-qk`w0X0C2kuk#13dvph(WSe>nwIqHivqL*Aksn5NPNJZJveHPE=FQ3Bg0Qp|R`{ zgbbIx$??+TzUtvV4|MPa4uXCYNLQSqZ+JsTw2WPw>X9+kNeTyjigwD`V|sEvGT(V~ zw9KkBo8*t$BSpN?JKUO>CHZFjs0ZWC%j+O1`u_|P`Fs>GS^o&r2=sh|XMVQ<%2IP=Ae*F&>Zxk7XTSBjO>{LfkVT@o04K6a^9a^&-hK?5G|JRZsEr@!rDsP&Yt-0^*|A?q8j?Vvq_TZlU3jljmooipr0=1Ig^A`9d3ri5> zx0b^P1Et5l``B{sx;L&@w!a2gs+ekD39@Q|VeOzHLL`A!za>&TZ5ZECNz2m^X-vQP`Hlk^BLUl|=u#!_O77TcbD_DwgR{*s zZjkni3w7*18~EHo{}evcx6ge~)g;-iQ%qEOYZf18|13wlk@fbK>1xt= zQ2x2#gqp{|SaR-@w}Xc}2I9&;mcYuX;{NuLK(eb(C8P-5R=+mat7kEh4n=1jmMvfI zNd8G`*>kbP-!U^3b?nh=!`qZW$EDP(j)ch(aXY0ROjO z{WBT`(Ahte-CJDheeu`g)fQ?@+)cv;=oXUFrYdjF7Pu+MsEL9$o@c)(jCwWk*Qv_O z@w!!0U4A|@Hv#;>vgq;k`v?O_x!m{+%kj&-^xPqA=YWEHM`+XKLS-HGVdUso@9lbE zu5Qdrv`QMGC8@gMFr5Ke@u`IAaFd%(t)>oyN54gB0QnjY9RJOiA(xgwB{&pM-Y2GL zTx(XNp~sccpBXZJ_DG)R(K0<=%SXw^MMLvtov+1K1W^m}dy z1OVY%deg*p2Vr}@>Hv5Nx@^E}RsTbay*=O|wPY{Ov_IxS^B|4ZYHqfp7vP}y z*^YyFJKG{pD^sU>aFIjHn_*wLS?IXW=-A@Zrzc-uodOUhA0MYB-5bMOKW?Z^&ez>L zwfG5|ArUfjo@CmWLy_oBo$HL}8}g2uxtGcFS&PZLv2nOeNNRESwEq*636JY;*>kuj z_EK#O*ku^i=6iAU2xQP~jgjvb4ALE!WIg$>>kjUOT)H6=P!+k{EU)7r5K1z)u`Lc# zPUPot9pUc!HSoO$aSN$vSZwb#CUSRF>-@x^ZJGsb43zlNz5LR~gUnf|`;+Y3cVGNk zFl`2Pl&JD&5X;|>f&Dv60bZcY*G>Cw9i?38h<>9i$PjgCSWOUq7;B!`QFLCuRwsosmiw_#mDvpC?o~(IZdsZvGp>puFIb}Fv zx>6hHiCV?9bsU!#6p_Nmp?h~iu>o5r)gTueE`Un;X|3(dVDjkNDXU57*7Xj%a-!c9^Oy*cC)gIF+W)o2l*C0;}D zTOzIW1qe?aOj^-~+!<4~oj$3J0Q+T{>W{7!OuwJ-1&2+!n*C*w>Q*CvS^(fn&9C1L z5aEVvUt^hQ%{8@0AL;U&KtmJ^NJ9orL-lG}Wj}SzJQi@Oem{H7N3+Dzp0xQKVrx`T zM*C8d`zq^h#{5&6c^oT;(JC6c6=uwwHVzt#1h0G;Qg3SAlfFA8zE)ElHe#By^(;he zH%e-PvkU?mi4W3rCP!YTp*_>T98IRh`rP(7*H*cF7rLesG~jJq*&;JKVQ#~8l(E`A zo2VlKx^n(;s8yGb<(!pIM^)F_mV}c0$q9daRS};$$u=(a&<6?ethyK}&DGV|oV8sJ zc|PnN&u%@Kvnqz_C545>cO<)3i}5>5W(wmIe)a`EFUh|E-K; za$0jXmce`CVrxBIsBPbz)%!eQtNj>&jRdoDiZwPMU>kxV0r17%t+c5#K7eQ9!Fm1G z>yvMdGizZNSE51@8fQt5P7UOc6o93toMN$vWPcHP@=(yWGYEZmI!Un=mN}mF{H6+} zoHxNsr@H_hqCby_Hx7trKdr}#&!!bRe0A3o@Lz6A{)z6W+G(5a+%D6p);b>h>9yXY z;lYj!=&B#$Doo&5?BhpMvcmF>=*M2A!w)=N>cm-NmO|Xwd}H2yPc#ajZD(FS>)*up({p2rPo=rfY6&scFeYqR=x5;;+-v}E$;#(ytvW5 zUiHXR)vp(sF^G`c=Q_hJ{@jU^{Aw-j7Y^%;5^ZPL9^a7h{2S8Wg;bnO`h z=ahe$G#1gy#%m`umgj(rQ??3%Pe_cquPWdyFS}yTb`hS zLFJvt#p=udoLrEEo&raci2~l}D$zL4>uL>wk5!@Ogcwl%V;|)P$8h+c>0u}lGfKsm z)l;01h<+Rsa+UK%1pI;-S-I_M1F#a=rg5xRSo$|8Mr{2X6|zI9q%hsK_o9K9|&0Pa5VD-m3C!sbxW6$-RArIhtL(dY<37jx)*t&!!t2ykGAR z*5{md*)h%8*$5E}oFg$bAlSRBDJ|{EmLj~MURiR%7Ju>+dpTom0l;5Vk}W~r%*U?} zaOE(ZF`I4hpsl0Cpa5q{INmmj>CL)hfV?!cmZ}Q96itJ+_ zfbxoA%LOg%gEj7{k~yNL%W1>209V8KGqsKpL}ogJ=fhB&6&hPhmYqm;ES#Bw*`7~C zC&7KL7%AU) z_DJSl5@#WHuZ>G%TfAFVu!_&ptyuXG?INKTR)h;D#B4TM@S0QfOZ6CE%CA;!Bb^Pp zMdPBfUCK*GXXK=hwh9De6z0nOi+1NZmBrxoTip%SJPmeob~l8evacboUp|HaM)4vmPHh z8`ix&Ac%CsB{@uOi#i)u@{ziX;m4Y&0w;X~c8s3Z6L?w~=RJQ3gEuw?OsPvM8ER$U z%_^72IH--&2N&+RY3MMo6sl4~<8_;%H64r+fHnU*(!uW-baF`Fe> zhsUyt0{yvL?Unv`1lrn4S1et1xh|8}co0-5Q(`okkkb~BaQzlDPqWiTzr0u)UZmXG ziA4hgmO?Z6m#K7UFkY`FpeQpT1)$9?N%$n2dV)@dcAc0L*~%#J*S3m^FDy8y+U0l2 zNp))RatqQW;W7ZlrQXEsn4swUE07oSU9CnPqa=&Q$rCdr_)r&#g70nd-Fq*(x8umW z<->$MYnxVPRdLt=rsh*w+PerbCU?y4YB}aMO9?z2b_lXFAJe{2@wOG-BW|FWbMc+( z3G`Ink0EVPKSzdo$pM-`6|nYwXO@gA#hXH_y=&};MVOA=19pI;v%lg_ zK^oiEc>EL22yjyyU{?LyIaHi(XZU?bg7Eo~na140$XD9?ul#(V{fNx$VTF^gIt0Vl zK~Kg4xuR9h5+jmLcju-I@lf<)fNu5jO-hu!{-~ndNUc5D7IZ(sBB1;%#8Pl!%1+K< z;!fq}$E+__mFC~KZ9gqwrwA*9N<#{)FKj2ycA5-p0b&7yy_r!Q7%A#MVfwI)CY;$A zBS(}!e-y4=Rgxr(SHnW(-xLkG-U;im9rb8}3Wi(GJeHmR<9_Y?UW1`A{|gspYd|Mw z3;3e|b>k3vgcx$Zsk`^a*k5caV9d!EjR6C}UXJQ8h=WN7(&`;Sghd_Wj;)Cgn)?7} zycc8-7-;T%>5W9K@rmvgrm2T+b1Poo-JT~-^W`v(iZOb+!zQ%Bd*1PHxAFwl8KqX% z1G0q=C~+yn{MP=%1--{1@9=l6mi1dC^MvC7*=3Nb2(jfF)D0IdPt?V*G%#!RL{^!l zRoI&*PDRsFryc#wt-5xhq*4O?1E9qQZS)Cr$FJ^flm;~C=j-<&6`V*ayP$h#3%tSN zP;cJU%wvfH@Lqh*hIn^_hHdy~)>@xi)2&Q~>$>Hm=B`26bsTbjPvV5tf+H+H z`NgbzTR~n$X^NOFs8>y*|ChVv)o_c~UafnPlbjyG2?Pfdv;% z{epU|QIV&E+Pi*V727D|4}#WqKHK`Q+v77!EO_VJLKCkw9m`r&#&?+2zPb(d_I57w z_c5$h%5aqWZSYg9+^bR@S01Zg(bv1N(y;I3M!uk!FcF2t#n~53Ez9}T4H7~`1K%0% z#aHaj*0NVHtV!Y)F|>7)$Qp+4Ji%-%OKFbqTcZ1wTMm)%?Tlg1>)!_c9;u%7ChlcK zr#B^c7u25?^ElCk`;HSa>5%CJEKlL(o&6H$Y)z}nW};Hy|51hN#iQr`F)QIu`gg)f zTZxlt#nQN3silUj(rf1t{13z}7mEFu7pecpTb{4J;Xz`6Iz4(5e7}J!Vtqh zfYYAZuk$#$rPu@H68K9yBHYOK(8@N~!08k|t<3&Y6&Jq-KK!`vn68Tsp!;f`|86Cl zZHyrQyqh|sazbaq+?tT`cp7nr8K7@^+v`rwg5KMt4n;EU`^GWn&yOHLBp*n@WL`k7tV!=w47xsEpt!Kimm?K2-wNL7 ziVs=H7Gq6B#D^_(?lo)kgpGV)_??B=No>i3VW9rcZ5&Wl~-wNs?>w$hy}&5830omL?(0-LSEQrHT4NB0nCjzToK%p|WKC$Dm2 z=%Zrv0l_j@RB&GNsBk^2U2(fV9!VG6T{LD#acM5$?AoeZpt{yoJ;HN$JhRX6n}H>I z$G(j$#VbcDlHU>o)B8n$PUDWp^cXpyg13!dQTt zkK)Bf%C#xvpRJG!Z++yIBkfHYz44so?!W~;BAwv8yG`R97|Jf*l0>cYpjrTp_G~_k z-imyW;&)t^eeyREpmHDNxv5{{8x}49oJQ-9suLz2n-UX$un{2^I#Ug1D5Aa!HqBLp z_F@N-Uj>O5nDyg$nW-;h%qc=<)@x(dt2EO3-#*y2fY$P1os`rHU9Z1^Owe>k@7T^T z*r%0KBX)uT?oA^C#uAbCM{P&Gi*-LYueF6rYmf@@YwRS;n6Rkf#aTk_MN}}0$y@cD zFaDU_tEjIDJgBE{8lXu*|4`}zts>7vCJT38YBpkL9_@0DFBn@%M@U*-dVJ$(n$>y3 z3uG;+KmgWeAFJBGM9|>y$4dkXqNPKdb5d@R@n(p`lBurJkH4xrMs7fIs=yNNyg3CY z5$9%4nw)V@a?>#3MGU4EzF(82uOt`UgPq5e%R}!Vk)d_neiWIGv>@A-Y}!AhPerc0 zuyuXDJRr-R%%U{XR0IB;xj0L@%}+{s@@xV3osFNs3I0V)SZ4U5oGE=E+A6@o_!hkM zt5ojb=Ee(pR{SD?ZB;;e?o=Q3w6DB&a%Y~?=Z<96qUQHauAN)Xs6&xr2UFJtIUOj@ zIB^|R5yGzBZUg~_m&g&f)XxNiC&5_U{<8FPcsE$t3wSYS)HMcFe3pT8`0X?2o+vlH znlnK(oi{dXw#_zA?)%|mB|ZIpHLzHl41MY&aR(f_+nrTNpRd-KX>gik0W2OJR z_tF>t4Zg4;Um$NfUYr#MB`hkdR%&D_*{ABx)_uEYG*u7|`|Y;YgS=6duHS$b(gqWf znMTIv-FdPw7X_K0I-xruk+vMsS6#BDQ6?TA90Nm0YF?cUU1f`H&Txr_{=D`jV&BdX zHrXla6m^0&^70xZzsMlM79g(Oc4n;J6Qmv4nUR5%(Rh#X-(BC*+j>^4&e>E9?FF-& z1=&j2Zqpxj_;N5075*X>(q-JVUC&`dG-$VW#LE>IrYdirIo2xlChlU7D>b;rFsUHx za7Wge>d?aP7ts8cyFlE6Ni=xT1GS9W`9Sn~d6w2gVDoSy#k_}2y(l@Hm90x-PkF?{(OC1Uv5|Tn zg%ib;rIX2I+bAc0{~5nTtF&}}+&#sGldq|3bNZtM=cH`SB43z{O|z3 z4I+_A3nh;ucZ>Jh!OTSpYDErMA&_gPn(TEXdlJ%fX>@)5INd| zKn6}4*5f>}B8sGnNs$DvUxeqeVJ5-JfiJhp%!fVN8Z811T75m10y=00Tf{F`io0*d zb5?-|nRw8r=F8X%V%w;JI6@vy{sCxcak?uyD1g&ml-U7P&}cr(l?=oE!A{@5e=C;%C@1s=+Y5yC;mDSik zjlCB8bcnC~lI#Kw(y6REbY3JG2;S8UeN?Sn*dJi3K%eI-1_C>I2nzem*<0!+nJz?R zT6eQYy3JmiHnETSpL8g%dAjh5YI>&>qY)T6C14lQ%M`?{CP%V*fqO0GeH}oyC3CLt zlRf&?-#?0dGG+Q77*aa$D2eTDCoo$T#wB7&S840|A6WK4o3RxE7e z$3i2P5rs9W?nTjS{KA)8fX63#JJG0*Nla(rws#k}zNOpiJ~XP%X|wybpO*P+9m01K zhQagvR}$umyqqso?J=PK_5?ny!W7%|lW!~cTQ`<(+8M2X;_CcI(`k+pCsQahRln6agnrsF zD_ofZkip)~B)!|%wpI=L1}2mwwq0DoVe_$gLMRQWuclNY1bn1OB176BF=?w*j5av9 zlzpB5r1=Xz37pm9di=GXLkb_BC|~#n&75Hlb*XFU4tBg5AeTVRQTHVU6Znh)>6*#ZHRxd_}VAet^&SJaYY+pRl?ITkgQ?d!; zt)ykQ!mfbW6mlXZ7~}K3Co2y&T*(dCv;>ZWEqYfb%Yjp?-%5cOs?WoCnIL^(1r>I9 z?3oB_((PF)$kKg%x|{U8OFx|yErTLCrOSsMiX^sv=?7C3_r_5yFV3DdY6gK~AjrEU zPCt!3No!j1;Cvyo8_7sUBbhBnq~jP(v@jHh#%W`bIY=J1%h{bm_)Z~>vq$4l;9LC0 z97QpItyqMQ+3f&Uq^4gtyPLfo&#F@)d_4~A6b94<(U|2vpd9p*RDm~4zBf@1dVv}W z3x-lW=n6l8PIHs^dKv|CY1^;g9$$F_^m(n%Fce--x9JVy6S3Fa8@2OB$2?U|^;L`D z6-QB{ld%LEn1$jr6FFkL)6qThtWp#QybU4J$YO^aIoo5zVj1$L76SG0sOGE==EaaX z-T^k2I;?**PC}BCaH9>4wUFyKX{%K|$*swU@TW;=5u7yWYZxZJf@4iy*MQT#IE;9; zyrxAXIGZ0e?JxF*aZ*t**6qM#1l;L_n?Fyf(61e0L+j&tTe!W-sh&stm1EetC-b$ou7P1n8oWg?{wy3Yggf*qTua>9|263l=IKPhJ zNMY7ZppSlSd?P=px}_Gik=O{&w)i1q4RQ)WLEJ%~@>dH{Z4W>71`Gb#Iw9^`W=k6~ zvGr(3S4k1jl+D*bbl^kJOPAm*y{$9$Cj|1~^+SzEEB`UYjmNxe?^``9O9|?2dnS&D zLP^lDH}>Ez@k3nurBV_B6~bRT?;_s0!JAwvB!o7>uN^$w_iDTWAN5e-Y#|U#bce$Cnp-3B*W6e`E^mXx-Z1S{xHR5 zs8YEKe*qbxm1se$hrl7LXlnZG%gV_?_o_vnaA;ku%Z5t%Z3cPsRTM;{Nr?TT+idPY z_fBBk-luN=JNVd}))}!7n~F;6+N9ZSt-+dqd|Yk7@^`vSQt9b{+9+v*>ylKP*k@S; z&SFT!_3UOsKtTrRp@(Lut?QX&|LPq}gJ)%f6!EY_t(K(}lgy_L6@KZOQA}UYt@46AW}~ z#X^=Z8~f1*Oek^nSU2j&2Hx6@=l)UI^wiq7vq_qZNz_If0ldw{`QlMa+Ir=zK^d$- zZh|@U9Ce-pfBKv1-+-euD_jJBjcBea-X}p7hbRwocO|I$(3CXyrr|qP-Ao!`gC9=6 zTEV1Oq&3kEhyff&INckyv`!6~lM2KDF+k40t=m%v{_&g=%xsRT47?JSakCO&Suej- zu8omfsI>*;pph*c;GmM10TJtc2*PWepgO7rx{o$Y>SXvy1-9|dgG|vEO}&kxP4L&4 zU}gh&Rgu7i^&{7WkYp4`)p&aqyeE~fcc-F8-(qOl-3&dx!IZ*ULRWuH5>;B%(LO)2 z2o3Wx>}q0wU!0njB7aj+U^Ty;(AMVSnGNY3Zv=4P#I{k z=T~$yRl)VzT1_Cny_y#59<8_k4jE}mN|X7Ow!1+M!C=?}&LIoN>YJkwMNWRg&O=t5 zB61eRYQr=XbHZKcBRQyQgy=mB^Y$%>)Z)UQ5*vQ;^zp2k891)2%GG}6;Jc_7eC>~q zT)6ouJSPA2Pq#1qkf`<3p@f$|t2!S%unlMJc9l-7$dl z07G|o4P0(K_aB_+oW0jsd#&}JSIV>-U!{zkgDs{Q14y2+k=dm1$x8o3ezh8t!()qv zf*jxOrJ?YNG>gm|=|Rrg8h*|ogTL7#3D>i)l@yywq3wE}8!qZ~5ph~bqQ$yJ9lFem zmddZSGv;TAupAIi<8dd+gXi4#Dy8;xy=&S@1o>Cv3>{1DU)9^41STWdk4*+62;qY{ z7P}uZoAL9sTGO`ENhbkO+`%G1;B@vMZ}1;Ks=@q;>qxL)0?2N`|A^@B#HLs}8jqZw z;o>;mO{DWN)Z8C$KAUbs=6245uAQqx;<+I8IMv1UPQ&wy7l1N(EM13!>N90AjxUX> zvaN@n{tJN{rFvCCyNmuv;CcUW3Q0??<@GxJE+J#~&ym!|%S%4(nqRyA9uAKOvHqf? zEq6nDRT*LpXTx^}YHj6nXL?huO+d$aNK9|_gKSf*j37&V$D}oRo+g(?jKl`T#aMU8 zyO3=qjy$fx0qS>fw7L23n#qZ&8hPuCJCHB&RYvAh9T|B`w<3fxzbYLg{ERlvTm81T+1b?st*1j-xk(tj4BVS=3~}wOR6jhu&O5S_n};o1 z6r~Y$Ek=h7ymOo?(|Kbx=&@6rHeIG;zuX>jfPnIAmyTgke{mWANF7Hn^|oS2Tqr)4 zd97dk0ZIbEx-KF;Zwx*Pk_GB&ydU;`Ja_uFdw{(lKsN5%S#%|R@AHu5JG43cXuio# zV4QOfxDVb_NCuDRuzBQVB0tCHjZ$%Owi95UPM*o znOp43MkmWj4RK=QGofgWtZ8JmENv?*KoA8Hiu(wFzPLq6Hfj4u1)$R z!6;z|*Np8!c-b+Rt2F0N$y~HQA3}+~c9qMgj_u+_ELVJ1 z^r}IhTV?%}%=7ekhbt=Rh(o8rV=O}E!cBM!?$nV^IjSvmK>RM|g7RuY zw4*2Rdi)!>AI`ITkU^#ETNa<-LC2>(%w_P_-_w#Pz9U1ZvF-* zzi?<#b*$#&PgodB_ZNdE3G@DDnor;0_-P)H59p*}CLAaeeL^58@P1D8H}xe@SG=c;=Bk zZ2&ITb~LK+#2RxO--*!6Qt}|?4^KaI5$&v>R>MI~aE8>gQ1G><-R~Je$0}MNZ2Au9 z&ZnlXLA5lLx;M==kp0pV&)IQ$UKAxMvLB##GoOn(nf4N!hS6GeIlw;!d>=o?r69w>%|H9mEa0CF@3sM^@LWjVR#rKHREzGdV}EUqzMxsGtr5-sGpl-YVIp}rssfK%6YUWR~xom#)( zb2}63SU4*rTvwf=bcr1`SG_r_gC73YiWg3|&_|aQIQvt_Rvo{T(c9H~4rI)dZ@T3K zu8`-X;UdzNQ50)q$Kqkvo_4mWMt9%mVMLMk1{6Pod6K59s?9RF{dEmsL|aRD+J18r ziu3TDsVHaTzcuZ)r%Lv3ESyjUUPRSJvdP>LbflNC9iN49l;nLmE{u@P{zu9(yEA=B z@S$hGdLW+uPH1tTgaQx*Ikh!_m&lk#FOsT$%EME(!~^GOXtb(BVkrAF3VDT#@PlQ) z*MAAZbjUY_Y1w)gMH^FpRjcRvGauS&*`nojav%cvgn6m}G9L^9)Ze zPSKQ*SQ%3-t6o@eFAROHe(?ND((bd0oMhAW)$t&cE02HNSMQ=5)he4#pci35hCwLb z)${q6|ERV6Qnh-aQ~hfNWW$w>ZiPSM#-}TX_O9ray-kWD9O9MC0sKd$c8lv=+Q4ji z#|Uggt60dQ3e zyyt8)^Gz}@2#%5W8E@=m#?v=ZN?=&ZUXMimq><%vf?0l6>A-+px~>c%CYXA8jv+r#Nz(^L5zt zb#-x*fnx5@6tD}wcY9}3%JT|KQRBQ^K+ER+#19}31o)VCZR6-I3LKxqrTGuWgt+{v zghzD*^zt)?!?1?2ZT||D#qln&v6p*eNq^iP{PHP<>oYmdjeNmx&!Yp(Z4>qEC!{>x z`)v|<^HKS}@G4~nLeTjoB;4;!q!HviT6svfv{GQn-zJju<-4(9GfU7n&8USXsiCi~ z$wCL}RM^)o5pJfqoGuB=J`jZv>f53)>N~0|m*VL0wmo8-%TuP_ucRKUO%$>DdheOh zAe=&(EVl<2H3JE&r zdpL(urQUB;!6`V#YizxzFnCvNC--eqo&Hk=mCw>-OKi8ev2(A&0w_&G6kjDB6B%5p z=mn1^??ByO+bMC#%-C2|5hHGnbiN8iDOrXDoV)f{FRM#0ht^+XaW~kwtrcFW8s7Az zf)EK=3$Ewu@yzT{hPOWF&D22;cKtB^BSfv;{^rqE6~ccXA*C?0FVSQ-lLXas0=e#5 zBLh$y=VB&4cQ9k`D<^||H`KjayldF_wCE2jev4zr>ucPwuv?yOiuLkmXm9_V%>Dj| zEBCx~g0q_KsZH>sRigcH74gt^GP<#3pQ6M@qBfq!B!7aniC6$4ngpsm@x%KSJ`4t( zaZ^RZW$6u*8qY|69~58*cau~a{~0r(&w{vr=tStG5XnNnkA@3S)N-<5P15`plBUqk zqwXgGDWs0dz}TP%_vk<`YKmJatkId&Ytk-*0OTsihBFR^3VHI#XCXpW9hN%uQTygKI&O2bf74MoFCC6dYm-FHobr- zlH?PglsuU#4U}Bk9HOFLa}X=0lv{D1v76P1A1 z&G^XNWvQx#&hVNiiM8&Q59IvvVflLCX!x{vt1Bvj?+Zj|HwamXp7L8?*`}0NrKtAB zwt6bv9B%GOdK`L(Fb^fJn>Je{n?N8rjn?a(Xd-K=qb|QewAYjd?(V_4kc#$q!%A`y z0#xRW=7HQm`wjk*Ov<1emHd&aO=*I_bZw8V^KO&rr3=LEUZA1($WiC&Rps}XECNX( ziNEs#D&|=FG^6NRfD#K}5;~0Z0#%}4WBxIQDuq|K#bkBOCq@hI7 z&itN1kaX#Y7>dgTSYjhPQouUcJlc_OR984MpeU}n)qk(cm^rOUG@~$Pka`Cc3`Y+f z$L2jenDPm%eQQ!*(cGYV>U}_4yzr29`(o^6xbB5mT^ST+wRpjcF0AfhquZBnn|+~b zN3cgbbI&4C6Z*hP)$%y^(GbCc&a~EXhxL${NFkG90nF{7p8NnX91{qd+oU^8H?A44 zmmts%ss{Qyg;J@JywrtR9^_F5h400+6-51p`#ZO`0#oFB>{&>B8stt>MzYXX@di7{ z4$5C->3l=y<~RpI_RXm@NWbvub)AXbZ%}YhB4II+*74<5`z@_7R60|C^BnSH0C()A z*P&sv`{S?UgLsfhU>j(06t(9?r{8wB94QqgdMI_j2rJAaeueOxm4dAu=3h~P$38et z33%5ufikI=0IWyVu#aoXY~Me4ek>`Jk!g8zqaMF_`*bxW1`=^5op)>HB?myz&GtP< z+!O4w?>eSyNE*I_@`_2B7m%-KKqGXAj;Uu$|41l^jtCYg#Xpa8kF`k#`4pyWg7I6% zN|w91gVLU5HwTD^<@q|W@IctsUJN82``KzZH`>qMgka^Dy&TU_o&C6ekhG9*7^XI| z&{=*v<#-nWE66npux(NgGCodg0~m4Sn`mX0lN+|BLtUCC&L#->vV3h*trt!ZeqUEgz;G@C^!}Ly187WIIknL0Q&ld?)tLsOsm#{0|HQ@X=Wp)jhs;F5g|uwc z=_6I%r!~g6-ym6%e^Sz4#wB?hz0W)7rBd!xm`EuU5W$4t4(%q(k{Z>s`n-%)rzpky}oMQuc3pIRtkUc-ZPz~+p8%N7@mqtoc zGjRgNo2+=NkNDTKFGsl3WzWFB0ZBNJ*4F z5hT(nz1MnX8*c@|Hqjuzad`h9JW3ML`RXkbqrH9pnUZC)>Tku?cwt`&Jmcks6Ank2 z{sV6RYneNexnt^#X9s6q_SKo}v)^=sH8gbdGkHtRqA9P-Y4EgQj1!R8SOH8v%26=8 z*@%tX!4KrSOeY(-(=T$-Ls+xYG7`ybUJns;^lYV&;bIx{F#EPv$V|V&w2`>9!#Buu z!>Q|dlyyKRte8E^m#O(jdMF<wS4uW@A0;yQ9VQa`oQ?={p3xxAeqe=6(0Nbg?*WBcKowo|F5ES;+$!Nw! zyeDR{uPCoeFywSw7^9rgQ|nhj%2hXxD59<2`H-Mz1pk~v=&XK)Yc`svMx;5j#GZI0 zUKkF9B$H6kny|Q0yb3T}vQ>72f1wuhRUU69PTq#K>X*btAi#VJPCDaiFO@Im^&ZMh zNb@4Jyer^hm-&DCj`|6#GQk74?NbdQ_U;jG@JyOOn2<;V#LJ-1*a~x0(0*v*mB>@3!t3CTL`VVa0^UuN{>f#+$MaZ;x}lgBq=O ztKx9pW!K8otLf}!3vh*+)1u$O>ii$k)rn@(TCxP!0oTabV{sBwMOAFopI)SUC9}nh}OCJDk*D|K;uNWj7eUV8= zSM>8<$Fo%>YSK~ zd4i=p+SIMo3)*XNocEIXtE+ce8PszO5&6ezAg7X0>hXwr-fpx;ePNIWq~|Db`GgwVgCG{lW>g zb*N!Mj3Ny_5762Y=2vuRF~-w+8!Lr81EZJVyoi0z@WC!Q!O!MLfe*{alRFJ(EKRE=ERs8gn}$zj0y@{P%{hB-W0N4k6uK#) z4XJQh9^ypjW)4eUPF=G&v`V(b=U8<{9&()vO-0X_6zA%`v;1e#*gi=O-BE&W+Ia^Y zZ_qM$3cy+A&akU)rK@K)t#IF{vq)-}L|rpX%4@RPlcMffbqWJ+3CRAoD3R=Ypxp

9@8~R1x^9dc7!kb$xP758p^pDA`$&7a|DTHD=!<;gv8T{@?=I_d zvFoY#a(mH*V~T8R0F;mpv{$V_d8(zwvxjLD_Mpl1GGK<#xq9`k(i8@=*fivf&)b2! zl?wfvx=+YhH&CsU4jP0+GFhbt!z^D#)cqo{=wD*{w4(Q?^>;S_>a zWzZ)U??axZS2dToP$o@x&noOZ<`*m#Zg(nKD%5#A5W|d_Ze7=7(fhQ zitiY_CsiGh&1M{#QwHA5V`V=VpuwtuXj1b4Iio6MA)DWdn3xjbI>qg9gKcV;!P51Nu?|(5vE+-DZ@L>nDP&gQ5j@i*H{a3r%1B#2|vx*I0 zbk(HSmzeA3d^fsu-;Ywj_cTsvy9vE!%k2^QWt6w^V>P>tA8};kOW!TH4LzNC&^NvQ z>wDPBqt9hWLD1gu z7b0rI6~3p12GXD}XV(=OakP;$K=%Gdfy*P%Bl(Z|u~$i30gruDV1#Ek`;`jHbG8l{ z-i!pe`u^NIqo|ts?e<#sEXJtovAbARCrb*px+4Rs)O}m?VFX*Ob!I22$}iq{j3sh;pVCi!#kEQ5yoArk3(4Ut@sXtVQU2%V&- z-{}Cmae&oC4TE~=rZo!r`|}wUPnl+07;V{2aB2kc=%4)^dw%ZZX2EDvt!A3$>n~mk*rGhRhrwPXf4(U~)dq+TIeV#XfAGP^&cDCs z@@X&~DE`H#|6?Z<{&<;?wubL*KRJij!FyNlytMZ)p(CxXZm$+IM~ymb_^xzdcxgL7 zeJ}+!W3M+jhPLq&9Y)iC0Y4vvWOk6J(S<81xjwt6PX0kGPA>AO_9G4gnr zz@C1t`msGVdrv)Z{3?yV`SBgJqsrYbHzU<~NRnu?0*UHrkW+@zfBED4SeGD;vYD>v zqxW~%4;QPVz4(+gWH_dK{L#9hR@2d&jYU|2C4q?P>91zlKen|!ZrAO`UN&=@1U z4mA9KzqggVn$`*<;xj0%cAv)145_WIPxSbS<$=*cDnL=Lm5=N&k#*;?;%wLu*DQA# z?!=wOM;-+yg#EWD)?xkxi|Pbrz8?gK!D1?$-nCrnzSyws*kD}d+{B8A|H4t#rtY#e z@47CKh8>IzdlixB=O6QdWy;^MnS;CUq=QUb`=&z@d4dkhdzgGCd(xtF3^WHgv+RX2 zm&zzlc5Hnl!>{4!$z$)Z(*u#9m9 zTQDIluOY{;eQhazcvdND3~+lQsui$g2lXi*aLp#6DnOVu4l?#)ZrSG*q@4!jPV|rh z>Xqxs_pS^RoK4!Ck8th{4L~gB(Sq92C~N)Tf)Lf zQRUZ`@^p%_#~pW)#D0)^Wa?ySfMk>m~2kAc9C0k_?yPTm4Ok7eS{ad!O$Q=_yTU($DAG zQ_Jr>7AETNa?}>DyqutZ8Uy8DsgIh#J}8B`h!f1s6%q=j#N5L>Bnb*#O#{G=#c7Y_ z=JS`TrCvFIrjqA+H-(k${N>{BhlSqyHm96Fl{%owEmiM@Kab6EFB|9rEgr`0O#t%` zCl++{(q4N-g-3jVCfmLhP$t!3#?(bSPJKd<*49>Ibjc=rwn3tYpV`Dtk5Wk*OSW;w z`F8dps*29hJ`Ysi+*%<|hA#@v{x&7hqC;B|oai)rJ)tVOhzj`)U(UG-{Jjw1qOxK@ zf(c)}-ktAYRc6_A?W}xjALCa)#41`fU!)(mZf~;l?cCu{kkS=4DpT?~OPrR&JU0NW z$h16|RFBS-J}1~w$47uJ&t9x2x{e1{KgNwe17V+UiE!Q5IafXSNi^DTwY*I!d{S|K z&dN&QYtMKMGnV@bza;0X!!bq_iekzaGk($OlnUy)=};XT^#&H#=_<=ASh@sx)4Y~( zUaAi|XaIFK9o)4cJS}hZkm`PC;GCJO){S_C@vrOMQ23U!K6GV$AeY{ERx0nPy(0{Y z4BVRsOU@ht&KGkq?&4n=wFS!k6_r|37U2LkO#5GLA|7-r8wQHaTTK$*;E^D`sE@ID zOR!15>$M_337Bwp+%DsCjgfh}?4F@`HF62wO;)b{Y>l`lX;}I7^5hE2b)|phmf$t= z1_ErzA5a6qnvJKM_fUI-gFt8SnLn0I!zEnJ0$0E?gfhL5nl;%T;{|p7jPL+b|4L_wxsKzsss#RyK%=hSSP&+e6q;IwDe#(xJ;NceP4e43X zYmnbd1x=PY4goOs>H;_`zdd>oW7=fm+Y5PgiK5K3A_+a*spTi#{jCmGug7+Bw}RAc zCf{B^?}SF7{?tw+NOIAUF!n{DG4r5!Nb{7z$a7D*^tJcXI`Vew;odR|Pr@;(p0oL` zDv#k7ixxZgXK1pg<$$Tuah_%PSK%)=Y-o4pd@$17u{_0%X}YL3arcA6#lFCK&;1fH zvG~k7v-2<$W0C!s!3 z(mXM-k31%YQpHP{BV4dgcre)G^u=PZ2z4_4^6rib4jS;yb{?c!Cb*A@AXaek*VrxQ z78w;mhxSUT?$2f)aY80eh{tCtt1pS_+zi5Iy!pFf;6~!XNRpPXYNjJrKr9QX0Rx+O zMMrCnXI1o?2t#JFyeU2~!fBQsBKzB(Y=h+cyUt2F|SVNz@V5qr#EHvYqmBIE`7zr~=ei{;Pl0NR2&rpM1+iU9BG-rDLX#^1&8O4|B?IzW5Q zLd+5zNx~dLd`qb6G?jZRah7W98~q7<9S&jDe}8f6XtJmB?PE_Np^0ujsYtCX0yk0z z+p1nyw{|>)w!F^(U%n?%x9d%n)dt38${K(7^RRW=9*mRJ)%{@FA3wTgo&^Lo(nRzo zE<&rXob7K>QPs;MPV=Ek4m5M69k_8FQR`n~HEm#EGJTpSMc>q=Tk1}JpSA?BWpM9) z30MD$T35VW;dW<-(Hoxi1X#VL;xLv9YNd|xyanXL^G`8?J_f7(agvKStQz*RpZPQG zNsz*23~@&pe8v$4E&Ck z)zl@P`M_!XK|=IhNhF-izEbFBdOBaL5Pi*`+NVBO<9LeuWy0>eMqltvoPDKJQXS0m z^lHYW@#*eh0KXI3?y=xiV6ZOAxwRDFKo*E7^yJ~AvCJMs(zuj|;n0-LN)R_j6bm0%MEfWffNsl*@9vejx5aPi`g zwd*-U+LIhKs!Wh59|E#x(rA$U!)rx5R9-V%30w21j4@JJsdx*oNmm% zF6FMWtxpS+C; zc<0(T4c7D6owb!eN;SFKJ9Df`g^T1~uGES08thHdzYw`S&hPTS+;2ST-Gd=&KxZ(9 zHpJOlbZ*dGlc!-@h}t`Hq%hy-3#9(}De(mq`w zR`Y`?mu6m!7D=1Qe%Y8nbDR?K2{}YqUM8h zZrByLpta+JdHpplkm7lsp0J9c>1cSG7JWzlC^~=E<0sCZ7>>S3YIr!ha&_q7I`iV| znSv=YbKeK-TmGk=$sgO`ZCaFc9rY^#oON%BwfSEbdtSj>E+4kq=m0)m%>yxQ#?4!^ zVhFFmn<<4o=@vJ5rd8W7w;q26Rg}*`>0h{sVnv+%}18n#_>?c*R&)lgN#ir8)we>O0g-e~+I<7@OgT zyP$mjlkQ{6)T8UHQS5!_)Vv(fRWUUb{nkDxC22oKWJ!82ukG{CLMp8;fzYfD?{`IQ zXP*5vD?NWZQuW>Ie>gjW-!M^88d_Q8WVo!Z4}^%tlNM@d7!D?zBL&q}&(mgXcj=Sg zIc~m+kPX;bZ{ofC_B>gZBbg30iFvghEyEDbgcTOb6IsE-5+6}?A0cl3l#a=X#98Hy z$iq9u5~^dwxggIKlUSB=jE6 z0^rP0LQi-wl{!x9ll8m#vKGWn471r~exJ*F`0@=<@sWYd@CzWHjiaR@JY_m>Sbl5vkQwA&L_Hi8Q#OiGidjtpndpdz3LIsN0W)R{!Zl(}Hn zVX@v`!J{nA*mlohF`{`ncwnSbY2xUf|9N{lM8R6o@Dv8g*K{ z@;+#)wZ1`=P#jd}yTloWs^VAwZpRxOznPyErD-oQj<>rP*d-e%3lq_-shH}nx6OX+ z0o<7E#9$lk_P`38rZcDV=6|r&w>jzrU3K0(4G{F#vfs}gc54}}w+$7p_9X*6&JZPO zVz-VTF-UC2E&{KsjTdiMyp1y1!OTOZ;TcpzcjW(~;;iGEdiOXkARrAtkPZ<6DUnVI zl@^d@pfu8gbc`01?vO^hyJ4e82qUB!1Bua{8-u&wjn}>Rul>8{Jm);$^L>Bb-($+f z^C>_LFgre)B|Wg`#d5RrN=H*c1saawL0Wag7Xo2>?&Vq6V;5pHd^1lB@{OSG+W_tR z2@gv9C|5EiW)MZ#H-mFW4+piGJPHSX#zq4PIq7Fl-e$$<+6P>Qkyz+*}V7n#(O@x59?jLC_H00Sin)~4iqX@NNTAt$mH*N55+eAG z!AesZ>KOlUrOpYl1J@v96wmXth;dGJW|Y|9>cSVjzn)%W36yl*hlF-`9<;9?Cg6?= z(|h^v4;r|N)EK<*wuUJdZ<;4$ru0U#;=WOiTGHXD+F@B&&@pj74v~DQ$`%| zxJzz{?1)dg{9~DtWYs)KV~z4`Wyn(#E$3UExfxr?>-Fr80;~N)Ih_@*26Z=tTIDZc zp+4gxM#|(&Z=`GJtj3gryQorGJVAW*13uodWV^q095%P+9+3=TyLINn$)5^vhjOtW zsUnb$1xx&AO?C_A&g-*>KPJU=9faA`F4=crPx)N%g&P*)*N78>v(Fjd*>C5`O*oUHPEe{4aE1GaOO)#A$LFYQx6}aIM-%LG&PKBnGjB&qb(LRX zyD#ik&BNfh@NjwG=9l&_0Ve7|FCMQAQd{?><(@96Ywgh3^ERsZMANGE_$z%Um@x+MyRn4{+{1hY>xQNcSb^tB-yZ;^LewOWYpN_RtGf>ZIL5Aur z$-)~0$FETOy!RVJYARAJ9l%+f1J3a~By2`X#;^l5OlF{O|66Iyhgeu@QJUBiCqAW# z;PGGuZ(^7jXN?YYrk_9&uaOzRIzbI1>BSbbI9&ZPnV`2gM-Wx~(jsMw8~G4w;W_pA zLcCnQ=HVY!tbD?4#Ue&!Q)PCZp@>HX=BZ5}=V*!MFrzQpUyrp|)m(VhhMpZ`t-tu# zo^<`La9$uQQ| zh$ypMvJ8&8&lwk%*_SQz2of@_VWCpzqC~)=N?N`t?bNUjcF&v-EUx#YrovH>kZ{O{i$e&vq0OmTfO6ECPN5W*Ovs{F4tat|8t zG^MbAjUxnvSOQ+(_=fiMJ=)RuBV-pf^ESF&K2eV_+}Dp4vqm32Gwr*$v8=qrexglLL`Xx&1mi2f()7W3^s$Y9@B?TXD!~LxuP0%S}+JpJOV`3(t z@O3WL@#Ts9^J6-zXvUfEj2M=b#@Pi$=!VYX^rPyjUNgw3J!+cx95Q=~H5Zo$)>Ets zF_*x>xw$JXw2HBLfGOg!GAeq`r0>5My$f9%wQoE4N&dXCnftQAb)VGs1l#%#n(wDK zLpW7zSV(ij9+zRTglJ(8a`d#l^b@@I5L~tMIL4V#L+V^wO#iA-rhPcWglJ{o5j9dT zB9k;9f9(1IS58D1=|7G@Y2K}V-}}vZIjSQ-6fh=(DEXCpdku|?{djx1GH(POq^VGo z2R%)rvAy((_`Edw!Dl(AH{mE;Oz`S+R*kK>z3PSIdsJ7jI(U2O4u#1JJRCag-=EwG zMSiFQnT3s0)z;um6aV7p$wHuHt1K}va*mre6>%`h0Uzx;15eFOxagLss5|`nY-l-F zHOI8vwHI@vRB-4oiq*dJ29oj0eZPP|j&T8XP-E(Wa#HA{x>z8XxcKUyJL9|}Z7m8o z7@ehm!)nINs4-ptZVzn0MX9OYE`4+lw9fDXA^I9h|AmQuJGxZA7D2H$z0fWEEW!nR#PL@K(_ltCHK5dh6bgA97bYROr3vr^$N2w2aktwz_q6bz5r(y)yQ4V)mZv zUTPurKI`Yx(OgDfMs%2>PMW2PTUdl!;d{gMbM|_xO^suj+E_fFG%>5p;~F%tq&n-JEF)%bm6CP6s^R1o^qSXN z*P?0JQ)~OspOoc_w-xfLX1-a!W|Hy@&UiguYN~;5|9nJ-d*nP20|gu@kGT5%JpRVg zV}53f*I}dogxw*Q#LjjD_B;A;`PoDU>!jPHCt7tuh+rbTh~~q!Vs$G+h3Ni#p`TEb zYels^CJu&hz&@8HO7l6yy1hV9Fn*4HK>UFA9d#l>ris8%y@fbHKDJBIlcLs>>3NVq z6y*xmE1&teJsu`moK%gYAtIHi3z6|DQzw|ffZV2Xu)b=0z!tXFF!H`m^d6vA225xiN1=$5~5{O5{dt+A7nzz z1>aTo*Dtk@AUpst2JkSRHBk`jlqK?lWVx}=^+J_sp$|?e@;WZS>X#KWd%86lKx_JE z3d}ugc*>=+2YnLU%8s+6R`P)9D7`##@wS(z&xz09jy|P+gFVu(lk~zlE|nw9GC!!b z?22!K1;0`P#7+40$jyMf6JOh|?6fSRyua931(PK-T_20dHjzq3)J|KLsG>r6* zZy1iuk7FUM4Efy=H6AiEDi+m8olNIEV2|BLtpDWiCHQi2O*mK;c9|5~^0bPnl=-%h zGP#XTOb*U-Up*qdHx^utYC1vsI^A1P4SSuhX4)F^n@s0!irWM;?LRH8YBu`|2=M&Y zqy2z4S>bP;UDm7eV~40t@jEu9SmJdd7JM@1&hsfXC;~wUT~}5z&HB=ie*O%i+a#}d z+`2s@^tqYS=UHQy&vNv6&T5^c_h$v~MkhbFc7>IM`ZVwH(%q{d1-@P|$> zFNmH^Z|hqK;k){0=S%=eoSTg0W}RTXzBG(DpAXkr1?ust@r2UO{y|YIaV=^5$F8oD z(~qtsjBcT)H=;C$_f~`br{9QowL{8gV479CcYEcBU?2>QsA)$x{^cGczVmvan)_~Z z@3YbKQZkY-TxZYUhs1d4V>Um5e$bb!06@?9qxX0bnlXIQadFTze$x+aqn04?6t_G6 zv@waB8qHW!>Ah>X4fE)X_Xl9l6!+?oDI&rmTP$tI@At#)#5u>2mBw)G-8{Cy$=B@d zqE(VR?cq^K4rpio?-(e;p{>>ya&$`bqNZ}h(F`@sit1Ro4+-ZS;FdD2*XPYqWj);G zIaOC?m!rv;K$J5W|5B}PUn{ctJ5oLvRZ{m?3=+Kn*b0uk`o4Y~oGt6`W?8*08$XyH(dO*rj;FH~DeCg7=;xe~liO(S8rami`v>XG~@U2eTY?l1tT!#LJ zYkM&IEGwIYV}9p*Leo9o12%kfny=-bpX^&qx@Es)Qf_~$&!b zB#N_VQ(C$3pA(fHA(tFBFr6Ys8#p zyZ8WsMFnH=sKssJ{zuLtPjM!u1;l&);k_uVest@ zMCSi-!m%?T2BAj~pOJ)Q!|jWttAl7g^cn`*{D- zCfW4!8%1k8!kYxSP!*^li-lp-kuhV51fDT@?}J=}bpCk#%_r~wI{k(nRlh^6=v_gu zvOzkyTH9asCl>bo0XL+Qj4*nx{5GM4GfEfV?4s}?TTH}h=v4`WVQpn)cQM`wM*fd5 zQVw1*3V0qx)=#SfNXE7Qxn&DiBqSVYsIj)z%37=IPF>;_;EA3)Q)r^mMl`gpA)C$N~gC8fnLugBlk@ zcW|Q&dao}Un?A>XttU#W{N4Na@DwFskT%u&=m0=KzrUnSktqAQS6bK{ekmi6aN~h8 z-^1p&d1TVh0AcjRrnCGU$$Bx2`daVks;GANZ++_vqp76n)b3Y_{YB~o<%Ws}R}D3T zeJZ={kL@~~<0!{Mt!citLFx!Gx$lDq{#jpNckhQle$8k3V+fPYz4tIDgg?V$zeXs| zX78-^FQ2n5lGBruP1NI^+I;uiJ`OnpT5oQzO;xLpNv*B(U&kf(x-u$yc-j)-->dHB z?@~>voKOltpiI4JRZMVS1Wx_SYihv;=qOe|q{Tg&#Y^YgE#)$s_-WS^{t!P>`^aW- z<|bfw=^Gi7{kyMpiU3)+jdJnn zXg{T3+e{L>bs_o19T>Ueq4oLuQDyi>I0h^8N}AOq98=<@=@m z`sJl5m{GD6Y&!t158_%S_%t*!B4*y=FIr0b#x2cpO%e%XCmbI2%rk31|en%mZK*hb;xNC4qX zQ8h=tI(;3pq#E?8AL>lX>h*}=K3+5aO4Z`Wmfz5jJ!dI>=e|oBxFZ1F!}F%4E9oj} zGHk?PwoTlLG-2E`Ei8_&e6MnD;D%}lE8f;8gpXnyhfF0^5C{Mp4hj4em~y)`*YF<~ z6_z;a8Y`*!5r{mu>oSZR&raSu!~+~YDnjtK%#H)qs(y*hA%$dL+jcm-%8}p3A?}3C9yWe z$3E|~Kp5FxueMPa3$np}9uML{-w&4LS!Iv2t=zjJ zf-O-t8n4M{pYEMvz$CX#te$vvGusn>HQg1tPEz>_={LkfndN_7fd?&v}xa!lc@ z$qHZJg1mQ_HKzDmOpr*H&cLA9bP$lgn3T^sK97WW%!lGY!LD zv62x$QM)6ZJkoSbz3!~75tKZV%qFwe>mhq-K+mOK&Cl8QCsk*%l4L+&MP%AI$Z5LQ zA@0SVyQ>1k6toLO?!B<@Fmv@2ow=RQODIhx4x2z6i5)cr59c^QVD&?ELIJ&$Jb-6nk6Enn z4Je{Z-Cy*BKqE{{2QCTRe*X>92l@O&E)z+d5iL1;C-87vO8avlX`#*W*;IR%-t~jr1WrnYzjm7d0Ng zOvgotz0s5}>?YKlfID>OK0i}x+PC=f9WqsU2Q$_k>Yx04D<#u2)O8=Jrh+KlO!?|Jeo0 z;0O99=>w(-(IDO_q1DcZZb5+}51B#1BJv~~m&^n)3PC34=+aP5eCF%AdzuO<*ttu; zdc{W_DCKaG+^qCzi*ZWkh2~qqSU!506l~L2^Qeysr%*a?vs~0@R^686OJ9xE(`KlTIB{-3`b*F z?0t@fJOiWAFvqs7+x4fGz<0wxN)#GaU<{tf>)iWD)!>EuR&UkId3KuOWxDKL3dWuo z=+MXuV%nShZN`KlTt@B#?N%WY6Z)`A=2iRmW+|V1CguC|yWU_SD=_s!^7gylBYk}% zr2Z2*8e{NIL%5=3I_34FiA{&*COXHL501cP4=Cv|SmkbhoJ@Do@ThL|GMY%6jv9&p{0B&gw5-*}$sxI%0tXmSW9J8Hk+bIs?zUEu04M z($#QySHtYljSDP?pBm)nZqe80?2fW`Sx#nPke1oYBrtXK`Ld9T`N?kG|K`B#&DLzl zgm*0RMdBnl&+%^@96eGib1H3nkMUu-|Jq?>?x3Lg4&cZ~_P&TLEQ{GWE$zbQVkE+K zqG6}D9McLG=thp(f0FoZ=>LBGdi8Cus-tfT*L31zOBoEnwAx%vI$a8RGO9qdXT3l% z|Cd{k-JkB+5hNSIA}oFA#hSG0LKhV4$jE2l#XDmRn(+*&zs8=Uo8ov@#9jai2MgOm zM)Vx?@-~;TvZ68iZWiWG&3bQLGGvBtg$SZaJU~X&At~)Cnn%{zT}+Q z;>iE8ph+1kIDIKs{mUnUr}YwYtf_+Bbw(Ough8(z7!G?+zkjuddXisH2YW{3rnYpX zsH_=2-7BR?56P&;K1iH%=FcT9~c==Yk#>yitGTR8=XP zn0JRkWpzCdIv>L&e-lic{+J-d$N|BdJoO;WQG_uEHU5x+fIh23=+yxo+056KHd6Zf zC|+Y)JK}uaSYXnWb3t+{Og$mU&0+8uWVG%aJ}%}Q&&gY9D}o3J@*9`#(iR<0z5T|@$^;k zKB|OuxahMli~0y!DD~Z;2PRKAF?BuW%G1Q}#{XfKOMm?pgfZwl6l1e*hOzyXnPh;v zxVlCHBF#kkfA`3Tv?qo3yb47g@fa{G6IHch`n_pW5&Pzn^-u_ztV?+ll#G|eZ{iQ+ z8Y}**(quq1Jece=L!Xh>aI7vy$@=Hu$UBR7MsR&DT^mP3WxhyPq5PbZ5(e+i?98+eUV(s+tBu=li z9NZ4x7YmkN3wLWr0y_K=pdi8pKH}&++Ry7y;NM1Qof4)yp8DOh z^eQN9hR3F<^f4vzym^YX!|0@+Q<87fKF)|97Ui5!`YGl2yS*xT=d-nXhi=i39EpMM zltW{bm^u(+Y~QY&Q9c(Dr1mVABsjnHpCLsE}W%R zS+~~)S^DyDIj*eg+XiTn4^WSmVO{oe6OX4It#D;qhn-R7(Fm7boCTwiQX6yYkig~B z(EZ7aJWdozTv-Qw0WyMYN>8ioI!p z&M18Z$p}~wG!vvTyRwud6ueeD3H@LiFbdA z6dtk3jdK4k)#%&&@i>9uoBH4d9hdOCk%W5xusc+~^JF=WT+y4&8nBrwb%gaA zz?g80Ak0mEe8i>@bXPz1qt?x2iox=;@BK~%8E+Xy$|(imgvg>T%}1c8)n8%Qtd zb%Jm43lY{!q#B0juvaxu7Qwqdtt0+>TXc@5*kN|tXJ~X&M@eAA0jf-lC9nqGthFiA zRldDW3HL#skwE#-=F7e6{CrD-0psmCUeehetr)76`BPp?B%QC90 z05i45?B3@j8LE=q??1)D$obL>_R~u^vc$i*PQ?2?p886PjqMJj_BR6=bsgFszm5Id z8p;)Q(^%2IAkWKwnZ2rODd6M&vjP3OaDP-fE;0kY7et8D@zp4#?lKyfLf%U;oql^uR0&Y zS7ZTIM164BFxhH(7WcM#yK>`254Mv-o(POL0CV|ekpwsGFzx7NSQ{GvrLQ%udm z5Wf<%dm@GB&VJQcY>4;uHe|VA(&t+PCLrN)Sr6nZKi)8+0WUF*w!R+EI{~MfW$peE zYl_yuW!>{tA}-n2*NeI$b=Ztczjq0&s~Dc;S5}3k;oMRU6o+tGvDMcfBeQ1Au0;uI z!-Ckksa06KmFtt&MyK$@-|LIG+8(A&M*h3In z`K7cph^#uujL4d`V7JflO4P@6pH8f2R*1Rli})AM@ZsEqdvkM=;N4BSniaK_X_xVuDvUxpSs!ua5(iw)}uuM{c+%I8MMOOr501h zAa$(o!*AWkzvB8HuO^$n3kpvjkPjuLP|hmNI!zdUKXy!!$N6GU;;>l1!2TTEY0+hp zy+_tjWLLHEwB^!1!_ z%aciCoC$!Rypg>F)=y3wc;$FQpd|qbrdz>0@i{_p!*$cpiu=8A`@pwB8l_GcbT>vv zy1tUjRcL0^rhS@i%dp)%G-6Imk)eJT)+3)1+m7RFl)8VAc}WiMRKI5?k<=Lf0nzSF z&hjy8+Mh1aLSTB0f!5yaOiyR(+iUY0Jf;HN?eas?Z7Pc8aN!g{Y#CI(**r7ZuMsAp zXu{T$wq<>wa3x=qLcr}XUq3frhak^`QhMSG8`F9pI4a4qA0r8=R^^Jzugy)fuM4TgzaWPTJf0Cu4+#+5jlO#R)04ZfM)9RIe4@~%jG_7p?50JH62kd>@3lld7Qa#%@^y~f z6OR5msq7R%7Oo^gIa>CJKZcq;{py63cyI${f&yBJK|^YuhltJQTI~Nkss}ly!StE& zNnvSCVH96G9-KMxTh1G>J~NI_5$R^&;;d)m&ssk?p%)D<9EJHhgjn}!o^SWSW5uCJo~TL#xqMLqn-KB0eqQbI4^tNKlqql1K_ec@|$ zwN&$mMOG<)?dLlE^Rqz+(%%UAP`u$>*}#A*qb4e((rhK5rt5OiX{lN3-dS>7=MQl& z<`o%Gs3!Y(x57qzoYySJy!!X~jff_AhJ}e29bnT&ZzG0uODCUfYixyYZgk)f{aA7tzXxOUsKh_5u>cugmCc_$td!m6!otCI5&J!A7yWQ zPLPWw&@!==9Iip+1Ea}c4&kiZabCX3UW$SoyU7#DK%&%nZrU3~qe!}6Hu*PSsrGH;?^}IR0z$+G^kEBsZhv5N8oN ziy=>?L}LorIbdnpwCUbQVaZZ$aX)wNbarkfHZdiTrnpn=yt`8$lGc2)IqGTOv3fD< zIAVfL6GNV>W5x{_tsm)b>l2cWtqRi}nsEu(_|BE;vhbDt2Z9B>v5vk^2c0<|IidHA z;pnsGF9NuPZH@;>0WVl40*Q$9Solzm0M(;4T`ApPw;Y|>Ge7Q68`jz!-fvnN(L!aX z`?72~fC|0SSP16=1w}PMd0kSsD#Uhl;Z$YGK}UW3$7$Dvv^T5^ojxlF-|Jns6@o4o zLeMe_y_xH{_{ID9ZHat=OeP-8J2|P4CE$L01^vyd(r5ELG8_YoHg6cfd^H_*zOal4 zuDMkIx=!G!)2AL~%Sw}4w;meZN_HFndrmQ?>)r!r=BU52NyI>%T_3tC5*fr6?hmrz zzyO^(!rfHy&CP(1QerV&x)qyzBuf4ZY^v^}(zS)gXAH($vD@X3YBbDZmgjgG)&tDm z(|jnYVHGjo&ih6G6zDx-M^WfL>F)WN|Mo+eJGjoY}s8vaPOO%n07xxbwyCT)iZ3k`5@tZcEF5I#mwl=%ZP%n;( z_9l!mEgMEYjNosjdn&^^a8g8{t~eZ1cl^LqU(KvCC07q$Ab}w_8_6j4bEoqNER9~; zLC|zDxY@YY`56b+S;v^P&VjFABC1p{J%!}%8MwLz2{{b<#Edt6DE@s^H03qWj6ags zsH$d7vP|reRsgzE4Yyf-?+!}M`$IKoJnJCx)2p2)(%OGq)d(I`J!+%BQ&?^1Vm~IP+~spnqi;GCx-9$R z4064{%5Aw$^4_`O#KBsGVL6#8GvL9$nXdAms7$A+*QF>dDeMj??WUMko9DKq`nQg3|)H0S@p=t{RX5pshR<-b%SHQ)jf_?)>N_<&gYc9sWkt&&CR{`v=1 zXBp6B+dyFf0YMO@8xfE$DQSdPKtehOQqtYsE!`cX1?f@J-Cd&@-JN5^zWILrbN}{i z_jB$z=Q?*PM>r39VLT~+*+q>*RbvD_nuF&25V-*H12T{=R+*U%beD--YLpfI+t<`=EWVR5bbJ?5=+5 znVh#~CxTa-!oB0D$CPY~O9qjg^$YPR!E=6FoV~c~NEQ-cb3=2g(Zy`!^wK)B45Fc= z9H;sCIw1eVN%9SE+qYvE4kL-Ej}9s|oF72}CF9V5@VXvh2^wXLv=iI}o^3lE5V?+S zGgVq?6i$FBO>}?y=5UUK=CA-#VIxv$OF-^hwznv$C?c` zE6t~Eo(OoLhjZQD`$1x5K z3)n;YPsl;ct7M;cF1;wOtS<+Kbzq!_gO$k@Ob0_a3_4CUrF!d!~qNNI42@y~{%QmGA=!&D@(snh~QUK_7p51KWI zUcL;n5C`)bC&9YswSuwq4PRIkmp%KUE=U?igZMp4iRKYNN1q@(@D+D1bwP(NepRq2 zE^Pv_IpaBKr)I)SJlwg>CC=L!XKmPGu+6<(q0;L9@&YVH)UbT(eo0*^7dDmXOSI~- zJN9^)PNh9{kV0TReO?X8cGdb;o(TXr^>23*ilwK#q=UE2Y>RdjAN|E04IpsN|9$*O%b z_&_+TSutupykS?)i(O;tp7UBX(zd=B5l51_T}-I_*6@v!(*XXhu{KMzrK}YPb;n4x zQ-=OUL^j%`jdmbGA|Mdjn)-b3Fz!1uwm z+T)9k)XGy|9K$}~xA{i)RG7x9oz72h$m-ovw1M7uV~Ja@WcBBSRZruNO6|~9(OTIt zCf=7P>$A}|DPo_%MbY;0mTw8Q)uZ(bIMvzb8|?@K!UJ!8 zaq079oNHboIJlpPqmG*U`Ty82@RN?p-OCI7Y9sO!y4DyXtAQJ6<}N%wKKd^Q{2 zHkJ6r-L);j@mR|BYxaNGQwcpS`xm=V z@AcHj*ZyEOb%A3k3>Lg(t*cr7R(c;K2+=y9l#M7#Zf+2sLQEB<4*PXU@OiErYqX4^ z(X~guXGO~XV;cHet*<}6_?;Va_;S=AT=trC4)mk`5WE66AILojLTGi!G2R~p>|wFdY!QgU@36qLRjgQidN{jIm6-$2Ta>4$Wi zb$CaGadi#M2*Y#M(14pV(!B1)s6!PdswXjbfnv2eoW!!ea>?^5V?`>EUW5wa{It1~ z-LfsV_^uW`M%0sMHk(6^qV6k5d2-#ZT?#E+$%Rf<_AOmn+D+yX)db)B);%t{+KPUx z82Y6h-r^$Lj9%o!X>!sRx@+aOR&%{cXyakf*{3T3bc|1%#_N{1=0!rxP95>kA57M? zu400HJTpu`d$%y2h_3dep#BAW_=UBYhHX>WLHgFk99<}009Jnk){8>pS)>q_BuP@k z>wr-|_F_$02O@>qAwMjsJS=o7-DvgoiBBSo!O#vWNig{$>3;CnJ7r?ExBbM!-%)w% z%A->96@_H?Bzg0k1QolB1HOjJ0GeYm57IMqS#7M{(NI+kuv(_}^Pw?8R@1OpaW3A^| zDiO_fBgUMcbH&0${o8rSmufn=gwNO$QgbSb2Fit}IAj7GKJ#D?!;2N&b(?no>>BPPf6QmHR|xZ2B1i#UG>B7= z(QjM|gV7r{K!soxlww+oPpx6aTCFA$)x+9drSl@$&*Z{}$~AnOm3p-kRXgNi*ryd!n=z2)7)3~;ZJj) zSLbVK3~qxkmfTr9%wM-(e0h)B+*uXMtsbX|SYy~Ms%>qisViFu3K`*SE!Sfd_oB8g zR`wCVlm>xT&~?|G_Pm>e8}*in)kd7Y7a@o@VteQbQ?jElPME-#OQkM@fHThV>UGAeUvxpgjuwF96io?y*>0NL=P z6z6{n?w9Z3i}mlt0+%TdT3vU4Q9zCtT%ibl0V~_Bb~OJ)1O3$fa^QhS>gGgL$Q$vV zM0k1}I3nVyzS`MN5P8O>>il337ENq$?SlS)`pwg9OEqzU69v6IczM~q_R~GWpG%#} zAipsVE_0n-oe!o2Z0+(-oabCbs`pRuGEVoW8Ub?aJxtb?lI9aQEc@!smMX3|wia)| z7-ex%LNBX3b-K@zKZmL@tf5!x4-NPK5`#L5%zgTL_B6-X{2o*>B8(zHf#fmGrI5AU zXb1>RX7+I9cfQyvq4Irb@wh8azm!TyJ(GIjUvJ{$$Q|~lF#d971WEZMFxt$tEw4YS z0VE#NHb*Y#Vl_|;t2|-hGuPN|xKRVPRhmSp7dEY`+=ESr->Wh@9VRl#!;-zPLx;K{ zl@8t0Nx-LygWpj}{kCPWtv;EUigF<@p9PK6R;$TN<78HM`_+KY)&e(|x8c~?F`Y%A z0z^1OmA6e5MfysR>Peic>{_CNMq;yhP!!3Shro!Tx?y2E0yQ6mr}IWmxns zYw_(Q7nB8BKA&<-lC3Q9+Mi8&LKtZC=_FQeItCe0!#03UY!U>|AV1h!GnqG48#t-vx*vzw4P4I8R+SU>@@&4BiY#Fm8_lRyKs zjv&d61o04Fpp@MUdw-}I6Twtu2^YvcfGk`ISH6rEe}l%gS3FNt%il_?e~x*Q`_Y3G z7Zcj)X2Z@>>OkZ=^bs{+2kVN5?-}nzwi#}AK=_xi0{Z0lGK2KYubDm*t99T)IG<~! z8XA@N4L5PJ{H;v36wfo31@>B=yK(YTa)dbIOPG0=iT=290$Vu68NB!sS0|X$coe`x zE(}JDTu$g4aqW+G0|R*UE27#(sG{P;KV7u~Jhf_55uh3u|8KcbUW5ZpGz7NDpnsi% z3JM@h@4=#xGVTbcKL1iZ(Ua<{Gpn95MmjBPH;(*H6Eo#dS zqQlXcs9yMLCi!A7R?iHo-%1&OH$&d!^T$}ls&GflBPfRgDq_AM0fz_wiC_G+gZ((7zDW^W%j44qoyKf6S?Nm|>qw3qyE( z^TBES(!wW1-Pf*)>q^kD0n#e}3w5_zfFaC>B6U*R4SeX%iwY}yIWD02w|78}@D9Q{ zOv$Op9UfwE_|bx6eWEZrdztEqpVr(cOL7gb)1$Dp^*(#&v=`t8Bxql2ASKzh2v6Ji z@^XYxfhKVNqxWcK#JE8G(vb!=mUUc=g6HW~fBm_)1T`y10ajx$E%0l7`u}TY^PVJr zlk2`nKe}((E@9VxtS#%E{5*OyYA$5-oe8PwG=j=Ul*aus6uW-J>bJ3acR3Ow`gXSx zxz#sbc6A8x*sXtb%pliZKHA-8{p!2muwGztG#rb}RV64P`LAkP&^za2!0xjOB{E6nZv*+r5B>KDkrpi-@&#vXbX} zO=}Y^1zKV7>|0S&Yom{i4MOGlq`LCdsks$!mS{4)Rb7E|ne3Kx#G1d$avb|dM9ZZy z73qTf7Q1$c3xdR|x3h)=$Pu!?y3wcZ&+#+ro2iP%q)}D}X~AE8sN;~1e|0}k&~6{u z83odfVXUc7`fr7gcW; z?QM%=HmVEp;C`Z{_Qxy>wI!lzunudLSt zqn|0sHFgTesqPGxl64;|&KqLcBY5cLS&BYMS0yESwpFL zpw*vT=eYPp^fK~9^aS=UL|xEp>kUl+*nU?d2von{3jc+N`5BoMw=rHowb}0lSjaC%{NSv=Tqu2Hp;(|UxLxu{58EBra$g^ZDO}qHBKi9Bw z*p5^aR6lk)xI_R5f5iQ&Y!*eTeZ~GPwaELF6271T^lmuqcJ?%>fLu;`+;#_^de>Zz zRyMS^Ioy{r*N=*1ZfK_^BdoJQ&p0kPd3FN^xj}UnTW_6@;GK1{%w^d zMuj%ZWdyu92}Gy2klr$3j+H+weh<8-f-pFJPxiA2jKZ;@#1iL8soc4a{jfO%K9o2eU_dkW=yGsf7jikH>h4%{)tRj`u z@z!T1m4bhT2wq9QZ!>a&HFmK4w3 z5Vs%3u0PISBVKTO>iNRIrY^@{b|x1-``|WQI0VBoM!u{H9(`s=t?oD!R*UJXBo7^O z??;4tNb8O(k&V?#K8z`C#pU;R<#D55UnSPDLYt*uQ8R+LHIj$f28d22P)|rERw*XL zdJ)L+MHK%`mj?$5n2HfIFrF zy`sFS(KWJdC403gGzXfk0v7khC%csK;i}p}5f2F=GM;a&x>U)^C|#q`Q!^X&{%Cy) z!YAI7_ylCU*%u?m6XHc$l?K3R&=CGEZwUahjuQ=&2mR01?1>0J#Vft7R{TDk+WP+rQ3}zrXa=OSK!i6nRj;K$Rxmv{oTk{#W;F zv4eUb4YMA_bM0X^hcab-BIT~O@eCjgbf++!PN6ez1j&??c;BM*SaKcG#x4grw?{b- z-Q^RhFCIMal}Er^84SyO4U;!931m@v>vQdQH>~%&yvp0-dfbAK#+RrG>D3g?n;hlm zV!2VH`a8rdvgiEma3h>(s|8T-*Umhm_Nui?Am!8HRhF;2yI4f_3-j9O-|fvtC4HpBtXj|9Kwc{$h8|{wBo$KTGVK|?F4B&Y5J^H77DNo zrZvzCJ5K;9s?mHYpRwbvGWl~lsCJl(cf}Hn&&s;PaV*I09dJ;ZYJxf0T{Sef%gMCI ze>dDq88&%yH!UnlFt<6$7n%x|r_BkqhT8u21O^)fu4LBJTymgX4t&61eCn%WY4M^l zi2NB?29bGH;FZJCHRn3Mk?M6-6y`ZJbL_iPNAdfXMD>@t3dM7MV?%i{uct&xyYM*IbeO^IzrLRa6L@&5uZQC>Il(|yn^Hq`Iw_uK#d#X6OumnaHiEZD#BQTe zsKeaiVG_33eBlE<^>r*Tibyg4*S*@9#)<$-W30FM49VC9yNhYI7*3`>=CAkN?HGjh zNQE4`3wCAE)mx0jQ1NmMJ=BN!bNcSy)+aWjXmLcT&4I}Q8F<;RDf={>v;1U<2ikIf zku?&KO8SN2=5%hnWcOm%uJDxApwO!-7#BopGKSP5U*UZo64I?*_5?VxHJynA5fHad zJ}1`;UV><9Ix=^*&_btlKce6oLc0+dV`n(3PH7%N`m)!3m4=?Tb6+IMG@PQp;7g^R zAT%1ekZh5yo?Uy1wu6|TY3&gWLjv5h4GlsoTHlFY{(fZnn<+u1NcVQvwDQShE-qM< z+zoM3BS_Es`}^6R!-E3y=_qiT~TG4isRC}%kNyz_HYpatVdQm z{TIgApO{*P$vR3`lc5}v(U>3QrHMfssQg8#3D=$*^Jjj@)Zq<@OL>VZK5rtFd<>rD z=CJU*vkrqZm})aX5CXIR_OKxyg^`M(=bcP?-w+U)9PnfYg%x?ZmE!-Ug$YFkiAB~C zXwv<7V@r({t%s5)O}+@Dc;1>g@^)T}JkYpKy?3uyDW?(f9j{ev+xQL#;tZpfu0vH7 z0KxAd9=6HitEOGjuu3^t%)oh1x zyZ(4f@8>?{FN{`4ids~}zl%qzuk4HR)jsym`MxV99DT-=!juSCiGG?@jDEY}qzl*@ z@qoKZQoE4YRCQ)`vF(1Cy=&vMqw+u#xc?%hy12Y#*1Rcr9nf6OVC*XZZ^OgVE99W6 z{q6p(im5P!Z9n>ZyFM|=Qm_)HTY9kReu}*jIb01Lhz$Gd*^L49*&CBK79Lock~E<41L$)R_$Y5Y21OJd~ zIf97_3V44TEE}wDc>T^AD~I3S3d`~{ouG35_d|)+IG?mkd?Zf&DcDR6s>9Tk8pxEn7SEdK`XtFfzj4o^jnfSJQsxFcPRh z(EMF(zfEcg=OGFB4l%Ym#fIA;BxhE0E zlXw{`AMQW{5vRiO`)UQ3a{^PUMxiaQl8o+Y9f#;+r_sY>1y{db0aCa*f zZ^%v}@Z?_aRU2k;LqIV|^z12ydG=%D+~#K{*D88j;uEUXmE_^U_|o5nU#;4Hs{AbC z3_esfQ!aOzGqH~gwMy+^vczPeX5zvvubc&8T4KGh=vqJSA^BpUB|LY{uDp9vw*O*+ zY74qs_P`&EW61S)_r%fZ=Y&*6Ka;QI$2Pf$$X;x01V2%2)4X7+#6E ziqVTGp34tGSxDiVAzi&sAL{1We0wu_N!v4$+n{WKXm1yO8S^`Rx$I2YP}Xm_)qjcb#^)y4l3t(a6UcGO`DDqgmDj2 zVU~@HeFgIOKc;_wYZf2Ry6HUK-hzfr5?0INRU5Ev-Z zy6<)&=&t$39>k*k0<01_J3z`}>_=oS>(yZmaeI(wD%?*H{p;xZuLwW(jVw; z-iV5+BaQLnz);#cx#C&iechp3K!%YH#N@R7_763D%3smAlMY8YsEKxb5mqqW95`n) zqjL=R(p}0>fyj{YtB(_>C_5($2>QgFxJU1p3im>Ui9^HcPgd7s9YcLN18jD!>S01R zqPwv+OB`upA7BOJ9&hq^rFm{n-T&DZaki!+Muq96JKvA4PKDQp0Nyc>8D8UpQ$EUdq(Qf4+P;0k$2Xr!BNGd8sIRYrQtCJ`ufn?8 z6b^w}>Zd<@zew%UpWN5pM6tJgJFc$8_6DYb?l-kUcftIP4Er-vO+Qm+@qBc&G}hM} z!vsZt&7KVg`#fgY>Ndk`7W;STpIUkd*gXn$Gd;grLP^b;;LPFjy^RB~OBFxk#xhoP zQ}~l3U~9laYU~@l#bFP!x(rPLNImfy-a>xbv_MxX*}P5dcN%t$JPjppJf)18)rE@e z0&%n2?86=3irq6zUxo@{P_Q+#2#$80barlOj`jBWQCrfBM*%?USa{phnWTnY*@f|j zl@=L?cdAV_)Jaz?E%Q9P(^;~Sr?sZ`morl}7!zO6MHP;guqSCz7k{jz^|(IY*>bWn zc_{XFVH;e9ADYTf^QIL@Nvs~)CxN>sX9Ek5eAP1d6KYcYcEm#_+G z@<>_jghA)=aU+aN2Arne^6(?i(nnL+3F=+Q#OM0qTMif_mx*X0MbDWF4fw&>;O%<( zh}*E_C!yV5CdeDjUc$x*I^%NXkFvAklf~)`vgPj&>=bLXAc z4IG$J?;41ukm!i8n-KY$i%It^>;WkmU6IpMqR%CLrifg4!&Wrn$OXW$o9FxL*Gkuw z4LV*Ailqdv)wC$fi`T2qS5{Y$%2mL!<7q>?m}fwS01aBN(zAH`NvOh`*gILimhGE$ z+tzDvyR0|3+HSpTPS^AJ#Nc*U!H$gcnILBR1Pj3AJv04~sY8NO@N#EscUwUz3j##O z@(G5m2(CQ1Eq%I8saTtq_GdKHEhMOET7-lK>_!6J*4ybW4TvJ#W6lNnyT5X+mT zC7l)Sel8`14PXP_ZKGI9r`>6iDd&g@(I(5dkq;&I#ufIl0GLC7DuwvhkcksxxZ>f3&SHK|z@8bRxwOd6>edY;q5*SUaL ziBBiEUmg(pj=%F#dPc4_x-Ey%vZXAnYua>7$xPY`e7QHdsaLLBN*A#BtFc~DCRgA^ z=aR%+=XG3`h-F2xnRwifxd0e5-Cv{?36*u+e+3fePn0{iUlC(M#Kr59vAR2We}(rJ zPl53D>jZhB-SG~RLiCGFtd_%#+L>Iqc0JRI3k}HFO$HgvWDQhyTgA<{Y1^7ZBmDq9 zK*GO^vB;FOqZf-O;!K{LqtEW*vO`UTpwz7^KVlOotze{HtAZ z+@(Q!)*`mxonD&Yg1im#NCX_R-2{R?WG9&(DzkWP5JX`Bb z`(WI(lWy4sg`XLGa7^DEN&EL5xaolkNFpDe!|{S*a5yD5$XH780h~{NA~Z+7k3SHH zDnz>3S5G4fgd=GUR$~wBTXLy?t`{ehTyz8i80I+w&ilmj6soht`SI5>2+gnY@AZj% zldRv=DN;2Pl9p-4Din$#Xs-xwI~5v+&p!ecs08i-jz`)-YwSIX4mAE=_j|V_I)&xa zrP;dQws%pJVn$19PxHeAf!_5)djugOo4OFLny$EUrbq7fi;~Z3KHAFL4ZUhUI;w#6 zxN$bfwLvgi%;@zY#OrbBkxD~Iq+yEvC3ETVGSRPobmUq|f#F*!ekOe@<{wPc4&JA_iXN1?r0+@*42N?}NRbtk$H97P^biX~t06f{Uue;k<@7@jPW}4m%4G1%IAdnj&EgnA@d~-A6kv7^v%!@&Y_B#FA zfae>w*JhM|qzAk|@k?}TQTfU~IjewF>}FvFzwTc8X35uSQJc%9i>=xzuHW!vk2^eN zm)lTI=;gpq-2YNx%z=Rlh0fC2gziMM?N3c?q2Qt>6s`H{i)fMrw6EUI9Yuu=nXB1M zb*8gf!XCA1==f^%Ka-stI6y3KKNHFmh7m#o%4Q?}n!ZZNXvwt6v&? zu0PBDEKK6Lk)2AKFX&p;3RbT+oFQ!BwHoCwToLr64B1y-#E%tZW-^sp`mVmKLD;kk zRqmMbWmSF4HMeiWHPV#J`mQ#%e6Lgh#+?qRZaf&r zLpf621F(`J>wA&=Wk(p>Rd4$>^lDn6KZXjj5zbuqrfQ{Hq)d_q1KLNnIS}7@4{83X z`D%k*M4?-3JQ&L+g%Ft9{JZ(HfbT+|YYS|l%-M4laGVW&=o_-GteD@i@zQO&D+$h^ zgg-R@6xD5dN+UcxWxMFg5~fOhD)ijDj30GXNL@Jw+w*9BOBy$KH*iD(EPDZ5OqoD_ zq@NhY$-O8?{hv|Le^3OXguULL+2{EvzBVHz)|2-&J^BlwXzcg=wB=sBxc7fAilu9x z-A!SheSY`7C^+iP-uDUul;NVKP*_e!R8ZXqyailhGlt=n`~D?l$Nv^ICOTNV}>{kC2V5E1#?@`&sM8tR^=#A=RvK_>qt-u z^noKDnd#iPWH6suPheZbtn^JH>G>ISibpF$=y+=^ndlRxQ+mH0oz)r>5S2S z%VBb1v%u&-eVt4OcB#+G6A44Y?JjjWwk;c$9wa72q0_XAa_XbA$E#A=jM_EW1>za8 z9@iS(Jto48V)Ec;K{Qm9?0s4~-j}WPUw_wi3Qim+SNNcTpw@J z-kq%*qpAn$?sf}ENJOUsUM z3+p7~eB!@D_uNp_`U2VJMJW^dhX?nr>T#K4pxQ>rxgoP??aYMdQBW&Y;zyWy32-M_ zpziH@LvSG~zv!s^#|!hp6)qXtn7f%u-^(lpOWar9=@WV8*4DcU0pnl} zIpd#!v!4U2(@<%msy+N=E`!S!9E=C!=^PJG);~JdAEi0=!?py-E;xf}Igc5Vmn0t=+*6qoT9Zj%=RlrZ0_6>k%mPJO!~lH`IRlzU&Zx zu+r)^D_@ zKU(-&?2czjR7&TX#jPi?CrQq!jVFtccwWQ>tXwf!8W&)FUp~ZD;zF$pre-dUm9NG` ztu$!OEN9xW@O9Vfar!M(WVk)g)~?{~!cfvK+ns=$I%@jSl}~O<6lLIclJ?@>=eoyt-Ntq@3Of~gcH%?VcDfM9K^&2um;KI28WmhS21oSa>~0s>?m7P$ zJj82aX>u7FXBcT*jofXh^Qpuy#;mQa>m}o`{DdDVp8Ik2B%MXA=TXhdGq@-J74!#rbJTuSC zJoEW{*=z5$*53Q<_5ZEytix($lHaei?2VV^*$}C9&cnBk)!xVw?D@D4Oq)$&DXE?_& zr?k%lk0@ABIUVRi>>9~0Ts{W^My+deamcK$Kh^${EdkmBiW2oe7GmV)c z*UY?-Pf@zJy49+MWGqo}&FOof*^ib7C4`GYc%X?vYp3csSj%%A6W(1}17*&Pp&rgI zxL!c?-#q#iZ6qIdaV3Tz1Ym}($Kly^c=C9fn63ncxxA%e-Fdzwq0_}e=&~cUBMM;| z`_Masi_zEp&=H63RB`alBT+AJeW&Is4zJyQHTIX^4Im88%1_Xr!mQLxkCN3k~BnOPcJf^4Wv9{^lVRm+9cPeBwvh)!R8(Hy- zalaUBoMI?_YPvP4bUX#aIjVbueKd|hCM=nj)HZ4ylTUgn?8w=7zm5QvHI$M5uI$_j zV^@}pnh?ly6M(FS6~G4xqhbPDE;A3bYRgKgKHzy$dqjTC-m*_urSAd}^&?ABfB_{}wiC{@&I8eGsdctd`+x#*LXlSh=*v*n|SnYL6VKQ^>sdecq^ zN-6+O*+gN!E0ZKIy^+7hbrx~wzaSsSUQiIM{qToy%V!wcL;P$LYAwcP{f*LV>yaiz zoM$nU(o@MM;f`Sc4utK3W1G18?&;fa0Y6i2IyHQ{h&`G{GpE^r$GG5;Dkmqkm7BUT zwm3ZZ58Sf=)PSymQUcM01JXR?w{!#D4|v#!Q{K#~^fIRHd-Ush*Ee-jOWUXkmFcCi z3yyna|i3Tws|KvmX@2!MK!fWZRn68XvhmdC5M@v#V465+D*|uCX24Y(y@8 zT^kbH5d`fUdbPH{V-N37#C!JHD%Z4LmCT>)m6m{rM+bZW4TFgwN68CkL!N{{Wegz6 z%Rm#?aW+3^xYDbz7_JmZ6)Z4mt(?B^G-feeE0B_9Ol9KA(+DWSB=oM8xK6x0jvk`A zd){J2ew}?shJagQ2-{beU`M!Y{H%u4K&$(g@!|MaaQ)#usDJ ztDlcwi_O|CHLl|e|G>!6c=*zE9)%zVwKg%tLh9N3RpiH8)41_@&I;4V{Bdto6nHyO zw?CF7!Y}87EXTV;Hc+^q?Vc!waDel>JT8epQshfrUF70F4uhL~i^Jd%m;`a9@eTBm zBQ2;ZF#SFHVtW+pUm_u+Si0A@k;!O95mH#p^TwOg<$^~z8f-MZa}f%o$OY`^#bJ}~ znj;(&l;2R%^!y-Y$jxpS4 zk)PMuI{vOZ6`Xb0Z^lS-Z`J&9n&h_~rO#!juX`r@h8gqqpf#71Z>4Uh5pWMIYf!rM zF9DSz%|EKP2{D1AA?feza49|lITC%r5c8o zrmQ1OsCWqVu*F{7a76sE4N{nvX~q4uLS1R=+5dU)yTzwHp4`>`e0Ul{ZlqhBCmqn? zdoOT;=vCZOk0XzFYdfh64qwj5-a@Z$37+L1(WhE90iaas=7J<=a_JK@Z zYn42G6-!!-CdVQZKw9v-h@O|@MWVd~_38-S>cJt3QVYyIWvM4q* zPoJ=U;DA43F-{r@+vrh1Uq4t7?O#5Sz?#V^)B5{D=9=!ADRMpN%v3QQoGg`l+bT53m#Y7&X-$% zcnbX8903Z-SmpP=vM{*W50@x9O>$ERqHqt-@!c5lOa3ZyY%*b|D$k;(>b`xWSklKv z<*`|rde`3l^ISxuLWQ>0iqG#40XB!o1d+@MBr$n?NxCn4NOkzKpSNV}vtt;AJk)bB zxHY!f=hrdS!sSSJorv)27fwfGe!I5Nu#YM`P;k9x9haLBQ9U4Q#aFEC^e_oAP*w+y zUcq;V8M)f*T)};r38V_qO*1wJnAh}T%=f}Okkv4Am>A|DW4^#5RRhKhZyijiC9YuP zx15#i0QG4+byy@Z;nz`%HtJKTJ3%#pwow5rndS+_ksP6QwK?KDQktnXlX$?Z#9awa zs(Wa;#=_*K$_;DW2R?_3TuOAG^u&S!m)f?Yv`7;n^~mY75v{p2wCb56mq6kmMA;Aa z0`P-NCo430##ki`N9z*$N+JXdd^^l{+Zl7TymGNV5XZ;4O611CeYCjJ?4+xGdBY|v ztHzS{<=`2r&2IA!gH7LBi$Ud9r_#G2<0M2WIbO7GFHr46;L`U;WKh*z%t(j>EOF&Ze#+VX;a%ge;04qe`R|5jq$tuM7wU|_tM&Hj0Q z!S(msrH21RcYv7A#oVDd_?~UJB;76M74=tP%R~or0J+#l6rW5@=HJ%>hi9aJzY~Pq zIctK6q*;ZAgG14pTc9h6W@{9-%o&Kk&$+PUn#f(hbA$`HK9YIa^*=8Ik$vx7$9ay~ zDSYGY-4F3QPsMcUe7|6a7V{ys^zys@6h@j@er{xYG{K8F_?_$iT|%!X3xA)RbjI$G z+qc{I1i7u2?C#&L47;N-^*u&h6LwpN5<_u5r8?D{>6jhtT}glR z+L#yky7n}g`;*kSYwh{b9OQ@7XkB&BDt;$tO5Xsy($M0eLYH(shVI75Il=98VJgHc zcy_9eZ>~eBHO0Ai&2dKodqbnk(GQ9ryP|OUDNmE`bZmPPzxv(Nx}t{5Jz)Zdrn9AD zOusOHA?x;xi+t5;qd#_0Do#D6;!^>Td zBihB;6p$BM=ZPcH{;;8T(uy{tQ(T!2D$yLoZF5qTp&gC6!_X8+YBPly=Z<(wcIvMT zA$S(jAGlP5EX}@f0HQ8tu=!uLj3P2}Uz&b7yx#ht-}b zi9y}Ie!X2;ns-5B8N#@h4vCJplczLQua@tHf8-L5O~gEH8f~m2&h64?hRx2P(5QSl z9pJ%q0%SZvB{AJ|oXd#z-s$2CtIT&RB5X@Yf0ghUw;$O#K$alL{g9G|%Pvo`jPfW` zU5Q5Qz?#okEotbfFKOo=cTLq7_N(iE&|9%@qrL(x3OS-zlEB5x8@O@q`A_icHi^!j zn>ZYVaIJrZ!|c{blg9P?HYK9R&Dl_;)j4&L!_8@!{b*uHZz#GvYHR(*^<3{0(|r>9 zor`Y!0dd!e@7pxTsJqL+@>qNy*g>m>_wycn%6_EMYK>tQKT_ps7w=|?D8UT_0xBRK z!6@=t5Q43=(JLI2=!Unjun|^A^hPsU_8;CLac-okC#LB~ zyPUp!XRh~k*IdYgVwPs-GtO(3`jxeWtFR6FpSRU}uetHXJ)hckM7!BfIG1hq0_Kbp zkK|s)bfw$at5o#Wpr#MMx%-MUrq@^&!JI()tXKz-*SZiFCzMJgQ(m%I z59u;n`~K(wJ#hxp6>te&2$;dUb^G$trFhLF>0C`9XX~nuuVR!kJ?mE z7TsLUV(|;7_Qy`1a{SQ-EtSYVoIzUR?zlExP}M_*2~fIjuXd5ro|&7?H;&?g8A5s^ zHP|n8@;$;1?z~*CDyCY7)4ml1+VAcFNk)5eQ+(fzCoM=shWVkX5vK=jvB0&V6H1tjsRUx zXz_}nvv4!&Va-^INr*&J6meugJdezJN2+X}g*@vSABZfS;y&z>KwVC}IM_|1&-B74(t%i8q=J^c8YCO=U|$moOErqJ4A9nRDh?Nq zDsT{Nf>L);9+xS;)xy#2W7jG#aEc4Z7)+nQGEavC{@npq-kg-MtM>+9_l?`D`V>-g zdbD%`yk+G{n-`ec)bN*)3v){_ddg*=(TB@i&@GEM6)sMPZm8Qcqugsd>UdX$1i3-- zP6w1x6-L8xIm820z`@mhorQlHkix!TLwe<;?ABMhl)d$kX@&)lCw$__Jm{9=Rm%*m z0AU;TE{-Z~!NiFB*w9KLWP>pDxA-*XoWX#T4ci1TjK6w!P2vEo(ao>&QcY^v|-?IC= znXc0bgcdJ-TpoiCD+e6Rv2m~*q7F>Ok!=WXc8Cu3uQxJGx`{MxD{na;PW%Y)PL)Jt5qb26gKU!ig*031q#m|)~DZ4pO&wV+deeG8B9l>_@ zgbiWh7*nBS;>1siv(4w_Mx|d=GbYM4i;R7564^%}6^%AMYZvg_7@b{5ly;UNxV|#k zqvA?0Sb@nVbC(@8kPnE!FcOhS+Ogc%em?TC**`UMN?H+bja#Sd*QFMg&MX)!Qk+KY zm}g=C!XqCz;r)Y84rMHwUz^oB@>TxYAA@mLmT%LfFlR0QIoGrly{qd+~ z_e~K_kqAR;8ZNqYq0RfmN}%2Z_l);#CApNOG$`0=H88Thoj>ymM)2C+4TMve+AF!& zL2~~pR4Un>-uuXIVqc?dk0^P&noakE_VjjHgtkoryW~Eo3>2yAMSwSdEiAoU!dapg zqs9CLR>VCbX%fz>`_9`w(wrH#m9WvzLOAt3;wIW8Q2PtIn;A$umRV1guht3s2g%3m zDhZ-3STdlf%lPbvH5<}h}emyrCaY(d6C$ytWI z>oxkGeQh8IQB-_{BtP!S%Ls@)rklIF^KKIA8(XXcG)_(SoEA(~8y(9y4)?=oPI=2< zc<}wQn?+ma5%pvr-cT{MAw{^Zxo=$E4u0$DK$`i)+`y9PxWXP&V1b!ja_+UbBAu@D z^m&sfHCz40Usqe&_0Ow4oZD%G0F7@A4_4FH3SftSG(R!YkJK=z99X$ys(jj~fU zNs%p(%&%RoiD;q(v8XOy%4fl$w5%L#6CT9+0Wc#ZY)dl*FqhYMR14|-MlM|TYB_$#Tlusj0_me&= zm7Jq*cExW0*VY^)BeHXx?rvw$DQ?MgBZ6Eaxdn`p$E`HQG|Ymnr5h|ewVQ*%N#Pjo z>W={yyh8L^^V>N@QJbDdp5@ljTG_GUK)b%lm;0E*NalJ>6&elHR9)V==l+0c+UBTY zj(Fz0!GUM^=z|}z@I$qM;O7t#%Y!2K9_U>dgvHcbZrZ>Jd+vWeCEnGLmO7@K&Fd~+ z1eIqn^B!Hkk6MrXs-?&IkCv$u#0g3}JzQyr!L{Y!`?o-gKmJhz_0X30En2k>>P@H! z;{4SqL9hW2Ee>yy-aNSj@d^Y;X%h05^{AWwDSsF^1?e=O&HFhvX7Bs*hjOa#xnLf& z&U#3MAN|dwTE)&G_TFEjBsl3}5E))n-n~;pWcJf%S*J#_3%9gH6gzc!z8a<(bl>XK z6s)uj>OL zhF>c-v|Wkq6M^C!)b`1lspE;NlZX?GlyE)JSYqvgCNG%o*WKVR@g|F)_XVXxzWeFS z?5C_cweHl|MVVXm3wPwkF>PK7L&R4JoH|(#U#yqvO_Y9*d5I}FwIuXeTw|;_4dpclPjE2xC6Akuh-vE$X*P4*h~8VaT{JHevL@)~oD2=9VR7 zc#OR2v4uc?;SR#+mUn9m7psQ)Oq=|8MI88w%XEy6r9FZlKa5@?55&YkxT3sesWe~& z?hXImc@i^nI$8L|e~SaDGfn`l&!#`daCz!UYxzjQgnIH(QGr&BT9qO-YyXp_C-dq1 zbn`7h$Iju@C}}agz(ddUFkM&e(G;JITB@n)d2P0t&~uH%&M)hd4@lci>J<7P|YT$|h)PY5qNy`fS$q~`0;%bxx<9zvy9(>jg z(6EmvGco&ww^`eZWI97moFEHjun50?Z@H5Kn`8O(966%XKom#WU#i2h9|RoxA@&WF z9hNx{nL<09ef=dCK&Z@uQq-$oet9QLmB`#ly}%+J7q$#jLdm*7$x?oA39-Zs^7=t7 zYVdXiBS`xJU-A%E6ATQ6^jRFE;%;hySVIZ1@|r38XNt?p$~*+)wuInV#PvAKnXOHR zjZP$fG_#itU=#U2JT;0jjNItbA7hB{?LJ_MXsTJoeKri^*X?Qu zAa$}i2fH749P#kA6O+w4gQkEM5lYe5{oca&Mj?4%VnQ1SRdAt zN~9aah9>^w@o62+E%xVq<*C|CBjp{4_oC={=lhudo5=0pI}q>Q5(kG5Ps3Lyr@Eta zhrs>t4lS1UBU6;{cKlooR6+ufHzA8f+2Iz~Z}&{A?$qQWo-Vd6N&4W~kpt-h?W`Af z;eJ3%)P7)ZmNTi-j*!$l<5r=l(294}UkQs|DJx^6OP+|gMh#7OTDH+<|!)Mpc`p*M0WNoJS zon>quA2tx{U>%gCejpc*BERq18s2F9?}rq!z+xW*V_!|b?I#dCNQSRSTv)`FtAz}q%Z_$smRD3Vpv7n zc1_}l048iWUq~w8R}2w+;^GxqfSCd%vdWAZG(F!xNt`X&g(ud7tr7-q0otyfn;DSu zrory}TOZhy`g1|P;xI5J2GY>U68Gz`N_URe2(Gc(sGP-e6Zk6J6n3D;nGE%O&f-nRnafcTIxeFK{# zND?hYyt7dc9lVued&9c`CNR|l`BQt_lLrR?7wxbD(?GVMS%bM;EU8mg?wb*B9&$s; z91C8OAO+#3zU={|)AqbA)0gyvFeM7o2h`0}NbXurCQ>+?$kSheqprx8=qIktL* zaukHRC#x5zU`qHUAY}F#aoFoPrO~;=g!c&V2!Kf6lbT z{kTe#`Z}!X4zG`p{yF|!mvYUB_Mv;31fP>3m3=W=^`oc>_}sRw0@Kp501gingpzL!LJ?#!M}Uzw zV_-4IbD**Gf?Uwc5|Hd=b^HNfHFYffQ_!~d1|@+s%?)0ccY%xi<5&J2R*=yx!!U&a zgji`}QUWSZW5m2u&4527)>BI*tu6pJqaXubJOt>hTcMjlHNG~d#3Oj2U^)ox`sYaE zztb@2ixj^ec#_~`Cq$}hhIuZ8q`JMuhc(U?SK2-rw-F{CvuMr^4My@6cwB{wiZsHF z8c3hqT0Mmj7 z_3I5;*@H()5^xL!Hs>pbl@BGENi^#h$|90VG4PjpY^n4~`_{nn(S6kepd=5-a2U9x zm3)SW6lpl##)>+(oLG`PUy~UYo!qka$m<2VY)nL2xZ{-NOGNS(&ofY^&GAdCvB5V z_-EUE(anFOXucw+Pp=KPiXx})CtVTuXOU|{c`gI(HAE}4FLWGZ{)w0VFzHFhA*O|F zn?2jV9=FfxS&-*acVn@!ez^Zesqo*34(M)wirx8wYaFv?d*|Nu3$b` z^hI~nxj0sZX)!1MgGye8qfKimXm9dRR%aloLWEBR=8GCkECU&~eD1uz%Ay!HOCq=a zS`gYSp+hG!Z-Ei5j_ICf9OGaZZqbTj!x({j#gITY;g1!8#?lferEwg9|0D8cb&1r%0(hT!VuSnyd!tfBu5E)ONQW%X^%6lyg z$pQlks(3Rj*1@ER|)84z)L&^%_Z`Wb@EV)#xhoq(P)`-?+daEpI{aPo-@{z zf=$}Zok#hlSBok$&~@ZbYp05`*N5`e23m*OX|c7{4jK#gn$fpjG!4!5yfEt>8CCq! z>QXeHs#dQJA^tffWrAO!0IC4k4!HHz}pNAWB0wkD>Xl{=x+& zhpnuuD}C;dliiHCPxUZlMzwR|tQs#qP(0Q-4lJ3Km+%g8#H>Q7dUt z_bi9xVni*XgeEC?nK5f9i9rH}(`AS%f(hwR<2LjrtPfB(OffSMyQE-QUzc-S0 z!H9p_#B`(ofpNRXYs}zuSshgE7HhOvivVaOf#Y9L#$uh1C6Q+=@-$J*6?6Gf1qk7M zJ)uR!Sh)<$)?wz#YY3OG{CT?JVnOU2>J_qmSRBM=chEPls~mdWo+C~<(iok_GT^1W zxW-9wSo43^Zq*luNMKd_j+(RkC^*%$jp7go*4X^ft!l>*GLIJnV8#f@$XInh4K$W+ zzZJ@Qx_t(*o!7^2M~1@&N{`EFLD22`{@CxwwSxFRGhYrK@{hK@t2Ao62<~mVdk`^H zY0{~nr=;y%n)FJFjc8Oxv7y4t6nv%lt?{sqnmln&@7sb%BiuBYbLwoDZNc9IJHB}* zVC9=dy+*r-2`WkKBRk&H=b12SxX8H$M5s<^X;@+XmdR99omA`6(<_4^FtkbOK_0Wkh^M(#I7Y=B;3T zmcsA^57X1Osr3@;SSejRDsG=W>EZG-(jLPN%6z#@Bl=&Rlrmijs(o*Zf@rjHfAJ2Z zd@tHQeJ!q$Ij+l+Z!PW_m>+0q-qzSiWQ_7=UOJpkf|y5`Ou$O~Y+BR=7~sl~v}?+Q z=PZ49ZbO;7yIXdY`52qOZz@$$2)zu@hyz{&W}`1PI5{K!$`kdot@~KxnQ;3yh24}S z#}4&p3;%cU?;MXYl-<0s>XZ~2$Fw+AlR7X0?4MIITacJ-_zV@iGP0b`(3#(lWD=L&|HNs2l%D5d$L`ZBoKG8>C3IaM=s# zs?-rFsrtYJRURy^{i}Z*S1GsIviJRAJ4vs;-ZN6)YZ0TGDh)j}xee4=uj?gpkfxGZ8f#0>gq{)JI1i(EAmkn z2AMwd7k(6g!%6?*F~n&WN%fFCq4f~MTnFayG+0wxnXkq|X!!XMf5>-k6<&qhyfH9J z8>zjq2XPa#eD{}j1Z({4byNHlTOH|=w6=tfixoYdX$e$V2ye*p*UT9R6BwEH?ylKy z<%5hF{z^aLln6MJJm2l|2*mn!zt@%~da&b_(?jIFML+6+oV#B+IK60L>e?rYmSvU< zRrKM9jAA%66lpi+Zz#fc38}EZ8hUdQqy)rgk3AiguL?3CdPdr>&#B^*q@W_@{SGN3 zEW`)1JJQv|TBz&wTPu8hN$($CY&`zl;gMT-WP{zmEc;M|I+9+wko=FPx-f_@nBQOy zwehcSPR%TYM|IOwtzR;6>g%_6n9eqy=Aap+0@^kGU8cuO}RtQc-z8!ntJ7 ze5a1>x%|y3q~S+W@6tsu=jv(%LAr42KaJ7V>C_Vefhbu~M)El@-pbSL=McxBd62$+S;*lPT7rhblawAJk#=glbu+jh1+P^x@vT7p3oPzon z@F15lsI+kn+A$H$hU_%MGL0wEHw9k@yywiGh;|#$7pC}x0b5^Tr?~fxm;#ly6$gYE z<|xZD(n2vaItH31m4Lzawi3x1QmC;h>S30BUEIbw^zN_@dPAcJOu30D;-lk!xH#wX zZHnbhJ;pC13Q3OX0kfkF(zn)ZQH+H}t>)L+G3q^~(M37b-rz?`-BFKY1UrBr`yFe? z0X}o6F2bAGJ@YgzjUSj_69g`(TJ)mpyJ6aqFqo#3+A7v7)(fJA$OeuqM*c(p4L~VWP;JrB~GhhxuJ#`k1LF}?h#2(EZXD> zia2bI*`$}oO?eafQTse>69-6t*uJGCx{H`YVnaIg9ic43O(d+Ndp6nGm=t>!R4lN7 zQq_N$j#3f)rIRNLaoxHXMx^8SoyT&%5Z|u&4h8HHlh61mcYyQL&uS8Zu!jD??q^*V zZM4D`h}|e;f)BbW%6Ey`t@^EqkJo)EGoorLC@9 zM&S~)E6}S%^nN>znv9lU8|eP~>NK>U`wiKNPY2D%o-bZ;SF=&w9eL|}#`p;1h;@B6 z*UJ?9nD3#Aq$f3RM&9LrRAn&%Ds8q&hd+H&Pxj%H=no+)3D-h`2Kh`xj8T@sWqCx_ zARewrEkEK068%Tj?-4)JVZJT2h=Oask+b^I&B7gdD8L7hPwd~!BZy)@Hs`WG836oB z9M?O*!3uXvg+_O15L_90zjzF)w#sn{q`$`+$k9FhNqdw-^=$4yZ!E<{!_*-G%|;ux zYD*`!U~--)YRK1^^~|WnA@$rEfi`7@7sCX@Ez*`0xo;=|!V0^6Z`=1pm458tbT5a! znZ^o1SltoFGoC=#=`VF%XHZjV6s3c-Kq!JVQRy{wq=Z!gMT&wT5f%uc>`Esq(j=4s zDv`Pps$mgPdXo+&fDj-wR|JtRB`P(P049VD>$aKQeShD~n>**6@0@S$+<6z8%G#6v zOb56Z87CO(tv;I- z2rt7}Dq2|UxiZwPXuGpV`;@99dC#lXLnM}$iKoaZy;G9G!;S?|WiW`66646qipC6q zz-Z==6hQRcmmgIvXjh)`2^jhW?0M}34oI(KC`4K_VjTlmT~JM>#OIo>b8Q>jvc0&A zhqem{Rfpjp)ayK{mG~8FX%yI+{a#ShKv{rqa4Lj#y{>otS}CRR6YEP(d21oFu&Z;; z_9gpUI($>53|K8r#|uwT={8|Euk->ND(rK30*Y~<+;!$J;=253K zh>`N&)-Xy40z2AvxxWb|v z-54|Hz}hyxfe74365K92ZcN?3!pH-I_}d^;o;XYx0jhPweuAw@1;kG2t69RYZ`mlu zXU#!;ZVg`80&RS{&!337*UvyrIy}#7V}jK)zXLbvA@dt0u=z>a_;_p`zmt0$xLdP6TX=Fru|UsWWJx84=eByc z!EVMLSc@!MV^h6Ui`_|HHfrD1(#n16vY)wk4Q|Q#L(^tJ@}9ZWyh13;w&$tI58x=P zLK~}Ht&>ahvo|VXvqbgN%SfcctdCU}eZSRs^LaJWsvX;l6c=G$Q6)Ecx1-O3!ld*e zVU)Qs_dzx}Btfh-|BG3ipo7~8s*Ssf7Gt{daw%A2~) zTA#7yU9wLxB5mw8*!!Xer%)Ezb1b2okTB(fqKRkx#O9IjT=wg;d5WSFYF43phMk<8 zEqxzmW`42sW3bwF%E*^$EnLLh-~{Qn+^cr@Oj6~7c(UIY<^)rIX8cmoOTL8{Wq9ul zg8s8mD^OjR24mHjT}{gHsk^H_BPeHpAdyfVoCa^>jbAMOTTf@GM#2l$AgAw&i`n<#i-{;A<3UbTq5s_p8 z6FZ|p(>`#Cpud-qv7rxyy0ttRUn&E|{6e7Grv@bN%&kl2}A2ue&w)CU@1vZED>3cD70!Nt$;kmWXg{@R*w zg|$f7E_=0+)Vrl4yz*VQM@G6mP)!-(bAE*V#RayyF$YaM2dIdG(R2G$`j6!rwpqvp z`Wi07m7ln^#K7Gol;joMQ8$hDfPL-eDarmOlZ~kGT zay9gbW>a?B>QlWR@x&@r7hGKFgKK%-=v7;jLcZ8P*kco9`1aDaiXJt0_Gsak1qasW zVK{=+lF7`ci5qP^t2FZ$HdmU)%5R)hDbZvwx6?42P%I1O*`abF6Wo`B^sk#3Ui|{K zv}XSFqc9?wY`OALV5^KQPT=GktwmOm37pDuLh6a(A`<}%X-j^}nSR}=Ug0V zV?PxDuEleERa7j4cC8V;B*CH+?F}_BX9KgYgf>!uW$3VX=Ea^i&99&cOGNCo(1 zrYP&mu9poSoXlssbSFo*BACB&?JDRGbm%vWul5hT zzr}XeT?#E_+@YLtJqnX>JpkVUfbA!x9qLFzj5X#K4!yad6Ga}6Uvm*=b9i?cNmWr) zF11+>dU0Mce#DGwpGfhDAZyH?o4i#aLhJ0+w^HG6^Bi}WJ;2}%@rt;iP@}Y(#KY9! zI+C6EaD%arN^ro&COp^=T&Jk_mx^lrFGk3p7$+;PP*+ETTHH*$8LTnsH4U+?KOJ9# zoMkn)%9yW9(q;vsN6-(ct z{3Xn~@@7TCt;a7Ddp8GlgaVjL{QiUWOMI3(bs};PkJG<^ep9n;rE$z-56wH>ib{7m zlWDPw6gA{N4LJy~0*Az9l!nqyTbDwpEVXIx=&pMxYCO3)9OrO-=z_w$soTH8XKtOZ zwOy%uN=>n;eZkTyzy|abG{0mmC@S^pTme!B740YjSF(K3K+Uj3iJTZ!Z**_mpRl^U zo~dz~a$>{985H-KxiEX)6Gr+xB1=}+)-e&D-5$xm3`N%E-He!@Y>2mQJU!EcRCy_? zSMpG0^hVvZNsO;YeQKm7B4Jo3Z~KqR0vT6BZq^!htUa`QyVhMx^inf;fC9JzuXO^= zOq5Z(EoCZ4=LF80F=-D}yq9@0U9{}4z+8*jtTgTBE(YB9NMGqM4yH={^jV{; z1IUuwhfAV$r`5}VvT5^b(L^viBU@`1(D{%%d&)f$1@S????JaxgV)JpaY;QZ%249UU z=07tFLwW6wulz#LZqh1=Y?e!}N{0C9)X83Q3jBFHf8RICzFRD>TkOFZ3=8RrgK)!$ z*IbdJ@!im(oNk-bVi1*cQj>@9mdts$mwVmAV8JNWdO#koB=q75^+6cxUzC%tZ8?&r z`e0JVk$vQnZ^BaqmZ}`FWt2rG2aQjK#1Y&Y2P&EZ7EStP-$@6fG;oxHN2N+$>i43} zpNP5W2xEBt+yU>(-z@5%TLK?`KHt8bq!Q0>(YGaW&-#_0ll&d#G1CEE;rqk&bM)8f zAw)HyMjJo#(h4!D1db`M?|DeThaByGUkJeXz4j7XQl6SL=uDbpdcRib5f(cs^t^a7 zY1ebA!y@M)3Xnpb9$!h}`*jp3SvB`5rr1q z^sLsn%K~0Vn+Yp8X`I$@00A>??WYuF{L?@sS+W)% zl}3G0ykBcy!$D7Ri6q=s*|z6Nc(n*ZArea_-yE^r4q?0Z+V}J^O0^W|f!y&yVi}uyT|D3I1OySO| z_&9kREfp?i+`aNb0)~@^oKhMS-14JrcIAD+C)n1u$gI4?$JUpwb=pUP>NU$>{gNO8 zDe~=$?se?$$-ooz=g2%78L(K4dn*v_KLuCbh(S?x9| zxza=LnmHCm;ItNr+izqhZ)dJJ1Pz>hU)w079UrMp!KVFHqbd)qE->eVsM)fRIFGhv z)05~Sa3ZyQhX8~#{_gQL)MfIp;@8as_9Dc^hKIqzvf8_(6Q5&>7=$JJkfgw}R5QS_ z+LN&w|l1Pm(-|0SAXz!B?&k6s1pmwMQFNnrmjLs@GT~r6`cMKj@um z{Kojq61Iano9bMJ!F~u}hrUwPh?>|BmkUQYTF80|@n>pB+J#K8)NS^?3Nl3gYd)!__&wO!Z`ni6rp z3>GOas&TjV2yTh6eNT^rC`gmV{y0(0H_l)J1?an~orE#bsl9dCxPemDd@ytHv5rS` zhaOO!MLVpK_fmk@jJbZHz=(S7zPTl^mWC&Ulr#ybN5fA{_b7Mm@SatV^<@ndx706nMO zWDOo)aF2zN1OIX*9EQNdniaLBHhhFW_4MUj7@D8nz}DNavQsacN>A;mNgYf;b%5;L zgdf?vd*r+hHxLH0k1~6#G2F=8;&6);a|ebnH&hfsQH~i7^@uj!!4Q3>@TOCz`{y9G zk$);h@5~IpzBqeQ5LuN@HQYJ58+yJlo&Irj=bq1o1~q(gXLcto~dldKOcL#>M#L$YL1p3d!@k}E(pZIL>RF%T| zmCuEyr+8nHdC7vvEbmJDhHgWh4>6+q4iNd8MdxYXGimk1MJwqz=JLtlSY(YyYhtQ} zVwQaak~=xxSI2`p*=V)Vv=08*JX^MAsK6@N;9Uhf>H#qo-B)bLBr=-41e6+&iYdAf0n_n@gX4vr% z2k?8XF|+eEPSeQnGZ5PbcHJa&Cn{e&AEcg@6aWAK z2ml3+T2tK@X#sHH0su8E0{}|^002#4ZgpX7UsPptbaP)rLsKtMZE0g)XJvF!WoK7% zX>?^!a&L5HV{~b6Zc}t&baiuIO+#NqLtimAIV~|aG+#qub7fyOGA?j#XVh9_aAi>v zj*W?J+nU(6ITL$g+qP}nPA0aEjg85~oVh>4RP@A zhLFH}SbHgLClC-!ir+s_X%+IHARvGeX)$3ncZ16w=xl;zk0&Ooo3~!+?RQm!Q3w3C zA%}31SXc+WdV)=d!8L#Q(v5K1&Qo#!U=Ubk1Sw*2@<<`b6m_Pq^D0IqtaBL4Wv}Z6 znGJv?+gh^p0wr_=i-w?BwW;OF;7r&;}bz{gG?;8)*z z!_PW^=h?b>UEfjaAAH^jwL6nDSd5Pgy+Qv;2$&vFhR#`N^QpDhDYh!Vk2}+o?51bc zJe{BBeyyi=0M~Ir02?o+&psOb$1K2bu;k0f?KwP?iP;o3|37~=r!@HM;m0pYf##|oi;WT}+VJm$~J;H6b@cRZ~ME;v={oTTEQNWkN0^Ki}&4qf{(%#`YV69o@A zuR8{e=S{t>jbeU0e5vcWU(mnqcJjW`alQQU2d`;6zsX>^VFb*Nqc5xn%YuNHAE4mr zyzrz&97t8Xc{}^>GgZqlARx4X=Nb%&ZH(P<0mopRoEDxl(J^H`DU;zW9+n;rxN4= zD1MlH5CLum`aUjFPV&CEUA6pH&h6%onJA?Rt=Z3cCg1+(jLB^hQ6#xs@53Nulje~E z4*|2E+QZG28VlZgZTL{0atSjzBe%<#x>mm~m>#4}6iID6vv)CC$_`j&8R)}2*GAN` zZVH3JY15UhOi^NR4dOIBYk26Vxm?crSNCdBwv^BmVdj&387c{b$ssg! z+->R$2G-h^-S8;#GKdT^YSJ%qbF$m96vAqvG{ueGkK_gA!)nyWxafAUr^_^T@<7!d zA$y5xm=mfXPDFb2e>iICq61Zy&Te_ZHe20uJ0XwE-`t_!HEp}unAD>ArDy-*%a?mD zzb2puJ_a#)8;)c3)}Nx~X+5X;bzD|`(RW%m%_8)5mkmSG<#k?LDxKb_s@>SASp0xR z18Oh8FPO7QQOP$feo8tTt}AWEUUW=8TN>d@@79nC`bmuXqzR z$>{dc7(I=tQmy0 zi{$+kSr>1isLz&sG^xmVIc z09yGOSITZA>!Ct3b?2PnbGu)NX?^{3&$_N%#JA4lVb-^`L^RB&Nb>r8+4{iesphpG zIrU?*kN%^p&v-PE$;a}@t*`52Mc3`|w83sF{feol`IxKkWp^0wyex-SPYK^0E%h{Mpry%!P37>;;OkhrmR4Y@(M(iDev z_MBrg5w(CL|KN-3$8J-ezVEh&bzQILh12X69>1q~93kFyUmgMP7eAk!wFcf!SADlZ zM7rLO2jt$LkRMU_L;!9lG4M{MXYVQAXc0Rc))z0#g~t*M8C!Gncd;}%$-ErvTAZKB z=ux+D7xsmuzO_ek@`qt zk!&cE=(LTPd>qy?LZ}OoSEV=LxN`*QEaI4vJq@yA_Li(kjmInZs!gR3ZA*8nts()Kvt~=)Z_~G5Y~MsD!3;f4AyHKa{judHWh0 z1jPP$p&M^5+N1bDZdNvC+yC3V2!Y?dB>cy{Vw(4vEYZiMIo^*>YhVOlUd{&*=;ryj z4)#3x-cNpEX_4ezdF-k%mVJ`qXHCysz`PCQ~*S5_+PXo4{s zYn&6o*;2kJOwN=_-@;#HiI6Xz?6s~+!Kd#UxJOYUP>*%i8g$)*2(Mn2bXHT43L}gU z1yNW~l=Cf+BFU1Sbu=sKkPk{``71XiOplaD0=x)iS}R!CYbutMaF)lq62Zb!JFA?G zFrZherVU9kJ$q1_U~q>_>k=@T``gn6GMV#*s{OhlX7CdtfWo)jt4)en(8Sd1oiKzK ztyUeipz<~^>F1zTao5w61&FPvujt9&ds3L8u!m0?kTHA>Y-s*h9=-RO6P@%(H3{KZ z>B-o!l(rO8gPC{_D<>lS2lWyZ2-DFd^p?1r6a!;5%cW4Poo`W~1NtyIG{KqbqD>Z) zXgKjWQXCJ&NIE|F42{i)q*bU;;|W9T$JidGh;*0fI!#m$BT&QH`Dl~Md3N8Ek~n1J zEov=`F(jgtS4Xb&T*rA z;;?G62SLP%6`+pJw*&~y8Yy6cfXv9P;T3+q`-E4llge;c*y~i}l7|xubss1QxDy9l z0~nqK0p`FpkmXtou%1`*a%Jb%`+&*228;Kn4B*@2i65bb5MG|+`5iNgz018YmB7as zRUwN;UhJW9f@IWvXTzANJ{glb$h@>Ps`}e93n7OI?QDyUkx(Q%N{H3#(BMjk7*D~h ze?A7o)f9Vb9cP=AwLCZGDN9980w1r0G^s)&Szmo~JvKvvSwBZ=hlJ;M>~EO{_Nq{a z+|&Bc2)_!*-f8sM;D!%Av&Dxi6yM;1ag`=SH(;OdiItB9YShq3!D+gpaI_x1T71Pk z9MHtTSWCEX=+nX4;^Lh7MUaRa!P;z*DLI4Yum@9!RiKMa!7YW1Jt!YE44cVHJj!}f z8roGqpQv(I)9*c8BMONA<^-W=S ze=MAL?$$AKBs5i+9Ua`Xnr5FBB9_Lw7OV%UPBx#DBNlN;3%-!Tr8pj^`i#;nL74oL z@m1JLad0X+atdUsgN_wJf>ZeyRzG4hBtijMF zkx5dh8LKGe=<4Bal@DvI^(+*rfW2r>?$T&}ju>n)+7==5un^V)4-6ghP##VSBQXTE zLvCiG#n*@8V<1$pl5N{G7J5&lFOeDtMW)BbdBkk`m~rFI{RYKO>ssyCIzZN`NDf*FzGrD7qCs>l6*d>U+K8A~ z`4IUEE}G17QCP8AsI03PA_TvLuVIeC$W}=LDT8RKKk7FtS@}%Xe4V@dbbNC?9Flg6 z0`yuOST97>?U@mZ-i!=KTR2kW7*ly>Si>@P?#6KD2Kw9r#z!M{jB2_7T#qW3{m9aM z+PnXu9gx?c^st)dC0W057J_sq)_KzEP)1kMtv-= zo8?KVaXMyOb~2xUdz3+pMOIe(^J$?0DU@)EF?6K?dD{wURj6b~)qc~?J{Zf9`w$bQ zlv(=RXqX?c?0E2|!n2s(SLSC`ZD8i58k`knbk+WC1MfFsuj<@~%B0PFzX=7+KD{Ejfp zS|87=f)Fik)=LFO)@a_6Wg*_l6nri_1VA5Vg*HVxHJ$Jdf>fS)_B#aC7z&)@h%qvA z5qJyPpoLd;7x%#+liq^P#9vW6SC>Qh1yv%1;zUUo$;qP$6K2S5Bf970jPk|DnW`5j zvr$><7cz^X!QynEk&P&*@)hVb`^kYzr2~Z#T1HlYs-jqr3O_iXTiLWUr5)@RI60W)AFq?X=nr#+-dikA zO{v;i&mRP%$`+}*ITV|PyA&iB&z+tSl%Y}=%PEyZ4+4_iQO{-Ma!kT0)k3d$oY2e0 z&%^-)_YtojJPj@v6-AP5JzwTc&?tY-ImXWumeX6l%si{!%9QH^oR#22s2@b6)gkk$K zwvy}e?QnN?azSpeR}HVrs;YQ)TE&!JcJSwcXs5SF$TD1%6ln$zwnAKRvOoH7L|=qJ zN1Oc=y&HKkRWg?NC*vABW7&b`QtMSu$-|>eP$Ds&3`*bfG+7LgSDI%a;G<0Qd`^;S zFvuWhU_zwo+24(r=$c9GG5}iGnv`-zCQ<5rO6koSs~Do#URAOmN*+x~ZVPWp?(i=r zX2wi6+)^?xS`j;9nLo7zL!lJr*hgSx9p%7dXjJb=*|e9gnzj^fvTspN)lN}I z4}-G}swbxz$N3yk6|>P%7u=rVG{sWAnEfaE9fbUt*c1;<`&wk0aVl|cH*7@+4`R5I zn)N|t-%lfz+T>uFY-{P@GaMXm@(5GXV0mT>kObk*bc{{5d{lEDmdt;D_RhNPqqZX7XB!1?{ z5%7rTrWb_exjWsiFzq+s5HxG7uParr%9os@Dq~V(bU~r#VkDLZ=E+)zV&oH?qNT;K zP)k3<<$-Cf)+$1Pvpa&5;GNVALoQ2*wS;Aw_MHO;g}r3KacKxwax8Ncehx5>D^n+J zWT9ij%?xLXb8lO${y@H0{RvbZp=P93E(x7A0iu?x8#Te6)420)2m;*7eTXuKD1Me1 ze+;HSY=so9z-hcXY8>h;10$j-g*QL4prhq8MCK5JQI^wt1-X^46}gnyzq3j z`5sCZyRVSIpgl1e1d&cuHVlJHW3Yl^fQ;cPYWQ(4r`V}t8Oc<%P$eM;Tw1}L{(_Zk z(=L_9nS{EAGXC#KPAn!jw*Xt!9d-&fu4X++H`XfS!PtN@lzxQ8jgLroN^CzkN~ehC zbpWEb0yybZ$wpw5g9*HB_A-j0=LiIe`pP$W@eOtY@|&qKS4vuk(uH7?_(>BWULyqc z^aJsFidZ6oHrONAph?j{4P-~mIjl;{rEwB^mbwr>zxLi;KJU(fo0_?{AnW)+PLaZt=>v7BCZ-&nfyrclz@lcJV3C?8&IEIaCC<&xln0{^)sI#R=e_k8O&|_Q}|q z;>Vc})r6+y^$|3s@RZ{d=+URC#hji>*&0^D(aGyc*9kjit!!&y5NIC$V1BON;b;+J z1um>5BGZWI(!Q-u5+v4eoUW^7XlpW0y0$lvh)-EAN@XM;xfhkHn~E;R%*IAi!<;7g z6k*z-rfb0xYhoBdS8$v#=~A%bi|00lJ`@>gukn>m$LJzAZ*G+J{9A}oFeMl;Vv#O$ zRC7F}IH(nmA-kpwZIzX(TKh^%e{^18zMtjY0!DX71zLYE$VV?HOmA&|y1+_`B>;*Y zjTM7!7mzj(=M&w*Jlbhp_lGZ6AMN`@rYCIsirkF(c_H{TWTdYS6ZL{*;#w5*JuLt( zb{DmXnEG)gya-Tf+R-KT+zXOtt-8gKa{cR7Rt>jrDbdsQ9{oYwRVZ|ZmhB$d3m0_E zErohD1`O$P4B?@4 zZA`#ze}@=_J({hEbAO>`Z8~QRIYLEF%4q#pW7A!q*#yRjI60Yn=THrCBz*Pt#^j2Z zDi>jdW@aNH?<4Mr>c+X}d%Z$gdY=uB+kEW^?1(4?>B%KFZdgcidwCsdX=A9vN_ye; z9LxYQc2wpeZWJ*j2U49*wNPtfb*l=K+@bZc$&vl+cIy*VeWSCQS20vpZLZ9e@PziU z_+~l&pd=+Bu+`#_M0PWw+6mO)O-mFhF|q&wRPaR6*orFdvZREYB4x(;!ihv2%k5|c zyAKq-^tE)#Ge+-EmD4!FHNn7blBlW}$ph`U5;nQ0gjQjS$a;o@oi6+I8hpDur#9|tIhq?mI6s^RDD)OfAY>BcKi%4CKxE3l#7Iyk@smc8h z6*?tW*y$h{ML2d3T%nP#h6;n@eg)Ok zZ3n|0cB+nk#z1ia7A1;IJg4TjJC z_4tH3dj_e&OIm?ng&^w|tJp1@{a1jd?Z) zA}@}IOJ!<(EBASFy%I=HvvQlOZWJ1I3MY6u2CbS9_1eJkYNO_{MocT?b=^d6q0$Hl z;*>Q;v2o%z5+UaNf%bGmT!wssO$h7lEhX6DLTEuc9JNU{M*w$|a%ba%;)tULb4KaD z1zV!2GT!8N;t*&ekEJTd)~|RO8>~VTt;rK|Y$Zc_+jI%|@>$OQOfD`pk%m+8UJ5qK zA}}dwZd`_-$-(t~5toYNPyO;^-A2eHO$#sxXG4D#m~1vEtxS^DrF`&CL`Qg@Qv<;$IC-BX8Mwk3#v(;H_0S z(-QCMlKGjP#n_ausa0cC$nD^Cr9mK4>OwWCASvI9P~A&??;y=;Qd5)_H&e5q2MFS%N?!`xQ^5s3&0O>4Xk>F zs0+T%hw@%;-JDlVc075Y#OmPt2WReB>x*DyVUo#~i$ zB!VI+b_=6EbSW@#B9d&;c*G{GB=MCE1bE4ZudE69T&^{6SU=uh_w7AyYQC@f`TWe7 zrGE!}^u74qQqft0zs7x7^ydLy_7#1s);0Td+@?8rciaz7BQeTi3Drp^@U~ow2hw2l zL6ly;QenY%TjvT7)n!Wbov)dhf0A#Tb_{T1ih4vrRpjCIXg`#B(F;eFZ}p~xnSi!| z0t%52JKv}MyOU!)dhT{D@Hj6CO{uv3dcR2YabE@xIJVR9ed=-m_v{DuTP6V)eQPhh z^F?vBdfI(XRM!G|pG!!SxnkTm`}6c|WZv25`Kad?F!<@gXyJOm+wBodCi@Z1oYEf)J4C5vnO&m!#*^P6&Lf~DCLpYYKU%UR6E879k zJbDIf9R1jIbDuB#12~k;w@ufJMaAns72@ro7b&74{+md^ z{)NAL(-7HRhK#X~hEZ0|eDXYlb~hS^`AR5#5xg>P<}V0g*Ls}ajUh_%qqY*oJZ=Z0 z#nM4|O#F1d41&vG#0;ehP>_GTkZJy<{Y5M|=MVKyT^!W^V*;G5kY=0J{Jt(zjYiQ( zS;butD>xq5Ct6?LuY%xz9hSdv!s8m5a2G z&A6IIq0qY?v#g#r(}pxQsv1V`LT(OG8RAkT>#);lXqfcSKx*+ySNQ#P-X05M6I076 zp-pt=`8LYZbp1k}|L;oo7lGx<&&ffqp-_AOkotyF(K27PU+KM(u{C>?J_c_SiQ(VC zT^Qd@NkijJ`oicKOyFaumU`Kn z%=56#@&x-kqmV>J@JuT?x_K?-!&NTnvvzD)_6zs#iqsvh^TB<`#hN8?TTQMTpM;Mw z(T5Q#Q!0~1L~4qONttVY9u<8ilt9jU(<84ng+Zqu7a*Hvjf0D^N02wttdmY=(B^Sc zZXz*5apkB(LaVqO(Dq#1C=%fqb*EjR37Da#Y@LaglAs(I6z3qHx5(HK%1KI;riaZz zQne}|*Gt|VpJ2A;h@1)~>-&ymhF)8&<3ARWd8~)>cO8(aEH>Ia!M6}7wSf(> zua&<7<>DT>DBeS)=uMc}cX{Qeg;d)X{{ubzFh)OUHx+DxRgK^gCZgT*124uxzkE zDi1<4OlB@(v|IEHpe)1wTD zs%BX*%|=ZJGZp3>=GD>`Ae-@f=zsU;WMuJgLYs$MxHrcxwCn|()XgkO&zliw((Wr; zjBq5EMShN4{3e{2Dln-F#?!;aLY64$QeP>+E2Aw?RN!Y!CBOud4>e2Z@FPrS1x*E7 z$(h6mSYrXG!A-os*b62_$T7K9%}8iPkcr}^D$mxIEKzmGVZ7kmxoOD+%&7+0U#Xa8 z_p&0X$~Zk7zLB-C`}Z2bm3{iV_PnW&xbp7?vsNqSf;aMaJqtl%yCbNxLxPo14sp`( zNSgM_Df(49Yb?hj#J`fhRInC`OEGY#;V1`(h~`FO#KI@yZ2neSSNE3m!WxCxpXCy4 zR6F8DQHKOTN7OcIi>n5d6#q#sr)*WTQfW2Uk)u{?s4bp{Y8^;QcK=1@)4v~!n7c>6 z@e|Q1RtV>+3%9dqcOYHVgJ+VIusABGx~uMZ)Me^HZ)>s<{^pJqW=yAltkb_vxvvSC z%~~iqR+h<g?o8no z`s8PTBPdPm$%Me*w~q^xj6x?IjH#n`l*NI3!yrMg%yLIh&rKDkVn!xXv{sFVLOZRP z!|Qk)TFwlctzpl|78!MTs9ioOKUt2rG`yVL>1JTcOvQ>8DwP?GB5I2`mZPXNdSRx57hIab~`gg}8 z61Np%6O$yT%v%X36iyt9@MOl%)ttO$pxnWXnUWBd>5hQV;Y11Cm`L}~Fri%eNqv@> z0mUOHwn|Z{mA#WJ=F(|h{#AGc=Pb!#XdDDKjrdN|NJqZP%2uGYjm-e}RgBveW?JGH z*<3Tk%Gy$YfSY#p)bx-KKCsuHg*8AKq9!9(Rt^ZCX`6%_!H5Ksr&sYS3nqgzOen%F z>07KM8uK6%(pkc}E`JxA9rpu@og4h;!>CZx=(m7CR_HW@zdcL|?*gsq)jtu@X8*Fp z_lvqqLbBv3KiaWq{IgD_1wjcNo|?9AvcBoU^Qu9O4kPvKgxE9*qG=8&d;Z_vpcJ9z z8U>9G(F^c~3i@U?93Ttzx8+y{0`ZjX)BMYU+Kel9TjyB0pp`7`31gL}RVXcvWQ zN`tfK=QML8fKVeFWO#XxbQXo+(+5UE{#|0BzjFOLpgj22{WDre7sy-@4N0oSk#npPQ4lw2mW00)JG5&LSK^{Q%|e zG1GA7A_>Q%1%Xr9!D=>@UJ=M)y+S=-APS94xYcUAnaZH+dbLp^W;w>KS}LdAhiqMc!@1VqysQR7$KIl-RSad_XIn*r;*j?+*q-{s25lD1yYmz=tWgNZH! zF8UnA(@a>7Ta)9f-_ovYg)M#GWF0V@lk8U=rOfjX<&$Txg$HC!2U1cmHg)Ue-QPX}#Xm&MZ^MluH{MJ_2lbIaZG)8{=-R~bTt~2Dizz^oIPHl8T(JH^@-g*7pt%o7- zKifsM$F}{ej;W@Mm6g>9UP4a~?8Yk56fK zf_$a~eqr>%u==x~T^n zI!Xn#{K^*e&D(s;iE1J<-jf8AUhC%!?=`jGKsXB7??8%nzHM)Z=49C5dOm^1;&U{S zU;RbrMX1H)`)kQO8R;(}Q&@pJmlY=H{t`6ERi$h?_!le+&pX=fn@k|W(~S0c8u#1i z_Kd{svS^07*JSGZ&J9aMgLn!e=xHB+_dIA_cklatckt!y+BnQj!TT4qUE7;C*?oSQ zLJsZQ@ZHI*`Kn_TQWA3qdpfgW;B5o8pf4YrR;P2tFMbOsFRdIP3d9odCcBvRu6XX3 za0#^7yY*bR?;n?C#5B%)ZznX5^SSzR#L|1BnSL1g1G$IaW#~tbSFx}wrFzmg5cZN-@8Fg2}6$Wg+mdVu^V}sn+gmu$cc zq?4z25FxxLz-anD4e4^H>hji9WRYz(6r;1Y#x!(IT=AG{+nK z)$xcms@V(*t*41T>;er?Z(Od37lXFs8G>4}3+zrdQL~&vD*qcQAhB zW+BUc8$GzwU8%crH#!=;y#AngLiGDVlu|4GqV@*A5ogPU?E3L*^_z0!R>s@|y=yl2 zO97wq0_9N^7C7*+!RDv+REl0H0_EQG4>(7HzWfiq2y_ zKm4e8+xBzR$m>eM{fiF`to!HQO&lfT;|+JWWuGT$g6ph2OyG0SV`U>+ynHE=0iXAq zX#$<@n%$r5{gnszkgtk2ccS+=z@zER^EOdy4yZj@U+wmJbon*YTW~(f70371+F-uJ zayIFv@atBeEt#hOn~>ib)ef`5fMhx7G~stJz1z!Ry2>`3(Ff6!$8S%_qffQ@k~^b< zMcy(a$uz2KWbDQ>**r4EgNF-W-=A+}Ojukm*MLAHm&?cVlm9e>%^YqMpZogpd}n*f zaPNm_OD(46);oKX@(K?2+lHn>4xjt&5Yl7Y>vB{2;f11s)AYrY-qKNR|FwKPCr$>p z!~T4cWtM&1%smc=xiOZEzJILF zcwTT#kb=Lt+GV}1D5k}=o9?_;NV+l4H9AX_x8wM8F)xiuH20%hg`FnP%C8>- z{D;{n({R5+y4cx5dV|r0Eq~d#vB+xEBSA)&^{C{{&W)m<$T|m#sCh3S&yC+%J4`|K zc>325b*$O+w_Fu=0-$s5MR%^o1i_|!#>y^OOZdV*vOgSERaptduNKFn31r|2=)7-(Trza0Dcx(wGc7#npGFfX?-|Fu?ilfF#!Rxx*Q_ z4<;k7W}nylUdkUhW29c>ApV>YN;Bil6?#>-gxX5OQCJJjdK}$C6PYwj)__m{Mm`9% z1*qmbHy(s-LXKZgvzlM-!Wve4xIaQ?(Cj=-Z)@rluHGfuwyy*QKU%H{dAprNX0IVV z=PD3SnRYl1BF4LT<^S-uQ0>EiOnCX$zh_7ntDxm%v{I@X)tYC}5r#*t3T7+h_izi} zd!JRx$lG-%#~~;$5ifflq;1x#yOLSoa1I(LvF@6h8c{R+0VAev)8lF z?)RV1Jl{9-`+mp!zQ6aAFC;5ElBynXXR_LwAVV@B0g#~{X{VsDa9l1~8?FYAw$5+7 zU?k7i94r0_aRr!BQ0mwv0&l$+Nr}wJa_vg5MlzwZg23$b_mx0xd1sua7NOTtQb#33 z5uMtrd%Jm5o$AY^V?$%>SAfJnXxFjiGcTsIIZ=viT*h1x+uBGjRnlesM$2aQyaP&x`&Cz!{ z->n=u%~u2c-elaSshpN*l1`&5vIz)~g-OpwbkZw)LP=qCo6o07Pt>y9 zjqJE<+G#Mk5poGDIrwU|dx3fuHfX0B$6Mz=l_5aT@N62?i%Rs8==0z8w5Ws|7x?GM z@VRYyFtRDnuK*1nXw#GmE%QAI6?jGF%Y~lomi6hDW#Cv^0%lE)m=T zfNv|`exslN?ugH_#!7`>`%lNcKCFGqT;agR4bq`|xy*ae)1m64*zu8#=V@rhv?q!M zVrY%HF8%PdLv2QQWA|1KM#z23g{6J@wm~dsLS5nPTXWg?z+>ir1Ub7Nmsz#iJ(EaV z7BMpj$4HaEz84^Gm69EAh1WW>HN2G21E!FpYfu&64$DpHG7!p**Mb{ zdaUYLdy)c9Z(Z!*j+9%Nu2EZ;ciNzWP_^Ua3*Ix3kenjsR7PB)oTwd8Ry`H<{B?{U ziPw`Zg9SVycJ4ucp}~`<3c2Lqow4kq?Ipi^OnkL^Rsyer)KFJoB;a42HQBipc7<<2 zHdEN2_&QL4--Y+eA&pxlT?YNW(pMJ-nQtqaw;tC+a_=@b zxRSLt+HnKvNM@4)u4|WX!Gyeach%Ax-YGueO+O1|=VB3(dsbracsAKA=B!ewU|Op- z8Xwf&lM)!QQ0lbYvjxYPh;4N|i?!3NcHdr0>Jr`S&|uQ3_aLZ#|AZsX$DMj}Zh;Re zyL7ycapAt0#G|UJ+Sc+INDBb5=99w`$)Tp0d?vlr|Kb~R*aOJ%&=b5dBw>V%0F`zlv;x^cH^{q*V!JIrfi)MY95(^2w)qu z=OBNhVOa_Bf|@6tI{34`Z*h!D3!U66xsxQwUzwS zzIYcXl1yMkZm&-RBUcMbN!D_8X$AUpl~V4B=sZ&YZTQo=HB+R z>h*?ja}0vLHp1JY!#eDo#HGr0rtRC!$xi6N2xfb|CxTqV>1od-(3sxx!nh#%heKu( zls;M=9E9|{OZd3-W}Y=CJER#|fN_{Cz9IIQh1v-~mO~ z&QxcEY4`Kzz>DLxxU!2*)m3Rjg+lDM&g@#U24yzQlQ{-+^W19X?t4$AWsiniSJwK( zDs5%cQ;s-u{i5Wh@Aww(rd1Ck$?2lqrFuJoS)^aI|K&DJd-re{zVk6 zRhZ2ji=A*tu2x=bo6eHdMEkFQ5M73KJXBrGOdZ1O1b&UlH_5mU`C~uNrj-f8pVYt; ze7~Nhi;w_y=%$=VCqF|?*H2ktaWoo@*{9Q>T7wt(3wb{9(2Y()qJ zgg7sGX6ppedp;Uc7n;G}effe6Jj$XQ?7X0P8$?RAgq`0&?=SD^Oe@#2OdeuvOAHFbNI8ukY;E zXAk=Ub){z&{(!JYoNkVB92(Kz$$2;UdxOO?#f^0nkWNX+jarlTDS(ZBjlCpGj%$qm zfgP_}%01lN@W)0Uj^-w}{79^2^k{g_7f#@xPG{CgrOo3NbBWb3oiYy= zkMkQo^VhMxr=q=tnY-VOzsUz5bh>YDUMhfhZcmI6R(1hU95*k2x;Co2*U#68%GmoU zd~^A_tW9j4oMwC3B{AJp=N32Ja{ovXgA>jfN37IQDj(s?sqa`9W3VdzOVPLV$RcAq zgUCR=X)3Kqz%#*J!~?e|BmNiV@0m(gqn&>q(r)7Dpqy&t!1>c7LJp@HaZ=}DABv4A zd_zJ8r$Y^lzlU72jDBv^C#`UsdpE{7sbeI>T4DpSlex>sYhotV&B+3SMyo`^si3_ ziUN&xJGsSN$S>@sR!6HL1;p}pWLSrhhLf(g<4qZNo@NY4frAbMp|%~oy;qzv0Qu>& zWx2jcw1oDforlpvioa)bS}G05VVPi?N$o<@C?V0T2? zCEj>qCO+1;|yP5D-mq^D==v;gvi6@Ay}p1 zwV+XQh6#qw!Lha5>STA?4+U&Uh;B>q9|m4ZLmK&mC0v$h7C8R~Y0Yo&FL2uGrQk*9=pQz75{sQ!0Pj z&~#3r@^e9mArw2`nF-E@?!Ls?iT73ygp$027{Q(JHWg71;!T-LzbY*E9N=9HzvBK$ z`$y(oQ!7_FpoS}y6m7O4lR-48PX!V z1X4H)Nhxiq0VIoJI|3WP0JIKe0qxD#N>amssvxzHln(<{Y^JE`$v>Wlig{prpCuB4 zWGp)E?dQqcBHa-tVw$C^thm~b7%@^;N4%a|f82vu;v=9Bj;6=l%htaHiURNlaP3T# zKuuAR4@D`nn|Ar)ntKvSn|LamXvfqcei7N2IOq;~b|>*p#GO}nf`R@AP^1bn zo61(hc!8Ha>7@kkQ9sU(U7LJNO|BUa4h(0M4PktQ5FQ3wZ??iJ6+&`3dRTI$dqvq= z`Qry1wg4iWW$wsz95t5U*$e>MqcZ3vWmMYVqY#GDY!Hdxay%Rk6g0H ztV=QoPiJq_lg@D%VP(8>92bl-B}L&Vb**~Z@DU$%yIPl#@=i=CYf!2M_QL^#+TF(I z=Er^pI1z}xK$aB`O({^;u|vE4aP?VQ(MrB8Jo_@$wDQ)W2`^!t+S$}q8(P|Wp9gxZ z$Sf%pHdly+_$>b5Zyeb|b7IbTWa==wBJfYAV5ldZ#gK=k``z}GMfApnGBYC#h4nb! z`5YHXdc2mkYi@4NSM(8pD18x8jF%FZ9mT4~aIzSEO zEJZrG=!Ce&XCapsC09sy*nmz8UQG8dDr^55&1PVN z=~f1ikm>$JF5X0f(q|Sy;ltwRfMCT8-aYzM4JyA9qgApL^KONpsgv}KMP=1;gX+PQ zTaXtqpXQ6~AbM@y`^$ql^0Np02St>}oggmPD+OYv`a%-y(8djr`xbuBt{WrqX5+Ku!f<5_@w86T*&5fmXd zHn+O7zDCAsR^87OaCcP8O8KL^cXh)MNaQ@me^oqyT5tYS=;V=vdsHXv{mIV6(x;tE zTcSH?p6q*34cQYtLQV`Fi)>6uCV-ANV*Cz6lv?%lWbRGB;CRo*1Tjet| zTd*Y>q#U&Qdcxedg5X1npJ%Xw%->u%B1Zf%_xsde=v)B}eOb5bd4I7MJ#C zNv*eYoRtxdkui%|0#E&-DHVjYVgjlnWwJYmy``rRI6)tvtxP`|DvHBz`?kr8 znlZ<9KK7|scKE1ouA{LQHg_48O1Y~@Ni2JJkTGIj!E75-tUiRu-;!pax929IoTBFH zzHgjb;-=ORcJhO;wKBkGKH_+{7U@s`iDl4+eL)f^#^`E=E1DQgF}>*UG|ySB!?flg zo=a}(&b%s7VpRLN1T#@v@n;Xg?6myuSjga1g+Lomz$%jy#@7PbP^Bkjlnc_6#8)eJ z^R(_kavgvfO!1Cgv88V~DIn;mmM);a>epL~{E$d(<#NuUw_Nbn;$uJ5R7Be(zC=qB z*y&RIj_J>A9*dGfT+pQIGI>RF0p!xm1cOI=`;zLQ!-g50?5O5JnOYf1z*ZM9R258W zwii>Qz~**MY=})`xY3XMZ6A(q?-rvG?S?jl5Z5&3Zs3AaL0>(Ks>P&>O2A#S`ipD` z#+fST%ABp^spS{Mt~$D=m-?-IY~`-;vQ%@QuA7pT#O~-Ta zrlY~~FVwga;&y2B`||@Zz#cEvFqJ1V=_^(i7Sd9}qzbQLx?)o1Sl{AiPXnK{1r}ni z^RXp63|@CN2Q~m!sNa5+CR^$C@RQN686sox7BILCX)>!0j2z?-d?FlK;4O4cv_{Og zS?FFeH(KLu*4V{Lqm9Kb2tY{Xu-|j8C-Q8@39v3gGDEh9KwiTqK(a&fEPK}687$tN zNG)s|IbXrWa$5!|fQO%a$OL6*20o?(Nv#DeGW#Vo0~VS^ed~aiA4V#@Wu;EIa%-|B z0STFw z&`k-QYTw@qmN|}JY*8;fuo*nl#~MKv+0_ymp3G_pW?kU}YGs|Qy-khsR4Yv4Avq|I z)WQ_f#KB1fm-Y*AI_2Hl`+1yEb^iK|r8h(55=@u^UWK*{XlfE4FDle*hpNlhFe0J5V!f$v#M&hs zexD2NVX`@|$8cNye5{GX|J| z-5K*j9e~EPOh{BYGx>9U0_5S)%}z{x8$a~@jrY!+?Ou0{g<1LrIk~)lLwvE&< zJ|@PXk+-%y`*`cWI6-#_ewPlFDSYOU|MnoDBFke?HoT0C>;$z@RZPP9;GY z>S_^pp%Q<(r2neu8>QIgCULz#BxEZX7Cq&5n3L&xo3EDT=xh}+1TUuK9+ z)FHO#>Y16#PnIXNcQ^-Iv~g@NQbTyQ^iEHKS$>iosv0mJ5VaX%@Ut~j;i8W!y@ID> z)F(og3oQX0bv#zm+f<}Gl;g$_FtKhF?cUllh+WkN21}3RG6wW8=rOq?4t`OLOjzq) z*NZUDganj@?q~mbLgp0*Vw~am84c#A0MEf3HSyk_wG0# z8Xp$TD@t&>!%%m{ZrS;Fv0{-OY@BZ)h{Ea=Y$aL|HsY2w_ZDE@Bs-}QoNxQ?%%^zc zu-_DLA%|m+NY~K^Gq5bTHy*VIFR$BN>G3s^9s(3V+U!uRHlr=dL~Ce$ijJv3ttm6C zkDH+a@~SymVe z=T}3F*6^PbJN1KS(}4>Nm?rl2*R!&zrHGxU&f+&vvned`ODLetPmnwTubblI8^Hei z{h`j$PD=53h>M^nNI5o zeL$;(h|p?@q3Tw*%{zbCO`r<3I9Jajq%6O>qT^pQut78 zDh_KyaNB#Z?$~YU8PX+8Z~Lssimw^|V{w6p0PnrLgRUKi1utH8r1wsgO72)3-{*&* zWl91b4r?>9*jdu5-~^8#U0N0eWoxvzmx~yzr;B6mZNL4s8Q%z3%X0P{7~og4>U#uE z%@#gZh#P7@)q63QcO^>KlW%0^EUsj(pnJB9N9Fq^m7oQxAr7P=B@m3CUW>ewHbfz* zAeS4ay|y<6aa2;ho~2ceT9$A1;(KRa(O9gl@bcjx2_k+hlsX9B=TT!;GHJ1FR`8qAvpESK)ExOAPuPt&N zU!<@Wwx6_0PiOu>|IH=gYfmN(jw`!%IiXW-d;|o@gjrXqpR3o)rAYUEfLqp{R56XPSC;Zs_VEKXZc~j1Y{!#b~V?bK| z_Q%7N)tbQNVY_C4sH^#m{jhC^)333`F_`0$`X#t{V5{(H9gmC<0Ch?7zkp>Oy3-pH zYpGVfye3Vkgt;fhrIB-asR^4gra61 z4M%|LbR2^)HlWTiU@5rK>T5!wjg6d&iZ2?Df83LZ6mv8e0~We# zya+2Y1m4cqJvm^o>s!G3P;BMOM!DI)+sONi!SA=~S>~San5LoRz0oGw_lMg}Kf`%Eqatfoy z_{~R}ZFD3U^X;^exH;=VzM?Ng8^0O_>JTZ;k;*z5HJGdzL#6ec!ibNAD?qsaTx`E< z^wRZzA6^zt0_Eu!cl7Kw>7yU~?s3j3*jcs9sVO%?-VPRrzYB0W9yF7BEpfRwM*^E} z7SFT!d}md=cW$r}Gtm_rLB&63c{3KgpZ?&_18jlON`Y@io>c}f7350<`N+u;bA7y4cK6^-iZF)8+pzDiE5VjA8@20K1kU9>JxqI65nHo zWEPV_9jRyxrjVvt0G7n?e3?nK@~K`fs_p-J-jMr|gi`D|Ctl!s_kWW?2Alq)o3l(c z>-x*bs#!kHvx0#4EeS4MN^7FhHIOd?c;@5gX8$|-8K)aXl7CS}!^eY1_}s=~U2aU&w8Mk$X4)(72dPsag!hw3ca?NI z_n7pb!}F{;bUe6?2|es{qdZJHCOvSeVP8t%`>;@HqS+SD3iDH z&wowa|E;N@b@3}A-8*4v7k-8QS`%*d#Mnz0UK7nzT$L*Or}kd1+V?!`0*zhx^W9EH z=|%8&W`JP;Mg&@g`TOY>7-d+|f3D-uk<$Qlyb;-T|K}*|KYkggCj0FAO6@`Q z_oRk6z&<-)<}q-2XM8^9_y)Xtd8pXp^r5fRw*%T@=h_R) z`|iD6?@GHD^!i_Z>8n3fk2k#M%FyxZi9PV=3;is8GW88`n4z|(A_fKq05frll5-p2 z8O{AzRJ3p91ss6jptY>{nOA-So#D5SUqH+kM)%q$a>d{Kr|X|GVE$H>2WT$O#~nUm z9!5p0V~_e}FWnSA6uD}zteS;JF$0&59(xjZ@XvXAW4LpmDN+y^2H>YNKW;q-1nzx# z5cu2Z8ekL#fNm^+z;-tm+s?s;>&xoiv z@YSlBR!doRiuvGgR8)WJ4@4>54zv77bdQR@{u4ZG#J7N*KvZavDm~`|y;qawb93nI z({j{e^RTi*>bL%!b>APiC(4yE>-?sh0m@*KsZ|Zwf`Q==Y&b<#J^BH2>*LnpQpW@n z+n2S}&$#jL&z-)3grT~PN_*TE)dkoszX@Z(BA>$-9xYDP$Eg!Zc(vdn0CdUiy{$y7wjAI9=Wi z+t<_F+iDKT%o)hJ6`fq?S2N?@{j)o>!}=QI{b? zo=5fKk?`R21m;+;o|nF&g%&pO(v!BBlE*RS#bst+E};vznhbpr9)Nw5?DxIXL|N2% zC5u#aRED>I#j*4-;)(KpG!ESa`r0Dj!gb~Oy?Gk}8`5I6Mtc&AF_3iSAwASI=s3(} zw@`?{Xq}?wyNh%eNb}Htlj*@gQBY?P%ELk6XxDE z{wCU_eC+crk?t?dD^e{O>}%=h{Sfa~#;(SupO5g)L|bLvxF+G>mUhuoH$QWDnE0Tq zr!IIoRs#8n)Y@mm`@2#LiF1`IB-^rCvuGZ-Jnz;%RUd=-(IJQ*9M_`|YbTHSl(~fT zj8IRIKjc{06oudZo{yh6axQ}L>bVXfdYJpXUrL`Ze4_JgPtE?t)btZr1RX4k|-$%Wo z%npQDUEJAO8L|mlR@JGe_xi7*yteBO58?L~1V$k{WXu-=fdMv~@7(zwW3jgzyFBPK zlJ!|t3+D3vaK=h_;U&@Tqfnot11Yh{U)}6C8;(Gu+(2tpxy0;JC-#>eM}cA{9SISdleX?QrJK}Pli6-F2pe5m;+gsupwjh-vM#(KXP|!LK1`V0odZ$1aVYiQJ zvS&sr>v>G>=J8)H;u=>GGBItwn_&q&l6CbA>@p;owX(MH8;#9Y$)?!B$|Si<=d>)R zp#kizBnEkV@Jkw;__oE|rWwK5l?I-Lr}OPz%xz@7`iU2IskZeY6=#~pU3moC1Ye!J ztbXg(pjw9h`0G0=Eh?`b3|6ZP5Oyn#kHCg>wv9TyF?{&BOc)Aj#=u%{@ovcvc0cJ9 zCn||L-*KnPa;GYW3i#xi>H~fDp)Yp`E!KN)xN2$1LGKC2*de~76S=Zr6J?F zI7mHedeF{#2m;BueJ1LJYr z;C=Yj2WndvBegGb{lW4_%G*umEVP!`@ zls87?*K-<%6sldv!{s~xrpJ(n{~;q-2!005WAjd5?9Mmd!?2hHQyzIEw%ho z|2i0)^072TMmx5i@j+R-bjxYxTyp-a3xXtvz97%x8Cvmb_eSm%Lm+7Nl`%JG`jtU` zr&aTeqwAG;j_Wtk5r%cio}~L{$D#xXG+{m?>Yhf-$DcCsgp)D}>UlS!ycVkEPmp@f z^WFLSPC_xqNnoRvNXY?=MW(x}F8yK&; z^8s#?zZtvITw?OcfHtuFha-kJsk3cgEs9n~m+)uKP>WXkk+*Blv_Q5u*9KR3CN?L* z1kZ6=Vg$UDQEDZz(BTyy7@b1a8#&n)?5wM-KlUNy-hPb@?=#0)LsZYwl0P*lh`q~5 z^0n0RXeeO}8mCk}-oB%)X}k4&U1#>?`glq~?dg?p8GPY!tc%mcXuBMAXPHW%iAk7%L z7bMI}O@o#TQfIn<=O$)zi~I1+bVrKKt{LngvNw348fO;-8!KW(XhKD|H^7qIzdyrn z5xb*@HSf*zJkKp+uKdpA*6*)N1iSq{$y(;8^`qeh;mDa&A$<_l7fI<7pM{zeB_Pnj zP62|FGyO5Ni;ZHaFWJ4{o;g^0GrG{Ad1A%sLwxpPY7L{xN=$E(D086K;K`u)LZS{g_df`zHB62? z971+UP>YngcvCRBymG9dUP!uN)BfI0W}p%xV}YylQhtB7bk>lp;X`c~l@oc9t|I@{ zZ?)pO>Ij2u{0?x>9}k)GDKiRv;KOb@`jWatXR%2v~#osO+UR~mML zX@e#pT!2%A!^$p!(|kmg$T3)sAOQ9ScK&Sfa);e>Iyt3B^i2D!-)@SEg}QWYwRQ?d zd=%di=kiX6-3+yon!b4Wm)H6QkRJ~Y^Bff_0bb*|Xj%1Ss&*9*1~!}5!*~GGoqlS@ zyT)gA-2fA=>Y2O)J`&F(QCNuPvl)ySXEyZ7m*Tar9%lR0qO2Wx*O?Bmvk!~mrm*K z?(Xhxq#GnJ%^d#I-+VJKGjGEa7jB(>*4}HaU+i5ud~WqLda}T^Z1JmvyGiF4MgwXX z4#z2m$US_AOeA?s)ei1rn@jAeko52V>fDdip9DSgUMsE3tbLq?qxLJ$CUPxdy}P?c zyl?awRG!vydr%NKjKS!F{Q$xnZcR3isg{efz?pN+p$Z>&`S7Y^JLvpLGVdEg24+y~ zvP-hxwqBb%iLjd`%r~)%_>xykRF?Bd`xsIrNi$Ty3142c(DFLI>&oRj+%PqcNZ| zU6)kFdGQh`7y%XeHo@Z6@oKNMOBjLYRWSsTI@##5*EVaaQ&)4hb>zo=-;H;oUw}}V zqwO?!;_Do8a4dq}0wYm%+Z^sQVBT!wYLEkod&_^~KUYt$Xv|?gjtup;q8<|{De*|Z zl1q@fi~*1k5kN#AFE_^Isb$Vk5V!o1QT20&>bFy{u1PANM?tgi<8rJjK0-$ZGV6qBrgE> zX0R=Sgk_DqdY!V7rAT%ZZU&6`G*;8M?^hvhowp9&>{ zwINHM{g?>mJK1-xC_ zEy1N{wKFw(jU2(wz`#V#@oUHX)`=-GgqmQjatx^HfsP;Sxe7FPHF3W8R8>q4s5FX6 zOWX=z78q}KLoKs`AvKNTmUnhBn{<;}L4J#Bc8Jp?(gaWpewWe`m6B`JvrRW`7^T&F z*SDPnE*xR5i>(eTm(9`kLZ*I3WejQfvbAA`UR1zH{*ZbC2sl=c^C-^7E4JE863FGj zn4x^G>)o>R)e$Qf^Vhnm;{~&O>?+7e2-PNch;LJ8`H4r>9nq1dfWYDapE&*Lu}i5pE_4-<}(% zj{-9y+X;lJ8a9vSO`g2t`X>3ayY8rC@4(uuhfNsQ<{0r&g23)2T*UJo@(Lpmx+3=F z3)_z+PpC?wZss`#EST-=w z_{4@j5M!xL)5LP=jRpte)l{dnNIS{b%!C*Ya~!6CEEl=8lN))wQA zffuOnTYd~rc|AgcTUs49Zk-DcJQl9%WwfVn?Pgcb6`$7p!GsE?7^}$%A9tYd2*q?) zA9f+UHH?A7NK#fh;s}REVi`Rz$J4Z!0~*gO7fQY#rp!@%6$^p zcfajcNo>GiKS73HVbkjPBhSc zKNvFj$bZS+aF{7TnifQjAhzi#vuz74wq`H)7%V}VwbH4!ybC)aaJza}+P6UtLDCg) zFkh(An3o#~iGgYpb%Xnv55;Y?-?duR!k_X4$;Rr(;C)=gqq1KarI6I{GqN-chww}2 ziOx(3ceb3s{W;R#0+AjmzZ5V)KCW`xUpB{F3+!CuYTkfYVok#BBi@Qnw= zq_!9^HBrTp!%3vkqiTz;MnvS{a*kE-W|QeaQJA=g7_CTBr|barSRaqe1BS7|x8sjV z<`Jif7A(aBk$4co8)@SrEzW+q%R5<;zkh_iD|}n8H*@^yJr|`vo)Tk`+RtNcD-zVs z7B7yaPV02|>a}9>waj1UdI5$tWu}|KaiQ*aD4M_9#wtq>_c=YT+RBz)39Mu@L_Al_ z6)1LMpx*QSF>KAwcQx1kDWlE1qGl{URsn~cj5e+ME7_`Ax*ugpOj4JQ>m&pDz(Y3X zmIc8u8dX33hMiJcr~i2|kKPoiYN)O=u^ewuN5CFzICD^(HMGt8ltE7#-`nyR_aw=L0}(nq+X4i$>FVir+Sm5(XGi{4`$5`GM!?F`hs$1$W z%?g@ci8`-|Bap8f(WNmnPc9QJ!GHA6`2nsNmyDOBW~CHS{aJmpkDyulNjI~+D4bOH z`&dYj?@(|I6q(T9P~d0$3qW`m9gd=R+(q6zuGy>Lb9!hZYxTK)M0!yE$iD>J4RREP z%ucXf(IDFxO6V4@=1^uUXuXxNT}Amb93~6^ER@5cc}~jAgtjF4UirJ{RJ;&w^g{2B zJqjX6vWtlL^lsg7**DqgkIFtizoVpS0T5+f6zNV*2!7Kp^mLcFm~^1cYmPBGIE5#0 zBWm#Tw;~N(lOqXqN6(-Pxh5K#E8qIy>XjfnPJ|F{6Ca5hL+g|70iommzV51tuXFNg zg3N~6o%ZK{RWR?CvqgD(%78A6U@05pY=3`Vu zXdm!mjQnHN8qU^gC52n%sD__mspp@Me}T14CddgKJ#pruw_>-8@h-kf1THH>vyb;7 z2B^Gx@!l9{QW!I#XdYwS$4~C(G6??s;+u?PNpHkz5ww4J6Q;CEd9a4Mn|;|OHuFoe zuWwFL^?c8BZLm;F;Q{G|{hcao-gjc){fy?lN}6@Xj{m&f4c`VTfHzu` zBqo1!p8yynYQwVZ-l|8rS;PILb`4ihO$;`$i%C}2AKxnt9;mK{E1-&>MAQO3vfun= z6PGd7zpxs);;G*NUP%JS+~lEFz8fWt3W?$!Kx>JK|M6}3(15yn6wuDlBGmn5p$ZlJ zx0Hcya1GHP&)E!aV1%Ka!WI4(?j)Rb|Em0rER679*be~r_@`?k;M!AsH8=76r*o2) zAHvWao^u&ce_>+!?i>Qqz0LC$9c6p+zQ8=k=(cZ@qcHSet?}f~aQgA{&{Jr*e4_1u z;$!^VxmXf?E$i(W>3@)Lim$mbS%-jaQ~*K`MEF-?jt@a@ctfx4Z_nA9@p|kedQ2PP z!`*6Cj<{=p1QG6(m~^@fFV>7#5QE-v5~_}xbW zX}w;ryn~!`W(dSjtwkNmLZb}lLp@w?tST5w!TpsPi$(FX>ztZuHOMKEQmL|LiXp%o0$f~#0hwu0e=!8itcrM!m?Lpur=jlbw>1G>*o&gj%P>gN+9CfU(ypWb zFg($~h;UErR>_Y>s}uJpLFmP@4R3FYltK?V$_g8R*^VFqa^2J$A|5vYVw6}IE3?}f z0b~SX?3^m{ShG4$jeumYShL=?!^Z|-dnd=zl^j=`&xaBi;|*>vOp4XDat|l2zup6| z@U@CFAb?Kz-L;y+QyoXJk$SD+EcWH60PfgE;}fEcoHa@V@ZMG}H`{AOkQyJA(s2)#>+K94$fsBmk#zG$aIRH_rc4eU8-hBE}51 ztpmW`o;$Kit{(FQO?a(1e|7ZN4J%q)3L*$rUcJBgjVuun3NSsu^_8^(JCfi6y+uzb zUV`<`NOGq?O6q6bmr-Fvye$BEgUh)$TM8j?Tw<^yJmC++W4*ds)EJJZPX;te$&M== z9`~w-aXp)?kCzvFnSjoAI?R3jx~AmvPNcW@5hb<2^5B@?e|BFK1^KpLPzkFF=ROJ! z_CDt!kF!C_+4R@<{x3D<`jT;UVCS3QT$v+7&-rxxv-R>`LVd*UtCUJOf|4?z2f)hR z+6eOud$0iQcKdYi^RMCx;p{P`!d~FjYC7z(jy}Ik=+7a+#9ZL4`9_uL57OC7#ArN2 zxHpVwwZ=jNfc0iebyCakhWaMFQp(obs>6_5fDw~A@|P*)oN?`PrMpbIog3W9o|*Sb zX=z@&u~b?UR68)Rr_?UlZU7OjQleQ8sF=pxQ(O;5 zB(kvMT{(Vuz{8j*2;FcgtfSYPy~-6w^ZsrSnNrU51s_z=v71LQX0gDNX+=~1#Vyne zB&6wL^(wa3b5mwhp=&&`C{oyANv&cNV1f@8YfrqOpn>CNIMnKG zvu!Z|qm5k;4@d58OZ|aE#kpvsOmmJ@3|Gn#Ygl4A$(R?i8%jeP>;?FtaiPUE&YX|# zzD(&3$|8msuhHS?S!W_8H7wK)jPK!x2NPtXqs7|ByJJprsl9?CrKkOV6f~BkT8;bm0Kr4bJrgHxP4oG2RH_FgP=*=~g<+%~683Zg zX7qUK`Hq~)i_c`NQ2JO*xf?M>!G5!#s{zw&{6I=Z0zJYX9X;|VKi1u=rv2&70l!?T}~QaV#a61 zMxBjz)eZ~d>g%n%)r_z~+ADemQ{rwC&X^rM+Q4@%EEp!Vf1X39>)m&d6P+rM959CfYNdT7`4C{$`yh=WZK^4dq`n_NP>jp;hlmqb9OSb5C!W!-v1FNZuw(~qt8EVv8 zK4ko=S+s0i4;qZ6)#_MZvK!^rYIJZ1)Hf-v$Lw3b^vq}Jk~zwLO�hqI?3HOop;c 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

JkYzz6yN&u2mrG@G>FV< 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

  • ;@KRqGD01E4NeNFidUpftE6=rSbxGTIdF)31@ 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≪cPAg$?N39Fl;Kti(Yliq=m1d*Xt5u!CYa( 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

    %kcFFlono8O{~TQ3zNmK zi1#%Gq!%-+=zs^=ltNI5b$cr zkD^#{7nghr6gkT9C!wjr?h`)n2hg^O{L*~CxX-_MSHVMGn1p@H zU*Pu2hMWWaNdYV#&m01tM*8p|=@XM07bNzlJ4yIa>KM^)1JMt;y3SG`zeUZV3H9UT z4j_E?o~#6EJwN}=FLfJ=7N@pPorRmAZ9f^rg{?8pfS$>H6Z+Z53{Oti8->XOKDd3t z>!0n?K_x3OCwe%s{(7q(6q_BHzla1$g_N~*P&z06u9`@j`)v~c&V@UiS~tSC`>SjJ zgCT_1C%1eU6UKz7M@fhp`b%kPuh=0rSR${BCwmb}A3KTIi^J_3Z8V$(WIoEp7^CTc7HBw0A;OBnC z>Ok1!a`qAF@Yum<&c2F^QW-GC1bg)Dr%2Bos{G1Bmh!0ME`BqT@aHBNUSQue{T``l z(%~RIR6rTnBC3_eRBZWsVgoyZH`P9sMQE1wR zylVH=`JN@TOcv5G(#q&q|HhX8ey_jWHq51d-|y(5c}FGf{4pvmBq+s;S7xulG$mEx zCyJH4*=!dG6-=lU(%|~3CX~wd8>m$3040Z3l#4kU1Kz8MAmAjkK$SZ^ZeN{^mHDPu z-UWXTQu4^LN&uguj5jnh8iLPDL%@E8ld7yvOx&oM{AWd93JB8 zM|g-C$$bFb#~|_E!wAg-dpYmDT*XkWr5EcqP8&63!Ysa3N>OoX5(MHhB2{bJDQa>0B{V@H?MumEVdE40F#7f$vG?p=DDf(w11=A zGrJO(Ad3DnksUP_|H?=;s&w(-p!G^I68crL1`PYxjgSaQoWL1P=kxEp!wbqb)1!1LEYNJN1Vp~efmMactfSl$ zo@S9}<#JfINpLB(pAkKu7T3t13pRd?_q}SrS%cYujl?gOuz_ztz>7tr*VpCzf_iCw z``K&6lK1K=QrtJ0`91Vs?jbTmUkSaVv~Fnflkg%$Jzf@trRr6H`pQpj^X|_cnclw? zv`A3HdnG=~7A(D?7DGoT>iCxx8`S3y+P|*Pvp-G#4kdT9tA5Qa!>{7R^T$rfYyWc5 zP0ySEhT>JFwzj})QXRZk{9^r*bj zI0?5h7ZUj(H&2$i0KS)(n@@2#e~v=*t>y~~muHFrgHJaUXfYJdE7Lf#Ax5Gm{4tV8 zc9cuQ6M@yFm&G3~b|MwueKZY`X`3)yY|CtLP&*K9B!K=V_RG5db{SNAeHkw-Ge5z zAI$)7mcUBR5w7q>!Z+qf9DEI>ev3|w^#~g z_Iib6*~36M6EAeVsB=~42QyTRVz@K@AnjhL9(@PhER5V=bcX)PHqj^oUOJdmqG=>* z8bGPH!?TlN)@BF0VXMoc#2d%Vdj1T1?!+ZMFUP9C2-emn0>+-S!NfIgUVObMsCxg1 zLZ)qcVb5uIZXauue$u4LR-qgV3zNgdrZa{j%vv=gk_m@)+}9LssuAOPvwEB_95-`k zK+W1v=w4Qew$WhQzYi_Qwf5X2)pJ5y(PwS?(367hi8`<>Pq*IMu$D5*4`Wzx%RMpa zA#5Y?q7xq<&s1~@j>u$D5_?LSpD3_=41=60uJT?USz6lZg4$0b2=tCnLqi&D@+hbG z$$@m~@lfWK)r$LjwE0;|kR2crk}K@63Qc46iH~_5VbhhljEHI4%HqGN1&;$H{1C=` z)zq+B>(XA}>{pxFUK^_{bX{`XhcM5B3*In3xsQ?M-5+ooS9D)nJ~R;<8mg0cEaJho zhfLeJbnv_ci(Efg|+rp}_ylu&h{*2k~$6N?#c4A4UqIgPNc~w-yz_dyk z@Y@-8os-osfwh{mo@?k?mx>O_st~Im7G{<1{joYVpS|P&2(Eq|>SZc}9J&!!F5qQc zLeFju{PGF%Py8q_(zVrjf7&D6Y3k+9OvBdRg;hPYEr8E-=P{kXp4HACE-n0L($l@b zhDzLJ8fw&}STNiq90N?q1OJmy3KJugHHQ*^_0=|mK?*k}&?f&ozp2FGye}5rZ#PFt zi7l}Cn=8{+T-9=OFsqXH>2}{y+ZQOwK;mL!>Pw03b&UC~pw3z)8aCkHEbu-==S21dex2E*zlZ-K3hsO&RRhCAGTJIwmwwB4BeRGA8Xtd! zV%X~(q+{B^>>~-A`QRx>fH&-4uP{x!+7tm&*i`#$Z)A)GP*F#L3S6e;asKKWp;@YF zf?F^&2!OUeWmhpL;l8JGkX6mc5) z@c>KuRq%b5$UYGK&4BKGgN#|Pd#4N6yoYAPHS8>VT}Pre@DlY{1+LXlU9*Wa=hX4R^NgXqJ5v5l;kE+Cyj4Q zn8?+v`pW6+*en#OQ0wrzX-;ggp%7 z>iN&2XsumnMn^=r`zaQdn3;dFbWhu+7)6vrYKk1j;w{LW`h!+5Ym(d&Uvv@N0^^2R z`sj|nlb!*5zmPJhcnOA7281lUkw;yO&hlf(dr!)q@j5Mssr&kLu)kKV^M>UbFtcuG zzbfm~xiaMy?^R!FfNUkI6q-*Ha!!5nV#dI5uRSw%Yx`t98x^~B%|jOfr)nA${34p5 zyiY>oJ<2nJ+CFFpc|7d2FF#wC2&>nMywG|J>9KrOSlEEkQev_sM@L6RECi$Sy1OR( zFA$klZY7Isk81#O@!f1|Kx&$aw-XTFh9c^euF@a(ujtr5X{t5y@umEf@Tm>eP;82d zFx9S96dJ=aRkCr}gNqkmadZj~cilEzL61slp z={EC2AN`MA>z0FW=(ywB=zSE=u_ z(PF-hW_3q;0&epP;1pB7X1Es#0tmRsGD|3xr@jdDI1Zpa-2Nz^+cf!qz~q0+SRXZ2 zT;S0_LDB!*hP$2w>;73{+v7^6_wEZfZ{t#hu8}1ZH=kIFlfqR$vXsNcR0P&=Ow?TV3i6urHwMD@Y^Wh2{$Lpj0N5K5$s; z=D*=MmBs%BDRbRN%7r)*8xS3>SMM9pNJ2wZm{#r8B9OC#S;5%WMJ`_UT1mo5;-oL+tC zfqorCJ9P+Wmdj^VK`YgWag`N%vN@&$F{Dl_(FUQ|HwDS$E-l8PKmdHcdS{4I*zVyP z@{eK6v?w|jcM;y6N1To(73>ll5irSM1R_wGZ^|FuIfRK;u$`y=Wj};>PF$p`*0cy1 zZZ*nr!rxln@}=oIHe-DXVT+6w0p^u-{wR#hjCRi(IZn&%v%(sue1_d4n#VEZYrA3; zR-3$K_f1jES#(&G!9#7`<)6q+lvk?z40tNfr=?WkgCR(|CfOKMMTt^#HluP%;HjB79uH;|iwmTI>R+TY`+GZJ|gK(YaAc#~cxmCyi{IjX6hg<3!+abnz>mxI!jD2h-P8bL9Xknt6&z<3M*9?2?Ge7hQ%C#abu(=3gtN};>twdZDsOw!l(Mq>4QHCYmq6N%j5N6_mDA+{sBssePs^1gE5yVf8G7 zd?RPEm9?#4R4I4uZJCsFnqECECyOm*RiHy@!>btZlrZFZQk=)`D`;^lkj@qTR2Pgh@^hsqobR z#NWVr$)*`0`Ju~0z_`vEBJ@*OgWj-f8k*>(`L|5E|3E_r$6V3Srh)&4hAtm!td{Lf zQA$Ta72na2G`4#xON~xesgk4J3}Z@PtsLrhW&UJ^P@uz=@j!8UyaW3pq53q2iM54Z zQ--UP{i|NCQvgMq*RTFT`9MFW8{@~8PIjhdN1;@goHpX!J%|QRpF(nfkD3#^ni?wh z+mqCHgA=iT1?wbEq?dI5`dIf15r|%b_4q!*9w24YOy}{jrh2hyq%@l2Rqn-MS5XG~ zL^xNpusjb`^DGnz&DFBh8n>M&!`^RY&4V>Qo4^lkYJ)?l&Bmk{9up$|4s%(dRATfY zFY4=trZ~@RG?lH@b_EtdBH%-lQb?Q2mK_F0u*>0s&D`Won_>-F?J%@~NIIC^#utz^ zIExj5K2fwZC`dbph8KvWm^g>Jzb?sUerzl6nK+qQ{qb~Z*^>oJHMn+dbTDU@ zak^_9R)1p(5>$_bD$>x^8v^teV)nA0d%Ax_TUQOA=xz0^C9^7z#+>>;VD>DUbCiS!_MHWAbGBZCxsD)tG z=^y{fKz|e&rC4MCP(Wi>u<5h<$_f~l`PHxK5Hm2}M`P3kYfJ+;64NIDvQ*l7WQjU~e+_TW~-pY+W>{F{IPB3kHd?5#X7;#R1PaAGHxco9N-0Z5C=q|tD-htlT(4ds`CvJ z6HTx)TJ**E4l<)CdEzWZ1q5#^=}bqIjb)OLj0=goXQhgg*Nj-Awt+sT47c!ll&B4! zmqMHTrGmEUCiWjsFs?i)WcQF7(Hr2_vcRIAcQ3^5{lWpy9{_Y)SjYA)WNVFH;ftI~ z%XN!>;|2cNMHRL5nwz^FdT@b-8Owozlx%%#Q6>Gj03f8+Q-D64@utI8jU<0AM%eRf z5gbnX&nQA6$<+1_VhlYOIPHH~ATB7ji{X!Hqr;9b(#j5yRKU-+8;Z(c%J2kO=lmG) z=G?$$eN(NC$=gu845=d~Dq-Q$+}zxD03KLtyc_5+$)ETlsgDLR`QeUu-?|n?AU99F zMgtNa{WDKlSCv?3=0I#IZcbS63HYTOVr8@&c`$ba1x;%@c768R3B{+Zp$a4L%x6dk zc?b+Q7_4PF40RA+@57GJfR zsPiqlb+w|k*Af`4njZv7`bxuJhmy$28)((%gpFm4G97Q3+kB&?{Dz8i-K&@gwHo>0 zN9I|5-vfY8Yf9rCZxF0$*WO~;2{~Vr)w9BIm>_WPOOQZt3WS8##lIq<+X*FvpuQ@U z^wvXPgLChz@es&e6cEhpDK-Du*+q6fC$JF*_X8%D!$YW9>YGO>NUtHQg!s_N(R@k8 z@+7JQ(;Jp7gp?K?i*FuleZ#?#M7KpnfW4kV#Yh*dF<2QSAA=PU5L z2>uySLki~_^#0N19P&leeVwpfC?w%q?)?uGf|HvI>wV?%=a8!*@AzA&-n+xVLw!w- zzbxuZe0TlBpOk+lz9z~aL-ZIB!N$tY2}#krs5`mFb|9wH;`h2eji#GAb?&dG@L2!NV2D(Ndmbv`bG)xtYui|EC#?O7*=oiah zR5qg3FU-o1X79_CGi(#e;&Nc>lk8<^skp6xG)9YrDjqoF{|3;qPZJPpJ)!^TD6e*D z#UFw_t@h(H+e5pdPS0oZnRN9-qjrOa%R%VV1vU znB}CB!@tcqtn(ox>(DStXZJA{ddvSjrk0DeddV2D4(9WQU47ojcUJw~`y*3AR5YPT z<`qabGyNM#-nBYuc=tuVwuxTcy-4JK|T=0CF77)lv`Ew{B0zsU|#_!Y&*&iX0 zX4m3ToRM0cWj7cO%?_~y{kuXl!vL|%uj}>`eE_6keajv z$J~fA98s=B8Kmg=e?%E|^0Lvt@$q<=;rhY67LU&~KUoC{ql}NC46)}=VvBHFgDR@C zniW}C!#Xf%4O`}o7br|pgBi0`A3l}U2KH;&yIWocPPfwn5LhX9A<^|9 z-kj2ulBobL68`~EhZsh7J))i3AahRav77!0Q>7=0K&52V=oTSGmI5V7S<3VIj2vwU zKK`jdnepC|=1!?WL1lTnDT!B`Qd0t59><@j^}ce^5b}f%k!zBifhpv@eKrS9j08pC zhd4Df&*@SThR&}&VHFiQ3SWpaj1kpkJ>l{mGjq5#d9BN0yc~lFi}C%%fKh2*;zX1t zMv}*ku;ng^1Mqe%Hd33k(+FSGi%@)?%Iwa1Z7MV!K#Cy@40RNb1ag#YPINDze+2Xi zBi9zs6r(*?)(|h~`jRPMEsR;g7?pv@kOIPn#8NZC3f?)(AMNgTG&dh_TpWNufLl6Y z583k3u5S$%ACrf-`F_U}*MgXKtQ8&qM~+OFUrR4HtQhjT@XJ2uJp2tZ)!&gQ&EXu! zi`RTaKJ2MUm0Gu<$yqcpJg^s1H5)b9NXetV44aO(lfy)W#X&z=6Y|fQ*+4V*r$=Hd z4&k&51C3Ms=pII#vT47x09CbvUKMU5^|NZ6n-{331Tj7J^iK%IUz)2us{T)6fARjMkZVH_bRh zM)|k16d^SXVjY)ImT5`h@wV#Mm|Kixe+iO5h|a!7$V1Btw?&fYiX^+0CWB7K49^jb zkolURS1E|%|gyW$oamMnZI zD^9T%Une(3bw^Q6s&-;a&97`SRkk|7i`q_=3IDClXif4-`Kw4~JQKdnGVXTWC+@!* zwT&fpUOBOD(Z*-Mq=&>b+6b}$$Dw69hhW#Hi~?UT>Y(uP(noRYm-zULwgx)@$Ti%g zVE@Eq399I;-%5 zI_AEIdU`3(|5>&|kO4oS;bWdG2OI+dkBNe13a%eIG|ULi&I1<5T(qim;r#LP%59vs zw93%uYf|R*vX>r8yBF=p;FJ84m3UKd#ZjWO;Sbk_`GGxb?nUf@W2TOH(;_DK-rfqY z1eN-5am8e$J*Fv6e+=IDAI04UF*$hKfb%=?ps_s0NZeGmtj11~E^}|Z`b;OIF#wb1 zkOzzOp$AL^}zU#o&4&b;@9555N!BA4EW=wd;26#^dqSlH}r5Sn>LQm9;H&=<9#DV24L zb8|c{L!IriTs%Iq;p+SiRl_{=hz#ZiG4!Q~ExH{l6 zKJBDn;QDs|#59h(BM&p`IEOz$hmuCl@5uCu=*H%z2&oRRD!Blg|R z;740zXHxySkMT!v9OObeR-vFsVNS5GOFuvP&0NotzhS*?T}Y@4N%5=je-@I2jLmyS z#SYc9PM@FB6{@TkzGzh&+))#abm{I)by10bv+^geo&{%per|;-=?{h2;k9qDm_rh0 zvp$yd5rOCQwYp<52ZHJs9c6)VqLNP1jz!xS!8Qyp`}n@z`m6c2b&;Z2a8@v!@E(wf3Py|;Xe(zmnS$NIl0?)J z{R`BV$L!9GrUTe_rg{iS+*n%61`Xm89S~x{AbPML-Qcn@+OB9U?7=&%?9S`Ai*W12 z+N~2u#QY8mJ7zYfOf?UoLCzz{!UIW8U+j}=9wcm}NlU>GJn)Gm=HL6ubnBB$@{Lb( zGpK`Vab<`BJt|6?g#1baTmkWZP_ESc_nul)-a6-un!FkaKPdFqw&t(d`jWJM0T140 zg1dddMZejGVONagwnKyS*fqI1q7l3rU3#@+aB~y2Wi&gRc#((jy_>s}p z#B?wM9+a=QWA{Gr@w6#JUGI1te%gzS^5AwB#M@cUF_Hrs;uThRA0U++E3R?O%$#%} zdFgukmki@OFaTgxGcPp#laVU*) zn5vi@#q+R!(2yP;m-hJC>)TyRdwsKOAbM&3f%((A-KT3?+a!1yPFF)w?xHIQ?k2d_ zzdSO^>k@dar5Q%=e&Ix{gHfQ5!JhvgS5XL*Tl4EMIl7N^C0HQf!?RIk9%?X@>)NaT zv_nTRUNJEClFyS*(C=Bwe=ie0k--mQLLzwi<-Guux;Mc2>+GgrSTa*xz^zeVQRMCt zuO*S)!QQ@^kohiAKEKSo%M;kU%(%EU?a93xsg5K@Bk_U1A&8v{(LG2U}Y4hMV1q@WKf<2ol(xVQpsep9t& zfiK#Bk)LikJg7kNQ!p?}CF-Nt>0=tMVsU^~i67m6ZP-*?Ns{I}qaA zG`TrE+Fv!r^(x@dS03I(P1%kkN+yT2^SE}K9J)JiB>}+XF)GI~YbK87BzMdi> z+0@yc>-M4s8Dxcux2zF!O|{$kbmnn5S@Z72lRQ@aVJD?B>+)x3O7Eidc`}!sQ)Nv> z%8!n^-#GBL_qWT=HafAQicbutkJ*%H>`lx>7?Cm?2N#bM z+9aK5W)yJNd{@}tfsvC;h9`x|#V0A=w58LuK8L3-13j&=YoM~~Dy*OA@vg$yJO=h# z^cyUa!_CE0IIXYsyiqkp`r`!QofFOvK&Cd8I#wJ#o#Kzy+Ex>64BodhdNRU)_Mpxo zrdgiNcShM2B=P7&j|#CBTkxw13A6jC9rHO%uYj>-0e8DmokkV6!5~E%-<|hWfkz=j zvu`v8#Xhevn;g2=lSWP4Ibr4l~ z9&eo&nErMX6k0OkT<(9-cFU$ zQS^LXI8-?U!zq>qmvp-ol#^idgCq27ACXAz)v7g)#Rs-W_Tb%x)on1|UfnG3?g|o9 zG)%HKg+A>p2B%fV{AP!-B|1ooBmfmX75SiL11E}zht|WVa`n7H65DLb4Tf06KOWJE2vl`oX|-^cgOH}r z)F!U-MQ53iY;wIdm&1C-(%U3qOQ<(IDsY^=cgKQ@;}~>2TJ-&62l-CZ^OYXWsIfPp zU0$HmZoFcbbe0tq4)OddoV^v{`{k>XdHNC3prBx= zSVXtU{dG=$Oaz<`v1FN$1;%rKl9*Q^Esl`M^$8nEYyH^pyeLKEKz>K;WJMih(^O~b zG{#To-1da%O+*f(1uL#l94{d83rGBSE zK-YLd$Ns0l(#zg1K_e8;+vM+Tug{>@U%HWXXk&OZduGaYa{39_m661DzYw7ie}sWN zjG{UHu1Z<1fg(`92unu~%<*YDMqNp}syXB=xVZX^>L=k@t9yP@oQ;rNLUf=1MLZdP zZ>SQ}WB{&)Gf$7o4-Jw5lnx53g}ct}qReq6Eh6IWJbXW+hO`_A+1U>aB-z7?CNU&EWEFfNvXM`y zxrQ`W_+(k%IsjVIgE9;Udo&rEJ9(EjKM1uBhh^59z62dPhT2F`i+!q@@(Gz}*wq97 zX!{v`)aqXra~-2AhyG1JPFYZ6%ik#1bk4F*Mx5?dV&ttTkFy2`)1_vfspog9SG?Dk zTUy(df={32_P}i%s>^GG!nf$}AIS7kE=g{R>B4Kb*E46E9)5tHeXX7W#EN>gD~bcT8mp#yrv}&Y#?dgsQ5(Lc#q!1i2T4&w zXlsN=x<3spS+PssfjN{|m5QTv83#(wHF5H_7&m$Pi97B9Mc1)SKsZR}L{sKF!A>Wy>i5;X0bp zPzhsgdnL_jG?*PtHt9Hp66N!>cXs89q6UIlD$y64EJC^1b1OR2kREH4db1cEsGGgu zQ0RM4y7f$vj7j%I%nIY zx3>B{$@hOyca>35c3T(_1mqJ`qyb>%MueW2ZyVm?*@y6L_pIy(h&zaHbnmOYoI!D`J5gAtE@uv{4 z^&`X+ZxT9f!I0d)Uxr%l#F7)Agy5ae%^j>IUuXdbDZGgbYJM{xF@|%M4#LO_%3e7Z z2yw~xbOUj$l~?&gj{-HaI6|uT>nR&m()(miYVb=6`qS`lBVKOY4A{({guSzjC?>lH zi)^RAnMvB*+)lXz4mtT8*()&=mOKwBMcC(q1t>dUy_rLhsl??i#I3JZwqS;S?^?P1 z))=hWbXhNAtiyM5wr-P7D+|2-#xbwFhClLQ7tPVZr;U)sX)(Ei;cL46ui2C=qiM@( z37L14w(Yl6IM*b5Mat?o!qvL@vQ{>@;VgeFt%+p;AY^P~{dHoEXfl|%guURYo`Kp} z2PfVMP8T$3c;igiyVqJaA2QyqP-vbpm3Bz=lJhw|MQL#I6<_17%5P1H^DM!oPw3ds z(Tg~raU<=>%@QV;iXL7V9uG}6yf7?}EMCeY3=lki_wX-ST>@R=kLuD`uy>MGc z+Bme2j=DwPt8!8+&;6rfP82V^GU8q^5qG{^BfI+>4@H&^E8YvKMsjI1#fNMl(G2l5 ztpAF^-XBY%&&Pm*Qz8hhu&HC5n8AF3lZ$banQf&sN)zv7=MeeL?JAej`bQWkX3f-U z^sP+nf^lc*t{bkw?J-v5!CrDzOhG%ZJaI;6%M>vvCcb<-m5z%!g}y%SHMx~x;PV>y z$bJWjT@$W|j3vj?PoG)I7ehuxG=qlk2bK09>K~WfY^E^2GuYY+ueR~|7W7J}W9W2# zCkqP`wCD*}mU$ILR@DW6*&m~<`m|__WDnKxZ42edqM6@vY~Zk^%H|`ctP5U=u}dW5N~$`hovrd*lkY) z^d~%^0>A^|g!uF@glIUKX2VnaL>-kseVNz43bg-y0D%*VTS!pE{_afUs|d56ceKY` zfzc0mB}cfhnin##dji@#Z7ahcbb+-k=h0Zp}l~c!G z4;T5T!JTXg&@OKhgG@N32^aE0`pZ5wM{1u<4ii9{vZ(;jAK{ORDv@wONjK5j#`>!3 zMG0*KwM}e{+0Nqmg|iONWHvbMUbclvvH+l<#}8SdV))R~+v9~Fb=sP#sFP`i5b+hi z`|2&Im_BVF1K_Z}WB|7{9+N=Y>)1@Ru*S$R-_$e7Ao9YUF{t4;+%qSC`OHCYz#Wr$ zcOOFYBB*BV)&1XhTG6xz#F@m9PlgS((r!jB+d8DjYnGD!gGlhf_ehpdxAoUE;cYgc z7V?abOHiP9nrZxv?ih!^e)NkxZCv2X~87} zv1lT4MlQe_r4|gH#kWbS@0Aj)X*aIQoIK;>)rt^@|W~{wAWNzK;udmHy+;^I; zka)xP%w^z$1Bk22p?Cn-S$T#|&3%h_c{Yst**>9{=oI8G_hTNYX6@G;Wh2m(~1Yu{(vI^bHRO8xlHvEu~ zuDqt)dD0+=@8X|3W8t$ucSgHoXH>J$OL%Ddl&`x>DfM^;pJIPPqU&zoktlBDMdCDM zkEm^xa+XAa(ihG`e=PegK#a=$VL+ATY{}&UW(=@Uh*kA{-~2>Z>f4SgzIu_k(d+@d zkAd#71Aq6#%e<~A=Qa3<%6y&zZ6^UgU>ORze}suUWW7dUh_@p8!&>;_?GDP55Qz|< zkS~oZIKAN=>rL{9JVyj*34?sSU8~5eIPaFiP5A0*VSA$&za1}y{INf2`*yEiz8}U+0b&;Dad!PI{1j<)0=CA9P z!fWB4TH=n3FZE&+QHL^F;HZ`HVF^St@oz2%rn9co!KAJB?n{6SAOOM4tkRvJ*dxvY zP>dG9e`G>`IN(~!J=(ZpW(Q^NhUt!v?aaJZ|mQ{ErDdd{HMfttUmr9>hs1)WYC@M=#C%oeyTD&_0q#ESLeB@ zo1!ZPpWQw`bu>E*5bpiMUl7}&&0%Nm*ln}6-#nIv?k7JDMCuKmayp74_VY-t;|w77 z_CIrMT<3m>QYVTp=Ci!HfeUrzvs8=;!eY_$Uwi@fDf0>tdrOAqE~Vg38AppBtpucl zu3J}jI?w`GYTvZ`KcZC+L5aq0c%AC^RLMt^Y*t}0UAJ(f!w^?U0z?5Cl^4Rmbd+jO zkOZiJmjG`?J##c0*z7qDs6ck~Y_jWp?@j6H#uc4c1jl-DIQGT`#y-+sHl@z)%i_l- z7M}8Ve994jzk%*2PnP-9Eca6=yjt6D0$sEy$-0Q1(UGRwhD{0`B3d)j%Y2YwnKQp9|h)~Gu37X`VXXA3uLPun! zmF#jm36AdvrvYjrF|!Ih=x%*T)92)2taI-*V_vf3J6B%(ur_@nbMa13%R|Vs6dsX* zRjFV-&jhD#THt%Dj)Q|bex<(*?m)$8vzq93yk%T=CNFSNeh1=3OdZ0l_;y>z9`e+| zprgBF<(b<1w8p1R@sC${^4RIB@FrW7#iANFe4Y9;kYY$4#9xs?%pBi?uSaXssQkJ> zG|}-LF86-qMFU*ibHTP7>c2Th2TSF;z9eDw|I^7 zA4UO}!1kEIxGK?Oy2yv@V@sdyGcWogyl?}k(GXzmbjOhwu>2Rm|ARy&Mo)mobVC^% zLSwvk!|sF{(!MzU5F1lml%RN}>Cw*kg7L)i0qG~+-x_{=3J)N}XOaUNImPD58$zFM z9TFM{;I3{EF!z)a`+ezFl>c z;v^hHQdI^|!o$t;_%kjJ{#;1f>+?m%$6>W&YW?tNV=Bs`SB@60R9}=a-}n*_TBHA1oXrzHyDmZPu)MA+O_>d4}`S#-BxiCS<&N*k{fA$`v9rFYqSIa>=q}vZko( zcB-*WJwBIy*4>NMdM3ACB6D}?zS=!1+t*$&LFnpUf%i^U?LuDdLERDGU~&X+^*4wc z|8A}ZPmFp(>6}xBL;-zDr-K{ef?zc(Y0Gf+(j*d&4n_JXZt%Flckbv939l-m+(zYV z1O+R$7*W?0QQn%1H%d@mqjB+@p-7}`Y%2PC_`@7+kX_A5&m9IMI{nRk8>};Dt>Eki zO|4A#>G{*N!xPDta&A3jRGu&f_~8;VYZ#{(T7?ZukX!2DflcK>%hcn zzX#D1@M(~SJs+UITx?+bvCiv-j_&E1bsGJdBEPfP!!wK)i~U<#(K8b<>Mh(EjBeAO zf$bZ5x;4D#|ID0xw?Fx@NyHK1?+=L|EE{&*T44RHN0VD(m}f#Z_+(Sx*<>EKwq>qU z0bNN?))H;>3Ztr7%9XB3@aW%bV;)(i8S0@j#ou4rz&yRnMr?-r3v_+@r`kd(Sk`DD4MKycz1fak3aVYSwSlJM01QfQueH#$h6R7 z5xN~sTiOUv#FJI$`w?7Ac3W>k(CqeGt(zT5kLPAPlD3Mk+;EyDqBqmSVj1+XFDjU< zi$0duQ?cY;lE5q=iZ{mLUnKL&KndDAglL_L$X|tmfCs*Z&4P!IMj%IvJ$f5MwukdO zKD)-u7>&g!x%w~hDqmBC&Bqodb0AyW7&FMdec z>rIS)H}$1Qd?!QPc|Cfc^9`@4*(4BxJ+bPXW$@S8sLl{;z+FYpqCGmSsQ{O+q1 zu5`H;tI5OQgO9%PS3I3-4SK|qwDF7?y6}8<31X+!@(90D86`u4yePpYqD;6@bd4Ut z4NXxa?VZe#^ibf${Wk($t-`voA4SXXt2lb$I{tnd^TC3b&zEpz%vd?6YLe8s7sy-= z37#I2lLY8i4xwf%83Od@)7=z-c)GQG#+7Wz#1GaiJML)`qBuKR4q8&JE96vvM};wI zPY0fTfqAVzUu`t%U9`1pe($eLBd<*SXjA-Xw?+K0FU))J!#$irv##N)qpT=-=z?mYDb<5S?<#JR_1d3bf9+uVoJ0D{S?5~55w44&>f4DlcQ~Li zl{ujnFlX%267tj&s5m|?(6P#VzU7WMRzsnnW)}a@c>Rw>63Xd%Ut{$GN$=v*`Pac5 z%i@%}&2;i^JvlYy!%m8k=@dG?Yn1IMVS20su`wvcGN5>S*QZEH|zkfQ00&60P61 zpCB|Jjf1aa3l@V~{h}PIF;95*;19C%Dd7h%qMRmc5nF-aeqt5h8pMX#5Cw_y6$wx( z`ge!U49#rVw-8_J$&J!;+#Blg*&A;r-@_exonBIcQ*E8M1&?BB2vm0j)8B=OCRTg; zqk|nSHmM{RaHR=U=ECj{yBTIwNwm@IZiYfwU{meT!dku=cU}->N3Y)p6UJX#cf( z1INK1*Gk4eY9+1vX22rKSmEEffK0n6krbEk@uK}qV;cnd;J4$V4fcazl0x2tQY zHcg%#!s%e+a*hb_GY2w1s!k~^{+WL28Dch*C zK?JLsC+B2RfYl-_6CgZy5^fVqytRgCce}m5FB2I;CQ*jz-P(K1Th0B805WnV_)jHl z$;)o=;o16m0;hxekVbPma$w0h2b7H&zq0ysg(zzR!6fQ5w-=#@VSF8D^Iu~4PY-^e z=F7sUFg)FQ7S6ND;I!XN7jdnHm|F{tujp%oCk`=a=v7~@ z9Q3Q>e8GH)@E9r3{i*J@IGeDekK5{`#4{@^xtZE;wdF3btwatqEepUatL5>>c)DrN zJ#cdWSYf1+&QwO@pcRur0aRr-@O~WaXeBT{GPWjuDFlcI@PPW>?j!UlEM=J^)nOU3)i}**%`Uy18ApYIiOpxN+b#Ki3DMP`zx>b z;3{$A*YgMl${u{}e|w=Cx8w8I_+hAH6rMd!bB-GLLmaxl@K6_^hf?O8Yv;rR{8R|g zij@F7TM6Z$&J2!VKVZukf_Na@Mao@Il>mnl`)Md;99PgSkjrHDp@K&uj0n;wy7Asg zW(`Q-@?HTN9`0whI*1mY)7ZT1GpMsgzcf4vq!(;}b|g;VRQ)iGtc8M{+a&T9M5Xk% zpAk1e4j;mWb4-R6cwBA-fZ(GAoMaThza#uuMlc%Zd^c)D-??bE+LO?iCbj&2tJbCXA2 zbx&o*1SHen{)F3sUW03>3B*}jS@XQ?dG-A4+v1AH8Na;w*u`-BK96al5!GXz(E<4* z+W+4Rd$Ol`cP2bmxdf+Nd_Htl9EHZ&RBYux0+DQIEMj?s8{(u037xQzD%?d~qG~G)`& zbyD~diP-8yyaaFW*T~r8`MF5`S&IEV6*7-_!fwVJlw`wnw09TKQIiJTdV(@}xmuT` zcMnPI4n6tTGvKz12c1l0rTjCX(8^aGNN0Fz48uPfr=?0kb$I?fzV9^bVL zbfYh1y{?nqEI=U(MSz*|DI35%49WqKMjFUlH~-Hs+%Z^#ZX!Uo73-PfC~oHwu9dmp z3nM`F()gcl>|%JSR#?BS&>a=PY&CGEG-W@)RStiAUF4E;^;bs~Xe__SaSn#SDRbg| zO8(@eu*ez|35#nNYRl9Z2{(>S5QR;6RaQy9;ey6YwJE_Jb8hr>EGyczt;Qb`K@j|; z6er_z#pP7;dSY4VJQ%cz)VVzV{%1Bpv22|{! zQ*hT2k0DB=LI$Qe=ht4j-$(A^piY4Ht5UgB*=|#_xGl1g6vPM_mR~!pvaQn9R#7Wn zezFqi$%j5_)La(UxDbFgnth9(2U#pl!$B3*| zB4JKs>a2^Ua<2OFC@n9MTM6A&G@SPq3|w7g%9+5>n54ieo8jt!1M*E-&KnWR%dGo- z`GgC^u4&k5#*wG`Lx)v^5I@ST4gN2mL9umC!*kxB+O$6NCgoO_)vQYSmL=HwFt_6b z_q!}nfLQR{{KmRp5dH^B9o6=ib_wg8BA21>>dO_(Z0|KV$whhlE?>r_G;*>l= zfKFF%)e6hS6Vu;3*qL+&N5)4U(NJI{?hx(8)PO}o5b&=79{JP@wn5N)Yxr5j&}?r~ zu2^nJErplMmW;PW0SwdSg8#j0{*(`_^*X-q8=#JY3{KFz`PLN4H;Tad;~X;CdCF~h zEs?xiFm=|If8D7E>iVM7Yk8*O&f>`%;t0nn>l!ab!H6wJtBM9r0q+LSDP2DAeTt_j zrYd~6I#)8^?#nYtwj#58nKo(JCl+mgzj{>OyvI8bo*3Gawqc&8CMH=5SArdJZO+Vo zS>|@2193gd)w<{BIdJE9iH#7~t+$#e@lieDrs9FhZT>}NH8V1rPl5cowJNI}-q*T% z5Uo<$wiauHNRHFH9m&k=1}6=nAwnLR6M!i2-z{SWUb*tI?8 zjCe!YFq|X5Vf@M;845nhA#}e+RjWGU+V0iu z%$xI(A0SS~6XB>_n_+?_|9$doudvwpCMmMhmkaWyESHzhgD>$oSXrCS>4{BIHfP>W z$udVjIS4mibaBWN=|m`LeOMgDn&g$XQstJmHq&c;1oMb9?_!<8l=wW(cPN3tY%=+6 z&&dqt>0tw8YP#E?UM~T#A6j`Q^~TJJBr=5|84O||;l`uW{S)ussc-F$uJlzK^wX;y zKF1w%+&i<+uq-zlYoVh8^0bSkQFuLkvn&E!%@kY09W4gXRu;HvOu>;k-mc{6o1*4w z$Bm=v+W7~e{Z3?{WodbaQjE`4##WkBKMpw_*QmHGW`Rr>aGhSw+wk+>?400>=E6Rh zHi#UW@EQ{zj<9j|9QZiEe2Ft%JE|zOM&_Nf^1y^^lr2c+_rA5&POW>{FhT6qmVll2 zH5IYqc@a$fkJ2mCHg`|NZ6GYyw|mq=#2pF}qZl!~#VUI?g-efYjB=1~`ZpgyafgXO zADzXTU5j(46|m1#N84I;jKe`iM&VujC7Kf>_q_s=KBCITmje#eFEqW8x9M&NIe4F6 zloG7cXvl^vUW>#jl-EJPG2KWU9cSY*Gtcuu z0v}`aN0O?Ii*C*{mFmHbBr7Ow@_dFE5%GO_U-G;QP?Ckv)-8>i)@^#&MP}X7y;U(y zhpl}3u3X%)*sKLwd5xltQXWjkE%CT{r=1lA!4EvLY{;hJ!_Tr&xq0@Fd2-EyopIV| zHBy3t^AenPRF=20H75LF#AY%yox4hF2Oj4Al?IkRZ((hgdMc~(p%IVGy(?RGEa77l z0o*BOGRvq2!YG}l-ITo27u7k}q7%y!mHQ}@X-?8r1vb7(=;T~{BjgJ@_kGJZP#?8~ z3+Ud>W=?T*yljskGKpiQHY%+UnxOslSl$KNy%&~t1vB8mChg+*MeW?ieZkvlF*V@~ zkiGM!`lw8Lzp#~iHJYoFodvQQ4vynyO^l{Z3zjVumnbxB{KkWH!sdglaHl1xH(Qz& zl=pXrB8s5a@vtkTP!7?XqF$g}!#(LdpHZHSy-_Dg{*A6IR4{VZa?)h|25s%bs1=jh z>~5$UW8ZG!Dw%eiaoN3cpdCE6gPws~u)+e5yPJ^Fk8>`pU7VwBu*a(nI`&J$6$WZajR>XC zgs%P^5&k^L=>F$i`?^j#v3Sz_fU9|Araf#q?oy>Zx0TdVoQoTG7fG}*yuwmV;kY8I z?uvR*#J!wDX=l=<#BQZ*%h#SO>n%QiV}4Ibd%Hwy1^4gLBzqxMZF+>IZ7zBpiPzp8 zTTXafnWeSNWO4Ay<*xCU={vhbK}EVO43DSQ$aCc1+kn)0E5|OZOeJue3$9A#w`@q2 z4Hq&wet6>MJ~vv5STcm#PfOe?i0ShWCj$3J8+Gw>PQ4GG9s8P&WF@=K6R2+PFA7*{ z)(g`p%(9lb+;By)aVqqQ#^q5cVV-@U6_1DNQz*vLbm}RqZ3bHEJH+QoZkljuYxj-? z6#2)ptnU~;lg~H0HKKFRb;Uw_lRVwe!5N-oUwmEd31W4ufam=8uD2o(LD1leyMYd& zwkK_#`O>`sU2)t+D3 z1~<_Hr%2eD2PH{n`HQaxSy(zHlert~y6a>%A-K_UF5*4jNn4eoHi^pX-z{N6i_87w@Wk;HRk|=b#?dY8Xqm zSDMOyweQtZ(6;|EmSIR?!6e*$V6_~^9I{Q{nH{3FS*-tH6LQ<35(Eo3jb*qZ?LeKs z1QU*{w!Ci8Vs zKHRYw-Zu{&S-+JmA^E(Tr8hZ-d24B@)!sS6sFR~|4Gr0vF6KSZ*o-CoRzfRZ`vq&t zBzg(T`|OcGdG^~I9e&a^0UuCDs9H?fxNXff8>@cQc`o=_MMtxDOxLdOSS6gciPxfB zeZ_yWwpP?K3xmWOD}Io_Af>(4I)~hv@dkg4c?Cw{4l+(}ku2kCFn!&Dt}WvyMqN_* z4gFGq??4(!Zfm)N9Ba^q>ntLY>gqh4B$MfVC9tk+%mv{0{&75DuU^}6YNEi-9e}%#>)wt^Grr^>-{(QEGEO`T! zb9})Pv;kRPNI`s3`#bg0oB5CQm0%j7FCMC;TU*V4p5atnt6A;LbDd0zAE-I1#<6N< zYaa#6>-;*=j}p3zOJ9uH)NtwIfu_yomudtjy=7{=T{`uctE!IH#%*eG5avpiUNd)F zmZ`ajkmkYJk_cB62Dv6mo$L%yJXC_^j|>>Dgxd_gDOKPC3z%%p&--ALjFC%8}%~~xg ze;lIWm~5mI-Z!B7K7rK=pa>}X>9^A*#Ms$D z>Y~w-cbW_6(qJ^~%#CFA@0beS2(u9~W-wlxB@~?Tva15>?#Vfuh8n(BH zJiOWW{6>e8>`cNGfjiMCpD77VuXV$tKe)L^ z$}t?oDAjWPw(}l+WAf|>T#d~LT}r{hQ_-22|Gv@B>#>cGs$tPxf1~vHeX(iXSQmhUq_xBC@-4sABVo!!7 zimcbm-u==@L>l-vQ%$*@Q=vFIHyn=N#UbRPjD4$Wy(yFL88sd;O`X)%kHY}`qc4*o zgdO;P*DMpbIml-v@1<6>hJ&}XV%r`JD4IP|DvMKApJ^rcFB9z+Wz%%pxid`6Z-Ulw z(v1z$S!Ne5{+-VyR4xDRZ^Gm|E^{6lZYLr3ZL0@?mP+<`>RWI4TM=;;mT9oTLN$m! zn>@8l-=R*h!dZ)DMpIC@#c9FGeAKh1_<0{b>i4eKyk1t`>tKFwQxFT(iLU#34)H@( z#-_m92#{itLk=ZJm{DGsPn?+k5XX^p9_}#hVmFi?X=GCMo&6U2GvKu0fZTZPbSgcG zULl2hz!Gh`ceX)cOXRtqrkdl9g?LAV&67=PLUCIoF~?Hu8a#>naY_eNbC07wW+4O-yb}gQ2Rz^?F*$l zU&rIHrB}6R^yo9C@{My`GJI2Vj8dVw6|IbnO>Z0rHT*PIMxZCN`fWs=p``Bqmif(B z)TKunsD|QGFCaF^OrP;PvAp%_WqyBaHdNqxI8E723#;y#SXam5SQ$REQDpu4(tz;x zSj^*qQ8;_S0~g2Ji#f2{7k%uo!_73(dmRx7#-)|6Yo65&Ua~8zybNgZMQE+Vt7erF z@xvG>W7AS?#Pcm~%zB;;lN4rls#z5^oo#bS*O^P3;!`OF$2x3Xg=w*V&s(;C(VTwU zIo(4+jrB(xL~fDb(`R0uYHYT)u23(q-Jn@>$h*p!_^jz{tXtqxndY1bvO)*+&ZO@J z0lHtRn<{`vWPoeDKaaSR5#(ccaW-3q&V-f+9ctb>q6Di$Ty}LjKN|qk^83((>$ilY*U8NTE>uQ{5qF@6b->1|7#VHA@YyjaV9MGaSG;Pu0=w5E?L3;ZGG% z(JbvA_&lC*Mf>pcoN7`xc;A);!5p862kk!Jv3;qiyus>W{!(I-ensO_n#SyG(&&K7 ztwSYhH3b#EO7Yb+c815UI=j0Cey$EX>RTknK89++yjUypP@_C4g1-#w-lV;YDM4`@R^}WPXS(g$brf=(Y4aaa1;lTBwGT23j zmUfRYZmk76$o`1Bt^=ix$}3__Ha7!R81puBw61NMOSa+G2nH8-q`G#SB3|kTLFW+z zuHDSn3pBl>m#qdjJ`7)W?#a^Y#u2?qmYwQg;cbonebwCdiE%>#bL>0$+&h8mu;*bu zrphu!aHKi3!`rEDHO<^xKes6{f2p&*R>ic51jN`xA4GTzS%6Is&gw09G*$2BXWabH zU`5A1eV;pO8+@+K*o8_%Byml9l{lhFlB01xcRe?C)13kHA|E-MRWf zNwM@!@e6{Xk8@W)rjj>27OSD!gz6fn-8g+3#19tN3`u)WSL-IcCV#Z&BRHryJ3O*r zm=9?kQWadR1XcA%f5=wsppoOWIJkyGk~s4(IV5~FB*O=<{IcG&GS3dvFfsbmyu7f( zX2a^v7~8j+eDz~8eHy>8dgf@n$qt6)7kCF3BT%-^9a>`SN6NxoR-p()8!R>1%J__)qoXy{iAh;#pikUWa( zjEDzqxz25hc2cF8LN9YFe-rYlUq=iKalb-H$B3c=kEV>Sd}RpI-kW>Mid2^$uxQyw zgRBN)Re92!lra&+ayKi5Yfr+Gj2xbm>Ib0w0m(i-Zd>`unwMVIJI;ZaD*d+~K!lqbA@5 z?-A#T?H(h~+CY~NF_EkH9Mcr!a-L^z#UM=bgaZSwBn4qmt>U!W0&2llhwTkI#%YmW zti!Bij%GHnmaN?CtK(f+&htH`gIie|?<#Qq&Rba&bStzz3VJTm8+(&7KKJ<=3oh6j z1qQA+STHrUN^^N*$8q^}`?5MVL(lCg-`xQr80bVz!~+WFlOo;!t;Om!8_>`3swV9h2E+FykW3 z6>}mE)TmH&JTRdX29|K%G87QZUf)TP3a;q{@qaDquGp^vsG`Dr0WglZcx(cqzmJ!!1K3vo; zqG)L7Jj$pSHSGFhz$^N*T?i1(Emgmu#O`&F}Yqw7pyI4i!6cs~x9cVHq zCrB#breKy#<%XB-k+jF{1MPLjBNsJrI1ZV)*IlVti$3TFT_hZ#-o8tjK|DHR=X8-Q zFEz?e)k8Ax))idPEL*!<<{!E>XO@i%=tz2no5d19t?8wbox&zggF2iOaSef8gah!eR27eE)nKUAA+uG71~N$9pva_mZ>U@DEdA z{!0Kx1Kj;k|LIiVYatl5U)oEWPdn~bq$&Wy`)dC6d!5Uoe{_`ktwtX^$0N1NXWj7& zFb`w~)~%QAoX*)47j+x?%NK$h@bn*>F?Z!(wuGYESMM|wrg;W7{KaK0X_7@qe1 zC{z8{YM{V#q{rctB42b)Es{2ywF`-?nIlX;A7}ngiiiFm|M1Eoo8Dcjn0aHk#DzeN zLgz}$N4-Y&j~y>RHTsY0nIMG64)QAD5`90mhipRIi@mhTq@>5uv0?iY^HJ9k8C0!O#w^~>9!2TA9Tz2~}=?CWkxc6*W1W1XXp1Cr(Au(nsE$_tOM zwdA!|nM<5P|D=?1>}*#;mBh&CuykLH zoy1*bSXi~a?y!f$>`!c>6UXfj;rm^Bh{qCEJa3sjO!DsRBBxivU`R`j(KsgGvJ>8O zPtatfLKB=5Ud=U6GwWEd%*DSy+S)!Z^2xfu-0^Ka5BH2oz2i=zc#n9pZryYIxVXa< zk^E;L++NDBhdl(EPQtaBOM_g}ilPT+);{1n&2F~YE=qatGAh}F`CUy&)y>;Pa)>TuGQRXqm<-$bcH}X zr(jaw?YpOc;Sn-mZPg#IE`O|nT>bdUOgb@UH5C5aj{c0?Lywznm);T6wvUx$h`#@u zlE+91>4VX5%121Qy;Xm1)2^QsKAryug&Bd7AIIO{+Sn?l|5W5kBH;Y-ss|$Duhl(< zqD)kzOy%Re%YbYQvoEdXo3l#N(r&9yHe(om=3m_J{+bQ8DjxdSzcEPNqr!CbO3P6` zdi_24}v_>m}O)OIbK(zM*6#A1oAdp$#p&Rf0A?hQ%Fzz zWgUgWe^RA&D`dPz(dJ6SKPg|1xvx!xQyD-1VOj%UL5r#BjGop9M_H*by0k41wyaKi zd@dq)yASe=3}-&^!^yRA4ntMEX@AJG6y*7czw)TD3A7F0Re9jV(|ESTPtvK`b!A>D zzk|mZ4~DZ)x(nvVrMV1kmV2}ppM5I2O#XFp2%1ju^FG0R3&wT*e`~a`okQcAcP;uj zLyL2o_N{P^yTLJ|PAj@9-o%_+AM(e2>R0WRHX_A07v#s3|B{y^r?pAlcDev+WyKNN zlL-RH$6q81Yzm7i9s?3*g>u-Vo8jG%ye1}BrzCydqS1Pdd1XJT2@Y=N)!=c<*?JfE z`*wxur(g$bO^LQ5u2o2M$J7LatI!_TO2%fVEW4V-@J)*k+_pk!VOtght$6Vf>4AOx z=q}3u@Zp*k*&os!uZpg|^sU?T#V_5S^eWSutvuqN{aq8Ad%iB7o-UOiJmg5;R5rbA zn9MK3Haq%kFKV#zM3K|Qi}Eo~bDAP*=lfZz8D@e=B^Y}LFH8omdse+juP)nN0OCF| zE)q~PP{X8|4v5L&^i!J&AtI=N+jf&^^F)VqMlP_^;%Pc*z&iPErkwtFgcO&LuRM+) zH<%vlF5^fqSMfg3TPxeOI891-z4#MVGNm*c60W~5`VinbJGsWt)hwzj8_CFh)w5e| zXZTCyTKofpra~IUjUvO)dE0laK1C}lyS?iJLXs-3Ps&G-yTR1!5zW zdp}brp)8@q;=-vnz(JbQk=2qv>8M7;^{gJO`YUsI_N$DOc%{GQuwA%6_eX#LJ#M>J z&Q9mH4+WIsd9G}po-TawCZ6@tNsliP)|(7;$dC}eBri_7cEe2Z9CK}7b4}z}fx~?Rb$OXfnS$EBlVZ{Yz zMJ#wW^7K=91qs3N1!bazXrVRwUJ6NjxU-oKn@Yl}kG6w@o)M-9j}{hKH}QOF8SH;= zb_v4dD^=gK$vEl58frwmK}&4rxt^!jF!5C=R6)l<>+mW?eM{@uF43$Y4?$$HvJ0|> zN3=b34Ei)^w(9XQ+^h-gQ9nD7Ij4-csPg2)e zG|3n3HXLa6o{o+2DWYo6rEr?)36L`zvOHazHeGD{qI=zPDvjbz{|I}bZAjxZI3!*> zJc+70u~JJ!MOnjg=N||?dYU?kdZqG4uUK+cNHGBAmWxnoup^jTEmTHHKPu-e zkL^vCwSYyLa+Z*FDvWri{%hWVPItZ{73b8_0EnCSY6r1{Cc7oYe%nSv>R_~I38Gi_ zT0nWd`GLpVr{oyW=-UHrgN+Y!;F`gR(h^rYrRNGcCPSY=E>!`LUROrcW!jDH-{N!Z zM*(IzAEjVzMh7iU-dG)S6^1GR`XowCFP^_YDk${v`WZ%*0XEtZgG{ek^Qv!EA@sa&r~-pXq)Z2epv8%d)9|;q;iBrQa8+#_P@wA+B`O@vR zF<;l(W`=jO%I#QV1?rFRhq|n}(|xMaWE^dHcu|SE1Ip==vj=z@yaX@vsCmd^&_tVI zIEv*PrcW{F$z?6)rOM>$jyJ0SfQky#DX8Pq;Uy30sPmjsw>xB02*D}QZgCf~${Fx$8CX=}1N#z)d zefr<7Ua~ihPmc-^7ms4H;(Nk)aa&Yc(70A^SUBN?cW2A!W}~>vN)OR8Ec8^HZ1iiF zPdgzWDp$BI@I(HA2QGgx(SB8T%Gpc<+0ssUJ=egTc6MD^Dzo(({p4Js-9=f|_wAHsNyvDWu|lcwATyZ!av zmJ8j*^f(8P>U4XWxxV6*xVttd4U0p8bUT9ecUF6_w9q%a_t)sUt5d1a3iJ-`-7gai zq*|+X3-+#_o3m{9wJI#X+fDyaJ;}a!is9rRndjrChVIl_{cG1_#j!5x8gP!(ta4sK z2S5U4?g?XxW7WG9s#M4NR9xtGNV0CG|>@+D{I@XqyI$n0?SRJchf=1s6 z?eXg!3T}sZjGQ{ja14gLhJzuH`Q#2Am-3lomHZkOU8-jpMM*FmRY}deLrAJqKcmKs zOSc5I?vkqM=Cq#j%K9NRFyKy6dDS>Dvk>etcKrIj{YMwCcwa_DFd;`Nr&% z&@|pVF}dy0za5Km??ouwW`kWNiPi+5O>WD0bR3jKTF^Tr)vzx~hUdovP&k(y6X}c3 z?jL>8(2v&A?lv3Q&j_9A{)=vsESHXCnLKT+AuOtO_a|ITEK4v6&7+}`svO8-t1icwS#E($$3(kd%W+e_6aG<5`RZ^ ztWjgYYx*AZPJ{Gb1CNC3sghay6UW{V+P0aIJN}sm2ES;Q>35iZrCWdbf^T>5f$9T~ z_FmIVhxIk;TYq5}`}iHyUktoH|B3m=c*;rAfS>osPVSufp|^J5ehVZcn`R~ZPDRc) zQh-#yC5Qj^UG{=+EId`b<0p0Z=eS3|0cjSuHZjh!ieKmW|t1i zG(qsIcbHSO!j8Xku+3aKagS(!_)^4pb>#iQ29?+io;%FD+BQarZm>%?;|d6$Pgx#p55#X5Dq{Ha;%VmMnM z5enaw1pk6S++^LxcjZ9$V1B+^deu98CtKHOr4YB@v3s~6QoCB6@3lGyu06o`vd@!` zf9-HM494+zZ=58}pq~Z0srCJOu5hM;XxGca1GgqcI(iF5aUUXtck_N|8T?A=iG8glkEL+mUN*z`TPueB(BeQ9hnshdD1Ev43c}sd#I(C!%G)V z1Tvfy3om#2i!IxJyWNH)(@&vZoY=3Y9N$#OZRH=f`Bv^XY>w@W`>rxCZoTyMnZdD* zZPzW}4(msJKxaD{rT6elJ7pq!S2l+!j~1XyLzY;zD$-bW(Jt#{(>wdDdI^By<<)?f z!^yq$feL;bLBZ*1E`jB4UC2i`{D~h%LGDZ!(Pwk>{jS2&-dAs{0}OM`9Ne^m*eSJB zsC_WB9eg`I%VoaO>Uk15eHfnA>$?_GwISRY7y>FeiQ*ktUAhrM<2|pGEb9NfF=W0iVsI z@6!1$>~G=@;kccIa<9%SzF*pi6PrGCGb$y+$y~Ek7g?30=l5sQ*Ipf3 z*=ti6XMEyg=hx7r6X)+!4quZFy}YVHYZq)8IwRV6YHhktC8pPWtcG>nw~po53Mtvz zr}X-2HNJaAdW+h%b~bRyYr$~I1LJwnP@d@S+9|bFzmG@({H{BnDpipSZ27&eIXiaFtJ<%Ti+bNQ3u07io%!BxIdrA-e zc_mJBCOx3q8ac3lbWj|mEBIC==dJz4lU0~3znYKi?C_+m_@DMiwB(ea^xZQjp4N3= zO3s}4)ir)SM{&Y0?L**AFE@!HV4&)m;jZ>sS97%<@M!w4g zbr<&;gox4BR}Pakq`FgfP#n+^t7h*!Q&;PD;R@rJAWYk5wjnRn7Pe+KkLHY&)DW!1 zstJqi+mU?JQZPRSNI*Pfy1D_!E+7Ij!%g)!N8=xiiOmk0?L8fx?K#WP+aNaH=BQ9U zD}KwslUpNJrHR!VWBeG!Ro{}=I^l`)W|d-y01e5AKZIY1A}!SLsSJ4pNPsL{lEcyT0E43|@Ul;Cj=U#dc+TIDR!gc{qfeM4$ zGl+3XuRl}|vW3;GDJNv~>DI-v3{lHP8ID;%wcg30@%B!#-U*+9NY;%f_ODby6#cnr zaNduUm|VVu zVY*75FJ{3g)om6%gh+3?Rev;-+w?)SW*5 z?Lc++jR91&$3`=d7A9LpBfD#+^y3Fo0P!*33q2SXIc`hm=@5kE+45@~Pulp^bIzxe=V0`YPwX z!ltb+71(rY!HhuXy$S9}V<$qCkqK53jqu4axECaDgzR9`RndtN?&J?RD}&qk_e5p;S$O> zH0GN4CQLO9XCe_$yA>js?Vkp34dr_;jOxC{&%Tbx&rpQZRJG*V7gffzs^sY}-1=wgyURj>H-KD$c8KD(@^KFC^x1YXf_! zCGke==q!6&91E`jqiYoF>>L@f`BFENhqSqFFL5r`$fV z$iy|#>gaTVi7|oNaa)6NZ&zU(igvys9;59P$GVdH9F!$s00{sw$$*$zefU8ZLYY`K zfpC5(KLkN-ED-^{R6?zs9yi)86W4pmwZnR^hr3j6HGMc3rP_-%m%l4o*jzwwn*LIe zC|d{hK=LWvHg=Y++Z}cth2I|I!qmmF3^{^?IR+&XT0P>sFpQg`&X6gS?(3lsJ+=B| zFa&go#Dc9T7Xm*?FCiwzF|m?nkUxZ<48IrB96wXRnAzkp?|FmVTvI6f0#xF;lbJlC z)`D`nVt-ho?o+Kc1Poi2?a=7zV9GyKDG6&!f+1a`#Ob(iU(B1-9OkQCX`#!otI%e> z24s_MeDn|uZ%t9Qdk6;As>Y-t^Tb$i-V5UP7^FSI9H$mBUjdAxew+xllmt)X;hynT zT+n>$$fkl?&e>%A3dA7MMF@y^W2c2=Ge>$My}2u)@6l5G?xwoW^|wozbp*JvgEmb4 z5pTQe-)gIIH2}jO%#O6b-D^6+>&0mNWF20~V8}2+0G?iWp}EBF3hSB@Y)ZJzFwimL z7?qIKDrhYE==uxl&I$^NlGzt>pq&c5>ox{7Y5?VLMxvASNfMwxx10o?ZWf zp}J!*ugWtz)07822&BvB?GbK< zY{LAB6NhU`vNGC&b7k=6&HE$=rh|A0SGW)UlvNZnf0D7>G!7F}8G~vK=1Xh_of~c$ z*sH-ZGM2apYI!a54C>y0v%&Q{c$e|R7(ZSr3!GD%oyktfK;!ng>c6;}ZufH|gmH+L z;49L&v6cbvSf0hXsuAJ+v|Ni;FFPW;VM20GhT;WoC_j=VL;(vBcZRnkHROxZ1Eo)q zk~UPn=eOcm>KGm$6g|yeqR{u6YjL%~uuIojYCD^XRK~Og4YDZErh&Au_v7c1TgRIL zju1;d!Iz-C2e52j7N_X@%y3qFh!MMjr)GJ-`EYR4Nc`2grnDBVzE%0gDb%MHCax+s zOe)rK8vwgL!6aiT84V;SjA*~wYD$Qt*NkRFD223Y>MCllFovrlOK*w{&5|L6<;?Vu zo-LO&BvA0dZ0O^TFo8%&f5aJ7No7mAfTd&Kit%t^OSu037~{gkEP)i0WftIpudasH zCCY&o*j$^r%^QqP%IheBsG$bHBZb7m@pz4VSaMf2~=x=^*N|f{j{c`?BorZ zUMy>yD|$iz)DKK6W$FdrY4H82giPPr7+hX(!6VT-en)5wi z-gzz-T!w95zM z0x4WCj_*<9`+;2G@Q{3Qx(BZ2^C=azTh&r)B;QC2Dxz;kqToh{hzXuzo+|)d-tOU4 z&QFe~(^Q@SBGSmXn<>O5beb%k_^M}jsz`|8bn`)<&I;JI1H#$WQ~K$-NT~UhSnbqH zK5*#&rtQ8=V{iwcu4SilfhLAoMuEltrA9iVNQ>kBIyG!iTaK~ESQTmI7?lgYZ=-cR08tsE3TR534N4HhOnth+s&B~{oU9xdXT+uTCb3c{ zY9OC)8|LO1VGWy5c;N}6IL1+7&B0R6s47Nz`wdeF1!-qQynH}= zh6aM85bze?nrpzZ9<)A{RTD06)zI3?+u4-^kW8TF)Qf2$*ar^)L`cyqf^&jxyRADE z22Yq~(*l#cb-FG=j%(ti`3>=i904*%k;=8JPLEL@f=Ke{pV3la?+lCa&4L zRSes;@zyIf-S1H3Yg?t}QOw5Lx%-OKa=;51yj5@a_MZ}0B%`78vKheLLW#KBX)y+b z8!~mhvpNbJyF2e6FU;Xmq0=2seb+IkU?J#Ob}UO0EJ935Ldoe`s=h+8Tq*IzIt!`e zac9{i)Rk^ZM59@^3*?d-qY85FazvOQcB*2?!&2sDi&}pp8=LI$Z!XN9?Y3aL|A=G4 zIi@Nf9f4~LX79YBhVr-*Zc0+>)@MCt@QE_SF(cm-&Q=Xadw6qCgcRE0z^OxQ|ufgqg)DV zU#bnl`HPQDJim8i6o2)s2lxAaTZqXPQvH5oQO>7aaDgB9?>c~exbDnPNq=uB*aG3B zA+JjO1$gO>(WbM|iYKT$+5n;kP|M7?eyO#PU5^C+8Y9YJH=-+4lpc;LZ`s@upd$IY7q0AVux{aAiYS*lAH52rfQBtT(P2U{mUYf|0}OeB5~?{H~p# za~YgKji~lqCo>le1Ock|UidqGfOQir>(7Z{z-y6B<^vRBc|GVA7Mf+hThR%MI+veU z#2Fd9yr853LGHh%Tac|;)cgbZb?B%JL^2tZ<Biooc&9Yhs5LVxb6FeXYz>#xS?{ z+f!p_y99Ox5Fi?K+k=3N+5}$ZZoaoOOlfEY4B91BM3f z+J{(R2!rttR$*Lojw}B3>5!vHno%Ref8)uq^&PZyM*JWo*x?*zE}tsyy*~>J1}6^B z3VX3rIGRX1|IjkAgec1|{skSwy2xZaKS1g|Y7O!{xsnzGRQdX4P}_M%(5gy%^Q{~t z4s|QXDp&^uC;_Q0cXI;6o4&>Uv3X3lsXheD1vG7OVRhk97Ti&w3eu7(Z5^;S$bF;^ zQMj8`v{aE`@G)oYOewRwOjOBJJXKP9 zd!d*{5V3rYLgeKmD`fsR)(kteuw!YV-sB0N*%5$pdR}RdmO`@2a5YE_7@DEtObSR! zvl$vZ-dH23kM<(W2_KgA!s6y-AsI8Xw^*;m>%HSSTajSKt&ncI^H_2~X0E2RZ0?gL z-13dB2>eIr?9(z6$*3Oj7<{81?3afL9`JV?A?5J1K7J9WH@p_=RbEx1mGnGlphY+x zd)6r$pNx+9e2Du{FKTMPQXrr{3{8zmn6v^23!17_(K$yJe#0AD1~&|Q!(2PLB{TK( zF{%m{d)pZ0NpkXPSo;2AS#p_W=Nb&th$wR-fyO_ubm-u7U5>fV!8liA@7qoqg{# zjV%r$S40z=?tyv%B14l38Oq^PLDdy8cqZIgCJb@~@fnbcJ*?OteV(urgle!#)3Xi zzLl+JHlKj{tfNF|pi>5`eNjueDuSsU;OfYak*uSZfZrx?*R#r^sg0_tTc_<;;c|~8 zEBuwe0zi8Ct!D+whc)hcJ1q>38rSQ+gW6i@M`6MuYAeDSpAqwLf1> zM~zjXlHp#(VDgK34cLNjSDL`r6dWrTE5=_I|9wN3fP`C;3OG}aITSXRh5tZL22K$ zK_3DC+848|!){VyJ=PC@&RCxxk}pi3`5xr?1qTin#DCjIRTy zZ1*87(y=UhzJ?&P)wf*xh?-n4HD)n5WT|@APhJxL$iK*QLzy+JbUkc zHW^V|GkhuqIM3Dxh(p0evwE;wQ|s2XiAxMs`w>E$=E=rf|&aXk5OV1$;!IsL`j3Sl`pb%$jw&#NFQo3#FGpm zi6QN^#uh~LdZQ<)dy&qil`B^#MsR#PsatnKa!DnIN%0$_jenppeM9-&0+3O#p zTQuzEQLGyYQI<3-D==L@k&%blYv92JoH749brI+ zO00c2{U|pi*w&aQW@S?45JOTG{#B1jJ}UFp$koy7N^RMcrtom%xQw2W#Uoh)HiebJ z^U$~G_4_MnoX^*lV2x9^ARbCw1QKN^`9BoIP4gK6=2XzGna{{wM(afb)3RnCwyevgx`nmd2i>{k}iEWzs_(}tx$2a9W z%x$ZCU@j#Z9hA^gCN5b$1z?WuT#(va_gg88CP-^}HU#pD*4tdLRBXsGsqSBD_&de^ zbG(eLIXAhE@aKYB3-4U6-Fpj#MR2A9^=1Eo_E=wAFM3RCc+ch{E}iczx#hJFV$(fH zQeryRU?B?zj<$bgq2N(R?h2MQQ$+$xr{>CVV>XFxXW|PBoUaGQSpi zA;vq;^mB9r;)IRNQQFTZj>w;lvO77q*K)r)iap8nr8B{gag`;WH9C!jnoelfHTt#i4QueMz_ zekOt$%t#rUOdW4ynhrIi)n!%4VAow3bbSo6ckEZkxY&7<*a< zR8*DLHq9gxx0fh3)BKWhfN54Xnhl#9Vh1G1-qazG?VkH6;6d9KloCI4IYBENzo!@^ z7+QAip5aHv9a{H$hiYJmSS2i*1)yyM)lzC6F2TM10#DCbv;3ZU;_|KzY6nS;i+&wE zcfPuil&+abwj>O)fxrbg>ez)FCUGlIY5^?L@nTH0G9044b;`tOeJ;et1o&&|{VRW^ z>^vNr&XPEOd+I9U$|4G=6a}T16-A_GQIRG^AVgZC0@4(ugiwQr3MddnjDVD&^n@b4 zCyRoi_s|5Ql+XhN0tuwt552wJy?%c|=FQA|Z{Bx4^9w4}1^W_K72#_m7&z0ifKti~ z-g}=$@)oXHJ&(!Io&L07-K=V=_aiM|9B_)oK8(?6Ct=X?b`WWs(kAfl+>Bh24H$pgNSD;P9L9dwQwut2%x6#y_Md{2b0NXR0*n zQWD77`D=Q@UXm>)@uTHOJM3&zw(Kdp%?VtECGmp@>y;f;GGV2|z!Z>4I+KhvudFL# zjL7ZzFIO@`>^5RkYg@~PMZ6P;1&T*5M6GMzi?P?FimCgHl>ctS5|phXNMxa2C+XKt zD9t=9fyQE602)WH9%(f0F|?`iffn8bPfQGy0qTqExvfuUMpBPA49F4pXcT(Fo48&@ z{r7s$34RWly+n=LuC*d%?_m9q%hkmuVB?AOE)$=Dp?Cw|#nS3W{9EsxyviBng`&(+Pwdy#MsUR{G3ZFMBVK4`%R83X>(KU|INz9%Kv1g zQqeS%c2BI4=`+@@%e=@pX#jL8T}sp^rQ&St&baT_0sOxNpAomjALNetBq>Ynssxa@=rER zaOCOMP5zzDO^#T(`+xT=*c6wnG!DsL_aKJe$J)|1{XAb};!#&$+a)$TTi;Xs98sA9 z-7}v5iznF9Z8_b>A1)?tD=ibecgx2dueg1!>#}8fGbJiT>+b#d4Bb>^>BE(?0rDY& zPW~brm3i)<)Vym*qQ&l=*hcP99bKU4L_eS3;(D@+p-u71MS0cx$FuVrb-uC4Y- zVaq*km2<+p5AePsh^9CY?$<=P>0Oz>upgsnhuaY7SvX013;#J;LI|>^{V)N&^F8-PaFV<&`E$U~hgQtgE8?$r}@(M=fqBHti zL7j&OO;m`YR-`>aeY>Zr5_S-IX4kt@Yxil|_>L>UMeL+uVye(h>6pv5Ru}7W1N1HL z{Je5B%CO1)$G}3loa&1g^;xS0;wkWatSwlB;6FB$gB1^{6gmE9=e*Q-%Am9Neo5*R zhgU-V{r5wUx0D>l^^v0ZIwc=_E8^;JNeZDJ4PjRA6+7U_}Ef0102j1lW7cbFJFN&RhvgF~9?3Af5 zixHiC@+38%ixt?>x-DNAP*to2_{fR;R?OvDk=Ev9`Uifen5}NS++i^?k> zL6owiu7-z<{6uvxj}Z6Xmv&d5pXXj{EH zOv=L6N*lXd<&xFKkVmo(HwH^v!L>BnF2E1vWvoluP^4`3O7^X*zBEF_S)*0VPW;g% zU_xHy-b*n>pVZIQk9_X@(&DGQ5A1GdbqMyT3;h^r1aEz685 z7Tocqy;vG(x13Mt!?i(RXq961pw`~MXi9gGg7WHTPrOm+ZWOkpM0Gl1W1QP}>of8A zgs=74TD8%K-|Dj{Bd};3O2tHUkK7!~;8l&GU}IE^nes@BzqgoCHs+!KnWxUOpw`a8 zF3Le$B=Z_WHaB5;y3VSJ>2EIwO{pD-%egk+D?#KzY05}{A9H=n!hFV=xvwo=K#(7O zamTb$Jl^2B^2v`5v4g9UMH&4|GIyAte)XsA3Kg8d`Q+AF5#!;)3Gi_#npiE^Kt-$a(H55NkDW+tY!VC<|PD^A(IjitRUP-#be%>h&g zGkzX=5L>^5T?GH5$032ql(rmq20x_7&Hrfcng+GBo<}44sSu*?flP!Dovay;r750j zdvRyD73CjfRtYH6E7b>p7nQK1h8Uh`<(6%c4V2_yl54NpwKBYjcWjTZ6L8#R=3AMA z5s0hVSkx?QAjlB8;(I7hHx-kR_7mut@M#Hca_}Ox7i&Q={E$k?2%X)~xTdTb4@;?a zh34j;$kvY*k-kLDNEQA`W!zX7Jt~O)o4XUUiT9$nm-^(ga5N8fmC2%O9)C05FmBSn z)wA|ebc_FzzR==$12%*XmMz=P?_0p8I2Os0iA5@}mr!bV{FOF6MktqftF`jX^LNcap}cgzo=Jh|srQD}IFJ<9#M~y8bI8 zA|hY!32vGi04E3QB`8EJo7~thnpoWT=UUvCJS$X!?65MuyfKB|I4X2OIt6rGp0^Ie-apyEbwL%s`Dp`lY%D9DI ziG!6}ozUIp5%u_$RA^3n?{$c1{0e>(h}!k4wvv?`1Alu|C(lK*+)^3bSQ^*VnsgO$xkB&Q^cq{inH#?PbTlDF1(HKKgmP*IkfgJpJ zOe^gAuE9g!MUXTp?5B!wQVurUUqM12hv@j`P6lgx{m$3Q_Ghd4 z3`y$O1i)VNHUF0k%d89LA6@);A3$B5X@8NrsjiOX)h})x%ByTdLi`Xjyadd2~S zm=y)>K>3cX;dEA#xy&sP<7Y~o4vjdZGbKMOS`lI77CJx<^>^aTW7s3nc&6r2E1XaI zYD_V!MV~WlG6}lZKz@C1uFSNoYcXoZ0W4~D{M&XE;d3VZoo-Rr{fd-L15DAh2XaDA zI{f1OmjX@`7wnem6=WGBU%?_jjY+QXbG`7iMEsdwMc{>O03DlSL8n^F?;}ouKD39=?~GNI2>J!*>Lke`tsag{|bB zXv-uhza^1RHB`4huo{G25JaV&BKzujusgH+DAxPa2IcP?^<0Iz?{&t0w8#W!-$f)~ zOD+TL1n9Gtg?%z&yuKc1dqu#I`xSPHS-4AsWQ=9eT<6CzdBNQ$^qi+(@hpi2m271z0?-CuHFt0I3;4r=; z&i75Ds)Oj$x9mFZfWpt=A7LYCb1YZ-fv?tTbb@(_rq5Su-c~?sj8g1G{cMZNWpxDt z^Z8%qpD>QKM!z~L8V9hArW+Plt(AXXyP0GsY2)ppq3$D*S6(Y;d3os_t|GHf^3(K= z%7b^N=JO-Y*g?m(kow;2i+W>2NQcoImfC5Om8=?>HG_nyD8Nz+ezZ~4Z-(kT*rK1h zF-UnFg-fh_zvmiC;ckg|qcB+)%+`FYGFzuA=4+a4>vWN~$I#Doyj`Ft@vb82y^YS} z=`;K$E@wpVx%>14VV+z>U#!xYD~GyShD(*cJE@zDeHQ!!fB@4lQ~$}=2ed~?qc`T` z@6#%1NkxCRUtvo>@$ImG5Vap$r8tzGHc&3}ot-4LIa4mziQ;}Ht5hIkc1?-6=i{l? zrD>(olj&*cFZ{oHTZc7#`#!|%aAjb>2q1nS;xe!$30-m4aXry>hxD`i?JFKE?PaFR z+b*JU!Mp;h*(!Muh#61GlB?zIy#`;}EzR41W#yeeHP! zz)2pED=cbz`B}*0Dv%|%F_o=bQ{9K)sq;%%&WkpH+R)1golz3{g0?iY*fM*#HngNG%(7q%+mK}4{Yg3*F}IZM7| z$i0ps`@tseKAv!7dCp_%(cvW=u;gwOPJ=i86xl`2)&ZPM{*LXg9)C)o$M9j1*T;MO zy^5HrBJ9hRx(b6=`3tww1Q1h201hl>Qh0*gIPtKw*6}{|WR8ely=jVog7#5SU{J8@ zJWKJj*JFlleDjcrD5U3g4(=jzP&>`M>RN?qkNxIM-aGcRt0bo~amkkYi|XgXcW(^qb_*f@7s>FVGX~)I$*Dc>?^##dU+c>CcQ4q*;q@(X z9}(}=G76|SQ+6U`XZz&S8OI?Y&NF>vm!vp*B#u*{KIAvNvd?4ej2L^aJ7_vn+?Pqh z?DWWshZ*)Ar7_Z4PDXDG+$axJJ%bS)Kl_YmFvxUg3y6-IbnX`TzkT+42bs@_cE!p#{{#n9U?#+Vf61vWa)Y`5kut#Xlv}464JW9b7Jcd1wS?|fJdQ}mac2T(^ zeUzVBRI7^pB9o_DXA2xfg~nxB81ee*7t3$m)w}sULTEELJ$!ABl+N94P?ew+&eZ@h zGeic3sAzAVq+nma{C(U`!v-7d0ctBX=;mxdVEl1Go}!@gpzG4rbvXCJ{fD9-KbVve zDZrr~d*u(^@pP>|y)z0q&eO`Xd};AL)k2?j_mG}Fn7QGCVU^}0nTa|x?HJBk-{eal z{Y=}sl{X$Vfz{B1TCZ*U8R|0RD^EzGQ^L*@!#^!Ql+bx|Q92;A9)xO%TgGFY&sg}hd4go)xI@L5$esxGFBZ&axvDZ2PP+16vrzFUaGN<_ zRdcY`9z4OLLR_vU3Gy%2KdS};b^3)fR^#TZy&tn8jiw2Uu+x712~cemg-*H&F%=G!UrEXRJ8KNS5d)`#l4-*FckJ{qP;%bH`Xlghnu3_iFPQh!B*22 z-#C52846Af$II$E)H}eHfuiuNi_X1QyoLK<7OnAs#zHlmUJC4>BW5^o_D?Xl_$t6rqfzShiHx8eV+e z4K+j#;x7?!4pAF{mfWLyeO6EpS@&9ekPKxQ3-?9;(s% zU^YwFLk9p8vuWe*FkPEVl|gDwy^!qlj(cOp<7Jk$7O>KsN5t{fIC1XFm7qyWXxN8- z7=qmog^yd}nY`(=dLoqjVElW;qu?iS{U2^BYwn^V9}kWnU4;A*6^Uy%k&~qEvkzek zcD<*&lBiuR?yw2T*5a^aV^aZmpd+qqNOBR|HvH>>q z3HM~|!EG7JtnDM$@(VA&H{_eJm5kofv!N#h?(Hsm1~h-ZC~)b6 zIKnV{M9+;_nkJGm1ur#mgNJ`(pIpKGOR_J35CyHxjH;b&G3z=D$%?8tzdsuFYM&~& zpRWMCOKZ{J$vLBfzk^~$s%*VT=|k^5@_u>qWz=lV9H}`!V)BLs#gO-k7W!Dl4qa(a z-3&jO9!BXe<|Gr=)K(Z_VQpIuYe~w%ZHZ{_((58C-u^RDjWBoW9l$JYkkK=k@~K+O>i|L6at)u&*-Tn6{NX6h?LS-Of_) z&#sM3&)X%IE)ufte0@pe%Iau5nJN)h8~Nk3$Bdpa)Z)wF1E0$pdx4PU=|NL5Et{uG z5@=UKUj@pbsc%D)`$UT4H2%1bXuMq7aYiYi7Zxmgm;Bg=WJq= z_Z4r~yJ*a%!pPf&tIly8mU3X$6k*M7y!m<7CkZHsy-)D=xRcE$sW^BY!*L7Lk6b^7 zK!w;~-ILq~uZNtIk`Uql6Tj><6K z=(LAuShZQ8q!#u%H_u$%&BpwYs?lz0|u5FrO111gJd-J0$&PnVc7iw6WE5XRz+MVdvJ2hkCRWW=}mb( zuZ;Q%yV0GoRLAImG#fR*Wzzb2ZqG+g{Xj~t^%^_!kSR-C^r)ZQXy4*!;b9)Fh<3^w@<$7u_ zZj*y3bOL*6v0Hn+br#PsTnVEHgsn#x?ZhhAQiTX}5fIqcw6qr1HTre7^}U97+tqjS zzf~lcgyeBxw^f5YJKzRqJfCU5LDEG7)oI!EpmaU^qY#^^SambBGIZ&a7qiHPob)86 z^rz&H5M&bWna2gbvoL1qDrq`U8wEOGnl!gfpwbBJ>M9Q1j3u;(KQL}nnX?TGS|>Ab zeB2G9!%MzK3O&Fb4bAFYEN31QDe*zK)tB4Vz?x3;He9zHI8qj(TBEw5il$|{OB?As zjsA#(e+v~i83NtvgxE7@;krOv6ry)VD~ax*Ok3%|xpZ#Tl+%|B+R+`&UVW(+44 z-uOYk(U{9A6AM~|xYXsJ-?m-DXsB&qaG|I^GF#j0@=Yz3$vfz@<9jM|b zO-rd*edm6+H03^y<+^5Cq3S1lFiW+V>Dt|3LGeTK9yNA|?JX!+pWBh&Ml?sN1$A zZSxbc@Yv{Oxr*HaNO`m~vvekxwEzW_8e>!K0^j=jmP65dA=lIHilX`lH7s47k5Y&zg~i<> zqe3CekM(RFD%?fDq8a<8mjqs{UYB3i3hEvoDa@EEg6@iQ$O8ucf=G&2hm{=hE-c$? zby~A=SM>{dbfVBl!qxZnWTxdMvFNV~Q~meoh6^T6zte=bKQ+RBs}?VA9!v&WA?v?=i(zVK^ZnPT)j8Hg_l3<>)vDVB&1zu=|#W#s69 zLf^DOU|vUfUZndQH&(^5RX z&7eo;>Q9?ZCSukU!(h}Ar4WVyl3`51=IVUntat@8xohRhbp>`0Hn4w#dF!pzJ!8u* zGU?nZ5W9(wRg4+yM@g64aRzg>Hg3mtFOXPQ1N>phsH-^KGu(i?C<5$k(2YEx(Rv$g zDx_kQ6t0G(b650{)B4B_6A&j8w4Lb{;3!9y;l_G}Or=b)KB}>k+>3YKh~HS<-^Gf$ zLknX>hB1<1+awGpFW0sFNBZTbW$Hd7lIg51487iqvjf|#frN6h)1JFTqc>hTy;1MD zQsZ|wCSy(VNOsznJ5KOY4oz!gu$c47OMRrgyPhqsO(}vDISPeU7X5M|-lb}4e!+Qo z=#I!5wm{#m98e{sfgvcBN#yr7$hmqSg$t36mUJ5!i=+nKN?oa&JV#(W#W;-zx`Mbv zI?UjrfR0$RkO?83^&H{K4hxF@C|Iz#DZyQ-+YS~BeF%9g zGSfbJbZD_WDdp&}sgS>0!?2*4M5H6H!|=CfgMqsjeXhh<(m6ol>voY+G?26VQ32<%Z?mmq?NGxlqvP=mNd{tUiI&8?CS^J{Y|3B=~vUf=Z z>bB5w>>O6X=_+JKhNugX{37A-Cx>^r_Q2S|i%8RrQpsQ^WOfARp*3lo&HI>ur`yp; z?EvPDJKuL|A<2wAM3}~~<}sWR9Bk{ZM=|q#z@$ePD=8etjpII@u?6uf__7x9Ot5L$ z2qd5SW&*qWmg)qCI=@aStlMu!{%sVbunFGG_e|ed ztpY#>pzrD<9=eyVSgY2M9IR?jti1``>k=fmMSrOBJMgqAF}wp$(AgOO;uXuNT~mt! z=3(4;RPmnnK|iWr1Z%(U*weQ3yMdVLz)Zvcj~r!|Pxv&(yopSM%T`!@=M z62^61qgfu814ntHs^KfFGAgsf+V~hY1$fbW8S?fGA9){w${bHNhFAK5ne<6 zRniCk3NMSzJCt`P_}8LvVuAB6Nc`ZEVTD*>Pj=j8lnFSQeX}wxYRF*$U-XU2hzp!f z=+c^T<8su^cC>NbSH9a$Hfy^mlu_oeBX1V=9>iox>)5LSx2c$x6!y`VfX2#+?*P5M zYVg;|y2QAFufWb3uN?sl4bZjXyn=1aLMz!{sv4Gd($~Q@cv;@ncPAPp3d~ZC!43D4 zabK(!2ZD0yIO53hb!AozcRd00CijGys~3BkK&wgAS$My}^0K|+b$sIS0gWPyRyoI+ ziSpr8E7EBhkZ4p;w)gazRt0Cl=Kl9&UMPdU{Y)L+zSY2GuY_?R$SHAFqj*SrJKiIB zhtRN`JHecQvCv^VUSZ1vRbgZ=4#g{Uo)`axkGskT+or8>R>K;&^x`l!By3sDel5wx z_4!XYuUFGf&sb>!X6&LBR#Dgno&12Axsj`^YLgos0&e&oje7jYS-4Nr!K`SVbsoM@ zHt<21vls_K%Who1JJAwRma9mUeLfX}HfxVNvNZrjV`~ou4juH`MTAIMES;TcH4s(S zt7i4h3L6(zn0qO1R5_%NyBM3Oy_BM}l5ZB~&tL6)?nwu4LUyxXe+}3qo75L*U9wos zS5`Uv>Qe4RYLJ=J>F+cH#{0RAe0XXHpIH+ktQ#jz5A3EfN-ycEU?h{%qJV-LdFh5C zGa6fDJfg>JJ_-Oi3)wd4!?HEGD(%1WEv0sZDLn!gFV6a`9LDwHZh$y+@txOoT_Mcw zP+~uf?i?4!kZcE%`j}+Pnvqi?93-75q6rN57MC+jA6n15V3b?mmmA??k$<*D8GSm7 zwml*DM${$Zfm;P68~a;|>tqG}Jp6k)s{8FtpK@W<5d`k_*n*OrL+6^`r7PWBngQE zCh2Ogt>_QM2>$nInbFt^fSikZ^u>Nqdr+>-)m6LqU}pGN;>gjV?+U&#F2(BWj)J!fKMH=geb(^dtLBs()zM54 z*Z8G5uADZmRx9o8ZwTyK`A(Ezrqqrn{j41E9}b%xrtbwl0Baa04K-*PYe+JW4oD9< zk6wqbh{gNQTS^is0#2YGvTL;NQiY2@M=AL$McFB9;)w~&31!dOkXgYkuiLv#F?hFm zR>rk=diWG4{uqF%{~@am=)ELM$9A|{%sVCjZlq>|l;M>yQFZMP9X+8~uGi>+Hmg|W z0$1>HGSJ*pdkGxA%6d-pKOc>IQlt9f7$PS@QaaoShf_HlaQg<(?+_c2B6AP@r$(8E z7+4)ueS$~s81wDPBIe9cNFM>T{&dfdd|LLxQ0P3Gueb1)*i}(y8=pQ6cyKZHuGyrO zfz{Uq%>akrce1X>m9owye_KfDLJ71d$`_9!StzrlPGfcJFe!Z=Ac zA9hB*GTYXYu~ZclDU_SKX$5zSruG{1CvWwGn?vhM^`Y!6L`d)XF6}KhLSjKMOMUMg zjp3WCWA{+$#6|^SJ%-2~>@Q|d5JB_(#YVhk%`yH~gY5|bXZghP7A)J^*^;#XBxNdA zsX`VQnpo^Zz1C`e!WZ^F*M4)PHE>u!hwTNTD0|N1x+?>OB7*~E5})O5*z=dHpo#V> zn&Wh@Ryf{N{ck-&@f?41TrHEkPS`p#<+coC(RtH@dOs+K+zh&L9m)+6C>Pe;Y#4AY zgcS8rh#1R+O`~Kt;!BWn^z~P;#xGmK^`D=>xMc257#Fg_WP-Tsps-KN+*uf_8CDOR zh1+JFX*1C3U--s?S60F{GR4^t?!qi+vm~x&UdX54i@WJXSaev~?poPS_ux>=v@)7C z)lZoF_qqTdHkHS$Hp4dbyh1*lOsAE*z*5DYU3UXm@a$F*zi{7gEz|Hs(Z97E6~EII z=9%Z2%ilK_4ZBEHdzxx4=!EmvxFB;V--fJZ+q_DS5tkmaZi7y%nZ+H>Yrd% zaR`KsL~bHX^gw4RjM>g@Comrq#(3M1^l(C!5{Q|fIL??>4juKS)t^vI$*Dxw(5^NZ zbQ9hjDV@p#x0N5G-A7#w-)aJ<)fqf5hN^|EL3R(n2KF*}jm-TtyV5(sq6{IsxA2rQ zQ>{<^%~`e&hd#G==yp=2z>ZG-_DPv*6~ zd|-p*yJqE~pItk~nk;6SA@JLe2pbDzMr-j7TD)ehXb3r92VDa$mHq_$^k_FC+_+oG zvO>&~LQHk+7(H535Ih^fl3@?5XEX2foVK*xUrrNt&z!nZft4YW3|ih=^yMm0G{n>! z&N=)02o-0s9&3}PxOG^tJG8TDJQx) zvi3yTJJ*^X-9({TgzU}R8+EGhS#utK`6j^7J1o(Ez{+ek%EX(uQ!pb8s? zF$PC`+Z(Lh?lo;rS9L)a0KI6#hn%uAKidUY8Q(Ys01CCpv*S*B5#}0a(^($?uOX$ol?wXIfV1SV)n@tI7*iZM~FSYr2EN z{R!5_WB9R`+0b#)kwQ7R_B7-{2m$L^kuTd2E=e8PC^qBnvBFbNgSV+&@zpcF`C-0w zs?%FSc-ec zN$=fqFzKZxwR)?vpt*ygY60uRbvl|b70sCdijHBI z+T!)hm7c$UEh@i*bQ`5vs~Uah*RNecdSG>)aG?~e4gf#Nj+9jwPaWKppi20bKJtGr za$IVNJP*7iB)bqfBBD8y3xIR()54glm<a zb!bJKcQTi4IUp}x-O3MHq$-V93B}#c%uI;@+;F{X1_DhxHl=T0V{lM=d%bvjjDVn5 zkQpr=gf(n;aHFKy&Xc(6h2Aa&CWdVTfpYgjw6-GTVXIH#7_?k_cDVoqL@hHSd;YQt zT7QO9O-qy}$^)5LS)-~FY9GI{`w6D0$SLc@xZ3UQs<1Ep$Q5G@C%9Yw&wjlbQ)@0B zJ#>MdQYz0JIq>6D*z9~Oa`LHJ?PcyL)iiH^oQ+n#3F*=`h_m;^xY}eUzm16T)m=v{ z9tAD&50N*+HzsC@poKNh?Qnf<Fs{HNav9i_Q*PKuu0tW=R$!5-?5lNz*iMZXbCXz4 z(~INQ3(W76jQ`Oht)tZwKF>dP;&K_wd}}Q0LgF+19#q}1l?gE^!2#_y%qxyu*5T=a z63~{#o$Iyv(ED>;wsDg}I!ipS{0b*V-N6tP<|%5yQVJEEKW-UY<| zm`k^Q;Y^(vIE=mi8eUaDx^}qwkd2MA#;SX9eeezRR7VtfwWBy_JXt(wRui@+EgrZe zwoF7WRd6?gVe4}O+_25AJsnuN5zh6&-tW%9_l!@EIklGjMQZkxuFsEqCEwnWN;Yqd zN!oWzk6-WSU-lYwor=1u>(eFk{RUx^nP%6p<1a9fyfv|f(IE%XvDTy_huJaStx_#t zPX^5Vp0aLTS*C~qC?#jl&9j%JB`6Z3ZznXyFTU0Jpij#C<(bJ*e`M?SKKV-1yiXOT zRhq@enIBEM@nPI)y|_+$cF*+L4^qfp#5Cht!;1W;441#qOu*#AD|N-W?{tyC&J(yhy3Tl!I5z zE`JBUVVeFq@NmnZbrkZz>AKIx7RDd}905b0Vvmu`_%KypDEmM&=!=~!av?(Sw` zdAvIBocAC6V&=}wy%SB1jfuMUiuyM8d8q{NZ*W;L<+4SvJ)g24tgVpuy=-EBmk{yi z5P#sy;mmy>-2K|JLL09DtTu%_vr1iShz0xBc%~)D#pLi}J0;4xkt9GSJXNW2f1)>YDEuAeps;<<;7d!83t`_m4>TbKu02KRQd zIln_nIQs2|x@pG4A17SAWx%eT0&Ij0Y0Q359C87aVGg@pSE1oOFF zK_v+8Q>l~h3Jk3}DlB3;sthU@0qUoRkzf7%9{&v1k#Ye79)C?`Oi9eiX>vL+OoDM8 z@Sf2G2^b{9#r|~e-#r{waT-)+(aT2;^LDnqkE48o-vVbVO+rx65m&|1CT@ew`S0Vf z4kr_?7@w4+Clj8J!!(ek*wF%b*5F{xR1#eR_X+8C<1+ijK;Z-#4_e{%9t!XX_#JRQ z>wefKuw|_QlkWFztDVoj{jsgw>y~@TZHxoQyjm0-fI0fk96;uQ{_DL8GU)K_Tz{o! zZgRTo02YT(AJ2CsQCMA;MJ~Z))r4mxJ(EJ}&d>s@zpi|@*m&{h>CNWPp@gAL4Vqp%8oU?5`Lz$xQS*Wxuw_v2$ws;aS_ct7^OQDbKM=vT*SO zyH<@_%?9(Aln-nR?M@TBCp-`9jJ=)YCT@rx10Gsa&yxy4mfPl9@9d32mGFQzdGYG} zE+scd+OB#&T}nu>CSIPN_L>>4)l;P0eeyMnz=wsoqVAcqo83$7arPYKe?=H|7Rj2IugU0e}0Y_%+o>7VJqdNQ4@jviprPCRK@8)j^2+-P2Z}64(LAq1#wf3Ow?0FScl18TH(qK6icN8y~>Vr&#_7q5J)# zinyx@FEl&WGnbGyiVFjM?>r#?ToG;0%^AnbQv5jf7uP`3GVc_)O6rv8~NQt!P4EVjv!W}HRWg+y@x;dd2vBJ6U}IQLKV`@ zZ-1t~eOXh#5;?XIF&mu(GDOa!mMbslGTm6}e(DXaVnOvVUe$^NU(1uvhqss*uRQ#z z#;jxIS!o09PE_G%EqJUAj0I3N(TO&1pY5wfsaLGHgC=emPpjslg9NoI#Ozmus1&}$kAu|&@V{ck}2P#@up34P-+8l=c9A@ z+;m?-$O*y3q@C9OwNyvdr??oImo`NTLWuQ=ZpWUhWgNhRVq6c#WH5%nTX48-`{p^daE zhB3mzdPFb~ukMS(WI{cK8^EG*)@8;Y4y#-Gf*z3=sHWboj1rkh3}|65M&P;xVPS0hctA+$~7%Z?JNGqdQ4h}s$102va09khmb7N zv4KQU%14T2%wv`b)KqdYRV^_qax^vDH6H3djZTn0+@@g#%YAA17=-4SXWpS*>Rk|H zN@lHI!|`h&wB52z`y!w&~PgDO+{l)wVIeZ_~Qz{e_D5Z0c2 z2oxQ@me`;{Bn9Ad=mqV`Xv^SQT1>6Sj{C?h4Q_7W( zCG@ThU#(Cl_d_0Ftk<3`IO_Xn+zP^dz)ZYFuWE|@gGF-(>+tn+;fGE-)murOqE-An zoaJZ7^c?XoX7do2@;>wx-=AlS8e~sC9>0&GhDYhNJonpU98PSj12s2OX7!HJ3?V*q zbxKJLB4UnAk)M!QYBV)No=po^r~%JMTV`8uX`o!#n;7Nc%o#+PUi+vMmD}qppf8dK z7P6oFCZ(BR^g#^WFW|X=ssk?;X z+{7kA3tJ7^+x^O0#wKPm78*g9KszsSu-+hi`@G#xm(~b;lOl;vxjg{Rm+{=`MzId7 zx1*TuBL#l@Hr*NuX7I4$DO5=*jR^xWPQY4jJW#HnHc(Thz=!)I4e6%>X2is02Gtz; zCmu7o<$ZZx;|JJw;jo?_`KhFUd^9etZ5Lmy)SnW0_0t@yIuVuh8&+&o(2ATWUpVnE zMHh)>?$zP;$u7?J%Y@dxKYObluLbKiZ5O+uQt+!xXWsx6{x1wQEy z;{OWXUn;qz61^<+J*}(0;|-!AGpKg&QTOngbZJFoQ<+Lid4~u9LrGH~x2vGLoHKdK z2GgkA>vpgs+f-+Ld1Q%#N~AQoV!K_=SK!+)5Q%w+5_QtqwXuhWPViXb`Ybksy)v7O zfrC>O-s1hKo;6>TvSkS9%5|W64PSaKwBhc4SQrQz-o*c4(hlm+TV@?Q67{u)#=L7y zppk68PNAE{5vxB4L3IGnBSs(NUTXvdtZhA@vd*4}pRXKbSADpDEax>)^WWXRrQLG{ zLRq#sW`+;9$c4$BoEQN&f4y3bOi17pDS?Kn%XVN92@oyE*+^gai@^o*B1iV9_6n#I0QB36w{>~M^t-}M0Z>(eSkSR|tuBY&(}oik(L z83Gb3A<6BQQ1_&q7t@L==3}Xt6HN-?qO5!|6hq^P&(~7*Og`nUe??gDTMH6*$q&^; z>f4pWbe<6wd7U5GU;bZX;&+IT7`8o%d`)GwiLU{*OyFM>zNjy7;vyXBpC{VQDDvAz z2KC-g_TAqd*9WLFbk-+}F5j!bkqHqa)HM?<&i-L ze5loafPyH^sJov2N|RPBVm1OQs#eGO+C&v!YDvGVNGj)nM0)v$fboCfVgcPV8J-mS z)kN@BPd}PP;`7VCZ5H+r{5Posgho%(?Wg27XLB*%Z0;v7&o^1gcmOolou^tML%I-V z0T?OEu|hdIMiq4eTX?_Di)e32a!Axc_$_gd(zdP$U4)jPm5L?3$1Kohgupi?pfHF9wok=5Q)sXc&-{ctyP8MuY0)-g7Fh)42^H{OSDl zY@fnd1WkIDofA1r4GI^I4Kh1;ss^HjY!>~1&?!(#`W=BiOv-Ll@6tOIVb4UW*4C(7 zC0_{7VV~aBjiHT-^_KoIei{AS4HX5~udB+cO7#2ly}@PslVu1dBX+wa*Ln~Awsd>z zLFnRPB`wUdC$6G{V*H_8ilnMkPbAN8-NMRbcWsW4TCL1P{h1JZ<@xAmg%e>&;`!PWN|2Hg*4xn<2y_kGo&n5l`=iOD z?#5e`#f>Ews@ajE@` zB6Z|*v~Ba4n`xXej=w`lh##Z?Ui{c>7(8j^>-SU$H!NbTAr6?AC>HG3oubR5%ih|K zBJGb9;a0?7fR*jCk|W=7HkP29$LSwY=ReTENdjL_7fZNe5+s@^_eI;DM5{YqjUGc; zQbpS#K7=S&JMB?IN0J~OQ2Xw98PE&3YdZcZ-|W$8{$yooWSiFMo5xKQM9dFnq@vxcuc5Gt8pE- z4$p!7U9D9|n*TOk&?t~F*F6>2hCm=8E?i;8Qi73!(3BVVfZH2aT)O(Lt|y~W9cF8E z+j8=Pcj;9xwFgez*+T!_9bk%mH5tQTW zTSRt2+FsqYjhq3=In-Rsr7?qjruf$AKO@uOs z{$cHnP_bWmO1J3)ogv0g;|bjhctW+yD4zF4Va)*zdQ`IOI0Arf=aa@P5S;J*1J!nCT6jvO)aNpMkVdofg;g z1p|D)^L+G0JUWS|O@xm0k>q{P36YH#jkqUhF}&_|G2)l&oCfFXM~OOEcLHVAoU6xi z2a&@~j$y;@-GNEeF89Z)c^h#1OT{7Se?4mOQ|Q|`sbXq?vaB{z%=nQ_K%eEFxplGJ zE3sT1uvX}nq8zL15QFSbD#}si*lM4X(bc8DD5+zG?YJeAZA?iIJxE+Mfkchi zR#SDlwmwi%uzYkzHzXfJ(UvOy3`j!h2tLEAuQDOJf2$2OuViKAM9cmbVBAYMruvq7 zJUwnsE3ZjGB=aC3`MyF%s3D({h0O7l^l&^DI;iin5Ej}WhyOz%?O>7UkI_rW__irR_9G8vx%;BGS5-%`fon)F{I3@z1C=4r+mNW`A%|6aCxx4S1E#@_2j%)p6C ztT+G1TGGe#b(_668QrgI0M(A6`IAzx|KG21ZH*CCQR zt~L**bCajaGM0>jy51uUzZ`UOY-nTrFDlzKmi3ReWvy6o%P#i0J=2!wjt&ElJC2tF4WNyO z{!CZC%`Q`e3T4Zhzg#{wju(CHo^gA`b}l&80Twg%HxYjh=u-mZ>W0vpI7rW5kCHZ| z3RN^TDrConygDw2W?G(7|8if76_*AD&DJZgc3i`DSmA*Iz=pV6y?Kd(q0~IR4hmDN z#b}O2x{}(>kfB!EvijX54me%;Ux=B%gUGzd1n}d1eq(n$)5p<&7c?9~;+;(WLs~g? zov`q!*1Ukb`n_s}+1ESlnyW^kfUHCyi#bApI^Z7~gR;V0SVlmv;6zFnY(y&Zt zxYRJZ%#B*1^5m&Ey(C&Bg*s)Lf2TC$l-C}b#sXrc%4e1%Xz}C5xBti)QQ#AP1@wD$ z6{2B%k|||%9W3=Qyd{h|9`_l0i%m0IdCo-Lo{f1Jb0|ThH19<*&X&vlo6!}^cHEF$ zRH@0$2d%&9b-d%e|J>PVNB%0UNX_Nh{<31{Vxv2>r2oC7^v%8Nrm6JJ6Fyucuqkjk zvZr{=QQBi8Gpyf>M)LY{-Yka-Zjo-!ZD)Ei!~sqisR;y){W;iP?g$}{omMJZEltLx z2dI`_d}iRh@3aMqR!SvECaCxmp_dWY`1gp|qq~csrc< z0ElF=YAp}EiOSd}pO=``IgVBD*tbZm`%v4$Q7x_x+ZSQ+;YK?Tr8Xg|H@f=BWb(~5 zJFW!!76w9{_jW{V)bY3{yPk?UWz_G_7HkVj9-0V3JQ_;VYm3C6s7GoKx+bmz*2Xyo6Y7#Kg1{FR_aTNLWYp9L{DKssXy z4{yRwp;S3%45#}*`>>pZwdR3@9Z`5G{&LE9b*^hSKN#uw86!{n2PiH?Z$P)Ba1K15 zD$dHV|8p`U4x4tg`(;{F_D$s9i_9Yi9lot_Qy-_X1@0(yI+5$1j&IUOqOR7n=kLT5 z0y+=7Zr)MRJ?v+`k%rKoUG~8P5xFeFMtlb#0AwT?##^g|`B7PP$Rq=OOV|+0YPD)}vnJ0rVVDqjjk#Fw5 zJ#0!QN?d=>*N2@Y$RyD!|2`y6w+Q9lXt;C&OxcNltxur0V{%p<^c`4E{7NT+mm$>x z0wrh1R{EsJZtHN*^=AX=zA^ScHnC=pLZKzIs36QVQmRV19`{|XLh1KEAKEII%uW?V z&ZvmK5dRlZ?jXa$kS}QDZq3YSo&O+x)~5$sM5)}3FjLGb{jUZNo%}exN4VPV2PAF+XliY=L;*I0361o7x<*wB+iEpx_{Qkf2& z5XQ{fRF;`2KUo7)1M>2;;IzKM)ezKg3r%`h*B8rDmaw(F1kSC(0>c^1@mEjzazb~N z6f5SvwkI5 z_Z_d}g^2U!1QJgD$9;_;N-+;x^5-C52-Oq|J^gy){-+;-k3gDz-oIZG{H)tG9T~dU zT~mHb#XkbPWG?I&uPA zH;ZLf5D(C4fezM6M1Ous>w$MXtJS-1%R%l-(T7-ZEtN1;Vcmzdz8365n~ zmBr?%6&~CoeBQZF0p~p8SZU4!JZ%I*&0J||gA{{wdTrTNT)mCdto9`F0P-k5HSDjQ zMQc>ES8e&nBawpog5~WU3d^Gv2a9pgOyE%+u$xTr_Eg+!YoO+HfBfNdJgu0Y?P*5? zopVs@dAxA>QHG`!bW!hCt<3N4$)2^?03K+4{f=(-ZvERqv5g*Z?rqzcnCw_YP0%46 zoCt~7iEdkiOES_R_O`Vk)H&6QF@#ge2n*yx%B+-x5zMs1d1Ff@`9uxBT1kX zd^kZm+oaKA`YXjd-OKykI{(|_)x6LB#o)k$lv&oShZFzl$C77pf3KBLh3SI^19`#I z*`Hk#`vwx;JtXLaOQ*xzSI*9Y+40JbMPIQlzL-HVK(FwDuU_Fwb*txV<6(i6Wi zDTe#X-RP^2&tKpNm=skNS@-b^>8GXNj=NbTVmCtv01L+hN*@@0z>{PP2hWOm5jP358(3a;bAy=O+z<5* zGn?JXDV<8H4(f69X^)rj7cs|1SN4;A$J2$fiVa3*O`W{BCo!~!h4e$UncYNbG@-4H zpDY6mkqyF{UX%7^`?ys65;5eVtjedRJHgv~xfT{s{oDIDa@16aAXoMxzfRw`LP8-Y z4yy}~kHd#_i=exK`1Z^(u9xxevP$W(is#F$44dMe zdH!ZZmKr?mRIJfscOqgDU*l=3F2QEhZzG2FCFvMzU^L_PuyS9(>ew6c5-K|$3lHCk z-m0MwM?tCAA>Z#m83@k*lIH-Gj!O!9CO$hKBx6P%E+a=#|=X`V`>IXQ(^R$ z8yBRMlZ_aB3D^%~ERj)#b?+(=Vr3w&0#$K)j0?N5F!pzDzxNo~S9dF5lX#6Sn7?x& zZ6r;0t_^k$CPRs|(Brrgzf-kUFZ`clb{nn3Y0g~F{%sUX-oQM#ovdI2Tcqf9B>TFv z{x&v3&92jSZ=>stcPwGEFAc;BQh>Cf+!?+7l8?4&TBP@`qnCN)+Y4 z>FB>cq_Pj+9<628NKsKI$di)i11q~bYoWd+A}`3#_ey;7W9!+dVIr`VN;m)XwiYGt zAckE@ z{wKGyD|ttJCp@J5kZx$!h&j%i=QRGC! z^_7u_F;lLoC?Q?cJ2jAqDAH@h_2Ek{%k^U}<=)rK&P<#=^9v@j&Zmm^ytp{@?6n>` zGp2yfPi(jvKGN2U(3)~+AJ4NW{3l)Qm{j^<5lQobT3p3tpyNiXtLMtls=d{@GyLhb zD{;$H`fIUIG;y&Se~ z5N?D-J+vKH8sh<%YkgkZ$Ib0nq_gF0cXS)icvK_~xsx`jrURmhm4RGII? zl+lZC1$YH+%%jJ2a(#HTa^2unB@6;&+}$moJXO&+IphX3w6;Uu6JiNfWJgc)wf)qw{J^p~NAnNel=$e-4MX>yu8m&%UANzrVh*t_g2OOp{btuBdu8Fa z73BT-v$f>PYq*d*gAzyKT)hFvC`qm>h0y_Bj<4=>sGSKZ+E;azD#rmLBkDtYDb;Y-VQ*;j*JyIo#({6kj%(pHE?*A~C6QPBzGtBUNevLF74 z$jh+I-0ag@6}yVm@c4l>#0lTu!7Cl7XOSjR;c>0_z-4cX-V7j1+okhurr&DdEKOBH z(C2QlOJU#=XlDdJLGplh+C8ky0qNg%J}Jx{++W%#1!(@FFy0|Lhx%8j~KPZ z4o4(+v4NH$rMRp!yuE=0g0fB_EAMBLEBQ{Dp0$74Y&;h&7bflZuj5}MIais?%|?33 zHi!<$%I3;?stv52=Q^KZ_;B^7v$0fuBB2C7pXmnqH1GEH*vP5QN58|6u-9qJ*USBa zfryehjc@Lc0_;=5-zb9`KdmOyD3S&GUwsoaE&_>M&)eis+}}+BK`m}ekGP&kxS4=J;jDPIcVd7I`dJJBe=Zy z9Sxf0Xl~fhZxrMg!I`hm!$$6qC`;9l3r!~?-$-rj=Q>|_!N8;%;Jd4=R0U`}ydk^{ zzi~&5jY{e)Lo`G%&5GpfHIqZ0C__Vbgp3q}AbKi|&n%JdsIxSPpl-Ld(_EyE{KXIracstw|#bl0>k}Vpay1g)alfAfYojaW0j6E1iho!Af zhzmNDVV1xHn19_L3!hO$*XLpjzjE-&ANprMh4awQuh?3+A@*0vHL2tKy|T>NVbbW8 zRPHDaJcq(b8cH*AfXZgmc!6hk6ov-SGfDl~4SoJ8H7VA(#Zog`U@g+j8-I>iv!4G-sY>v!5mxw=o-ZwY-COm=KR%KlGis7{Dva~gPt z@g+lPAm?0M+8y^V1;JQ)XI27-|4}4l`s@?axGXqNnH#PxZL{(hH?MvkGgz|`jkCnG z+@cmG9y)c7`qfu>V= z&lBSK41SYKDnmdIno>EL(r%F6<0oF{;P1x*(=&`vd3*1p%+# zTy(mstvK$D=xH_yYFiT^7YC(aas;-t9*F#ztMjU(QaQG7WaCrOd-@0-!ZS($l zldrmdSrc*S(FW`bpnKdZhjvNE=AZufCnHq$@ir|_e)V{=RZ}jE8r{KqREK_MIWLP? zr@F5zh9)0obJn%t>~w0EG8L21a*?6$FUkg!W3+NLhiD6St5TB&ugOJN1xIkaheq%} z3qN73kNo1q8wDRCSOBd%n~(fj^Ow2Gj@?K1<#vif(tj9HAJ z_d^Wn_}E51UAL>pFoMYVHhal;uT@gq+jP1{zJFiR7&KozJ1c3_Hs^TowX`C$X|hyO z$PIS>xgVce#ATRU*m=3mAD(yGNPBkzrwdwWb~gYc!Y)`~KtSh66H#5~Uwk@UvEJD-h=HikDB?shdsmT&O4lzXV= zT-=i4S3gcgP;Fx@BJ-kXlMR`2|Zz zTs4d51?gO~RAhJ=^yqW@!QR=b3%(_$TyxM+G+J|K7(q8|8TtVUVeEOl;}Oa;;*K4wcVFHx+qK z(f&fF6_3lCgNdGMj-E28*rHIWP|p14;t}`C393mxvaqqT5l?iF3*c7W~qIOuMECbKCErBgB|CDgW&7;#sxI7p~5s7EnSgd8=0jRN6%^OLCe z-*1TA&=2?ma}9aX#2ynKF>22$sk}6bZEBLmJKXrRlLq&5B2E|b3Z@Uk*PjsLU z;TEXYY;)>23Znlfj4Ac>p#=%auj*rR70eyrmcbn2svvTmeV~7Pkrt8YQEY>SxPvJ+ zfG3`ss|o|)U-*4P;k)}{K*F-rA4yar2^vE}Dbx($$W6A$-Othlw1CuKz!6LOry!-5 zB?ca6k zzVl7>;jZB-A4%)g!c90D|NRL+!D(eZvg9w%YL<~M2|gT|bjPe)2ojc3H^IYj4J2-( zqQd$cYI+glu(_MABR0i*oG6mIH-j%bkS2>w_Bm_*co@b-z}Hh_cJwl_WBYSYDzlE=3oAp3R9fxp2R^m$pVc z!iS}$((g-gYXtkYdAvV&JSylWHhruLb($eQ^~(LQN=J}8j4P6PJVW(vd5+~|NSlLA zv&AQZwUv4FaM4dbq5Rfs-|v_EZu|1^ifE||d=$NWnbt8mK@DA9Gk$Egudy3R>e@|r zGfFE>NuLH1^Tn!yrP8y!t?FtB?gtduBdofjoo_yYJm{qgRNi|I`@zY^R@)AJp3}Y+ z+US7MMdeo{eb>g%zb&r9trU993}$YFUzyx4Qg|N1usaVIBuZ%juNYzVhAZGZ6#)OG z@ldUo>CP61QPp8I^d!?wNX1X+pG?p;)#?kb>-T?Y=xo_<{LOr@%ci+`f3qBWNY~;l z=cKhWG0-FY^K5VEg!^@qCN5>o&2L%%6x2WRC~|-1l?r#fgRlp8oj2a%z%ks8y2&g7 z@JzHl4XkacM!!M?rD&TA;))YN`_f>O@rShDMy9TcKrjaX2dwv`lriM$D5out2nWqJ zTph;Gnux9B%K@zm2Aqvw$^90)85cX@>v!JLSt8fV69Mp>WzW;-$3n{Z zW_GXPL(zVZ*}PrZquFUc0^@B-V)!h)Q32T=)B&1dI*{2MjeoXZx| z+~t0JQtJ7}Kc8s~PF70JN_~Mg%~hsvC1(dc3@nOT?Vo9pTRwcDutZlU?dm60Ar^S| z!b4CKeW&vO2UBOk7G;!2aikqmx)BkO?rvB@>1OB}0bxM829TBpC6q?GVMvKVM7q1X zyJ2969e4NH-EY9~utTJl5)Sa!@9el_t7?09qrM8l1+UUU~Y*-^YXv>_sGXrkU)QUU7cJ5~!U^Si?;W z%DkjewQHrnD~i0*Fo%IGLyKpqCY@hkkDlN@9H#?{8udju5o#E>TuDp&83p{P&zj+d z-~pgnHJT+xg(}hOH;vQ^0g1y(HB4R|q>oqWZ@TINKw$)$zdqp;5WyXEk-a zq0)Htz1jWfkI#XWQ41m(9I*p&v)hW&&}dC-x`|}Bm7H|CKjdC9Z`{elLu6;wG|P3G zeHgaRnH$@-q@ey(UanTmV+Km(XchgL>08OH&cl~;)e8t}*mWW#OL*aiIT90BJ`Phi z6bO4!mZU$%;!RfjwX(QJ3(uE{kl;DCo{TWtmdu?T8&FpL9~5}C>6=Jz2=GG^=JUto*T3uQ)7;79 zQ7Z2KY)k4@zh6>pHzQKWgk1CkW`h!cfK+ zqFkOJyh~u>a_UI#>2Wa$@B%}5ZVL#Yl<@Auz@QZF0fWs|@k;B>g&X?~m*UCG9Z@br3#^vY z5m5&CbXj{z=NSiyBLxQ|Z#>1n;$iC^#7TQLl1;atC=5IEiQk_pBWKs=zb%Ipj>g7 zCvja05=a+$sNnlRiaS6_(R-uB#N;4>*4wD(dil20*X@%W2Z##STz>#e9ww7puUC_u zZ0#izP5y@X#Q8RS?CW@|n!OD&mazwz3Yl>^LGRTYtp1MtoO55CDwgd)1 z_Q!AVyQjSwV9KCy|)MeuDx1$DxpO(UNHTRY6-8#X&AS= z;h2o#>UP>-&yWuXSS#M{PcWoy6w`b&hrY`kpYh?YwwEeh(C9P*C z#-kLp?@we*$~N}0;iFaDy`DABv~sbIIHC4efI;cFrFXhRR{Q=VhUpK1U941hwdQWg zXtZ2Wp@ifyW3`B6!DmLfdPJBpT%Xm2?)gCy_{r`mAsTGnn3r9EQ5sY>$K@MX`_0hFag&2l%QG}Y>(%nXP3tsh_`4;o zbCt0FHjZCh#cXq6U-#057mZ=#$?9=Ywoj$m(FgN3@3|&%D;(xYxi9?n_$%ZHpo$l690#!b^sa?2vOprqha=HpkTNB8TUSgiJ; zCkquP$S?$X1c*D}v?E^72*tmz_Ir<^4c(qi2oGOY8`>R?MXR7Bk|YPuR3%BKqJRzW zilo~!8IM!?@x%m<=XEOH<5H+EB((@PH3`1T`ZH8VcsuFq_}Z26)xw z6zcj3)>Vn7=;fwZ0E@x(P%jw`n!BY!K+#B0!GzfRyO}=iE~L>vxq8{1pzA;R#ic3~ zweHBODisn$iN0*46<6__mmVx^usKFnIJ+*d7}UbdmMgPUXA1zkMn;z z8arv9t%p}K(P9ldyKXFY-vqesB?#<(wWUQHa9cX-BQU^AFGr#U^bV)l*cGx?SA&6$okNY}j@FDqN=^1U; z&f8*o1CvzcqQlp8p>!OdHAd&>gSfQ~I$6V^+uv;LWm1zEsdtAbo1B6Il1L_VoW)#H z-f=8pGbURKQ{3*R!%szYza$gGEd$xZQ_&1jXVs@qLNe6!asBT#ElBe@GBJ*vVt_Oa zIfLHq6g(lkuDWP%?J#z`63#1@CvC&nQu0Q#y4D(h^O{q4@FcVKtt0YY$(W0OY&yez zN&l=_WkuX(rhK8;cWRSWFMDMrUCb?x`ep9&B&D0KW{W++R}7FEw|gMm>Jf2Zv z&S*p2=WqUgU#*fxX(VxBsOyExjWU5W)!XpWH=kQaOl42$lyeLEif=kX{$0Tv6i1eW8`)uI_He0yH`M^`6D~0veeM+wd}Gb`t)ykoarq5{Xr^R{ z_6zc5suB~geG`9FtS-N1+Q+BkyF+?DF*SO}FK8YcZGMqEY+PNV+VyR?={Yq?c5f=?b%CqSeu?MMxEMCY&Qr*w=(*0 z2X2XyWwrlYiQ;==ooTn{;Zo~o>hf<{PsnKlntglyNZu>mPkx7OD7Z{rFBc z3f=kd*<6~$`g1I)auiWr{G~F_1QkmM2{1^%*}UBqhq_~)3;qNbq2h&e4;%-}wHN)m zEj3Kh$NUe$+mOkDd+PI-wKobX|1WI*J2xyd@S!yQbfDSEcE&@prQu-2q2=)sG((RR zSWCfO8kg}rY1cV0B3nGXNeM*Cw=4}x7S&ga!_b+=8GI$qHHQ-3VQl% z7LBYXK7(!!>2&``4TC|^iz*EbbFqWV72B--F*{Yr;}^EoUgLw3SD6i|`~KtTyX!N~ z1M~T5+WR?-&TFV$V!|a7Yu%X9zAQtnKmTxYZ`s#We~hT`!Aa562MJX_>?J&?odn8u zezi)@319gbbEAv zT<&|9>0!-GT}LDAOGhKWOE5gd>)aS?1a+Q;A#)8%!|4bLamIEq6%5*>L!P*FUg7eOKLFI z6DOgA5Y&zOcd4)VJmCfr7FTSTu!JKql2VT|)XTUTv+)&9X*wx)_q}yS6*7O5mqMkh zCU!K&FAFX3z(xKKeIQv8)qnV_gM$F;-sU%pRd)d?%=qj z1%_jtUp?0FpX1m}k-gC!(e$MwyB}ZWxlswJ=w1rAY$0BG@ZMg?L*QqL&9B}b@ULX< zIzc?g-6~YQCi}hphE_Ob9L$;54jp+q)Rkh&AB0gTM6p|ttSFi#d34r6=$_0tY2-XR z01&%h;AY&C5)X`7W0+r-a`JpR?=y&i73+VBDyFg>- zNe<%c-K>o>p}#dWW3^x~&>%}lCSHE_a6LM4z@Fdj6=ZrR`%;E{sm|XFEjvD#IEUUP ze$|4G!$L?oJ;g`4FRHPl*NB&&asJf|fO!>AQg2UM*J?c&434-t7Ox9j&UiR!g5n^$MX~sR({*liQw{rNFY54 zMHR!vKeDnov}r$0eI<$!VD1-A)U7Tr|5b?D|MILP(rC8|@Y^QLR3FHmU|sfuBS&<; zF)>)~?9c%S^sB3rv740r%E$O=rcT9jM zP5=4icef^$v|;SgiT6WOWfqOndH1f=d~E!hz47Q&s=nQKgq=o^m35IJ-q~P6OnB>W ziJ&?*te`Im(jz5ezFoJhS6711?C-}`G?wCZogN=O3p#Zbyvm?-R3 zljvKemwp9^g4!Ac zezlWfLd({Y@~Zh)q~Zu+`8$^=aymXe9J%%ZA1=AlpQa(jD(<}hf{pGCkRHEs5g0%;&GpZP-fHT~$=!5%N08w8^HP44E{TAT#rKS~1*8*~#-s zqbsIlX7o9(r>qHRFY5_siGrj~6KqI7@IZj=-!%0FT@4j@L3P^2wHF6{U--07Z8#o6 z_%Ema^rJAOQ-xSdVrzg~a}H0m@7VI7SL-~G+-PjyHTCr?er3p=zs zbRCI1S7tH+YX*K&D-F}aI?Lh#hlVXI<0)BM*`Ni9fPHukqwVwxZRtp2k@N+2Tz1OT z(UK@lpL&!Jij+KGvN>~BLSID|2P1`{Ii|c%0^bh&%kb28VfvAq&*Y^Rv4Q`#NZHOcVi_k1zORdlja&W z=5u#^+13xi^bCVk1>{AMlr>Lxd$U>(OVGVU1i3)*)kaO85*a7_4FaSEvj5={L!1M4 zkTu2`Wd0Z&3hhPM37zCc%Zv9 z)Z*t~Z@r{cMKC8QdQ+4KNUA7ybD5`km3hR4LvL(21FVX^_`9*j&e4rujbhP#;Q+y* z0W}F=Z^rzca{0`=43M(+F(O^fSo$f|JYX#P3cmPU^td8>uTs-@SfJ^B_kx2>YehHx z?F+dD(~w(Se0kJ~99Ee@g=U4euo|AUNbCvnRx=i#40XHZ-szm+pXoqlAeQ{ey#GN@oTyA(z!eKZaO5FtZh5J`{Sb0*k0p06RIc9 zQa-vzmXW?N%0lXEAqO=)NtrqFqZ29TuGvApD*>k>J83e=1o{wR6e!|c?T4*gV0+! z>QL0zKdU}ei5lhpEMwCo7&Em|#Gww;OuA(adJN`Fs#kmPg*Gk@wT;BfX#YAcl-0pi z?$9iED0mEgJcgb&e{wy#x_vYvA7}XCh#DrM6{vcT z)S4Mr3Y&^4Z;TcpBz z4hl*&aecehpWF$Lr+Z<^hbzhzF2KaURZ*>5Fsf9ds--w}n>1IgAr~bM4m7{uaoPwF z;pqx*cc@lYtGlBbPT3|aiE3jk{yhJ2sd@9%D%?bv`A+>nmp|M=+dQ;xM_uaoJ%;&b zWVHa!{Wnb}z((})V8O?8f3aYvyh~xh8CB6o2#Q>Hps#{|rr71C5cuzkw#&qQIJ8zF zGhcNh<9k%0=o%4*|O?zV|jMxeQ(FH|c%>@&xP$nC4Hky*4 zhP`r`?Si_-peIFYxZ!wzz5PRDGu$hS=;=nl0B0tMFz9-WL7)|V@a#!guU=T0Vlx(MhEYkmQ6w&Ct#b(T| z|M$F#tVZ|)g|>4WYq{XO6B$VL-`tdbp9MdN(MiQi|0X`nI?&$?W&a8=yYi45VFV!} zQ0p=vAn`;GC6i@G1F3|9`2}EE``5PZ&5SE)&QWAV;f~uFOVNssdYmH;4|Daw>eo*s zoGj=W4Asw>k#y2TNNo6}-8nXWP+q7iZ1uaJt-00+k6)7cBy>e7K<87sM2tP^#kBHB zqdcbsTTOBRpGxng{zs1gEE#Gb8E0iqhXXj zm#R;UD_5ql%8d%=Yi}pj*!TWrLdt9jngyEe9iURdH?AkA?9Q-)!y^KNbO1|0w7;pM zzGgMG)JiZ6V!GjDu5ad%vp$2B#{K9!-TW4;J~${Z*@nhg1j2>^qe%~?M8E8L z)1$xk&Dn~60Q?*lXqIn-bc^JvZD@_8k!1mc#Z>n$|0{sxr0-r_)uq+L{lHwK!B7lK-+Bn#C3WbI@;k|rerk_wc;Tog*S2<^iAq@PHW zQEQ)E_VUYXR30-Rw(e0%AJK)S7};BREH)#4xc%c5`N!fqm9=33Z+nt?zfWbdL3(Lh z3RrkX*SHwFf~4wIo^bp!!t%=MOXObRg4!?a;KjJ}u$;cg8PIpO=AX4dSq{{B#w?&1 z_u;-KlfJmFX4yLRh>|>C^;BUK?7orb)_A<~Fx1FW*yeX$U!(zhT+B^xIaXy8wcUW# zBh<^+YN%V{hTJq3MBa!8A`<6}3H+OHSIgC~-aATEL)H*1J;EZ7o~eRp8_Y}EPkli1 zSYy~mGDy6eb44^@u5m{C($g`~2zS+C-E|#Jc8(_J?>BAfzv(mjNIM#&`+8hd!jqAU zuvS&>D$JDRtq%3Xrj{Ruwg?$up6eY)cUm5*^{1=UsX^D`n!B9tvyRBnp5uSHDk z-4JgYw!Z!jmaRq%*_3Fq=>aHXHPbfA#Gjyw*NBT{2bl{z7eYlT zhqE=8;@9k0*-0z<+>{vl_9?VMoV-{c1t&vCr~B_1pYJ=z0RI}X#%HSx>Yq|ZLiH2w zvGF;~6R-S@q*nN9L}Xx5H2@&>zu+NeBs?^lU}`h>TiF^LLDJT)*x>NGb0@@_a4u2T8iI{Sib zo%xHQNcEy4CV#P9(q;=U@~?kKx+bw(aI#$emkr}6f}xYsfmGT+vx&9AsB4zgx^(`VGdkzWlBe;8W^Twu`siu_ zSh%&;v9pz0gR^ZvBKc^f(gjSeYUl8ER`-4EGkwO{NS%@dXYNzQenk(V?yyA0hK(yA z*<*tJa7kc*>peX^?Zd)l-jlbzf@%rCQp}(-!@z4K@M?X1={oh8`Vrr9?$H)!%Aaj; zzt@0OC3&W@_}X)t>g2sf2Gxp^+_2o7yOaj{z56p?aWwFvyMiF$cRzK1y3oKrDSc&GZU`bhgyPQk*kL!)d;0C*)@MaK&r=pi19#0&F$} zC_`Mq*H(k*2=xWquEH8`Qds`leNaQK8~|=s?z-Ws)iHcQEt?xvL&3gyI2pN zdJ&Q)?X8o?t0C<_Q$bL70$iOKN=`lgaN2iod;>AGSk42!OD=nFMWYTmm51P3#6bggMslnh-GXYf)7q!Tb|OnE|%RV)f3g@1%*;5o+C6l#C$R zNk);v_x%Um>!sXN&QKir$PM;8wQy$ul`1P2&9yAUlclgc113OmEF(R-F6nXsj^+ zzUZNpq8t7078_&tLq&Zwmy|ePq+Cz}?7U>PhhrkX7N;ZU0>e%Q?G)+01|!K>Nqpz65X(TGkq^>Z5wm{v8yK? zAJVY3Iv9&p=sYWZRA#!O`t#@#%ilAW<6^EpESpC9_9wScd(-6tFHU1yvt!S!D0R!q zmC5iAq!I2Ig*il_rTH$UZ$stvR-`J|fDu$KV|d^p+>*%G>g9ZCH_-jN%;E9dnoeXMLp%~kh>u- zoA&16#ugK|*_=Ub_vK5O8T)0N_e0IGEFmnelSpjn9(g#prWQw|9EI+o7g0s`6%e!T z1sG^v9T)EHSEz9mqR`h+@B!ZS-BlF3e{ePON49LsOTIpub}HUU1sVn)oaF0?!U`x3 z_!aw6wGH(E*E!E`4QXDkcxv?;X_x<|LMvAsb@(v%a+1D4^MA`}3Jk=cg=p({Nlg-K zqF7&ju)^_Qws?)9yFQ@(S4Q#TS6}MJ7X0f`vnd`}RaH6OK))78AevkT9FNK zBw(u3AQOZdO~wfzzo(9Kdy`SJ`{|Tv#LXdxbvi5WN%Xc?R!Z+FX@INJXTE~V32dZf zM7jg?cvg~9*R66uwz(p(*}ON=)1(wy=W-+J_S&HO)zp>5O&NvgaLuU%OUB<9DfF+cz{Nk2jGaMXzw zn0X0K!942gCVN96?roU0tP|}yrvts|gFcM7V!77{xw&l*?*OcZQMo{_50tdv9x8LbFGyT(ik4_j?L?EzB z-M!NG^b2-Fu7oox;ghG8BQ=oS{`e;n?I6(1t^R2tB>W+pNyy2hr?Nr~^`#)GCP2|b z*;^Tkqn_m;-f63ltR6PgO++0=Ur{;VFoEx3wb(ixsAdliMqSj>0b(4eWu`N72Rr%Uo=_G zZypu)8wU;eN+4JHuWlstth$E9E^a2X+N$=+5eLKH%{*3;AXUr8$(*|!2RLqIcP*U* z&jO;XCaOsLYkYy;uk9g#O_VTTcvDLj68JHnG@+Jrs=lF>&t6OjMG1IT=qa>;C-@_|1?&ifi(m`2!GS_Cy&1Ru z;kg;+)+%Wh68?(SIx^_7PH&C zB>`5q#A{!Jm-hbUGs#deMXnoa$imDm1mSg8oo^K5cvJ9}i!I%1Wo3KIRR8tY*WWS9 z$I8U2?W$ZrOJ^4PqMjw|GtZiJS69g?3)YmE%jR3;(@^UPm3|99g?|#y*>lEl<=b5m zz4z;e8E>3EjIWZzTV*G*cScJ`TSjyB8|rC<1hsPunFe@*wW05xUylg=8ymvfzxebF zZF3}Bx*hqVCE$V4ZF^97@ndJDX-n~wFfBQ&3#KK2^ju=RARBNs@c;Kc4K?6!0l;O=Z1AZojh#vMVnO93vD??1Bo*|*4 zQuh(wyOZwKG`14V)BsR~C8k(mUI6W+7`nt(H1lxXRUJ@ILG|e2@uq3U`m`3iss+lV z#@|J?=ojI^Vs??zXs;PSBJfk!IzR;e`CHaMSknLpeDD^1+RApS;8B3d-1g*`>4=?r ziu-LpE$F%P?|g!An(s5`m*dmY6(7nPaF#!G6&^Bu9K${n#VGtz&ryb(AuiFmF>9n8 zW`eh)6!-1bbAuS;FD{RJ15%>*@%DaC*B!&{u$HTAub9X_gI^$r>FA$3k0!!xhMW6G zOwIIcOEpS|ViNjn$6 zki@cPg~;LXh!l5wPnGD57pA0ZQ_ss25osXnMFQOY;DbxSd}dtQB%pjKfrhAHa1vMA z@bFPscAiWuV)zVqcMr%7Tx@-WmC%a-MMXSekNb71fw64q-^DKs8dqAq`Zwjx2g!6V zfRPX_LG00agX#$TkDeLIkdN}huj9PkUM_KtoTD}I>%GJ1KokB{C5uLZzFV|odNtQ^ zo=sO?eP&qkNH9ftDzkUAB7A>1V6=plLURr2O7=S_m(IG}iu5g0pKN)kA=2@j{N~2t z(w#Uzfp74%syxM-UK)5iPg-W)D}G-|{Z8Mhvdxi^W-g;6wm>-n9-PjwPOMF1{sU&8 zv`B$N@OKk-8{Gmu2#J55&6SL}bfym?-cNBOO|@l!~mxF z&sI}27wXa{1Cy7K)0Y?oe8+5CHf`{@$eo}j$TDiVfzQAFI&HqNbup&V*7$J(i6oJo zh&1mmFxCnkYU~GK@!54T&qzo+Z}cF;=hG?VRB@Ea|CC2eY;-~ibiKY(P-=&F6W0nO ziLP`lx5k*X+N~>6@e`k`TJ{4koIj(!!Ao&Ny4$^gLMa>xuzZ&f(LQ2?C@6*z`GagE znJ{Z20(Cks0w|53yEMw@-Zu_bOgxq(4*2hwkb&Zs?UscbSp{vcr6s%DuEi-1WLf52 zMN{v#8=(9Ph)9ke7tPri%b}AvRJV7Eu$bJiEJ=4V}{8yG3$f}yQ%4X**8^x`nQUCj2^bd#L4;FtCXW^ zes4CrPfI$gUf>71bHuO8V8=C2P%6yA`2-h!C*TRL_o@wbul`-x1`gXa(G6~_GLuc3 zit2Pyr)00IyU$U8O{I_&_G63)okJXVNWW!rc5=v6^ye&<|69#0`zduV!LnbUyitlC zW_VCz#n!(?Dacor)gQplbefgF3~dNy4n}?@_P>e3Nj5)Yor9A>c@#!tLCgXqi~Kne zao0G8UxH5lBswSD(OrnQTeegs>`3X-Bg2SE%`QhycxN?t+z{?}v48w4jQEI4!Sho7 zAN~#28{M%d?N5&($R@((R}J;=d?4hQVY$BIlcA%mnur~obhrPLX@-P7QS)f#=trCY z>B6c=j|uBuv_qC>*^0Q~{KK%n;IPL(xjL(`xRxvmUr3PPK>|TS2np^^(BQ!x8fysd z?(P?d;O^eITjTET?(QxN-Z{0r+bR0&HTX^o^B2N2(%m=8h11oBfKDPB>OvwUZeuErXFh!d=BbDjPquM@% zI-VmC83_oAdACq#BYS=oBV(M9-_Rd6%)Ix*K6E?&@_6v6Eq?m9;HBDgW#e!JwOXpi z(#9C>FnkLyrMSY2l#}Dda^Nm2S53~g47GakaYvn+5jPkz2VRJ&lI=s`xMRbk|JZ$( zgT3*_)Sp!p*>>(dR`T}AE?v6gL3%pTeQ))$r|W5QYxDK=sutj?4D4t~twOnYUAK#O zp&h;`g0t7$nBa(Ix6hl8JmpSj=xtK5eLAG|=t~$x+%uK@e$`HH9Zg;0h9fdxGMu1CN5CX!NscjTkGR*xn$XvS}*@NvF1TR8kBCf z9;ux+ts^47IO)%OzyI+Xa5IiB;{n~?6JeJ!G^WH+Y3|nmv8Siph5IXdzqO+TA$02!m!6?&P2UDI2nN;dn@XpJ`& zbCou4Ny92!+DH7WFcb-!Ay}O6m5P$>|E5%BmV$Z6HiIlNo@}2w9xvT2DIgen7Paz7 zTP)oDjH)lF3=x7NE-L&@@=_G&g*ebrd=q^ma9GOcm)d3Cf8o#G*beO*yO3f+mIf?$ zK=0-r>*vWusYkeFpQA}@KBcLGO=cgk;#JI+v&AAv^pmfeY__I~(mxe4Zd+YbiWbT6 z%9>APnna^1y4pHUvpXm|?RQT^_a0HvR%^lFK&;OUI7A-yo&jMn&Q|{2 zeKCohL5W4D<%JeseYje(qEtxSzFxV)GqOM=%IxP6$>fip@RvC~Dw;}X-xRcn7L|-` zJWh8z*x!Xn^**EXsx=ERCmnvyG6hD(g+XG_Y)o`Y>IvU-Ahto=JXNUt~YSZ!95p7^85of8N5@Y@3dYCB{wvKb$ASuR5ot}^~%>$v4#d9%a``iaKEtx;#!=}5@eb0<+H zpb9(Mbb8TZtG&LD z=%mo{FziYo-;FYqDpEI8zXCRSVWwwLjw0=w9VvlaBT<2l;*Wg6T+ni_)WGK+Hh(#F zXrv5j9=lk!JOFX*86iwI4w-_1z>$9zdZ5NN0ZErC9@jESp?NiC`<)aGe69=ZaO0|- zB-K#5W|w7noJ$lVgC%T@ncjsI zZgLC!%J6`P+OzIC>b8PS@Z%s_nHO1hqp!k0eM&@g9J{;kaDp7$^S&XT^T>`-Fi$gj zLwGF80q4j$kgFFFml^QdEU>>e3xSB~X#YfGr$=DQKU_tvp6(T!dE#{+3z(G-OImcYaU$8$HD_q;A=`?nz^3??4&pbG%0lYe?TaFH z-Re`$J<(79)T}ph?&(&2XnAV>GUzw$Nl#_8F zum-(wNPy0h+Bsg(-9I9pGblz4*vJr$5#==ksK${V& zOLH8F4J>^2Ru7G-Dh>-G&kUFwfaQ=`IU zf=>-~P2s29AAHq062l`>OFYe#!m8xuBA?D_y5JpAJJmlBDQ9{SH~aL{6Bom-kKSt_ zaJD}J^N*7H8kufU_E_HTnUC_h8l0x-AFG3ooUiAZ4M#j~mvNN_MW!{l@q7LF1Q4rP zFO#!>{-NZb8lXkG5!(rIUE=UqG{@pJUV~qz3Ke|wW?XeG6W={jfn5s@ss*QuYiP#r z!AZVAid5OcwzZ$J__uV=J#{#N?yCDcyHvb&H5UoAIK38yPgikB5taoUW*+M#qra@^df7JW(up`oMlvlzkBSCX_5U zlz0)YoBO)xn*oE_5sg+y_YB^$7274AE9ct^cI6{Cr$2l?=g&_3aCaD$ZrKQ#42u|A zd73#`?p#%ibebM+2nqbnp1fejF!Wc#n3$V<-`LJ2A{q%D2C-DGKoX<92%CzPAftFz zP^_PT+g7Qn*p=uj==aX$TT&iSMo<8T4{!9?Uteh?OZsCz|5%DQcn7`>egR9WLqV4D z6*D>^M0u|VCyd8w#3s0G#{Wg%)AOdsD*P8> zNyIfm6tt%gqhos29_Y|5Ub8$PJI#93tCZ*oF_ZR)FxaEVVn51vl|FW*tk$5pL5 zf%T9riBO}+NSMS?X6nR5p`#cjUicFHz8bqlp*ac2`7h%iaF>?F^gr>0jfeaibS=h1^rbKV0#l!70CZuQntjaeq6s)_q zX#-eWWPH8t|BS=I8+bb8$<*WdZt&dXDAGtfchp=~KcZ!sn6sV|L5vU+uymH1RATg2B~?v|E=n z8E@Xxj!U$-*Q*1Z*QBa^U^B0a#2?|^W^^IBcYXM->+b)adXBDY4lX= zc~5G)#9bkqKMb8HQDAZVXCKw@K?4j~PId173zl?a2AVHyK%D*h62-Dj{YQufg)t3J zmBDcEW$PWWfX%c?%3-%f9*5|=F@dmtU*NsXOng(_5oa@`uOd4zf@t2_YP5)mfEajo zvS-XQLWBMZ93|jY`X+o>0wnjidik;o3PT~kjmvjX>@22y%RF_S-fcZ-+9WXp4j{LD zYBVf3+X;Ez_;TttFDhd9{(dr?B=tLMIIZfW=Z9WFiAJ{8T>Z~O#-y|JQ%WoV@^W~} zDC_o1_VRxomv}5cdASJZwS#P7>y_-Z?;Fx!o}WuolRr6Y|2*t5yg7Y7Kg+~f=8_(~ zi!VqD5zS6`n!i-3imti$W;}1_3?`{2;WYIvMi+CWwiBYUmASEUx67l$j`TG4@bd2cmWyjKPdpR^D4@%+-3{sIYWA-W%U_@kG9_G_v&(&~7526xDAFCOQ9E zG2o`&jae<=9fMIc3XL7G)Wedt~Ni=Bqh}v`YBWBlt~SrhTLw)$w6n+;?o~woEw!cmk=PXN6SST7~Xz zOsJ~km3SFMOrc()<(-3<<3<#tS!XXZ_50M+FxVX6WZq;A<=yA$BHdO$@pUZS>X3&) z+^xkEFK4~%HZ?w!!qIaD?>xuTW*8~&^4-M*Q5nrc-r@2nZeyh}UB1}&u*w>67!<1mPfbBerpy=`gpc{%x;9qiXS0f}3QH6ZRn)Ig#4E{x?)LfD&V2-OI~|mc?x}%T zO9L0#u1+UBV@QFO5J+nVkB3~5q#&K6R3Bo}p)$fHox(9)E(OG)C>D>k4*w#P!j1DG z_j^HpKFGX%RoDjcXH;%OrG~=~uoE$r)u`9ai5EN-nx|i+}TDbWqYioT>NYe%1-Cld=};_l`lw#;4C10HB70-0U&TXq);f z#Jx4e-a+Nw!9l4CD)&4M<>#54s0d-MO$SxUC@sLW+TG}fjfhc8I}^Fh$&h5k{10r( zPDU1;%jsWP37aO$Ja=0b(MQb-28iR?pY@fh;INV^iJCSUO3wK+!-lnY@Mt8?;aVYj zsNpn#N~CDVA>lK3bZ(a&UJ1~!ey zK5VR0OrP9_fBF)$e=AtXn~&-83ECqR=#6IQmfe?{LDD6vfxmeitz8Z>__%(dzHtAg z^|e_E7Mk_;n)LG{p-wA~e|jMvBfF`wfVVS5*3~*JDxYYot4{LpoQ)85ymwNZybXx) zynaBUx6|M&1E`^|THW#@3nDafnv3q}!0$xqW6D2;=>VMWMLO_g5CE;QgktynI(}ul zY2A$HTP2(5F-4QNJp>E3r_2SixsBfuLBp6TXfL~|f}iTk6mHy=SjglkSK&DKfCB;7BUE@rb89A97u{ML&)44XuTBiQ)^^ z;!Ne9BLgg)0JbG%%n$vNSVk||3{|$sG*g3Sp0U*X+#fl+-kDc!&SyiY(P{Ljz?Vvo zZAq{2eXVbbC@S+M(r%hn(DTC=F(0API$m+dssT1&yN8`7F)_jcraw*UhpB1 zr(N{Qt@>8I?TY)5$7ZYy^($#wem{vsMDd&j?zpG?1!%nfyUR_ z-Z6-TBRRGH=!j&s=H$%;8`pD^*5N(kmkw;j6fIuo&L4so9Dl9Xi9!c8+b8dkOYu31 zB!A^Y=PTq>Cmc6b)9Gfs9QMy(XdunihalatwZUYz9*0Xyz1q3Axa20BhVd|u`qV?` z!hLcEHL*r#4}_}w!QA!c619$-xx}G~U~>sFw`88P{4B~zT@4fJ7ZnzwRl9iLt40kbEJf9uo^?^JAYO>v`juQkRQkkgf>4YMf9M2fjLZ^#^n= z>r>Lrs2ca{YJ-BIO1m2zmeUaiQk5MQV_W)Sc(#WLwO>8cT4^KdqyC_39wcZhUWvPV z{U>lpiTwfG=Osj6yKc;#dBKtd*TpPm`6+n350UfG`Rfl?+B^tCVW>{=A0qY}N@9wx zFXBl(1L?4YfES~?hdei@Vr(Hbq&v7u{?Hm6)o*{lwEz= z{NW0*e}W)P84~T{V#<+E((psgw;_7;H$#SZO06OFFU#;4B9~b@QkerJAclYD} zZ3KD{`s+rAWG;$m$4okj0ntdga z+jLKG)c(Yle7J->F3b$C@{X+g0p&Jp0Kp@!-+f&^b6T}UjNpxtG$BE!np}VQRKeVX ztYr?6j2ys^k}$=4ZPu>%-<~XoeY9b77YF@G;y5tQOH680+(;{ovK z@9+`Rv*isDK04E<%V09T5~HkN{-V3AOP4?8eGTIuu1_WL?VO~26_5#v?&4#mK7hyn z)~wz3MH83S3>hi*Qudc$mS3 zxak`7%&v?+4X6Wv9<)2_h9Md?wR)#m(5ih%=KTQW;%RT??2BS4g#M&~umydWW{Kfw zkLbuqcP{0EQwnhJF+=Ez`|d>mM9YrZSBJ}}GTc)k13ac4;k9wk?cKO zHF0zh_N|^W3}nT^!YW0%WtziFQt(JR_2j&x%2+|l8t~|SxRjj$9!;EAGML(Vd8kEr?RJSYwllm5V(rgj=uktujDC`<+~3l#zQ$oRX?8zbqD- zCHaULlEPs_sb{9zt%00o!up=n&JF z&TgRa^Rf9H)kO&u^zBIWCz`BJm8`Nxtjd-hKog2@hjjxB4a!!tw)Rtoka+lKLyNZ) zm$C7hhf}+u#}Wpna_}$@8&Oq4v}~+{)&0y(b-;@TZJ0t?eY6uI3ry!Cn*t$(oc)H2 z)CaX)biCEnDLQZ`5#NCGYU&{R3+KC0KDXdbN{~q|7}LN z^mYR(CjYiTX18GfhMPiU3m7guE~rK;9K2FfZK-2$_TW?%`@E_pl)kQIcHcG{tU^4E zXRIK%_T-1{NG%Gp&f)l3a4RSM^P6?))G!mUyav(hw!#6V{NTrLXT3m1rPFa z2%X6X3ngu#!_63e&L2+M^pIl2VENe}chR^H)OrIS#;+LL4P)0?gns?KTA651Mt^_J z`>UR@5fL=3`|MB`ybdVE6^NsKdq~-1qW9;sR)6EwuFi&DW5mE8PwhtM3&|T~Ll=_w zpM_ASiyuZd(pa9Uny0}W({~xH73Y9OFO(8w(bm+-nnCVwdg_$UiVA0+l4>;(!dzUQ z3JiM=ftxpc{K_yRaOe+j!0pVxX&^nFfm`VmLv7I0Y5VhQ3c!-HwDsiy^5&o_92qev zXR^_E)?!L?7viRsyePjSPQW=MMI5bRpZ1;0Bjm){duNxYdzBk6FsSxqWj)e1(38=} z0@tke3?fL75n0&Vj|*r~wmY;6Ft@ymC~DG+6zMxtc%*mT0|$Z(*ERz& z{@#9dOq;Z(W7U-#^QlT;(sFS)s#-Lgx3S~iE>P<>Xy}SVKIQKWC6R%Nz(^ODjzKj% zxCf#2F~jQ-y5h&qjjrfRQ{o5E4lRAF@^%nCYD;>0H6$9pcX#G{6~+0{#P?R3V(O>n z>hO+DThr6$dJ*4zT&R9G+jg#xnx-WIAA7%*I*lLNZ!X!Yb$6TO-b^2|EL?7g~0sUg-rID`@Y&dWqn1PfF#i|4= zIfI=#=f6=cD^(r@3Y*H%YnhsiS9T(oK^&GNb-5X zSVEV65yHi2uF7$3}w>?GTg)_szcCv{` z5(6ECI-g;`TK<{e3CoTP>X(rQ(DN8lrBk)n63GD6WU4I=>7ztGAB_@JWDAN0-CU9)vZ_yrqmsUat#Ef^_ z2lmHKi_zxr+^UrZk14_?oH{Cc&nIQHi=4Wh-nX;IsaLs=E$#1$9m9YPm)rWQ;hNRY z^UmrYT3PSf3NX{r8!t`_SDGCc8l$S%TkDM$LoV6S@tH~Y4;F23XMwTO?zJs?4egvJ zf7N1H)lYtu_!hoDp0o5kH2@FG(ir-V-DnJH990feUkdy+)Td11K~`K@!f!4Aa%%PZ zM_CR|EJKc$TX9S-0g8l=QW75_=0|)!`Tew@OxW+Laj$!(fqLF6&LlRjX4_k+_$Nz| zYrwm3C;Unc-pfIRnMkI~3bq`6ZznOD*fWk8$`DeCFhHd;3fA^y3cfBV|Fh`)+A?NK z3eyb}=E{J8)@d?<9=Vw-)!sFZd&djoy%$|1rbUbAqtcXdBs3Czv z>Jn75J@gX%_y$8>S9$ALP~;rNsM6+anP|+*vhB{T%I~Vx|8cF!<_u2JGc4`YB5J^% zt5|z2H6k1;{Gl>C^s3Ej^!*KJA1Y^VjR!wS>Q@CB;$0d2VZhbz>8`bTe`M0Dho-zb z?;vM7OtwXvONsw}AS~(CLc{bHg5?*1&M2}$KvRqjV0?jE4QuyYC(m@yBXG2m&(?=z zaEB7>%toHJZF;2cFu<$Bq(=>-udumxC*9BE`E$~lgh*#nA=NIy?&Tq^1GRsv6+~zv zqbk$%<;!Oz;4gOb))&5y`O?*%kDmGr;=G|1IK%yA-VntPcE5TIEu9!Kj`aj+?DxXq z$P5=+?QLGX0Xk()6vPH->8^Zds9FjdrG8>)-Iy1S_0W{xpY4wI&{C9J4;n37V$ari zCf|7#ZTsPMnSt~)_4RyzoN0%XL8Z+%FlwZ!yN?lsI1IJWk8jM0CTX&&OsPoCnaIqw zZnxz|mYSgH4{(tsbY!Te-d1|6?}-o%eQ+yJBF4PD$ccF;7Lcj+VN3#S3l(30lo z^L@V&VEiWU-ix7x{Ue*_@i^zj>yJ+O`^vJx{Ny_nj_$06K^I>q#)C9BB*-fJ})^Eq#K*qbvzI;qz z9DZ1SBu$1$Ikm5^Os>6{<_Blo>8Aaj;s|pwYlP}@!)wh+@~iX@RWCr zqvPR>2$8H}YKq!Ye|ul07dC(e@KtRMxl)-P^CvsMQ@EGyJ2DmO6-eoCA^@g(f%0a8 zPc$9GHpb-1va2}$xy7y&b3trz-hK5YXb*d<&&CJkXJ3KH2J%TA0*NNEy=+Tk1D83R zB6D=k`wWStX!7%A0sDNMl1r_qhxB-{6ab60%XpUzmWhWN=;11BIuEDtNo!r4Xiynn z33QMwOywb4J(2ST`gdBc8mInSqDa*67{PCVAD3UzxeR;B41YZ z<`l;)DaS;YVf@o&p+N4#jPYca{i>{WIQRBP(@Tb*Q;|D|Z|wo)8ZcT?0!>VN;|!G^ zML&~Q=$r4dz{s?ax=-ouH}i89y2(KMFgDm)u9?7TqpvWlPP&8uZYPNAE%xA#r|w;2 zyuF6V_Tz~S(_NYai>MLx#&JzcH(t|C@BYIjtn^i_mcy{vrlqh^i8{U}tHo%bnfpm} zZgQF>cz;EJes%dd)3|s^Fg@O^)p6;F&bL?5)WiH!{R}mEXQI7vpqYU!V{&$=73N{y+HP$YO{HwPjcS%^Ow#)8mb9KY z=*12Ms2eZzYuACTmRG~0>KJxuiz%6Rc&z&YS(Az8X9TdS)IAcrg6*znB9Y7m4yJ*q zrtHVkFea7op9#FRpcLP6&-H@}b{NOHEY8ykpOYt-Mb5-rS@ zE-UK|Hd^3|yEA0qhFSwL@l3Z3r!)IvX%`%bSk6X7iCtZmUbR{SvuHwjXBL_54LBoB z@(aRBaQC0bzJ!VO2Vy>QSZU)u0eS0(S!CoX7heH-eOw<^`CZr5BWcE5vN#fk<-?G#Zh#@>2O zE7g*QupvN67020tnE|nnU2}O1Cdh)y$|T9ZaFAv&{?7)<4=$-R!xp6eKIRty-`WJ8>LMpVw#ozrk_x4M}mF z1J0i(L%xN*3_+*gVWpx5ID9-!T{4%L;qGx`%|E5gcV&D=XBZ^)^L?jLwuXn*2@71zZsveXx*Hm_4 zZ%EGGx-g#tDtqg+eqc&g%U1*XL3KU99={!A8BrRY?^Iv7P+5rTr4N+%>ws)Q2O&l+ zy`PS*H^WK518#IFOExkQX)4_fEmNYYtoaUdp4WEaQNJXOyGi`m|&9hnSth&^;W(%}zFl8xWlGJ0ZC zFo8qPXVuxow7UDA(EoH;NngI*BpO-8rA#)qu$yX>Ld(MKMLeA>CRMilDX?1{ESGT< z>gT6|9GfJU)rSlhEKQ-fRrA!nLa%Hkxd1jm$-e?Sx<$)TD(gLqwEZdVaVOp~fk|I{ zx>2Q&wvpsJDQ^zV0!s!wiF|pomi`}#iL2%ple~<7gG@5lSV74x`uBv#rIKL@H!3}L z1$eI4mI~=a!H1_4XE|>TE?Ztfn^}(==92?jTlOBtPwPINX{Y_hf8#xBZla4=OaB#+h6Nkc z`4@)+JIl4tLu9NjrcQ=#zysPD9smLO6Z_2l4({i;IwkUvucqfckq_qh|I9WiiwuyEO#N+Ze9_j?g@C?|A*ei4 z*yariRifCMvY&CS6eSSStQA$hlnU9XSQ~f|!|Fva0cOU0vz7xCtefC<5gQpMn9C^k>-(hQR zhgw2FJ9&`$A=wQjaCh*(u=Y0U@muBWQF=XR|<=p!|4lot8RDVyWn z92MtF%_%xJZgbn>n2OumM*S>@(|FG(MDuI?ZCgd=-H0a{VJzQZTl+S&Q=*G!1`MKT zjjA&SG8g2T$3-#j)*nx3S|6#5b$%6Tplxo^XoXZ$zMmguuAzrxWHAv!25$WBk&j_t z@NkY@eJ91W-Q0;ZoIdZgiZykk8gR!&O+WWL_jex~Zy!rm@n_mhF{95X6_M|GkvZ_04>-*~iY;ZbYTo+@589PmFImtOCx#W7=uH*EuvJUf|~+AZfwV$T&kU z2N8yI6Fb*B7*ebRm88u%3G4nL876 z{jl$lf&Y411Ilv+{18v&hGAW==Zt3BIDWgbIqR0p;dXj8n$=a;w~{Ib`|ka2NjrD{ z1XJL+YGSwM%U#a#N3*UliVLxE5w6Gg=6C8=>YZo*<=UhnP|C^H+NQqi=Whv8xlwx@ zZj9svRp^C=_VubU?zHtLgsVV+xEBehPti}NmYGItc@Q}1C+E+>BQVQW3}c9P0L1cM8D$jM7``lfQ-hTn9b-GoxTo6ZBh|+_4IoT zi$GGK*J9O)F@}1)zm>c_OnZ=#yvC!lzwJ)cWD-2ePi5Yhj5ZyCb7Bv(DZ;H!nA~6p z`C_KqWb)-!+6BO*f)TRkc3G$C*KEB$NPP@l5E;1px%%Ow{;`i=Ps}O2VcYoXw)Qg2 z`HL6~>!U}j)6|>gBmX=r*zM5NQ4)u*jQpq2*Mw@qBy$=h2^i`TF?e2uHj;8-z4TUN zD^f?i^wapHr4_{*gWIlnDSEV|8HB@XHIp2~oz-y^8(T)DPH~uf8zCxQRD;1HvdrVF z&pG-{7kD@v(7lA{^QacJ{~!+~9hdIx{g!WGchRDZ@KIHDp$b`5>aUVR18@=K9-5}YT^ zAxfw@bwdCkNRzLD=>2?|4B=$LF71_R-%Xk zNnC$@`1bf5(wLp|1=*;u055kg>yffLWEEF<&s{A7Z^RHquV~8JaF$7}&KOKMWOL%o z{ie4~7%;DGkpEFFB8L4V184#JgFc%7hGW9ETr`RfEKijMWC!q1#hj`&HSa(*B{+ zL80|TZk5+Se#u=bT7&bF!qLq{8i=zYF(@aV{9D?#-B&WDf`vG%lBg!gyFK-Yq^?xhUQ z?bfuk+gh8pi+6`1b(U=m?kPd!kvJS$?yr&;H1#MY?poJqmv8qwNmoqnj&9+=%K6?{ zN!ZO~dWCh1_+5)#jt1mx9EX#97r)BGd}enkZtRygM?7&jcv zeEi-qd7(2dS+Bns6pDo7PNE#O7pEe9Zvoc@z01RwhnY4Or3C4H!mMB-8i#vl!u z9;pG#l}GUu1=-%}&NR6y6vm#5ccnGv=e=EP+qUoDH&`(^jr;`I9=07Y+YWBF8`bRf zsHBe>Cn3rx2%z@)U^YGi=!ZC$n8HyxJ282&cr<*5F;+EjLKR=Xq`M6mE5QTQLvomI ztO3P1Mjx*JD8U9tjnejdiD*mwu7hB1C#%sAh~Uf7%QwDzNUv@lL__x!S)~p(q-Z&O zkFID*9$fMy&w^I`Z^#yh^&}}ATD@S2(Ng#+>7ep9vPJ#f;5uQSSW|-Yh##jn9rZEp~K!JI)g`u=bfcE65YA+J979QJQialrbmX8f1*x*phB4y+kC zO+O(iBe+_#!!j}pvl>W_8_G-%5(uI4Rhox=z6>}md`?Wc{ps`T8B#GTzaEV7)prJ> zR{k|zDS#32JrV7nyQC4as59!Hba1--$kVP7DKQ)o(@?(EYGeOKjZ^#$lm`DG$=Lx@ zv3y)wY*7@OvUy?F)c;5uRKUI!m?L8sy*uPD_~DbrJg;RLKcDFm`FvdPd#qNHa*%2; zIY>vyAYOF-OfMpWJ4ehwCVS4@+nr>LP?u&>^pqrI`9w~ojgi)J;V%SRLr5or~ z^v~9ii1`gZGi3<+4L+OCy;|Xx+KGA^974U!)ghlEVB+#b&R6E$>sIy0vDzP22Jez` z>^^Oa-5SZQF~7WNcsXMM`fTXllEaz>uZM<6TJmW+PJ33k$&J7GWRkRGpx!jx@SoVc zRa(TPCj8oc+Eu$6G$s7X#XnA`Uj*rm_VBvg^>eCFc@BQsoAD=OZBM1iZYLl$bM0_6 z68*-Bb!~$RW){r)6XWU@cJl^(Nj<7jT@@U_xF!TsjDOo0sn0=Mfxkssp(Py4n$_gB z{IrOo8|_BBbpq!s#hz}HZ9W&y?6MfP-Ik}k)oIX}8x@Vxi11??2W}NngO(3~X7q8l zeoPOvS6K}2-6;Aa%eCEEZcLG1a!i5LL#Il&(ab(E=EvLh!62+uDr-FY+*)?6x#paw zHi1uP3A{uMLkq}H9@qoo(-S#0R3w*}&=YOW$p0{emc4}2dWNopJ0s}cR3|p|#F_0Hv3JOHi&uQV|7-k#y)K2t{G_a?$d8C zW8=dH-=Hb=MQf;Qc4G_c4q`fA(RIf?4u4Mek84V~U0@ouMSCZ~zca0? z^$OyT!zgPWZIegbzyF@FA&w&K(Jp?o{G=C2xVU#031)e!^Gjq!HZ+I6`@`#;tCtCkNN>SjDunO zpj?PTsN0vH%|{1SZQq)`&u%VEs-AzgUr?;eCO^w}S*b?5eIay`;o!XgbtmkorRsRX zU8>?|%Yne>FB%&f@`FM%GMs3|#Dg7ZDFS`Ig5ynVXP z+`+t+*FWH&^_}1xj(NFy_dF@JTN-0}g5x%iTzb+hS|dJ7z#Fc)xQU%#JFm=N7vsR0 z(gJ;7+Y3Z%+U6z=b}LpshVb?=T7zZUP!lrW*Yw^ZGf0VP>o_cX?5}obJnwkfY|9@M zSaeotqvKdRN~W#)5+_@kw@3S|8@B-SVcwMt2DlFx%IJAmtC*N?r^*TXHIDo8NVk5${=+oPcisS{pv{P+*RTm%@ zG~onZHenfV;W1dQI&iI+09xB9EWoWB2?SUEj*LAg+gRl_$MdMa)hQQa{-{&R8wQPG zJfX9>Ov`{s^ey`d zc@PyZbLY)dd}p@bs-vG0uI}Aays}%f(uaMCOa~>GDhi*kvTLJOyU&VZN6wvIUG!ATJKJRKM9*z}&b$~jyjxMl!XYy^j@{Q4yjlD}?n}Lgm z)8{y`PvY|!(4MS%ig%UY2t`bZ;755{D`-@$wR3=4y{xAU*4mTdjK!h}coe6>9Lf1y z3|>0HC$@V?%3q?>Oll9^mEe{SFlgn>lPahP3Resu+0i<27enIhk9@+O0 zl~N?Oy>oQzupi~t5_r?9awN&KSrw%>11&OrhOI2vs1^NOzN-@FkRu$+3HcNGl_oCR zwZfyyc~al_H0h1iZS#^}jRz+1M@HVOXk>aaVdl6%3{H;L7l}?E^EB#`YaDfqzclLzFk>fU0E9Tv>@E}4&5-OL9RncTlSdOM1LZo_Ng2A0Sl#`}c-#M+@p7djzaq3g4k5&NUtfr1QrkU1tn^`5 z3)qLa9+Ffc7X+|>i@?sJ@hMjQetml7&7f8TxhNR&scM!+_4kvrzV9Y z;mTUgx1ro|a>^J^(E)2mvaHm>EzD7$M4VZnss&+AB{rUD3ji4-TNTIzA_lA1qr1&8 zv`UfQVE}HIY${Lf_>g+ygi+I`dhTsR0foQp%929ROPNxV0asH)+R?NMILsBeGZ6A$ z6sWmsKVhAhwDWKtajU^>SWc?VeIHZmF9zZJ`^&bCU%eX>0mlCF+fuGG3;vn0xK0NdK+@U(y~yZ zw3iXYpXFOj>H~A|62UxpEN--`+6#KEP@i074z5xV`@*?t8gj6DFQr{zF4|8jyUVHh z?XdtJn*)||k%uMuu$RmtX?9#Nzc;u&hDg|?%Qji($Wrf^UyGlwWYYUf2|@^7zbK8s zNa7kWvlv;e7UG1!!;}^Hc+e^?{y)*++Jw?tq zYdFBC{AHPQ3VBZc=AyuOW~v!j?TOTCwWi!*%LyL{<+*|%>0r=#otz<%d42(!e7m^4aB`3L+Jz8&Z3V_R?=`V$UA$cC+k0w>L`BYvd{QeAo(WHV^2v zsqXdg>d@ei2C>)rAgtGDpQh#AJ82~u9l1TxnSb!XTQR1Sz8OJOxcubtC>4kN;{)OXw?ga{A~ZVqqTW9HU;$gRRnDyaLoj zJv0aNoLT)YgrtFm*VW4ZB-YHyn7j~g#Uo?X&+{NdObH&W6$})y)U(EqAl}7W6+oR` z`qz~bVQt6t=*0Obw)Hj=^4D2`&DoO8$WaNxnWXYCS(%9rU;j&#dCt*B$rfP9zGX{u z+DxL4eNvWMKp`1Lq4uDu++zISmlXPq-600by^(Q0L@08ST)QrnGyQb!!tyEEnCpe1 zl2C}iqr(W=smNKf;I?-v0eL$9El`t21-QST<1i-II9U z!4GV_P*f)9Hio!%=8B&@$XtmES#96kB%?6!w;%JzdU4i3f$b&6xR>TeWCCeWQ4pc^ zi33?6AGisZnKki`2C?CWY|qanKBpvx%yql3@u9YZ569+HQv}317PEW-Mv1|Onri;a zHTDge@dE@9CpT)@lq5E!4t!uqMW3KDHCTLz()C#m=(Ktkix@j^V2a%iVL^Wj(xLS$ zupqfi!#U!KBv(J?*RGE7a=iXRI<0W>LaHOH8G@lfB;Wll7w*PT?T~@qR3({+lre1o zXkV+1r5I(`0lp8IS<$xq8XXwtd?Qtj17BDK-U2@Y>6E|NraMU z*HHd=cXrMr*t!v@`nc>Qczon{q$!uON+JG4gb8-=&49<5Lih7`ih)rM?A3wWnYtTH z!T|CF$E1JV#EAohL}72JcE8$sxtFkG@=01pRlKCn@KxfV;Bgs`Go4KVX#oIhx3IY= zbhT$X;$RRm*035u-s{jLMeWpOn7z?~M>#=182e+CBlhp&jNw``QQ-bcW0D^}F zfAOhCaz9K&pTIL4Ho#mpLhFES)*>O&gadiPG&Ol4Gl~FxAS>kD;hY{zR_PsZIcdwn z;H^FD6_#K13|{3ong2^)a3Qfb76zw)P+07k!}d?1CdRyq>T@JQhvgkhLfp_R6ObI_ z^#kd#pzTzdD1To@(EKI{jeX6vAIajA&jWJ>CL9NczBgOg22&50eN6VvA?9Ta%37DU&V%qz92 zVgLTU*ku2~W0w7Wa=0*qOGLGQP{U)6_BepPX-rE@+#lYd6;bqI<~~s^jN`0+zd?kW zIpr@HM`2dHkm5&~)mRUh@EUmnvj>oMX6=0XfP(lgtaF{_AIOmYvvskL6!s*BqE4m=`uK=T8dbX zay27uDkvfyUM&^aM~@Y?27gYQt;oW+A8h@zW|0ddzymeOE8UrZ1k_6Gzmn7J{Ip?d zRyfKg>BoHRjTx?0YskS{5VCSg35T`&Jkn+f`B*bL8~VfB&pSMP-AyjAIE;E0y2xr` zH5tsJ!oXGc)T<`pjZPKcKJr8h;h_$Tpu6Udmh5#WJP9-4Bw8*n^jFa>V4tTJ38qSp$is-*2edJ#@hlCYB?E~z@eP>(|FpM4IE_ygQM_^i{?=Ljt9$PC1$0gTXau46{FXnE4CZ=Hl zH}?z*DdSgDrlkAu=DdzXb%Xv!$sC|PF24kiLyK_V&f&dZIJqq@o2up_@7*09vLl&& zRJXKabi~t}^l<~XEq9w5I@ARCh^36tccd;7ZLB>tTb=|Y_EW1e44-}TFYqB^t#|l+ z+;PMhnnGZi4c(9zrKt>*20&#V#Dxg+pwFaf%d{2)x8Li{P;-0tgq%9oXO$F?FV zdWE|fY;w!xzys1Dq?3iKMC^tr$GcSTkE9Ne{jX? zdBk`qyZ(x#;~>Z;4V~@W(UlbdiT;n%kY#ziZ5|(@?X2xZA3B%xksZ!pUK{A6gjvnH z(7R~J(4ZAFxXS6k21d=5r1y*J76J)sTb9RnBJSIr$tn5EsRMPYv(uWhKZLhe0P zV-0tzokA;F&HCrNBMfTd>)=|LeJRZg_PMD>63EMLoSFAbqqn7L1=XIvN^q)Pvb$tT zbk<9e7i+{%LjfirIcDozum#pMDA?yw(X1o>?O;nhPF`VMCI+zK#jAWRe?~Xjx!5J- zg~y;pfj*MIpHFS1o}HllbUZzbomH=r*o{TY_2lQcLmtO*Hh#i3q;&YXuZVs@7*j=g z-Ww^jv6aBf*tas@i_IP07`|2N$Wd$^!PAWH)%}gHP3}0wvXt+fRR15A*pZD`3Ezsb z2CARy)a8p?nSoR{ph;x%`T-Ow1xFHlwFNR2(y;~d_ti>-aP#09&0+J9mhYTw-j`Am`i2oCf8b}5+0ZGXnc<|&3>8v_*1i^xSMkCs(QSMKq zqw2voq$LK`v8MvG)W2hDQ}Y ze9H*2vLs}LwAZiYI)!~uhh+Ce0=XkHGfJompf0gY~iDPm+4u zi|i?BGU_V17^;>SmDyTaEt)rVW^m>Y={=HH7r%y7^|A8;$GnD_Bc%@IHnEnq97U_9 zA%K@%Z%S*3=ui@0qsurD=;3qa@ilxpEE~4efyLoexqc6D|VP&3&JMwa?uL zSN|iU|FUr|ja6#5Z3?E%Klv}kgjyam(>R2w7NW1oDz|(wTsf{!$B`?ss6Kuggbm>$ ze59iXEla9Az={v9RiQskafU#V<+{uKA+(9EG!qvxgE2lAQf#U5~GKlJ}1+| zKcv)`(Lu0_vGPMTF{RnACpU$+*9R0dqANB(EW#X)ol-bI$FL*Zau!zHe?^h0jb7=f z4W;67H!a2{=P|R+#2|17s(X<$H$OUVU%0I>6lxkxUdEBGue!W0@oF`BzZY@=MM8VrS(Mgge(a!QG;9qGf9D26ot3ACdOuf(-x7&IOh4l zG~6(C#G_XzqTNaL-j*FNvG{u&lu-LvqQEulpYav+IOnGl_M~*hSBMnGc&6!s!gT8J z(Ji3fYv8M5D(VAVclyGHGF&L-F98;BGBhuolB{Fd}$qZ50v75b3UNv^qFE~YT zL@Yss@>_0Q)3a(9`?#5{Ar2^AD@#czzaZgchdlPD09X(Y47LJ$r6efqTb{4U?!fsZ zol`kV^3)Z5zWtDPaZ%W^EoVUpVAzdc#*WSDfZ3ada~zg3c*H19{FeOWFxPD z>a3e|cte@+PDPOXpB)J~KXWPU?Y}i04SS*S9Y~ZC6mN2ObIQ#Wb~<6h;*vd)jW&y< z+omzhw0Fw6oFj^GXYi%z2=`G^Q?OlL96Ma!C^E-LWLJ*jj*+jkF%A#>-YMYo;d^I8B3FqA3Fc6HfA|;; z+PoP7$w&5?vsFgZM#+@SzU*poUO;L=wjNXEP|hzyPv=$q?#s=3E%(fby=w0D31J;1 zYIBt<(1RHb@4al^Ns9JcyMpj;Y`i1PKu_JPPGib6C69M`fZK{A_p zQ*6h4f|Iz-`Oo|Fdjw41l_X^<;EfFK@L396liuXiYMx95jt znT(Zyvt{SDd)aDSF7tLDB+>0us{r%PJI={=i5y!c~=WSVN4A$?ck z)H!hml$w&#S0GW=SaNYH_qVq@_n!lfa&C8!Z$DvedW=)XHOU6PQPe$RMrq0HPk2Hl-=8lc4j9kyY%?u)-bv6(rSLkX)Vvq4e{_fVyj0ntg;>EF$x(4$( zgif3AtAjt5K`8bm5wV<Q`dJX4r z#wS;KxmvLLDxynr=zM|HNqsyz7)^-t2o36c3b`cP7ATcp01a4)JnBa)utMnKGZ~zV zoIt=w#a_rvFnPi92iaCS{ofuQ=DzC&B#RVOc8{ZjRef4j156rG9 z^jKqODK6=-7|xB(_HH;mhrkb^)Rx@qrg^MC?b7jbOjMtHNWXOYK31ANBeZJk`7j>p7 zEf@yqgi2ZSxpcb4^F=#u7hLaDKx|3W07TKFA1MZd&kZ+5$atR9csOMQxXo-`Z-Rh8 z5U(sJ{jB0nSdiSoOvq)|4)}%q$?iqiZkrhDxX5sJJIxz!mM0Qw*bK=$Y|LU~PmG0- z8hB_KY^OO(U!+0oe&DXa#4GMB@jN8I1ssfxH~Rh>IdVipgEYjEbd3`lS5!u|3jT0f02F(oAEuyR8m|%SUVO_zi~_xz zWejAR;w(19W|dU6uB^U^EM_|pOxEg}Z3<}p6_$p0__Rf2Q(ohFN2oLjnP;u(orU37 z1gXk57W;S8zfKLfJ-S@+WwBD#7(GR)52yGU+rLEPHU`Qy14{DV#s+}^fYh8( zUddGC^;^8a)qOiIm3!qPe8Q&=&X?BbF2nRkIe+ytyu%HyxZBW7`6H||2_4i@&pxvj zLgH%gzK90F>{{xHHZ^gVrt~?YCt^TC{E;OOz)@ZQkro_lzYD0xWYr*6@K#;@tXFpR zLlA$d9HEULUOQ$-C1`pZDEAXIR_bNounzQhN`6MU55K$(pO_O;pz{C8hCF2y59ZKs z-+os!)2rJkdy`s*<|IUzX>J{Eg_NJZ_@Uif!6RH}xlNusS5L~doM+GoX{=JEC-q~{ zsy?83_Bg=h3NmCW3p!qUtBiou*rN$;)_ z_SDsLid+se557ZMaCtUt`zIY3ODxEvPLbWtPfvj&EDIr)d+I`@g}Iwm@VOOL$#*d^ z@^jvn9X*NRs2&sPE{f(%ABJ01UE1S|K%_r;nP3j(?|ephMRzES-{Yek1_QND092L#%kD8_5_ z)FOaI@32Bo@VnRRuj9zh?R7SMDW)Tq(}tKR|6BD?(R(ZT!e@dOz5iwx=zw(SYCt zv$T*0+0zk-g&*^l55R-T<6@q|M4>W!K)sEz^04LD6iEM=v!E>RUEy;6O|C1o;u3jv zWE6N8M-k^a`Gg|=;+hrLgfnn#3e_KCLRY1ohG`gBgZd$FXfH^|(RCmoJYwr2=OIM} zuUe^`-Hz_v9@ISN&w9kYC(k+lIAgU?W~A-?0v7y7=l2#QG12pbB%}9}3bZ-xx+y^L zZXh=BJ{nZ&ewdnASA9kD?s>g#y>GsxGfSP)&rYSJVixO!GK>9V6ynZ>guQ}WHKu(E z@j{uc8e;ERZvvtnz00%Z%T*K8^F|a*&ffK%zQYnaEGqKc!#;@p@x%N@lu@$uJl!Xf z-pLxEE(1@mtT8*)hPa&Y!Coe>uKGd&!$Pcya?5YJM<4~6GR=|nQri^Sk5l#JQ~T99 z5;o%+t}`P}mnSETj{zk2rBbcD9}6jhqO`#+`p)oA<^GtBYJHTK#uJ2LieDQFqR z^*Y97dIDG_Rs;jj9$t}cUb##Jz-L9MSb_+LL`X}zwlp(HZXEW#lNyHk(L#=|7lpt~ z#T=#QdboitzgKf`ajSVPVezn9AmoO3hDR- zzce2UJn8C&1o29*%80>xhF?Lp6PLRqpIi#X%yjF181%gLVaYcf7!(Gr?gu7^I>jRSBH`UlMg+)i@2>Y~Q(MQ%+K_Pjf2gNyJTzmX zB~1GqvF8$a$bqdpi-|juS$@UV^h10iX$tnTJva}U`eYR~Rz82?-+DJMZOyj)XFHh< zfLd6sW!JQU*M(J^ud6f^-x!*&^1OJJo_M3aU*XKDG={9>FT$0-xYTGB=-T0PdY-Cq znHM3ds8y0e;|8>VU}W$}^2~g(LLMkC%}Wq;&j(SL5@r#3e@OF$Twu%C)nSG@BmA!x zuR*udZ_5mLkig})rDZcRZ8P9$foeQ!*d43F`3;OyN>Z@?oQbsHq1CXIgb#bX9 z>r{Gm%$cva;e<^uBB-x3?vVj6QZXdn<4RehQ$KoLuG#wrF!}>)VfKO>eCGq>y+>6I zO#{I>^6(QASWIoMedxka{X(s0Z}IB|&aYY}PahJpY-WGUlkY2>gntkyXvV1$#qEl3N+of+ymLL^IT8jZzjA11_B0sqbnsjp8wCOw z$w97*ITK`MoLTRV{2ZPi$DL0IeHHKpp>2Um3cQP_gkROe=TC&R^0D)XzQyr76O(sd zX6O=dju8VP2RHGoZ|6xvH@1Mw1fD34IH=TzU5|x18Wj|5kbARB(CgWxUx7hLpOw?{ zK9DLxD~HmT?$W!f0;{jSzAN_`zO{4mDJ0IH>&wqMsUe*(BRGw4VX z)ybJSKQ*g{izQPQ)jow9{kk^iW^6C8pJ^*v^H~+P?IW}J9Y02}&22&3=CxaOW*%iX z#EV2|dw1Ul@?Nr3fNsVwm&5IH1}ivU35t@!|rcD2joaY_Q4&D9nDxVnKGe_ZQ_?)Aj81ZtqUS z@*s_d$#ov9)bkAs_x$13xpbHld7E+`OQjQezq%CtAd_t?ya1`ar}&V*b&} z{j7&wrQn*SU>EXKMf%s4;Ie_GIN1|58c{E%%CseA~D+|M9O ztOxoG;;#6P%B)uzfi@Ug)$ndQ99Ud2Oj)vOY2m49e7aN#DniL)L=0m#5KJ4EL z7r9-XTEdW~ROG?nkyMO&T}+Rn){)d36(S`~$P}&Q8KM@TWEn-Z8&d_80JflNwYFhS zgMl*&Nl)uBwVnTAVyCX~wH(AH??b6vUzzp&mLu(bBEZcD@)fkQ(d}5h;1&1Cus@S0 zF3~nI=IPCIc(ZsXgoQ#$d@2gI*Y5B!EjM(@|6BFVceqWMdnHzteL9bDrgPx<^eyH~ zF|w`HAv%qWgHp+OT;yRg{U|N-$pMqt>8->)fi7q!>e9QKcVD6JGw%H-wyh5%Ha4CY z6#df5MtGbhlb0aU6~Z;Z1^O!E4`WmGN2Zp2W9{xL3t-NNi{oQ4R{t? z=7($ZQ<5CZ`oW|t5uMS=T`tsJn2+%2*~3ddR*L-~?mqT_6TbZzo_BTtm8Frzzc0hT ztr<_9anZN58Cl{a_*-34~?$+ma%~_uVF?#pE z75b_*A1YY&HEoZ=K0R-xxdh&|9$b`5c~~Ksn!G{t_G`J_a_G~+Ltq$`syr1xn|s9l z1yjFJJp+{e)t$~Dp4ljPqr?8&^~n_z!)_~BVC46Iv9@~ zdi*fCd7Votm$Xxow$m~Iq-#s+)?C-;Ts*ivf729+-wr2lX;KH zQJ3jlsUC~)+~U(SOabVhN=b^leVwnT?N%;< z`1MeiXcqh@Y|<}`!U7ET4(owej+I zFOZ``lSts)3zru08v{@sYnBj}s%WgID$xPjNfGkYHLsQr8wW?8tY55e$CDy%3 zl$o0P5GS89a$!9*NoDhex@>1p#}3=8<@1&NkHI zwQhIi=RA|l^o_Q`#iy!pIb#o=0Ys^_iG^y8^LdsL$Si!R?a9=TZ48jS)`*wK+SY%Z zeoo(R@^9fy!syk2C|z_W(z4>%@M&TO6XP>Aw7On(%{A(GP)h>@6aWAK2mtApT2s&2 zpG|AT0szks0{~J0002#4ZgpX7UsPptbaP)rLsKtMZE0g)X>xH^VQgt+VRU6la&b;| zZAWEvO<{9uNp5sc;b#q@+LtimCGA%JUG+#nPUokf}EipJUE^uyV)LKaT z)!+TPy1Tln07?py=qN-eP*70l(o$k7P*8{gP*89@NH7qIMV$s7MC?$X%eYl6 z={VzKKYJ?e$dIE>${2xs0W##W<)}kVjoGZMjpbP9#b#+E;Thi3Mj!>fM~Qr|r6hLn zjyXpb@t{+x_4>tAnQQ=iUW#|Njo@1oQ-_3D0gJ!0IP`CHG?n-4~3L|wxF3kdRSgvNbAvOEEA z_fiF7zssaK!>6rFML(wzve%3H?uW{h*QZHa#>cy%w5Pn+?AFpAT`%+e(@%f4 z52~!N5LCBrM{d^lm#C7lWy1fgQYn{XIDoDC>YEB7lg?LazjXNng5oU$e%C`#7-)9)_G&w8&_o1K;QOc_q*{p?GbQfKs@eJ=LDAUq=Cs%qPg{Y}nowS65OE*n1k;@wOho5`M&$Kp4W znUWlxI#G$rw}(H6(7Gzp2k~VxS)O)RgyZO@TW7Somd$0W{a=d(0msr`nbL55#7=fS zK+dRR1*A=^bLKuuebD$IT3~$y5xSJ?K~^c2f|ECgKMZmTD?B@U%7m(X;)3TL%$E2? zU&E8&-+P!d~Z8H^hQ__m+uYnprlb6e>n(j%Ko zY%C>eJKs!=Mo}j0(i**)7&vc*#iCSHqj1z!+zIxn>?QND_@wAexv$#dki?lv zJ#>Z1-mUUL1uTaMw3ahqmLs@Eiub-aY3bt4n!n5X=n65qEc;e7$tVK8mByu|HqQ1% zpA|cs?i-+)|9#rn%VDjC&mKF2&{c*R+3Vf3&||}#;mc(SvHj}BPEz}F^ZHuXb8IRT z_qx~7Y3#c=gz=g);ep#M;u@mK%-!#&eTo4H?k?i|X^B0kFaE8XO z5Rr};Ra2GCSfXx3ff_rZW!hZUi;@zuSEGPfq%;_&>iJecK$?Rv0Lwz(CI$g-#v>*( zvAwuPkbz$-JEe3)qpgRQSJTOfWxnt`W?{)3wLu>=m1wqWH7Ajh+%~7R%xP-d19>m5 zg|3|R1QzmLt7Oy#F2v}xh%1*K^W7MZ%s!~X1f3@j8B$qPrGge@J*XsCEDbAzIR9)x^SUZ<;Z?y)mY z`s>2k{yxvQUCoDvFJ||KubjjTLbt81ug~kcSsY92?Y9Yz+c#ZL zmnDYJ)&r%2z&p%WhZ%Y9ccg-P5Uaf#Q||QQ+(Knr2jSfXWl;r84kkuDkORP69H<%* z;S!peQQI%P-Q0DuOcGi)>zskbz^Ffv5ltiL@i&zci7;9U3Pn+kw7rp*-nOS^k~fmC zQ*0zH@HUFxPoq|SJc3pGNjEK8^+#sUbV**8gRsPYOIz7yK*36Ny1RTGrW@cJ7lV+> z&Fbt{`W)D5!|JH7_ljw0xj%%&jcy&ix)+f=^slz6MTkVgm6aWB1N{OfXz%KXlckHK z;|roGK^j8lW{1j8HJZFW9Q|Y)Z>^1}ZTc(IP8t9v0$;H3)!wyt>;7KFx=xzba`+&W zx%r>{SjqDUig~v0a5U`;@fGm0yerL_y4C>AdsI~zM;WTV10wH$sqCE6GQv31ktZd4utcUGC3@fR z2eGvENMY+GG?Sz`>Wk?LV@G1x`gkg5hw>CEB>*?ewN+sf<27u#Imy5QxjoTz^-9OV z`s6{nNg2rk&8c~roK)|Ttp?mwub|OoTtF&it#Wi8D9Co&H_M&1K~}RFCv@smt`>o= z0brws;gOa>I(b*mACj)#mDXro-aqVU`$%`684;nN1`7PR^WR2E4P_Xl5p_bZsCP-@-v=@#w18dq z`Gv(ICH8)A2VSNlbHK7zk3P8(>q84WK%8Sl4O=|&67VXq&k~#A)H>q;w#ie0HT*vyMxiohC)XZ6RnnUvk%x~Rn1eBXWX zj%f@)K8=&)oG$s%UZaLD9~;^0iX?|e9iR2LaY{yCD7J!N>E1* z-jOmUvWf1f55sqpt6oa-G6^q+wv_v!)Jw>w`?nwLHk+K&F-zgw2_o}}}k?K+Ih7E;A}=BA>;Jm@~u zG7su?PRFOcA!V9A8YIVbjp7Nen(Ry!f=@R*G+@0hO#Ak$5Y;Z+>qV(R|H*$wG} z3DRh6WdFURE|XUSH?;DHzPd?V9>1Xi@JPo#^-cE~H;QG#FKF!%9YCA3Sb6mV-^Ooq zxNovwhsU0mI#ko*#T|i!$v-9xDk80>OR()3SA^phkfZ7VOWxDzEs4)ArXCdmwBu0? z)zv;rPXBzd)^}K6vh;^iL>Pp8F-qQeFYpp3W5)R1~!bfkG^lrgHu$W{xtA5vCwA5vy0%)Jo1V&L% zoC=SP(Gg|oAWW&rCD)ZijA8MlR<)vBf9zlmT%P6U!g6McNS#d(HUE~Hl`f8uAPfSM z=_KLksPMBIvlh2CF-#RvruM0!CaP+g>29OC2)|=zl1Zm@KEebVaLOT`%js*I{XCJTR8HC&pBjf*yF z_fAW#Va+0}2)gse#;~&O`9}Tqp;q?gTCsKK*3bUgy}P}^)rM;^^l6@5wff=dXU1Fh zRD;~S4X^>*;#WuR8zS7!K8NDA`D480s3Z?pX@kr+dQ5sD?_8-JT|l4bye`x zAC4PQBnhyoQwJDk2Mnqzf?TPTDC~g>dQ*66yX@?C92A|`*@Rnt<=n8y6ynPYrYN+V zB~7zmxnN~l%Qx883`00frsHGJ`)E=JijRz0y1d@fdBT^(n18j87c^-x){#I^=zJ^n zh7P6^V+o%PUqvyqFV`$zeNE?bb~MpI|OzOOs-&Vm_h%0jmpe0TlTa#F@?Z7#&AoLP3T0Gm7RdpY>+Qv=r@<{<~4#m|IK?UN99{L9nQc^vF?SK|W6GG^T`kaVjtn)vKj`I0D#xSYv33xhSM~BDq*)QA$;6lZ;1^ zR}6bMl@XkORBh%M7&P+Sdrj_(y!Lq5XFygimOu0%!3qaQB2G#(u}R#(lA3j@aEEaI zz>FF2M$1ZG1(w=DRo7a@8+t&89ZrpBJM#U@vyAMfPJ;Idwz;68pF3U~!c3omAvv~Y ztj7dnrcw>~7ysTM_7o$dt5uivn%3r5?+_J728-v}wHmpkoenHQ1)w$@>mMat<zOPsrOC1L#?pL|KZ8T5K*k6 zEuA{@9pfj&N#b$(bfgneTmag>7V{AE42szvm;SW1v-Z9;V`oNRogf1KGJ+AZv=voR zx(xPrgDX8#{rjcZmcA>2gbbH)!N?vwmwT>n9KOO zG)f;DLqp~Be52uX-TlBN1+2{H^!jpp8da)z=6O)O>;Kps^?Hs8 zM7Sn<*}PQrwN_lH0c||x3apTMGp+^@)Z%SX1?op=M(=k&4Ul^wJ9cMNb}^%#vN(2b zId~&ap%Bhwq7-Xp(?}m)n^KBfw$MlZaTRKNqW)6?@QYK3LCz zCL~zAlBTIu{VjqrF(Y{MT1pC8YO~}3enCOF?i{TbsitK@FOrc?kHM){K*IfkU<1%M zFuK}^Rbacd;Uthvna3VQEm!E(G}41TrB}pWj(3zIJ$*UtFwKCGTh{St+j^8@mDoXG zyj4XB=&wZscDsql2%~Vj;@K+kK@aqG_JYJF;>GqEHE~f)0^bgzyK-5}t4-9ym3SXB zf+@|hR`hxXUZ!(WC=>2d3T_sd{|YZQ2;G_{U#o>XJ!AN7B1(*dG*@YmbSZkK^UPi(Mpri*&|TdT6JJ&agCv+)MO+{Sg)hb+gyW&y{&Rp?{;^?i(CKhJO5{vYUt*0(3}9Z->XS}MHv!c+Q4UstBaNf4=sVRn~t>#X><)s_It5r!(0B-{kr z6|{^*>NiT?DY(k-1B?yX;iflPL02FO-Z+mzyc+ys0Z?XKC2b%d3MV&HM}bR-_Rc=2 z5Lq3lXRiCvL5u^{nfh09t@;r)vPCFTnXx6On_1@9_)toR&drpFkcPK2IW+&!?i0Ex zEP*5lcr=Rk(_687< z)=7^e?l7PsvWcFT14jU06&l_BYrHZ%H>N<#)1fe==L3$A3~Z^nBJ)i)yf#@KJ1c^x zKKiw?QToVFp-m!MiOD-?@*7^29U%`aXh$5SqATwiN4kVz+pwIKn*z4+ys!o+ z=Oyek%5^MNZCF65NFj^Lg+u&8({8=hG*n+t?3m{W^r9(rwYI8ak!IMbk;?1cbZMtk z58eYTB%0Wj0qiN%lu3F7s8CSwJ-Li?DTwA+MPg=sswY3O5Q312YV$P{v$fag57XU^T|h3 zJz&fJQ*%R1Zsa5gBwEtfa!oGJD7$swL^gtBNs2LUc4)kh0k#29*BLL~1d6ey61o>q zy*YJxs}KZDC)g^Dj_6XgB%wH9VQ&5*$!NGZATz7&O-(#k;d=^g+Dzq$y;FG$;}dK; zsn6o|0xoH@%X-*vR1UrK$~AXK3-BxC;f#>!M!04-y);A7a0YZtz8Hl96U3uFhoj0m zY2{<+M|dksWULM+hvtjKOoL>8xy*m8x)h_ENYN>QVKDx%Kd{^)lMmnWG!R6t4H<2n zXbNquEtxXUujaE-RnJ_f>2wkA@HeY^G#dNoI|YC5@@psqNK9~0P?y01sDFzJC5iVk zJO7Rf)x3Kr)O9$)m-aM8cHwVwZbGJeS?b?bWAuIQ^~PTI^?34lJ-}QPGQ*z?>7Evc z(ovm%N7Rb&PfPt?>cR2Y-8v4?zWSR|Z?UJ+sKcJUDEjCDr`6AVW3$RsTz%B4cGT3A z<=Lv5p4H(S&YcQ`g>IdOV~gNwM>g*7d+?ZBRT9S`#hZJMGPSimvyo0fFW_gkf+muK z0t=}nK22$IG~{eaErBrQa(?y^y~VKap|ChD)J(}=sbQVeo8A-Etad3asqWyU^vE~D zPoYPh>ebm2NxxCyV~8{A-5c$B%%;%CA81mRGbPo7btQ(y z+YhijPjEflKE#zCHeR#TAeY!8|1{0^3r#^38d)!i zKt?4Ax|LoQ>r1Kld+Zpv2RS(@4Bpb3txRT#!8r3)u_$_3jjx{UZ2b3<4o1c%nP1z_ zrOUW1;DEUEkDxc17xE7u)seX*l!pJxw>5id(Rgz?i=tshz zv(q|&Q^-#c5sQm9qwlUW`eIwaQvOF&(J%?X%+g{yVX6@)gE4aq2B5)^XM|^RR(+EH zbDFm5O~JwqIU^ua9t~uy%JzT>cuT7tV!jt}03iDma_MCQsDekfV~e@g$+)02tAj*} zNfz0o+Aia*l@PU)3%auhO0Z^Ya&$Vq+`};{Ur*LOFxy0e#kUNJOc#D1FA05*O&X!c zOPjcHrVX7wEI4)GH8xkQg0OpbzvX}KI?oKz+Og8dsd;Y0*LWC1AN{^ z{b9GGDBi!Xj)i~KkZ7HNt0-WUx*(h}^lkQV6ptFc^AA7-gNl_buEQg3Ezkp9c8tQB zYDSB`07&UOKr$Ax#V9@a&3XzsZ1)_Da@$1tbr1&*mfj=BpjbKvepWMUL)YE*%+Evr z%aUq~#?B>|Kr4ERm7rJw8NLASZJoR7Bx&e$aTuX|pSsRxlhD!m3E~75_4=ls>7Y3s ztzG(b5WPecqfG%KCdN(FEtnvCW|3IpjT8j)S@uf2S(&LXBSSiIh_p$fM4 zlsF}`;F8g7dKu7~K%t&dBe4^&XS6n1(oN(MuBWyu4{Im;n--hL?B80d(N#^Lf6Y;A z9qon5&~kMS+mA#KltHQB#7c~9TskzhDCt-5iaFrc*DQV-uHu0CPNkK_C%Pk6xF3(# z$964D3(L73LZuZ%&8uUI7Z8_$gZZS$hb zb5@7ozUZ8bs^#T(uxl|zx!vLvC}0?z!>zF)FXRupv*?r{r+|z_es`Y62 z3f!8>GkAD?_K$kqz?`2#xITOSktlSZw43*|bI9V~dU&&P+kL-x0JLGr6|5GWwL8bj zMOi2Bn1kQNRB%e@Y1lIp^I4d^D~dI7d#mjI8^`i(R9bcpzn)X^DL)pKj_sQEXXt!r z^w9?>SO^TF2kuH1{Wh09(0wrCr0uGQ?Q-MVq|obBoPWnP%d69x|Ev3IfWf8z>sjXO z1B;ul>G9&s(R|K&cbup-7~+J`{z#YhPw7o;qRDqPyLUox1E3H zt~Z}e-(QUu$o0tbKtY)b^J{NypX|!WcWP{<>(9>?G@D*XtLYga)?)}@6&GX^zTwXA z-IeX^{sc+7=?Q*)YPv3V{yA~7=;$<(2uaaEl2?n#$SFin|9qXtPX{3Ui{ug(-SS@q zRM7vwf&wsti}*GIde{9W0%xVCHJ?zK$%ZhL=n@%Xw#7f1CG))?aGd$1bJTo}L}&45 zKLFr$3vCTEOt%%>1N$x|cHGUQIR~VZG3WR2G{mc!`Y+xyz{I&y?+4PtxD@~|Tb%oY z#fLlNm-(85?p~%G2=P}4w44*-K26+RMwyxM9sxW5#1tTk%$=W;gIP_b_Vgn41-l$L zRk>B+vz)Oyxtl(WY8#0kP{&&s-$6h}=kwwIi&HdhK|a#QK@9xJw>98*lemsIjb`c` z6TT^}f~)XCEeOW=62h$o=ISHm!$9+3arH@lc4s7#>P9b5xa{$Gh_?&ML|tH^vKjD;LrO4V&Vi_&}YH z-c&p~^KMQe+iBxs1KwCsgmgka_v~kO|Ax>?ST)9qiijcd>4BQ=9U(=a`8&lsc&Y{F z%=3lp>x%0P?>Plx^5NB>!gLX!N{Wh9Sqh#QTq?fbU0H1S)c3tE0)P!M47_Z8tyBZ3 zNR)!)Q_|v`4UUTgMtX!YHH0~w4yc5~EOTyZmJTEmH~*es_!*HMMN@@Ict=d$xd!P^>|u1) zusR$PpfA!jcUKjIvN%auY{oY2=|1i3BkiX>g~XJh?RmbU%L_{gzZ? zDqI6SP-XYi<yAV$R@is-JTlQTcbysa(tSHrvMZ{XW zJ0Yib=G0d`6`U+w*g~Abgh}46I#RrIm9r*9dob0Xjj^;M*kkj*$?t`5XKpj_3|jQC zpjO26nkYqk+&okpH#*rpl3-21_#*0g_hByqO=ndk*sZ5TGX|W@x`0FA{3jhV3P4O_ zBc)%?>=4)%xJ4yOHb#P=11CR8E#79-DYhAnZxag649U@k@dxP^~tZ&s-eyRz4%JDifNe$B#UNQ3ro=%QFG=hFYVyy(e0(mKN_Yp zgBj{mqQ7y6?`;!|P<I>C`Pb{+w;dWSFPq2(TM=K>4%U;SfXoi}1?MD$&KBD?LX6 z7hNN3(%lLGSK4E4l^Ny3anY+2w}2_vu?kY^w8{9uS79q`Eve5muocmk*ea+KX5uh{ zDLb0Q3?u;4S|KxmCQ25ucWkk*ACN5EAFM>vLZuiTN(9;mZCcyBd*Wh86(y;vv z?DW!!M%p9|3wz@9dM4y$SS965R1N=0h_Y?e9A6$jHBrWvisE?OkvSuST6qaSZKdX| z1B5bb{B$ss!uNdcKM|d%_WOr?lgh!eH^5#8J8X-Uv=SJ^MuQiX75CJgPq+>Jc)wUI z1+AWc!5GqL0|A2?nEGo`c+AA&;$?eT%MoB|$sIcYWC*cE)FDv`PzFr6-Y#u*+ zr1YY-|11K{uvxR!H63*2vTnP&cziw0-;3W$&_4$Nxiu5eMV18;YslKn=8M20@logu z6aG0rn3ehw8neOXQsO4=0qMl6&mkp zYdOec6oVu}Bf}SJR`(o5Il!`k@rghIJ25=2Pthj=yG#Aw;a5a9D+h_sUyugyAbE z^_#yNsg{HlL%n?b)9_{mB9{ZqBVwiG1go(Hf+zvFzdrNu*QT!P%5^ajWyFLfd*C8B z+LFToQ&_L6hUKa@m8Y55(Ves+YGl>wc)Fy)WLD zs9Y{21w&X{w!WS6IWm9sOE(^O3Q6sT~r)7uiW-An0_p-o;lvo#6hvlhMoiFM@nH4j!0)kt7Eo{QMU|08Rh`$G->?!5fVK(nJXc{I8yw5)M%| z^gj#YDds+264K1Vi9x*IKgGfVrTDZ6*4z|o;hZq&mNe)Ju>bVXA!oG?P~}88p2Ze( z?u!Jic*xTLGAA^)rSLzsQkoQjZF2wzOvE9S{&SDNh&b|5!%qs9$B~L79A20aAthu1 zZK84FKT*i&3I1#cjlSRK$d$jqn8RnjgJl(f(3pfk0}bUGtVx)g)4A*NAy{0g?$72( zmcoP>E1!T_*m6APJKp+y<(;lC%#zw*Z%^znOpbi$G6u*S{>fb+g3IRY8Nzj;0DO!R z>_a~Q_cChhm>d)1WWAt<85U)UmaI4eSw^fJvxfn70#xx)efTrBY1zYQi{rLA5|`cb zS1}p|5+OgI$y|YUNDZ6AMgUInhi$n$LEo#raT&aUrB-K)8y01_q!EZb^fkp^aYq(C~T&Dtvr= zc5_e}p6!ngPY4}JG>VW4o1MFhZ5oAa9&=FoRFPz@L8p%Pqmkoc5;7{eH~82pa1c^K zVmru_OxG#of3RhA<1QLENvHg7BfOLB$#kW%v^J}D51zes=;xd|-N;?P$H}vMS!HJN zgrL2JRW3%IQY4OQr2H68(%Raww8=(K;919&Lbu=ZVnhFE3PT*3P|YmC{hX)I&&yB2 zwM)DYxl7Mkb~#I)KeybIVg6j?GZV9-=sWC4b zt^WKjpH~nkpJ&2~DN-7fLD{@l!wD3}#!K~Pmo%N|>DgA8?>_c3hK2`^j*dP*-qz{> z4;Sl9Bq)rWH2BQl; zh1cjdpB^tY{G7;HX|h|nzxsK5y2fY!qoZ84G?(8~<-X;!;})q4NjUrnrvfNsLD2oW z=;tC&eFg6$U(Jd|N@3GIWNg~y?Z;kTo^ohP?KdamL;rvb(xe{GqZ3>^neQGkGcB_o7mJ9F9@x&h(}THY%1am#5s6LQW6yj;p_5)*DFOb1|` z2k!;vY!56Lp4@_jk)WS#luF3}#L$sPL+ zge<(O$4dKl^;2@+T3<{=DF|lu8AZjL%UDL z%8B7mx5uZO-S4yf#OOpEO1Cqyj)687u$fyn!ZhmvU1LuOjYd`+`FW=|t0&{9-CcH3 zx(3G=->KuCcQ#ks=n)#Bp9#6wXkOh6J49rxOQ1U;hyKXONXPBLI%kHJp)79u)R^se zd~U-E945U%@W%(D5K9?kL<$!F{7p$+U47d3@#bV{yFdEyDb9kB`(t0 zLBaYfA$tAl%aJC{<{YpFhTHSn!kKF1YR2mJm2GzWc|wQMw9f9B&|_{#I-C2R;^|{d zM~!|L?~RTLt@!C1#~r1%RbHRF^Y{;+2$*ylA&^?m7?;{yA#OJM5A14-B|`IIu10iK zx^PgHLFe*YRTRk>BG=8LH4PnteZy?PVk)QBTq?9Ya+rwmm z<;UuCq^_6VMV6rE>dOSadzb&fS(wk}k15Snq0LCdQoqfDw}u`bO>9()==+n;`$vP~ z9w9{FV_2<#Bg1qb=K)faRZbtHZZ3cCn{%Cy4?fo2iEc{T^xBYvj}(?oKy~s-wICJCc7d~cf1rw z5yl$wG{-$xdz@U!T>{;j*Ix#U7F_*3_Mb+ksVP)T4z6Q7P9CN(#sHXMGGgLgCckE~}9A6e`nr^PUkX}NP2IF`f$%;mH% zQL&)@B0SUO>@yBo&-#xS>xv2sgVu)Yp_#mgAj=q^|4WB031k(^dN#Y|Nn#))tWRUw zmb#3>Wv}`!l&!yNxqtQgo+V7+6;npJ(x?7pjvLb_BqlGampNVRU^>0i?e^K%e3TWk zhQ(#;czj+TygU2)Q>f*7go+Qs;Mpu!-IUnSb$MS0ck2KDo8KV0?G(V zRS^&nBE1u8LJLt*P^wCk8jvQ^yR<}#bO=3!7J3bYmIO$f>*(}Z^JCWBAFx&k(9d)=SzZ22+1Qm1uoKPTp zmAX&WofS2X6jTiuYKzh~3FMiw!ks5)29-BWA8TMTs69Hbqu*s-?oPOAIC|ja)7_9I zjPMLvHSAs@qcU-UI*EEJ2#>)|UsYJ7w!hwQKhLVMBwzohz{09fxBJJhxcoS_xl6sK zgu2le_JN6X8RJa(u*hJ0xi=<7pi!trU|%`jUU+# zjY*wUtHl_-5cF|oJv_mM35Je0MayuaRVep}uiL35w-l{6Ry$MrdZ#=+anm~MoSv+9 z+8G=x5_lida_}C>fL?r8#oFjuwrs|te5ZxXzW?&|zHLUm0b*;?L5<(5 z^;$yDp9o!?pS5wirmPkpAJ2Xi&_*^w!ZjWM{boW14RkFIGAniMb{0Ba%fdLf z`v`#OOZ)J6iFufpr?yg0$xR`6+HVC`1e4)*%T~LeF4~OKrdINpR|O5h?ta^Q;#VJ^ z<9#BBBF#}CD%IZ8hxZLItG*-IWQ1sY3srTrR!Rn&`062N}OOX1Tv|_;Hf~&eGDQs zDy?30;dS|mPui3$g4hv*YOJi252+D-FuQ@K#b_Y|AZ;tkmi}whq6v7O(S#NirD`=A z=|ZgAUZyCR)dm-pbAAfn`thraa6@LZSFnZ6+C432S+LbkN}o{h{%o#Z%9xH|h`|0a z8_jFJ;wn2&cDEit&!NVrFXEpka1%;6Vnx~S%)EF~VIL(BzI>rW;x^xJ){n?UT$yj@ z3OuA(6}6XdXw(Q4_qqU5_Aa|f+Vmu4jAmTVhR-0Vd_J?Jg=6{It30k`t0c%NAJ)$m zwBOyJE=@l-7Ho)ns*JtThI^i%wkX0;E}H?_l-(S#GEa^fJKX!YfiWf!ZaJCMNbT~2 z$!=5_JFMgp=#?w}`6l_hc|g#1_4FEFKa8t!Zh8Rx6+t`8rF(E^s1TUm4-?JyQYPw% z&F@v0Iqb1W>HxL{{r!})x{zwXWA`)lrAed9BHggGbVJ{l(ed>L5Y-@P*GGL;<)F>x z==Z{4MpwT+SjB7q-OhFv$fWkcx!bw=X?0-9K(Z^&QT~~ilVmW>Z_!4|ee!E#AZ3tv zyPK$!B5VO}`*qC@8Td5waQjc|A;*N}#5$I~Z`)tTo`D5dqPPG00$9*64qYwgAMyvkN(t(?mjhBXRP5)IGoj!kocN2@d@t(-kUHpo*mNlO&aL}N0+q=lnDwyt zKp2L!th2_9O?wCA1am3nun0U0Dna(=q z6dyEg_ob18mJtNcxg2pr6vfRhF{!Cn&3|=8nrzZ5Bl&3r|5OPTPFMX32|In4f2_jJ zxrUiwcBQLlWfb8}p851P4b>{1i=vTqL`KubqAj zPOBg$y-_yc+h;hHvm8xG<^aT58plf8&Ez1oX}gI-0|@&4gaJn_qba??kVgIn%aK1J zQx`;U?gN$orF(Dy?`swe|Pop z2kmV3WROaMt}UPCkspQ(svDD|R@axhoirCP?vsZ*wl6zwC{WCs@?bAB=RRoxrCursHEO&CtFn=6TKqVo$K*Crv!m4mfqqk&Vu*j ze8maVC{Nvz-1#uHn(yGSqKv(P0E67`t{457Bc>k14*K#q*Xi?6ZkEq4ocBAR5k>SS zk>UO_PilrQ8%I2Gw0UJZX^`+{G7}|Trts8;-}E;@#k1?Pwo=E-b&(C%I93#tE!AKY zQ^f^Rvc__a09w-j@%n8Hv-`Dxu$B*<;zXp6;^6kSuIfb9?)G=EJ zHg~T%u>oDkWoBbj4CwH4dAV0|-`?twg4_6Ij<#rlf*>)?sPk8t^s>eQN(Q(1(~jaC zVH*GeMVz~7%`NtNr}G;(f=XsJfPw?IXqm!!oPwZQX8&6_dkk?3;fg^C2Xbvy>^~?l zNs21(`&Qb=46-+*$gEGK6|E^&4mo^Wz#~zsCLu!E^W!x{I+1&`0Yw!a{LXGJX5I&A zf85|gU+ZbILa9ky7mFHc~k@TK1$gv^`(h!*bSLlxAMxne%vYJ86qM3Ae$H3aq&@FK8KMdEWHmvPM-zd zJ{WY3bnUIjaAODyszA~x$gbVp$kQy{u3Bn|ytvqPjeFSoQe5Tl>~E$bHl}KVwwpw_ zA#{)4;zgT;$d73M!?-G8;_B3FZl8o`R?p{h;JK2h`@ssrDC4>dWf93*t+%~6IzGw- zl7a3h;ih?;CFz`m*)0@4!YHE6xR8lQy;FkSUSrFcTAL18yu&baq$(Jjl1Ke?olzlE}iw5lqJz2*UvKC znc2VMD>R$s=K1pMB4_oH>inw%=ljbsDLfK>Mo+yxZH3R*7bkeV6nLaV>^_~K#p0x* z_kJvJk-s_&K;CheUNUcl?OR0uP8CT#_|&+(kb!mW;Tf{`Tb3|x*pA3zhh2Ax7-rjB zcRODUvTP(iB{955Sf`yk86f)JP-6fofJvvYpXBKWpc;TIt{J|ZdY%A&8Ej`f#=$=B@ln*nINadeN&gY*0;(P zQuaMOfTr_W=qNI;0W_V7k>QkQ?1>M&y?UZ>fQkMH>J5E2 zfd&|^fYprFk}kj(_ZnH{&3@96>;x34qhd21P?Pj2BhT$`vWohy0-&#p4)IE?At{I* zzmcsn0Y-=gm;cUC7Lri2#2&Y?o{j#|wECMkm z>=hKszdfASCur)sJ#4QyMtYOS&|Lj}570{(-Kg#bEn@m4#Kw>R1KgWDcN>J3n+ukfb6`Y04++b^c;O2KObly)bG0* zsms*KzO6syu$P>AeW z6;*`O-)3Nv%fX~C*-XlAvcC+X<~^ZBoOlvzHVr6^E*6Co87_{vjXpjl0#zdCj%S2wBr$pceUMSyE9BM}Uo1Ja1|NEV9#b8;7N z$&C0x7;Z&Z>N=@+gH__{?fZ$}`BXVpB1A9*RhY-<>X~)@bmf+wI1T%q{lf3(I+@I^ zmvSznKbXtoR)D~(9j*xHOrX;4$HjaHpIn+aQIU?g&$rnHqiLMuaDE z#bzDPKTYnA@IJQButC6G=h=nFx39S3OFh<;agW^R153}_GB_L;)ib18I95a_rgg(I z<6E%LgEvAH7GAq5Ar)_hTXd`or?BOaGaP&l4p;Rc9c;2Kj_Td(D(CwnpCZ|9hx`H2 zOCZN#373c1DqV$;ir)5Zk-U8JuNWpAP;em_9XwU%`vcm*UeRt;vP8&xFZFovw`Ek* z@Pa3Okia@B!w-Gz(xOz-FNRgq_(18jl!$hd&ULGsy==0vl0`Qa_JKI@dU`N6BPzsq zscq)T=SVLR>L-8~MEa)4yH52n)y_0(Mb>@lJi~f!ui%N?3aP6YwpW+m`$mMh3X72% z`Fwr8#62iQ5~E$#6_I&!p3pn@yL=Yb-l3K-E(!DMNY#z*bx#QFse;3P-{QPl@&ICS ze_DnORq4|q&vJ9lLor;gLz?d`a_Htfu*=D~#kV8Zz zCi!AalqbtPd{S!aWXEfL8-E5%&>SLw5>yPskX`o(IPcZL96ov1F`$D37@0xptujC{ z_ogVw%(8N+Wbpq+R>)XYHx&22LLs&!emxrX3|4U z-u9|d1-m=O#Ht49(h2D6^{zdB%(qekXq1a($}EOP{S^MP4)bA^E+j;!VWAj^Om=VL zx#;ejGxd6Eo_kp}q16X4IZPTG0}s!|)-rx;-_M-a;^L88NNXaJg7RS4ba2oi)*w1) zA??5ohnE1sSz{#?hot%JuUi}eSkhMRZZ3BpKmXnK_am6-fVGnN*AbNDAO_H$m$OU} z-!h*K9V;@Kom>yh%mL@r1Vwk4w;p=1g<@So}XQbn$zpw^vB&szK7X`t=pBLwe zHAGO=ybV#!=Q}Gp@Nnw(qk8}KbN&w_Iubk|0?X#{Ei%osjoiDQ$3Z~3kcKxRG>cPq z`ocXM?KuLRJQr8!RPwcmm?G(){DnH*oajYc+3g#s<|@7;L(#cVnyvFX*t=Sww)p z&)13|YON=V{R$@JL(a5;_RVJ}VwO3-|L? zJ?C11`-U&4!K&S-%(O4}vH8$cS3LNgViBx$T457&Y_^C$EmST(`hc_vtG8p<*GB{9bqpIDTF$hRf!Td^N!%Xz0ebz#f0wR5iwE2tq(1!YxFynqCyQ!(vSa+Aw?9v*jx)|$$>vq_Sl!E6*a}n5;_j!2UN*5w1r`Xdy$coTtfNo=} ze{g9)+So)e1gID%tiCsNcITcPt1m8hX1p7Toql4veOTBeQIeX-K!1%pg5x$m!);a6 zRA^f9k=~!Ff%Ee-xie|6_e}H%#NH_@@)UZqs5i(4+WFz z9~HwZ7VJ&8v59ek4y~YoN@g z-Ne#A2e5zuw9;PaO)#Y%FXueG0?g3efx4E!=A+W=nXSj*Sm8!CrYU4#kZQi>6%0?h1_5^$0_s~>V$dRHj@;4V*lQiVgpXJivCPT=+Tb0f0E&`In;K`-fc zSl#A@taR$yVbYq2X>$khc6*jSoMI|%OItyzd4x4E$P$Q463*|}Ax^_v)S%K6R|fCP zNp_5YL^uV<6c}mT)#53Y<}{wYFWc~Qk$%3LUn%i*_768^FLcR9b;gRw*g#!~6Nxl~ zQxi212Z?opzM7xpkbw#Asml0kC=&P8$K4IHgeGk7V@z(Q=12arzE1Q5datN%yvg3h z%tgyvmh}^f98h~_JbNz#e#)`vb_)N(xlyIFb(6T~xwl@k-4v{~BIZYUb*#fhFdJjF ztNqcY^)X1hp=G3-*UAjY&h7p9a}+Us9e}f-z_P>1*K5m4loddWb2S0!jaau{Tu($% zXTyZ#>oAcXtjQeU)UgWyrQILth<4jt8CtJ}1y(&#DcT*iD}nD>Q8-Rmno8z$mr~M$ z3$!Y*mH`cbm*8WP*R?A^Yicia;YtV_$2gCaLmxjm@qV^5{g7lDY9-NNcIG zPgmS^0KeEHYFu&63~AsPmBOh|sDzMGTnn>J#(DS}IZhf#d~#}D3xJKpzcq7q2gd>^jNbu!tBsOw*{yHwR3S3DMHJ(MbiJJSrfRCZ7iaNp#q<%)usB1id^ z*XHLi{CQ%(c7E59!!gv6-KE!bph#|_v{|hD!@163wJti zkWiZX%3|wF_#b(He~%5BY8c11H?Ic)`K{4rWfI3$b_f>iF=5T}AJGc_oK4>vvvN?%zr&dQjI?DwV=20LA0}bQFm$yUM%3O}e z-WvfR)YN3FkI`83RaVe)yOw3nN@!zxH; z+GXe9+XKxDpQ?XsKrTw@U<8c9?wujZ(M6>|1L#$et5E9dIImqlz)>5poPsJ}GqoEJ z8>BunDd(rYCI+om`TQ_6sT?<#w$c4QA<*7PqGdBAiasjezptZyUB2k5&H1V2Ar~a5 zj2#^G(`jNCihI8FCk{J~3N_s*ON$KB+bBliA6xH@$sB;=@^}C6nm@dtKTI`-!GjmhB?vSoa$D{H(`N@h z58wpcc=N96hN*Y{+1E3QC5mm&asY0Rkb1-( zvJvlhf@|&Ctsb7gTqH;-7FNL$wdpOG!T$5roY}~IhA2qlR_Iiw4v#5Y9mb9&T9)m{ zrAg-_kStKJyR1rxvD~zyKNnyRFgmG*iCfw7I;tlgy*2prFZ*+4ZJ0;2Tsz6Ja_O(T z`k9xXVe_)~=gWn)6Y zp)d7{PC}}Zul8GU69U`b=D+=whOhy0(RZsqhO+sbdX@tHc>)$9){2fVVUTG1-el4` z7L%%INX`H-O?R<^>sYDt$d}hAxV0;~*{ifpMYHX_I03xf^Zoz$b^&iL%df2o|2~{= z2xR(l!0^VwClA+ohg zaRuy{0AlgvO11!em!?34CIOSMI15YJW1k{bt_cIKbPl_X+q_51`16G;rtkyy}0sb7e|e%ir$2 z%e^v6a^c5$sFEb7gfzB1mMA-?YsW(k^~+lOE@`YGAy&h-XCV01(1PX2`Jbuk?yJVy zWNEvurQQ@EGpQO$0_Yp?3-RCbcz&!MAfkYs^?vMCK%VI+E^r2xh~YcRPF&H}XlNpT ziX42FAYG!@cEM47Sv8eoB{mPEGDN3?r}0*sAF8zf^wnc_?uCZd$Zx~H2hQoD+#Jf= z$mmKye`4py%KdLK<{0|ykay60ox^hQSMtZ%*DoHLYcxD0S@TfYDjt^%o#PEz0PLjO zjWwMSs_bMu?(mquh4u}kWB<%sZMpo4U#a1N7(g4Z)MEfuCZy!E0wDSuqM{-O=_=N( zZ-Djtp&=7=KT6&{Sa|J+O{?;JD)vN^#5s7$MheOr&^}#Zr+gKU&1ixPpS&nAIrAk^ z;mJ-==oBy}IP9@7fClDLsfJ5pF4L=SSE4?Tqm~Z?C*agJ`;fNY$Cn-iL<+0gkADe8 z`#rLx2p!C(88ozAW;w6}h3Z>wN3>fWkOeSu&h)muyGEha)mm$G%it`4E$w{z65c4j z&E`|s{5deoQQ{ijS$_AhO@cv77e{&08!gb(1>Kec&KPUdu=Oxw%;dwVV0IUtf=uoN zbJoM37S0NvSziiXyoB!Rzq`hE)dXF8*Qw&c2@c0<&(m_;*WNqS<8sq}8n6#O1r)pl zHt{=iZ3YmEVL&|j?<`ygXnpD}&(=4mc9L?7|^OB$rl55+)Z}5%4V=* zOt+9+HD7aVmXEp^BbKYz6ALXf|7h8&EJH8iK@ekG>XGA4>Uowte>;;`4bo{qNW0<6 z?*fLqgPp~eP>vKytLE%C0Ah^ck+KHnNnM$RzgGLWwL(S>QT0qrywC=kke6ibbI^Cjn z_L~kQ8W_5R&+{i}Y4ER7McPi|c21<%L<$d;Ev!COc)Y6FqKN_ZdlPhGM>{-q>VwfP z)M~4F-ZsnaqX`-N!_>xi?_0d@J`_v_a%|U$gQ;a;UR{QU-^{*2KCMBhCTA;cTY5c^ ziJ43nEHYYNN?(6hlOl+iYm^Jrdh%l*x>(PmQF(M=A4Y}}ej060N+_;T`koEXpYofv zztJ+L_LVgxW^|BuUK?`I5F=@Xd19Uk62j2fZv=O>tmVZMz zh$zCVn-lr66qddNuYUzwC#Sw`Hi_1k_D7aN^vA_}Ixk(_F zg>{EycJMPGYJ^Dee~g;HC>N4^25fVpr9IsO?^ifdB%w;1O28UC1wnc~toGv9cjMdB z*QC5U#=1Je2O}}Xw2_!NjhDof?dE^53@FE#LNlk2DrvwtDu;ky~S9b{u686wS~i`aI2pYWofB`_ugx~No|nx zGybtVX?G3fu3ew~D0&F@zUjZ(hL{>XbPx!Y5AaUlS99GS)w>zME1zz)p?lw*21HV* z<}8;U&|Qd%iq3?cp0dRrc<1hrkg$=Kt_ge$vAb_VSOIiMs-KMG4(7F4X+2 z_zQ?Sp5$m^Z{ugdsT}e!MhnoWz&@;UtbA;WA42bp8J>`r7%zoQku{7&Vd6pFhk+)b zLFeTrjjrZaYG2Q$`iZwMuRUfR&+?@sI}20mAUXNuX9U-Mz0(u2WT|66|ARac&~;qA z(zbEWfHrfR^yZW>8<${%14hu!1XK!(XNi0G2QAhB%Bo)waVcS&H0C6VhSIZiu!Of) z@CUvT`{Rmia!%ir{|M@ooQ@5zg*|b-dZ^vh>!G=Vym`<}Pxa6UkX1?RVM=VT#0z8ik8d;gvXT0))Om8@#cxl( z(mJiOuXrsqZZ5$)A8#S?rRY^rxO34#%S>0Rk=*-G>zSJ3% zsyp&0)yFe_5fwG>m=MKRLQu<{4q`;~ndpjK>Y<=k3`3zA= zfOAizoG!?AupF#1N}qsL);E&)hR(U?iVsLqw1;^`eB-&t8Y`(5dL!bUV%lf@{S;8~g#m@qHOFv(vL?5r)Jag@~WHKj|X>fWvW3+@)VXSB_t_O6c|0hfcOSlQg&X zPnlZso4LItt!}#@oL?lPRfVf9OwJA?-u0|e)XxhoN#b=R?>||a_~J&eu@_4(;)t8 z=C7hhJqf7B{jFJH%}5>~jRIib9+NJh0}R)t1NI#4V2V~imD>cJjVZBUt}F?Nj2)#0 z4uzyCQ+Vkf^))%p2X&2VjRgYKK)$@(wS1sty=x3C4sZ`grUMm zy{m_;*4KMb)R4B8IC+!yjz{PIpsdL@@Yu)l68^PnNw`t7XdmeF{SVQckSKgKjL~dxMg{2+b`y!;h*_B>#!=mG>(fXAPPvwC8SikyFt2B>4r;pcQ;5Q z5*O+2F6r*PfOL0v?6~f4>)B`di@9*;%$)a}^Ty{pXFiviUDmG9srhdhl=;m-1Y%#! z#W@+o`CPH%Qf`O|MeFbIx!vb^)o!JLDXYke62=<*DhN#6noirQtnPD$TJQJE3y+St zoyQs9@9oY0}msMm!w1ZNz@w}2u~1*eo_k%duAYY z%y3k2C%|QJe*YEp2Sd8uPm~0Y_<;rmo^z#lqE(g4vd`GxYaWcA|%tmT& zfhG#l6}@S@jutSLSfySj@*@=;iqUolOeJ;*s)A{@n0ZXlT)atNs&a4Hg1`njxBmQK zPt0qy-I-3m8ujj; ze7||TQvJ#VOw+yG5^d;i@zP%GJSh@hxT-IP)5U+AqbD?{5j6k(%JPiR-k#tp8A%B? z**TwB0&V+lQ!O9oQ2LA(>MB=cXtc;6DjsQnGD?I!V_iJv$?S3AOjK&FtEerfC$8gu z!e+%gcU%2a)|&fKitev<;X~lmO>s4lUF5?w+byMah(?u#d7{7999s{8d3~!~gm><0 zIK$=oYtpDQHof`ICMTKOsk{2>K_#iDZt<5`yOj@G@uQZQpkd9TvztNARU(GK5=yz5 zenE*nP`G&Z&m;s(y~Z4uS_fN#%ykqN?hOzHceeS#$LDEfUVd!1N4oCC%D%uJ~EP?ZG5pGC}$u*i3-6hXL+tL-C6Kx5^xaZZ}2(v&^=cue}4GT_AA@0 z@1`@B{cF3=iFkif0oCg@vDR5*{JXo!Fu(QlWRa2b)`95*hyIIl70*Jp`uAHOtW)qQ zX)r+R3%4U$lW#~AmtbnF{LMu<2dp0l`~xGZ`Bg3ax`j3-sp;yl81Ap!)-vu(tC`K< zXWubsqJ&1riF^$qVNx{XWe(VP1YA6Hsetm)V+(*jEm)_8qm#m*F_EsRhR^*$&BB{8 zu%O<+deeblwfZG7gRnwDYXL$;xJ1%Nq}wh{jDZ)l5=$k=*W(9PEN+(<2?UGI6&^%e z&P4}%Pd3Kd9ecL3xZw>9GE?6&Faf&~oLy)?Y-bQQmzvM*o?Oj4rO%y|UlBE|`YiFV zS!YcWvYX%IR9&UwD)(N|W1SL2J{*d=J!NW2ih($D7yDk6glq@!Z>HU|Gopniz=pJ~gK%1;|7nhHB^QQqYwyr}5BLN!*!Gur`^dI@` zL1WC;DRsMzJX;^>IPf!K)I01hH=91*dWJdw*nN}U( zvOTfu;X0`DpY_#2Z`)#N4&PO`o(1ys&~RkA*y1o2SU^;Jcpswv{qcbyikD4iJ!HZ- zZm#ocSSt1`1lSDjFpYK*@K+Cj7{k8iT{=d+CNG=5Ti2Cs4|!A=*d_@ zM<7`b!($p8Qp?$DGUdrm)kKg4ueX=4heeGAmgW)@nTp9AK7s7E3;G(g$xU#Ly(d|w zDLyt%S`-4~u|C^p^-xitoQ3`pZfTp8CsgIGQ&vx7uwPJ9X=<+^JVYKXQV6);eX){es}Z zf}|Kc9Vhf7Y0)IVP2-D~0oca=NhcZbj*-bN{bl7>p-2@dMlKYMx%t~#eeAZv-N=o< zEfm}{Y<`ZsN&PYvs(n&9(u8E8GutS-D{+HB*FTMSr(epsp9W@HK)t;_ zu0Hzut46e2l<62jM98hlmXqv}>8k^^s*}!RLGzi);lql)P-)$bGKc5+HT`=7{Toqu zBsX5#sMNN+3*9OYGaH0Cmq+ngGTP!&(2ovpJ%$rQft z_BP^_PglvVBJ>d1C#QdL4b%+B`(4*;g(28GA0YukmQJaO`E=3`8ExVD|3!&goS6 zTq4!eLYYYOGhA~b9$O--S8TJ|9q;xacRPR&S`j|kTeiz@Hl6qdTJWqJ;%dj|uD+@= z_F#SpW7+6u%oWn3qf9KfnJ*_|19^7Q@VKw-8j((0*>DR?-2vT;E@X8#y*c`NpcwE% zM`_nVX{Akv@ZW0!mfk{-20QNv&NM@(FpZwG#9sEz6C_fg_I~4t8j^M>2MW;m|13a1 z$2N^30czHp1U+HgaBP@X$K1k!KrKz8+r;-E#+aoh2f&Kba~L^eN#@ z$cd*6aj7`1OBd!4eVjTOI&*X1YC&{lD3qM|*h0-KlN-Sg%PHE~gScgkC@pkXlb>$3 zZ&YH~{z9*2W9UPSCB67+EZ6%!sT}c~5(zXXuh1XzO{6r);q1hHZ;jRQ>5ptGlx!u0 z#?}t_+&1Ok7_7rw%+pLn(=O6q^|x4DfEF4P24yi6Fh%L94e@Dq;D6X*ANi#PBN4X6 z_f99PCtq0(v{c^1fCDowkW^e0UV+T_X8U_L)v4k)0-qDhY<4*PVl=93{>MU@n`8umq0A%cTS7$oBOI9 z4#Z1LCfinqXr1#AoP%Fu=<&>v4_HBUjM-&VOF0zTikcXI@g5c-X=X^5vHZbVF3u`? zk$?X7*3_t|9_u)MrXyUCCz%SI4L+;b$3Vt};sgXzLB`MpZ`NR5(^(>6e}2yr2HplS zst`u{cb9KAe&ouoUavF0N!?2jQEQCp{FVL#99IKVe5I1o6OtsJw15zgKd=l9^CPpB z6>%Z`2x4U<+*w6x(0bMUFm$?pe4sV=P%^k4M@%Lm>`qWPT^pd%EAlQn!%)Z#j0m-W zx?0ZH6ceMo;UVZ*R38$le%}$MFt-ec2S2_d6P}-d*U-pfT_L+i?m$#PV20mMUSaMrtLV7&?YBphMymAm%qDTz59JZarUq_qB=Tp6SGwZ zUkGqTbT1lVil0POLp-zJ{A0fyIYkIe>J>k119cv(sO!|(EeeTO?iu9(TxK0`bCZ5QV^A$=x?@>gi%jb@wWTn7GgLmPre8&hGI z7|g(!zkvM<8h#`$aM5`4h57Ht-nJPfED&w?6Jdv!<9T;(%34wH@kalF72i&A)51~X z{r#A~-Wy=3`-{zm`aO;SC$a4ajEc)^aD`To7pw7{j7!qt^YkyFVzy6Srt1hvb5G{N zoimMSWS5wt{O^X<+5uf6g)NZWv*hEAjI>p@boC_a~?`N?Y6 zerd8Bc&Y$;ydu;SRqA}b@}9_}^U8hf$IB?*TOGrVNzaE{$L&#-wM5? ztm{Kq10^m83&gA$KH@J>O#X=_Dhwtp@bAZRXJs=>zfm}_D-1TRhR(zvRu}#duSSFm z8nvrU_sSVDH%6JW7s8Dpr!o%@h=SdeN}8v%E*B9JU0EIP!b!Zl3@qh8Y84OhcWJ*Ho2$m9O~;f3TUm} z_KIt{4Ye_IX7Zg(;t;9&rmD*@D*A7oN`XaD}>S1Y6W#sN)G6O&6U zv2h2~Tg$!7bz1A{qXew$Q@P)PXw_UrB?D-Hb>Z&5_fjG{f^EsY(rl*0s`)}?B#mdj z%A^u_ChvVwL4n>3pxe+n1(asMTCVlATV~O#b;%E9u@;PaBmjt!SA5{{fNz9pGW7|e zuzX`S@vV^5pZosgx-)LVG3(GZLB!XX+jB#zzXm9Dwi=OSIow$8WUXuj3hqJY*Kyc`#((wps1=)u2-5yeTj8Ql>bPWv+ zwPiAm)9OPXic1a${JVAq*Z^i~zbgxSJ9KB+v;z8E(Q5t?^-q6QN0<^~!(t)*edT}z zssd_eD1edop%blMPe3|vw9m^_!3_CO%H!ChC}d^Dv7S~#YOI{P!)E$8@LI2`H-cwMQY$Wxr`0_GRogTttCJ!f7~^diO0GD063ePk-mCli%yf17`~D4 zV*QD$F@Nf&*=oYZeq)Wv%}a#iZM&PpQc^KW#Qf!T=fO~qm6z`H;Z*`bO5MtA0;zG3 z(_>KBhXhUT`lj3U3g9{L5uY3>+q?zpX4lRbVJi+F(f*_sdS%omO$sGx8_2a1I#z&=CN5vmOYiXSC%m8Y2t zd+-;&q20jYevQD8>08f7GjfJ!{G$Ip=VI}BT z^0@CmXS}uOSMpzCM$s))q-*j`nRNrBwD+X_E-Vih1bCNax6zlZkShY7(ObVDLs-`x z(TI6u^I{C>Y=xoZKmtvpj;Foh)ZxzAeh621sm#nYqcMF44nUAY9 zq!e>;nGo&Gxz+GEmTC6!T~|tIV&T@wWHvdFvn$)JeUaZg8fJGjNZJ)l=P+MPSX^L% zb885ZR?NgPOMVWjpc~f|bn`@+Q% z@!3Ymf6kW{_nWay(L@^cX<)uoo6S_1eE=*VKZL^oVQ}k@4n*hEz7J3tN-n-iqoJma1P~ynmn6h?gp>96%k290QQyFT8})9}e_P9;42QoaecJ+|Ka9!6L)>uA@N)?-Yx-MqU! zY4Kr(i1Y4zLbml{S{-;O8~~)oGyRh!a>PfxVUBi7EhEP!nS}+nroW8EQGwO%kSTK? zG_>An+D~~d#Xwc7W^CkpmHGj>z6<&jl`fH z$Bt=zaS?_TE*N?}{J>VDW!b0_vi6L!u3Wil;Wg7Yv!E(O9s>>G7sb6_a79ZZH>FTi zRoIE5_pPtESv$%n@XKqV1t*{KNRM|BXO*Azzxog7QV9rL4(4l70QDQ-TmZAPle7OO zT)`Z!=i8?nY8^?ekgaeN!l-IHt!Def9a%Y#U*_2KYmQrU4yqNqP!OPus~Ru(`3qu&!*;W6mE5`e8%1&+?X|)r*2t)^LTfZ7*nFz$a^`f-`^uFd^MuAz_)UL zIRn*pB#`8FULJvdMRO!Jmu`1s*}3>FNL_SO0l^PzaymZVhr9+vMDyy+*}nqpK#npf z@jc5+-ku8XuniAIOD*MD4|P$2)U)#P@@>=C)9O~`t?`(tarwe^Fq%_|PU%!sU9x;^ z;|(JxbOP9m-bT#86GiD+FdhOx3^gPlhqv1<$Qa|5-yVA|_o*~&uzqn&Z)|9Mq7W{~@w-{u7wRxPxOMEb>ibTc zl>4Ge*HlH#^iCfK{JuM2B3dwXQ@@v7v?Xui*_lN#dC$$2D#Vh8;1Iy6Mfgk@2!Z?- zYU%eE@kN)|Bi~B7ck>x z_1V~&I z_FEaEG#q*7+^|6IPM4PJBplOmMXpp?Aud<-M@;wM$K?4MvdU_UPMgi@|Nh}ACF^xS z5*`{Ghr1^ou5f+^Ej1ZwK%4}ZI!WYo#WI>PicnpC-1(e1eitq+WCM+~LI`6eyu>Xl zzW?GM25or*`hifCO*UIdQRJ&Pa}>NKB|wyoZ$?j~gUfF&;hsTCC`FFlmx994CNG~S zRzgZCiwQ+hzCoQ!rJn8KL{Cc{&cHj;SN^QSrI@=13;EK!XyeUAGP!{APe;2Cpz)vH zFhI>(7yIGvDjk@a?E$X=t(IN;DiC^0CQ!>;KA-bW!w0Sc$)T-Tmy&v0!9{0M1M0lKq<%?Cm3=Q`8p+MV<2$$F(!qd8)m4faJ>^@MP&O zo8Pt^=BmxEX7!`8FCnEZw>^La`}Vj4#p`B3`wh-8F#!EI zsoT&gUFCAb4ka_BGNT1X(P_Jc1(p{HboV(mvBvYU|Li{komRmdz%4(cL>q>h0` zK>Ofsv0y?*DBJ2QW&avpdAm3ACbSJvh%y=`0=hIon{RfU)tcWZh)utf%B570K+?q> zG z7~PIQAR^sM(gBox0QUI(91q~}v;A#>ys0Y;n~Dv_g5ONvz3{bLw>x`N-~9zBi_DUr zPSuScnF9$xrYS|dHW{vK3>NEv_{Ahl``7ipwC%#x+>i&>Q%ZykdTCTZtGV6U*-@?+ ztn1n45RlbvE6Var$&BVme+S~TB$;ol_d@u9-s|S^>M1DV@!?KV90>J}8un;a_%bCE zX={Hug52I^^@sd^nw2r;_tUKE*Pkx zSv$O;%_^hC?({ewEs0&DWOd+vdGFKq>mgOV?OL7=SR8D&o4~r2t*d&24Wt#B9@pG# zayeKlhzErBlVGDzk&#}Y?wAZvaE)F`Nhlix_mqgZh@|5x>g{{7^vIWULB`Ued`4zO z_0`%|*?2TqpUF+^&+(iQZpSnRNsIY%2>mlw$w&qS6N6vbe9gy8#uB%+C|++U(YCa7gljYa!D>wWBP%`X~@e z1C>fMUNSCo21!U_Yf(qMV-~L~%QP$*`Mm`^CaB!-;|gXkiTe(|w`-^=VWXU;F+sLn z+mAn}bdny}@dNFtUkCB->PWlJI^z`e8gF!B@ouOHxKlfIFX#oyw(6 zUOVps0z`&Jl*9VwGYf)EjSi8@=o#LbQa=R)KSPtnCKr%Ep-M5K=k*GpmE=Aj6_Vw> z$-<}z10=i@W+;FU=dj=Y+C&JDI-1&raUdFyL8VczxxXm&Y6jl+ZlcrieOR3{6&N#- zq8eG*^ zR4B|P#xa`l&ug0+#pKL*L`HyGYz&pPAG?fMvp%V^kMXvep+{bhao)ZgDvpVof$Jo# zkQJ7t;*FoURyv5(q%9w7vc{VY1(Em5b@)~>jO`4jNckI&$jJqXy+ z*}n7(gm1jqBeOA4hko?d;5h%_`hgH#s8l}o!mIp^EN@^iowACfLMwI07fAlhWO8RY zI$1evhX6Gza_IzS-^4!5i)D&Vode=3ti;A*Jx#RI#t znk+<6p&zBq5E+gFg_SK?(VMFq9oUpfX^=Xw4Z%ySOtzva23I%*-!eQiToy+Kex>z{Fwb*dW zesq!E^0Vh#n0rdI{fgd2#%^k%x!C4i{_5$~B5|CNQ3K9F<+A&Ch}vJ5of9*ShT9N_tal@D1R?GmOz zcda{eq_>?`BtM(JW6Ojm?9xPwpX@P7BtMcpA%Ip~{xzETC}-V^`Okx?VYVcLU7ssy zuuE)v80cVu&5- zePhS6M5qzir9o&6QDGM)(Q0iHPuUuzzl)OBK^hZ>4`jXKFm z>ST$7tf-?E2mCpoTnk@4yTF>_o|aEF@s)$JIJ>UYt>R3MYoiWgiZR`SROdPZcl=hT8m!5EI>FQOMR zE`rv+sL4mGw(yltEKsRzXPA*n;F;Da zq7=*5)_^7rq6+rm~y&l@L^mo($}{nAXpKE`Z;ME2GPq7Rqb`F0WFck{TUTq{p7<919IFIoD2O zx~zu%7SoI5eG8P?_VQROr@$%-f6@)kjwYA0%cG@M&E+O*AmnyohA4W$s*PuFeLa?Q zRBa>RS1WcSaYF0&Y&UDGb;0?~i6TBb`6Oqoitq(l~+Sjt~jl%@i@}JuC$% zv*8}@4{w6g-|^D2WzpaabUlU-MH4-E5EWm%+esfM7a2U4pnd=|K+M0b8S?{+3{72B zOjYpb=REwdh_9|2RPU$JG>2=lBS+^kZ`#Gpi#vGVw#QCBfP27N3o21>k1yj%NGJnx z--jrQ``4sNq{P3({{DU3LYhh}e<>fijUYU{Avn?C#ha3lWos5|1LI)fPicBF2{aCv z7?NvDQ;P6}Aad-Pl9#!BMKv$u{i_zU>hqo_9ImFe+jF~Afit@L5%!bA2A}&z*2H8^ zp-U&3tag?tN$AGL1Y~}Pm9vU&*7xI2bt?-(q{G8 zbxmTtQB?|CShe&o$0!3DxDSc?uEF(Zq*V_qTp}njw-h`+ltpt)oh#3e6cos67>UUp zdZ#wt@Z^c0|$gcv`#Srm9<(HR><8F8*I2(s~-gv&X#@@pbKC%ahSP z;saP(0WeI%I%c%v5~$H1{lm=qXtjrCSs^iy>F>;0j4UPs;j1pLiV3fb2|ZlexlPcbYtqcTJ?vx7sz!MQ=pf-gqagFDZ=hQwuqKw1#@KI%XzVhibD|g3>1#)XO=x;P()HZp z_RaBtkx4xFhm0+)Rt&b!r4~rYD@j{4h$zxYW3oFDi`qK}cMAm*qc5(l9OYm3;j5~_ zRNF?pdrtYvZ0L)5Ng@8lHViw|ueUl0vkReGwC8PGu$ssO+V?}H_Msh?awM+g=>oKv zFE5QdS;s}gl4FFa-g@7L|9e$YW4pNt0oL1<{~HS=BFFBL2YkYydPhdXtKK6P|1~)tOl%@>lZQOpo&1#a zDu0|^2ftvm&*lBm`;E-WP^LFZEXg6&x@pyS#K_D9BdauvMX^E(`GQk}e&6_~b#s-z zDYUz&=yo6tDLCLiE{KPSlLVR+nlzi()1heykn7Tj4w&r6=KOy93D!&B(K#0_CO&~A zSNl-8>c~;0_DuBR0!gvFOqxoAX^B5_-s?a;ES~L>{u^uqVk#GTBjC&YP<=1*3eR^f_o~{BRbUKX zG;jTvw4_RBbvS>Z;q(24dPPkbxu77{BD#2)kE?*o(ymqv|Rtz z6h!lR|8smLIjm&}7V7_kgfOGDFu+Anetc~$7l!aJ!1aIH`umSW@IQNt|5=qJzpA$% zBGA$#iSPg5fbX8okwd6|{_A%C!BKxC_jGv+3jxP(pBj(30AxzZ3=#|GZ5bhCg}q3;xCzaW94W@-QPn%-~rIzhoFW{7?@$ z#Ss$^-rj%kXP~41bPoqJz|J4mNJ#hB89-+XUd6Rq{r$xQOZ5W13+Yl*@ z_1mS$rl-iI-#J1q#jN-%V`s{AH@BuH?bOmyY#&VcTV0kS*xc77E)$W+pZ~d~nm;!^ zwFLAW!2PAkdcM* zocxJ!+?STlQ3)c*&ab(GwCcdi0T z=WqPDr#c}x``Y~_iS6ZQg9V`mN&z1?ZM<~}3Zrk+oQyPN6Z!?Qv9Dcz?ms7ZZ2zcF ze36bH$q-=mqa%VF%fy*v^3~}AhMeS|5rAmLKd?n?OBB4N!Vq=%*5n7oDIAf4J7#uL zL-r#Qrcr;eSc&gI2tU&VVo12S=`T$0fw&aB(M#!EYJd8QY^OR;BE~#4Hsap!D@f>; z$IL`?3OF}<4z+N5{rwlT6!otW$4r!bqU)3Okuf%t`yYON^+`T{dYk`rE+G_PoIgag6g%Q>*!xUHLvlS!!BhDyP)Siy94?bsl=C zwWC&z+mGY_zz%g?wH4%v*Hvmf?Y-zfRjEbUyEXzPH|7isYl;I&(~s#{d!n>dcUGpN zeT8oYPZJ@Y`lLA9$jUH2e>HWfOds$%@!l?Na3CNMWF%u zv|^S-(($6E<@dckPe}^4_8G!9W*uKXP4o||2t&X2_zA8Yx|j#*=W^&-RVuHA$cZjb zVU`s_ME(p&%ni_}l2BUJwl~ z9?j55)617s%WuLc*t8QB3;B@V!a+P;{3&i zT(rH90U@%Mrle4RkeuzTkb+a|27I>p@!}p5LO9E=@Jm7k&;#<++p3_vw3#U=AUp5@aEok-@Wg1zxM~eBcd;Q zpF~-#c#pxUG)IRq=n#kVcw?lVDfSH%9NLxB!^PoyljuK2wph$UIs5)nj#WYkBZ+(e zK-!AR)JW#`o^)t0$49BZYz*%ps;)b^wa}^L zo(=n72)e-Urk&=ZAoQGG9o_YJKLq?%m<$~wo9Tfu?Vek}xWlUxC1+TH^gcimJsDsRU);u$(rh9h;SFh$V%-Mt$}ZTfhVDLw^b)*X@Z zFy$f|?7sgyL6;EOeLl5|?C1)nEUg~0(`@EfCX82EXr#TyH z)JmhBQw4$AO1LvN_Xm@YqTiCgS^#_$RB+?7SH8syh<7|zkt&RxxQKGA>Pi>L`S-+n zm+#kd;lkGfS%qNZQ?T!sm#3;Qg>BT<7)AG|F$}Yu>~9aIFwFNW`u5P@Y%13hI_`CY z(>Qf-oZ4hjP(zVN8tmSYN)`Z7XH#9SHh{Qeyn~oO<%-V7MOsi^NdU?m6dEqycoxA ziRupSX1zH4xn8IfB>-4WxQySy$IdX2Y`4Y9mXcR92~GiO)se$Ay!ZT_4s)pH<|f^T zO*PnU`+BoRu5W+LO6gC#^5q6Pyf-AFHd$#1Hrugkfh9Iaa^NzOsry!mq4zEm5-TLc zBeHfe7s*{>ghhA-YRpFzl%@nLoIyR4RK6AQ?)2gv{0Z>Shi)1)S$(8yeZ4`rjHP{C z4frfE0+a?Il2b8Fld4Qbjf?qWGY?O^o+_qU7sn8S_OZgLsR&99W*jXb-@aq^o|lZe zw`aeKD>c|3vk~W^1hx{|EtRb^Q%$TKYI!CcgRxDq5&9L@F`kkvk!Tyb zJ<8^&Fb!J<>NtSoa#v(S+4}Q)v_p&c3ift+tX46;`Qr$vw+ST!*y?g6&J zZkx|w(W@jKduT=p}F|oeWi(^{Ucspi7B|ZHuJL$l+TSIWZjpJ0In=> zXT(%KiQuPO6cbyC^6P?jCiV#_k40R3!df^*J<6oGRbAv+zyudM)O=c(Y6#(-_P&4RB$2}v6?z=b5 zF$)-IoM7d2mIvWNu`?fC#Ui})w8IhKom)41j1I-@$8fTd zTn-LD3-iaY_YqOLtwFmw$#mTB{6#pHCB>cFSUSTPN>b%t#!t^My9zHQ<`s>7Bb#KV zfiKa450618dk(phqVg^g*@8>ja)LYJcJEPY0%#|OvZtTm2}~wRwF$#j)OthTr-xkp ze8QY4gYc~ZGa=%oavI)bptw_~>Yz(>pPx%|oa4R~7?8$kO!3tH=%6p@ZkZ=d{0_KiS3l9KxPg;ID65df zOld3%SBw|RwZv3skSFxV@TiFp%>6!tXg?&YI+r6r*&a4cRU3h~X0nnV0A97Wb2HObSL04yJZfJF8k##O2EweR1x6KYGaQwns}bKz7bb7(0{Y~WH2 z()$IkDL8(EC0smlC=@31(_~zkZB1bQIpg@{nVoF%2@7(1k&dQkGWc&ZBi78YAt$=! zVNtm7F@Jn@a|+^V9ETHyoAmpy_58y^a8XeBv1Ex`wXHeHiN^c)gmjxx7cA_QNQm4# zQ35RZ-AQCRrg=Kzu{yUC%HYz@yFsACzzcP35JckIIsiMO`eQw>e|1xF<+j-cu>9NXK`?$Es}2O{%XSWo|Jh(327vi%DYR_UH=l zfsR^CD**S<9Y9oL^proed}Nfyq+5fe(uq|P4D{qBZ74z|n_9VS5|IdeMC&p{ zz}waPhGRTuPia;XVr9jSKVQ%)5lNnUMK&2h?NBd*-$GfbM%L5cV)ZX_W4T%Rt;gFt znNVY`^NqQh8z4pFpx@aG`JGrGtw`cfhH@rM)KcSeTl~jV&NUXvJO}3aBwZiNtz6b6 zHst?AjTN$}aPjEx4G#*$U%&5A#>g>Hn=wx+mtUu{XOUBA{+@;@V5{7b7l0ED$=Vxw zPnR)z#I%Y~;Y5o|I%3sO5N3lG3cP>Zye3HYcJOV4ixc6N`6aDjqwde9((+K-M4p;p zC_;q6a7eux7aC0%a3by>nvv>l3vTj2v@y2 zRLGk4OR=)nP!T!Ku5jfGbN)M#&>t$cSnE7K4o3lF{|LMjBVLf*T(D@)*yT6a!My(Q zB)>{!czjSJsiiYtEvu%249RW?S^@q!%~?`fZnc0-X|&ydRkC${jO4SDE3^iu63J8l=6>k5<#I%PLr?ObVSRL!}%@}T=_@ZxFhVvI6zdX%X%tvV~ zXeHNYv_=xoAH`J$c;*jvs$X)ntP!9aCD>a(&T=?-9*wRw(9|B=w!0MxrEz1z1U1)T z6dB@^TB`u%6vf0`8YeH*9zlU(heo^w^gdLwXh6-K-KZj3tsohO$Ep)tPzPbb!MX~)293(#r9z6$6ngsChZ^Z z1Nl426D$992i$!J9OKvtn7EJhOZN|jfB1Cdf5#oqlklC~BAaS+Hn`St87ANB zMmtmeTCJulmlAtdQu#@y>&_g>06kgWYa(Z5pD?Uh5ics*2cHo%!jNgfB2n(~Ym^2M zt*^nn53MllFaBuO59A^GiJC&rEx1JgSKlGJ1nwDOkE@GSr)`XAf5H;_MGa({O$@ z-l7V!ap2d;pmoZo{y{bSY+>(V>0nmPGNdt#e*O zXY#O`^;#430^S>_p+m`@be>{)E5hTG?M3EoRna@5XQHsYr}tzA-VuIkZ|vx}k36)H z#vy_NL+Mj}vls;6PWG(3hw|o=|D1j?_C17rgD$dzD=x9lV3S_IaX&|Q2EJv{tYv#1 zZNmws3IczKht^4b z!fO8UA(@A8hv!OH^LHP-1l8ihx60j0mE%VS4(K`E$Fmg)w`4RnrpZa!U0MpYD>yMo zIDM@usFi0w%5g+7Qe2vXzS1*RNO`y@=p?7TW}CmRE5S{`zVpc17y_;C6fSdq3^tJc z2ze5s?u_902@V>NDiNUA(t1ly{Vll`towN-6APgqYYJ~k)Wjb;%aX9lr=}Z3x2N1u zaZ%4`IG2%KLU`%I87pj>IgUx$T&;6BszJ{OJI zlTusJPi8y?kSbNG05q|-3!J$x z%8$pnCi$(vwQJE+hu$+mo7d~?=4V90KSs~Ra_svbb13@r2#EE9A-;S@X{Z5G9At<2 z1NLIRIm{QLW_KZ83`+~tPCRF_-?xtJLPzHH53gmnj2Z_{E2!JXfY)A!8_&{Aax|^+ zs%PRO2~}w7l%E+b?mi@U@1!$AMTW+nY&p~EKdp(dgW%3+ae>HZlN$h9rQZ);1sYF$!K zI}zFU&D~u|+PQs92kY*}bd;NC_`MQdW^zdlbrKx2z4P~4^CvBORa#c|HDTW!wT4_G zZNz}bN1Z!8Q(^WO5l%l~SAvT4zk?=lFd9^7$6Ee|eBxzDTybN6QIM<@CqW*Vyypgm z)(N4v{_fgJq^G^hr#+#m_4;@p45+8H-2y&M(QvL>(4394Feo|TC(c^fX`%w~^Xg}( zI;o;BBnAFifEsr9c%E@bE~x|u9tI>zPBuT_#rB&xUhb%U>5>(@B#hAM7uJu9sRj8p z2fEFzyG;7LkatcNMi-ecM$MQ0y@W_dbkoAae4|g(V8tWHA z#}6i&3}4E#)rbhQp?L=ISjC|&S2}fxDdv)M#TwCa3nNCS&yJB*srZ`1$rq5a*?TK` z0btFp=h}x$S?#pM$vDae1}3&q!?h3DT11(&Y5c|Xhez;eCX`F|kzvF8e zh!19~kWYsUNilLlGcY4`#5#}>TEp^28L!#vXy`k=7qU_`C#|t2p^xLGWlt5cro1CB zNKJOaf-R>v)P}01gMe?67S0gMu&N8ZVFR|zb5F{WMtbCkhp)J@P(Z&3cMzV^& zT`vLGSZ&Ad8x{f+$!&hbOR^qn$g@o}jVX(8j8)VmjGmT8S_nF5nNWO^t}@YdQA8WqO- zQo5mAFi$o74_ak?t)O&JrTVa%7=Tqbsf$suhZ)P*)mqhiM5<(4i1(Vo`&b26fxPe_ zX}Jf-i`z!{9(iv2RA>*B=soq+adRMbNpiJ(mbOtz8cmNN%&RLasbZq|nRG}F$XX;O3XFKnAVzNWXF z5+J(~^xWKXXO*K`3hnnphu|`a1d_6PrHVrupZQ22!Lmn~{@LSc%kAa@)!$`&oxTal z*M&sE3V8aZrheG$%2RP^gBtH3kpw$C_LdWk2 z?<`jjqwR6LEZxA=t~i-g`fpgG-bDj>(z$I690Ehx?~jZQOe25$b!_`F@c=24MhN}js%^CDuMI@%d#!D@85itcVS}1 z@mRC!#z@|^NngNB?aPYe1VjhWu~pBG6tZ6JP1cBsW3J97?}{|bVVQ61I(_MhD+PqJ z;ZpiGkDiMcut*@RnOg~1U!$3Z-_Hx{h()e0M>kJsC(g>NB>R*c^Qg@m==#|H*tOuP zVB`yun7rzE-rIg*5AO%~(>uReB#odS%m{8Q79(_gI@mM5!j~iV)#U_o=E@(at*1543Qk%7ZFnb;}Wd${?9cb*Q9Jet&|(Ma8H*^%obAEy0HCrmyUEGdU_uu zHJPU;rcjtU9A-xQWp|iIr$YNfV61RC^itPXg5Zw|{$@p-8W!mGZ`7JOa~ z5oSmGMx5h`?sDKp48`Y^kEZ8a?rRD3JJ0`&$A#_DPhkk*NAbJ&UXe|Ac-571QgjFRp1h1XFjKomkuBQmx)i zfi7}!mL-$LX`h}ajK$7Mv4%^OU1wz{XuMx>4x=%$({U!L9bT<18$qDvF~OY}q0N@O z>Cs}5kf*_+Vt6(t=R*5f&CA$s@H*w<`V$;SIZD7qhEca4ZxWWUVr$lVVF^Ov;rG54 zLg{yh^HLxof|88&ZfcAladnda+jwgLhRA0?Ukk;s`?MggRI0dkQN=3r)CC^)ccHV6#3L@wzi_V$=r^AhRidwc%u8z-L2Mh zp2$&#J`2WNWHN5oMDTQLHFqXoljQ5NcI?270uOxW3#ohMsgNX3h0>DPX#q;~@Qy83 zqcB#Z zIOK*PU-=30E;GVlNTeG+weY%IlOw~5_GF9C?4##Je8|4EkRJb-OZFw?5?H}nCAY&Ky;;NvcpAvSm?hncj(nh7Aa2I5mO0COnP)gvB zhyzab_3}4Pscaqc7L}N`p9}w{w})dqYcZN+ak`qAo0>BGTHnhHUG=h1y0BysiX}tL zr$ZL<%-GZ80BZWiD0_**5I7b1a;pf>q$AD`Z~Ay+vM7Rro4MYFPY@qRViBAO(Gj+S z$B=gFb4F-^DH7d?cKPl&Bhv^Sy21t?B?LCpn&qgsdjK`W0`gr6N@b%#j*m>ybzgm7 zWIZDrX)8MBeN;_@TnM;>B#T<%TewXDgN#5yI&lB-bhXA|9B>Bcqs**2{wVqq%6@H z0)!g(2ffr}m+WYALRj*}SV7I?B>IwxhP~q#dMuTIIdk^Pl?FU~Nz?Y*=2?O2GACX(nVxBZ<6_0K?D z2J6JH@~p=B|ZsR~_3+o*rw=^D;D%BkJi)AIh4DFnF#E$$K6^0~Te+79%(GdutS09;e3VG#^ zJo#DH_lBU%W}bVRng|q4AuO1@rSi-db#hsda?zINOBbfsm3i8nXZ(q0b%FeCQkR=B zHbC}bODL+%v@KfB3oj;T4kVE3YYe4hjhd8b zK7d<5*=AZCtx@@j>*}06m)_5LW4`)nPmD~qO12nk)OGIJF4BdRu>j=qa&Uy0jA*dq z6=$Wy$2UHf1f@YeB10-wgc?Lgn|x*aLg4GB=KW?qUW&YgZOLeWMPoF*$_QKmW?UE( zU9QLn$EPeXRG%7#6o&?{!R2@{O&)++Lo&c2h25}TD7#uaI>9bn!6|u7@CwJjhm4rv zl`C8iGyn+ZNt=1c|5&8vLBgSOD0ewa^`@hEOPKWz(1<5dIfSvzHvuSdpz1u-AzM&pD=a$GN*ebLVT$~kNAxuQlRgi z&=6xlfGAR5TU5FZvS8#GQb*mOM6A0caN#tB?H4CM2L1GVg|Q4oxiedIq}f7uh~-XG zPW=j4k@#COdgr~3sy}ZnZ{&lpR9*taX?5$YQxA}3S&E8EdD;@qTCpbskEoQP zc5Y>ZZzRS9N(0JoW(+$^UvTM*I2fmzruYG@gT_} z42;J|dyOqJ4QPZ}UZ~>@5I9zV6$nP>%gloa9R^m3>(q*Gg<+pwe|<;W?ZJxFZ6NBe zR$2NLf88}k&j}h#xo359{pfyfLXx4|hAJnomh!r0zWDl{e~k61xg#DF{P4B|+=`uI zMy+xpz#F8|R8Yjo8WbcHg4O)evy*;T_H7uKw(%nKyM(^HclVZ;-NcVe00{rY#?DAF z&UVcsx)~nTL6y@fwp{m7Z{CE`LT+VPbvKV*5zy4fpoZ)5T9J$}?3Lv=aZ$JL@6u;y zpCQ@5M5zK51(Pw~RzU~klY7VTjGsnr19XhNzmuxfuwb1N{mLn6iNdfG@~?3jVxw47+iN<eYEvJa9iotQ z`Ye9-EAD(q{hy3Gdz#{Sjk#)(mP({xkMd2d-jDa>c>VluqW!P-N)UnBefw}Iap}hD}JoaPS zYGIzSe^!sZ^zYSHNqbxYh&2ccNZaKP$l$sda^ENfrugiphpe*N=H#tEZW-O`{22tT zVX)f3{mhfWoV(`PTk83^QE&;;o1)`S^=e(UuKMg~SM4q68PlbP?r#>}aFj%UU4GGc z?mQyxGbkd_GTLCJ_zmq(^34&?_BT-J?I;rwjEHB#Mk^Jw%qfpQSPv8l_XzE%#;wgo zHbleI^B5Yd2e0H){$|Y;-Qr(^$hjKz=Fy(z$=2ZQOz^2 zxH3g2Qbd)58j&7{nizLhhOvnX(=;O|bxznYhh<}<^GNKu-jFP{ z;5>Gv9i#f-95YCRvFc6nVUaaQiCi5>9niO;LS^aMQwY&4{9<5$k?FKkJ<2v?N$yJd zc_EpqNI&sfmeW*TyX59R>os7g`%`O6kWzxG{;0+F0P9E#mhOEI`k4v9$vvq6bzx|( z?kMv3rru@-OC5(m_O|D!mKk$nlQvS}T2%F%%klAt)NV`hbUb4(3*lb1esrE6d8E7Q zjTctYpxoXZnPn!ssSvLF5tWzA0R6S0vM1Wn&Can2Ei`&^aQ!^8uIJn^c63TryEx?l znxUzQ3PYx4;`)>fS`oL=dl2UMC9|j{F_)2hfl3sdk5?JjxOxep#`L_CAg+Bu{F#=VG3>5_9{L8l~Z3%`z9^n zj~R5(e6aN7E#3*r4p~9SsFl!66`6=ZVIwc&$yQh6HHF_X2ol)A(ack92u%5lH5D4U z)UEGt6?#)3mj_Pd(DzWxAsMwQ6TWISJO{Ohc+4@DkD<1tOP1!6_-dggE0OAQ$U`Yh z!5PG9#~hQ`f{3~COogYTHl8)8Gm3QBA_q7KVg}XIjY@xDVs@aTa&t zrh*XHHMghUUj)BTkE^U=^%X5l)Ku^|jp%HBrj+RpX1rof`3kpX&n=^i#dqyPvt?zpxAG`*wzK{V~LyMN&@DphAS)=y~Yo54zwwzk{U?I zwYPN>zBN>G*XLDCpNCNWdSbnQ0Hbcc8jYr%K<#^Pzw&tT#&vo5M-$9_Ub}t5ELH7u zr}m)xw@x~d2YToUR+u7tM{8AmcyjoSu>zH|ehE|A&5@e7lso1F_&7@5nN^pL7j?qrZZtWEufYfe+4Lg=ddHzutJ~oakY1b^Kb%> zM2}#scB*IlC<$kHW-P5T$x9Ms^wn$x{nZ6ub|0xlwZ;;~3tV$8Q4Oz_qdFB^fpv~( zRkD?0-;y>~PJd(+@o4fNe?OifpMvM|gQ#+Jf1@6c z?$#N_x-qtvX>T3b#7KC0nC9PzBRF5OTCNmr4Puu>Nf9e{>9GY?8t6QpQC?jYMjw#y zw&HkN%e$zU2)m3u|XCC6k;1E@e7l4Bz4LOpnXlwFUk1R$LDY=!DDO8gs*To-d4 zR`cFxfp$WVl4(ug!8}k zzwQ%WRMArXX8Dxv^-p&CyZn0V!#a5>eQ40h;N@TJVhsQM89!YHE&mK8FpC7t|3(jw zJpTuWKZ^#(gqI3nxmDmU4PCXZdt`W)EbJ&h=?w+)1Otk{<(kiv+bD~bRPTpZQOOT zKw!ML#K(gj0Xh=3PsW62&ii3{;zHX$p-eIqRd5fkmWUSW`A4 zmPD8RpCPXI&4u7hFYn3 zLHnL{5X}$cO@B)dDY0>7Mcg0MNJlPlRzQwqg)%b+3sd*{un}u@0v)g&&vYr_mpjYS z^6DEUTYNm`p^4f$KBl~90{Dm=OZ=Tek$l&-$Y@t5W_qQo)Mhd+91P~6RG%E9$mwk3 z8me`*T#z_{JesN>tAD5hxg$u;mdm4L0j?CCUK3J#CNpwy~dxAd49LqU!XVEm4 zxnQQALGU}W%DZKCB-nVCFNiIdf@R(N!6FxlRAM-2gg@1)Eg$ z#sF;h2k}769wPaxD$Thbf^uGi^U~%7A0n$=Jr(flft}^L2p|2!&g!K_+?Nb7X2}LS zWY4B`0_RJQ@^>0h9657tGTtLf^&5yNx&u_8ui*HvI zJD93St@Z69%1`)~pR{K;XVJfiTr#05g;f=E_qS{fFN?JV_uM!3yWiPZAL=R5Pgmk~ zR)ZjVsEy{4_slnUTo`C$E=I#%nQy#|}y&h-u5x-J?y6HR#6^PZZon9mtSJ z%UqG~LtMYZ>I9#6MZRm%r)Okg0OWkV{;Ne}jT?H-SE}S7*Y8GRT4noB5@>2I$ZX`t zLt^kaW;|y+$kJ?*#M?D;x!;ii>E5!;qmNn=>_LARGiB-eG=H&Ck4CLQRx7PuZmG25 ziAoWrB^Nbbz`SmWnq-a{|&^&NZ^A3@Re+Prn#V|CMVIC*+%TjOvIf_?sfL% zSwod>KIep^xg4i@O#sI*eiiZuJVi=T&38Zd2bcuz1yuBBHL41{{6hyonsde#tt4#O zFv4`v=NX$f{L(L30QO%SapD|TM&)sIji}H#%a_s+$YgNOKA9fm!PFCmxV?xfBC|BS z>Rw`5a?P|B<2Y{<(}wWd#)~GEoYp4y)YfWksVJP1%jZq5q$i3ql4foNR8ckeCYI@{ z$~b;(%wkoIelKlyd(>O)J)2oqHOL8N?1@gU@co!fPTNHXaS%`&^wQH^4YsIJ{8rl& z;?A`TSNK>#I)~Aq!pC;y0s2Pq@z=2m(b~ zx5VQscZ{Wr>3HYJzG4N}+E=MQa3zKkC&9wrM%@mnE?m=UuQK_y1=l}+IbubHt-KWq zOx{&m{d%(pw0D%e$3NDU=O{B}oQj=Qz8+7XRGYPGge_UN{ZJkewC@@3?;jh%1=7Dw z-V$0+oFIhGFP${J3sZi;QtKJ0cw19{-$J0bJsF5?n-0YB7`kRq%E**syU8>OASyD4rhP%Et!DAky z(GrvfXR@am4!DQ_eKsG4Gm|A=FU?XWgD8fWLqu}i=;-AYv8rf#`rw>(qkG#WlFl{| z@V0Thf+S+`r=88u7&UY9iBeOX+>IBLhW=Qq8a`OCF?IdL_|~w=lwH@bR^V7>wUqU> zZ9Jf_JQJ$;7h@+^dtN*po<#Yv9?w#6XjGP4lCAZ!aoA%`g-Ji3-1Sa?fmrgsLdYaP zzh+`O+^&g==uEVrBuJn%>Y}x|HOrOWdolN zN;!$|z@)6zd)k>O!8=F&jh}CpnG~&Qg70&n#K3|4JVM^es_@DCZCuh8H&gBzr|3(w z+=k;N*4WN8SFr}~qdb;QusK*f1d#1}R_!QX5Hm8LVKe%ITv}~Ol(&{VD%H0*;Ts4g zSh}t7*Yk3TN`Xwa-wJ2>q^Fd#g15^eTEg2wbenjd!<4qCT|eCd9LfJMNWde6?zI}@ zmJ>*%_I}$+p*A&~@l}Vba#n65%)DSNDrNHLr=IE&_ASp;R8H;4@FzFPR$ax=L(@@O z`EfD#E(V1UdJxgvjHR@~FN_48=7yYQjE#oX`9%kNRBc;{73rISiQ8TFdYf?*WOtq|Aq)&FMS{& zwh?@ZUurOQyHd|zZt#`Ltdxa#+V!?h(xSUel$%=o*KoRUyRb3hayGDkJ1PJ_K)}Cn zwwu~4C{rMXO0o^vEPlC;s2r_)U2`iuWC!>p*~{UBGKg>=bxI~TCK3J3E=+moy%x1u zFLVFr9J^kkDz6jsFI}VMS$i185D#PARt8RAHr%>YY4p+OgWdc3ya$qF9&2jF?@P+i zgxqJ>OZ}i7A?3#7Z%M{SdARl;3TdxT}% z-aGpcxuH}9{xtii8IQ55;YWFwz+}Zqj>)oD3eJ>eI@uM6;*lc+wbo{Gx^nDYPI;<* z#W`DDzoZFCGCxPL1TE6=gyt)jI7-tlBpO5zVv>xGmaWhl&shnoW0?Wu*6iT{uMBR2 zi<8W;q@OGDtmigs!Pp+xx((kA1&5YGiN(p+2jqcAb5#>0nnzNysZ3bC{Yb8L1Z~br z)RU|d2Q_qp;t^~*d>JzBZYR7_6~~r=G2*1EFqJ*13^`2RH(%XG7JUC0`=tNLd|Sr# z`7LY0yd+ImZCQA;Axja4y60&nZn|3}&FAKG=`p?Ut62Q^izsmyvNL+4G3KVN>;zv- zt@zA1gU1|f!;f$3PLI%%*W2*a`RK97g&77-$$;#bz1j)C=gJqk-{rsIQhe^#Dbeb4 zj+5KJdW$fy$HPbwYb5?6m)8^?Tv7rkYThl_UpQIwC4}@B8-QpSbH<<&wWTeZ8Kq~v zAH7RAau;?o(P%ZZ=yTIC4T@`zs5qJz-F5;%E|%<7%gpLi;afoL9ipP;YY8>!MW;9^ zS=j|*>)7(Uqi?7yG1|u;Dj=Xf0p`V;rGBSlUSlsh?5acuQI3Av}k*v`dgq9NG2C2`A7SgtZT1C}y zR%kn14U#hEb!A3nv(}3&$sjyu_?|Py&{v%RiHQ;lJTize0gF_o2e*p)8|9mHusIP) zQT)foA`xPC?g=S|!Q{Lp!3=<`%SoM`wjpJ8be(*SE`3uoJ_*$oZL)9fbUR91`4xVy z0I7QT$APGCf+L$h34&~%PCL*!gfGnMRH#*c?;NK6K(%wv*!7Oz-Uopb=2eTaSV~ea zf(Q^v=Tr56;_nUZVWg9JH~o5Dzng z?^e8JHeQEF4}y!(BC5?CCOj^{L}(xK^*j0gRpC`*czYlT`{Ju+NcQmWmU!djB7QRv zWew2(DisVbYcEhN5cnv0z3(@E7J?&$tc7mV!3-cFs@)LV9~5tlOg4{K&*WxIs3V7T zU({2IB8#GJ;lh6e{Qa|c@YbqP)n_1eq97oUll}I|6EAc7Fn=eVz7pXIS5o~cp_BQA zncV)}@E~t4Vy-x73XRWsvGljxpW)4gKMrEQO`HUY3&G_dS_gmp@#6nHI1zJ^ozM@F zco^YjKjih_RUQJbitLM=5n-*$2YBH{K_vd;*Ka|8={p3NzaCP%fAlkW0Z~5vQ>u!d z=3j~S$FF>pzlFktR|R;T@|D%7pch{3o+5GmmJt0f`bBf}x!xKXfG7wfd;GFtO2Q8_8P7=tcm^thx?gtvo?gTC`F}v*0SokX77V) zpP;}nJ^7H%Tm1G2KdqPesQ&uMSC9U?7rOq`)YzXS(=1t@l_J!leFeyf#BM#E&!*!) zdY-)5AKg2hcM?W&0lO)Huh*O@kj^iPx|vyS173^T55tYW`;hm+`undArQ1T@jk}m1 zQw}t8Cgw2zg~s=%($eqGPCNH)%K%3%z98Ee&h7cN*y{>8_D9o_|3_*3=h1MEu35#cFl-eVo2R|0hKwL2t zvtqTPRkGUfSbQg2gEB1lgW_mQSBE;C)YD~na|@3T8-Y_ZfuJgWg-0*#3{2Ld*}`Q` zOWU(`8TLB!aK2h6%!|q(-RgTw8BR!|t;QLjDHY|fY0DZ66~aopX-kz%EZglKr>{Ko z{gN)db4{xY4toV7ZlzOL^QZJ6K}$sQ+s6#~w#SI`4Tc+Tzf- z6T;}j2OkCX-iUzv)4>dp%aw;YUSCg-7Y{@+4#ebFzL8M>m8pa}1?->V7eY#=EYi)4 z2SAkNTg+X~I6iz8V@}_N6o_;gu<8P*g4^l_r$h>=Who40;^=ccYIS(G$pqVqn-ehVFnNqKA=Q|bIajlEK?0+SnOUq zBCzMpULG;fCnhVU06;EXxS{giu3>hJPhR3!-n*{EU-M{w>uBBfeN%JuJ~Jt1c)9wZ zIPSZA*xH)0`gg@YjW%~W(MLkV`>MTzsfN|e!d+AJ0&tmv?|!jn>vb88Qjh%g-6&g# zSd5;Y>GYu|XZ0De$hNx3J(FCGkiXBj5!%3soE$o<$Acq^iG987$fap)d78)YBJ_(@ ze420$X0qxsr1rjr3)V=A_7{>DvH;fgjRomzW6SBEU>?=0Wj>twl85 zjilNW+nhZYZj)uT{PH^Qner9S{3K468d)V9gig4_xEi7p%IuTSaQak%TPAEa9Gbe>7k)z=pUd8cqB4o{#FiQo$D4%gM6bL0eletR4IZRMt_c zlCd!l?MN=)M%tU!PBJAEb)MX8Wo^0n&95`{C~06PGc5Fxlo_FnxFDv;ljxP>(3|p_ z{JI%5m)T(l)=W?D+`snt6yw=l(yn&+{IUzc*q^prala%(@Uhs|Iw#7hIMcat8EUMu zG%go-T~joSoM1u28*!ET06v*d!MjFfrzJELv8Dd-3X9cEIS8e{lA zFhHM!AUA=uO>a;3GcZFcOJmgXRl3?sB(rC8x-tt2Wjl-kpbACsRPD)oFztUJPQZAFdogn*KC+dTk9}khQVp>D%9-siMYU(DBXXi%3Zp9sQ z@ZICMP@ZeQO6!aKM^^g0?1>}5BFK+EN4Hn6h^vh0N{q$CEFx9&?tmK|U){O$7hA?K zCXY?0M6Yc8vx}g@dE@kjBZQsQi=NOR3BsmV6Ja-}Lin4B_M8nrdE6{3&k@(SY9MVd zGg8-A3L2>z#qWJu~=8_96~fwwka-v958>y-W&_rTy2}EzVXhndtGEO8372Sj4l~# zFgy4R9;R*OeL}wJ?4JLGtTVUU2fq|2dHno1*=AH>{r0pC>&?bvzkM$j%Obh4Old_u zf&ILzq6zx=;ES|D<7c{b#>}(f?~_A-^gOFrWvtGY+yHD)Rq|zigrs1}VYvm(@-sE5 ze5ZAWz|3=tlE}FNcE`PwCEVyk4z>p7BZAFZ9cDZoaCS71;mj1+pV-BIm{`N2%7|yY zQh`^Bre5Irc3aJ0kv*4^vg^ESsuNiyj%#~ z_)WhH#FSWus3zhHmL}6O z7T3z3gzUhSY-wy3o#}(}yfiEQrfLIK7vXX3k*?tFZy_Wvts}-egY`9KK2C35RK4?G z|FVWL9dIuF)K8wQN<^$xxdU}<@0`GV@Z3AYGspTN)|XC`lw;~+@DXLPa!%6hHP`Z_ zWde#*_5jdRD>AdxANc-}T(o|CV4_SGk|p+?dp7||?Lx8iV_NBsaRNp0 zrHU`ZA-fLMf1Q|{Ml)S@3*XU?-EG4N+)AdrJ0+SO_L$}dx36`hMiTmjHH+~sJkWEL zlMTEPyf9c)S?U0%eq3_E)kHGrC+fq zup5h)EHGEd7rTOFP!mGumLMl0NZ6Q~38QTCpxGWi`G*|J`&W0*kun=zk~}s!{4q|O ziS?1b+jQoOr}b`4a8TwH?_|1~lkx%fK~I=eW(?AO?*zm++n#Z#1AlpD7;LPb}ju5BUN zz9d>;AbMJoR}R`2X;P7|CFSiK+^h^@JXA&*Hr+kHWZv9r!6aSnPI1h0icO>hj})eo zMf@0G_eyP)oCMi@0Hcp9FX_oI#Sw2Vp$6gTna)}t;E&5&KcvR_+zU&OFTQT#0$kt|?;RoK zH_Sivf1J*=4d8XB31&tytz+9J9j{mkd<2&#`~|Lp*4G&3>YR=hMo1?1OPe9P+O;!nSS0qPe z6VeJ9k)&gzX}|7!V)sTE)y-mYV&G+TtTXF{@*7n^Fh-!li>Xt~q_SL*jj)_|L;U2D z%b@pb-H#l)A0h@4e6Ok=Ncx*K1n5I3!FlQJ6nUDG7cA!VG$4p%umP@CH_srHFat;;{=5kl_nZ)C({xkf1&TA zv}+TFvBYwp>sAh^NhA~OcsFLL`?Cp^yUt~09l1~HC2IIR+t?W@jN?m}>8?1*Q-U*@=D?!d`+*OOVeRuOc zl}&3^%oa|w%AuwK{jke@6f6=O4{2w(nz{wc8Ia9aU79h}KZyzSKR;b8Wc<8Y7MgAi zmeqD;EwgSXJ;-GQkV|?y=|J5CbALpZ&?!lR-{-(OiZKS>(g0F#j-Cqf+voRYR`54a zxlpD5iHE8%=-{34+?Is^WHUDr7x;?7aqL%g6#`W=F32R9(haPF6IyyDenaWbHd&>O z@*f;_{<`3@7w-%hD9lmXr#~{aAj-)0g*=% z&(8OZ3#U=Co3lvfEYS+ig(L|-)4;J%8*i4YGV0}sjDJkZQdpj>!CbwGlQP?~oQ)Dc zCeSdRyFj1lDmNeXzIq0wN&Hn-_X8=BZ%fPmr_@<_>E6D*j-C4uG{RxLn2-D8S;1uZ z>1j7?k^71|u^E4i_8w4RUu_|~{v9>jn3WXm!?!EJ8ZXLUJhHs)^ln}!wvBJHuaKN{ zq)!TMdL9xypc>2YL=DzI`h{~ToGaU8yD&YUP|sV(wBxumiB%;Q@Q{Tco&NyIW>*0( zn8PGmbmF2sbHQr8WWe7^i%C#|kj?bfJlS*jb_wr(|NMOJf#lJk;t9Qaylr0EdD?u3 z@=?X(2V6@j@`u*y6A%2OmnGcsy&dDtr4f?iY<60@cv-h&>g>#_5`Q3uWV9= z*2e*POP!a~$?FykFiLSUrEX8So>YcR4-|OJp2ilG+2oRFVN1!2%*s0Gf9@^NQ~mTr zoob$JGUa#l*ldCbcu|G1!@xKdDgXQ&kEUj(+PLpaj7v5*-rm|G7uXWph`wn7kct1dv=R4+qK^tyu-7;w){kc-?fm#RMSK0sk+>(ls3aZTovov)3M z@lsek=sgn;Syn!3U$r?pH<@d5{!x7S+3=f>ciRz`=Q^3YTYVwkgfgm-ZQSEOu6f?B zqK9)4x}!R^%|q#a(+Pbzcy@2$*vlaAsXeWo-Gks0%4ybWtgBag}h?&IMuw z&U7lXc}O9-7RrnAONRn9dWjkE%qa=(T<|6>Al|%z=js|q@`i7#2JsTUDy04Njtd(Q ze6MW&_Cfswq|K%?c#zGZ4p0z+wPjpN-IMHc17DhiEEy@9N4(iv$a%VTiC~>i| z!JgPRB(56VbcM)l%B#Fkv0k}7JZlP zFSwcKt#22E!Xf4HyQ0r2gq==QafhULFZKb$ad;iTx=3!NWVW}(49$!Ha}mauZ?}yK zH>TPkwreyuHsM2=2pPF;Ze))m{aosL7={H39`(h_ae;RgK`p_+db4}j2S(?WjpiD*RL`cCSWgx^Q;u7mna(PeSaUdlBEuH@;^Scx|L(gH^U4G`L*A=qKRO(`=ILy=cX4*T+&pAZ^h| zgMM0__6B4B-R`3~q_57Sa!#+%Mns<*b90{0GLC%6*j>uUbT4nW%MmzVMk`-s7z<{!QCoyDdMoOK>YqgAB7Mtv7p%Je4$Eta!_{-+%42VZ2s zJz**;5AWBwKNC@%b8OKeXiV2_<{xXBgoD;aq03uuY_v9KDN_`}ATd5fn+l=0-;o@7 zF&uf41pGaRbr7?=yz!fRU+~g<-s_UPK+VNlViI%Zn~3t)!Tz^MCzu)z6sio@ZiQGwGRUv{o2FaC58LQ&?=a_xNk1|uD&g}3B?-<$#; zJ-_1w`tBQR`MwHR!iJtdT=-g$^wHT2-n!^|E8G`nv`5~l8tN4t9J ztP#D|BoiS_tpk%~*p}k#w7f@UO+q#&WS&5!WW|B@c)4TK&4&Pl`xh~nQjn>hF%g3p zR_RZ)kNF2ChAOT}H^HDKan^EXQtVr;7L^6R2$=oJ#Y+7vh&cMTa#tWJE>lel#>7O< zs+ZCt!r$Y0Y&rNHg8Z^tf~SK9b~zela+5+caIrVdZQum_rq*OlGO9we(yB{n-AHzu zb?r^YhL0x?Qe(F3491o?s_Vf5m)qqd5y7i0pFxL;0{@{M=NH z0ru1B*dwh5l?s+Qz|G37zwKTO&jt!qU|3aVzd9N-I5}@}w^4ahjqN7K770G!r=dHH z9gX@1yAAhsR}YBIP{4YJ!P-_sU#kK$!l9P`Lw5H~iy!3UeN68w<{pDrvHXlaZWk=8 z;LtWdfom0ow-isOTlh&40pt*}3!Kn5elSFyo-5;3Q^0X!@CRj}s zHceDiq^L=>Cmi{=HFM+;Ld;8-D|hOwr~p$|f8Elf zxbIxW-ExRV5o%$TK^jd`l0YUvn5%R#@I#jz6A>_R@76nwNHi(oukozc>9uG(8q#?i znS%b5UU7CcVb+=QeD}G_YIh~`zd~FuUR9+YG^eboQ&3FdXhq|Y5iK*lYS#_n1C3W+a`Ro#ndNubuV4)^(#hyO8s-jbCD4GgHJ$4VwKiD>ZG9K!-Lg^g4lp`^U7coPp=>UU}Ix6SZ&Sg ztm=J`czKu#2bX=etIa_j=^6&;n{Cy6(`63xXg<=y2<;$8sey}u1dH9iSc{uUyM(*n zJ}nEUcc?S^{*z49G!=3FT90|>)teuWa$|V>fg}{K#R_b!C7DvyYQ*&^@tiEqhCDi~howKr$#2#{{H_KO< zVpWV);nh`}kRsNCl#lJ)Yoe39%=fg?rE>*aNRURpYZE@IcD0i%!0UT`#$L(bO$r~- zR+6!S?=>eb+hYsV&`L6PvsBn%Uh0Omg`|h zIIY%*Hv(Ny0bwYoFcdH6mxQq2*~E`uNA`ZVIrj~IJUJ9HH(h6Jj|DY%V;kqmk6XNV z>D`y~zH%O!QA>T>q=`WaUW;)wP8k}KTw_k5TkJE^jjcLiLEG^+bz_+W3JXNh$y5y{ z=?)DmVJa1ldVkik{lI5afHOb(g^k@p&-}f>^(yWTW09vVz| z{&wo_E}bsV=?qQ=&BM!unnXg=BKv;k9A&+14ppQI=*sSO%qXA~4Haiq*zr$_)hzGG zojr!skktE)vgmiwkS`$*^$Enh$i0tFi5-M1O|Qvvm%7ueVhgMWl`1NTn5YT(d^Mxf z{Joh``dc+BZ0g1O!)419u?t)aB6ocvnapTE=QnLY{5T6Hd7|)9&ywd(GX?NHjj@CMMcp6exa!9` z#_Jn(!}_f1djEnJ~Y;m`o+c=+PPXLMz?aO`}C>NKBDS_PgY#d?>Uk%3d~ z!dfnZe1$A<3vI;tj9rCZXLFHcFFoDu7R_V!n-mFbg8LvfZXIq-2@N${Q-Yg1$HpiG zf1W=rHZ?c=Sx;7?>%66bp;s*L-&(=UjxzH1!UCGgA*EE(S!%jEyrGKpH!*XJhL^rI zspgO>cGk&GVOz`g-ksqEYsbx0lH=S== z2--CrX~Lth#V~V+}Ynt z*Z3aQ+{bVHu)l+BJX){+3NZBk!JE770!raAxyfEx^~=b4n4^X#IvAUR&{xFeag?w7 zmi{ji9kGJ1c@nDg$8*YN2rGvL^_2K+<&6jNIr?VbC&v0b!yYkZ+_s~;SweEH2ymnL z(2pg5L3%aFXc{SKke{5=&P6Yj%q&NTSMIF1HlF8XfKq-o)0yB&nxRL4hVbgkKRuTa znshB_axexmDTtRW1@R|gPd?N3&9fZy|)ylnHb{@mP`ss@43mfr$w9oxAF2ii7v zBgB&dZ(FH?>-dRXLPRa~&7 z5a(|4J5#6x!H`oRpjO381XF5c4X9OmG+_0laM# zD$b`g%9b4WF;>6faZH&#ZmFzrEWQJ~tOy^I1IE zzMFRQy<9w>%sBS(JG?tx5Wcb`yD?}z$!LMsUr(J~e|2~=1^>_pt>a$scQ3cy+gy2n zJmI#8@|^VotI~Aswzat_M*;PP@(z|JE!k?a?5OL#m2i;nn`t2`3cMX@xkPe zq9L?4^D(RQCyp9lY6=c?;)s7CC|0o^pPLYw?sZFM zXMIQhoeSATyuNSZ;hd+-4*N6Vm2Ug10cVVZz;v$+s$Oa7Lp8=WS-!8e%i}4T5g@h= zY?sb~WmoI4P(a)0-mA&TeV&syTlC5=tOHw3)jAyu8$lj>ITs_JmOoD0))D)9mG%yU zf9{OkJf0Mz;_QN_nMbc`&6@sXYt*QaOnq=IyN_@h+F*ST)24mg?q?Y)-Q6+Y4Q`4q zFZuXRu-&&wc}Qo*Jtb`IvYe-g>?;s=ZVgqAK#xy}bnC$SraW64kEF!K8S!Xd;ywBO zgUF`~>rJEk9`L)1#KrUAjH@EDCs-W^2L|4|aNn(~j*nzFfqr-9w|h;k8_+x0O1UuV zajBaNk-m0E%X#-&9-y4jm)(PhKw~ZuMt6eIR#o%gmqJ`&JaTzxh|4>oJ4BJQLL5nM ztCv?1fO|`C^@$em?d5#^rGbM+CIN1X&O^%Bg^U|ZYPSMe5+KRyV6T+~L3ijvv~F zGoeyWQOnnhaa+9yQ2{E!;0&h}iTcWAwstk^30?}=2H^?QK|hnxymBRB&PBf5(YzfU zperHm6oKqrYVVw1z`wR@Znf0dtXCCMCr(}D1Xa|5g;c2r3N-I#C+EX2XgY7UIY(?F z%|QD1QGdpa=5VVzQ@&f3t7LYe^G0T_hLkjy|yATJvH}Ndc{pNCVGJePCu#AVlGT_}T*`#^2%?Jv0Oj zSUsg`tx59o_36af4@#*&KABfqG};?}lcCHl0nOkSRun&N-H7xXpZYwfwK<**-@;^} zR-J&Hz*D%IAE#V#1ElEI60ltw7dTXo82ig7%~u{R4J`70PCTc;XH}dmvvPqfvnG|# zf&HuwPAVN3&n9Bp6{q9nN+JvI`xlMcxtttVrmF=O zyBXV7s<1$<5l;oQyP`Y0`+~|Uc>kVTpFR7?LCS%mx|=W z;dilnH_&_ApK*~4Z50v-io83>xPX(LgTKGTDu1(h+;s1Q=i4*=+!~~w(9mhC*c8cId>x|X zSGq014KE9H6vy(@O#}#p*bxphN~0Zxe9flA!)R$R+}-$AvtKUbWg-SCmV@Gn4gvI` zmaJS(6kFC=2v;NW(*=mhzvD#~3H@yni5~g#F!HTcbf$gY^;PUepO@o2>R9$9}KQCUPtBOyuIwA{51W-nT^FTr_eZ%0pZuu!gUtJNI>kF!H6>?YFxn zW8uq)j9UYJOsrP;_VP-`MTVc7dsLu?(Oyea{kapA1hv3VYTyyCn|=2@(M5oQGC!C2 zi3sE>L|}X@ZQzSC7Sj{iGqIL$1dpep*^t+WNwzc}Tj$CrebW3sslbz?wm<)5LPM*T z-KV{V@U8qkZquH9339w68qwtTbB&g5vla`2a<2i^O^%aHxZPKx6Z^6n;8+STd5{EHCL$JEhQQ4rAin z!Lx^t;`k$`9jn3zdRAr*c~Ui|=E?kT9*-@aT-~lk-gNQ%UGCp3eE-HA&`ajMW`0}0 zh(o%%6pvfK;ACBDmsieQaJ9n|gX$diI4bsH`ucK$0%W&hZi7`@Q045D;HcPbk%BG* zIn*^J)0VIMphvIsRXgM$9zC9r>xSa2TNpg^4cElxRTotyFRlw;I6qxu{;_hi#mqZ( z#d)S@IqEA#PBfERTfQodxzHk*__zltP{r0|889jrNHMyS|LolkTnPV;gh zYC`Jy?p@(z-p%dbB(|NU`VJdh7~f4BoTuEa7@TkUtuf#F-wnFm-QG|9xpYs%}FbQ`M5XgP~%@!bHN2@8n*7Bg<3+)iaZr53OrdxX&@uiDSRCXp&YWZ;Au@S)irxm<{8%^CoG-P9@_>}$nvA` z1PajwP8?HFK~0;AAkv6#Y}o;g?{k{*-#K}z{$L`1&)apBfi z4~de&cH7Zoc9;@>mK9ycTz^{6wt@|v=9c?5=MtXWd~jouBy+qdCp0oRBAixY;Qf50 z5BZGd^F-i~{BiA5n;Of$x_8>nUoFbX36o!coN?FYL_<>ewR*odnOJxENMKKb>2YfN zbtLT2&pYvshzB*0Z|sD})v-bev7DhuH*y^p=woD87a6x3quwlt*gY|7hJ&<&NC4_( z^$YT3qj^opr99m5t|KynN%o_BK>lO77s6&|ELSE$fF1E*Dske0KM~KNU5PVpYcQOV4Z{GWtCKI}Ad%p^QI9_OaP;bT!U2GTgY#b- z2K(6z?jsE(bT3?l=Hk&mm779F!rl}j`!;0wH)IA#W5~bF-64Kl#DAYd`m4FI!;J?U zevf`;Z8QQ#GyblQq3BVDaP{94V5mG3@-zE;GKvCn@7tljJ4=c4>*U|202`2eeyAnZ zT!e}?BJUv~lD!Z9OwbYX{eu1H>dv)B4=q(mT!*uM|tnPjIGkyGbM!X!oIVSTyq4&EMPh2`Tu)D1mK5p@2 z!77njg@5@D8}vr@v|dhmB_d4sr*e{rB|UqO!`0Zf!*Y1FP~dsT#R0VKFt*Y6`vz;d zadRQ^7tvo=dRGXs`lqP36B_dOj@O_!Yr;{e)8vaCEzQ~oC#J1P7!EprH1?_z`dHhR zn>YM>Um2&8Kg*n0L=g6((t#AJqzQ_>hlbE(jTBYfE!)l#hjw_}?kNwso@hb!B!^A( zDTdTY9&e~TVcW1+x4O=Sz29@7f*J$3gMgi$}#PrQrIx3dP!6HfO>| z$ADAGlO(8On_ZVlkhjyXw%pVI;CoPgw^Q79Wh?XHHsfx5ZQt(_;_;s3C{m>4{MN}~ zlV<2f2`T80HeFv1UZ(I(u|5guY;Ar6?OQh@>-b;pJ=XUdt#xqDeCZaXILO!}Htahi zUa3ry4gX3RS0z>ECYHZB?CjIo8;u65YOk|mgJ5%-zsj}sX!;bwt3BvAqgI$w9=(}l zweLCT3?}zpdI@JLX0z2OGl}DkD1IoXaowj*aeiJ(rbBDRtYNPcqBTlf_X?}y=Tfj_ zL0mAw-i|0%Sw=REcA=r%;Dqe4B3_GU98##Hy`qCoz1Es9=~qe=cC73M)1oP z{nitmHV$HgLu#hQi*(`Wmee=1yqhDp_(>8O>YBk|VNlZ4E@dW79=n3Lsnl}LleNZn zxuh^q|0-^vF+v53!#^0 zohJa5s>`xX@9%a%ZFM=$E6ie_UE9SEAJg=V4D3BZ*=NP6+*qvD>lFm8El*>Kte?%N zezcCJ2w$5yk8u&?Dyxl2vS=pYqSs&@(%n@L=9#^M5u_B1dH$yeZAHX_j}qDbDvC4ZeK>8dt;F;~pF3ec=Ob;!`O# z3JvDYC|No(|MgLON#DBCb{%+kF2~ng3=+u9)j_g?7O29sY5ad2L<%2nEW^|15nE`ATXkG{ZZU{93x#cqDo-~5M!TN<8A%dZ zL5ds~kPeIaVX;2*Fm!<&h%VPvadrL)uS17s(nreIF%E+OJOnsp^v*{3a0Jq z~)G{@UR0$!E77qf471 zLBVjL$f-)j8Kq=dY+@=mtE)WP-8<6vV0EJ3cuy1x4Oa^{8<0%7fj_WnmerWzq8z*| z6(Y*jGW)uXSM}M1^(>?oW21}@hXZn-*TWg;GbEGC_ChuJ%amJxjxYev2shS$W*@2ig#*pP0FxvrkJ53hq1c_s!gQLaPT+~YBM-sy>o$F6!#Cv2 z%nA+ev(6yb=qdwpV3FrDsD-R5=RNE^FBXC!nw>vZJ$g*tb3Oo!?nUcagJ92n;L&?2 z2}I9$x!XQPF{m`lB>a--mE_iv=O~Ob=6_K6_*gkObW4YUuFKiT_e<@IN*B1lVYllD zuJyW=dOs$tT2~Uae8Ys0%hX2WhsBknmzzDZwoRD$a)XN4<%iW@R~sgq=QiHvTM?%i zEq^hIL>?$Aq|33=9Z8%}3!ODcrAlRrDeCxGei-6EXt}A2YK`FKza%yW=7Qc#mMR)3 zlrD-0sbH!c@|ArV;m>@nJWc7JW`8GU63Y=qsifHLQEMcj&6_M$tYu!J;XsczQqY(t zXmD@45xRFIQ}7mbg@nB}EytJ;Ju=|~Cb*arhk=gyVRs8nk(3;!r&@hqgB^#?dQ`t5 zTi=CNYx4BWh_ed;YfIWKWay>78Q+29Gk%=icrE<+2-~;lu3VHBTdVR1t@s^k01dWapyd_b`5pxTYRbjprOM1-vLEt{b& zhowu)BCfEU-YOOs~jF@mmk+_HRig*mSuUrK?uXlq2)C`$Nj zyei2l4?t4FxSNe;&L?Q(JF2&3Hjq;JCflGeUE#|y_i*24_PB^JydhgGUkQU)+3n}; z^;i9z_j!TeVf}41^Y!K3?IKq1{^i2mx9!_&DBPbkeW8eRSazNR`DQ$1!wx0hOG7f; z*O29oUi+6OPE}_d6qDfZH#DVM>QisW-f~dj;AVE>@lWPffOsamNYDRgr0#^UA{&{hopWl9q-pIVc4O1`h=#Kd28m|K%hE&&_ImbKXYQB*I)NA;07vm!eJqe|@gNS{{uV9G@;8)(T&1 zEuEJe+?+uljgjl~VQ-OJC3sp07(BTdkC}j36!?&E1`I6DrwY=EOK>j5J!G%V4H)~i3))l#nOGYS);>T|O` zHp`#3%_L3Rd_oD5O|gT7)iLyccEOmZBF6}{D3hhm^-uYH7GTToNh?gEO8pLxyNQ*F z`bLPT>wDK0rT#~|%Jh$w4Nz`(lR%z1QpVuq`R>OJzuIR|d0t^&vfeiTY0;BsP)%$g zHaH$szshCKUL*&N-zcmiYis~e$8nDKys8`X+cxRnK>PpT~s<7GiwA1nL z*6+36Qi^58>h)t(n-VB?Xd`n>-R0GBF7>wU;7f(-@dckl80FqQTNqW3P+y3UczP5^ zoqmo%$W5)qSqo09n)=8N%zESYtVxaiYZV32bZr<@p736x;xUm0WKu~DCQr)fT|M{c@9&8S)^c~P zmvKaPw={~?3%~Iny}1B0K+M0~zy2&Rmj9F;|IOKuF}WvN`#ajq8zqGy%O1YQdy;DL z&unGNN|kXG#gdaTb(M+srQ2WuD&$chll+&^29rX@XVp*Wr=Pn1aU%u+D`fC_qxl)) z@(jER^NwX}5S_w{FLB+;YAWPAw2RMHfw+M#@Q4h!jH)=dBIsNJmpP?*6(4(t1k>?m zRaCF9)T?#kwW{PDT|)1NLN!Fxig0MQ+OvguF>q+)d2^rGJLAw0%3|e=gJA&@%*e(? zDdjiTx%m&CFPU=j3TIBoG`wm295{^P((_!Um|>iyTlIi_H(Fj#MoH?7k#4r4LSin} z=iD|0J6^orf4aowUGkS2O==prer{xEXsNS)+q;LQ!Ni{w)v3Ag%C{|2<=Y!ArJQ)VM4_@%!cyYNBZor8nT~l|bYNFzHU6 z@RG@U1izQn4|TeV7WdJ5RmZMoI#GMq&)O4m!KwOZlsWL8B{t?3y?9rhz{);8@yk>Q#6rJjlVx>(rgNn4bcb>D!%QeaO=MG|;b@+r9C4$Er71Bge z`4sSr@>}^;=m%!gBp&t)@fIlC!aG_tJJgjNQ>$|cL(M~~gwV(JlT_4zFVhr-x>de} zc}yKu1|KC8Y;rx_Slfx{$x^J&0naMuKBC9|)oV53XD+$ExtaA{eDN*d&ya<^#2Hl{ z7)GE8GTFqWGVWmD8{4OuXEYVdPuH;2s5C58D;_GOmuw=jhlh0m4AYNno+ac(3G~Rp zWi}MI8hfiL7v<>+V>dZA&luNvU=k+bc^mQ-^YvyVNr5qt5!$CJ8pxrdYM6#}UlUYm zjo&!(@%QzoHE-or4M|YsAJz-L*>V=6n@tOS$3t}XezFt>HpOOddkE83VoHCG*@A*i zb;oAJp4bpiwMFP77hf{2j3d|`fLWDOXYEIt-#P$EabXoyV{zZk{7WNnT&a8q;D)LEBw;!B-PhrmCd@<|PdefI7?w$f?ai5eyMk<;>_B|FgW z+xS8k{ElnWi&lPf!i7{`uxPctQeKY-ra#@15*)eN?k?-R8yn=>Ya^#nDzOuUuaiw4 zSFZ{27=Pb{+&;=XPFO30uX-su|AE8GUG7(s^fc2AMc5444gF8xoiNujFc!dkO5;8R z2wVx``=x*xX%3Yd78&1VL8q3J`iy=5grJ8AjacMQ#`*G><2=nANB@STNZo==EISik zFzFvUG~nDpEh-<5gc11xaVY;r8<>TM2a@&cg*pZgEROH-1PRKS5LGXskAF0OYYlNX z9pb;sEl+j3-TC?*JcM3dV2yG1lXL#HZZ!<|j+xOOjbQ;}Lmr!t7^m|ieVJ|N&RmLq z`s?=l?kMPE_m%>gZ|)`XPipyUsnhBw&i-8+9UJ*y2iHZA+?UaNN5~_@e}#1Z-Ig}b z5vb*F5aZv`-ll&`Pn>@RR{v+)0J-)IL%L%_i&MQ(zVkG;dRGZx4L#loHfAD8BzhnD z*V_X{YJa$ev>k2!B(nDrMD}S=%GM7en;=czx#mL37goctn=o-6-Tx^aiE*+)!70+o zwoY>&=78X?Jz4_Hcmtts*~L)h2XEa=<@?odhJ$gm`77WEt>OGyEniaw2@#d9=? z+-Jbu7Dk>+v3(2n#ruXX>Sf_@T5IbHCNuBzt(+F90Sk#*;s$&te5=wS<*$B!MD#@v z@-4^`;xZHh+jGuv%$=fW-`+J^s|XLgIvg zTL*-AeFG)hsR`!wcRURNeOl&aX5J^9>`H3Ez9S2TX(L71oPTxGAuf8y{N;BGKkRVO z+BpX+X@&99gPKY|R&Z-R(@F@PND1B>Zm*S&>0yK3IKSX``xRF9|Adv^OrxPN+a2*D zGa&E$rwU4)lX_!t82OTYTLZOjAv-)t&aG;2zInj$iz>%wD`(EgGq4-4h1Q-uhH0S5 zCA4ju0F~$l3fSJg8SsKks4C{a5r)4%z64uv{LSeSwO!M9{vc*&qL7xp3ji!(`@Duh zV^3k3%{5gmgcDKbdHRCC_j4*K5mZ}hsG59Oea-4~^5}|(Bb0Mni&}9ekQTvHS=oRi zfMxeR?=%-qf0*Bo*PN}a?JzLt=d%e z(3EnHVaDa{O4wq^6#xb2eR@;#u;98pctKtv*pddNaH^l0h+;PFHFp->kRug9#Hgxm zfCdYm`H;Jr6MuA;i;$L)%Bo6=8m73reu@`vX0?K{wb_s?=alD-7hSQ+4|$h7B_f$u z8WYcG3Xl=RC*yyOcq3CsHlpeoaI15s&=OgmX5bVa(CI0`;uyB;FKwdCk}b=1`UqpX z=jf-oGMl#K$5gSN#K@to7&8FH9=lb6)kM8MA+rlHjO*PQm4I}!ZvdSx_eXviD$F8& zaR(_O`~|Q_2PZaEB#&=@DusWXVlCeo_U1EktSG-CCZf1_`WfBJauFf)^A^a)@7G}_ z?ogVSO?h7PUL$4O+ffhgm`@YR_$P(*A>GN!HCX0!?&&}aT1}3PS?q;h-f{(lre6Yk z1NpK>CI@*5UHbm2OGGedz3aJZFB53W7MJ)UeqIxBtxR%cIPxvUAg+B(e7!6*@p8Q{ z`~HeC&PE<~BJr!7-8r0mH6j)BBtnp+nfS3L%24Ft)@%~U(IO=HeyrYl4)zSlweG^3 zRqNRumW*nI~R93=e6^h8pEp+ zu$@X1pImlxS<$8uo z{hoy36=);xA4IW@ajoTo`00a1Z|9^2jRxX>vba#Xw9Vt73uq&jpt0$EW=(5afr=lB zX9Bw!)#MzIDZlGkd`<>HSINt{|d} zfu~B6XQwinX_r3G9J&@JGBR`F6PDLnX3hXWGdZTNuHIn9u*zu;k@O2Wi1%)JGB`~D zm9Vf`}JjE@z=B_#ZDJ1-X%Gm(y@-nDPqT2;f!S55w7MyrR*oop^dEzXyf?+D1t zlwSKZGMx~U_xl+|&;z&M+sep*eMlPEXw8LJx(MI8xv;nEzhz#*#O?3c>|Qe+|F~*! z@5J)AsLC6g^dD`=aJN)emBplEMme^#g#7Tm?5#fAN+MQ-YF(JKu@kHVWQ!OuUcnPw zk8;oUM7)4=o~apc_Tl2$2usv`s8k(>-aemDI&|z*`^B!5uAwT|Cc68Dk9^er^v1A! zDNIC=XOcixHJ)Q0L}05GgRxBrR(L~*Ij$S8D1Dz3WB)PC^;p@LuTU|Q!OqoKSMkz^ zD`+VgBG-)aljQM!yPPiTVWWxrS^oWVAx||KT29E!xoV)fP!Z3Pp21gbGiYKC5#hl2 zaK;=;pf4Xl{&x#0=fdqmG+&o2mdo}=*I33`c0(Ps5Ccma&Se5#p+7wc9U(?6<9i+z z!*F<}H$ZE?VF1R7YbclhlPBGo^#4PjDJ1#lOE>;PFY=4g{+UW-N|*=Ft#uK$pp*3T zy|dSL)q>`sW%1<-n&wAfIqGL^VAIER9apmh;{&kDM@H#~T{vx`E9(@+`Ra)(37!u5 z>~R}RM)g*bIteD7;DqtK@gMFh>b-7Um^1D91|B6)kx*mQh>3n^Hq@)`tNYhh}g*{Q%+M^ zS*1TmwL5-`T4~DEnuTEHSMs1)%gUt%DwLAcO~O&%3q=(3LXQ3py^T9>a>ziy;N|I0 z;`8;-T66v-9|OB3I;pTXJp2QZiBXk^?8bL@XIYD4YaUm~w4f0T zliaq$!E1RCmS@#^S{|K(ts0OxyL$aWTW%S9jgXX!Xo^5XzO?F1C$38OXpIz`3#A0f ze0`xwX9u36{pnJ@rK~FEJc@Spw5aL5Nh4rpnpd|tXzC%gQcKPOML|)q`K`3aoajFuYpt&CqT!i!E zd|LIAdTxSDfG9%S0>JBl6CqwMBm@cKI7Q6Y$Yk zA4XW?!G?}JTcfp7Yv8rzZFUZMeB6^4O*EYgdx_5%NAT!ItYNGTf>ZM$7RtQGVUix28^IAg1_M#7?*nG}&#@Dy=2-Qf^>$0f{3E-p zbrXfSRRhqOhE8Fp0uYichj!<{6xoE4bV%F2ql;Qbb;=i*@`JN%oUrd$XuoQCu&zp+ zFe$QVw3TP)Y=>h$=C6p5$rSC6OocdcnJbA_y&Wl1g*7@bCse4Z&aE>P^(-f6myC+l z;IAi%JWp{DurFhZ7e%ATVz*jfGZM(v6AZi<3hR?uD$w~YZ!xO+o0n1hPXIvWyZO8) z3~FqR#mOv&cqAKc6sA;SRM0`5$J5<4##hOKF}1Q}|1Xfl2(170gMOINwk!HD=YutM zNs^kcwcXRKIGbjtERD(_(fgn`6`NUxm0YaO$w7j}qZqrsi@v8U7Q9tfOjD8SXEk`>QWa8+K5?1xu--KJyw4MuRx6jWcuDK)?HN@O1>Xw8Oz zDM!ogo!X^&aib<{q(@?$3+#vJ<1&j%d)M7|odx~PEJW)8KCyq};V;akNQaMvv_q^U z_`F$vfynE&+_o7a_FKs%;NgbD#|J;T!sh_2;y-Qpdw_um%27W7${+EWN5A_cqTiB+ zj^2~wMnQiBQ6T&y-};zLYtmffcT8gU{||Tk2fH4Bxov0!yE{3$#E$;>CnbL~NZ%Cu z!6y+wf(%!wrJ4HT@HB6~@&cl3AoRE7^IlEKm~D)gv~str#>;vl=;{#j zb_Xe!VWi5L!Crzs>q>E*E%0>~d##aA&DmxDb|Dz?_EygsE_ztNrrfJgV{Y9HvqP#t z6o=M%AK?2r`mT->V*EWiLXvIdYMpE!OA$z(-FXv)QP1oXIb2`JWQ3ihqv1N?Z3mb) zj+iEwzJ>H_?1&^s6uJ8F0!eH91>xOzSNcHEw@fa((M_(UdHGf68*24Yaz3W;J}v5z z{NK=alwnaeTT(6{@CgDIAT2FQw;)I>-K=y=H|(MaNSAbXcjwX#3)0fLba(9D#r$qR z&wcKFf9=k@GpFX9nG-Y1&*wl2;0F;XMXW)m&C7G+LXuq`3~5eKy+}yS#X_Q`_V0{j zAv*BQcz*Za1~_a^wewJXN+j^B0UQ4J(3AZAJ2D90XR}umNqh+j!u_hK2QBQhFcTf- z!?U&d1Ea!vfG@B5 z>bBAyBraA2x2PhxLm;%Jgb4Wtq5PfPI#}R6H>ku-gDFw?kT(3Ik5co5*(DkEs%my{ zA|$ws6#^4PYfPP|OO?xwMY2a@m7+Yqav70!yj)~d)_i4Iy1u^P)e+i$UaZ>b+Apbc zIQZf^zUqDi;_TRa=X#slP8`hwq1!enO(Y@hdQy=wUgoCv*#FI1JW5e@;CC*j{qaKp zA+q$RGtO{D=>yM!chiW%n`bwLH-B84zSk4Wau^KsVWgQX9?i8Y!S(!#oIoxpOBY#Q z>q1(|u4PB5tr)6g&O;OS6_TPoV~j0(4j^ba=KNJ)6ryh%H2pF6X=h9yvTrwxK8-Kl zlW2NxOj8r8OBB>>CA5m-dmEL;(;@zmVkuibrJ~SL9uHtJ2S*{ntG(2a0&AO8os~pJ zLPmuLFba}u0MsSst4ce^%@}ORFHKTpT!*My*80n&+C}HT z#M)o^H7E>YzEnO#X4%t##lvDCo|Q^;_4VM6eSa8l%IvtfCQlyVwBsp-fNX?aeL;N5q2(5atMI8 zk<4Ea1@o8Ans@7w{<}R}hdA2%15He<{m?wJkr&L1O0^~p!jA$x9=8Y^#N00E6nSK% z;X1LAedHwCb9-#6Tdhd8{YmbIB*q96B(41opN!m48oN|P-8zR+7?uJprUqN)Q(T9M zMD(_~9J(N3UbVnjsqIG)i_OHG7o4`f0a3U-o?Ou_qqX^w8 zI1jq8JhAT5Ctyuw&q{^ZZE$ry%CNRDZ%PP^=~jH~LNpwQ|4K0kI4~7p_`n`#D9d=f zf|^S2L6|P_hTzFd5z5<092EYYIHenWp#?bqHljgJaX0IIJ4Ntx-6c;?>+zS4uPK&t z>aT8!E#yt9KCt3yFiDR4FB%T671Mjg4YQ=*6FpWbBUMV_v3JXlY?hTT?OSWHH#3=E z+)($nNGv6r5o)<9LICxTtSrlUVTY@vsxc%+m87`UU2ODG|ET6r&p0cVp3zs#B6YN4 z31zJ{;kj0sR1bW_HhCZXk_OlCL$F4bn!TubdW<4Fp)3nC3--410n7V~@}xtKv~%mU zLUNjCI2e2y!VwVxW4#twNF0a-$)faxPd*9t-|ow+0a3%TlP`A8(A|TOYl7=qnm2aXdfv-FGogJ8&qY zwjJ%tJu$`oi*2nM$xO5arO3+m1HWQwg`0VNiIA$fI<8Y?n|yPBmNzou%*=ju?}KCR zf9tCGX`FcrzoB^7YXPf$GA{M-<{)n9gXs|&P2ZM#Gj70j?|IfOaUUhR>3ASHV)D)@ z@S7g2APQeH#E!bim8$0otNTylnQE0AIdl^GH<=S&UTs8DXa8l_h~d?evs@1=HEyrw zVvw2M_Fxs`=*)i34aoUxjaSQlk7-Gwcf5= z{YAw-u`d(HYyB#SyGrjGAD85U@rxcNO-RPflsVg7=W=%>e%ATnAHL2=IwVT-ti=j{ zzBCz+R`Mxlp%b~u;Xja=Cz3(_xwiS(fV8oZO_@ZQdjF68re$VHUy%%&a;D7OT275+$RV-*>EA@G_Ii|$W`k>K0B?k_GrnBZU3y$cCP`Nae#@;3&HIA2- zBb#i~#YUiWJ^N$D=cNeH)3t%{&Mo=s-e|!n^TC>9#*aP4R;sHX%3qo)nb+F%Q~XMi zx8FUv+>oYHP>lc5_Z~Q_9J5@It8R3kRC?@eT2qU;MqVh?4U03ea^q!r?wS{2$%7^G zZRVX^>gQoZ9T)85IbF_iLvk}QYpP$(G$f(tOk%^hNbw*4VaNHij;%`c-B-%Pz)SNx zG-VY;!a@n@!s#E5C~=>6@bWH~iO=Di#d1jdY>T1Ih)L^)t+Th{C^iPwF#+Px8v4mh)PBz!wyfzoK zv~e4U#>~x}`5}FYEyLJwT(MI%18Wcy!ktQN%N^)f^s5=Wai^;8k&MW+Y4^UVWB#C^ zF<8h%hBOiIFLvB67@uT|#dKl1k#Uf}Gy>2xHv$W3b0SXeI>AySEM5x9+ z`za*E@|&~L)VPPfc7^Fk31dcli@$#^^8m>~^elM?YtY$=@}L*(<~N>{py~I#-~5;P z(6G656g`30$%Aq*)&po;dpr!^KXxYI-uhPHMz zN%(DqJE8wD!Z*LlZ{FaB-`)@9o)x(2MlIri?8Y$g3w9vohv70Qq$QC2oZNE3wLeWxn&8#I?IQI3ciO1mimIycllJcwgM%BKNs5SFeF)MOwf)Da`zfu(Oc z@NpqvaQR(v%XeiGPD^?WjD9pX4Jmqh!wH-lkhtWa6GXpvHGxP8mqevGFMu&O{hX|p zgL$nO&xg}PWGI7(lWj@JMG+%UOGM{51_|P;Nf?&$L)dBP^dEAcQ6585yUWkm=pZPx(DyW7v zIkI{WnFmT#YVxwN<%UZfHw-|KV4~WU$-D3uWFAL4{ozkn&u%!sH-E#av1Legtum$~|jKlh8gib3=nw#`P6M^I{ler|wr<2*KpB1A^C{5nRM!}$@T5QdF1d7Rjv z=}YTM@N+S|fGyG79r%nqj$F5+Fe8AzuCs$j6{e1jycf1jz9_r8$2?5CB%2s2$1aLaeN1aw-AGtk%J{rn@kU~v=P#XpZd$-`{{-d8PY$qM{XGs zD$G$ZkC<(ef9_ORoq^O4_EP}=eyaY|sQ<4%1R(~yd8+vxDSs5Jcu@*v;Z-aoeQUQ; z{)o4+AmVm0o%olI^cSc<>svOiFgdUXB_eUjERd1D#S}ixk(Z#@T^x}LjM-ZKeBu{U z1e*;Jl>B<$YTRJ?^O>i*q3q|=Byn@;<JOq6$82h{^9_jb<9K|6P-WWn;JrnyM{x|_;e41MdZvVpzqYq;V z$9fYVs~oyzDN7waw?@$a9%|Ehvc1vuy>}3exr?!@T0n_BFYdH}FT%*;|KK6ZH9pGG zH!8UZ!WK0Jy=B(SIwwtD?rnu6)ZTEL&k6=sffu?i>u~Y6_ds5e-a>NHzsur%80xdo z_k#&miEgXAFw2(xhmDIf>q&6f?zt3rKM!yn41|L&(E*p^z}|5%w938p^g0W)h0%Bv z2iyZYb(U2%95!$pLX6wh1icHoD6BoV*eIMyL-FS5|%4S7PN(h_m@ImySJ`epRAWfCfK{%WYg zrMKYyA5}nI>rFNHsQ;7umX_FaTVwQ za@FPU2yaM&HG=japtV<^lUD*~L-1`8L3pL$K0*s8&}r`^gGv_5zzddFC#Pf*-YEYpDCv>c5xkNBpCN8M^l4m+ zaJm|^JWrWBVG=xQpSuu&cUQp%E#cvUj~caE5q zi=V+`#b@A1fbccrva`DI$(NI_jbrhn#m8HsMbJSWKT+*buK6B zz6+lRgaj`p<3(m1s=3pjR5Bz68v!*(x}6VKHx4!~ zu#hkK*6QOvrfiKEAjEk+cM%7>yty3!9>J;c%BrjIa@kyPo1~M)u3MI2zE)8DK)^U8 zL3wY!s_Hez?`qgHZGhac=wj)Q|@Mr++fqs@f-y zTG5$rRnI;mOdFeJ;o!x4CmFSnZEy%11tC07&2Mr%yxw%6&cmkY{ z<5H2XhXB4lz$mwUvGRIYN8CcQe{d(L@j?bJ79=s^sAYDtyC8So0Dj?6OJeDFkoJYrqN^~ zEAo)`eM9qiGK5hse(iR)p$_=X11pzVjJ~RdTyuICuOBVfqiddeDYt9WT5k=SkS>BC zTR>MT^??Q|YxDJ|_9~5B<$0tdvtn24MetML1ymq0=xBch19k%cBWUljYK!qno^M%? zOh-pA@H%5}HJX2vK5$igJbYgDWs$u;9V_}sGgekZxa|maHgSP5CvP@phFS7$n#W%m zTKnG8nLn(*PB`D38hYRIVnCz#61`|q{&h+8JLWIq&n{n!8yI}TmC8@B*>?-LO>&zd ztA_3psFc4L$&elAUmh+VnW1rB!r+CaIXv1k5S;N{jq=E0d+k!YgfARgu*xRMVGINV zrTls*xqvTkf@bC>5JwaD<=F_ObNAbf+%H|1CfP>X6p1YpsK1z)pkmo47YSe>jQ9-r zaa_}x6J0D8=>^t(Ynv0JT&9)thSJ?lhLz)ru*WxeZS4u;k=!=pnGSM<4}lI5s(1)} z>A^fp9ZrAUK|6aj2?%<%*T*VcQR*_IkLzNm-u!N)A#@q~M8qE{p}-3C@$@t9WKJ(V z;{KXKpe@{xhD-yp0J~JJ1RnmY}Oyp@+KAt@x&u9_(vr8 z);2tTOYnvMTvL9FpKjjENnteE)})L^LB>eYzeIigOPHj}|mqQ06I;ePH+I#yHH zt~8(_RC67fh(2vBcj|Ov?;hSC)4(3A1HIsQe=u=ASoo~Ht+voV+%_gwUsDz}qK>p4 z-~e=Qx0VQFNy5^^BEliMM$d13OPjxA^}O+N8$O01aIq=~UvWxz>`uZA7G(Ch2fA3Y zY-GL>=LfaPfYKOh%`MOD%lUrJB9@g{edbi6gwD5B`S{83E3(TEuuVmTS@Nzn@P`&p z?p1i+J7OMZp;+a9OMsJ|#LF?QY%;INcu|z8a0}<6XsXX?fCShm<)Dr{&i^HMZPKDy zFVp!GJapN8@G)<}+taDEm90soKsQ6a+&=_QUu;`AW}xhz#X>H!1P{LnZ*RVJ_>Nc^ zKw?X^pkB+n%ZZL=%vE+|)LeWh9w*z=OGi#hd-K+$3CSz152iys_Z4w<2MMb3(j!-r zGpyqMzvQWJe^zdd^t_l3ngKTkqKp=Mp$ooi-bAlhsPqf={X}c&IyJTWIHJjrXp7AU z_d#dPE8w|VNWxgju8JsORLMf6q<@E9kHaf1l9BV0ABK=!HBk8vYnARwFVB1BPG;@X zT=5X|)I0RW%p2*sZuC6#wnoMxnl&{=FUC({2vLo_x0j<;T3H(GUpF9>G7PzVH+gx? z-nhT~XpVt%0dk%4S_+JOy%@+S1dn%{<9@W?$vNwENIQ4dCU~vN2b(6lVCNQl!@!HU z4cmOgB{0qOz!iir{pfC}7vzZjvvcp0*<&2I^>;06J#A;Y>@hoM)G^;*wwQ||#a3!F zD{9N?TrRz>arvqC&OO#lsVKD zjOb9u?d(;do$}a&W{H)Pqsazyn0o%SVygud`CRq4$ub4w>J4yMM*WUh19xpPP|As7 zTbCBu1aq@@uN~nZ%nu^j>lMwuoZ5&5$lx=RT5oxryzbj6vOF3vS!(sU)IKjPx~vl1 z8{&j_v$#_{TB%FF2j6FLU-Sgu3wCs$5e>SN>xFl>k}Cz`HZ^s0+3%Mf*zK}x(#1~7 z>P$Z1F+JFZuzd*txYzY~&U}a#POntchsllzk&5o^GWYw1kLpHdIg0quF(&K%+Rfzb z?hkM#I8CaLMV>EP&7cgu$Xn?7~pVi$6$5f z$aZ!LjL{Xr=+_yZ{(K{bS&m(|^;*Rl<@aW_Jo$%uIo~(Qrk@^I+Oaz9iOP(k42VpDYzYNm9zsX&cd2((0YR`7%M)(@jJ#>}^SQof!!OtG~3@ROugxeH95xzy8) zF*6WpDGp;s-w(Xt9Kik;iZFw#_sL`sntW2Zve~%E37dHBp3et7hyt>al3}M!Lf#a( zQau=@s?XSis=9C-Fl-o9Oy*f948CsclzLNXW~j`qcvz{R?Tx4IcTbsz7&BKEB{N3O zWU1Z?5M_R932JT1efI%9$p=rvZ_Q$SxMO^YxyJ2CHsw4t(OV||Y316q{U95LETj-X z*gmB#_Ye^5$~8=fGHzGV0X_L?lRnE^wskc`h*00ELR+)P+7B4eKyaAkvv$1F)c&-z zuInsMD8$R0=cUK&HFjzD&C3Fbx!(J7OJD6<%4P^I!Ho*~x25FH5mTVo#C)h`^G4~y zEUz|R!<$~sNvqq!&oYZHjvi5R%|wn<)V7hWDR&UcAw4XX^nkU3cm3y%Y2ov{;Qiij z8`oP_ z$UEpANPs5^?#TCPe~p;-t`1Yee4CDI!?{i_z`0$-4)W3ml*0uB*?hzR9DcFv0mgQu zE1Ro321OX@v=^%`=J<|dKJ1R$PKeiIem`EApn8KveU)qJ#0n#`chtZw9LaIQ zXNiX-#h2q%a&MI!7K^{l`6@M(b_J@$T5Rpd*Nyn`SzSHz(kYA_c7u=D`ei0h^HTfq zpNw%Oe)XT1v)8~VT;E9kwyF;gpF~)?)r6-}y|`qhcSQ~0x@Z>#l~Nec6*io>%<+?&`|VOO|AdrO zvaS!%vL-R?cMMt2wQ6&x9-p=EQpE_FWgDsyKjiLe+nVe#dDrdfqLe>YUAQS{|1cZn zy0FbOv!wEnG6xYoyE+{AdF875?J`*XSjAcL&w#`x@3LsG>WV)2h z%20Sur&7KhFWapiy!-KD7VNZbAG~E6Vv)_Uc+Jmm|5mAdD-U>5`1A({a5oc`0y5NIIrN5ZlxuZ5;FMw5mGrKT*z$GDgXLIC^Yy~yHEWD4E zAoJ8ImHA`MZNq$Gdz4aA=La@{ucWm+t5sr%oRxn9a2#a*{-e^UIdkCnTMv*G?=|C=7;ZmZmKa6V)nk4J%h#(z^$kSN6!I zbn2cIPK23+WGD?yY{v)1ts=vomAQR!aSK{Dk&N@z-7jkuX1hHmgIC2IDb+hU(Yun* zb9W>FMS;1*6zci4jx)Vi%+aL}fMpp}VN@PKB*bKD6;V&$tx20PggL6$T>_T+!?(a^ zV4HrKm7JF`+nIJNHlo#s(dz`KkYm4AIWA+HN}kAqCmnKWFv=4>8HrssO1*ijbiT(Z z4IS?rDJC*RGo|->9?wK6n9si%9h^OGG!xk zr#=y^*-^LKZ;>aEi7*L~NhzuVTrBa`2_z!}^?kgIp9+v5^E{Pk7Y?0DM$JpTlR(Gy zwUji|PR*6{t}7!KwHbdSL1o=3r%>NgL$CA~wjo~j)q1LX5qDotT(=N{IXQ@v z9lKOLW+~&a2YFvoRimnd;#pn>>x|*8HsH^@S);8bO$D5`jpv*$hhvDlRH@UP4MOXP z#*lf6`H_@uI$jga!rWAS5FtOntMiXDESmeS2sa!Vd+_|hT;#O?Kc2g<+s%M)$MB#H zHe^)i`!AOt1V`8ZVI=g zIY1b@sjN3`W{;&Ip4ZxQM0jU6#5lh}Ir60g-0GK7Ubb$0I9iN5_4WBd{RttS3E{rbzGNi-+<_uq;Cj%*_$)WyRG);)Phqq%8~yQexr4+dF(-!L^|RZ*n^NH!!+Foj#J_n zhtxgKf9E7#-Xv`$+C+qhhOq|2o!pMM&dbgQ36jHu-AX3qvJTg-3ZTRg(SiZrX^vE+ ze&VFx1l|2b&+99kH7KMok!D-<^Rl{!>>Q98XrtHcABHGkoBA_mPi}I$RK8B)Ph517 zU7CrLBcit`Gcv%Rq4LcQ{}ayK5-M^WLaL>VXveWJEdmA{kl0 z#&eLzAHTT}(!Rt2;0uLJeeXkrVt19W#uozbN`_4a60e-5t?b@c7Hoe1CrE?eN}*0} zN}eE<10R1i2LBiy+jhjlb?<5r=ZL1^P9$f3G`QSfL ze)AJij6<>6FYLY%Mzu(uvWB>%sXKpb|CB?s^XU-<9<$)!Lgk+^cym*#s2qz(Y^J=R z{lQb7^eg5uHJ zEfhk4?&$k=e=n|*jI?Kt-rp%KL2}pqHVXjcXuq-0-=Fvr7LB+7l?nNxyM2@$@Zt9W z;x{EK-#WW{pd7_?OYg>2w(3i$&#(&e!70&Vd`#}6J&G^gU z?`FKD|GJrWVU-?+)8^m1>4w|cBKb=W=EA>JLevAMhK%fj9cKDKh_it@pX%3y;rK<^ z^`4Jl{AXx57DCem8){w7R}hNX&=uL{Z#1-_!w294o!B|lyIi=D@)QTwEk({v;Vcka zbRVx?Y&`2NP3dS~89kOEjVUILQdv2BaKS%)ze=M!ZnO8PzqD%ZW}IoxJO2LXYT0QL z4Eawg6-hat*EimUbVt6H>JbgK$T>Bru)ZuWGGxbSZzrDum+9z-89bxYyyr8##eF7a zqGD5>*EvP{(*n`{)>uX%@TV`f%0Z~FFmG(bR0~^eWncq2y`t3c5f%ORrk{0zzC|tn z7K%zQgOS~($&P!#qoTZ^xavxu6wDLkDzXr|c)a6(HGlCgedXYnvcacPSUH zhw;;3_Wcqk|2}7Ol3-l=lCa9V&_;smBWHo*mN5T`u}W)4{r7YVm=fXIgzV&Z&QlSE z#_EW02NuBZy?z7<4<_TQ<2O%xZ8&$>47lv_KMrg;mGtQqhuyCTsq8QwW5}XAk3vzO z&!HJklX0?V|!_Cb(0mhA^t*HeyGY+lpiIw6)%?oYY&dV`5daAG3 zLXzZo;r1o3L6_v#4BoiT+EYr1!0|`aAF16}LciuK0rnvFCfeGUJU?|HE|1@cPnEUl zOL$DqNJ6?0lb@mCLD^7jWcugEg0IB!V`lQ9t*+S;rJC&hbT7E$8)f67{ckHj3p?iP z|DqQ(4nQBxkIht=Pxg;kl-b44kaRMc?oPa&)jj=rLZ6GzkB0RlMhV=h5K1ntISR~u z!%Ze^`Xrqcy61ZDIX(H(3YEU;Bv<@uto=PZK~0~O)|U?TGX}^%a89^6%qfn)AM)lX zACY_6gp9of$*S9s%yuL!U`t4R@GE_-{ON#2|85X)uO*)5*~LT8uq~??lMxX-qgZv< zIPWEsSg@kxYOa1>XuPO99XBvSwf{M&nWwfKtTdgl+CQ3s%YUZJ{T$!Yo?ZUPhS}D* zd?{4jM%BH&m&URspIYQux0TyH`W0-N9KD5Hu~?bOMpc#5;kTos0cZUADS(y)uY6e! z+^iZylD4du5W{L*Gh)fBBbAFE6wEJ#|DqrsZSAWl+FD)~1X{%3S!T4r7VF3;r165z zR8%?Qz?0Y}HYO;$LhQ)q{_!B?u~A;G*imux@lvjSTIgr}!TGasCfvA8=uG$g(UVzI zgJr&ZL8HhD^`2VSxGRQ|ec=Abtv2|QTAEr0*J@ZQ?CEi)Ol`HbNgSKNytZ8(>ID29 zMt%EIYp#Cw&Bp@N?dIN_#qUyn79i~ZX0#jH+Qug2y?$IY9DgBxbB|-^HsF>cVwKR}wY+ zhy}u=7-VtYSYL%{HjQ)JJR^2@~?}@4Ir{F8avpKc?)UR)&jVC#dQ}_|xR? zP5j;haG;b25MLbXM-=h1g!(JGJ3VytW}zyOr^1s@K~YE3s1Btf?+xu4*5Ox;H`!p; z$V~uzsdAydl^#No$=Uztjl7fNGcK8pbLQ!_-TVQ7K;y$(4EG-_Bo0eahRf8 z^f1YwAyI}}F-Ou6?b$d>Ej-Mk!HXWHr!q?@A8M6b!{6bFA@v@9#PevhVZB*z?br6t z>(}}OB^SB`fP$9E7NSA!dKXe3yHCGKOx)%r<7<*w{jUA0s4RG|Hf`5X)yVwV>6_;= zwpa;3tjASUtu=c5?x21*v&uN!rSVT$_J1K+Tde+tosh1m>AS*Fbt1W#!HatY(WL-2K+3;4#-AoO`e{$se%sR$qy&&~TFaB6f+9iM zQZ$R`^oH89CxzW_QR2TP{#Dyijih9bpoT%;2(yf&~vy0ie+*>$(`dY)=mV@8j znUBE)UqRQ!%58OD%uO61ooW-WP_A71`QYpQ`jTi{>wEblS|RGj5hLS0Z?xJTBpf;r zXt}eaF1ns!6+T%QXomSDF0j4A1wI@;EABqVu3)n{Q~x3QChhKDlkpac-Q^~PV0b){ zauu39UTJN_c9bMM%;p#TaRdu+wU`=~ON612dgf_;2e5$UM6a7B0a85&Ju4e(~+?xmE9iM^%QmQax1_S~Qv9x;R;r_Ipt_F$2ZjsKoSEeZSBa z=>F3-`l2mf;^CXYaW>@n*_u#z>_OXg5%y1Q6Z-W_KO~$fPs9!1mFZbVDChTo*ax{^ z_Tet_h1}3t!ACEPmwIT%s{JHe-Mn8+Qr@;L`RRu5dPaCLUEHq;-&fnYiolpOH z)Ac`TJ{7rm?oNEQ|J#kJCivwrPzcRoOMq~bh2|*7qt+>?s_!EGWJdCDws9gnBPe}H!p)RQflx=%lGCm z)=JZ3Gdvz5sD6~um(<@$0}*bFaJxGZo8che`CzM84;>M} zH0#Il*x|DTc02(Ur@qOS7GY@G#%1QC5nu{bZQA)`o54Yq;Hh+RmY3^#SE*}fzn^3T&1yFt86ZRHj ze7N;7Xs4WfN6C|s?XHm=@T_5dO0F4)DWC!Or~g*SR7LRZC@la=}Z1=5#axa#-h>)ZCcPHz-y0et`3! z$MC-ExzkuW`e;>er(Hu?%cET4v)9uPcP0GG27L@wBOeh7-#JU&C!9Ii-|K9KV2r=B z*7vC2KlmN}i&o+5qd$&``O5jh0ujI(>gCFZiW@VMB1}>Fu^L+BRu|g0rXGnZdUBKf zsu|faQ-;QpT>zhEvSFsLkUi_c8b*@A;t%_xBp(YL!#^3d_rugg8P!;_HYMlOcgGhC z>Rkc@E#*R;%4|EjJF!GTcXG$ZyQv8vfcM6d;rTJ3$k!=0qJMdnMSyq=Pf!iYGIVcV zl!8p3qZ1#af}xYuL>=wP#m@|05#DeBC3=)-%Db9AI|H}H>B|da=>+D}v8M7Jw2vGZ zJh&NXoa%OEp+JVlpsE$zK3yQ}zz%irZOP(HQFm|00g2qb=FLw}MnYk>hVdhfH*!(= zsLtAnic2hXNiw+xIe<~rC1C#OZp>xIC@}+vMXVs7oQx`cK1bAh9+3uPDf-JJjGl=c zH(b@S!}4`T9vmmJEROkp>8>)4qZnZKOOyZ)6XbtBfp=+b4A#-^o`n|*)b&GS^WDsg zk8V2{j(kYjS!gLSKI~6| zqHPzxa~(ky3dHg|;%HY=3Tc=6_GlE3NGh=<;t}<<*GUqR_XbYhohXh|ln)%Sf2Yf@ zFqao5Sb+sef*!b}QE;Wc&9rT+^1t}Cjsadh)fBb+L$u!wv0y18>|uY%;n$X)KlRLQ z-s$W^iLYE~`5j5)*(Uot)b8Nf6W#kKn{U{ysd>L*CP2Wq;@)UaPiqMGLhF$FeQStj z?wFNtdXyV&6)P0yI4NTnXP`A}N5XqFVrU-eY+T5uqG!}z`PIcc0`A9XmhgAW%NlmL zsC5uZjMTrj(f4(pV?Ar=FURaS+xvRjPATHCPjekG8cHNOaDb8G0`TaaDCKwjJ0sD; zo)ugla<4Cp3+&ui9DavqD5Y&qP z*ZWO7)V2XQ+YL#yRNDK`Hqk(zHN;K%o5}+^HG=!p)F1ROPe$(xyFJN%k6ONbw!g5? zCtMG-$Y+MC<7_+*=WEAX+#M0(kAwi&H>+=4?CuJL_7dOIk*fkOcOP+W$xbK>F#LJH>?KA+ zEPL?(F8!4HXZoq8+WBnrRKWHPA^*bVjypNqUU>A(DqTYXpy6ygAi92K|MK(#0}U%h z+^D*e@3mXflS;pUfUev{%FT%N6HBcbZGet$_cYOTt3qW!G_|et@-`WA|H~c3nnx8s zLK!NzGRzeO3vdvHr7XMFxY=%qG`XKMGlYYT`u5at zkXN8N%-2Z$vHY`P6$^O?#+1f?-U#BKj$IN2b6MfO@N)KStH8B$dAZ`UJtU1nzF*Y@dfqX$@-52qrJCuA}*4FHYlO%{Cyh5y-1KwE)pUr?H*8X8HQB4(+de+V-bhflvZkmn(+%SMa}$8vQ;8;yxDx_dbG~= z@Y2`=RF+1VY2srI2h?BUqq!y82s@6EbAJVujgj%HVV62t{?LCnU1r6y;!lk@MqXks zoc8{!AKafKtSa=+yF(W}Ykz94V9Ol*CfOVPZ6b`|zH|eam7i#)H9OX$MuSvJtQXEU z8wW8AoKW9e>j$Gl?bpWWY6M%&hh#9Nw8ltBqhSBSA!FUu#JTaTs$hoX&<6>gV-!JAgawV#qe+;GG0c4 z6wa)@xO8Lr1{Da$Wh7&Fo`e8Dllp-FqdPJRF>hy&Nw->9FT43EF6yWsqCN& zs0(kiE$4WKzggI&O_3LP1#}ema>^c7)biEVj}<>sC&DFwS88o#L?d%hb2k``^- zxPD3zme`UOec+l_Xxdwifex^4NxMO1%;4HdntgVgN{<8$oz$16&!p(w^?%4%2@Kh8 z-N++2ru&S;Wuhy!#f)a3Zq8M})JVFUm(Em?YRqDOG=kQl|6-Wq7sIA<`LH(fb(Reh z@zOGrnL(HYgI8;NN(ZOlD-K|n$Uqt&u{N@>b%}Zk_svOU^edTi!9k+y8Ll2e2uZIa zXCXZvO4)tUjY5c|-(P!@T%UpFS`PBWX&Ra)c{sy41c(c?>8YGgvx7Qh-H)B1vh&=I ztp-+gej*x?$>&9~1gbXbm6iRo`<(Tf=leh|K76n)Ux7^KIMHZ zgU?Qt`^?4b=?TX6TWBaonAwS)CiunYn~U9|4*4W;KTfetUKQ|e{IR#@*(i>RytSzK z55~l>pj0_AeHHXrd-}SBBg!z-agi-sN%Ze;O-}y{DI9_d$l&044(9UUB z`hvoXrEZ5hyJHzIiqsQk8YjK9V0a)Tmv)wqHnfc}P9sgpEO_6ITJbTukp+ACo zyc&jb_=G>PP`~12A3;QxVHMsa^>zALYqeTxo zpmF$21Sp%+JW!a|Vcid&(tHX@&-?H#9bQnscJWhdK&|*<&>*&T<&f9xXF68S?0OOl zARmKCae3=>zWKVJ@m9|Q#(v*}++-fy1m-d+l2u&D=ENo6(2y6}OyRhpo&c~-p0UpU zlIpNgHh=TEu`G#p3N^~#g$13b~7~}nIZQ|Pvp_P5bE)eXI`+|k~iWA z7+HG2LPHc|$cl=?z|`c74sKIvsJGMf!`RqHOyvGU0VK?1neSCk>mPfS+1og)px;a9 zijoKE`q&zTcmu6pqkGZm2tBwtK&fxAzVQKJzuO`2GrT$!`ii|SY>_2!t zd7ygyhpO^Pm>YY@Z|uop`5lQrLvTH-?`I7}09$>1XcRubzP?tnDxIl2**d+KI+j0! z*)W%2FdN-XN~T?3B_K5z9xRaC1bhGnXCvdo@;z&KA()9|UfU26?+a(ErA_}JXTcH$ z&43QSw=?FE!I^cijcv7LYGwzX#;Tzxp&`d>9_653z#mcnsK9PaXo}hJoG(-I6{fQV z`|`vTBe5j>KGllTxJCyb@R1bVAPS}7V~w(~M2$T1*67@dPliRWwS8;G(ZyZMu-S4) z$yQC#BJwQQincYuEqju6IO*`-z)+1UQb;8HO)2&XN(bGJ!!j)~4$HRoW$jl6X4)E<;CTs#H#rMxocv@2#|B;605m)y#Rzt(4fTd4Q z{sX)xf3D|!Z)q=a&ksUt9?RUq1)dND#KsR*6ocWM11AQ7=J_qMiypx+f8$+H0DuxY zd)yO30rs=PFpJ?QNA6#%_~yn{jk^rIiOJ3P|C*BgFIZfNIDfJDZEJTM`pu zxwWr0!2gKx9)9`um&_fsB&QkSu_1)jJWXnVNrbG*L>S$U#DjjvbgFu~Uvbd2s`Vua z2cXyOa7IhMT8>#-&FmX&uqP8aXu0R3gyCpt^scivW(#J;Cn3x5idncf2SK>;#B) z|KJC5KU9ja7lJNv7%MFD=x)$EHOv8KN?n04-u_>}ONF~PL6@gh@Uluu(jMBiYV0Wk z_eYPN65T=U`a7u4_IKsUP<05!oG-eR9`!df|Cgf3<0|BHYOOj~78oBcD~e z6q+jV?x9gniuQXg49I$cFyeh7P4Kf@AM*Q+rH92};~GTo+5F=6#6bXuKZApW2jl|l z5$-0jDsu0JAuEs_CY7<*?84m)&hLd2B)hVzzFLx;!?e*i9|J$^XPQmVyJPr87kV8Z99vRx+>njohw)s+g~XnT)SXX-{M& z(M^!>)Z}>mY+g!h_eD4*8D}Ck#`@Mg9OBd%QTM~48*?|bt$N^+zL}nb)vY`|!Qn0g zsy5(>y+{`_6~AR1LvDSV1~&yDw#J*=3X5QjLGXSd4OU7J>GI~2U_rSVP=IEr*=R5aq>J1VZ>&PS)&d=t zpF~xJ1rkV!sypCf0E%S@Mo!d5dJC}0{h{=Z|{q@Bdg7@~8?ao#?9IdG)OsJ%! zwGDcx61>VJXGA?1!?{e2v>y-2Og7sw;}*<%vu`uikAIdTAClMzUD~*23=%N~jwH2(tY#I{H#t_7Vb#x^ z-1Z#G&&rGvOsX~FZJlFE(44c{67!oQ*0X#O`z^m`$B-Lp?Z>#EKv_!Lnjq7+s%1KI zLu))`cA@ntTk^D3fw?!Kl0bMHD0r}EnLaL0QZ}HOh0vSe@koK~{hEt>1{cm_Q?{RlxhQMsOUsf%(AfM`eP|9eUbUdlGk1bma#$}u}Ru$e$2wpz# zT4pgDPjU$~!=xidBLXqTSGT9+}lWB3DJ{_V74wrZ3Vi~ja?i}c!cV)!&cL& zOJG`sU3a#rL;$;=SbQOqo?&|)I$B`Ov21wlZ9d=n^B^q+uJFMTq8Z~7zt4*V zkGY>%nkte1=+fREWNsZL!lt*#iNnpwN4r@oqr0_&ey3c2HFf?T5@;`28|2#urs2u3 z%{BRWy%F71rA4Gt6xkzA#NS`oXJ({m6(G}?GSz{O^b!I{y4S<1yZGPP<*Xxav zeJ&bpqT<%eZOF?<=te1$5_^5&S7JDfU$ph!U=c6&vFR&aAnh)zC?P@BtYf_^b|{^KxZEpA@0mcc!V-+2%PL7QrG4}c~%lWZ>pLzR=(FBgYXX24N&iG7*HThuh%9z zV;I?~Xy^?MIh^&|W(Z?jr}K4w*5Unx&nQQ+Sd|BYJYMdaT>O2|mphvztO11{*K*i9 zFg{9AjBVtLXiic6v^%zV8=AW-=Afmi#MJdD6HI#R*Y#SWz|FTgqRe4Nf&LpiGN5W(N_>8{|P?Ky9r)a$seB=?2v* z`?+qrZxJb9iMmq}N#nr+HB(Dd;i5Lvq)^Js)wW2ci znYs10C7SBoxfswY0d_zh!6#s(g+b=3M#ibK1m9H!H_YZr-Amhej`=GNMeJ<&%s7Ov zTki^A2hAUXh;}+Y?v&Jb%0?vHD9?R5GEB%OiCiVoC>eHWGzXAc_?;t20zsYBX?bcX zyt|La=N{-ku!vk#y$EE9;_n&~sFJ@n`xO*CFaHWluC@HelDRva{E~t8ucY#!9oVbS zfx15)CeV%Te6keeZXivxM6cuT+po9AT`30D`qb41UdL$vu0*-xd-(TUN%I=?aT|6V z%Z@BKTjDJ(%NF7VZ6z4nddY!Kcn4#L-=(ERdLx;iYxCL>$BnhL9pUC|$WYlD#cJkt zN_C%6Q(q{G7mI^+0B=fZK$xtITI9L`U1glg?{gOola;#Ti`T930;A8E+tn7qW4>BS zW)osnT$2Qj0ds{9q0lJwUa^4DM z$O_>l>G^joO%(9@ju;M#tNPR5C&7y>#G6q}%k zS~Mh6I4soEb$Tk0;lZ-FF_y6|yDX1lsBy~8Pr4XwGn8Ho4B(N?DDALUFD7g2Y4F$7 zPdHkiQ7rHD!_v4k?Pqs2j?tHqk%NafNy8|V2%2p%sy8{K47USG& zK~3=po*+{P_rS_{ENe%&YdjQYA-IhHTEIM1Zz<% zm2{(_awk>KsB_Wd;G%k?+NutExnC;iZ9csZ7c5nezp`~En%JHHs0RpoGRFQw53M)O7zmo{7{3v;!;9q`cY-oji4^ z$l}PZlW#bM99Fy1rfFZ+Cw`?Rfj4()DI8|2a@fQD58=w|O_QGdEqEzL51|}QtwG)+ zhf-5@Inl6y+}u228EF7z*7`>~@AyGSkkIi&1nLCH9J*|A;+hgP=UAB*z0p{RGet5f z2KCC1+nSD4Z24l;LJV*Tp!mQ|APm$YprF;rL&_fdMfI6ZMHjG)W-$t<%)*?RZj+Vj zDIbbdfZlYEE27NTMJ4X_B9FBVU_uy2LETzgQxHpFHt*t>nmxYURyTiIAK5rH#hL(b z9h3MTpv*3!0MMk%oOVJc-mUBf+Yby*R6$0=OGlLkSW7CLoCHxsCnsdB*k)vn;|~iT z2!idN=6Um*1+Fz$;v7UN1voYA@-di+OK|I_3jaFScX#i&CLy@ebG<$d&tPH7L<)d_ zJhipJPbb@!^Q#K$_)T_MK~lWH5sRB!5aEj7e4L$s&)Z9aWk$S&svhM4Jb+WD*n!ouj{b-Y@9)+V zxgvk$5S#w-kG5E!ZEZo0k^`E-7+uil<3xw&d2~5R3xD)4)^Mgmw50uFAL8(|`LyX> zj~gGJ47z-#|H9?F#YhyC55L@lgy=r#iP~EaL9G^st$T`Y3BMhogxuew)%uig+BFK= z6l;*nN!d28cs9#7=2o#f0nN?dK&+4abNa4kEXB=0%AC|R+};1Sy)-P`Wn}41_TlGsyD%ucwoF`odv%d?rUx8S%y&2B1y0i^ zN~OnzKYt-P^Yh1g{D-(nwn@DGrZ0nvBGE=Y>(jrBF>m!X^CM`<-?{l zj5X8XO;-+ZnT#yuLH(Unt?nzN<@T+it-N@E2kv0jGCgnvIO$nqFqoLTxG*wS67UDC zl&*6{@#`e(>Vxh~WanqoBdXwpZ0U{({t*c;3}No_&xo@IN0pb1Q}YIUIb{i#)5weD zvT+77<}4YFjO;SG8$fv!+)h%VtXJ##n?L6A4;vZQtVF)(qEBb+ka)x@hkK_-&DT;E zzk_zkO!Lw-B-`2oL(U+k+TeV<7tEJPSh~8-C0y>cIVQE(;-mB}Ee1F^(HNFdup??7 zxVi0gogIb`AL#S=uK!qDChhxv7~6K~IJwhl_c5E9Wl?xj@=MDc7ao4^!Vwy5+shCa zy5Vy9+&3%KnBwSV-fYu0RH$;ozoAv){q9fSA6+m~_yHchOO}GjYJ2EdhWv1l*y322 z>3Z(XS&q)EDuZ4y><$<2>!k?G;ucNOy|!M7@wt<_`2`s*2IpNJ!w^}+B3B)j*C>3z zSfDfVCIxJHx-IM~j<<$fTGk8cJ`~)Xr$W1;$k|mnt6?WT-<*m-sUwjDB|KKoGj=E? zf@8oPvCIczb#Kq1b)S=zehXyrTG+({-bhO|^7#8pkX|<-Xm;srCi<%NSwA3?kl=OU zdk$3F1FFGCPd`7zsC+pfhDBzx)btRCv$ZwI27%()vrq6_4@&nCp2)mzP6>OHH|e>I z_i3AYWDJ2UYc8_BFQHFcudnQAqHHw3B-d1JTi|A)g5D+BHg`kIy#+cL9)@z5%E|KYxDH|rEAtVD&gh067T zQ?G4jR`}Eky+r7WgS@4G!8_?yyYYbI7e-gz{HcFfCzAg9!|P~YQ-2Au6GGoBM87KITL{j<1b!=*h#Uk!!G4jV%;>bN)` zKo)kcaEL+yw%eB*WfNtF_ZQmdpj+5uD-;v>hzkY5Du|B><|Mu75s(`RAKJt15dH!{ zIXHWc`0C^&VgXP{zrJ`)x^;04e|y9no#vD8p7%0lor4Pw2*NJ`@HYGn~fxB%~-yxf__Pl zevXQ3G;*czD;NtM?#8_*V74EmA zn&dGXrO=7<{m-Cmm4>BY7Ye_jXhZTu<3cXYJ5c1l;)jb!^ z-deq#4^wAdtq{OH8b0|X<-8qKE|Z5PVF7;>Kq&%RWWSv?((C3$gExMT7);e&4kDI$ z@^Y5?Oir)WxayZrArfo7gVIlHP{(QRHQZGHc(W=4I=CsBf!HZ{RhJr!^{C@YfB&vX ztQ5SO-*>#=qFKYd-??NExwVV_aX<3R6(jEK!_5cr;bo9TZz;DG#7B2;e1H4K5zG|4 z`rmIvzCUKr-I$mu2PgJtAi(#9NzXdHgIA-e@(FZqcWPYWTSrh6^E{gFnFJ4AJ`S*i zKf-bUBgUjzirv#6md4MDT?z}2gOJxBQa z_rbwIUzNa8@PWYT7KEL13cD;4b8Ta!o)g)*X&V4&5 zI_Yu~(9%DI!B zJ4d+N9iOl6HAZI~n3(0)*S1S#2y4hYtudunV35`rIY+3~`v)eGL1 zLWeoWRAejOEM@kfHblUL^wTEuotibDKI5elqqO%Gk)fje^BM66{?D~g8Asb+NGY$Q z_yk3LD&|p_cWsp=H3R7FkYp&P?ELZTt0#PFWaSO7ScTuxMgJ%~JKi$&JwGEAkU;7W zNLZ440FJE~oq629I5V=g^G9xnYtQJ=0gjyupKA-&in^V;f}E>4+v{EClj!kHfcKx7 z*wS0qg?^Ll%plb#&Vvj63sr8p=+^;5geGR2TrkC*Kf)@)6vO|R$vtaxAR|A0QLk0p zSrYSYm|=Q!;@y;lrdDF%F`R9AIYvVYjJXz=twL5k2d3_s}Xt02EldocxUbLpL4?O-NG*Or*MzbWPT;Cuv@NDw>rA)@v{&Pl_3*pf}_mN{W1}g zMtiz4rBt8^k?YP|F#`oyjE+^?gzTIJ&KaXxv~_NFH{(BddV|h>ni%ID&AUQGVDB1h z5ZQXhl6k=4UH_7~naR9gbG!fb#kYf+!`Y^>mk>K;CE$+-~G`S3@l zf^%>O_$(#z}3ra+={8Gi?M8N zCu`X1Rm+(A<8R=G=7m2;`y5#Dein+bhJ%=?I!V8D+65g*hJ+QLaLv&UO8Ta28DGtA zu*e?M)SDuP%+WgV*e7>Re0tEPQI+}C)x4llWm7#iF_wp-4s|m%-lGjsYhrKCAehhh z12Mo*0iAH8CSl(hHNB^aa62pC9Q9AcU3WaxaUVw^lpZoFt4JtB=GmE*mF%5)_LX&x zj1px(WhIsn?KMk(u>DlY`@&~W`{=Vz8-|x@w)Mmyw+K+i` zc6&OOUPNytLYRKhF!fhQ(RCwu}DKCZd>YVO@0W3X;k!evCRA91t$C`-^K! zJveXlQFJAjF|io@SS=twG=FAzfP2X)lvH0z&Rt@dbXeeNF$1gWb21g!0IZm|*Pw}C zOj+4mM_!kY-|Qx1strRmd_PWnueI8l(rvn*eItFelOc=4Lx-reAl38naou>Ymn)Q) z(5mR_cBVSJ6=6Qqg&n(cXF9P#(BiDM=XS@?O%p98HCNLz4NJnUGa}xFTMVdxE8YcF z!|m;1?f$+&JfGF+e&lE*hoM=?5AL#E!a>(pDd8t43IXKwl&$r)cvmRhq{Z|eMUs4K z>WL1``vyzbs0z*AZ)w2whUP6oNY{|sf9$DE<+?pp+0e$Qk{K6UL$Gp%!zYJ_4A!%! z#rKSvU2?JfDcANuN4AYJuY@>Zm1ZHN3#XHNw8z0)No-?mPPIk$?##(vO4BkJ!)cdi z{_!lymt~S}4lm$R4GJ8PP;6RD_2^RqCh<@f@kDQ>u=5?mJM|=l-(AEi*FoBFhHzMH zC3JWGt|TOfoTu)DsQCu(+x$P48q#RDRq53S_I2?q&Dn_SSmy+>R5v}-QQBb~l#BRc zKw$?sgxPNnL9@I*VI;kNFh-%4n)wvm@aVButG?WrTFLuQY7d;TPTWD(L`#+Iy}dGj7ji#a z`wFmE1IsuJcVk^ZR#dvriMG_+4z{J?Ufv9(KCY4jNB9RW{TODW6$XFd&IGIrkJfC zMTB{^|u8gpoBueTLmA;}zAF>-ovLe8#pj#~FBDADwhxtZQSuzqrcb z5mfB7a=TOC+zaJ&r||}*laF76?l_qkn916K&3Jy97>$Y(7KqhcyF05rO^HTxi>1AM2LAQhUR#s%hIa*K@?5v~1&s)MPsDF1E?E%yI0iKSyQ9M-5!f3*-AomP5nn zlV=hvE8gNHz~f=wUV6Cf9%1*zf@?o=wmSzoTfQFwHlc1Li2{>B+6Flp+&bm@ky6r~ z;V#Y45;iyuxO7MzCP0&ap_iiPWPsZvctXz;r7I3QNPY9t@R+9DZ_YDu&)zp_P*)XW z_aZULUf@V9h_zw=GzNKCpZOSFNsCJ})ATu^q2`YWMr+$)%B9faBZQuw5qB}V_vdSS z#tl>$T2Ai5oxHvzD<(`OW@C2dI_|bP#@wR!?JM_QIhioUd<+>Bx2`gGaf=X@Fx75) z(`C`GQxNLQ5x++Y=B?iQsaTAh_#zpz(y?SH44%J5bA&*Y`^(QkrT8`OyBl>1t`A7L zfoHF7{4^l3|8J>z*pT@}^JnZ1#_O=WyMcECl0l`;1W}!P6Dni}Tjh>FZ~(Pb$rZwC z>K8fG;R(5r=qE!4>RnO>afWjlY!GKpZ?-@>ASEjvOvq&tcXx0s*59Jl*IZ!2nC%hU znBHg_9u8`a!z{FU*xOqTsOEZ8U0b&UN({B!CUdNIU~5RbWO7PQOQ{HQtU=|$9n>p_ zSj_nCsCY{8-n@R6#I{cw&{M9ICGQgok}u%E?HNY;bH(C|k7Zp*5T}1-A21_sQSORONRb*C=U2CiLUnTs0A%D=oPiAzU!9!fR z-C1QI3A`!6Jq*kY)hGO{EH<;0sAl`>0$Y2U?M&M&6_o_;5i7*xtoNS~+M#4}D*(qS zRBov4WyvdfF62;;a2e|AqUi8FCg(Yt7eYDPciQ+v#}sd} ztoXE0a6MZF+j(^`CCS16IFNf0g!aiF=NVKzy`2yDhe~$9VQtYlDi5}dML_pbONuJB zh%b8U3KGRWiS@FM_@R`&e|~`ixh1%~ zT!fko+bS3J0;@0=;Jmt!I{K(+aTeq;j-AJ7YYzy`>TP!ge)u|e`D{A)#k!E@r9JJT ztr4mpM$Ud<CLmKa?@h1s zGxQ~qg^COD`C|gF<^Kp?c>J};g?2Sy#tg<4b;P-wINc}WNgtGI)Mez%P8kD9zHC%% zszgRbrLo&?{_?!1DE;ZG;7eH$Wip6;2c)HvUa+xd@_A52IX_sPGQu;!Ih*{Yn==#0 z)_hi%*xA61QnGAC4eCy*+Ny)8inNCg%rDq(Tqz%Q$&3+&e8h-{A=A4s(I{DH~pYNLHouwJ%l)nC4c|Y4ZtG82>(0%xDa^ID7X@?Hk6+PfVe>vRGWk$4lh%ZUk0B(?a07BMi?IvLH4ErbbV}Lb}76Z#~ZOuR90E zK^d_gD~$mc`4(S2r%z&sNJaNV38s8i&*$Ue^ZJ8i6V!*YC%CV8^=j>aCc7o{%cb)7 zBS}uRD=}?`Ps}*zoAYn=cqz!0mJim@laCs7Fd;)ACw_>P<}eYtAhVu6b>}3|E_6c2 zB)3S9Ec9Vw=LRG6OIogdVFo)Wr(nA+X#=Y#=FfhDr_6nMkgl9 zZI^M5WcpWnR9HtNM`73q@y88vD_?}Y^g;mxyMXAf8QM!1T)XrmY84(vEmopZi0{|} z2_~7h6e!(nZp}%QxoVQB^jjOKn`J8cU-imYp|ewqC>3-LYXA5EyF@J++Mi7_m02od znm4x7S$PcNj0@k2)2!yZkPWLTAzsW8$Py8FS|YxL30bgRd1AY&kPF)<=z z_$!e|1lHD@|3|(kc9<^)5=hRjfw4~Sq-9RW0qANtNm-|+vPkqBOK(meSNjr}nq3}e zpFxMjX!AYk3snMQ)9iSwb~ z1cCx;^V3LQ(o+B0fU3=D5c7&!64l>@hMhY@Cn04qS$zYwloTA*IIe2X%*Qq{A% zB3I(bGjjcBJp-iZqo48l9jH~ zPKZQ@l?Z8Fs+Q7~8TPXLT>dcE%&JYEZ z)kGK}vF-AFNP$bAnC*5?jh?^?1Bw#&iMCww^_Xg?iA+1Jl0Fkz{TQyQ-cw%7`a@J- z@KgKR9V`L}S6AZ_#s=-OdM$t`6=rb#1FIVL@!Mkkh3j1UP_O0m=~#OcJiS0&BWNf}~&q(kPYM_>%IW))!#D74O$>?3?v;e}9neXwlRj)3r| zfwWMXnr3(H7vk4XNfO(M89GDLJ;)-wn@A(XI7;c4sQbthUG%2X2aN2i*X0mf&DF@D z&4-9tMo)JQ%5=(d-jY@G)pijVQqM2p+q`8>?eS`mZH?7aE+z{_hTNrNr7nAeLiQ(2 zsD7m3Hh+=h6A+MwR^H}kRCoa{;!bxw@;#@1kcOXAe?n_4fOthnGPZj((jqQQhyC%I z56SmC!{Mj%TW5c47aS0MI=i)kTR$4=bIcA~Ao;ilZ+ysq4At@%4y9|Y3 zK_XXFV;nW{L2+Dd^S=FjhewtzUD9@fS(4->fGv?wvw4AUaNovqG%@3@-x%hX5-j=n-bx;!=-pS$N zh>xPr5PNRPqq$`OQm)YvkyVlJM9wC|a$J~$;~7b!Ui>+^L*nM-;cC1xGaed=8SA1V zB9hyLOaZS&#O#1vY|up*fw#YT@xvzo7v_`y&M@y5oBB3YR{+Kzw7)$euv)Uj;dtr8 z@t0)`Z!XC5h;1{Y>mFSy-w?hN@mcA&OdW0Ik*clHhKp0zVaJptywhMeAFpEeIke+= z%-79>Bt(ohdC$kna@B43L*1_!QwoeDV?+M>|B)&ap>w9&a~3_=Z*e9u?=hCxG|y z?k^u-^I29j0}A0(f&=|B#b>;o0J78GK2o3saY*I<$7}k3%FNBA2k&oZS*X{T*yC8VQ;=I z3YeCU*k_+Z%S3B60xJsm+!+e9Kk~yU@vf2iaJ6b8*EC-Bet@YKXOn^CZI`1kk_bb1 z4<~X&_jKh6J$*d+tpy&+ukMJag}3wYgtN}GnPbSF?Zi_c0of6qeZHF1sn%+F*`u>L z>lCEks^oaD!)2Lq&$gf$m89OHwPizL2oGC;hVr4^{e^wgp!e;2Mc8`fC=rfuqJKSK z=kRcr52ku@Xgq&N2GgKtgOEbNGy%?#<*Zg* z&>4j*CSKc2?6*!+C-+3vk=k{M^EGXgKdsu;u@Ec zCF?SPgQD?-NAO2D5~Dx$i(l+G1^U1Sr`IDoSWNx^;RyanDCs>b0F_}OI;+1464|6D znh{X-0HtEI9c7*NTv6LYvvV&PNx$t!+R{yEv;U05E{}(79;4P)&{vN%47}a_H zw#)H*z^O%%#RfUxgUB=przXlv$Z|ZNZQu@Z5i(lr5>JpS-G6r&hnFP?&vYF%f z-t;#Jo##<>SdUe16DI8H{h5AGq570F`)-^gS2{@scIb8>hi*sLC1b*tIa8GO{H zt?g|1M$C)~Eig-;WS3Rx8Rp6pgIAsrbc7*(*LT7@PFPzc1#(;xz5L$gC^~C6p(PG` zOV!v02sugkA%_az&%wK|$cU&9a*BXN)aTJKEhRq!Z@=G#97OH}TSbL(0RBR)ejjhL=(+M;;xHKZFSZJ{x4BHM2}W*|mMlCZb<% z{~@BIcnQ-X^O;0!(}r;KuosTv{M+gNrG>CsZ&;ekYWAqEg?7g{K@}qPl6P zW68mgko`O-;|m+!R%Cy%=h`9|iW1FwdtEBZVhLzvdWh#TSPxULVgg4YSPU|D=E9?o zMovC(cHO_xXS73?tgwY?$oe1=R|;PVCGbwZhJVw4k>T@2T##A0jJHJ@d}U_U_me6Y z2E9|oYp+tqA8-+9Ke})Y>_JD0cP02yzYP`F`a;15?~Zr=UXt#4{U~}JQg`AV-|=^a zRzn=pJH*F<-@pCL^9>~)LyDg(@7f#=H9H+>HaMg=lf(u5^8IJG5KHL6_p+-W4TPsO>U&p_8jNe~yNphLxzOl~K_WO*$#%g-$s)uv;*>FeK zI$?`J-jOV@vD^G$QApD2f|^l`&~y%bt>39;V9nIeXKv*RZw@`L)b7iSQPEmnQ%upE zDbv%6+P%Jk>GnA%2e<0d^p>%mhhRy}#H7_1J+El9>ZKbmdUHiBu-j|FEq-QRWV zp`XZ}ql2AStYHZjQW~zDVo#9MtX!R8CsiIAllFI$&ElK5gc{DQNXT6&H=QqS!(H7R zY#NZ39xIy6+i_m6VL=)Exkz+X{dP;#_nP{ycx)@}&G{x}T;mvp{&ByM!QvM(uccGY z{J0&b`00$v63<&PMV=E!V%STf|B$SD{Xv+#36{sc!JLY4t51{6;REYHHPCKjcdaCE zRYWk}L9j#LKn&$zFdmazWIZeQ+#AvEP2W+{khY+D`t?zM1400kFPxTpy?bL={X6F% zYYZZNPmWA0Fs}>qXzOUjI62g5Ltb)G?DBLO={BKHxbDV1H2ZlNCf8~gpe5qU{m&FE z)sq6IyHf)`(*on7>i%j~i+}h*K`ew4)RrwUq-BT*L13L)5Bl3ZMb&KrEf^9DI!>3* z_4~4AOv9I)P4sjc>7rs{%==r?$x+qnqiAv7%UQf_PtLb$;W8RgBcc%oV_$`qG}irv}-(pHnvM*eSu$o1Ix!15gsex3i|Z=HPupx34D2t*kv? zp*w4}5?;kLa2`zTvK7ev42_dAV$vcH9cvz3movHkG)g*+J82rEce8F`D`)lt1qIS# zywAnq3lIGsfAUVg*YK+PS>IPzUe{Hr*VkAmE%L=>G`8(H(W*RnYT*0l5?(jCBOUyC>^MTDLd=&w_6$1 z5E=L0oUPD)hUD6l9*P)vIO)E(=+XAXF|6QK6euN42*GJ;v3GIAlb#|Y^fa>~q=g{uVo-|hA?yWFqJC@Gs z4Jlj_p2-AHVjVYB#2~|C&}9jRO`jH_$*XhHROKaNk8hXM+SJ~vYyU}O2;*Wx=FYOO zhLtzGE36#^IU$}7ea@*R}O9~ZTF`(6^ZP7-rWTsp|T$!*6?c~WZHKH+Y;6$8QpR=Hh zVGqoI3#pOFfhe~w2QZ2+h)ji>F72i*0NloBx##-5ptOZxrcEC-Tn z#C8H5tERY^@hmKh@8Ssa*SAo>G)y^HuHFC?0z_0gnC)Y6ORz#kmnM2RA>Xc1c!EM8 zkiBHf;@%}?=ZUQa)vOHo>dSrvQlHA6>n1#&J)60&u?icH`S-eaN*;(Ewiuvf-<$E1QqoL&GY;C$?27U`h3S?3p2o_F%A6WQ%wMq{m0B!)T5qdP(n!>`xn z>ekZZGjKHHn;;bgsFrj34G=CMzO*AFZwz@^Y-@HBjL=RFH9Q+itsF*cNQv_=k+tnW z5btm6{msqn_1XIh%-`EX8P7=XxYe(Asr&4%BwhJ_J3w_5N@Og#JXCtrrhy4L=%)`W zx^2Opx$I>rZa8l9G&IRn8Dz#3=ln=Q5PAgWRIyvgqwKfftnH$4zEA(9R~@mqX-lZq zfUg@xwzZ2xD8VRue(GQrYE9kc9zcz7n_f2*ShXLOGlD3)CDL+UUdieAJlmcsyciZW z>6nht{t^=d)R5~wnPs1b7JA)1DYY9gpxzu@-E{V&fHA-keBv39>eg|FT3GO~3=Cq~ z+hVgOYnL{cP9+NQcr{z?FZ}#Xzcqp6D?9nVzI!vfA7S3JCD*GKiP}&7tgy_- z*nsRem=62sTLgCR?f4MVmt;Wp;)AxDSHo)0dsmwDw5DRGXtaj3A*+R<^Ce+BGX0qL zPQ|Amv)tTDb3Vvjy7^Ws+kWcpSY+uc$-2V6%!_NnN`0F$p#E#MbUsbs#<{P;nLbKO zT6D`Vbn|@Ltn6z=?AkJ-^yO9N_4YIdnmXL_*q3eAd8$k7Tz%>1o_K?7zArw{p)`&{YYv?$ zI|fmXy$$CHJsY);55Gy-MC=08%A1KU$yLJeqGjm75{INCYDRlzS0g)b1wnI|cO{P` zUS^l^1#+BfEJA99c6_a5r5F6vb(|PYo4n%?rq)Z2tMN*vN-m-jmi2R@X40Id^r<2(j@h97wdpuc#QDJ7MIbD_FRzeK*GD!W&Jkir%V(`pExmk zb6CD+iHLwcjH7g-hu#}LYd0}GmnNEH5x1^r_r5jmk^5TA#s3dV^p) zb1V`JrA(Bzx82*))FG~YT-WCM_KWuM5u{=Mx|X;&i^a5r(n7W)d}K_n{^}UycjB|~ z-5K!R2>^n-OVW0NCin)RxemUhI9wKD1Sov8;oTa6Kf+Z-7m@2nt&M)&Skug$0JuT@ zoE;3y_=A>dE;e$z4#2JJ2~tO8V$>!#DU2X>-N4~eockHBS7Vu@{A;hsi_}ZJw^-vb zn;W{VyKN}Hi5;v-TWGFUjuL6t?%*j}?5xT=y*Z}5TH!6daTc6C?G_&d_M$XCBf_%U zgn55H{tm1%W3hsDQpfkCgBNY0N79M9>4f9}oQRA)Ltp3PT+SA@3PF3TlS^Llm>?N0 zK0{>O`=s7s!{4N4%oi|q{(7o#cHA_GtYdSN_X-My>sRCH?KduoElDx>w5`^eHKJojlyQ8!Cwc&KMjF~vx)m(8r_ykc+*4MK z!sG#z!pUy!3dO~Xkv%;lDGE6cNpj*}0eT73p}3(xlD%_FZ*1%9+}Y^a3D*)!pH4-A zVW_UPMwytMaoQ*@OLl~}3+*Hj8ucc|d}Pih?PV26w<{|SLU8h$YKDe%tovZ64$$-I z`-f$Zk922I6hmrsNxPnAuxr(1nsW|WPl84#raJ`IXjvp?*Tf~_V>3+}J3*xo&(SfG z@spcYvymk`U?q<7M=mX`SZSwetOluJ?2u;>NkJ;ZVoB$mIAUyTcCI^bh`1j6eiy?F z7HT6RD$QL@Pu#rM+5DnH$6MjgRaYW`2*-PBZL-mlz`38U8kJ3J4ti)wZm2s>sd`(CP&-;21u zze4zj&yH68#EJW(0i4*e3gcUj1hA=-duKlnPqkZ<5gcv||4=(LKj2-*%`=2s z=ZZm~r-JCl;iG2`c_&}aL&>h}lKljFG%ldRzXCAGABH6S@!*w3d~wwu1)v_Dph|Lm zC-~#rf0NGvw$DL0Ozy&AM=Ulv4b1xmU~~S;y{t1KdorX3pfZTJY@(EB50nZYlCq&n zgev=$zmQNyx4BTunlAv@81nbzO$fRMLR5NPT2j=zx7pI!(^DL`kC~sqgI1!G@zrPV zSh%s7LOJ0|YyGt+_^ck@+0PK3b$`$yfY}A(BQzPm*g~P!a-;~kePqX9D(c~ovxJ_G zj?N^TXAT6i_wSk-9xG%1U$W=LVxUyN=Xn(bTb{D?&XK=VF5E9^cQIo?WHuK7R+Ce+ zNjkfn0B6f&_$(&& zm`~xaBZ|LH-uI?I9$v69ES$i2bdlTnBK}dA@il*8@0i&ECv!@CRstWXE_sD_DcctT zs&#dXzl$T@Fr8t!@lN+v*js>aJlsDG7v97^>9(A^875g!4AOsh&y> zsY}rQ2D18G!bRofeYFTwef2jcCOb%ywQZO1m;puweBD?74zHFGNiH&@`xE}geB=8} z$x1m?1|oD4!};#7Z*`P9IqxEZdTTl15oQM=NfvpUsT%KpwWO)yS?Ri}9~~wiwLIc) zeibBH%Vbb`$)>PM|12Jad4~~SYCB4I=gBV@<00#{h>VN%lIwJs0Lyl(?qkTjCaUD>cI{;7 z#@lJz6?W?jHb14$r1@8abocil9ZiIlspGG@Yzn;0m&*w@fiHT(y?k+X; z@~ZIH*iDaGh46z{gsFcq50>-u^vUrV_EDtL04?+!HN6DqfIi>vcX+!-whf4iDzOiH^PUhdpXu)1L1;^W+CyMcmBB6gpD6 zBj_!9neQ_(&9*ITC^c^ObR18RGrt>j4l&O}=GlMbr#Q_1EUpe36tJA~F0Qm1-f%~+ zF0%#3&FYfV1E~NPbP6o9sO8rwJ6VVpQ!g%cxYU2KZp6KW=VjHv@!$?_9g%lEeVXP& ziuTHqvNrkpGcisj^z7^HXXS>zK2)DPT}EoW9)#g?jo{J@@LZEV^#Rkt&#uV*t(lh= zR$C=;U_Z(D-kD1V!HHZwmE!G>z>O75yt zrbetH$H-#CAr z%e~vj(6)EKt@W13l^L4}EL7$`cizpQA!gQYHrvgK36fX*2NS-2mWJn&QQ5}U?$2j% z;ZJ6{XN4#%V*ik)2A(-w;}QNEQe?=whDsoE7%x0nhz}(2z9TA5Sf$iDZvj7BS$k8T zEB%CyUi>Zas^Dv3kR~ZudE-4%n}_ka*!-Q!?H5W_{-S+@4Fbs(<8tn_1+#0|!uC#5 zq*hkYJ9L7f`4n|r7!=Y zvuVGmxX1Cc@pL+;Izsb5V0=77<&PRq$ZN7*ZcNS6r_C&|ykqJ;b-V9v+L@xq&QxKd zxshModc|>DaKmk(@a^+miCz54f}x^`#oe+T#|~WmZNKvS63R-Z@DvzHDQCn3Cw{KU zea2roO&l>e3^-%1xbuWnuj1SbGeL6E5*Mrt-skFxKXvW0R%Ff}2>)t(*ZR~Z|9h(% z-dmt zUzPJ^@0e#e2)S5%Jy?)_XrZh3)bS1P?Y8u4Rl}G7+D2B90;->qqvZTG+;MwxTw{|d z5It;20^{fHKz~rc(vh?7Um1hD&dC&9jrUqNWj*L1V8>GfMZdtli_*s`H>yd9a5qah z76}hp2bA$A#P2}h$A2EbZ=n%Cd&ehG|9}@@!1!68oXS78NT9L#N_$XQnMF`pt98)9 zus0^ZL@v6&*1cfqn5RxUJawA_=tE2p;3!^8z+;{VrGE)d-}@IV5BnERM6k-RIQ(VX z!r?Q@_^nTdcly8J;9!I;4Vu~c;pH$O_S4_+Lp6gBldWG$AvaQ7^VU>p)AUW@{6d0J zop=|N5n+{(#b57R09M?VmK_8-7Z8J-Cw-jYgZ%LWNZyit3;u;s|7&riDq`V8&whWw zA3JV%9>p)Y$$wwjTHAg5k`7@Gd(3;%$gTF1e<1pO{VYu=_C93Ri22R=EoQ>el^XPZ z&?LlLAX@`}0qSHP>4DFA`|bF7Dp!Cd#Dx)-Ok0g{-K2P&Jig6dkl9X0sg4{x946X4jNcRO^4^cW+a-UafdMGW;t6=V z)lbHZGt)%2VlY^wbte{K{?d)S&dXD+ty?-lS`Lo6UcD-61(4Db6bJX~6Ml(z-GMw34l2^2aiG>i*j(L z&A3ZdlQ0S^Zh_}~EpKiJ4-AP7G5(3T>kewF%i`*Sh$t)|pwa}CjtD4{1Vp4n=@@!d zq)8P*uXcLqozNnogn;x8ivpn+AyfhBB^2q>_hH3v_uJjsnVn^Zf0Fm!J@=g7>G!Rc?^r;y-~iz^?mDqk@~%2GA#Q6PKl5{dUjF? z0M*mIWQ`WWX-&{}Ld@gxVq{uuyDFM-FG!&-^@`$q@hygH}DL%XABiM4Ud~-3(He+$oIRaxdb=(zAO5ZCr2v<);olnl++BTp7W} zuQo0wjNmKK1Xy%#3;&^+fG*^`3Z3oX}E99k% ztY%KQ2zBO3wg1h`ZgeZhq%~eF;DOmxi}U8px2@>rxP7@2-Cj@TNY34R(aAZ*roHst zd_?N)O4s-4@ILgNSn(CUr~~qh{ed4w;Nd^oYr1EpF4^$aS_HSv;LF4DL1H;s*l1CQ zkNnWX!+yI@-W0wAb4{zqTmYZjw7c)!?%3R`dSA2sL>D$7{nHkQ_Zfejh5_hgDZ0GBry%QV4@LLf8rSWEzvm@} zS8wdE?QF!$b?2J5_NIfy{=)g<^C8@IJVAE^^F&x4&=rwG|sAz$@=)Ek=r z&Y^D(HV&ijw9`z^%U)fbe=KhBK7L_slyCi-b|}Hx4yJ+R5efGW!$dTZMareUGVS?{ zw=Ygap*DrQRdP&HyeJ+u2$icw3`E3nz<5KiCG2Aw_+>V~q}9x{TADxWVs;ic(v~ag zRSFRCUf`avZc;~{<2!&Ez=JJ%4{$`^RTrQ7hqUHY3;r*OtslP%=T+7vhk_JY5{x&z zWJ5<#Ek#`0uccn+jQEhD;yP%}*antt8U!i_$9&XykajwDdb8u!p4Dge@>w6>w`ctrPyn>GQEMIG(w|1)&$Dn>aDxjuZrt4iiki0+* z)Uz3Aw5c?cKg64FWvC}?6QlRdMyUScENj~4n4%ujks4O1@G3!}rx#+JUsdXqcC&Rc z_*s}dz4gZ6x~a)};wz2l(wThJCSHDR>ERhkA&hOMz8GLF15D$>0$#|2<_cbQ6*XDr{UUlWF%?3p<>7b2_(I zV-iNDi|4e%_ou)&u02nVSy)bpGXJKNSJG%;p~Hy_Nj^~pVd8$#q9j3^lw@b)-zyUv z^vt7o+P@?9)8Bpz%z!iV+uhS3Ah_WG0y7cr>lf8gEDoNpc`4{#arw&@9?}_xv=eQ` zM#k))N>-OwA~$<|y>CayEE!SAEEv3e!j{H1%+8d5P}NM<8Rnsc;1q|8AO{%qX36g> zK8(CYoD=nort1U>|F_|!&lkB>_q26A3uW}D`!s|EY$)EJX`M$*dwPg`!^16HX2Q-a zi@<_(lLdJ8O_1TIy=$f-OT}8|JMi;a!4*|{PR;DP@=J)it5n}>S>nH0d(sYCe^b&c zu8Qy0E_4jC2MnEL5X(C4Ksw6_?B_8zq>var-~Qo4s;ix$dz*X25~rGwuS&`Rw@GUL z7R`2jo<1$XvY-w1OVh78(|6Vr3CDmce-h}b*+9?`vQ=$g>sHjuGMI?P_e zdBZhKzbhS|%z?4I+`8(<=#A-bp~^BzmE;#r zbzHkhWcIW5^`zndP&oe6Mc%3c*$$4%!h)mCGV=V-%jTK?qaf8juP9tuX7K%C!Wkg* zv@Ko)c67GrpHy;Ze?M#b{jfYRBc^;L6?t|v6$w2yc!Ur z8Pm}|Ce_hhju4rt9MmS6S;w@U^KiY`RIM4^bwA@UI}Gp&d}3v1l7DFF{+V^~JpKJ3 zy&%SjoQ&V=+sFibh*x_s^a;bcKbxHc zWXbJl(r=?AsHKDTyQ zE%ks(9lm1n17zqyog__wo>Wp~PfIJ7^v^gZ z)+mXkN8td`|Bu?QRtekPX|y>(E~sAyA~iIzLPayqGLrL`rqD@?TCaA?&ldEXH2k}6 ztSvpJC1s6X_T2F@=U?i54H#-E<`RUXUrrHO{FySJk$&9P;^>z9Co1i6uCi3&0^$9i zSdaGP^tQ8Cz$AZSLqro(#3(Y_-~GwmHqGbPwf?LLlwarxK5KH=ur;wO64t)Z^^*8# zV^E6gcd;M74YnzF=Igs1bNv7#aIGt>v-`rIcKw|0J+&?v|1mDZVOCOGEZhTel8p+O z`Z_dQ-*B{FY5NZin42GLX+wdbJ%cAa_c|yEjSZxTz@d}BnAeH^4KZvlSBYmf{&I7m zCPu3ZCy^HLPr95(irO(-6Kkf#k_L`wod5YD&v^SbO?UcV^gu(7TC%WXdhf(kPpnO> z$$Z?1cO}fBuN@WR-9OZ^Y%CFwxUhJ$^YQlJ5l<|BFac2s`*(R&{zrzZmUQXk&?kT$6~!}RF7PgJgV0PEfY)_o2+ zT14WO-fIc(NKgj$LSA}|uc`mH+djeU+kx9?4$1vY){#G9xjG@(9k;sx z%SEV86maH9qF)~S^=x)&0`TnN`-gn;1D=fu`E5HgDj;Ax(}&w(yL^=S_y3m?JNm1o z4+H>i0b{ZY!P>vBdddjjSt$0JgC#b-gR|YnEFC}kUD#5jHQ5o;jx`e>rOT1{2MOov zIMjoBD;FJ%;Q%VaJ4O!NRz*j}bY}kg)61g1)NX|+DXBlLG;nWVffS=om=D2+@ zr(|HaGo?_yA*8Wa<2|f?$L$sIjHDNe`Pec0+fQ%Z{vor!ae_~*d3)`cdab7|?a1Yn zl+TlS?fEJVZ7dqNweB6v9Jo4N7^ddE&Ad&&2TY3s4e8@2eiElb*1^0rRJ^;wle4|5 zGqQ0raqo5?$E`I~^~QkrM@NDe-@Wo6Vn7li=9g|WU-}{Q2j>cp?KS7Pe@fe*;W*fC z_slL*^4i5OeM$D$U#X`U{yY`*darL#TzhK%#35J4UAl@H;@%fmWSkjUs#|ihuG=wi zuMX{8bIlvLr=O7%z3lv^ecp1v<+X%fNoBHM0&GUk;ylpq#B;kJcgg6tXdIo5-Gft5 z|6;xNQ_r1EuQ~(wwYsI)j|4iewWdV3&aK1)6m!M6Q`HWmxce+Y-*zR!=1bjMX0LTf z)sh19Rk-7E09Q}-Pck7!Fm3F51xmY?9BKMW>W~admz{_q8CxU*z3XUm_q7=0xa;vi zC(Wk`LyK`$sk0lrJp+A?a1xQ*)m~43N-CXr#-L((pZ;KfuK1v#w_ScAd)${T#RI9lj1iK=v06HaP!uVmsfL;*y#JX z>PypTI`_IbuWjkH;q7v-^{oS_LH7%0uU3fu=Q4^2Q2A40v%@!nC%p%Tbof1OZE9xw z?Ek{0Zeyx>S^vUua0EdwExA&kAWJfBP4dI{FbJC;-<}@cO1SC1xkX>S{QSUir+RQ# zNql$Y)_z;NmnQ*jP&TO{{u!#}a&>ot;0crt_l5*b>E0f)$v^kziM5>_Zd&4^U8Urq zIDRH2EnubI!J-F+VT+?@+r$`tLHW+ps`Z}1{Z;uwfaQll=#a40X=Z~LZHqO(l`g_b`7B>%7wvV)OZeG;52>B7OOt$a_-Q5DFynCVR znYxY1eP#^X?Q%myYy8y803Gr|yxaL-O8)X# z%Gcg9xH+D%kE_ah@bVb4q1kwQBOzx;rz&-G;`J2MiC^+tfFzB$?JQKU(RnS8j(iys zFWc(1-U=Mqn_+aS*kkkhk}tk8VBj{SHSc~hJI0oP^@@hu_o9kM0YGta3 zlq{p8#?wX0`-7upsuvqQc~bd6#csgC1&+FG^fBZ;vX-oCP7o{C>5ZSJ**j4C>3$!F z^`7s|gP!)irh|1{;uodjp^f^W-O;#V`&IsfFL9o$O5&abxWRIBo{mj9_RS(YZPIZ7 zq<`~@Aw)<{bLB5gfMm_x>@XT8Zw?-t%3})Ld|l!mYd$<)<}_P6ID1Wa>GmE@SYfbugxWor3{0`K5X$~_L)F{%D2?6#%(T5mK-iE zAFCGkw1XD!CO-~wR5~;F7Q=fxjiyYFLSH%AX7SlCi{43@r18~^Ag{?tk(-3(-_e)%d*t#4w~3;?7=t;K!zq+IGn z?3-|bvjrGm>zWJoq#afjsF=c9;pRZ#=S9{|H?WZl*nX*<{`q?S07K(%YWyi(fb%xL z|L?x=6D7m3VD^>;Ltr zj;PNxZ!F1y(~eZzI|n{w9VABs1ChH&T>|j;>C&@r?(C zT=wnC=hP`FKx5h7qH{fP$TBBAwb*q+dS&xaj<2=+n#sHcXK1DJ z8JBKJVTwKQ;Zdrw7m|n;1nc(v=QQ6INkm_<%XPs?5zU|ta8Wul0y+eixS`jxtcc)n zRZa9280h!?@R6HI0+L_|(;!uJ)Syk=NuXaI_GxJ(A0UMr3HLKEJKUhamph;t7NE8Y zzAA;nJ8e;@__D$NXl*qg)?rEH_*oGJt6L;A?mmO7SJe@Uw^Q%e>QT6KW2sEW$uk3e znPMHfhbI>)5Z3Y)pYB)6KhAbPE1gH@#}ee)FqM4QUj-*N;WGuU0SQ9q2SqQ&*fC^5 z-57PcDR3xjWK!%^f-?t>S}aq@x3f(#d`f-!)WGt&xH8!%dF6u4g=N1}%WtdKD!Fcr z2elniQW+gY!S2!@v1#S&9~DKL>ZK@J z!R8v%dtNp1o7LlvZ5pDj_&M2*+KF~>5qv4boQvv^ccahc9CFKoAJ>2Zid;vHw=FUQ zTxHL2wPMF83&y#G9U?v%IT>>k)I@KNRZ_-;F&0oyHCV2IHap@#d<#iX$UpFL=GGW} z)!t~(j&NZf^wxfiHS^X>qm7*M{g(q^sHg0cf$_wxbPi8%=n&eO$*y+D)wQt^UcQXB zl;>>}LJSa?qJ-7QTBU62Jv|m~T`8QKb2kZUkPM+kA>0}$TOFRmjs6S*t5@$i?x#{X zxGmQ8_J!yr6NFrgwFl>jjmm z)k-2tbd;P3rAX&+v8B+0^cR(g0XTmZxJ*F6hP^c+C;2Xd(X|1^l;;vTu*#2jK??`5 z8z8*nb4u5XjQ=I7O{q{wB--7tOkIWA1vPQ{^38oXimS z7z^|dNLqg#@JIEO)(!wKvOur*lD36#r3kIL)Muc>T5KWYJ*Y|qpMJ1aLhZ!B;T zgd2lkt6%g}z-no$y2i>=JiKslWvhV9vvASpc81c0NFzG?kDgZ9{HweU5!A2>fm;yiLfOr`afUKRJ%T@PZO*_Fx(_0iYaQmYTk;L>(i%hLx+QRv7(92v z;(baDL>S6h-d?eG66!QHBHom!jg{;NRfi5TgxJuuNE8ZW3b!nuYO>|pK~4nYR zT%I((VFCAuG0nilM~}UVML!wj5!6;T=yF8ErtS{F5HxhMZ&Ud)?`s@Gw=Q&?KnlHaYS zD8GECO{GK8vt0=))+rIEBvLn+^W1~jcs46hJ8z1Q^dG&MN zKHA@isCG^5nX)mq8}m=B9%}5}ysqV*V^LK!%WQQ8HkISZl!qrZxAK$HiZN|Gry^R0 z=*xgxwgm`>@`DFwnO1mia$q4eWdB`Nu3bk96?*xwp)bP2B*xYE8JI&EW48uy5wxs zl=aG`L7gMLkc-OLIN=IRYIz21nAVmH5*oOxt^;LF@0nsLZVIncYj(20v5Tv#^uom^ zw5-_-{TZ}W;pnntkzR>HWD}*WhLz@-SD@?%@)>-rcHznf2sS1)U3RGH{h*#33$;^L ziop(J0uxu}9M}xu8dFA5eq6V5&pYUP5;6Lg@T6nq8f}%U6o%Ndwe~j;>`5VQD#ThX z>)dv%uqicBBMf!-z&YPM!S+zD6lZ(JT-bD9`~|Da7%Us5s>N!sj&ajf%i#mM2_&YF z4I=IoG2e4>t@N=9Hibxy(@M&ccE^%Vwb-SM-Ve^GN}taV;8Sk?-jK7!miUpZ6=evD zh)+W!a!IAm*e(lHZ>HC!XgNGZq{YD`sh^^MlU3NsSkW;fdW;$fY9^br`V{elGF*-p zX|#?sAvUm^V}h6uA&;O|D{8_cy}Z@-a8bc9HTt*TFwlQJ-1G{r`G#H$e?OfCE{eB{ z<%`ir*9I#_-z4og?~mNDsRPeXzSawU6FBZUS0Ey62Ivi8^EYo(EuP*p;A#_W&ZD&L zrNZ(Z0l?em^GRRXJN>RX2YZNtiic1m#b7N9g!35}(mhm z$BrGW-IJ0~y_CLDAy@E>H38k3b)NehKu)8yAxxp;N$zoFlu=p{2nLAxB<4Bqlq(G= zglm-k~m0w173(S@5o&u+Ar0_0rlNV=Owzq#pF$@CcVkdCEEz!3PP(O|_V@Y5n4T~90io<$4MGY>C{)Z~Rrx}o`##I@M+r{%#)iqA+xW%>@e29O}F$tiPP5@;n7 zFZVC-TILG~vxX@Z(8bdudR|qWW2GBIP4R!tH$lEtl+vT|r4W>^xZ)+^8rGIeop02X z@dANa&#t&9t$R(j-`A*+#mB7y>)()@K`$ze?w62R7MCq~TGBk5|Mk zYaSOxpQnFP1!r)o-F#oR&Rgh!fFiSeo{B3tb@Egla_d>}iTfwn>WsDqI)G8X% zbAxVt!^p5iDHa2X={{dA!AZbN<6Sjk30harr_M{|4g8fzY@$bcqOaTGMhscgyi`TP z{dR|&D-e*tgu|n|dUW=C1G$YFirC@THt=GEh=>DsuE_6AUrl@s_LU3};_0 zS?d{?j9^CGldor5` zA|oIK#IBboTdfvrnt_Fj&KXG?`8hX$1ka{QX5UP5zoI(LJ2GVd79;_ii>iOD=%Y3I zh1_gMn1bf`0Jgffl#pYzf0YAAx#jnAsf5wgRTbeuA)PmFXQ}ws1ytyObZ3*fpmrEN zvo+awRJDGP>|_BVbe~bBXI}!|jt515dGn-VpEGw$h?CWBw{+ZR;BLB2^MYB;Ri4!p zMh=sHQiFVk<+W(T>fuc9Zkdnt!OZy+n$IZ!)zC=;bz#wf2N>uM%+tRjGbzWQfE*GS}XX_?98m(+1*{I|_-Xdu2v(IA*aV3Wp;1$9hXHXDm-ztcxWzDJF@OUZW~ zbrG$k!u)AP+3*@4C^#J>PqHw`I)buZa3)QYu23v;p#bbJ1IbVz5uu3OvEV^egi9xa zI)DCUjuyh%RX*3i1}|yOws^K7NXw45#`_Vh7uyv-tKRj9#=&Y%Mk|L3Wyfj;j~%O& z6Jd(`nvE3b>IqT3^Hq2)?NJ!Zg9C*u#Veu*r}h%(q|i`CAQ4(G`zJB9`rID#O^Kb2 z=~e!FCkhIMkoh#%3ztukQ@k=Ujma6W<%Nvuw84729{G8YAV0AbQWl@*6E|thCAxr6 z&?{DiqjeO5)Vd2Z=#4971Dbr3S|9suULAF|tUnrWa><>rM)ftR5WH{cv^#WwZLkaA z`~r`d)WPoMpW!k;NFi^WE3}pLO5dpt2c)y8PtXt@kH58U)eGBmc@3NCI*@g_zb=FO z(FI@$gdKzZO{(1yK8AqaX2~D&z2`~$P;#~Kjhi*wg+ZqdQl>mJLP?$3mVg|>#)$l1 ziFr50M2IO5E@91g+aNlT$ip*|%s83m^`nQKlsZ`M*9n~B|14DQSAyh({mAVcl(A)1 zSNc(z^I(TwN@K9u2>LW=Y%jb=(XxfTI$<%prI(5l)Z|O1N>6&rlmw#vwz(->lyJyl zi%7NvCfIzh&U)~GkK12X9z`<9eI5l&BH_Ae8GcPuddNr%U-`CF62w$xN%O(gaPJFo znwEKiIQ`}VUXY^SH(S2B)$Pp-#w${_Kxl8CEsZBT7o%dc8plG6T4=TJrQAxe7_o)4 zt)(;UF!>qbCi~(atlF6qz*UrkD8CZLAqS}#@_}OMD(KL_GL@pgbLMQPd$(Y9)~$On z4At9+^gtpcoM?P~CD`DSmgrvw_=6d*gfp{*Z@FoIS=`o%Vcjlb&tFoXdKrC#@X~>G zF0ZxN?eV)@$(nxk-n2rFq^6P}G9h`BittI|IhoWr8DoW4pEQfJo|;?mG49MrVTJ#Ea=@?4cF z;o_CH&`79-u`KNng1W~y9m7h;J8nG!#vzOqKumt_QGh`0+@VF5aOXOh@hme^Z+BcYRKobFDr z%N)+u_pH$(EGDhshse8gu9()8;ZU1b8|(nl8wrq8+BTzo&ZB93E zc$wly*+LdyvA{nE)~`#ApY`#!T#=hH-Wn>z+G7|-GA+dg`7Y?NA%2pq2L49!Sl&;P zb?vtb>4d3@7~`1pk{?)p0FCN?vbaaamA(zb731m^@*>G5b*`uqRHk)qs@6*W!iK<` zKg0xTAtis6&Jx*CHzTY48VRnR8@_9%cxgc$o4C*0Y|I$1A6}k7F#n3<>vONZLxf!q zhbajcVq6YZ@HEPFxB(Td%V%)%;3z=|P4d*x7SDL=RPof#i*L|v~?O!d=QgGBPOz$ND`gVaXbSYU{h z5N{@Su@PbKPUoa3m4cQ>$c($?ux%ix3gbUH+fVAaa)OC~61u=HSCSHu*T=rnB$pm| zbon~eclW&CgT2R-KCL(K+idr+?r}1ET(odhtPFC#B%*5|1cXymg<&4ZJ6#?#w_3lF zuJ(MDF#}T?{sQ?DYzXV6B*B-_Cst(B=DULgq^I)jJmO?-=-Fy0587G+)vF=IxOrvp zi*>sVJebeDcwIRDiKh^F2?&vDa0@YzFwU5@kn#Q zY6tme@21Zi@taORpVBIRxCrF$IAtQj5ZDl|P&gc_y(Ju&i7^+rnfbUID3#pIVvK>$ zOWi0uU2hL%&F)b*c&>d#WF(|4Ru0s6FP%-;fzehOTW-7ZA5&^~XS-|k!MUK*j=E5k zV>g&XJ4hyvjd7$7Nga~T6^7~*QG?DyS}i~|%QHNwU+Kh%RcooTADlqm zCTHj3v$_PjCjx72&R!oE$*M_BgI{loEt{UenThmY)Qwe}O%o)%E@Xovkm+dkn&`#5 zwfKR8bVibhPwvn;bD-kHk&FPmP_0DaqBcBy++3hJiW+7#o5kI)f>u$`04f`f3_y0M zR6JfXpzTT?D58bB$Z@aO_hp5}WUo5a#nu6=5M%N9_2$||u<3xSb=dq}96zDVj@mai zZ$gyi-Uqw6=BROt-sFt+TnLlimhC6xi%{xmhAC@3SscRZ$WyOTuh@Bi?wC7(a+w+d};Y z39<}2ll;DmvKC*g*CU@O)3Rp0utv_7Fs423Mrcn<5jyWWz8NnsfwNNGFt)oMJ5oF} ztGKGI_(Zg91(g?88P7PPxu6nPzTVorg5MTp)2#ME^x1#P%upxw!$jD00bYx&BVnfW zVni6x%r1Z1hi!=Fs)FUkA6Y!D!KKOa!+aO>hx(bGSFRI!ToB4Dc8>AH;cpl3pXxgBR%xUfx)@8>(FsSL1!5Px4G{xw5f*cs9p?5f1A-)Y+ z%=z8x*_rAiF*Lo}8DiC?7hs-5_<=ip_c8KXr+jFu8P;@xLY2B+`+BfxX`m0Eosmjw z%-rx5vhp^2U0O;KK8#D^oGZnsj+uX{Y5=`VaIiw(cC9(9oZmtoO+5I=(la`GJ6`0Wof?3TJ}y4daw4360cP%e=`vFuj^8{sK*RS zS+*^&*T2H4X!ZrZ&!q-9$AjZ)w0*vZ=&*z?4}{wgRDE`z%sFckAwS9Qm?L588L9)T z7i)U&Scz;PGt@oBF1Eco%Dvv&{sz#d`&++;Vm!(ZqsSM#<2ilzE%VJ=?b>(ovcWbk z1Dg_wBQw4|B$K**rx3IxeCK)|vq(Y&2{>K{HEyl|HG)yG!{z7ZR!nw>(k@>a0`hS2 z98oV2DayrKj>UnVGHwof?GU41#U05upe9Jnch7>)sgh(G;|w(`LOEMC71#0ZgfJiB zupx~T8x+mrwD5OI&NHsbEDPgPbQpA%0R(5Ht)PQQQ&5n;h!7MBA_4+J6zO#+A=EI7 zqcjN}q&KM{ASILlVHA)KA|#0f3Y z2)6HKCcn8JuT_Y{Q#|&V-buDlPt4f z>{^9XZ?JXMREm#z#5A*+D#y$l?2$?3X~8we6%W&r@g&tu<{hBa^Vyi#zQET>ev;Y0 zq@|iNE^~$Ld=r&tL$lUJbCt@iu#a}UFRJ@fPS-jDIbn^B-IVtSD10Nh#?;J z+R4vcCDEg=B)=FxCvK+I{AbIY^x8M5i2>LfOuC`GEC{Ug+$r8h1*E-{jW&#myFzp> z@!tpzU7C!|rXTN${iweglUg4A8&Rvd9~O~i0%R0UnxFD~YSd5t` zjwY*{WVYN`j-mbxer0psA?>ofn+lU$7FCrLMOKUR&inXHmo@C(E}mK*`R%Lr3gtgi zaeb}uyIR=oUFG5Z_s?nxMrQfwSfgm3y#d}7+nrs1$&`{-#ICY`*uh#<4Fu4aFB<-?XH|bYvoxsiE`Mg0Z=(jZc1h!UBdSbG)y4Uu`q@F)fvTm! zBplCkiI1)OlC0J12MXVBu!YWr*4UB>2ocvD40d~}9&Jnf64iQI*_JO&&flQ~9<*@W zNc&RnNJq2ePDObIRDGd=bYvuR(dIZ1kh6W2PvSPcejl&#NP*AwZN%bg@;){7U07o;VK1&R5RB_7V)H~azFk9PCMv%YUw zzXtctz8xtFTJuO=Jk%?ZCVW_Cyy3(huB z%)5EEFQ}(|`@tPLXt=qiJu@3=Mbhb2(8y@j@d#*EN-s4yR*78gPdSBKfgz#`4poW- zZ~lTo^j^!#KtvtU)Jt)eOgR`5q;w)Q^l25KfL$opa08UJ*o%YUB|@1T6MfFP1d8tS zi&{KB5F3@eYICFtS67jc`y!?SJq4@h#9WICpYocW`~H~T!V%43gfzT)l9ANxR6d_? z+j%apCVbdZo|X^DDfTS^uVzsu%c|Co>vi}_%7z4UJgXAC2M_WxNOJ1Onj^T~r0b8G z;~MH;N4hg^pjMxkX;Mj-c!M}or?4#BIyF6YM}JU&_^saZrTV<^X5dgl*!6ghr?K!8 zZuW})x$jyY`4``J3eAY}P#zMvh4{~7&*$9u3@HIoxH^J(woeB7RgDpX2&9dsG zO(>z<_1-U127*ts5z*9a_t+bKO{Krc2BLjOaTTc&49+xKMqVTR3zX`1ItzV^AXt#T zNC~}D_H}I7TaiHcnL+I{@%OK3Vn^}g5AUFc;-6>?>+g@O-h65kBpvBtBiQuRGgfUn zpkY9Pr~&?IR$oJf3@US#tJnn$E=w_u2ZH9F4OFLn!PrC0`l*)bqi8ENXjfuO6u6-z zriS3xynOwQ%}wpvqyc(0}s zf1~t|BFYAWXgMD!{#y-Iwf1Qb=N1@^j*dnkqRua{bJu@awY>H?CNR7JRo+`+n|1Qo zKknUPXkM95V~yyip_^Y&(J|3SYl{B9c~6$jc*V2U@#mkn?RaXaENs4Z+Y_{Y;~sS4 zdh>!>zoe#ed|%Ld?}@d!Pg|yeRf(rm<%W#ry_u0&BCxIG3tPQpd(PEW=3g_}`2dj%gBB!M(<$WF_n zHLN@54GIq0Q8X*mjBrmhB=t3voI6w3qY%-55&dJp00SZs|McQ{*(kMg!b@FI@fi%O8zrUzsX zY6{6~{yyBB0XZV6MDW4luYJ`;5vDP_lQEta*7{na$qy%FNr2{V{z6?hf~SrId47&~ zWH2Jnj@Z6MUz#=lYwER`%>RPYu-A`IJ=Tys9}ws)hY~7u1|W}a=9E(3wBzkB#6;eH z^%}Vix_v*+qEC~#M6unGIT+=z||E^2dh6*J4|;5 zZ++t!cQVEKI+&a*uJ>5RX!)GRwQ!sDsl#E5MQ&kz;6P{FnwlT@-*^AmRgATj9~p@a zCkLv`?YdyrV!}t!|6m1ORnpcQMBqh5>ZZR>DfV^Rt&qk`t^G4jMP-*V=GirjmOI_b zyzE}?YOimHDs6Q%e3t^!gKC>`2BdxrO%YK?+TQ;v*zk)ph$=A3O#*IzvlN9C_Og? zaV>o;A#RM7YJwUrIj)HspH3@$+>ZNpU?Ktay22Kr*L?uF!#O9Mr~2zlO?{MgW~Ch=jTs8y0&&4L91OaoC{zPfZI%bQ z{%{PfaJF~O_?G9kyt}2Tw*S2gaeeE-aqCJ6?7DEXPCeeZYo0nh+BIDzsU2=BO9s%EH7 zfX_{j-Rj7dX=0O$yJbufGMh$GwuTeuPcI}dMwwr8>9uge{`B`zntz14e5n~b;vU-iH7lyR)b`3?W>W5%;#HCBCvyN?z2fU0z0Zq8xKhWsOM%Eft?kag=rr~T)quN!#tPoDCVm9*D5s|u4jjZXMNCqeyS zlcY@bTR0JPl;+NEv?>XCdt=#G9!OY&jyEyih^I;EnetaMRk9!f{*gQl`UCQ(c+@&KZ@+7Rz_vTdtAs|Dw6>1o%ldaeWGV7-S0u zOmjOUFZuR`aPDv8X5UX(!6R(r$JCfu&XoSydr37W$nxEGg;iVmKXpvHw2s?85IQ1n z0VvS~l*F+RewaiZ4p1rmx`C~NjIlj?P1|2#Z$R4dU&oi<~r4y)f8os3f^Mc);t9VGjG&dBsD7SEavwc8@sQoW~~U z<9L1#OMKa82X=QmBheR52ul-H*M)Fa%Hbr{0!~Ll;y`9U^Mk8y*ziNFWrISK(f+$! zX1zr%A?JN@)1h^kNq400qKxf|K_^cTCITyKt3UVK6g4k915unoj9X2pDvZBomm@4) zW8?QIV5#r-XvmpZ(x$M#H{~BTx!+K$CXR+fXK~2y_;)xrdMesHXsU(2X~O*eX-S7x zScA_LrC9^ymNt*&{TbUcgA>pfBeA}Vn*hpNQ)Z5Xy|B1tWmY{L(3Msa!*CCX`rLE7 z7LzDq6FxiPcNpc4@l5rd8|SCH1+E=JIYST!N82F{yxp4Id=W^3al$VA#`LV^JtkDn zX75yrp@fzS;Qr_-t=Rw~wF%fBuQBi7^u#c#t;UKF7**be9K+nd3%KIe@9)n+&x9YF zS_d7@V*Dt3{>r$YmLysM3YN*TA>W9)b2hi1UvbFg@u2t8Y^nLfIeHSv-n68OdcVA| zI{$7C`H37k%0zM}y;mx*Uj!1-)3F&)8)nv8^%5?7ck#4eZP?s?T-Y3AVUf|fRw|&W z=YFIWF0=Fc$BsZ?B9OvxNZKP08GVFvZ)lwIKnWr&P7&Nss#zGQHR*pvNK&9o0xgV7 zgP|F10KaCD2}LxY%zBXgt_F#_ocC^Z)1y)8dr{!_v7F`XcuIv3qq&*X&|PKtS~FxH zm)QQIl4_o%;=NlEH58Uwq9){onAvt~xIZjvAvc2v*^JoS#lcKNJ*RRQ?lh~lQb4q+ z0hNd$qNW?#&|la|*m@jGPr<5=mH1WFEvJeDXt@-Tfcpto-j5IMWA6TxmrScgd zPwITI>0$i&lKm2HGwKf{9sZR1k?mb+RRy70C>m2HtUYI+fIr+NeLA=02;W+b%zHZu zps1hn>BH{gjIR1$)f&OPD4!72`@ujEhSR0^$zoRpiR=Uc9tjlDb>~M!_Q-W6^RJSK zmbD_4Y^3`o+^9ZNNyN(Rsb?DVepldEaeIf+8ZY^lX@1w>;?^A7UrGw+#m3P61=x-m z>gWod-*yly4wV4xZ~t%Rc?lz)V^$=x%P+0SJ%D@(0KL?&4~c`V0PPh$qUBBj)_%)` zQm6Nx#-h;mzO+I)-I`C^OjR*w`KsqjvbDbxFmSPHKPSzX<8wGS`wI#}ulPH5fE**+ z*9HvWFXfe%4AlbW`XfosiL--}Y^WIrIC4CbSp$*m7Cp`$svgKxIxif3bE^Ie#iROG z2*bNGs-0SM-0H^*$K7PFK)`UBbf+xLal8goF;Du_p)l6w;D>sY7gZnX=$$WCCT@5& zF~iU=(df)T=q1eim6Zii7pYpayFC)yYa%6MC}Fl*5|sder0_%0<$Im#S2mt?Rx#sY z;TLI{b$e<`0B8c#6#Jg2p^sPxq5UHb137V!uMMX!=JvsChf)>~nFtt01C2N`PxKD6 zL*9>m8)3YvdRF%uJ8Ri2E2O|wG~D?{Ks$FLJ|@p?v7sLuRsWM0J+A&45}##$diNfA zGHdQ>HGsxM187Wc=uGmvQ5!xWU5Vp_{YNxr!7@J5zhw>YJ`#vr1+YgoXi2qoe~IBM zt>)IQ374L#5(nr)QB=r5GDfDpGC02(y81||V*$<>ctz_t&u%F>s&YS;fD2QIM(h%cq0rr(;h+G z_>z7#XyL}jMA^H?xB#Rx<@^fr85V!O*rPHn?zxyRD!GT2r>GNlNjj()UFMQnTc{vz zw-V8Guq-=LtaR%+s-(b`&bRA;j5Y;E4F3ax(}?^w=tTcy=Sdx^V_uHXk}R2Ra=Uvv z>yaU7Fe)3f%7?F#+g(Fps%^6t=YMWK-&=yWgObp|^F}|pwd`7GrxA@pcW<5RB#>nF zdn?4Di`#Eh%5|6+**wh5HiW&;dq?6?GkGg#8Jx1{NQ=r;=Y?QIL-}N^&kpTTQTf~r zM-79EJtSILg{C zhfVyx_f(qAcsk7?tOfvlS?y~<5c<_has2+(a$3cB?i@8@qcik%DrBd+Tz5^*Y|oXT z$BILy{J3(+Y&%eS+OIe*Z_D6m#^TMy=>yv6cFuy$m)f#ANB2+f804ir{PLoBPHC6% z0V5@#V{V^=F;~-j?x^{({FR$;`(?52hfnMd?y}73+)1aq6V_pyxzTrmFXiSYDZK=H zAMr>fFKgA?p8?;7SB$D;-d>X%$dnu2W>x(@jn6|!pDrVW%9|SQqd4Wjz6VgF%4UfJ z(rECw*zg#pNTIuT+B{0!RrC8#5S(6P-}kr0{7j0ib+^R09~PSr3MTQ<(Ko?l@nN2jDui+=)@NDS}(*zocm1r75v zDqSaTI{KBg54O8Xq_J-mIKwq225uunf$Xklx!dj9`ZZ*D;`Au&FP%fR?$4}le$_Yx zdC!&@DxmE(^@$}xISbf=3DY?>_tS|$eVF%7L>0IKRAMK)m$E!)4xFdSe+D71 zWtRs>OG0NYysD^xT^=XjsdV-z#GoFK?a-RYGop4DCfRp{1FeI=CF76ZiD(oJX#De? zo%_?+S!)QK?O^RQ*s*yz=|Vx6eGprh3<*bzzWrt)6gR+lJ&P{EhanfoG^OKj@2(x$ z1uQB8`0jHZ7My_Hd7sGsby2d;kAs#9Sw}~1wRoya?Y|hVja&gq?I#K7k+O-ALzg?Z zpRM_{lO70Q>)qmQORc;*>R1>@=Wh1e6er4Gp|ta2iU zdw45f`m)0yJ2X}49h>P-&}zG0pxKG1+SC?C@rN zR$w9Nu|wHek60V*6YW#1Y+L3SS{NmxA`yer+=m|C4_YVE-g@Ro^p_IDmpRnz?%7K{ z{9{iZLRB#MAC|)u!NJ1l^4!F(MVnVu<~9xfk?MB8{K{SdL5LrzF8YavgEyI zT63bwmt8u?b$M^4*t&@i)^*Yj;=gy}1>hx{qohZYnPaWGL4@(p+=#X+EH^Lc90<7syWAl@FkNGRD+?t__WnU>Yq z$_8ghpS0(`AhH{e0^VsDKFn*)gH#L-3Tt0kgJ6iqCH!Y-`?Z-t2ih_&{y`GN8vS zO*rQ*ZWtb0Hd z;j}dBznhrW?i^ZJ)E!Ew@(YCiRcRAlE#oQDS*Yea#Gfx>2XM)iGvCGsjpPI%tEJlB z{{n1SXcXF*S>%NQ3LHABK40iYV-#Z0N1Gn1$C$dkdO4Aa9}Oop90)~Ko~4$xZ8!QO zNez&lNIh}Yrx#Tn`_un5f zAboV)6;N4=Yk#21NMN?DL@h>l_k{JWhEpAP{j#KW13E>w-%gs_jn)gJs6S^2m#$}m ze%cFjzoHg-(E=%+6M^PN$rAb1fIg~4<%)~{d|eEM-I}>Re)Ti$ccS1p_vbB8ir$qI zKo=0lTnM4(yfjm3svlt-QY^E5{d_04J>b(FNU)q`N+tmLS31>v|H#0rI-LA~V~wq= z(c{U0yoatqs`Z*vBnhKy2!DzE{Yx7; z<2AfczNxXfxP#Mf)yBK&6{VZ>5mCS$FblAJgbsojcwU3NlZa5t!6D@HGr z-NjoGtJyEEM$pHqWBWLRfmd)dKD+fjuPVK+7hyv(S|hC^iARi`JuI z2;8AHTv(48w=qf&PAL~jl!kjn+V_SE}Wy4MfwpL9l=lY zU{W1lk6(3|Lu4YGA3$>ay4&g{y~orl`x9E$Yi45hC7qZ>w1K)e;t12ZwNCD;Su1H< zFSI`*a?u1kfuU7%C`3-ZRO=GfETm7kbF*$VrrtUI#ybSC>~*(%wbg_PlBnTK>Ud0x zc;~SNy{p|T*5aL;fDSvt2&cyL=nSm!21A?LGo?H?L5g`~K@Krh*LpzQX>_#*5Kf04 zt?gpl!8JV9$oE$*bHtAGwh&>z@mbD^Nu!fNo*k2-FzM)rN9`v?18|zE=g**l*%4j~6WuBJ^eZ z4GlY++~;in{hv}-@fK;yG)$ZpvE=jeBh=7l$P!r1@4{*V)*IDQFM|f-twiS1A3t5G z5nsNt;&Ub!ss0z?^>YLzd5fKDpit_o=}Vm0l6XT2#YFyf%Ro#jxz+~$&4)*wo0WJ= z9ILc*Wv|O2h(d?QM2}Si#U&xh_fQ5ckH_NU0`m6_cX&|r4Y`UVYWqqe6cpy*97-k9 z#>b?0teW+-J~qR4$OGYg&6=cBvGF|Qv}r9eWWwIJUs%M?+Et`9FvV|uwb)2N^$T7EV2lMxf1Nj;~%hm>1=(mWTldWv(h!cfUP;~rtQfIlw?~KKbh7#YO zPt{X@qb$U>Z2}IvhKh_r^|L<9-nNVW+(1nfhzQ!VkkR#F^E(2qPPSJQ62<XZAs}roBQ9RA4c%n^_ z^O#H6tCl0nD@D9>&XnrZ4qylSD_o40@gP254(^5L0uk3ek6?lo?(lVOKk?2x8kpTCi5g!zCmVIZj6fNrvs&{sF{!;gB6BX4$S9HGZh^4d{X}}D zSp=n3dGEa$w^_@9Ibf~JnZd55?CaVZzN*IBq@>F2Sb8Sz6-lv+BDeF1P{8v>Dj%~c zj}M1-@SzdE{0r~Fn+?<5tEs(L|3w5hV!(w0rPohyza6Hm#;}F@{IJs?l3lEpM=gM+ zJZblQ+#IA$DD$}umx3)!2?Xzr<_8cM?7Yqy^W3lv0`>!sHhq-JorBO~Ksq(w&eq?( zN=oQ|>yo{!T~(ywv8s)ngwAH#*om98m+9uRZaSU*QY(14gga%{zA#~?7%Rn17OQ1v zuh~OHm6L{QlZSwg{|ZmN+?5P=Q`MSPkPrOAV}P{@)3+)$xUpF=wDT|ygO=jYi&?i+ z4k7gtdBV+Hd?M$iGJ8#+gUbshR{C;FGqoxEovZqcmg0%b);o8S7W4X)yx`zl8bJr$ zd+xM^FHm@fZb89gceIsQ1Ye^#x``%_zH|pr{r>d+?Z=si*8GOJbW~vUCqGBCMvL$I zH~w&J>i4}pyd9_kP%at`_mat&!gaO++a@+cV05o@L4^r zN*GmvE(#C)XCJA(?!b<*Zt7>~eJx%sJP``b!az;4YSqgo%3{dVwRT#ksxkw*t$Iu3 zdj(-K`Y7qd*3Bwn=u{?`YynYu7}-`g!9n=8e~^w488WK=YXTgM1D(7vLh)JAlU0J6B{o*bY9;~AY6Tzq`G zb*6`raBMQ%ooQI`4KR}@5AS&2i^uqQU(^A-8CnS7EY(^E^=wCDITsV>!(YkpuGj?Z z2LLZC?vjlnn!d2Vw1VVqjR~*-DU;hQ5V|s_WG2?o6BjgrpGhqseuDy(9@~w9vKnQz zA%d8N$KTzi*nrLLcgmexy8W&DkEpweoBQhOfjCz??f9;SdjlwGj}EJA>tW=&j3F?M z+q|SXSDyRH0UT7f(5kTS*y1rdVP_VX5313JiB}ksAk-*P>QY7F z`fQj(z*wmOm({CHLf69Sz*W#fduy63Hw<`Nm$Dv#e*zy$w}Ls}*lH@V)AF#N`jIH~ z;!$$a=FbjIUqsAz45~HG0FJE}bXNJV5+Kd0n)G{U!x`_R!}y@_TgIb76S|w-4R}c= zB65$%8}6icvUi`pQP}^L$bxVePx4UUTe~y8SYwNM|IDKWJ1>00mlkQ5sti+;nE~67 zBJlG?h&BI|AI`&B^9WN7B>mELp~j)jIH}f#5W%s4_)%nuyG@yF25!&%EDo3tBZffowT{uT

    1ZXI$uNS>tiH<%<(Wy(ONO=7_fBB*W6@W;R36PtM)Wi46@o z!cKZ&A;zJ{+Z!Cy;=&YtCw}v!V|=(kzx4OXhywIt;{%(I%v#^m(`fL>+;iQTIw^9} zBUBy|9WtR`4zK#52+Nh!&`76P*NPxoyX`Ay@eXQUfGH@hS5^b^K6NAUT@2NWMJVTec^*PMjbi~o({}nOiaWe9w)f4- zZ%_N&>y_du5;=|3_V=L31-fs@jB*F>Ybh4ZEYgT7W)`?pU4j=2u*S_MKxKSZi&nlf zStjN9!e0sJ|I~jrlRekD4;$4W=kjU4`%*b{ES|e$#(n-L;Azbx@67(n3U~>y^mi4w3uBTlcUK9^EVy-^>}LMsiKy3q5-5^HWE$JQ3M^dP*-lm5Nz{C(`ec zduMHWMd@AJ6?U?2=2>kG8u=?@3UTS?X0fMBTP^SDN3MrXSa?xbrykxZbE;ivMaWOa z2FLyWWL7KpCM+si+z+d|yrLpPNc-N>GnHqjy#H2@llAb?ZgK%@L29q5ZJvzmREu+> z-$0&l9>y9iw+!>Ra+Gvo?WLGDdSG+@Oe|>X*-DWO2&MibdBG&nwP&y1Wajys4#{99 zhu6Q2?Q71=)oNY3**0$ zXx6iPR0BvAmtlY5y)Tja5S@5qw=7!wgAm8FEkxg5+iJU54Z3)0F1=@MvsI9q(6?YK zEkx?`s&`mug9L5l6y)abvkT>=mWpaScJ%E=Ir9jX*Zv2<TM%0oPV23kixhl*hbI6-rDb8p`;I9>1qpKCSbRu;2|KDeAmuB0q$-Xma?}m z1*fyp87<5~Y=tT&L5GrCt4-d7*ipM@wj@IrJ-p|uglBDG83o-d)xNeT+X`DbtyaS) zLUzWnv`FqKa707)qPWM!W3dYCOx_Mem)UQIW%ok1lRy#U*5U->{ScIqTn5dO(Z(Bv z6C)t(A-;%V+t6Q)&-`*nHlQ9fhlv6ixMfID@}vKFNNx30Kz*A^x(->=8hA8*gJY*b zpKq^;rp!Irtmd49kIYGVT_;dbC@bjlUjE98ZhM6KhZ0HN25)K1j9C-OUQy2rAOyb& z@Rr(JP}Zd}c<&QVLP{Hb;oa&T6nW)HLMG?y!&>h3MAm{be6bbAso{gqElSeUKtVw% z&YL4|k5`#yLmN7#xA|L++1PkvwkXx%p=0TbLopD>q;Et|WkGnamcxgW1+7Gz=`{#% zCz9q1393c!KyEoIW?3=fK0O$h)uF1SWg1U6>bc(?VFn8Ota|bC2 zV;XR$E}L=Zd5gsMZJY9W?$^HiD5(fSG5|FkMli6OcGRE(kUX!S zx5O{S?V;{>!8*3|I=5#c7e#m82 z0vajJnL@cT0o_>OzLo2J8Txye;Q6ao>k%-2?Xi;6mjn8)Wg!2Y7Qv{ta21)ygJodrIYR^5~; zp_H`Tf>#gBEx~Y@X^{TJj~%#I=zWBQdR9dz^G zJYtBmyar53k@wj`NkABavhdaEcZ9#CI>Km$a_`+=Sz?0OLLzZzf zFNPcySBP{P5R0hu7r@gOz{@;fz-pXy%Cmpg`CaoZ>kxleq}!X#)D`77=&)3~J4Mj| zPcY!CR3v!(;tYHnad#+i5I73H9tm7RHy;F`!7$V?d>K=(u*+pqrqKT4P5bmtnx}mc zlV#k%{VW@y`w0le?*DcJM7rEtHUt%Yaze#h9p#^V<&$Oi&?O%5faS~2|KkOSADMsT ztFWd=H|qqc@+BVlw-I0tdU+&#ku=N1=m1tc@P*!X3Ae0dBCjK%*>y7Icbifd@$!Br zj2UMsvl-V#gqE4%MV_xtj4Uis;a_pL(QQ z(EZ!9!g;T^4|ZA)S`Q9R>#bUgjA}t9Xj%7%gRr21$e3?(0Q zA7&frF9XROZX%VxdXn)-y);9V9rYZZZ%&eoZD(NbkF{9wD&^16WR#>Dw!A)d@wAtH zZif9NN>HR{=`MUm9p6}xH~bW2+Y#uw=xL^JPm=t~zxL__iyM4(cBK!;G zN7=7cByoLRv^xXzwd+w=W@%cVSypt?`ep1)kJE2-s4{O2>P?Iw_1R3YZ%}n;`^0wi za(ohEvHtV#8A=9(eYtBR&2sD6J*u9-WPUr(L!+tcpcD4iL;J(S4c}#=)!5va*m4`Z z6IbQ-DrJcKXke%u@B3L*&7VJc7+=|;n9{)vEI6lixKSgNNR&dwadCNO(E0o<5PDOX zpV71$Z*%h${@X9l&;U7iwD2_VeyrZzh9=ctj$@`Ped~DR3o}5tD3I?1m>Ex=ZdZxx z*+Vl5;xVdA_0@z2V_z5P_xgMm=se64!OgfEpCz;AB5ljqcGT=tcTV-o?G`K*tMt>+ zo*S0Q-?Ic;eh47PcK9sQ-Y_gJl+?Oj`MUjCuY2VUkUa=3u&p=*L!kmXe_V}rK|~ga zcvE2H2(QAG%FgRXF`t>LjX5Kn@W0;Ur>O*rsau9P@0;sbG9Kw^Qe+8CyQw?wcYwMy z6#sjy*1{ek%eS`eCP~;$r3VE)qnB*4F1BH)(sC$fB)ZxPSaVxlN(f)_a#_s4weT%n zge-4G-t^Ay%h%cVu0;GGZ>e^f6dG+su2rp+BHo)FE-=RcTOc!bi;4~K$y^Hy;CR_l z_cUXddbr(w=z|d*hEHs&A5!doiCgmvj{f;b{)Axv(n-7i4QP7!T};S>^|g*`6tpPw zykc4RacmoPCvSz6Vq$$_(v%3hUt@{!cwzvkPwh1PbB>sGcOoX&H18d*kl@cZ*3sJ7 zQOQbFDSedY3fWl!nWv7OX?7+=6g$ba&z?3U$jjVR@Dz(>Q0qQ_!{<96WW||nz3En3 zqQ*zhPiCy7Ar0rj7vwRV0XtRTc6LfP+`2=RHQ?OZ;4dH8IA5f=4HN-#B_*&IXdg0(9bZxLbg_P8-}uE%&LCE0dzcfU z9I@cqze67Svh{q3EZHd^@YW|b`1(Z}f`u0%i=!}{uVfv)NTKyAi%8R+s5C>jf{ksy zo7jGMoR&c!Ux}^TybOR-rz-+1jFq2IEhiDrx1f3B+HNIg#dpzW#ZfGwEAk$r@?fl` z!8BrpLk2@BC~!Ec9CoG5bWJh_asEZCKUOgO!Do>mA=srOEFm6P;n!U>%@}Gjc5_9$ z8B6FIa#L-fJ%yEsxy%=AA$F0SP$^Kk=82CWq1)(B+WhG?(zsjJ{P4*$`l|Lym-#B^ z=^}^0lv15cMYgZr_RMDLGoQV$%b!4qw^Tw#@voK>Yjvm;%>+T+kS!&BB{F-@6Bvh@ zg5=K1rsJsPQX$@UwwfU8bDVXHSVHNXm(KkAs0%jGz@5f@^ zD#NG*%CEc^mw~gEUMU!d;o2mgKW)FOV)^HW4izQ7YKMqLyp^RZ&c=G8A1`_D@NzVh zf0fDygk6Y#y<#bSc9{AJH@IZ%PPH2w5H5DwmP8W>=JV2vp>)-cfgQO=qge#b+P`&~ zp^Y-6t2VwMlHd)6M>}kVgXINMtc~x#SKKF2TpsV|G)OzKUfX78;oP;pYL%_Jo$m(> zqM_McJse2}ilB^BqaTsG24Wa{IbMR zng3O>aH-nGAF@)h_Npr7tf8jwxH4k&Mx3zS5)tR@?M9io<%e5u^a73w4_Di9ch!;g z#|t6wYs~7G_|jih`OhaIFOF$Sho70Yxg<&n-$NTK+ zq)2(vy@j<2BK%Kp1E^{$F!!ukIBcVzB8-x`p-g z9Cp0P7Zn`39WBmX0iL$K<5cqTKj(tCmdE2p?=anoL7B)_$Mw}8@bC3L2bJY$Cd<~% ztpQ8*rF&P&MSmvbY<<%J>4z$94qRMnHd}WlBaxNuAyczJXr#2pw%4yvv6DXBsm?M; zEXTpyTJCYor)493k@YISE$xld0xzc+*A5#i7hW!ilI4Msa+mLX*0hDh|dK@h8=KtluK@aGu8xbdBNlfN@k_aVk`< zlsE>N>c}ePDudh}9vY<3e2bEOS3uFDENC(W<^q*oufMPUJDSPgbg{0S-(F9px%V^e zbTSPQZ0UPe4l2LaGCf7DAAR<+QRj9vXN-JVf<@A4rZlkmUQj^4jqVrhE?Lm5N;R6Y zic9k=zux}ezusRoxqw!%Q5f-!PV#|oiA(v7LjX!^FG$H|{dow1!q)7o)O~^DDUt|a zVD46zUN^8={HWE&NU^DQANgnq(hc-j^AcTZPT1fs;}Wc30f*>H+ysg42L( z@6NMQ#uAVb)N&9@=nGTYte2B9*wWe3#&vRmC6Ci+2Hq8l1~fZ?eyFnAKl6jPu~2@& z(eM)76~~08^*NF-&=!sTS`{)VmT2S$ucVT-NkgkYrdjv7R-41WYHzatMbwba36-?=}+t6DK0H zin!Ji_RD+Z_FgU9Lp0ysHapS|6vJOD?)tnmJeP1{FyI7#HXrKrdmTEe!O(+tHB8}D z&9I0&Wm>vrG6jZhoI6qt{Wo083_XUpa3+mrOJa7a9#OgBXqwEch`sI4SaJf zvNcK?CEv8&R#_UgxGL|);$sp$Q0QD7>A|&&cGYva%EjrtO3~m=;-s9WNsq_DJ{nmA z$olLG7?Y}8O6ICgP-%wfANLc7SDMs+WSr(k!K5nDwehX>Unw~LOo|~Fg_uyz8R)XN z{_0YL;_Q;6AAkF+N%RLfCVkT@B>~Ll_k|AzCt)$0@cn!~_DqVB)-35L)?UM}RidE& zkL2EUTd3}IoYOG(9{cgR#`avP-sXne%KFVtePEq+w9ZH?>tsG)^bUc{6ik~FZrrDN z>6#&|D`>Fo-w(W%TMcE>q2u>93p>|Bkm@2(aq{)xrOCR^NL)OQ=W>8wZc+0e4NJYK zDbhm95-h2nrm|*g;zjFxBKbN|wYi#*5QI)&K{A)^*e(4;o#6IeEZ^M9dNK(C-4;v8 z13MGr%*AeB@F{GqqMZvqqU8m{KZcl+q%6CkkF!%wbPn@>$KN4+e7tG(*ht5e}OQqeD+VmJn2xvYF2 zRGrSN745{{i&Pu1;WCdEj`BV~z8@tbHVF6DtqnXD0D%csPo`c#!Ad6-3`?JyX-ii1ysn02_aWOSLtnLSg;>EC=*^?P9N zq0?vL^kDP4_Nm9!XXznPin~TBITU7(vkC@aMB3qCQC+DVrj8I| zycBmUXXRH}(SpKwbeSfvSgHLgW7p2AaLl|YvexH{`J7xAn8yh2NGgK>kx|&;INfQt z5>W%n2d@bcg@ANdO2nXF2o#{yfoRhp&wh9mMc%b8jf9BDip$?8!ltF>wO%8#JiGp5 z|IU8xneTQ9GjSklTR9;*#6e1ZvyOzB)DW2NDl}dfjBjiV_lL_LFrt^PP@3euyWmlm zska{_AL*N;q5GweZ7yelJa9lDrd4MKJf2Wm`gNa15|==}$?D3Q9yDVK(8XzQ&6MiE5i4<1YmfYlI?winn;8m)dWDbG*#qTe49*il^Tg=cvu5U5wZhWU(WOCzL^R z?`G>~%>&ir&N`i4=&e?NJd%`(E2+FdF<78reu&m--#)qoU6A~p`VY3hB=3Y z>1L`Szb65@J%$GCDPAt_7=g}NFTvmK1w61D-8e{P4C^cz5yei@d;8 z+7}Mr-(sgN&T;y;edCu1ZpBz>u$sK3TV`PaYDrP_GjkmLYmfNRwiyS zN@KQ@xiuU90=mwAVjp}gu(F0(VfhTW43;TRGxw4TBi3AoqJ{ zZdlk(36si2D~P`j)Kg!HBRn@%IV}y%tB=}qWE%<9@M@(|nI?1TFKd5GS2{@ zREnE|%sH$Wm~QrW#IOJ;ZaO zkx}TgCcR|U&w)&-BvE&B@crT>Fmv6sH!ctJN=&j2&r*7=BIKAI5~r*;ftaPY7RT!@ z`_b1&iQXeI{v44C=8QdhpLk}`Pt@nmLBEPW!a$j^$d=Ql#%~Y;DP5o1(uqSx1qgiP zKY8jm2NkFK>FLu8smmF{bE^7S=lO&|o(+>~>~}au+PZ?zlxrkJDiCV7 z6FYxsh;v(!Ts+T!y>M5}F&OVQ$x5A^r^bm-9ESd8@q*S0_F1H7^7#yyi%?%t*Qw=$ zyWrNF<#}c?VwYSonm%8CcYA}GiLOgs;jMvPV!JcS!wH!Sd3S5E%eq(DRxrk>xF>Sg zY!NNV)Pr)^3t3RZJ_4j>rT>e!YI5|B;ig-U%ld*&(>NxtBzQNUP)T zN;!5T`tB3^$$tcoRV+XAge&Um(T5s}TK3qP+#g1%Mb|-f@Oxc@`)Rp(t74uvR1Tx* zv{W#R75HHKp8A%~vkHV)&!!6$$O7g$-r=YxIm;hum>EfVCDtL{iTOFu(J6~J` z5A+VZz_lnvA&wAFQc-&g4vzIblWNqvHBGPUg}C@7Z0M{W{CJZxIJg$OmcYL>Vv=HO z5l>Z1+$$KX(z)@1=Z*2+`d|QZDp)N^F0)?4e6gtgQYvn*XYLt)1v)vxmIA<>3Tn%d(GRZWDy`;JY6aP~Wak4*B53_3*Qs7lpHH!qZt^wVdG_ zo6V7T(V9PsWPFvs0&&h7)f#grY8fr>+%^f}Te1Opow$R6b&Z8uC0E|}rI~Pg@}y~w zy>Un{7o$W%T8v51;i>(mxa+dG^Fmzb^BLLD6i_t7CFD(XZZ%yNyv1isCyE^WLuO?y zno4t_{^LLfL80i2i$}`Ctb;eRq;(l=4%}eHi@^jy`kSV`lkLg;;*BJow`co+3WLp&1cmdh6Jf1q=Zol~3%xtv zNiJO~bdi+Zl`V%4#Qsa%Nb_9pe6w$=b z)`ofG=G?;3$Ebi2d9nSn&5x&lwmRe)i06gjGMid2Wx>Unn;CDP#jM7DEME4p=j49$ z+L_LdE^`po*A|K2&OC;~rhBwK!`IlZ(2Zf&n&_rWvlP?7*P-L9=0pH#9j^xS?=Z75 zN8L@5+keBCjc?>?w!C#3V*taiK_ef{Hh=mWd|i83dMN?gJl~mVs5T$I>jk9Zp;gJt z#_=5HhnJ%VAGTW}M5^uu?BaF=F3GC)vj*cgOoDWAvwHF5zJ%}Z7l$D&&g5+pI*-~I zQiisFa$JocNAF6Ny6x$I79+fFHL7L8Zn7QP%*B(T=V>-#qt9Tn0|KE^!z zh|6Ln$-Vb?naYRh_7Bgl@4nn+=Y~q)#=*~K$moE{Ea2?V4&m$ppu%CZi7NB#X8QyM z7-Ex-kN?QkT1ZHZHRg0rH*ak;iA@2OC3`$gZgO=d8&STbOc5h5(d!P?RHA56W|c(7L7NP{sWX*8nkd08AH ztj?CZw8Z}C<=N8A(}4jGNCh5^QSjl2Z_5Ya0)XTP-DhALNXoZS#{SFY2mE7{-iQ95 z!*Pn&Fs_9*&;G+v*BPFs#ZYT~*47N7i-r|L zg#DrbrQz|bMTu*+kVG-#2!JyEnUF!s!F;>4U67Q_KkX+q-$gbb%W3zyV)*n&aOpj{H*KLF+x`E8G`gHjsrJr}1Bspc&FIq+b?q#)gx$ zkCEvm+|PbH<4!%kgpPf;Pfk1VknfNsIf>wn{4p#lW3!*J*ci-fsda}%0`Q&s`3m}# z*tpcH+*YXZ?lT?X8}U$_{TJ9Q&WTmQgmJD8f;P%khl1GWd_)hriSW%&|4<+_-cOCpYAp>aAy2^R&WsM{>tUX z*ER_mTYl&KS!!_bbZ#H;F$WU|?p{(9**I5>h(z;w2PW{3lD)pQw=Omcl5^c&2-4X^ z1vb|JB@2eut6zC98W*jo>~;9zoE#Eq#^&M8ObSh|#gT1!7em@wvn7y9 z<9|^#v3eDU`s1!W*#xZ9Fh?}8?VS9!C_}(KIxk(LfIoasi|7)3{MJl+)#J(1{Z7+g zs7vq5w16i=EybIk_`y*}2|G73Jlkt6Ye^?bP_xAA!Cz}YTAsTq&Wmh|#Verv!i>_D zvu~hT94EDlx%{L5$GQrl^)zqTO^`umJM+P zGe<(OTn%irBHjMf0bVa8hPa_RJ_fjzmsm2f$lX+5j}mDu;N55ZGlvI0#y4*2)2rBP z4If3?9knokPuA|SV?3+-$E32SMKX*Scq=x+ebFZLMRD2moNMT=`&FDt%w)tiL!xnF ztmzOnY3pJ9Je-CAxyk2BGo*3_f`Syw9(_1=uYI{|6x$oayOl+ZWQwM{z7j|MrziO< zmgM-|dKh;JmtjzaxoTY?)r1;+jx2ZSuyOT9~e|${*TqED}Gj3XOUQ_;Nla7d9$xgflkjU-ld@%z|iLE9(%h{Rwru%YaKh%MQJt%yxG&Pr^C zQm$2|AlK_Kzs=iD+j`jHhWnVP-<)?)a(3|ZHdI?FH{}2xO1mWEGBoTPiBm)G`!pnz zTj`|raVEIu{06}~F@QzVO?ZGXc*0N8D$ZONc<3;DffML(?MQCT4{@LwU{_#Oxo%(m ztp21wMF>&lFxY{qQIC4aY-?xNxh(ypxMyi>L>^~YR#Y_hkB3SMR?wwgTG?`@+LvL< ztm^oZ)tY-L=zN?akL)6oLG8FPOfn;atGK4+z9gvL4C+z;s^FtCgqs>Z8#r{JA=VQYsEM;Sbu~Na!a#_3O#xI zOkq=)!HT{liKHLQeiKZ2#Z)A5cwbL<70+%y4lparwp>L_37gj$et$}~`})bZrV?Xg?T!`1O!6{}KNfaR!?r~=I5ae7J?s}A?xpGp;wc`u3yS$GSYsI5&3Nbl%b1e~|_l*th_cb7V zz7%}a)pPM_df2kUxujV|mg~1^dV9HVynbf;VoX2{yj1Ha6^r+}Wa+u5Zb5|Fz~460 zJm=6<89}V}2;xC35~J7*61!XQ<)e8*iGJ2q88^eSCZHK7>w83PS%{@^2huAF6_X^WijC8rgnP%ncJBI zToH(NK6@R*H<@4KI*xLo{qQA3(3)?asK~5Ip2d zo-6Rq`GkaJpfB2GKjGB_5Wlmf=$v9ab$9={atuQQ_B3Keq9tOy#kI-fAq>T-WSNaC zr~o&sqwy!1ZswJ5N9*f@4h{D#hrN*Vn7Z$)#`_C0cEcTFuOsO)*>q6x%6n<(2e3sFTl4mKcGp?T zp}gj0=n+FbSulxc2k+}a0{jnDs_L|U7o=~P?je0CxiLs|@FCa><7-j$BmoP#_l2At z=k&PeG0D*5JLLrqnJKg7h!Y@Rp5LSOxx>HTb*+hvb-zP$E!NCy%#{U4kxF;nsYbli ztpyJC&D=v)n^TS%nCqUNe4uIIYzzqHf4(bEIO=?N`Ac|qPxgGeEOU zVUqOJA05`uQZ_FMKDqU0^nIFszO}2f7&NPZR=B*3l?EUr?DkP?32=i7h@FH3fs)5t zEP4$lYaPfr-QSPVLf=V8_eb&BKYdFC=tdpkw(7^v>@cOj=IeWY(?y=rj6)wWBQg~m zno;%OWyr=>jRp-UT8JFuE}T|C&`3);r;JO|jSwk0qoZU9Bkymd&l!VQa8)GQ7E2dQ z$otk?y2ET{cGmAN9(+LKyqn=5(|ZhA*sn)YXhZ*e%QRL|AS`7F-sEQZWd3~5V3!0(AHqTDfeVP|stZ0juM?vhM z4iH^Z2w)#0w9#nKVvS)FAc?kPL$)k{X-mVl$yOtIF_k^3UWizf) z5FD%@s+=FJrtxWIn9eZl4GED;c1XluSNWMs5~8^FC{+e2ZcO##dm+f0t=kx^n`Z_3 z?`cQNfg*zA()w(GB{T@L6Z1Y#k2P!m7kvu?dDOzcelnu`4ts1+kH`LQw|zN$JO;6= zJLqbs(+c9;s_qK1<0jd@QwbFW{tlDA=1UN#oqMkHwgTH7k7*mD0Z7}|J3Lq;Fmb%rL0 ztO4#O!>MCCjMK{>2OlK;xxMZ|hX-u^s-O<285sv(jnYV ztmOWlz)|9?57eaDaHhcp-lYX+DcQvDa#f_<>fLpTHeK$fqKu*m19%ZVR}am;K328G zzr^*6YnQAyGQ1@DT6K9J4sM&8M*j&14O4Gb-gP^Im`>tE)w?ka-;&tF6Nt@1RqEW` zyAmLRKI{E+-GI$>wB3jf489zeBg#OT_{Fa?ZgmRo?pOnnxwwX7xes{ zY68}~H3YV|oFN{PL!N2{NS&D_iti2Q1fDZ1HeHkgQzS3E{W-{;#>imlOIg94hs|Zf zN#ma#M3l8+)^DQAlWD}^d4ix#2kl$^dq%y+#P{>$D0AALbz}Akb<1(!6QeGuW85| zAXtg}{Y5fvpe;4XM`SjZHpO!DJ#ZU(JFid%hQ_)(C zwmCl@Z=yQzI8s}LBI}WyUhhvOTHbM9(BIlzb)>+(#n$I^?)*TT34`idp#m_qIIg+2 zDl*SOK}ZYqc_Vtvq26^Tc(b+sV6N^Y6$pJSF%-TzJt4y^;ENHfUdWG(sA5d7whv%cN;Rv0 z_s-6QiZ4f>?d-uAjdR^wUnm`fkzjkiqoCd1U-D?N^v`GctZ~=X(7?=f>(4**Jo#9; z;A;77|Kj4T0@@7nAPy8O6ligmQXC2tx8PFTwK$aG?!l$S9S(=$4#A2;Dee@P;Kd0p zfrLx%?&0p9@|bM$?SC>ezg`}CkO8S) zxqxS_C#aZeG=HSw+vlD>`Etb-izA`Cz^MI?0+0eRI0r>lOpkzxlx*71Dni1@LjV(d z_?v4VPZ51pQyl@Ziuo_r5}oUpc>^cKY)7uzVJ0tsNux*+O~)w;C3Yt&>LwDrk?Uu- z57;1ecffAmF2>v{l1ksyPfz@~`C`zxU76`3Q=!395N(2X5F&>a>BqWv036_HA$kFv z+wW_QZNDvjMA;AY5!TPF7S<>Dd~Qz~{J~)NbBUZd{5xEd+htfm)8f|{Nvg2h^?iHX z2DO-S5t?bW;W06z@YauDa7d;Q$hBnMvfyP>w)J|L$TdGU zu%w!lV^%Xg;*JW$%Jc0PRzxVgmk47D{mpA`BCMy1zCPgq9-k|=SKxEuWp%s(4J?dr zUs1zZ6D`x+Xy+3@C~${T#wjYKH+MV73b79Au{EbL{A-$78c03(h4uAgW~y%Ukj2c) z#I{Q&>mb(XPv_CS?aN{2GcsOgg8STOc5r?!kNMjKN}C<$JPs%M@&E$L;&$%{%XJ6j z^HYCSR0+!3iAD3O$9~Qs2zBm)W(!kJN%ckceZar^Ch3Ri`Ayub^J-FL8DyO;>}f}u ze_L+c;dMA$(!YsEWq@++3;>}XRMR7b;AB%PcnTLl{-lQG^LS57c>n5yT)dqO?hmis z7=n!*_ezay~gTef2pZA;2JQP0%1uFharQ^NTA5 zFqnU7miC=nH?MhVU=kV{5j`3Rd0{m9gnYPw6KizhNMj92NvCjUID6>ffm ztTEkQrEp&bO^Q8!J)sHk24f5%U=(ME+%f{ig|Y&(ix@0{=O&NV(>+cRC$%kRpHur~ ze*q5t@1%Uz{`{4XXT6{EZ%)ru5|q3>?OWZ{E8xGQO+mE^d+!PB>(GC{8s}uo*?SZ( zvaE6$Ut}dsCpnmD*^KGJ?wVVi_R-#tny{O&`(%GJU4?fBzFFxk(zpX;BdwpnEhix2 zw|)Ea@h33oK4&|uz0)-ddV+d@{gvKj`C-YuwMh0mqp&)a*D z&zynE-nZEYwld>D^9I(n-n&n2OMHpPv9i9_{cUco60G|rEgZQB`+Ew`vocwNG(+y* zW(rmwazG2pb!h2`IE{Ny%2U1f)K6j-t@rmz+IGZ7a(ZP4Y)?)K@aORF98!HvcUy9Sw!6=?kd;x-wgl|4_482n+AQ=?mJX(yX+T)7A!^hReLQlQr-~v`yV!aVrRY& zEqs1))VX(qy{+;vkIVgL{~iuEHG3!Eq_2`&e0ECs1`HE7Tb^f0tPzF9z}-PXngCMz z*<*iB!ah=FN_O>z&038?f+GECudZ${rsr&XFjuofK##5U=<@R^x`*Pam*q_=i_le$ zt5CwGizTWVQm+{(QF-YkSu&jn(et{U@PT52n~x=sV-5ZWI*VU}T5FFkw9H24CWYVu zO~6CXY+`;uH~%{wnr5q~t3o8lj-_J;Q#16CR^8OU510Jv1dVS~1WU_(qQ+ZJU{Z`B zPQV!~?y<+cN5E(ISGx2@kpKCkS}RApwd;Q0RhF?B)6FfObKcWKB&Rp^18``|dKHgj z+3(9tde~LB*!kbl&VQEO?DQDY>K7pJ0OIh@c-U+y<>Xl7vfYaxF+KHjoe`*kCYWJ+ z?b=Reh18Itcp$0B(L~rdOr6aYZ+&t3S zq!3Bdh!g6gu_)O{c2HOnf8}820dt~{o5fPjOW+$K`*9Zos|0Qg3ZwU!n`~U~YY=-* zj!U^j5p)kP$DGc_u1&fW=!)1)X(wRf^fw9dNccrKBvj= z{6B)0Ayg-C%WGQ9@PP(iU;8wX*i&WyJ-(|A8X1jR9O&iaU+rkoVBk@AZiZq{{@KTx z+8&lM&G8ER$N0M;k7h}o^B)H~zn$uteBZTnn4dI_=WRBy`Z&q@G}(Jgm&$^ZS~7Yr z39;2S)|_QCpHq)Fcu6xDVM%9FXzNd2nWk~&^gEU1vNn`%I#A*>YXws`Xv}NAke&f& zKROU1JDT!F7=^Mh0O5%i{U{3H(=9htCS0Krm1T;aO3Y;wA2gGM+wHBt4>l8dH2M|4l1%ApaRb+y_P_|@o{c)&7j z2r*vkQ9R-VGo_YmSrPxaoD7-E@o*v@oIPgGUZMYE!sa{Be~OFFz@TpuQyo1@EsjH3 zL4jGn-V8VpV*wD!^aiVuOad+-3Gw+NSNGyJlw*q?4pK>Oteec*keOs-{tSr!9O}Ub zJ*Uz2>U7Pcf+F>(?KVl64CEE6#KB?N2RSJlJiu~AxvHYPzK@MV%b*6BctU8}?n(%}Zvrop zy~{ksU3QO7G5irorTHVctmVY;`KP;@8fmi4YWBm5084(4wlGJ+sdA6>N~3yxA3FjG zkHomVfj976Vq47QNQOf z8-0}a_oT2}z^wntf0svU5!QC5T zp<%xD!OOIchJWZ7*ud!Y_5$m<=xnE@sNV^2>8@Ih$iv|0SzR;deUfK70ED?b5Ot?5m^v1Jw;EBg&XUx!J>L5wI%@ZYYq zI{;;R{t&O+fBO>Q5=p>?6IM-n`kf<3*3pC9BD|G63HjiVG{-C|<-<;BKC#t*PRHOF za9v(oB^@DE=cSqzb8B=*6^B||qw(|o-I*$LQb9VeOIc1pqlO`rMnu-g6Eod$h)H8( zIySmeR6=Bd>~@8Sep+={V-kxn2Ug9n%$YxbR=_If*0cs~QB5z#6^y_0HyyKB`COM$n+quj?~C_BxS>br*{Z|9Nq#aQ|jEWbZ( z!Vb}i+1c3YD?&af{Oep(L2EkA==KY4IZa~gkgRf{mDZ$Csf!bP0|P=EANKma7RA_? z)8X5`Xt_u=b!kbQsZdeOXS5Q?&}Ww5jQ&=e^x?0md)UGSa*6ckFe31%0@<&nQZ74e zXCXgV&!gR`{O4G;tslp=9f;J2-+DBa3ob1$tRW<-S}0M*iGy}v zi@bb>9J=m*vN&zadcP-lv$h_#$JQ#s7*v)Pjf?Kd5% zFE8R#5} zloqBILWxun(VLEW9rE>El{!KgpabEc%A|hQXqKWhsoY#swe-}aP$tVmnw-KqMqPBw zni zG~?3Hq5lrM8CosVF@=whmE3IW_=-}MGBKjBH8C^51ovEv@DcKSe=I^w4x#STI4=Q6 z1V)kgiO+X~1yVMIfd}eezw%_{Y2;h4ig}!z7rtQ9-5{@=N-7h-!i>*P=Ra8Gqa0C< z_C*3ne@HWB%u5`p$zx}sk0`%;CQ_@7!_QI+1K_da%IGZe=!Hbn1G+q}NAvVLml|AT z!G_xr?XY~iy{f6r%9p3usA{WR^F%|WV-{$;h6Ijb1Rh56?_~poLLlu8tc;f)xRRZA zp)_>kR3#)f(T5Gs@WW|I*gEJ8-tkAE_HL&z41;(wNF4H@VV(JwZ}8=GOLIXD+Ghem zNhyOJvaret_TEi?vEjKE)VbASiL>AgxtdSc zf%Nb?tgfN~$c>vc`Ep}^|9O4r;B9cfgx@~tXPoo*$%;y6TEY(joF`hb^k>|}M2OO7 zy+vG#a5lI9sb3RoZQkPO$hYU|GRCC(>mTKDZ~r37*6>;P_(IRd4Sl9Z98Wl+o?SU3 zAGdKK#s3Go3bMufS&k!)*oYZrnSTIwsHOqnalHahHdyY=VgFU5e2HqrUtLHvtTyaA8}jhs)E#+q)US}U56_Ux1Qf&tBPEB9j*k%MLSSw zq!3}Oj0ADMK!%2JryV!7sw~I1rZ}n$p8+^A?pdPO-8p!H=bx~(GLxJ%d@RFkn0K_) zOHDG~Kmxk2dK+LojQRTA2ff2|9saz=cPAFl!o1>(>6wU9IIYmDiGtp z_i3UpZffJ?(Wf7bw+MlqA9H*)v433Og&Un!UE4xL)q1X>_YB#lCf$zP`$kNG-KR$y zbr_+gt7BfN^h@Diw$IZUtc%sT8j?zKijRePUtP}g;i>% zX~uUyoEk_vFw8v&(hrHN*JT;jV9sOkppT)&4$az?aB`<_OTl5ao+-Ep_|~9eKDU70 z3*uyv>Y+tR+FIb!O~~&SJeAV;Q-%t~Zc$(0zd0T;@n*XNY~X!F?#M=0;ig5CZm3Oz z5$*7yxwSL0fn#*+8=0_w%9C|6? zZijgZA;PbunPcQmWVU(@$-eWT1&SGH%3*o!G;02Nv^Q4x`VI7wa9ak(eSuw#ZaQYp z9&52nYH3j2E2m#YxXVm9h2Nfp19q#GD;Q*y>4|Lppoz}i!Vl0qN2Xj(k0Yl9ytbDVOx_lx`!z^i(k-!Mhkl60w+&}*sd$)WL&|-Cg2C$(k z(pJjOS1F=2im>cPL`Q4sU$`FlD@&~6Y>*y+aw)RvDfG!4m<_2KQS)vH-dCL&|En=O z+mM1p=Dl)jut28Tc=tnYkg@0C2xrGr05d?$zti`zyDKX@NT?y1_kef2Vkh7qsm}QU0LEnT~^tO@G z%kz1Kf^-WO#R3(ELJ9n`p$c{d8Em}#+M0o*S z_BkQ*E^R=&PQ}F|c1Unu7R-4=6rKpjeK4w_-0QmAEkO^`tkqDD(;DBy#Q)zObWQ|8$n4 z66HSc^@fQX%|Af({KSM>RAbF8$ijLv{xvWq5qhl7uHD%tA}^X-3> zbX%SrbdJ_IIpILH=DNG4PuDl&Iw>nunMvLXU+K+-qY2h4^3cU>+oB#Mk`f z-uMMbU&RMLcPfmu`{#cZm=x>Os5Os!-$}oRKuC#uT2GTXOb-X34;d+S0RWyrAG`SM zWVcr}6dL*VHa*>5d4KjSh4o@iy1%k7WFstt+j^-QImMxw>L$H}Ugi4a=lVXR&gW7Tm!Um4r^VoZ07{!fUAR;1ge0;k$^?7jVw*4+ZAIrZ>opT zAtwhB-bFD-%es@!35?H6|BesQ1mBPU!!o&RqlEN87x<4fHXgy3O`qC9XD*1zHXVoy;I zFej0nof}m4oihm`jE@LyiNTL)_*33XipYie8WBSfQ0@wJd27zV-#FT2I}*)JgNVLC zZs#8#93>O?zDL}EPB0y!gnD^h&FrmVNvNkz%2pXJ)Fmh2{b28!P79LH?1@F>B9aEc zkmFaj1j)0>GYMaNc)tuqr`c;4?5!c^Qi{TSH$CaQpW)%84{JA~)`KVEZY(dp3I<*i z?7RuO%BT?kd=g$iQ`h4J26cU^;eU&UYT*>bKak1rZTJsT#J_f+&^j{`R*mBi>@j-$ zO0iYRO*M=ahCn&+nJ#05WudzIs;^j0FQt|S&Vs3~{hqqz&76#m1y9Yp@T4h2pbsVM z$Y>waUhBM)9O9?8mN!!xNB)GvN7vL0f-8hVDJ=gL#p;TB{DYuikEf8RSS<9#n4VQY ze)?3aGCOW!okg|O0{UNksPZKOAL6wlF=*kMC6zLuOoEc2pe6pxFysqX>Qtq37`41N zZnyHIxz2X(CZnLpW>U+m>wyaw!w-@qD_+GbF9lx`%7@P=zf)K+e0znXA4razVokOn zySv0CTJ^`g>HxGMw8TOzhm-D=^P$f*n&s_Kkb}Z@Y|SKB9>>$f@xPpb+c`^t8b&Wh zrddAueR%iIRphE10I*Z^08JDI-j`#QH(A&@kVsWE$h)k4*yf(sk5)XURa&47AU5ji zd2K%yhkAJ`y=HUGQo(qM%!0#c+6lea%u->{?}~PO^@3)NKeG9IGF3$rfVBXO^?mdo zzy1;1U87m9>jqT1==RMGd;ncdnR*B}RPW3TP<@{AEnj3a<@NK@3M=b*Q2Fw7Qd$Mp zZ~uHYKa~FIvi~xksmH}}U(LZeWl8&U9I`I`Qj}IjqBG~Y+^C!<|6oKCealr^8}U=3 zb}uctd(C)65s?5ww{o`5}fkLv(E)kACTI(n}T zZu-Gu;?$z`1s}W0_bM7>uZSy%hPSttmr2RTF>ILBk#-ib3(u+vNDkkBQxy;Y7>LrI zM~QlHr)$jPD)oEO`6%c#k-DpW?sT!j&+V&WuF<@ro%UggYYm1+twG1?0H^p`v;Sij z{nw_>{j5?;8vm2@W60T3$ASDYrwOR$;_FrI#)ZjD8{RIfXRI6uX@@@S5L4dH07yve|l*E9aRx_8Wm* zk8vT_z^;_MM!bp}$gv$97g@Npx&yK*m)!qOLmCP|X{wfrJL3J6XYi)Yb;;^eKDQ>Z zj993pV*J{=R))EjeT;!a<0uL%)w5wH_}Pz{;NQ z%Mf*?Q@xot2KB4$xc$IzuAdYvW310>zId-kx4-R*>)jVu`_R~;T<`0sMdZ4tm{PdI z{MAfc&0K5BQxnvKYv*-44z?TVQuzYG; z=2KHy{_%X@TD5pWwh{zM%e}+xw9-3{S!}Ji1B0BC@-m!61OvAQMND!9tk$kIARLco z>v;(RC%Fw?Q%!swWr5A7*&_m!L9H7t8bspVoxkV_z=4;)Z>HEEyiP(@IN8@fAjBoF zRg_F`6p?GG%oLE(V=0b&@ReFl4NV%cHc-<2w&>fo!KEyz_DaTRUNGi80j8L(H%=I{ zcn{O$TMOua4rVHt>#%&We_;Q$jr4$MffkZ2h!#lA_(DC4Gz+6v04x;q%m12t9+<;T z?j#Utv5=adt$yx6u-Q8_$&y>F?DMsKduQsBMD}`y6;<<8bQK0FGiIJ4r*FjL8eWL( zs0YCh70`LJ6u+cGMLmFWJoW+`>`rGkqbP5TZr+F^)B(ksf>uJrTzIBp(Bkq~X0&aC zNV}`Uw%yB!Acmz^o;@-)R1*})#+sXzV?c9MgJgeH9JE-U)ICL$z6lkv)rogz8HC0r zfr1Hj(?Z3*NCAj3hFgsZLFt55^@B)NZ?3Zp`7v+gSqPg0H2EtVxx+z%XB(!Hh(1E6 z0q+Ktuvfn;Ye_0!fb=7B+C6A)>3z6vKfNHPjwK6|#EWMmzF5fdF=K3mMr^70MB$%8 z@6xb8pfxv?rWoO+aJaaNwNAp$i~m>%1RvzE4AQC6J*^9ZRlz^pgjoSwArmRHJrVnJ6#Kyq_icf9(EB^gR#oRYq5(?ytJV* z7|K6FRM2WT07f9U0wA9+5%?=HjjuO`(q#hkSst?@mbE287THwc@y$;?#;Pcy&81RZ zHD>#D+LzXj9G#S#Wz76U%5)S-X%UP2)#&}LAA>ni*)^3GEdS6gPkn$Jns0O}A+%yAA>Z_JefAcEq>1Y0R>U)JP2c_mA{kaDFqy-> zJ^iy~BVYkuMpS$Hq<1p~aUoqL$JmH8_YpDJ+55Kv6uY|1AAY0NF%!Y#ZF+zBS0v8s zY#-ql;Jh9+D8JrLyp?4PaSWB8O<%W`qUWkcEo4UVg_;|N$Dx<|HWr~5T0?{H7|yuP zv5xnndzZI`7Jz;2PmE>;FtbP9K={DSo?=igjgOj3RJ0qfHrNc?ny%=m-{GzWEe}E_ zUf7Dqdr-x=*6u%5>rE_+JuT{6WLp3j%Ws7aCy7-B!M8P^TQP7t#8p*QYMd7r7?BgR zu$a;4x!#GsGe7{nFbgSz`C-=q>#U|9+XFlRbSN~#E2Hy=dw*#KjdFXX)!v{hL$W*5 zCqg69hixy_ux@wNMQE3%Wz2jVSM6GT!n)%O;LLcfX0oIrnp=1N z-4j~eF_lrz*-#iptFjL~n~56!@CXTn?PW~0dwn~aW^d7-qZdStvPF<*ZA7bv0E3du!YB< zKXW4BXXkFg`QMkW?IYZ(O^B&KlINocNtoA~pVithiD4YMXKGO0Qi)%$CopA+`pRa! zY<=>%WO~?xbfF#!J$g37#eV$hsjIp0M-a>H{B$X+Ia^$3uuM6u(lj=Pji{CorxBk*7aS|MkeTw|$G%raivLIz2s+jc@Z&wiXOIx5F|Af= zJevrk5kHwP*J?rvXy|w$tb*D~r(&IMdE}nxxW<1+Y5M;hFSLdw) zw_A+eGd&Az9!rX%(p^`--xJ~VH@loIBX$e~!b`vII{?iO(=p1}?ZwPwkeQy^Y68%5 zKB6jsQvV$XzceH&pAAtV$R)r}^DLxX4$dgjmZl4$eNC{vlsl=InUMOCj5an|#dX~`Z#6nf=mq>tQ58L@33B>?i8s*{LQ86NpLw(=A6r*ZH@O9uBz z)$3%A;ZgF`=5^YxBuaEpz^3#AK8 z+!BwPBfjI26oFk@i6JI_Wjipoc&&#Ud{fnmAXFtdQig?i`dd=$o=Ah>Cf$f;B+ z!Dyu%Zq*Ygv`Mip(Bgq$D+SXT-{MVjoy6I<@i|0*_l$+7_--QlMD_Wb@7r`*Zfr6R#}; zkZKMj2*|tPx5^wdKi?GP*)1R11!1Qzv64Q>8Ag+h+Y~;86CMMl<33Dt*Sze_n8zmt zc-cA`cm@~pq`lQ~u>K2F{XC-aH4)mw^DcqA-&itzw(bX(_o>96`(e*n?N>AqC)i^)#Z-r_gYwq*_eQPe zG8nSQ(!ZdesS<4wTAAKkBj>z@fb|EYNNQVu&rGh%=5dDuEY z4j|6%F`EWc!QVy3zLJjCR_wjoBDq%rYQ{b#I?R0U9w zpU~e08u=<=PQs%fXYo3{Js|LY5#65avCBb3T6FqA(eu8l$JP$E^3irNJ)ofzct*kwjvaT(9 zYK^l72y1>H4GtCoAa59iDgG+MfM?D2+jiEURRsFqt7rhmKTH@_k#K&x@F;xK`bp<(JAGx0|7TJhwiCN-=r5AB zS8wtYx5Ghk%0;__`aZ#&RSaAUqf?b({}_&&QVocwnQ=H1$bY^(=A3#DWcss^n(W>D z;4o&_4TrV!?KTjJxXN_yjgDEU0Zk-iNx+gmVjnG@RMDl+i7>F?R> zne8Ytpt7dE1io**Pr;i`X+8HbO_j+#L ze&3({uhraQJq=!l-I=T;rdy|lm~T4T3$+ky(&0_6WR^|8d)zhN9uYMyu?Afdv&m7`Gk^gwIkxXOHtfC^fc+bbjG$@fj9pZab*Rc zHn$Nroa-dUl1KXUt0ZbEs%<>VFm#+zVvYP${SL2F5lE-|l-Ql<_+(372jz;dUll4YYp%Vs{XHdXqm=o<$i=(ru|Md&J|fPxG=yO zL0{?H5c69cFB6PeR@HDLW^4SLG`XH5ELT{7+;HCz7Vuz6KHZooN(WmH>T7KU3WuEm{Fid%6H6fYg5xO}*~ zdw>E3ibHXCclS`--Q9}2CrFsku{AS)ldP58+JOBG%49yL4UIPMkjmyA_pTQoJotRVQADNc5O8AQTK1% z2PmV23Hx=`e^m-2Fu4vB;^N+pCn_vMx`&q@6!qn$@Q?Fj>R*~wX~pGRN{S(>M0(W@ z(BRfx%5_{kqV?gds;MLO@wGZbn1QW(O=wBzy>KpI7;wHeY3D|vTjRPGlTS`PRa*%_ z8_X0+Rnd4BLmrF#Tvty;-QCQYDtFY)cAf~%gKf%v@z&8RE;FN*($-X?rzFEPKls9$46gOEpW8oLskF9#;LpS`*saLz~=xK!RbD7q%E{zvP>5TO+ z$=rgO$9>WC!3Qe^fa1f6a6RowDYu0}xq8Dq(8DUitfN@K!q6|>Zcpc`vmBQWq|)d> z=lUtiXxcu!R*@)K4*SnzNBdlj5N%h=d^EGEeYDp^!{5*Hxjdu&G-6yNsma5BA zNUwQk?7g%3CsOd=?`jcLYxoqvahY^2qD^f6#Dw?aYWuKF&G*+_Yrkgewt3J5mQsNt zJZ{!We&?noQ8GKM-}$3>GHaVU3UE8)yWez_fi$FI^U0~*xXsnSovY^7mBs`+*ONKC zFMz$AAX^htEn6QeAPBF7>qx}r=CgPeJ8gsv1Acsy(%Bj58`yWiM&%gOR010Khm>)zE4lZiYy0R_H9+JEI`)=Gb55~ zH~kim&Yp}{7Z6f2QaiHetIX1jcdvWwl~d(j5}~ROR5`MwgX9yD4jA=A7VMCKX9VH< zw?6L}1SA=9yELl)qNdUyWeh)mrKk2qUn2}?0ZR_4zU0UBX|(HeZlE#F{cKYDtVSHY zDf8dyA-H=WMO>S@eS$#`H5c_CUEqR-`ab~&WpzL*&KAj%NOj^sk-_TDA(rD$Gn*i& ztW1ojml3aw3hw$B6?Oa$9O_6P`NU_xSEG)1R^PQ7&Q{$v9&qUjMv~I?jHENV*j;wX zaKk18)yuSU4KrTb$g+#F5ftOe{eCz{d!zv{yzDHDL?ateJPBuoC(VhSUOGG##UdcJ ziqS(i92P7jz3J0}Xu{Tql0_c78ruT;pM50r^^`VFXb1S*5jEb9jL!fGl83hi?@OfV zl++{R9dIdbdPU6Nr$GQyGI6u(Mv9rdoRvB=9n`56yNh1#vs%zAx!0OJqo#T_)tzp# z-i%F(zxMR-fOZ9<6Cx~S8WY!r{9_vW!8W6=hYIu*L2$P>Pnbdez% zq$8EpDEubO2(p88OxRknMQ|68%bj6T{>vG2d#JS6c(ONG@67I@U;F5p$DvoGj}5%n zbg;K}XFV2^>x9utH(!2-cg$XBoM?yZMP9_UQ8*OfQ@-#VTqEp?XH#3IU+duzA@UYS ziNe<&5Kfl_7oi7HQTd+k}hp7S+H zkB9mBX*rXd^-As8IZ`GivCyXZa_~we=GsMHj7MqI@v5);VF@Ia@aB4E&$&_LxrG^W zdNkc&B#mZ5EcFh}qPBD3D{+;f3{a_zV_mKK0~LGyPW*OmMz6!ucVU_mH_HVs{2R!` z(z1ZwQh}&_?&++$3&dyoWZe$5J;gd|6iTCNr!FWP0CIC^Y|%+=_Hv&NtCH7`5ZcoG zfpJO_)W|GQCiYsy9bsA*poY+udDV>R=zrHCzsMcqVgfTyCL>RzW_WJ(jFEp4Y|vVJ zn2M#7PkTIVRj^VEE#ddd>-#PuhFr&em74qcv5c}S>C6-}+Lh8-LhuS-*tRVm-}Act za-rHtynqYnVb&YcTGHNJxjW-sZ&lB_d=uFso>>vC(Y`}4NTB0iz zZob&6CM}6rw!bhUEdkUOETvyDwgKk@(K1;&oG-4N_SmeKi!(dat z{7Cbtd3%S1e`%ihGnGI=()Lx{oD1hIT|A_Tt2O?l9AY_pDL=zT_mjX(To!_&FrT*c z?O)_6H;UC+)>5xqRKwO*l?1$_b-z*QW;ZNxh|)%FAips$q?M+1?tRO&7DKC$3qZ=& z#_>SpBBX1>Gq2AuQbab2w3MNV`&_J1Dpwvi=0f7aK6Cp*qgP5OUj{1yHBlMotYg<# zM~>E5mb&`j`;sW+WZKDSc|YdWW`x7wr2MQ;<-?={TSalmOaBL+-YW;nCykJ4u+RbjFpzed=vehsz zxqC%t15(MzY5EzcP_OwepiS_bA3Uj5@lM?}b^0O79Os@X=UF^;aByzq5Bc+5^0uR z)Yzh<8H}i-ZfGNQ(l%lWu)Wp|k3b6FB z<4=&%gHA2|kEs*YLqP3boWfs-Egu-^d{KePKNUfl_$p_y=DGjCrTSN5x2di;iVR1h zA^`DJO>;$&*Uk;9-$|Pon!|1L`k}0$S9oM!M!+8lD2w{mz-4oXFzSc!d%k7J{T9bR z_ht&qz_{{}z3k6b1;cC()91mzH7M~1256VEH(c!2fW&Tu`bo!r5?#s5F#SA6fA|Icfkx^Qi# z>}hg~NS3~|neWqUmhIMPSN&@>$m1kBFh}-TgidaR(&4<90t?BRVdga`-V5aP{W)FVJ!qq=uM$?GL%1*ejA!!OEG8^Ax-MR z(%cW``c8%Rc}|9(5nc^FL?KiaMxjWs4|$^mC#UiLi}}rWfB6Zzr^PB_^4W6>)&+E* z1af>-aCpBp9`e^`s=qMV-pJj0FCG5gEBDn{y4>&DeK6%E=b%b|wR#6RSpVCXMWOb| z1mcLs5$iVYZ)Ab*dF8)Y+|QtPKt~(xmPF`o7IJn)Sgjz#d*uXwvmOJXGkk<^oTu z^|t(kZ)W_U3oDr^=xL&kR=C>W-V)M47yum)|_yj67?K|99vJ^Oq= z5kduG>G73jr|m~JXmIr7jnb9KbT{4}{cEkFtJ{gajx@;5Er#Ij8Nhyj11gTxaJ+f} zNvOvf^>rGV(WL{RQGjCPzg1vij>=WUUT1ndJIzT2#d-~M3Y2Wl;`tLFK8$ZQo%WvW z{AAr8B!#8?tZkPg-@pTcdbiM+RS9UFiAEx8G0fI>5Br>(!(GCBJ?3|Qo8JPdEupkW zZ|2_7Z~)w)hzW4{zhm){186PGf~iTF9pqm%hGH^{%yMRRtT(u)?6h1WG18y4JWcoCoEycYdpPclvF4@C4#hq( z)F4kh>6YH?_c`WvR9sG^gk>x_Tud*Q%$oa7M(;6-)KpE4+RZmLi5Iudt65BB%Wm7M zR%GZH^z@a?SC$DGyW}6Kse)`B7m@7febyH)*?{*Ojmr(!hi>^Dfk4eV{!dg@s}XVk z8WLjiLN?aQ7L`Sw-Ag^(A<`OuTG+sFAq$$>>PKAF8D9YdRa5SPompW%>*Nzlk;x|9 zuckPSHvRzD_wzgLNG9Xtko$5rVHte{+Z$<=iLmF(d3B?$%Hnv>&sP-1Cv22Dv|8V6 zVU(-8zT}nHt7T6+y8{f1OPJi2SV?vJ;6ON;Xm{e z0n#9-Pq9c}HHX#hd1h<4$fvN30K)!@=BCDi$*pYVU}kS;8EX_4+pkAd;iWrfEzXln zz3nLP1_?8*S9rZoGKi0EfmLHq=NqkhC&2CDlgf$(=;dX(lc|vJ`Q&A(Eh7Nh7uhJU z<$4!vB@L`{{Vi>ksa>-J30!yXxGCNuv~Tkm?k*BL^B)4Ygk40{F{_M!c} zsOd>GSxfr3{;5a-ilaNF9`Jc1-+x3BqbGbtc72~n1kqsk!6o_=(nT2{#t33oII6#J zl%nxOQ;ak-I|-A5S*#I>(5g>E5r!j-L+IWJ2E%1BqwmoNP3Zk&@XGFtnEk?EnyjtZ zv(YpQFMmV%nixq}bRgMP&l{-8CS@+A@7G?V4CJ$Kb2y~hV=wZfZt@A*H*|B>?HM9DY zGa>&Khx>5;@IAT-+*MWJ=qn>CHK(DFI#jo>a^NA4{ut{1l)9rzI1|-kjIuWF1F$|h!YMJVqC6qmyBURj8Nq*JSoA4QLf|B*x-f=qTu*cY-A@{e|UCyLsBwj&CNog&5FI|E`SeM{BJ8K;8!TDV{3PtKGyS%dJw*m0t z^rgg9lUKHo)QJ$oOHb+k91QsO2)S#=%5UiDmC2q6@@w7z9Ga*Ci(2VeH) zx1KStpSkaR>OjUvdQ^l7G<(*NaJ^2L<{$I}he4%W=X*8egnKNCK^X%35%Du_a8Vfygzg>Yw?8A*hj~{Azg}JJN+N7!DueF2*c7bJJ_WF^0*F>0%MDa@ zn`#cH)78gqVivo3SK7zB&O2@8mt#DV{5)V4R6JiJjsGF&5^a*Um^rlhT;HR34b7kV z-l&o{-w~^nf7K>`Gq)RBiT->wXW+IzNn^K}G8?e|fed0XFOXP3@MC3)>0QatR_X{N zQ2+_k4~HeI58pctpaVslnhzgL>hi_^R^5_}3QPHc$NNi_z6%{^zq%k{%UtORSCn57 zI#6D;M)>9Ba<7dRKD?StW;QrSkBANqXG=Gns%`yt8mEfA=58gB;)fTtVSe+s{M5O) z77LR=ZFO~!iOo*xoJxzKTHuoKP<*L!on@<1`Wn5UzDILjg(``zZvLJBP&=R)IQS4R z=&PH35P%9vCOb|D^NoExfcX2Vj!`NuzS&R8;J(Bxa^d;G za&-EQ;BQ8=_1w~PyWi=)2Vbb_&~4x#*4PytO4$Ymz17coV_vmi>Fdp_4r(3J5vq_O z&UAxwE(H-I>`R9w`sPXWx;gFYfag2z+cw_pYsn>lsw%cew^$r-;%CmEe$z&uR{zat zP60)Yd0#8OD9y8bv|G;yvSTq_Aorv|2CH0o&TeRfq5EyVeKBjduTS1Kmb0n`kVl>L9`3`PO;>Wi3#LLS5?NI1+ z8=tabUC`vFVk2Z+(4RE3vEvfba53D_)@1*bK)7^Frs}%OO}Ki0z3lck9d7I0luge0 zaGj=u5QVwF?!Ys7nCktl&(+P#GOZ6$j%w!cL@3m$*v*2ZVMZlfc~|gn?)6iQjZh;| zCJLx%^X7SXQX63U18fV14Z;C9_Bl2E_;*rmfgkyNFn+vu;A#MN1Y|`MztIjes$%Zl z@BON8+8OFi`ZCXbOjCmryBLkM?Z&s z`|H;vdJOpXDX>_7e?OpZ46Oa5H)@}*ffb@oe(Mz`|3g4phtR;LjZ30G$E!MSEojYIdXdY#l+4>wRKMDsNASYHA zr5DcLrkP&(VKCD|&luRP<#%dj)B0*RoKiz@N*b!Dt_QcH7Cw$1SCk2P6zS{6>t#~&?dP%) z((0u506~xWeg>pH9;oftY0AU`Xj|E$!f;Bl#%5=;oGUPC3LHY?^F$gObey>gUht=7 zgqnENBCzqA5T1ZrpS^-Ql@Q%y8hT!WJ8Rpym?kDOm}nV~0u13IKw@3s1)_$xU5EQgNrD@#`lxBt3)~?N2I;XYSAai8d)yM=@Ko z0!y*H=yxlNs|mw{F_m%opmm`1-q@&N=xk}4R<7;*?nO+nb8ViN3~IGv z9fM5IBWOywa%(?VHzX2K3{g>nH6?_Nt+FO8%htYkge%I<*~Pb7wQp4HEftMJ*)ZI!RN9`4~f3(nR?y`^UT*Tsq^n5X2n1Rf=hMG{DP z2hEr1_hiine9Es$nD39)37${R00FO7b3Z4-PFp5lpg1hT@TcEk(sDTz6O06oUtzy* zYOWAIws80)F<>2X9|+tII@}A?xnFEaK8G01m1!ynu{Ws6nsJ*6HZ)i`T(fq)9jP{C zi38r8NBTe zRJ90chWUox^js2UJ-j$JU*82vg3#Yo+Ec+~km~Ge|HS-Pk#x3vEspLN?IvZg!eKG~ zm6x7a_RqzG6z+N6NQI~eFYSbYGSHAN^l&OBUCci-6ce_G zm?|GdvH(YX0nsu7wSw*^Qmd-a@xA(1s;Bb07^B&`Y75oE;@a)T{R}g6pC#qT(Ex`e z^P^L8Onx^oA@#m%pK0ls;WH=ZK?6o?$cJ2o`#M4@%K&Gi=Y&5bYUp=ZN#0$kl>y#xvKIbLlSsy$iF2(6QI3fzV^woU5Ux}u%kb!(v?4Kikr_H^-_YNpsCz?@ zwM_Duy^)Ix>DtNyzh)`m-FmN_|DHk=VU`65uvx74yHt9e_L5-vTI@f}rO?5>0ERrlJvCh)df|? z6kK-XEU2V~m5GQTXe10TIojW!i4aOfrn&webz3v(hFahZ{H!-jqR-r&A;P_7PQ~%^Xa$bL=)V{Td1jlC3XjZVCC|V1gu}G*5;Nq!$pgR^ zO6#^iXe}nBj>kTLs6Wyb8gXt*&nj=LZ>2pwh!kkFkA4YG0ilD^xSQkyXfN_tjF2qn z?OL{nQ=g6%w1es`%Xd%L#3fYWIjsCd16-qi{umgoi7x2wiiW$Sj`zGPcp44B3RlPA zsKdTx$l&5q&ln{Bu>JgQP57BD!Z37)MTv=sT8Nv!Mo7I!gzX#Kmt@F=pG&VHoIP&c z8Xf(Zh8{O=6MW0zYOnSf{i>noV8OI3ccxB5?_`e~@&f?1! ziycpV;z`=o8~U#Dt%Oty2Fq$@?HJUr+Lb;}56z@1l}!D>DechVJ|1fwRnfrSsbHC=AM+)>haep3} zuW+vH9}FXPEWd#LA`^#1A} zfTia@9VWpFZ=(Z;xIq`Yg6qJm(dW4PGNVp^gvz$dp_A@2hPZtm!&k0&T-lm6BY#tq zj~o9@dw}ZD+1?GxD`gfDGe`H?30f6gKbL9!bQf2;%wAzEOm`e=J#*EYuU%NVcr{j% z9t(2r;N^4ZZ9o}r1T)ggt5w6~YnHm*zxGm@I%?NBgO;7Ks zj0y|?@)Y;uxG$Y59&bow=H-*d_~icDv^B?5krfrg-SN3 zY%uZr*K?Q8l(K`CA=r=38TYM#{rI{ZoFKetyZ9RC0E5p}vRA?4@5Q&J8CN;kRYZ}7 zmA;uYGrQ4{PAHX6)iel2n{$Uqxr~48e5)XyFl^=n`9-2+3YZJRqsPVy$;Y7x<}h(E zE@uA%JErFVQkd)&2NkT4@h(zwM?yzu*|wI9(}V`}Wjo`iP3i4DJ7n3EJ-q&o@YgK5?$ zURy8CX-xP?GM76*Eg5W$Xpkypi3;U$H)8U|vA?3?HkDlCv*sHAM$3e>zWN#ij2J%7 z`$gtiy9o=#grp~WGrxauO3>W&NgW>@1o4}Ul1qYawn4(w_G$QMJH_Vi0XB>N#nwC* z=m8WM0WVBYGjDVXAwKN}Yjs@@6QXBIz~4;A?9&8d|1l-^qL3eqw?Qp_F7gQs#y0u@ z>a3BC!QWK|z z=9-~FnLZc}IQ_mn!;tcLtFneAhv3j?UMv6~?Xnn;zM#*w8q3!5O+K>2`GL5Zh*hL_ z81`eJhPLg8XgkU$KyGQB%VBQ^a|v|&(X!uEef92Be5Znlj`y{rcxH9wY4TUd0G+CD zlKRQ-uEP%23g}VJp$J=9!TA6k;Yo^a^JKTv<2|o#yY+LhYUFtF{j|TOrQlw33X0#W z@)-H6C+SF3qGgy*td0zcHrK8cuOvP#jX(W5janM>+Axx=+3~s6G2Mxk^df2xR$ST5 za5D3GIBOIczL)@~rMK)cD{&PnmpbjR{8ZtBRQFWqsqX^z{pg18zzs4}NkGY;j);e~ zo{ryzopjAPKL*M92fqGp>aBsH4!`bh^e%VpnSDpuu+rMhO+Y$q?Co!lY^#jDmR*mW zs~N0iXbUqd}p1Rd119Yg+WpPhpzSK6upOeqf#)h&5IY)xznj}VL^Zk^# z)zs>1mSYWv;kpobx(*@z>7S&&iy5r-W;^A=o^{Gdc&c=T2@Z}QYnb0j637vR5P<#5 zX2T?=Ft9VIH~#V;oDIF}C^eQ&=pm>~BvH1WLhy}Hig*ri-+c5{8_-iDwGeDQTNZhn z?oXyEA5DcqJSzk2e7b#?ca)1+qR#79SpLn@^d}db^WripZHH!C=ZwB!tTSnmK#(v{XUmdvg!Jai9qr5$<2C-DLP{q0D!$VSe@iduS2J_;Yqxg z|1!?3Z1ly{l~Rd2W76q};LeS5GL$9VJ#b%adU6kV8sWTWynAJ$t7H88i>01DlrO-sVb&ABMwRNG!yGz1$ zm5vHPADiBW#6&wMUI5$TV~@XF6tLxD5G%3Ft7NBTIZVXOYTT>P=ak~U&Hd_R+suVj zph0bT7)^kM&6@RHSSs7_>E9#?6sccaUgNp^*jd|>h=)$^-sYqUv?EF*rv)MZ(3tr= z%|5t=q-4#7tImjGfdkgOI1G?Li)Jf-rT5{zsni0IAM36bdzE#8cM%rqii`#mXEo8E zC4;EkEVsx$(filc#``8XZKmM3vJE%veT$cfF((_|_(5o~DDdT}kH8R*h~bMy9wxHL@g)C^fTdI>3yEtfk}rvVKlpNijNg)^y_Mhs5N+X5U6 zVHT`|UzOw)8qGnf6{=auTgU_H192Kp2VlcltwJ2cV3Y}23xgu$#(f0kV%vw&b;PFt z5jnVC&;fu%ckN(p(yOkeb z6;^pJFJ8}wo6ka0eyVCIjm+_ZdC*A>%9WyX6@|VmL^3atW%be4MVV?cQJY{JrFIpu zplfOdT8FCAYlzF#EKSOgUF?c#wf~ZW(}r2>hHAc||B>92Ji=)^T0FE!o6aD&Z*>~I9cObp{{eBbQB<0)Rk3D*Xak#%9Khj+c^qaUUFr{6mJS7=5M$e?)zZqlAvTLy6SVk;eyE z-?xvO9nGS?fZc$b#}|Q4J%l3^xQW|ce;G*H|8Dwt7U+Sx8~SBLyU8}=dl=h@Hof$i zkO6CV%yt)W#Hbq#O7{=^rxnD#`d|E!3hl+X1#Pwq7c)BEj)~c{m2o8Z`>A2wGk0r? zZS=$1ZnjLC4xR#^PL9n2%i#i^R|(#q-=aRpo;`z=Feuv!$D_1^AdFYV_Rifl?Vfr# zXSYg}E^}#1l25bK{8FLp`S`(jmSqrTuFQ}0k@wKdaB9+b*7T(`e##=gn_<#sA|kTf zP%Oj!K*C+QCi(&m;bpCl20DfMAU6V5m{)U_=+xU)T|B;m@5GOkHUR>N+Msvvf|A6B z&U&^=+%$&HCn?=;9hfjG&?`OV_Q>Lfsd`j8Hz$UvrDP<5#V#(VhZBG;=EWhsUqBjp z*Mj+B5iBa#7h=7AglzYQ7jV?5e?6?I!lbzsiyJuglDraTJ;8C3sfaW0Bv4(aOUvS8 zIDR-(evuf(`;UaJEePYXq2gy{w5H5s`B_7@C!51sapET(l8m@t)`0HjR)hD? z#G;_6nSry1dU=qi)fhW`l$ppPe0KQ&9^%jXmaUP@9m02>_nWXZ$@8oTDbp7UA?7p% zf+>Xy6f&X5wc~4m$BZ2Olp5|@NcTTLGn>^FS=PU#x%Bil1LJmR%|#7-1%Ne5}tnXVL$iug?fA-fjdXr~9Ac z-BhY`aY$42-ExROes}E8=iOFLgxef+?9e;n7sOXQz6QoWmoK{z{8Ehu)rmARgzF(~Xfk7JSmd+sukVa{c5)tX4QyP>;5C(yv1gW7rl$4f`k`$%61K+*h?fX3UFF5P$ zz0Qtx*86)&EZU&H*5Z|jt8&lu0tE;)Pi$qo{5LPZ!AD;f^uf=4k(u0GGRM2IBCY9< z`@emm{wx~5gW+CGH?Mau+q&Zet;YZ^4)hu4YM&Ce4kwgB8MEEBbFWH725zH&2W=?7 zh^!kqnJkGK4f&CNd9M4amm;v?WDi`~66qfPxz@wO_p|iFX}&j9zC{Q>H#SkW7CJd( zD}HeMSkUVA^2!o%D?!yKUUj#G&I$a+#b;iPvnxC3uWPa^5|`ZfscFv6h5D<)7X*Py zKW)C#mW312y?oT!uH8!S!{Wv_FT7_|7}!==k4wpQtNY7qS^73nW>*}?-SRL46PCxA zCoAyIX4LYtf?d5$7kY;KNTbD~`RuF^k_R+j-|oatBe=Q0#NhWK@6ck;PW8TzTd|I5ttR-2z@(r&MsPdh$wbNCD} z$`r6HbT(si(BZmp;tqtrQ{qIE`drJ1xT7b*zPmI1&P;NOBAhhT=d{Od#vCe7#2vwY z@@{rJ4aeFk_ zjL9jUi)a{FgL|G3p{QaifM|cSGYf*_1TMDrnT zCC&9&>@PBcwGFd=-mXxEWGRwx$^4WYNqO<{kBjwbhHyn&&Mh(wi-(;T4wRS*bdO7zPo0FHO$fM({ zwr(^xNdj`$Z;|K&5+|1<_G4k^$yI3uI;u5oPA65wkgHl`hLs^F?6~^l+8rdtbamGF z8h`kc4oWVH^$s(E`;zUg=f_f#Ps@c~J16h+j&s=Mp57k{eZoMGgFR_T(@C zqG2DOdB919^=>zCJVl|!c0pdB=N?iPs4GO(a&WloJ6EPCU#u|s;v6H|)a+mz*{OC7 zv=>^btyb-lFUKrTtlG=<%s;7*y=p(Z=6vT-f5O)v2uG)UgV?BH)P!p~h92czmYLE| zmof`|G6$7O0+zMmo%agY9vmmPX>N3JoSxcnw{srR1jiYc1JsOsG2Euy_Q}OFx|PoF z%|HF?ucOCk>|2gr^z072`Xma3x(~=R&Kof2d_^+(#r}xvDzW{R*5Z|6hN5#(UXS%` z>v6h8E8hSkLdj!X4cVN0uv3*gDjx`u4}sK?c~&CMWwKjz7I{Apf^In+=Bf*zM&hMP zo|-jZdvH<@l6f|x_r5Dd_qWp))#lA`>jWS_$Gz>TVSjD2sB=>CHhEQD&L-(jKRYq7vS%E9^_db{)64Pe<#wG1f+8hf0nmR|H_h3HLt-v7`fyhIT zkyjC3&%6A}>)`9A;*OuaI?jp#?Mdk*iORtF!o^?)t!BImgWuPCP3grMnVcIV%MDuX zxmpk6N%AugJaqTX=uegEo{h?H^}{~p&h;~AhHN%$yEkKhm3?)B{_@=K2im#VuVsxv zBWIt3Yr^(3OBuJewI!B~oa%o%iZKw9!}5zM5NH!<0Rq z9vRbaKZOvw2l#)TvR(SR{jvc2C(vy59jL>yrRg~QGEtqenDF2?Do(44s#ZH0!m&k z-_n6_`5hf!(mGPZ$0g7-W)@l;C9KAhsQ^y2&5yj7xYMrPW>*)J)ZySJVjI>QGe!yVc3 z1Tw{Yw+ol;n(8-BTE~y)MSlxD_LMz9bMRO_dF(0k#j)!uJ@@Au;LF1=>(*hkY!<~4 zt8IA0SHbaU4M>_O?sHuK7T-6W6JSCSt=qv|1?o=ihw8`cQCv{HG|vv5(mLgz_Oi5= z%B6c$FasKD{{1)?Rrn~nC9WZq9gYWdOlr5gM)zS7swAQ!Z2wxNQaEtP; zxW!MZy6Nk0RO8GE)3IKs2rvzBC^S1E%d1MMg7{i<@0pI->W5$>&+iPib4kX z(YEXuwO)bmC!<%{m>2aI!oQwIsm|ljlTLIWb-`9bCdIrx0+T@f;wUfmhQBGDo6|u` z${Xkc57u;~AL>#4-s^rg+ksd)nAZ-~v+LDy-rTBxWLw$5YumOct-~;@t=hCRSbcb_ zk{s0#YsAA?L9{_xp(_^8WuC7Y7P>*piFTp4ilc>)IRVLlGaub|i?zC9&8POhkx6gB}+&e1>`hwX|@Jm0P`hL|FP`CMRn4BW*N5p z%~lQM^}9N@a{hUxNt3cB+!J6F>;$O5<&pW=Qjll|kPYZ~!y!PJty*oAOp#`N>6(QX;d57WAbTD&*&k>;c4uepZmL$XxLIGf3g+_g~m7 z4~$+!G>%EXv;EK~xk)#Fl&+TX#$@4ed|`c&ab{VJcf086YZY_jc3&%dUeI28NH)W7X{y4eF72fQDTCu$W+6GzfYH z=!Raj3Ujl3?AG7yyK?bU^W~Y})C3;wuJf9+y07k>BhYmE)u#KQh9?xB2~Z}IJ_QhW zN?0N*$8&`#sd9j+WP=|`BlrA?Fx6~CO$z&v)V-CF(b$z+<;|#CI{s9R9Ckd;hWEj% zo*B!a*1+qFsfu=swyTr(2V(&NdqSP`&zFQ&V&EB%1GTCGjZgPp+BYtRef8d(ubwM8 z)&G0PC!DML=rJJ*l8adADd_R3hSY3$6^7B;-8tVeOymJ4ZsLUvLbdchZ*(``7O!f{OOfJm3&q+v zgQ|c8{3Na!f&pMi!VyF4DzsA$=r&V06K4M)`?b(mXZ!WyEpg|0(B(aRB3XfcaPYfDu-kuXEnk^j@N}%1P>hoELp}R=TsV;I1tW!Xd#W zC$0`4m+Vn0Jq=fEBP^u>hZ-s>HAMsM0C2IUZ=H>MQBpzET{>&Nx56{FJvGsQkEbA8 z-8qYv2%1H)a-2QuIZT~1jf21%irxa9E2GbQ&#sTA)Mwtn<9;iA@ba7MF`+OifrMtC zb(svNuU(?s3=1r0hjZ-`m0Yo$n&Mz)WsXA~NBG|XXl)bJhGF4>_{Hf%eVtV%^}Ul% zabAaFn!Ee~%52a@XW4Ds8^Iqn?Id1$NKgC#H(jF!lLwR1(m20OT3WH~2Ccwd0$IWj z4RZ{RHII&e?g&?avx?anL%m70--`E5v&dmK8kDx;>}N5A6jq|hr#SG+if$1qVnU@u z6`AooD`h#^5+KD}5s19?bB}D{wgwhQplFZB{P|w4)Wd(97d1bGP6@5@IFcB4B$9DZ zg|cjkFmzmgriL9LEBe~T?*x5n_P0wIuW+?)i)){05OaaR8B1lycl0~eQojW3kIK=F z-MyD?aM2h|$T(C+oyq#ljyYT)l8`UpZt8S+phv(ul(}UVg{EvEF@;K8bhQj&w^>Xr zs%Qb-2e!6$^Ed@tpoSs{1vkE!YAHZogr);0_@5s7!LY`kvNv7g`vUIhQNo>r^KBAh!=gr{VZ=58JWT?|O7kF~{p|LprlEA0#74ZE8g9TzII3N=m7 zluYIKt`frg6HW4$)2BHi&L$NWVG0+Vmc_MJFDH@)j_j}LD`%InA`CI?>(d1#bpJ>g z{kSQ)ZzihTCbLX_6e?x%2RFy*4AS#OGWubtSFNG7UPBNR_>Tc?E8ZW)Q@Spvx&6pR z<5WX28TE6a5DCkN!9PBz4~D8!I=u)uJc|wX76iLQ7hkdO_K{Uknn?{1Nxdt|z0{%C zexVs5z(^FK8O_FN`)K_MFC}atn$G|_ zQLbI2U9T@O?KWGZe63MF?QC3Qw2LERmH~ZZ%CC2TQ;8F+7sI#5gO!Io1{c-G03}#7#Ck5px}H6>8Xwb!rnc9R~m@iZ+<=ey6O=YV`2= z%}5nv9%ndx?`*6l+Ti#0s-&|Le~%{;*A4X}^_dRA_W3*F$~nq_2|iP$6h(97&f zCQWqPV%zZ%)YcrE>8}XCgU57|_HYXt)E0To$sx`|1=4K9Vi@;0z;;-Vx&T;Ui8@ec zvIcfQhm{80V#ZVlf1_)9+f)!#D9nIo!l8pFlD~3WcmvhgcQlbT`;mwkM5K z1ti}@;~rvAd?lg#(c?%1s1Uqe06)UACFsIzo7XGdo9V~Vj72z58!Cs$s=-e!O^-+58P zD>k|BR;BRNXl!2{YB9TF)%f-Hs0CzchyKUHtMD%kk0#4Pow%odtl*BL*qU%5K1?RY z-hlky!3wsAhPLQ3?)O>xiv(+=9FHWzFr0srUrOd~UJgyp3c7k15Dgq)96LmzJ9XsN zG;Zpl#^rv6`xSgko1K(F_>=P>|E1>z6C@%)>srMkh_@Eq_?^rVU8`4lXk>qH0)A< zZ8?YQrIg|EEUD6^BSEB|k~rK^ia1)JJ{!NEGM z2vW55q!nz(N-GmyWsNjwcgq)Wn>?al?Vr%{X!H})_x4fo@0ReRv7j5$?++Qi=RSu+ z#81c*5yylF;{tP(DzpN*bPW_&A;{p0^%iKZ%R7SVo6V#iP=0P5B(dC@dG6MI=@#3b zCXLJ3YxVf}$Ra3sGEB}0PswY< zh?Czl|BJ;%4D&P{&&+JHIzCRs(~pAGlfGU9Cv$F8Bc6=+fR`S+BpdE#aPWJ@8)I zt}QF|8;qM{;hA*9MWt>rvCgEE!d4P-QZ+JicPt2~T$!N$vWRf=NXwJ3P3VvD`5Fsd zhUxhEikv=-rXBt&7)Eve3yT1j%)5|hluktm7*gohqz6ApIJ&8asbK;7Q!~)_R729J zb#Nk%)^%CWP*Gt<0G0J|YugBd=ZP!T^=}nV`S9J6AO%gwSaXo3DXoMX=o_3>9a^;Uulw7OR z$<Po|&MKl?U4>z%8EtV?e|8$DfjqOG`iro5W+z z);&mh{^I3FT?kLxDR}nmuKj-wX{!>p*?%GUVY^)_8PyWNL+}$kLTaJY8+JrzTm|tK zG9iWMp2@fR#WSB(l>MaS-k3pbDsD zm{vI}*~bGDX6N{^RAR1(Zh;Ov;I9%j9M$tLAb`qA)C|ecAWFc_h6i5*L@(^l@Yx!p zJp!34rGD2cR1k0{)vtky$QZcj@UAI~!?trN=)qC%;t<1DL}@k%J8V;&PJ6V{-+}Y1 zn{cP+q1(LWp|PGLu8*$-_+{3fzh^Yl2(oYe{USZo6mh60((u-!`FD^~%M+?U*XaJM zYev;NYRF?|ed?K~f)st}niOl#SvO)w4F*>&p77Q{fe1@#g5Ne~R3e!!3Ug$s4(G!w zGyTS*OFuG6@;KJYJLaO4*T~+;@qM{+%6az^6c*J*LIqZ>tcP&qJraizQ_ny&S!nT! z+(wNDW5VL!u-k+EmYFLA!&ISiK}d|o+*y&2XYZ5q#c2WXfuQGpIX3-@)`n3?{_tGB z+zhwBN_%eusc@}5m_!Xi8SZA3*hP}Bi_TpO?I_XhH(e95M~h*8TVyPSVrQ-&f-bx) z7N4<2W~U0%D-=re{FnjO0P^4-zR&2YA~vNe;TtONqO6!^z|PHu;|0cF3D|Pd88+Cv zLm(*Pw5?RUCJ2=gFE1M32W@j>j(`v7I>Y=H^XNMslGDd@gn_e31bPX32o>!D-pEUU z66X|;4dJVI*5{_K8@r(y71T1CiUotI_LcZn38oWT{bzVv`Ry;OKztVN%y7#`>;y)D zb_=5d)pin0U0|jng@$}D{WZ0w+w~`{T&yLW%sWa zhqDy=0GzG04jI51!Z?LQ28c!l>%bYV(P2@Q4HvKk1iRCt-KGrTp!w0kI;do%?_d$+ zCN=p)pQ|P!fp`e5uD5=A;$!CWf)&1>a8ubje_Tf_MT*zZWKRPOC>2Q_S;cUpA#jxh zyBICIS}A>e2OE9rvRIZ@w5W*271LJe4D4&b^@o7`Dx>X|Xpp&19S2GdMveehqj?ok{sAgim-$I-v}?k zNW4SSC}35%Tafaud?ZPd3kpc%OW7{M4CcyI^r zkdFw99!@f16!s>mRzS8qJ2^}s2D2HD$+6>Z%TXCbbm30N zK#>$FOhOQ5D0Uu$jv8giZha@{!eY!GE1vwegBKR8E6!f5iOEKLq8@X}uY+ zE2|b}gb`FgIDJtt<#kz0YQg$k2iFcgSqh@ah3M4F6o4O`#oztKh$>5g&zpSTRXA^H zYw1#aCe9+K-<5!{*5XAc}lXRt;e%ed6H7AZH2~w(1pBhDrfBkJ;XC9%c>9r!;=eAxS)!5uZGr> zkk+%UDJay+Kzkz!dR6IE9}9^8(HVIw`|6gMRl^}bxf=J>6JdFQCmG#u0Tb~J({s=3=!UpKKf}oi-3-%DW9^YolgO;}>f#&gm7NOc_5&f&2y#Et zHTJgcefQ_!1Nt^qARd$OZkN-W>YSTg`!62xbtgq#SmoPt_Rk$ER zl*z*g%9V>2U7pM5aLwrFmQ?vvEOzrKi5z<@w$pj_gt~wRNdI3(qkxpytEL}b*2vY8 zq~LO4mWE)LgXN^z&`ro(*IX-;O}SL;57X;YfvDqoNixdcXo0j<{ytuD`tB3XK#16XmaT<$`TjP&bJ zDzT#uz6t-ShLh{I8hFfi%?tvVrV)07{a&7799W~NqZWV-9@p7c08Ac0FeSd|qHj3Y z%kQIc6D%?K^LlSAk}3$kB}&VR$)SOF zdpS{wjDVExOM{tDZ1kfh3ikHLx*kn@f* z<57_HUZcq0!FH^!IQWZ|K9g#M+{2fq*~)|2iM#7K^8!QU`>*2<83!B)Epi z`M3I)k#wv>F}n}}>|{$7wz$%#)l#XssAsRsw!O9c2&qU%lYWp5avS^#x{df21$6im z1QQLI{11C}s++v=SbK|I579ks2!_?Itt9gWzvtbFsg}vOOiLt<2C@P_IFhN3Ll1qG zgj*n3yh6N02LiGb4JxT3>Qc4`;V-V*i8Z3z-H8}?+Y&tbF? z0k|s2ND{FXp)t4&s9GUA_2nyB?p)LR57=M7l&vA-V$XxhQN?}lEDN<-t|obnqUr_Q z6+*uwfWn2vy2vz`oYyB#nYkbxFx|n2)^VgPc<50 zE4_{I8~po}cOs}vECru*Ver<^qj#yk6>*2un<7cN*9q?p|+mtWk6i!^z zIuztzV)L8)d;K|pWh*R92h*yJPNwA$`tzwjx#E-KYFA%wUbQjUD9-1))p8L}D{Xe*t zC{NhZt(eWtDf*b2PbRSMx{05_#J@n1W z{*xKZ)?v#Eek*gT0SSxr)O=k4Do>kG!Vb5mZAW#*6%VCG)}$7+>eLh@ zW!p5#J`~jSV_gdI8O>O^ zNpf+T^Imyx=@L`;G}S*!H3L*j6b%bB_76IiECT*|Bm;V@kGYv6-+zMyETwjk)`LMm zLnA=&2j;i-8^`{MNfuu2x>CJgn&tbTJ#!vfR`d^!U;;zjViQdU128Gt4pfMI0=X`Y zEe8lzYz(M*vEb<+CCXuBY@%rM{VVVKc~|3d(CG+cm(L+b1e7x$bs2a`PI~Yhyfve> z@cS!O=iHO@*9YCIEOq?JS$UD#N3SFVH1u3qZrLWnymc9=qhucv7Wn+yGsV*jFR?$Yj@yG2s;X1RlM`2H zZN@CZ*&OoAqmY9+sl+WL0vYrweb{v9f-m>j4cv1?_=pg{@jeNo@I}3n@{Va-qU9{tTF+ziPa+sZjWI}H40eh7`p(-{ zH#QbovBFL5nI23tTY6qvbdSq5t?V%6`f`-nA4Ba&r{U=Em||(BJgs!B6X`i;G(&ONaWG4o{X-_& z!Un+N)memTieSx`y8IzrzytMkN1I}v(`w9sK)Eiz1WZT6@gutATnFRc7ka`jJjI(z zq{9r_lWb_PN#1dOx$?2sU}x}c&zICS(X^6?3mueIFE;5H_=XA3TuWQ~#n&HWG3rp) zf*Izlam6|MyT!$p0_+=K0Omz&Q~7?c&ANk2?NB`L$5- zDKlCR1u-OQA$u*O-iuU|-)uU@%gsRMslYGm(lWO%jV`wt_HF`h&4MBtrbsPwb$G^V z-232te$Vk@zo?|8mZ@Rcy*JCZ4mQYRubqb7#Fhg3AQ@%?J72v%*kTAjl~{e*P5s*5 zv_$;IA(&feTviM?`EGRvWH=(DD0?i7Lkhfk&3@=hfOb`;_>7c`|Q1@)n~e9 zgKCdz)EJ5l<@>%U`4__XOJ5=Y(~_mlQF9-*@{r@e>i=y}tDfHmoZ$;7uC%m>Z?J1y zbUk8Dr+Th%pIcE6`z5CyR@jU;BI#gC>+f^98nQDguo1ro&Eg-Pi~}xHT5Qq_zbf6R z6=H7ZOXaKD&*Aq+l)0)u#HdFE`L}dGZ@fLbAzTjRv)6bqdW2RNN%JeCe}Tbs%%pgT z$x`65Pfk~HV57ooW!F>H<`xO7D)0L@vOI57Q0LPhKbGPc62!Z&eS#J(f6rW>Cbur2 zd$xPj_P?@TQYmMO-xnK~)WaT@)E@t;H0rB*%N^hU<4LF^h9s1PWNg6~f4{bSU$^}7 z`8cj4IVhJq<~V)Ds{#}~<;v7z$lT_bDwobeTbg;yz^>5`bEPktON!~BxE@d(5At6Q z5{rL@y17-WLtZ>V46g|#$yC8J&FP;b*tRSoZd%mjAF+xwRQQ%P{{im9;Ts8BY!9oT~{1FX8Oe`iVGvKh}9}V=F&jEoAUCzm=yB$H@c}2Wa>R3fAgfg zp&le8!df*Yc>|g{pM{7p@KR4$W?PM6-V^@n3K9~+30Q+9>*Wrw9NW;%*pbf@1M zn&pM3%;R{)YUREb4a3MJnk{l4LuFcLw2~4W~avne*818>jW2AIZ>ik zBN;C}L@+(!*Ob{-Tdz7kg(?TIL2^YRrd@)dF@5#lKq`=afaJ>auRCneEhM)e!m8+& zL#NlDWQgl{oZI7Gg$C`(DWlXR($BSXuTA0CWs9Cri-l;x1%}P@_f)fuLASW5onL|> z_f9RGjBjb_%={pjw^y&AYk>N@x--jLy*j4kKoC4vT2|-ECbjg~(0puFVu1Z&&N(5x zho_vYZV@{Dw;7abyIQ2Q4R`R%ytw;eBMnXtY^)&#S~AfCk=pjH;L3|{bbW0mgmZdi z({Fs_>aY`=c7>WcrfbFfk5TBK<6e;0p0bNI+)wr>U%L;#%hUdj!4I8@qD*fxuYDF#$@H_7u-SMq!zLIg_iHm_&M>b+F z+!N6r12GDBjDB9akg{jnTE4~eoN~5;5huCRYUV6RbMX58rkzR@sCqElQ)!TEv;KXl z+-Y(2r>z#+ShW6h>mPzS!Cm+cIG76VlH>%dS80*Ak{(3uuJ%Zl@4H z98Z+|MJoX(zvCTb{3f#2^(HQ(xWS!VUEzYc*|R>(tUkhCZKfeKZdqV~xTx`qv#QCb z|1VdsWMWCiPwzWSpNIFl-6%<#Yn9ye-F`n}oA+-92=CYJM@cd+2|co;-hi|b8}mEH z9-D~lo4(%X(PsCRNT;hTSSywZ;Dm;qA0Q{BuV??KCbJBE)@Rq#BZmT6dC|YK(?`H* z$1Irv%Dn;An4#_Gs}NmMQ?8}B*)o37S&flz-5VAU4?7`s(~c|$pruyb3zKTrDkX<1 zr=46g=;#^RjG0tZh(#wY(*kn~1KwsnRZt0{{3vJ@LwiJcdn-XpVRTFNS;tigVL%JD zMA%cddu0fyG~K2Drcqxv!2XQXpk({IQute&AOUHT242)#1fb=g7CiE^t0w)z91+q5 z2~EI)*_^?7$$atkUh*e>@^);#_kO>~qN4S;mTbMSR;Hw(y@sMK7=s=5e$0W6Rf22P z*5ze}v?K~I*Pq3~yQa=<^13Ux!esZNitMey#R@7tp+?#~qXDE#s4|hq^ao3X&x^qp z&#zZT-@H~ELzy4YNO$8XTd~TI3mUAj7P$Gl>wj5xMwCr!z!dHARjVeZPzRbthIC@e zM=X6d0Ywyopzyw!hJ)IDDxYQf+-{Us8Db%|=d}$?l!FnG=ee^{a4iRa<;^-=IYett zaC`Je5*cmziTecp>_sSfr}Jghp~f2McIzaE6TRKl366I zERy`d?;a{X|6|ddm$qR|{`{9NbqLy`1V*0Mn?Gdm=F}u<6mM?kz@xq}4P_oZ<8e1fM=P4)hIa zY>^H1+Nw#V5a-2&z)3E={n!hWfiH*it&bq&tgd(sOiWWRyMMu|%I{;ov^7P9N3iGcDsTlvf3BR)iL%0qcSg0XJa@hnjnk$=BlTaubyCB+9Xc*7 z!DpA%pdMgu%oYbc*@ZXvU3GCKHRr>krBeHf?2Cf&EWX38nq{x-NP?DwSq3A#TIg79 zCmik(xWq7<61il;ZHfKW_f|}9?x_8%K0yDvQ(aSOqx4kti=c#%L=fFYP|tY!xXE<` z9@dr&tC(ZD$Q@NslC{ER>Wo_<3J3CT9^J#Cx5-P}nyB>Dl}wGsE8no5pG+3EO$I?< z7CY!MtU1w(8)*KL76%xN+gXwW?@|@sq-~@fLpoU(T~}|q>Z9*qU(ALIJq2wt35b>Q ziQa*_6)t8SrU|U|AisebZMXq>hqZ?aii^Y>2AA!CfnZTIABs>Ou59Jk4{Hw$QQIPq~v(bnV- z3ZyBk=2_VJjRKgBa|3jG(?7HwXbLpa3tXodJ-l6gKMvyLSjTH02N||OoAow@CHRhx zqf+}E>)%wqBJ^BHyIgKK^M@*tegSZ8^jm$6@|v1GAS%)yh`>eL!d|4YQutPOKrrp7 zT^w8yd>XZ>{k6{X@q0d7Z@7N7F?@n&4L=#Suon}mTSud0v(Ju%4l5)FRQM9bB0r+< zV|NN&0qqrR7KDa&ufrPz8$PD9$Ag9v7Z$c2FeL&TQcBqJ5Fs#8j1zzAUBY&=MQB#; zjomnXHaX(P(6aTa?B$O8*GH7iOmR;L&WLBkx~$p8VX30JC_HigQ-C(A%ga*Zyz^2Vo)34gbvaX(Q?3dJTKXW!p<`+7XUnl;x-B93$Uo7oNA;lu1 zy(T(|$t>4~oYW0p@)xqLHb-eZs^JdZT8_oN= zZY9CGk*#V6ig);&w;O^Juy?`Ih%0~c@mKi!e4{it*m!?ca{d{zC`j$g8M$lMqR9CA8JfC zV^FS`+SEJW+LE<@1{Z(6&hwt+!noyboD6=$zHFV({UoXfkg(vZioAF8eat9%;(s#%K*^hjXIqx|z7PFrev!jk-P;aZ49x&Rj7RkLH z?@6+5@NlG_9IKj`w;yZ$X@Vae$d0Y1~Flkn*%9+pzrdMoqWZx z?UI3_&+h?h*ha5hwqV(xB4ctaVjfmyPPDtE7Sh1(=)X7i`g7OmLMw7Ky?(yXi!t-t}ig2iO zqljYMEJS?x_GX>uC-xvwf%rg~+VYepJbB zTbfu|+4S7A&@pAhZ~0_y%39GZ4ev~pk2>!^{rWTabkib6p@bt0kkI)P6^VDvKOvSq z@AKVj4f#KKOj)^>)$OI4wwc3@y{Qbo^~{0Qkmv9^)y1se*QM!u*(}v^%{TAxAJEP( z_W(;kw7;aVjdMId!im~J-s*fGWTmeAHuENH%kjllRL`6=~~@79e(L7R5;-01)~!F)R& zL9jd8>Z6K8^{y7>{cPgWd&Mq5@y$3!^rxfLg<5BX7DC{kzk-9t@heG^rOfpMbeW1N zPkx|epDYzZYq@(Ik!~lfq8Cf?ARZDhj{pIUxG8GfA-Z+W{C8oL4~NUNXH}*)HHw_6 ze3ZJBGaQJ^H;0)R9ksDemDSH*WqqT`DeHZcq3k`^*YW-BiK?HD1$KJz7XO<4RC7-J zJOAIrIwNCo9Rl&&lHn~&G#1-~9zgGrFf+}5sNkc>+wt_tSuJMd$EyppJ${`RW`C}V zhbpghYo3V-IuoP-tNk5j?auJhcjpYaBftUP?P9YVn zM5R!ul`t9KTbyPHuI#~?A;C=F#ge2?poB5MXh@`UQ%tO>d&ado7_Wew20*1PGKO() z&<8j>SYq;4vev|_wDD1_%9_;r1CKXOZ3~{py)}ud+0v&M&N+@0U0cb2YKVtQajH&1W;J#ca8ZAKF7QWvZ}Ds7tjIpKfIeGo_Yv}y-8|IA zXqw@kJj|8KRn+RSCDSpwq`+0OSTpS3~ zt0C;Iunza7ms0t&lMa1*OfFf#o?mo)@E1@^0|XQR000O8kd|6gl#H4>v&sSh9uorq zK>z>%O<`_zVQgPiWpi|MUqeGvFHmi1V_#`qIJV-DQiA9|T9^?nwSw&J5s%C=Z0CEFoAtEmV1yvV^`eXzTxkq-8(sqV|BB1*H zftFUGJcojMEtVD&QS&f3?nLZRpUb#aEa^DoV?TQ;?Z}X$PRba8d;v1#vgN2lO^w;C ztc~SZ=f!4eBjFj|(?%c#y+?_Bucah*@Qyi07V)4{s`dJZclYbu&5y|n?>x6NfwcA8 z2Em2S+^%`;$7C9saD+Lif4+o~g<*;QMIik@2&8O;4clA}`a+XrQ%Uw0;?Uh351u@! z)pY))ub$viXx{^sU!kZ!-A+CVT1>of|5&`)FCzB8K;>!@cslRO6^N71a&tS8P;dyKLF{UG7% zCK>bnwvfS9O0BKkwCTD{ZCx+({L@c=whyYTun<(YZbxp`_m`-Wv1P*ltWqhLV>p1V z`s$ksA(PHmYQJ>(1A^i$1Af;-P#AhR0{Zg#OkT~?u|?X;eICn8u#nbuT^!SMRQICG zcXY%bzPHDFSA^r} zrdwyUx|YpltNmY#1p&v>UzyTyeZ)?7JwVQ=V+Ev5taIi*N`27yAX;F31QEKF>p@m2 zmV%Qvhd&H*3M)K2d&-2WeBy%V9n6;aMPI|IL-l(%u2&RPmr3FTO{3D%<*~b1g6XX_ z&QKCtWf_bc1o*a}=xdsM0&`pGBhn+AOKdD9YCGRdjYd%>?9v*&nHV^4g~g&&RHJaz zRon^osq7{5vG}CuOu4Vx;*i9dO5|8?^F4Hh$=Z<`sfNVx-9!vGs!3dzLmzMr8ds?MV}Qro9-K+ng4y-*vnz9hR+^5gV0rm8QJUI zw9sS2oZ-u5399lxYaD)4dEw8Frq_%XqAnPaThi94hkZDOS4w7`YN<$hV7 ze6bVdmftkemRt}CERpQ{QS%p(a&U&muMm-r7*$i1%~+ytM1dMRp=H`!){Bx7vR9*k zSfn%TmRHlsiDkaKR6v+!m zo`fwO%V?;0E^~vTfgXf>QeLO4aqh7*PWzU+1c>+QD*j@vg~PnRWz&(;H_g1|e>SBDvS?sueudJwC<8&mG| z;@m=ITLyxrV&vP=?MHtU>$#lWaPkP%HI z=aweoI@~WKh?Av@q~i;sDM1=S=4OY=Pc@pnJ{L<@CUK9^+;jsB{Y+yIqHk)3S&oN*!p-XXNU3> zDkT6n%e7Tu65};&xjD(e0l7WVboENd!TRJux=9(y0?ny;nVeMbk*x;YRIi}XWn4fi zWvy~_9w^9m+BeIcwLw<187Fk=RIV0*t^r`9hT)NxK{|O?&mWSm-j&v9UEV+JX!}Ta zpBWLMpau&3xbxpeNeyKfq!D#OujL04b>Di+zU;?o_?TSC{>EHDbWvF*a{IZwFqcBXhvAR*ycp5$i(>J3yRc zL=9U!@)GbWvCk5pISTd!s>#XJD_1J9102jnFAOOPWK&UVe1d4L`0J`|4eLrPh>BgQ zHrULIUy8sQiD&i4wwaXO-@2&8*nHo8@s4Q>Kt7FWE*l64s(L&G%3@-5${} z$IJ0+1!)A0QZQ|O<4DYvMJ*O*^J#>C!%4hk8(netI`L_wi6g9pGlhu0DAUtjWdp3@ z?kZok)#C-^W$YKN)ifp$32r&&oQ9!(gIN-%gGP(>NM;|%E@?{sLTqFwFjtSIBSXQs z;EB4m|I6C5x*vndRdb=A9)odA>V1N13Qz;L(*U3ihrU(6AcdO#*|z%MbQIWkmei9H zgwIR$qsqykNhUSn>={+Zcpcdkg1*rf z&#Sb?v*MArQyY~fuDZ5G7coiyLFJ}GsO?T2p&w1``=JSzX%N^PW+06osU(LNlrAN} z6yPCtqgE}67m`+MRh}q8RjJWVv8LDlfdeDdAPj_G{l1q%xvbyO#f}`@kRAmO70_p- z$o%)IWucAtE61kl5#+#;pY}A8$N1>~YCrONFBIkfdh1E^5clc<*|$4iPnwrL6WWgc z-oIOx@}8vgq3t@1%NA0_dgi90!aV3c)G`n1bxy~py&+|qJ{ly)bdBjygBGKql2$t* z?C_Y4FYlPI2O!f;i{Vuq;9~0j#Muq$f(g=SY-Invqb`$I12?qthrYT=Tpqun0`N%3 zKJ`ua88?b$!Y^p;5gkCAv{-rd0^i1ObGUD^Ux&w@mpW9_;>8_-gvmc93@Re6rc1Ex z8CQhk7LcRr088G}=`D%RE~Xw80kq>$4b{~?OHTiMvDSB3U*x&9kg}#61s7V8^0M@Y zQbZVpd@)MicrWl7jT@bSrffWbWGp+2=(JB_#hOkU1ZrKBGD#}}fQzd>RT2)#6~aev zmh^7HL9m!)IIDiwU$oR^q5^22(ga3PP@D>njnNTh=^#w0$tBm7M2unaq*k?}Tz~9f z4qTq)=fZMkib$PJ5HTL+?fFLi^`Tbw1W1U_Edx1ybZ7c+u~P8?i(W9&OV3Yw)tbc<)|bN zS80RHH+oEZA@5wN9bH3;%bkiflv0M|7!q-jhFDLw)yr%OlT{~G>U*Q6F5tGq!bY_s zkW$k7bxcG?ysqPCK@KCaWr6ua!z@)ZV_NMTDqqcp@s#@H?aHO?5Y)VLNt3pt87Sbm znUec}2C3Ox*%pue+lhd}E2|VZ`r=P5!f$Z+|CG*;~5>Dsi%%WQfj=xHf3GaPE z6IK{Q+TPwDSPxR>yXWeL(Z-D+m{Vif#x2m-+4oEo3+>iT1fO6oWJ{A`t71N({sF5C zZ~+wg6~vj%_81*UU_wEK_T?_lri3rPpR1p!FN^ho^}4EVCM6a0v5zAquIct0$$L5Y z?NbBSALbzkpT*CFPwkTscl^uK(&SCo13mi+#Ea}jX!OWYVnIGm>@=o?d2uQ*5Y?-t zemDZyeOO~?iMc4Gcp|x2Wl>61YLkpdkyi|RH=DEs&I#J{=keG@J7o@UImugK~>jU#T$A+haFChXFKx! z%d?E^rcQ$Q3AVYQp`SZm8^TPVfgw4zW~|2qW2RCK_!s})Aodg^qpMYy^_te^SMLxN zM+S@M*|i$Eq@4~dLIt2U9P1w?T;1gqAi^|@*U$R#7W|D`gEidQCtApz83Qk^9+jF z9+&>KwX^oVG-GE*U!5QV{xX6Qva}UdQMwHFcY`mfoJx$v`b@zn-^UV^kjrVb0Py-q zodjAiv8qzouDtTcoDN@o#f~kARwmTQgW--w+t|GX6foNfaBrEhyBj-!s&|P51?h52 zeK%<2a^tkjcDQ_Btd%g?M7BOlV3^DJx-?238bd?n^L(S>blv^HB?YX?VkGyq@Y1&? zLEk@#6ZHCWdm2@$c;S+;s6JTFfhHtayppD=RsAi3GBG1~^IA#@S!%Q70DeJ1 zxb7US7pbOYLNAh$PLIKN0VR0X3EpjvB?pdkSa0$|-W)6x~+zw8rIZ0uEG7 zVzUf&ZE?pkFc*?+Vq$gyZp(66&ZA63R_h?i_mAV{zvXN!;1K41y=0~ho>1ylDN)%v z>m+kW4yHyck{?j9d{%O?e7KaZxcmrujIs_ySOsPCgX;d91E!05`dh2A1I zxF2kTL|`M(rU$AP4WLtaRINnWE@lS?bRa<_TCAJok{bSggz{9^cyW!PrPO33Nm#F= z&f8prhP|zFRqu9p!;4%0?mPcymTKtd?w5tg?nk~7V}#O$nl-O=Upn;teX6id4$9hh z$B|?DwTvOdDJHsQPJeCVnF!I+A*mmK8^GO;$kw+f@*Pl-cUmgE_rg>9NMBc` z#z_#Vh+%e@a_g-4x7C&a$`OVtlO)^(+7+~nMCvz6-zm7t?*oht+2N))SwUAI3f?%6 zLA)CLVgXQQTqSKF9||WoQ%8YIi1yAts1R8lsAsPG(Lsy@)tUNNa;^FiHL^u0Qkk(O zr<+;k*Z5FMhtAEEh>(W2GdVQ>(C!nuDJ+2`2;|B@%F#6!NViSQ)lT5iZH29Plc`(z zDPJ1&d*bKG6wa5L2Z>Q;kEfsVv-SoMk=99%BknMuA+m{{mjg!tU=Rc%;6sYoG<%7sJxLep-&)ihLJ zPwbfI2=t;UbhWmsVv%OpsgcU--E?WEQxDz)EF_xPl>zK2)Rakj1gKC@@IASVb18`C zSVdxHedLO@OEfIZu?W|hkN}h&Wae+2G&et;x{tl?*^{gXyzJ0qM85rl-8_3bfPe*M zYkfD?fQ1qI`!BD)lPyi$72&W=oSKFXlZes?%QuOPI-&@i+^*Pyo>E!xcZooVRf8(aqnCFS4D7u}SlXMkRp| z+sG7hn}Fv$w`b1X=;c*5M9CRhPDN$^SUq6N{!?>9Om5^P2qaq4*K$oR&nUZf;6yfp zV@ZlJZgyzAj{&v;P}dnR-UN!VrV_drP`x>Id8-fvO()nYjgIJ2wIrc9U}0|lA<1aC zI3P2t?M+QQSK)gKZQ4xbh`m#J3*!@PI;qd%^#U$wv&(weZ&VJw^U5`MM+@*PM&ooEVetu2`{&#&gQQdQ4fr|EPN@9;OPdNdmQ z=Q{;|@A7LX14vA8P*9h_0;qqB3MGm6GCTi{3e~)OC)9N~!I$@Wl;zo~nx56+8_t~ygoSRMhGUE1YDYHi?|bl= zTU8RrA;p_}jxx2iJ+qNcKri5Dwt^;-g8~bwB|c4Qax~;@NiBge<#K-Z5xvE*@1d|b zE!0fOU#Vf8)SKQD)vR_YEvfF{r1Z!)!cU<`o$A%u5=p;N;bVw1>fIaddCaEJ$05r| z-akO8jwIo!s5hgNz0y1idShwSA96S9iKA^+aB%<>OVfI292yQbr!uBwW}{?Mo!p?r zi|^sIDxlhchMBgLNf_#oG_CJWzRC6R1{Roal*TLBWz0WwTYIFY5v* zZa&179yVUH)F7AGBL6ha_6tox6dGACi9kjr3A&YD7VAr?_}>q^k`6}3CYfK`&!x+_EZ~5+^N*l6ndB(tn$jhG?=#r?aH=Vb z{J0jLEUA8s&%($!A?c2xepQlWis(nepR?0CfK$j%5D|-uHly#ZGx}m%z*7E4RM9XA zz|7KOI$^32CxbC_3P^AI4LKtqQXUOttjhL)33yAZ9b� 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⋙d7n62&%{3p{>HJ=!2XZ#?v&PkZ=Mx_ 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

    7};3I`x3Hs8P5kRo&*n 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 z zG0hlfVzAi~6=0Nz2E^2~NY&SI&kr{q-8L$S_Cwg?yL4eIJt@P4bYQYcZr08A=z1&I zt2?GmSSPQ=?b9qt>AqICKW!kE{$ZPg&2bc^+_vy4>U?9BQy9307iXZ)(g&Q~Gx0`) z-VaRp0+X<0RR-*433r;XGp1k{1ltQp=qC01x;_l&jDk;Ic^~d53HW(c*g>5IzRBQl zFpAh>e|WG7Gh}UVsxGjpPntSgKi)np4XKa{cl4RAOvf)9zlmcXzRc8&{PoK>-{zV88?axa_@2ZZd>X` zvsELchGc!tfVOM_FolH?SgJcDk-liCFW#VFJ8(Ov7X)08Ces}G{6m@| z=<1A@Ocgq=t`ruBf(Zb{nR_^o&#)LxxkN5a5cZk0`;Hd|x(S_xW_!aHsWvAtEma2X z+|aL@lp*Xg?g<`%{kgFS-os&}p%hAXH(B}N+e&pLPs3YJi=}rDVZI^=Q}*cc1D|Wm zOpGjpj_3`94{A8HCUg$oQkV@Bpzh!+h2^N#hOZXB6!yB-7a_XzJ)nBoG zKVSQ0{^i5ObKvT{;fRQSNYB$Hz_!VmlrAi%4m2?Zb6VXzoGpTkgjd-UZE=| z>iU(4G&Fqg*_p;P=f(R7bY^Cy@DjNM97AWX;dT{lY~P4{A8C)g(A?$$=7#>QNT{1=0BHpU1%x4ZR6fTy`dC^1Wo<&K$~>(kpO98-~w~yeXO~Q*R;r`P^q? z)FMnMC6`pH+;kdINgG3~wf)hNV1o6i@z9eX@zU}WCmw6u%X~5Lq$NRhUasB_M_yht z%L|>KdJBs~5EnrBBUL7`cV^<_yrI%WS(eM*h|LE4E5*`RksihecAO6k2o;HQY(+^- zf-vtmRM%&P4Fy)#@UIc?NC>>_;z)zW1(7k-dovS5D{439OIh(7jExNzTSl!BwlBBT zpKAsW-;{<#8%rTRS)@d_Li&@y=YZ>7%XAc9ei;PWG)7=C=7N`RR3@$!d7~R(J2DZE z!dXd&WuqR#iS!fZiQ^-il3fs?RwfDfN>!V`?oiDVGmUBf&g(kuCpU0Gx`!P&&_hKJ zidb5R3zM?VT5vQXG$f8umH+a3HWS>t^U;x}<}un&3f9h4E68LphAGSD4=P&YF|1sj zhQfUA-P1Rz8utm;nDTbkh=K7%tg7^G$aEpu?n1xw2I^G~dL27OWNq*G87~?qo^ByHa_f5#pdSqU`qa>RBa*{%8e2JPT;+mMqgc5l(R3;t?^q;RpdA2LwEryL2T*a4&E`hJ=4ud zmY<%r);LlK8+exsx)TpYW`fWghhhYK4~ku2%^Y_a#H-wRpi0atS)8$Oj6x)a$1tll zw;DZIvnq;fTfPZ5EmI~W7fea(iWS< zJ34PXWnF3JUW7-9J^<#>La5TfbwDp;g*)?bsY!01`&#c-R;^fS2C+6DV82Y9(YI`O zOTFJdEa|yj<;cD7O0c9KUU(tjeG(Cxpe0Nxsc$yPFt7VEV!_!~1M?a1b@{*qNrc7O zdm*8_M-!wIhT9fh11p~)_HRP)*>sD5XpQeEq3T};)p&d46nRfFhVv%Csf#|f1=C6W zW%+gYX!+F!Gld&8;>-R#NBa1uJ@~y-H~t7R)=2T|U)atB-!5{M%N}kT#yd+lq8@q% zQd^_|3PH6kKb?IkZMm!vCfu*SQUMZ5?n$)Ihk&^w*012uZjhO6dkG-WQyZdyU}S07 zY?MKdnZG3{VUG-f;@a8_B_Q2qF7ph?Wm#pV&i_-yQslfuqWkXAR(f|k^ z2uB^x%eWDDb|2nxdn-Y3mvSLjNouQGlG|tVPFx3Xi$x{ZOF-~7x=Y2E6SNntiaa-r zGR0XC(Z;dj$V`d(q(Ky2ZrQ?k9zq=!zJ8@{qRB-w^Y!)Do3h`rf{)i=xT!~308c=$ zzsp+x_?;)V_oqsc5#T)@*w!k0333>MTHHn78IoqKDOMb*UjDjh#m~F_X#~5^OA2ou zc0alIcCsss3`)dH?t`FuTbzREGn*3qpNlHYUi+x7;N?|sm3q6^CN+HR>Kvsh zrHt~M<3)>&^PRPX~)4K8;wHcG4K4ZdfzpbRFWK*qK6GP4~w$EzY-BeGs}} z5LdN?_JXcz5+;g>h0KT1iqh__lOXf8-FIr%@En@OCBFGUsH}5Kac3BPg;+Ei=~hFw@0$40xk#mWFk9$fy(8tx7zGB2o44H#7jg-cbx*uk7!SKO`6*hr zb1l9i@H(cwBA)XGkdGZ07tyZIf(lO~r?ic#t!#1FIFe7>4+U?rcrb*VbuW3tW~{Nj z*z1|n&(-R$Nv@>7^>kCWBAODNr8}pzbSvgO7^7VD=9*e2&U1}9xrtsAS+Ef*W9+E= zl%?l-;mUD=w;q8(t<`;!DPdRH2o+0>ef}B!38eu8mrU2uR{;+N+Dg)_3jl)qYx-^@ z>)MV&8}Ym9dZQIwc{Em$a?CIQcc~~vI6EspHJTq}k+SXjsHZM@Ppd#KTSUB&O)z+K z{SD(2Nx;YlJmzzvy?YPs=UERA*a;NiJtf3dMd`ShXNJUKw01@7U{|0+)HCcgoqAd! zHSn|1N6#i(9x=?32lLoIAoUz>uDUeVK~@%ms@0?!^DEXBj#%rwth(Q#YFdqSHnzyr z=g{w8c4kZxLs%0AM4v1f7_*G49ayv#xafU#DYCFNYEH?i32d0SRDryA{zmt}$c6i+ zT${%FERPjKGECe6b!@`P8?@*0LT?qZ6y7inwThhTH?FoaW4-bTSfiNVbgb`JeMuoW z_M~2KYtg<(GDS6rOqV=%&bKHU;H1+CVc%ysNA|W@+y%EkBGN<;isRkL>*jQz&TCOH zM9YmfGKA>(Lf8~;XIJj_>pn1U9^2LemL{7jcIi_-mdlw8IShQwrEW|mh0nm5PsN;zVn z01T!MH$Tc+M#1))1K~1D;%3hmMR(M%O-ck0l%;KU`MES%QQOi{hbJIkfdRz9NL$bv zO~K&3AS5`lPiwd>!nE4(VlWw7?JvRy$BWR@Bubpb8gWX`ymhx!%oP!$)VO2-J7;sbb-tinEI;R zp+Snd>0kgpAGp^+qFzXUVRRBx4;7QX0By{b?pdofPz@)*uT@dNXUGNa`Xu)p#R?1B z2}I@*_9@|D4x&l%~Qxh)}ldkjM zp+ds<@1;{hk=0H4@j}Q=8yFp}Z>A0C0e25c_2AF;Erf1L_iP?`!J)j@g*4oN^yw-X ze~kRM2Cs>nXX%?h_xCc}86*+E-$#CUs@C9sAT;r z|EvHH4@=)~RES4=z2C^x0#|>uw|XUYi}cH3JAi@q*bFdLLZ&E#&uFq zTq-0fD_yT^4y&RuGrP0m=`h9d$z(-j{E0UCP`C0eqIiK`@Wr5-2@xyCgpi^KmZ0jZ z`+=0#`kanZbjK>rVC|}o*ue_#!tPoaiag|tou26mE56+aO_4R7a zhATp?R$ny%Uh?#Ut*LdD16-pM(AMqwZ1Ios-U;ZO2kW`eEOhj(d}VcsA;X5}LD<^eg>+DiVZv<@g(vyO z(a|3?WOBB4RIbjRyIiqg&E^^JMNZ&A&R)5rDL3$Vp`u<#Y>=@-%_+I{>gqof9}ZxX zBFQV;LoEgQFio$o!igLx6?nbMmT6aL0FeDo{S_< zPA-M?5kE;Xl%C6dzVa|Fo>D4Ix6R#3ZR)3Ai*GFIy%sn@pL@baC*-Z~96eXaG9xpi z#NDpg#)emBuLIs;L#z@_2fh2n-iS~Ic@8rg)BfdyeD_=aV$;hInx&JX>3$0<`gZ5T zw(%ofwT&Q`*SU_md+A{BDeD3EgVQ!=qrlZdW1?BNg5PZ_cGqxlx=43$oXHB980}ol zX=N1Me-YEnys5~k&>@7+f9@=NT50JvWV8$vrAVozb2rWDa?(|uWdAJJ4v1E`X@b6? z{Y}{CYRMcu-0I^~_w!Ghtqhnw88+$Rqcn>z{_;cY#gC8bBeE4HxVU72-Af$NDLUNt zBcm&@J5@`)j>MPDb9mtQRz?}&SBCcqi@OxBgEd9z2uq9N0nc&6Zf&Xi19*=WoGBEu zoa60@-JsH)iz(+q&WB}fn&Rw+hm-oB@p5P{w&s^?t9_`Rh$|*pmFQ| zSnZVzj!2>48L#sjdyuN4RQa!SRD+SNj7oouJ~E(t2U3BVH4{!tjLHnJo71lbmub^+ zUb7d_kyK}{wrS!v{SuLVL5}39{|}#K^2uShx_!~RXK_m__L~p7P(jjg8#gMRP8ATs zOPYNAo}0Vft~FY6cSP<2=%&wUND2A4Ce7;g!dT>nC$2_a#k7$zz^#A5T}BV(-^EJgzub$N>~G3-rM{xI^xZ zxIgbu;r@eD&0?RRut4NV8&TB({dbaod>_{DN)r?tg4O%U^(H@R*_K=I>;cp5OJS{7 z$Is^8UGL1WvgXAW#BsR!Kkio7vdIrUF{b6FCidZ+VnOJd;fB;+Sa=xg#SbYAfsgc0 zGB=Z3D~5-TiA@hI@cj&2l@7ZjK#_M#TF@&7$M{!!eKb~fjHudP8q)Sy?s+fiAT>Z@ zEYzTDR*>gg9vh5N>kB)lm)oMMAIXZPr`e_YZ0vl>H8rrMmSlE_!eMqepN|hL-&v3| z8jK$x$Xq#hB`9(>5Y1DCf7+4sa7fybaXo8BK8OesnBHoC65k6eI4990rj?M_b0!mZcUDNm=Q?V7P;5)Azb27P z1b^aE+8=&spL%+sBuJ+Fc$mdry6U%R3?{Ahb_}vy`s1!;l582x+jIA-5<8FOw)I_n zV2W=NhAIWKSHf(A@OSpZu;WthU59GUb(}m{f0p-G8)SmR^-J{@-1en;3=>S{z;)|4 zda|@{h0ZZ@t7)|xT#Ms#cf^FauMV7XNqgU_^N8YFstg2S-oTJZgMYU+GI#4}te zy!9$ua`fZvtMk-9oUTi2w<%3kf>CBdc2xmM!{~(9Mc5U9FYc2*0lOngjY*&{U5Ou& zO7XEPnC`F%$J9oDzRFFIS%LPdvuvOu=>oh{s)eg2Q zV&94*7(D-gAsw1MTOWE=LF_~QF+VM>x+kI*(VztWVSWCxu1Zb`c9Pscwu3b8z%< zS??FDx%C@a5NAz^5+5Pa7!_2y9o{mG+iFi;qI_nY@7u=Hs@TTSq4ISJfs zzH{>(MYWfjGmY@n3E&rTHnL|g`UtjL6s$kw2HaR z7(WWHPo%!%?gwP!=3e-v zoeigeW>$ezA7{cFu`Z-ilBH6>qQE9-EJxFlwJ)JRfUnfs+v7gb?XI!yJFa&rXKL*w zwY86jvc0(HP^7Qx;!C~|ouiQmlUg3O3+aFe6GQp;$@aDIk?ULCCYRG!m1r`MI@dez{qO~-) z7kVpHQRx*a!N|AXPDd00Mzo~6? z!kM^8c#Bfez6-#);@Wi?L5!>ob75wb~vw1(K+?FnpZN97bL~`R!vi!l#w$SXm zr<9gTnxwDhq)jEMTm~4-J13C=l@=P{6A-vnlx3j1elGZ`i`H0SvxD%A5+qJiJ-vc3y4MRz|l8@4%0u<*dC4RdW?G0dKj zm9%ib;l%cbj(+MKRlZkueAHntmnfewFvh1ph_P{fM}LyD_;*NltnNpQSU%0thv!+q zTBaG0YZ(IJCuK_4ff~RzjmE7$WWlrB1KoYa76H?|l9k!c#Ju%}3Ci;B7PS#Lbs!&Y zrmbeOyvv>7x9^>n%N~TT-Id>{qCIUUeLN>tsN2@rdUA-rJd8^9Wv79>VzFQ1>CCsT zH0W|Esvms#P96oyzksi$e#5D~+FqA{oi9r~JFz?JYzosI$8wvuGW{2nPNXeDwnyv) z*rOr%7py}-G+JI5T@(O&OS?|NePc;b)oFqt`D)qhx?$TpiXT9e9A@&59$P)^0EcxV z0_)$Ke>j`_lC57&3f3o|^S~^LY-naBrg73N^g4v5&8qfLess{e@LE(DYcvhN^&$)>ODv+To2_tjtm(8SD`nYNSb8xjRT`Ase&vvksb)v(J4lKiCz5Ai0OL~dx zGy4|?c99FCK<{d4(m{#o6L z!~EEfOH}L(3+JqtN<%q*e*S}Fzk(tM&UB!x`B%j9+V3w|K>M$O z%x{40mnI4QvG`UXW%>0<5Bm>a^X0diVc*^0|AmZE7O)LJ)6l(;V3|64!@cE9b8Il( zhB;SB&7%54a?K0jETr@O=EsW3fNKV2Lc_v3yT6LrC=urA(<}=G+Mm7Ley>n-xv)q) zp3zh|C0mL6lhDbynCFa1$sg6V@AB1l=>>P~-*<_0rM1WiaZkPHe^IeIwDo!SoW+OR zML}|2y^l9USNAx(l5$4NZviJ+BCqwu*Vz<*l>Wi%MgPA>R5C}1ik9^=>O!gbm+L@H z@A*&_&Hf5b1q)V$JJx7h{^l zWBCpxk}fYG7+W&b{V>>=#^)gQQ`ZymC8Z@z5o7*)icjD3ZU^2UHVJY0!N|?yzauQx z#AZ77xz_2keRP{oH)P#E&vLI_l<6}fr5JsslTCfhHQjkMr*YhcNL{q#G=G6c#lMOOloyofCJ*I`&AsxB$>#A?7=nuJyl+ z2)X3wnPB2;rmv&#CogvYyPXV)Chc*Shw&{aBOv_I`n2*C*6(>BtIynMD)lHXl6mmxUv&r11}{G@VO$%;Y0fR|U|(va>?#8yN)%4Pd=RrK+vC!HhT zOC?zDZ!bOv5wadAjx^&7)ZO<%DX}SD~x2p`RD$1fFNJvRbw{&;62uOE4 zq&rknkdlxN>F(}s5b1t^bc1wAiKNbhhoIBn%zVRN?>+CFz4uvrowfJ5MlDL=DrvCo z^xzoSQVM~c(80=cM9LaK+p`#`@=CD4$R?M{OVbJEMtQR%LUc`i^lMEq@V_1A>Kq9w zAR3L&C-VWnh@0>~A#UcR%WnO$o2f7CODA8>M{4N5I_#_Le70%fKqf;R=N9g<1Izr% zi=fetviGr9rmX=FzC;D-q?+hwLF*>RmcF_&Sh$B6=re_>gLCEUvgP6e!sX8tf_qhp zP!s{0HhCfl5poe(e{Kx#VF+!nYp&FEPT^KmgVz9YxtH|gs4U%BN8m@oOGEeYg(33q z!MKe&XQJgN{%g!xgACKw6Tlbyc&bQU1QG+B$Adiu)p0jRh z$*{?E7^nC4We|o`Dp4>ny&kEuBs?Kli;sM2K`nq;u7Ki*VTpVuW4XZZ_w9T&={n_+ zfNAy3I|XiM{0`$$G9epa!BVXZfQV)bQ>(uJQyBhuwK?D? z+JVPK?|?5xkcn`%PzRRb^RqWcfyVRdM~HP-aljhwEzgrz{TW>#@Z)e%3+mQgR`R_y zCqXI%fWLO;(!{2fNZ!KYzA7{)oYRXIrnhx(&YTcIQk;LMEQd&I9OAp;g^8%){k*Em z*YJJp-ORe@^yp=rfn|KJ9*$z;`DX+8!M)g7q3()jus zQ^>2hF)mM4B$>~csrAZu_0NW<63~4NXEU>4pSWMEagAet*LJp$ak!nJ3-PV)zWmpo z9??0G7dj;M8nkJ4wBU#ic_!f6hPagracO(FZ4=GFkIy5c|FPTMd1f%0ka#9(c+`x2 zDJ?46Du^kSk%@JSzO6U|04ghSR2JARp_j45P_1EUbba=>VA024XG|^`-HRP<2|7{? zY`ABrF3QxnRM7MV@106frbM5T;y1JPkpP`a!#jMV;-6AW zYW5N9N6|)|B9_ZMR9%f39Jh*hDvzl|S|p>$c0}Sfv0zc&3Sb}*Q;OBd?Nxcfv^x&W z#%jr?CrHmR2WAqcCTMy|IdZ+XJKBdU{ru|fD~vj5`KToWH00E6Ht5?t`h4Ra16VO0 z2f7!%z2IsA#j00R%bRV|`Tk@RBk866^j?W?7pr2soU$)k_D_aD)H@5)=5@4yuv(W; z-{9jU4M=XGuLKb( zm#EIf6qjdr1!MgrBW&x#A&lm6D@TSRSF z$B;~ay-y&%%Xg*Fh2qwkq*WV>RSk9ISS?&BbjR>uh0aA36;sIYgO?@W7+gT8jc-0J zW~LVrHW%W7ir4cTRUv1Tvu%J#a~FZsbC#ynECl8{P|-G!B$%O~4qECr$rVZD)=}Th z1d$sTe-rK6V4{*sJS`X<5F|ah$sd!JBgRHB-<$9l&W`7H7(W$hN>hxgH~E~3EB)ci z67zIT(G$BFP-V8T<^m3wdKo22~tbfHw-TJP4U7O`^Gg|{905GRUMflSz zuK47|fdWb+tjlpx>I;LA%WMg!gV-X~CM^($9Cm9WF$WNy%BJlrGxgL#+ZaLIMpAt0 zZ6uw$+&^3N>~9>#$trqzf`J!Tl*mMhX!0#=T@Q4*W5ech=@83d{^c4Q>n^{;>5`&~ zL6Y_?*3>w!!~QmWmB6=?p_SP+Xip9;-t+Y{Ci9ri5ca`f=t01oTZQ!dUiK80OlMVt z)02a|i?1mS6LKulJmj{WmKhna=pZt=pj}?%?`_XSEoM*LZ2!FkzmC?^Pbclz-^R(| z)ajQW&SlDDC|u4X1&z31@pEWI_WLVw(pSTaS}?Z+8@J#Y?v!|stL=Du%=QxjRm;Dw zFN8=S&!4tHgH#h{Exz6$eWoNr9_jJ#*#ifxyZ!`60fU;BID`CpmP`BaSWn}9Sl1u1 zwddHV7-YzZtBby~4V|_+ovE0A7mO><%(*;klJN}N$1O5c=E)MQOBaLl*xC>r08@CQ zTjcWu&A3~9Mrg-o@x_hWCI2CL#Ph$)wY3n9c0aieMK7M|>YV`XK1D*vc%`}| z2vlj2g(Pe9oqw9}sB8N9_Q%JAJ-^jd!pj+>(3d~Yb|=bR;{;?~+_o76W+P-}=Uo>4 zwLVlCG`tNvan6eyUJ|^B@t~_)J~NnsX0!j)P}Ok z=o(_T1A|UgA(rtP@mV!%BW&HtqB-Fgi(4-^%anskwq=`vY8I6O+eWF6tPXFKKdS;r z(>-|aTQBV2c|jf*$Wxh&Rt3rDN?P%&U~6ppj|;ZWRt6XR_Y{!vtHA|Zt$=CkqL!yO z1zUbl!B#fxx?mf$SEF5oES*ZntgOB*zoeRlMGTBDwpt$p8h*t&6FZ);iOawnSKiq( zt?WN$%;s)$uW|iD$Ntzacbj-Y)!JSM<8^Br6(s~pW{1R6cuv&zK9B?6iAT@ySRK9F zK)2~IeCC@*msGEG@2x(wO&P?D>YtlG*Ywnl%gsg^C3-P9loDp z*Y2WPDf+`D*lDKAFA0)BWPnP%^gHhjF``DnpIO>QKR0%63>zM?+p~4KVE^9UUnHWA z(sEpfGj_uD@4}x`0tl;z#gdwMS{2wRUt`BeOML0MMORx#gN-%&IR(xm|kr&^w{!+opYbm|ovUyE;sL;@}c^Lp_qQK%ic2`k51o*N-^Y z*F)-G1sWU8*Rdw`2Th~Is-m?EIbQH|revS!LPgmlMybKvMXt~9EU{mJRPE=sO>0Wd z^O;ojAn2pq;q!;VizEFbPYrF? zjo9&1%$Zw~WBqpVc1$viN2t_xPJ8`TqjbNwHdNvG<-n&OBh&Rhu3>z~iBC)|Woj45 z4WMx4pwI-xc5wDKw14BSt#?ip;Yg|VoY~@6Mf3^bktGc3ph!{u_%9T~CRp@oo0G3)j?MOpbgRL8&b;yrpCEgSSitju4s(ey+`-(Blhf|+@73g7N+?k5J6J%X~>DNa$ma--u5GDViUE z9GoF8U+PcM`U@m@U2VB?lja+`@YgnII0*!%c+Y1(>&fgMh{M8j`JQ68Dw+#Yth1!) zD*`XZbVL5ONV{Aqs+HNR9L1Ygh)Yb_B#NuwUyuqi>`}mWDUkKh_;asNUZIX` z%#{x{pe>^v*lim{kci$&rX-1~ZSfkFLqe!DMnui)Rddq^n}(W(I)YIal``3eN8!z* zif{#_*J0=+hS}!|yZM+tzEM=@ffI|}9}raVH%)rG2!Ax`fo6#OwN#1m@k{J`7P6Tf zJjWM4PZLcDHNtjQnDQ1K?XWXS>AJZS(U-{#@;`Wq$;FcC*2mj@BFS(zVU!uB*Ccsl z=ZmFxFkjelY90y_7%|lAiT*JmRQV@;dP}6evJ*n=F+9*>p{RkFpG#MtU+at&_p?_Q zu5?C|j+LkQY!Ko%I-{keG#^N3tY&cQvR&U>8En4R8U2UN2gLj^^-$`f^eVgP@dueD zz6oitbr&Spe^7QBHFxP@C^pQxI?w5qDZi7$9>=jh@`1g(E zp9`PIt$~EZma2~g0(A}NGdg=d0mg&?0VBl2tE1o0LT&GPNR?^YB(!Z7D{KHQ;S24^ zpZF12xSQjq*2CUzsK^CtJqOd89lnD+bS{c+hMd5bp@d~h) z7k!mYTrr)&;9JK^uAX8|a%r1tTgIXfWJfdw5^vVa+Z1&@OAIdah1wu;I6kN~ud2%; z_#4`1v+nqT8@CN@){H#g)@<*r>?}Ov`Vg&dP`W!1)8`+_Nh|jjSEyqLr|$(!nbgGH z##3XutLuRXpW)9pC;lcsV(c&xn$@1MgD5J=|F%&NAo&j)^9s~IX$Kv8bxnucV z9{-UFjXHUr(7+SmR&mHWj_s91E79}nli9g+uTD`S*C;WxB&FoYRhP~kq|@Emycps# zl)u)ZSw=*T#qk6BQR>?BAML_tEg~Rh0(ZFn!MQU?o6#jr{cXDq_Q+cF4u{2hu_ID* zN_t@J{HIiIcR%>c4ZuI`&08(;UOOsx(0`y=Xb_oX2gjG{HqJ0~9m=#HB6iEx16Jr0 z{{hh}(YQ0E4CtJDig$PWr_}aMe%<>b>ZSm^ z)BCFcoLsdwO78NeJHqM$CwS>Yqj53Fua%=CwSCtBr9+4Cng>B<=^l%t zciB7YR7_lQ56VG#G{KO%XIzc?Z~r7eR3kYPaMwKq}KYY-7aTR74~*= z*>^o$G-iUexTlLiqXS(tlDK>mj|6!1*GJ7 zjlOQc4_IAd7$yOIM>9}K*#*IFnU73hu5pZj2fkaIs-m)2 z8$1&R#^+~n9S8tV`b*eG62FVny=`U6bK-NDMR;uL^gm^2i8#Qo z6rk_MeSFziTVt~}@W9pA3UNUXACdMOmq$LF6_aZ8#2I)v_LkdLgL=1vHOVz>(5S+a z#!oz8K98)WU~O%dwb9QU@3@b*bCp)*OB9Q3^Oisv9=^~99CF0KNIu%;yQHdIgY z9`>=s!^o~o0W?~o}HPI9*a;b^^MTAcC~lV`XHf2GyCuW z2ROedpgDawn$qomuHfB2-p-^Q4?v22SMBaUP(NYBJ25(w=0jJL3Vk$(mEXJ~L*RmI zFoSQ#@Cp5W-AshV_|i@Zja(gdz1Ld zTsJ6WuZP>fUpJWKEfF{E``pFQ{4t&8iq-~<&g8ZvuW~g@$T)@6O9XItChl$A?T)$= zXtc(|+}5A{23ZAkVJ3BCl9pHoXFxTBcEgK_L*PDrt|a!ogeNOZ8ZIwc+;VL6lhV5_ zir;TtlFra(PIF2xaJ$Kbj_tDILh=+j#IAZ@^w~_31j!i?MW;FfDY9|RTWRW;;OjAa z$aXY9(kzy_Aabwc-ndb;NLE)V1H<7@g#B=k_Sjq#Tt$VX*h;Kg*urnxT@A8n5-IKF zP!ats#gHpFgsYMNs`4yi9COyTsQS{R&fb8LEd}y?IO7R+G=#hU+p>na2yG+RqhtbB ziNvIrV(Hs7jy^iAd@59uF=3wo{F)rtU&?!gjkkL951Ks}^lTy< zJ96rR7tEd*%@F1l7jUtWT{tL~=m{3Hr3Ms!egB+3#fk1=P<}3!1hY1LnlfZNa24Vk zY~*+@eEoOsK3};>3R32GbBwG3UuK(Qs}*dGnT+ES#EWjycs0}?Jd}3Coj%zb)6AIP z1>e?6p`Q7kj-+`9D{a<$>3sU+E}B5(j3Y;GRDR^>EO$MpBty6Jdjct~Qf;KKLUpJO zpL#77n>onN3dM}I{ycyZdo54K)6+f$-Ls-F!Hn(3R7=eAcA#F{vtEH*EZay|2~`D) zUGcdS6UJ=j0JQ0c9$F^#1L4PN0>vZ%D5g3n?v6OT-O5ESX%a? z^uuNfv(X&ysgw1PZpCjg(!A4f5`UyykuA|zcWsp+wk|oG@+7cTW*+{2HHDj1@dbLJ zYi5bb$szFUJd4Vo2J)Vf1qA}(LS5G23}Q&UCwDSZNbkmCh3{;*_0F4^bl*YW6yq>s_eOLc{P}cH3RcJjI|x}lR)1`eZB?l`VRX^1ExrkuSp~&Aj%1MEW^f4$Iw%K zgKbM!(Xt=+6j;=LI`ZHZR$7K#?TnUmQTx12dw`?RA*D1Hno-)KWhMncCG#l;GEP?| z_-Gi}9pp z+kVQ0GIcyF3?)hKo4xeN_kE$xV)po=v+_$m7lsHqETnc>@&eV8R zaHL0yoLSnIG}NQ+byf-&n?Zo6A%2xF5v*ApnOQ4>X4LolVeha?=|2%k#vqufmYavB zB;?(kd92{?Xl*3~fT^rmiBmn)$mZ+fN$J|#W1>VOCLCaj(3_M|+2|u!4N(O^()0Gx zx6jD+a^IK~g(f$ZW23MWP!G|Fjs?LA1sTw(_zZ-9RAmoYB1}fiWNRa7;~36=q4nDwR2<|`z#0Z&$6U;xgm z_3z`Xc6ir&T#JHOdE8m!BzdokCZjI$|wq!**F3>zn9Nfd+xdW#bJ`6Nh7i}KEn$XvNiO~cAh30L}kIy%>@R2~-b zW;MPgwHAf^VYDwX4@~Vxe0=l#-yv>A2$=Pt6!%hSPXZ0{MTt3;3KFC&rKinz@}56K z=4N-=VZ;0iwA$f*igY}c5ZSDYuEpQT>EWS8$xW+qfQz>r@lAN@`}+^|N zOKWhq$-5Jz-VlFd5rM3gIQ`5bPVIVBy4G!XriY{oeee034`Z^?OOp;``g_l4gA{Bj z={vH&;q@V5>d*Q&*6Gza$M*Vh=2Qfsd>*i++wvwmNac$&&8+aJ-;d-2!VbC)eOc-RYaS zi$ZHbsM`}>;ZzrqrXJEl8cCtN!5RHA8^uRSf`VTJb9C5uVLbIMccHfZ{)C=JW|#XU z)4Krj+R^}JQW=y!VZTq_nR4tZCb51`mCQ z4Fa$Y6;n<};QMeVe5rES0Pz2*i@|Ep8`?2^*c& zPsVjOPAcGw-x(j5yHG4M(T}OLQTeDpU+izE#^~xrce`H)+qzP6oRD5My!Z)I_f=Tu zG#bb@133~I0fPAvkNG5(yA95Y!bor*u9SIm8^k2K0r1u;C)M8zleUNIt5JPlqH7wZ zi=It4#~oMBt#WgtRPLejRUHe&nP~peLj^sHI5LAw@kkwK-!UKTyunU%2?At!XDUp_uC9w4P@w*u4ffB6E&>U4kRJ2&$wSR{ z2J0bQTF^t@6MwT_87P}!L*ThFkxrln88820Uv{w{t(XN*q^*2UcI+E$7=32~0ym8v zf+XB%L}!f}%X;QIg8})wBu6+!8d}NML)u*U^FC|tqmPn)D1?iVrp33l8(Ou)g_y*_ zsaCbD+GZj_P}@9%=qpnt{VW;5b~KhMCyTQ2dRPWg0?K(@ehdnzbCCExGDJCOQ+l`}rLJZ}*3+I> z1s`lvT6d&iTcwp+KSnNU8&9{mix!IFXBkAIx9z&MEOhe2OJ zfV1GbcML^m0)7tu_oLg(q!cztBM~}Z%<|)*v+5b!LLxeukUS3*M2=Mc7Xt& z&@BG;El+4$2*mYBk9xd&QZMb^ctoRIKUyR9@111-=l8t?lMh-$PP(~o-gNrwBdR-n z=FbE{7$Yw@~nK;0K4U9{g8LB`iZ{278RK3KFTk*Kf%MS}uFsv?o{V&C3eD zxb7t}v!~am$T@T_9fIriLYjnr`s+VGL-YKzt@uSvMKDVfs2AEp4td78YpSo+nHJ-j zr_n?D>*W)DVoQOq!g79DMDNM{+SZ>bu6i z06`ck{F)mlBF9~I^T*glKijcZNaJ|!RK84N`QZ0+?BtCY{a~(DE%UE>Uk|r7rs}gl z?xH|&$NV~NN7536c#tm%Rjdo&x1}SHWoPH0u3m#WTGe=!^@c~5@_|u5?EtTFi&Gq< z8=Upkno^>xy6P$;GZz4nDTm$jk)z)Vokll#kDwsHCbGX9Qja2qgX4+0N=Ufe45?r> zcApfSw=kcBU&B?B!AiauDLCE|xx^|Y03`1e5O$&Hn z`$goauxL@hwxIhlGooHy=hUWkc+zPYYm5bbL5LOVYB!qzvz@XgXd#>oGkI60 zyXaOvC&Fjw36j!n9Wxu3#<05u9V^Rh)K;a~9OglG?g%r@bXzIYSsV8E0lp(4XoKkp ztt4hh=SS3iA`M#ysP!Gzx3oXw7TylOS#Oery#gCxia3TPb*c;814ApS>|>hj%OMZ) zgA+VNy8%6>e1Yr^siPqqOCg(O7PGcEzUaxEsp__WFg_O4`h{1}sc~{P(NzF_99WkZ zJ2x2RM`R82aTc9&U9t5^(vaCE4H}f#bIi9gUuKCa%Jo^xt!UJ=pp~~S<0P2VDqoXf z&l|w`I%`*M3;Ldz0|r=Fq*Ui6fRt+UG#M(V6V!A`+Lm*fn>+U8c8atBn@TP}snR6Y ztW8m$kIBIs_3iI#UW?-^yGADpg!SH%4BKRRa3J##|JpkK_pbi^90O|I^XVJ^xN-dJ zylQ(3G9=e=;ramLEJYWh?mQ3`+$RqA%e(T|&YUQ|jvvt9cEYbMLV2I{E@2*o|AG&( z-^5%s*W1a0%yawKduu;*h&xSK=k$+B{raO7_;V`YKlc@iUn}JHzt`AU%N~ozV{cJb znn?O!Iv&@2R7bCDOu{snM%Tvmsd{QH;?+BtTlw#u)BuC6q@|Tjb!8vS2{qK!0rOKm zq->gKDdSL6}K3oKWM{QE2M=qS-vRl26H9$z;G zZL>M@DVmH7?wFtUmpe z@Nf?L%7_R9br$BQwcJMukfU$byElL3sAHVlz1A)xXl?a;tN@Whx8^$vo;38Kf-sd} zH5JVl%j>Q_1M{-i>%blZsR1+B`yD-bbq_qtEFNpDbW7c+y(b-Lv)-A5L;v?djF$$mRF~tlyBj=TAh0tKH zNC^O`7>O|qTxmeUkVu?jk!Bg2I$d@Z7NZRfczOuow}UD}I6YN3cYt1tFjf9FBxXuH zj7PW(52AXnrF>5fpPseiCjRqB8*n(v8e+vrv$4$4P1_^+;IV+WJEP9|zO7ST$4oYl zYRE#D1}NQC3mfBJaXj~ud$Z_AHeZ=8xrb~_RH z`?jv1Ixflw6`i2gV==g=uYwg)H00haQX&WnWn<3`LO-x(lrGicyOe0vBEoz1)-;t&=?wa^l)f}K9%vi@_Nr8Uq;3aEm8}& z90`3_m1mYNC5-I(eD)FC*3QV2kYGimg(PO zOs+R}jF@H}Kq5QrFl7VFw-YVp&~IgfU!}tDK=deL3>h(sWM754ylHPD`xBH(UI@7(^@PvO zfXnpj4gDjp1ey`t-HuoFBBoi&4fM+90F!yi!KeMhh;!Fpvwb z{~Aez^xxk<8avzU@kdp8qRFK&LYoo@BG2{%oEFk~_(wab@HdM|c<_5dnvOh5$kZLe zNU7%VUyQ5l=hY~!jY@yOBhz&q)Sd$fV)pqTl4vH!5#WJ-i6(8?Qp3rrs+BWHd89WG zqE2+XF+%SF%v-~Q`h$9QxF8y9Rq)j32GAru)L8;Z`_)V4Oy5;s@316Sv8t$O)hAow zJ&DAEoehO{go*?&JgR;)B#q$~@#iogKLH!e_73Ol?>pJ(ml?g{l;~{?SukOaiAKc{ zPtlBkdvgr|z}VETBH2xGvkWg{2#pg7?0!kjt#D59+4I2QRj#e)wQ7X|(;MCV=O-Fd(k)6Uk`)!u{6IP=i z@?f)|af3Z2p&7OlifRN4lve3scCo`{N_L}X;eKdC101)cV=57L&}<5PDlJG76!R*R5WN(%dep#2BD{rN>|O@ijQ-0$(m4}+PvAW+WDx4oU^)m z7#ou+ot`O%Xvzf~vh;r!SUVHfBqqgvEgM@&CqBa!V_P6Lhy$or2Zhp_kJV9rYt!hkGpHqxCZrJ#VQ9m7)RFZN#^v?^oxAV80G6J=3aIC4rLg~wZ-lzR`*VwtlBF`OED?(Z=El;s06oLXVZSwt z)I>(}SoT*uSq|Xt1*AJL;3F55ePWKg(tP!>tn>Pl?c% zQ4%0$LxUd@|MMXolwq_qcx)#_L%Vl9;07n>kpCqR+k$E-NrJz>!GHS(;mICFAukxv zwqJ~?s;Z2aBZC7-vp}2Mrm6h^5o{Zy55FdaFXlcsrxpJ^7@voIa$+Ft z-A;c{r5PiW`c?*OXJpBwB3Wr;*x?wvO$M0YqD;mW;BniU7?wqzKakkj!QaqTg)&*Z zBoP8bE5ctvwS|058jaw4BQ4akSM94B!I-S5X8sD`tO(zylp-tTmh>SjQQG4%9C&K0 zw<#R(%)O|6xw~Wa>B@0}`Y-dt0cS^`unG=7>dL_JALU8vE#w&J$X)Q$Nux9v79h-V# z#ge28z_PnobBoE|1mxRB(gCZ&&J*;2n#PB=;$Ng`ME&O2P%rP>4wkMEV87X;W3P^K9yjI@H|7{=OSo=Vm} zZCc6hyZBJo!A(wan-cTy9|dOk+@tFW^tlMUCMbwbZF34MJBn{{ON&mX!>l!_OwSPB zaEw%&rMci{q*x-1`ent*156d{J*es)lpG(TO3djQGrh!P|83+rBpfx0Yym_0cj9qXq3(w zR1iS{X{ljQLb_ApDIq;{moyARcg?%Nb7u7Uy{T4i0i2dyw|hZUYMCUl%E;8xts_IQWqgf>8%y$)nPaBC4r8t_0d_Zh3hb4*?IL6gEOwvW z`0dyU;84=wT6aSw;3WHdeucZfREQk|AI@AiktI^=OZBcG!`eTczOJ}i8mN=++6Q}w zxE3dC3B&MCG4;MO@xsffItFivs5dqjKHWZD;C(Wou|1k?yr26(kKD&fsk4k5T&{y} z9Lz$ye>P+!#750aRL?5ku46<;q7?R8$92Ywiz64k|Fm~_JGov^?^5sN{ooRqn&(5XhM$uhOy{9f| zQU_*9R`y4wMb0ipQ7m+sF|9avY)CA~XrdOm^4l!g@2G2X_P8s(x|lmT9SxAV-q3Ky z-=1&o-^M56Ke?|rSVT1n-^QqJQ;zR=roA{Ke4w>N{t1`(Zv_z!eEmN~R@-=fyq;j8 z`O4+avre@uZ2W`pLlbVjtesIyqS(>zu$J!<(emnekAc-pS7uF>o$o0#ON$ic7hW~$ ztZ{;A?hS@jQGbgaQfwNSXYJT>DR{$?K+h+Lr=i(qY zf)lR;h$q`MEOp8@Dr6QZwCo>QU8i`x5@BMyK5CwP=d##x&`2^zCh$vOgm1!mzk$5q zBXU>Z6Dmj9`1|i)%psmkjj&Giy;xFOvq%lxxY;Dnsvee{Kklx?YFSfjYs}vtB7N*epJ;P(=SK(O=Z zaZ6i1HrBeu^b=w{OZq2o85(z0{%CmF{jP2jalFZrqA8T@VBZwz!6;f1_Y&u?} z+>4z1IgFRvR8r4*N|e|xc}>gNq#AWP*%59;jDePRT)|mrXra?gOgSzzOP}Ar|BE#ZTR0s@Z&csZo>X1$IB{QT;fmq5%AW1#_*s>!dU zpIZgP4q?AcQ;q%dbAqVojBA*grJ(bKJ!6yzJuxl9A~C-{r^8>_35zBG9BTTA#VACM z#=ntCz#@8==v&HHdt3re3m>Uyv|1o~KkA3*#SYLWT#7K!q zc%BP;pCMV@!0E7<=P-23k3fq)G)-DIkA=-MN#}fIeb+Ip^Y;GF)o>&Q*#4+TVY-AQ zboS1>+HN4AW5^=t&y%oVJc&q7crq#t;bCu-LOy&15I;Hrag)p3)y(W+#NN`=p4hX1 zpG2?*=K8Gazn@?MToIcB*PZckVNf>=gYH>)pfSkPokzu!@RZqX^;C_qe|}!r^F1&Et0}?wrVB0O)EJ&IN!HX$SNTL<#joMOf0fE7!>8Q% zZ*y4LdDm{YCCYs&&c~}aUiyWeOsx2h7LXD41lVlJ*|1pRWsb)K{ygXpD!&7RhYfaP z8IMK6a46}kiH`JBo8rs2c7w~M7UcXI`EY{~xa*ikwx0mI_Rt{5lL#F6Asa89J^3@R znc^u3$>Yx+(o6u>aB8vP)Jlkb^E(p*da~De{o(HCFB?4Y&A!PtxffCRoTtDkJ4(dT zY}*{QfOcLGh5!?=AkoZ8zPkl?stcZlAa^?6O`cOIqs+BHK_~ zZvRM(F2v-;MQ{H?+=TL5H#8Sl1Ozbw>HykYj1}#Lpa9sC?qRWw*kCwl{6ndIhhwMUpcsG@U-0IXu*!n z_!o)0v&b-+_D`3@)6*GcQsf%PZicss zD1{VAY98}$$KtGQzJOjbbxKqQH{qs~tx-|O^904$7HJOgL^ch+jGymCyWN73e4n}m zhlZ&VPoBAh)}f75i{~!OKGAi|fVWWOa^ERfc9I5*0jQwqHJif7nI`i%2YzBB0_+4h z3}o%_lFIP)1aIEOQ@?#ZfVET`dl;^P1q_K2#Yq}O%dS)Sb!8OsK`8mD36ivabm*V z!39V&Fc)$B^ple?l*Rdxj_|oG^&#E zL1CdMkd!G6k>H#Y6O0uj^x4Jw6waZ4j_u)u_8(SXf4k0YP9)eVtPles$`)o7gIsk{ z=+iItPUpRHo#iTht_S@8;8O=lXpAB-9|K^F@~g+oDG}F>1OM)QGRAV0NSh$yW{374 z(N(ISMIL--eqC$Ot6yGIFbLT!CvuroUOTQKW9llRj~(1))phys zB=@@E)Oq6eW5Z^IL_Ho-Jn5eYo+v~O-*xBZ~KoHw=1 zaPfH0AEHt)&T=Esl4RNoDfwf~11R}Wm9d;**SsdiTMisQ^UNguXcKIc24*|<+G4i? zwvnwyYZJF+0hoXe55NQr3|x9?+VR~89A{~}>_|u2)Ww*qEt;8nYH+;`K4jcI3~EfZ zJ#0j!uIEa3?DI9PECB|>P2SGs$$*4~LC|<<_{1$Yg`lKa-7g6A-EDKtwg=k{nA~v> zG^TbqOLRe7!;FHo3Ad{b(}dL^f}P-WmoYy}%$H8l9b0?n#t4XUlT32%H#~bn&W`8$ zJyfKkZz5_vMRVu!z)OJfs|dA==JYpG6^6u;<4ys#A~&)&WiFMRR&|Y&Eg_iQ8LgCl zIqjbR>-1DBA=Rjyx|g$&9HyVz>+Z?EwRCRCPILVRWHuQ}!-E_8$`Nt$jm;Gi!MT{& z9P0Pex?dVoF;`NSw5`#gxbVK;V8Q|RMa~IjKHR;M#*k(895Fcd)?PIeoM{6B5X`q$ zZKh9i6s71y{@rP<=%w*N@W$Y$eQpD#0PH7Nm9eD&8g85*)OBV{;G&}*w(zihMwxS^ zAWO8LHax({T<^|JcXU2)!w9oj^ivos8-LoSmZj^IB-tovvyfYP21(e=aYw&|huk|4 zPJ2&u^&8KXoZNmVl_mD+1-cPVW&0tUvvQdqSIn*tx}fTUVQAC7_E zS}r*)Ut~^TboXlwZ)!|=*0EgsToi-cRhnvm81iQ7*vqy&_56t#F!_5MnCo{@76_F&`4K15% z8C1ReM9aO~T$jpT(+bYAj zT)G&XKI-Ttvlf*lx$p5KCV{#LlVX>q<;=~d+8!txGOT$X!dv(C`U7dNW5G)|JLBDDhM?c%zFof@5fxb6?F(K@>=aq!jp<{^Ki<>x zEs{+5?jcuOCBoSpM!EBKwPvAdv;yTl5iaRzLdx@^>BN&J6Uy@D0(WZKJ!bB@DRdT$ z?9^v4l!OPb%;~YJpkhvVtLCX~m~SL@Bn0jsUt*(1$?Qf5U!@La)uqUlHEmdfyLSlHGwd+LC+>WN6b0fPv(X*M##qMqqWq-)G$Bb{msvZkyk(d1Ydh48g9YL1>w ztHALQCK4(;iyhT_lf|v>A?p!Et>#=$mXIzKxhtxtGdjLR%UQ+u>ÈP9~( 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

    Ps)p+lI4e(l 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

    } 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 *)@Ig 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±N`kzzef@}AL-Fs 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%0A=~z_LBa0vpUK;zbF(BZoVyK7OMP!xiwhd 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 z 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 z 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

    3SBomUZVo(=T4Xk6gh&xp+!qWgk7zz zbe04GbE?tYN|TR$#jiSox9b8rB;SAR&5v3Wsyb}YidXix*xBB^$B6jZg8Aad;N06^ z-IZ(S0yft)XpGE=3LO;a{S(m?;2|VUN6@k(kP(ui;$4q;`8y zCcq~AXi$)nhO?BHkC7`i87F#Bsxa!IfQQ*R^-O)U=l7jjBCH&;<-4tU$R(QV@-5k0u9d#U-5bZt zZ~gZp48xu-*bE6)vNuR0Zhzut;v4O(;g6SR38`EA*mL6sJ-5bvWh2UvWMG0&@QhbB zM2dSE!Ao9gw*QE@uv{HjZznfuGy;tHD4{K-uB%!G?kBOW^k3u%G>oTw*DW*54NZ^I zFe?F56yJ>CiQYdBbApGE7DPmJ?ft0xJ6bHZ9SSMD520Ba8n5+l^Ked_wEqncUulFS z5U~E4v#$w?m9@D(Tfjb52L_)R{QxtXG#ASf)`$aPmZ{+(C=hZ+#;)|t3AqZ{3acS! zYvOGQLs3<;23OpSP@W_etAEIOmt^056M4@H+33-7FX|bui))k<3xuY}w|YtiUnb?P zQdGZF{!RuzV4eE=jTI62*^{BiF%yY#Y&l{zkX~<&xN=U^c=Cplp~4L9gAuU_c3FyI z2M#{R0~G6)l^^j!YGGJ?cV0|gJ2yho|Nl%55**~lX)P$(d^Wds{${$T>{(ZtvU!H^ zFEyda{M_50klF=du?&vE*r~TCY}cq*8CI49->z7Cc)lSo&IOO&v$BC+jy(2ZG^R59 z#XZ=MMeR>;1kh)?)vck+$Mg%C$^n$m+d`Ln9YN3rM0S^Hz){^T$5+boh`>6_K#qC` zC4Q2n?a~}mwnI2L$3sH!UR`WL8YvC0aWaDy=%vF*3nkumm(+6+-^FQ-3`2Rc2>Y{s zG)$2k-u=~t0(7TFhiib4bb^9S0A%w~{Bx7EHzENCE_1CRs?;+nV=5n>@Q&J8^%Q#+ z;hs=xBH6z(n>99LHp0(zd0-15>_gD;N!}6}v$@NiV=m6(RPLD5wa!>_hr9IkxX?;C z_)8j2v~u|S*r4PDBlLL4xdXK$6fgY~`I~Gpk|D{8*G4sDQ&6yMYxS*C^z3&reSYTB zxD%2xOw}Zns}NBp0FG`Jt*r3lI=tWlv3_&B5+H<|m!nOaB?nDbO8D5;)jxs`7X@=F z*$cs^msZfr<}ym*$s7oN+vssUn>v&|0$H8RYGDLYm~p*v=_6GgoLZtN(0KVAH`5(sHP( zxri;{-vXxTt71y=_brk=F6bUH*s)+Z+O9)PBy$A@mYxPEp~~%+oz#JK3>lf^=17Xs zvCnr!TFDUQuZm&1XY4GgL=0u&b1z((>vc9B6r_(35>&nOi6Ki7)7f3X7FEs|sZbol zD0|#Bx;9KbY!ZErh{k4y&CvZ)xF>`fuw%sO=E6gHb+o$q~j}q$6 z^wnOF=XdV)kx#E@88c~t^7fSFzNZp1AZf-!$vEeH`Y0I-y>0xkcCdu2ve-;#Nl9hy zCI!CkIau5!V!}#N2i#Z|ey0tE!L9Fl;_%TMA2>w4eh;c;-Iu>W3+N~i-+2{3uhk@M zCAfMzDzS?5x%fGa7lea9V(x|l1#4aVz!0z9MBgVpzQ9DvLHszQE;l7${B+4vF8!ge zAm`+IBQ!F3u@_(3u{+P&GvGXYXuq4&suY)Mc5YNnjzXn2iLguzLP=jaZ%7Z_F|sOC ziy>0F+I%dcdGfHB8UUS~-~I5^5B3~${aW&b;$`=UqP9r z$PT15J0<8cb#dJMRwdndNE2jq+HBBQ9V=d+JLC|Lca(qP8_6`Q>r<#qDk$dkz%pve z_HE$Sn;64(fa9w0;z*TdFX8o70fiq+)a%1Ty@j@Olqf~vLSUBGVSSQGl+FVX9+WD- zjU|_>MkgHl6|I!2Y*E&woDdM zR??^?xiMYJiCnHRC)|02Q*UBkICof1C4lcqCLCP8UW?iqe$22EJ6=J(J^pYA2l6E0 zL-5k5k)HQMc!EGg4mg2oWZJ)l17+Ptg#V4rcPVmWrsU>KS}4j5wmvqF%E**)y#vE~ zkO%78dPnbl$Cn?u@#L|qw}0En@rei4>GV#&xK;_$JcxBDe&;msRP4FT8uhnyIUP|u z@ucr(;W&LcOS|+!{)aDjcE#OP?IdD73%SE?pAg>H3qxcQ_5Pm5YQo%4x8CF$<&HxH zQZO8>;Q78#RwMSD)JoiP{oG<*iA{}8T=7jqb{3q}y67nPXLg`|AQ;j!ANxvR`~)p%R^^VtK0u$Jn}T+SXOnZ z@K?|K(sm;*H6K7%MAF)@bB`rpl$o)@(ex?!H+%(ZG&SB{EWdB8f9QE+PzxL#W9^|b zOtz8~;yaQ*RK=IPZn8}8)KNT3as$LYcioWcpB)B7wo z=_~ia0}XYAlV~rv1`EpjhedoS8OyMbE!M5I$2Mty@x0W%HDbBfkK)ZUC751U^}grc zL9XJL&e7~2bQ!?e*P}UW1Rtr;Ti)6Yu0(mY&pE@;mmI4Owxu$+8x&oHz1+XxFh2p+ z2?Uca-;Z=}z>(Sij$-FEcRRA8^03Yjv9aX+bZu{})Na(|N`wXG>Tp*Cz-T7-{+=_X zz4RC5HDtJJ7i(cnyt(@N_|7WpNdqOC`I@k=`9W*KLH~ivcyk^aRt2){&(P5{(WtDs z5`J2cP)N$iW^VC8yA@SIaCxw5B*gS6GGF<-z6@q!sHeejdGaR!oi;BLm0f6Z#d&C)A8>s1nE%_IiqA{sGbKw9TJ*eAe~~`5E;a1_gdwoW%it zApFKHP7_z<%pIE~rf4wn{5v(MG8{v%;tK6riz;Dj-cKp_yJpud2VXt4;}TSXhg`oH z0bU&z7^l|hYx><{_~(X6o}lqraR=t7&>8vR@uL%3hF2t_&wlDh?(xWKvfB{!bahmT zy`DZu5XZZlY-sJ)>$YE)Gd?S9pS#W165!d}QJMhwKrYG@s}lvRjVi0fgCp~!cJGsN z<*rsvlPxp|r@r%nJkds~op7^o3Xqt1X=E4J=qYH|ILm;Hek>H8`qPySrdnj8PJ9cb~# z*q9JKHoj~|OW^Gs$|n#iLtA{iS_P`PXxaxdL*RP)YgZ=4*hp;w7FJKlX-dADlM_?3 z^x?XOMbxZODnB_88=sQu_Jcam@A&+V2fpHr7_&Rws!%G8B>_E=+cTaanwG)NUB;uk zk*pGMq^ymkF>Ur+DLNEfdfB=`ok1D>)b6nhu(aW-P}@VkUr?+OqS}Gdao$ZA*F6Eu zU)4fBk0I_ly85BaT;<+GE6Bhy&jylvs}F1H4s!*cJr4s9m$&XcnNcaT;PZuU#n(gt zyY8>|=%4#L{NaxBF2E}ZPdV5aE9IVPVZaPH<)v>;N6sDCjXd1wI zevvuB>Wvnb8ARy@0^7?W6vL2L_mdLjYV%EQH;g)*X&49Y?x{<~!s1=+aHJwJQ%WsF zITC>P0)r3FOq|(dLJarglku~OeC)uXGjydTGh`?F2WI=T1FCGmz=0Efng>ck7(PG^zYm}VFGN^uvij{1GZ6v%IUY*E}JES^Xz`H)7i(vsmm zXrM{@WHP#M?%q19!(iWz}X1|N$q5MhsCSPW58-sue% z;;p!2+Fr|aKLHQ0H*s#HEGH3i&*02v|Jro);rP5mD7$cZzIOLhXvMPkCXzNUg=F-b*WG2_1-gvL zyHESSUdW5M+K7rTg9Zf_4&V|O zjE{;Jan~boA7xP|W>}MfsB3h2StsSRh{D-<;Y8L z6t$PT*8tF4JB#18ZbYWe*wtd^K-Imw)Q_d!Hcmn_y)Pz0rQrz-nr(;~)yECT?D9_7 z+e~^z9<9>o0VUjQU6O9lH?dsCgK@8 zvdM_yrX3y+*~Acc^Deo<6Eo@0e+*pnM$|G~E5Owjy&-Bf_U>Aw5w22~?MYFQ2Jm-0 zTW^RmB0Gh0_2s+!TS5z8N0LkdM$gfSu(V(>MCAAU>UVd;R{lf|&^{Z_5 zHzC}m9kVfWf{xNX%as97&mP2>=b-glADAEbL)V)qV*GP-*o*NM*GbOoP3k-X5r3i=T$086?V;!61_idKVh5nQvcQ*J<0*)!q^=5 z_ER(x6+CHt;H2;h z!Dc}`@&VeZoF-k;T+2n9f%zB0mV$HP@cy$%H0IN(dgk!B=T;Yz{?B1XCPzhJw! z;2s<4oko`9ZOEIa3R#JZOmA!ev z!(?lytLq-P;2nse)W+vfOlPy;%YIZiAV@BdIJa_f^R2e76v$DrVS(a`GGT6$cN{>X zfnse3x6nFludK&?bG}20mMYHQr%1mm-5s<*SI5=!-6y0DX~MYgjxAu;n!hX)aU^Wh zx1U)>W0G9wK8$tT!2L9S(7j)+VjcP`P)h>@6aWAK2mlY5T2o6>KFiX$0st!q0{~P2 z002#4ZgpX7UsPptbaP)rLsKtMZE0g)bZ~PvH90hRUukl2M`d(OGDUK7Z*pH#LtimA zI5sUYHaIw6LPK9MHZ?UZF*Z0hUokc~I4vScZb1sa7%)_1b6o!4-F7xS*hK(QoFT3x2vY6?z!FPetr78w~sVL zRapjrMvMjr2M3Uol~jX+dldi&hs6IH;YDIm_YwEy58g#hMgp#Sob>SJ0?9&LNgNKY zE*Aa42>In2)lpW*1r83M?oU5>IW^kf;NYI2a+2a2o(9LAud>Kyy?$~qod5bFxAvfJ zFyKVm-0Kuh6@%)eXZo&bJG2g-K(P^9)Af5K94b7pfG|!>Ru(r9jk&_WeO609Zw*}n ze7)wg{%pm4nI-75eA-#D{*ya*B&#Hs+v0TGuSG9o77_0EjSdcA`Huql|6M>;1@E^v znyy}gIg$IdLW{$_Hj$e_g)4sw;UD^u3jq$eEsj*O1?$X4x`?>lznu4n`kXx;Xni#v z2yH)G``-8?P%bg1#xPbH^!tGUa32xxuMVeQy~$aC?H*k0`k(-oZZ|%UjEnkjKL7H+ zeE#`tJ`nWv=?8Q_r~PS8*W>4*i|L`7d4E)TLZ*`C;N%`xc@y`Yie!21xzG-ADyTTX;IB$yFZw?=>yZ0uI!F z{iM+8@buXqcbhl-x|O-E_ososZU^?C7jxOZZUkL7uQqKr&M$N+r#$cbb5W^tBEFz% z_Be7i{a&E{>!wWX_bOG>K_dZNY(Cm$F8kw}h@zv#u8C?+Dii|Fw%13(h$xj$eHTtoL%E}m3j_EM*M>E%$1we~FFw8}VE5zGS(`Bj|B+zDJ`DVaT|=(zS<&aa z)2GMucj(lGJQx-4cpTF5bC1F7f)swHgleRl>){k)W24V2z>=YQ z{mI?FXxr^pNbbW-zjgF~imL+?c4!$TEY1`?k^;?GMB;12?F00+-U-hdXAX%E zZ7y=D6l?6fH8UDU8@Eet@L^*Ccu*C{mE}u8n1@(wF_i($0T}VDL6uN?f&=ub!^b}P z`rk~6?Y~f~kCSA?H=7_9>L>TNW&nbCawV#j49=W`3-HzR(`-~b=<>8=Oa;)j2(pxF zmu0fOWO*1__E3I}7}o+7bASa7lSD`C(TU`U(4KnG-?@kHku4PZV!xD z0ucRsY>dx59v+3#6AAHd#Nsz6`1qXYIeqV(aTGpeHH%m&HcAwbj9_I{wwcv}T?D0- z5>|TTQwQH8L2oiXl6a!NN-E_+)58Cr2jBNLr;s5NadjftV&-#kF_yD#4~;-&Ba&G( zFTBW*;s{Azk@`>l?5Ld`gG$J6{7#e=2uc-zj$lOjVE!L^B%nOPewUe~6*jjUoz1ST zN+G4DDP-xP)`Uc#I(o7%;eUPFYp1zZUQ02~sQpr=R^6lHNF^#rX7BZ1o7nI(exPd&n{Boue!7*)R<(Q#g0yfs;nMiG8kk9Zu)w4A>+u|1=2ZN! zug|Mh-#f_MKs_bm8?p(1dClR?i5ISoXg59tbksNc6=IMLTn&W-i9AHpMlY!4XrQ?W z>zn6xw3PNOy|Z0dVyQ`5w=sCE&$Y8!|HFFehj#Cq70>6#ia-4J8Tx#|5&3j_wotdD zUobP*t{4x6)Az4@|BOFf}M|nA*sAprs1|teSneF%GJ|177vupc|@#yCI|H+Q;+CA29zabtk z-1U?E>W^Cd4jpMDanL)zuHks0PgP#8Njf<1Y6a7(*T8k^dhPXPB)K>(;&V-o2T??=w3h)H9CKvxYJmAD z9hrr*sFq^YnP(e#M34wEe8m@X2}6 zYk%zdQq;n{F0vlp?u#g-S%@0Tywy_Y(}v^1Pr>aJIm=BoLV zlG#BAn3gM85E`sYY8}GkU5G=txwr_N;2jJ>&s) z=T%BD)LzG>P8WI8+$jzIhV-*r7i26ZKIeA51by|o&75P_j13#rSeBlgRh&h9Hy+rE3NskeyIvmiq5xEf`$&4O0Om3@;A)rXX8}x*BaPi;?zz4 zNKTWQq-6JrZU{i_@4NaQ4v%d7xJ~D{7q0jMz7kpj#+OjA3f>iT5GU<4V5>=9$cLUD zWoh>Xnh~MW!m43=)&=t{oRN9rdN;&Y@HkP>>wnU51)bNJGjpgYKVb#DsiAlHB(8PA*Gu$7%(bUUiQjq z@@U&K9!f``ll)dThPIeV_&+;5J>Q95KHbK8G2Bl) z*}ga)?UyIbi(SeKaj5ALM2_{M&zE9|OP(rfX9kdfio#~Pb91S+uTgd095fEbLg1qL zXesg|Vy`lUaAo;~(j^DU^HM5xuWBPW2+R{ zrn^ooR_-KfXOUAL=#)Tu7Xl6GvxI=qtLsL2rV#rbr>}xYxG4v$PP;7*-jHpoY-W65 zB%elAA%)*ytt7720*frIW1E*jtfwUSQeOHkrYQDtwr%4} zozv-A+>C5ezSOjkb51zA3|8ms)o#Wvaqn-0_Qb5plWFh*DFS>vD8!!s; z2^me4uv4iV6?I(j4%|HT5gN;!Y$^M}SZrl9A)}v^_&6gmr~?UYL>uVo8j3tW^%~2& z*=rTZ$gzf$;nSAX!kbjf0=aAza?+MOx7G78-alS_Gu}zF!j*;YTJB;C49p!Srxz5B z?hoUNcsbHn)VLR=oAy$vR`w&!?>PCjQmi*x?dqT zx&IAt?W)6RekMJm95q^}k3ph_&K4=K9&C(DVd~xL;zTTp<-xZ32uOH7G?59J?jwS!_BfTso#|4wyq4*l5 zbOia9GBzHo(E#hQX%puxC$r#{3|lfT#y;d|5-@{|mQmg30Zw=zCNR2nJD6iRh5 zRK7+ieKe8kuo80W;S+Tc(KJDVxTZ+GCl_@KLmVYt#-4+ch|`9}9!!$oHBc5|x$o`9 zfy*{ZMr``$*w0MCpQ)xVj!*@t%jh6TUtAEYr(ocq*VVO3^`QVl5}R#U1HHpQDz8RL zQ&9{dg3*-FT^21;&Jr{xm@{EGpGlRbVylI=`a5u`kr+Z-;JV9zQAycE3%ngy=OjB} zBFaA=wykWG%j6K{X+SViGuPsl#w9Qaw_O-w(`yCsg#}K^aIu8d+#BN-n&CSV=oa8v z&_hwIh+5Y)>v@QP;kkm@uBLXR-~gfp`630LKI9B8DBVNME4)1+;8f{%gq+K zniapmcitRT{KO=Jbtsrl~2kWv#TO`F7uC=+~T$-F;Y?DCwpRd*O z4~J@L1YNLPJ9*gHRo}LXrWq7*_jzrNz9alwl=WBPn{70RUXr-B4NpLja6l~->uATTTZr0$YR*)F5``)MCqTT=lO*2 zXBH5sj?Uu6u{6Mq$4MTrYT*n|p)V{@>qe>Rgh;D;wDVVR5%==$^J`Id{fCh$s;`YT z^jJOyXGQsMdll*+v`m97efaN7wq75}kE z^iRQjBg)l)=$C`(+_jsn$kC0RCOeX|c8-+*{4=R7rLgSqpG60`4=0S?iOye*=)SO{ zpK>^LmN@yKen%si&On1|WiiMdU76BKS++1oyuA#uJ<-{h#(e5v9RnRJG}cu#$=|QA zYWBlG7@{IYBdJ>2Rkh)?3F)6VuViIWWjBitk@=LxIL|SqW5sg)`C~=lC0t z?!Mub2CRJBtqo_9EZSV|NP5Kr@06i$*x$1Xxyx{WB+E@*OgT=mVCIx|{IG5P@j{#q zdgHB1T1f8%M&nm^ad|N`J~v$3Nq+dg-p;O3$-goO%_NYhAK=Dot)wvyLn`(;W}T!p z$6D6=*7r1(olF~lo1T9&&;Dn4F+l)ghP<>EzO?i~q6D;PM>*b-5;04plqHhr9C|Dx zpa#u2C5?+-{da2JWZhOkYQs_%J_ucl#4KG?N6M*mlJ~VjLPAzPPRmkh_AmMHOo4%{ z?$D@c1X7zrAlOWoDN6v5Z&S=JYViThA}6?a7Gul(s%WdfZ2Zrhku$Kc6m9ra;kj=s zq+X=W!ym~NEL2S!-})eNr%s>Sk|DklgIqKWQ6&!?2#7R8RYs)7on2}<;^-h8SPG^a zZ=~(Mioy^{=;gxhrY8gi3{vWkMw}3-Lb#LZX%SWQ^(yJ$@~A)YMgKj7iTP6q6N7Sf zuWK*R=6iQYBh%z@+HvcWoB8wWQ|es6li{{HE4Iz(qd zYr0%>lI9?Bnt(aA?R5$XK^(1DhyX!AzP}r*Gd0jGlS+LG3DMfKmmWZ&T4@t1CMXoz zn(IZok3W&t%~RMgQhC=B0cqygj+{HR6xM4ti51 zr5v0hs3Y-05NNFps-%k{3H4RUG?uwErDiN~$cX9zyHz7p=Qo@R*FxqBMohdV6eBsc z1a45^kE$(!ZqASCE~8AggA0Qc1|vv4W6GPOhwPHF+m&~t!$RoBkHX&yn*_x%+cbwz+ht%Tc$%BO!%5~> zx02u*G=sq<2_L&_SdjPrs+NE-2e;-J)T?B5q|XvB+k!^XJ`|wRl$ep6i&tldYdD%VMFM!0P%Alkk#oOTq+JumlPZ zpBuJ_7nTn2*+H^X)1^hHI^XSB6a8C>L{!h0(2p34pJS-x%lYOY>~`+Q2~qrBA&mu7 zAsh1B)J62DC`GqB^Z?RH&V5Bk(Vj6XpsDg^M!aSxWUu$t8u94cj5@OofLVek8UamY zTF1v+(gSCT7+6&sDR1DG{#=rzLw{cVWq--$iAF}zH;AOR!AeNVrKo5ai82Pzr&)t(?ij9EEOB^2JS9D=ft5Y>F0 z6Hzb^((0pgB4S5JCFpzN)Zt&I%Be?XCn+usQw0@bjjd*m_kwBE;=Vh6Ri?E&oR3!yKr%vQ8seSV^wtW&0QO~=C>tU6OM4qxCH1&ua+OewZJ?PF^-Uh0 zyNnIWLO10TKZQ^)^hwSsb9BDe0<-0j3A0k6e02uM|%3e*0UpMA+Z?L_;5A=)0LAr&W)+zGa2-w!uoFOR^ZUY68X87kY2H2E4P` zB~QG+rqs2mkC@tqj-iwH>O^a!D)fwPCm9$9mf`JMUt4#XO4tcby`PAKxmPDh5(4>S zYrQcF)mkkQ>S_UD=&xuUmB5U0?@@NjZN)))t$z8il0iD=z)VY=0(AVbtcQ6w0yX-ftZAmPFUWnzP8c}tiMj150 z3ur;ZK@#b*Rh_Ni3V}8s;m8e|u3CPimfoU%KgD&8p)3K9s+Wi_KNSbx%B+B8Um`_` z9gTGVViwF7vutH4OZUf0w@OAbE0`B~adUOt$v7Grn`9KV|0Z6_Yk|}VoO3b9P{IzG zsi1vt6o)}%1o@coL6pSi4-LRGV{3RifnWe(q-H@NV8qhuSaW7861x%d;EE1bE#S-w zu@RbCZHPrxlY#ABPz4#VWAbUeSEr*wnUX+vFs*+dOt+$+3&YpFoX(2@V?nT)%a?0m zZ)u=o&1%)fg@jvp;C)w9P@Az;4gbn08To0i)^m$hImmt>_RPZjnN7Daw%n@ z>tLNVGc)oYwF(yXG|*KyEp@dlR7vUENnyv_4i76^Y-zHhNm=k*(iM>lD^5f`Em2Ro z6a!&O&wG}Yk%Ty61uTrx4L9#(dH}v^u3eDBT3zR_i?$V5iR0MduAR3t3G=jXxWqcM zH~pzeO>vGe8dL$mkr7_yay=(ufCwe4eKT^62V zaT)(ol&Q{4KdhP7DZo^DNdw>^`WG#87Xqj+S`akdsU?Se%G2%g4UClC`kMW%b7Ppr?ZY#KVS)*2tV-p%In&DOcWdF#)XE zxK9#R_)>cnS&hD6LAEwZ*3G&`-=%v?d%>CSXw+{bU3JrY@1*QC%ZZq!E9N4US3%kM z6BpBsfjpl|5q8Bi-Up#V2^lP~!MmHJL~rSP^QhdaICW8GU8>xmS7yo;ywAqL%IFj+ zr7mnm`q{;pN~79D6O~o7oRh2kZElsZ)Km8}rU$g888TBBx_wCW=wfvFH;!0lV1e3< zee(lW?#!t%|wN_}e+BSWuEQ8So_^rwIGXQ>+-Cnk2u z+?Bw74&T8p4`1|4nh0V1ZW@U+c$7pg* z;l-gII<4V-i6l!{AL@^F)WF;5FGWzw90$4yOn{}TX{|6E93{h*!^d0!mlsfp?H&}r z4hj(y>FxaX(%-z44v_sX`B=XGT5W+Betv#h-+jI|JobG_p37)e3$?m1oQdR$R8c4K z0d8f2M7I`jpJ;vYRSTdj-r7hSxV}~aNKM??a?yz zlADuv9gdqX6~>nmRsD6kg}eLNcuWSCC%TScw zOz6*TLdz}C%(}d7eSHR(H*KUx!PfCooS7>XaW?fyaB*i*vQT>qd^Tc>xES1@R|%4| zo+9G1)eBL|d?_^hf109ouf^dtm4Kqa{k{nmf&Q^j8}J~8Nc?+&nB4!dfUyBye-)-v z@6g!+jwa6OAAd89Vf$LF^!6m+5#w)DmLFIT*vo#Cm@=zacfadECmg@^Q-;(_3d{%k z`cZo={9!z*u9zQk(FM-xF1Kue@Uz3H9jmy-`6RJx(e09cjAIi-#`#c1H#;DoKNfDX zGdHo-?om60Wu5O5Ob^56Nql}++YbTSi@keC0ahrzeT-kBReIYy;BL(w;fyC( zz-56magwC+Qc_d9mAug3A^adAj_n$S$BfIZm(P;JV0>mZU2dQLi`Aub1=&y!krSOJ zPfxYJ+*E4^TrVEq{C@oQf&oV{zmDN|m2yTeP##ajI>iuM!MdPJ{rq*!~_vC9Pfj*TVE&PgCRSxN1l6wVueSewGL`PG!F#O-i zA|Z~r1pmgmt<4k=E4(Ugt;~!zVQ_r!vMf^OiQf@U#5F1FQ-h>C0#;_Xyo05edJ@!m z#$WWLie4`9-XQ%QAsSsS3TQU%V?kZPV2wkX>()dC zF^8O@{cw2IiSfnBc=%xNBIB?!ZnW&jRhcbtR-J$R>&bh5SdSJBd z&QZ#RUi0uPZVCCWG89wkCEphMSP41)m{!c22OdaiG!oXfP!n8VzJ4|$ z^|c?X3!x=8NSFloF!UN2!fjrOCt(A0H^-j&J74lJnAZ66s@NmmCm=f*lt|!Me|~@s zsCuxtP`@6}$fTo6dr!Ub5j<%78yv2RCYl1J;{+=xzQ`75nMJGNbs6$L7Y&np+I~<< z+?%V#rAw9cSRaH|N((a$XfhV|xP9vQWN>lFsGjyU4239ppx(mB9Ln>`!jy%`$N_U~ zfGt7YJo9yfasBpqnFWtUrJN<)a@;2F-(T{iH&XUu%R4K?=X-9y#;zvA!ZPE9^AcPjraoQI^7pI_aaido_fMeJz#;lhj+P+ja{W!&YZRfQ#vXFlL1Wt77jE zrIJw9Z>gL6A8t(nOO*SYi0@sybWO`7*^xFf#-w;jS z;-33UXcsAm^VNhqShhG(PwSy`$VgirmNHycw%+J+d?jtJw-vYdBnUHM(cc4iEz)mk zA!l(F$P7X^(lihQwXl0{fQ!cQ(ET7W&O1$`_fwuV;{5F*Zy@BuB-*Oq6k948f84(RZgLr%}=#iiU5R6)!?0lZ6rIh|1+pTRhuPIk#ux^KKiOuM%t$Hfd}6 zX#AZd0AfhQlfM&#oXC;;#H!4Lk7}j! z;7^JcKl~m_;@)=|3e6L-I1XFDthF?wRPaL|Di0j?Kj4|{6-R7yoD3L`HJADQ6P1WT zdFWwP`QWkF&~V2m_E#?^4sgyNS-}aRV8;J@KX|}Fw-aw(Do2`tvvxA*rJyZW-vbwL zu`w$!P*U>_JlI8Ds{QxwNPp8xPbyIPGjgK5(d~&{MrzXU12!hb3o=#qJb1w0_A6i@ zit8rm1m$YQ4w)<;eCn;RbAwbKVBJ-n1QQT*# zxcm&}LYdecYVCUSXds!O>u(!fcFRq6i!ihKYJK^n&?s)Ni=9TBdFBte7MFWti`#^X z-j{}p`6zjC!w=EeXUkryM?WWwKX{J%y_+W!s#Wp>{g|oq zFwqC`Y`o+IzC5#BgKDsHr2&7znfh~!ch_4Uc23=9`)nbvi(Uv0!JX04OF(eC(yD%^ zT}wG#qGDM4DbN{b75io~gxvY9d1# z74y*yDwPY9jc?7}VK5fD+1Xk3V#PANO8s{C7jtY6#8U9uYAY#?y~KAiF{A>D@_z|fD4&_tn6&xIL52e;JicD4pRi|jT=?;@ zr=9DMf3SekZj)?FH5-akLx|MSyX$E9+OLFYny zZvveHCb>}Q4F27$m*ZuDFrt5xSMS*LFQJw{99?GacNXIQb$i9J6eCbZ1m(q2ES8K5 zX_z8r_+cbcG%v{g$=F++CC^S1)qpeMN0kZ!4D~5BF1Mo@zh5_Xi6Q6&!?{n+~Ys{*zneT7DU+Z^tt|ki9~#vyf{!?Eo@66+U7E) z{}SjC*B*9J>E@QNeYd)QGOD;yUTAqPZ(o1Qs)Ixnaj}%Sx-+z@BEtBWb(vWXMK9KL zhZYqVn_nG#hj|E@4JV0zMyb+ky|_K!W>C&rs5R;tN@QquSQoLGtAyY%kc;?g-?e;l z+9G!)4MQH{Q65d3|I+Z>Q?gj+aQOb%&9#JsS<2+H%$>kJVg@w zx}v)}(7$|S^0F)|QLgrk-sqoC){a?gEY|X9R1oFkVsBXp+@3k_4D{oftoa<}^48>3 z_OlaL!avTku!EGlW#kbBzr~Uh9|%4Dc3;t%bNkRT|NLuVGaF~^w(Fgp=sKM60h4<1 z;2+LAye=0SSIT>671;s(u@p7Fto_j>0~jgn`qut$GP*=6$Fl@n24cvD1-T7vcs5~~ zIR>@Aiq2XtQY_M;z zW}D7ywb{ux)_&;x>m~hFwM;Pj!JT|=i~d z-vKOprYyxo*A5SDC^{ae+}{{php~%(Ir);io~^6Z7r>kMd>^5^YqRfF0WC5jp3LNP zsIIOi7xo4%H^clo+)u!Z{A&$XiN})M<`X$%YwSs}=;otAZ?%z7&^5KR7*_f0SJH%) zM}OOYKELh2XP9^Aue-p$Y4aa??8$kSf!b(@%$|0;n=B1|&h~%4)=j4N==Tr^BV$nh zBPZ7#)nuMUmqB4%1$M?6k**?Qp(woqABkzN9XUJ?=M zy%Qir2oOq0AOR9cNcMBw-Lt!A_v|^FKRAbv@Ri^1-S_Uh_a)%V#!0m%2ODCVZ^ci$ z+&em`Kqcbi`x|s^p9t!|Q`Hp=y=+S)U|JeVOP>ND69Mm<%m=5G+oSCGTv8;hSL3d{?1Zyg*{zt<#ba8#xfD+=3K2o8@j(^osIN_M z?1rYILKc#4%#=&kh`+2zQ!l(^7EWvxotXI4RCKOkz8V5tgx>DL{`+Y|bFxEix*(4PoZmeMw=@if(u?|Iu+2V4 zNun(&qfT>68vfYB(N?=u0=7ZV5`WvPdzf(KwmgxFYK63)6YKkvkDL#`BA{dP(2hitObwIHTQp!DenfeqlT}1RuGGad~LFyKO4nM*AWvU6-!l zQTo93lDF14(m#Btwy*N5=WK0Bb8`l!r-n@u)GZDmDU|%lQ!tpcklj`T%IZyqokaJi z_+C8de9bq%Na@Dco!uS4uk?O%)qwvN-&Zti8{*6Y&FmQXR-L|N(hStSnJ^HngnSme zk_FaVCCu)aFjR=?#+O@kANR!ZFe$_sX&DibMV=J4RzlF7dG_t9o)LO6IBqzh**&BWd+Sesy!ekJ z*d&{~tvqH@KHab3*d{!I=4%Kcd%`T5Kdp3ee#*F7?)wbZ0+N6i)r@=$*8nHY) zw!Q(3jMK7;*>;Ub1AXfATIs*Ku^*OM*w6}c!*Sz^8iFF#SDyj0--=AHnJjIEaym;7 z8!Q4PtxH4h2cmn0##7_H(5xo7;TpJtyt7>`mz145J3EVcVTo|5hP~SiNQ>$%XivN0 zlmxpCFomIP)fH-9Dga-)@NOKRY`qV*GW^0%Cj*(19hFUOxEC04k+AyJ{ccWM5UB-) zY??E!yr=NBE?A@6GfBRk7ty>K+Rf7j^~6>s>Ya%TUokKw*9Dt*z9XuaIn8$;{bsI?W9xNVm+StJhAZ<(b+7MC0U_;du3 z@da~|I_;zBB5dewwZXL}ZXe3bW|HgzrbT@Q1(ACrU&J!?sA>C$W?s1#8-iE#*{v{J zkR;o;03AsXR?oonn|>u}BU<)u-J%jPFcD1%kW8AJn}N!Hm6IoyS6W#9>2I;30wZ$w zV8ZGTaE5EX+^V#@RR5XwdmL&9mO(v<_o%GMR^q%I`%@-x;)L*0%u8ORf417pfqF-d z*&8_(?sO;s6*$cHj0i60;Fzj{PeqD&pVX_X7+4MB=T~QaUsVCmaee!Q9z2dvL%^PZuOx&viJhyvTCeWD0U20m1RGjrZOff zp8>yqV1(zyYx*C&F{*jt#!W!ufT$s0xlnG+D3f+F-w`G%h_IoWz%9ZOGi$Idmqf~A? z>d43*3^q@DvbUOms}JB;?%#372IXSf0!zr}pU^o1iYS#Eehc!LNyR)L{s5w+C^8&0 z*c5C?^D8UIMlg5dd8iraLVT8^tt;0P{P+6s1=R`E2ND)#FLheAI(-6%kF6KXHVJ+u zY)~(3i=xt^-VN`QwhK%%qq#r_FSLhq8hl8?D>yxHrQZjM7lv6%zC{j)yX!Tho}ZV; z@(K%e4<5w<<(t00wF?>{tKQ$hts}vNth>w9ykz5B4j+(Vw2-c6l61wDv0^lLvoy&J+(4y_et&cJd|2UK<8OzNnNyNK4klnS2A zY@75)H9+$HY-QqNbBO4`*kSg^bJ5-J6kCj#>(pdhm*`sNM0$tEOc}qc!-FCpPkRLi zs|JzEtT8Wq3M?sr#gz0|m8gU~bsiL@PsQhst#ImRq`PAvt>F{kmj*~93Mj3XF?wp#w7zdnv= zPXAimISi&R(&1p*&`ur0{^pY+su%u~LSC{v|3*&m2Z^!owUtgnNkd~JF?)IdHhh=9 z?%=vXyKBCLnH!-)1JT?8bX_Uwa1&5at2W-;Q3t_hHy&FGyeilVBmVkqXOn32;+xqJyK7CJ&9Bl+@$y!W&}mz9=URX^?| zuk@qs8;+kmQ#BXEl2)V#*~vM@)$|q|6!kGT^mWWw(fA^d5H=2pxP@^8f&X)oqlLS zA9z{wH+gVogd?DM(1w8Y8RA--`M~&Fp}Ktg7NbRwO$t)GLFUzLTv|a}1ZL1%hWw$d z4aOPUGp9oE&lj_iO>WCZ;=zXY@;eI|(vj}VN#D;y&h8eFb`0i*<%sh_s6&1^99CmXO{*GiW^I&jX17R@RR#3 zm4%y~edoFM*7fz)$I<{w6x2RZV%qS?bD=eKw$^lEvd%o$nB<+6tgfsCT z2}y*RYEfqIxJG3kp%x==`dC^_4&PMiRz#*q7&W*eZ2s_$as5bx#>{K< z<;_#4!0Yx2Uh9FLPSZGRtN{6o=8fJ1ugb6x0&Zt#B&{2QrRVqrH!>?1hVSxH>cIqry`%VPduCU<&NUvd45jq~xMb$;o0>cM z>8#+~^(F+H(T;pxZYa3~pk!1LP1%pwZ6VblghkL0_a#M%Y_7Ew9_)Sxrz%oqWzQrw z7gWA6rrJWjw=;KyO`er73|$l`QlP%&T0-75#7k$*tG*WkBmwnW z=R14XSZY9x4yy1ORQ@`hcXjExzOSKvMHbYXVCYLuV1!p z?@6hK+Y>Gl-s@@UnwkAh?`ZHu*8n^jcJ{{O&k<~hE-o9D{lU9n`$uwZZt89Y{qKTr zxmqf`WWR$ToaJ&0k}|>F`B?7nxY-5M4e~IP{Y3ied)n17UBkC$E>ZrDaCfh9=It!3`LEkFuZo?P1poSt(wLGPNa3G{cXXVUSRf^%kr4(N@^aLKv)$2$VPrzj3b;mHXWf6 zM*dpjWIZh%LZ`is957UVq6O}HbARkqoPgpzCW}LpvE2dCxVtKe;>LD>3MO|}{%I1q z`m9EHBZCF=f+0E8U55mNq=fhYAt+NdSW4CLN|G_h5dCN_SZyp601Rkf2;D~A9#W49 zB4{*%@z1?f_r0*4)FoROvd=Rqkb^^$HQYTFpi#e3f(x|eRHq-mbU^Kf(*{4QuKSM8 zHH1@}Hl?@1VF5esm--74p%fPd`6ij_s5XwNHxK9?Eaj2a9WQ%&JyJ1gTYMP_x(pHxNm2o1sBb9oYshw9|?(=CMv3;8piCDwAwJ5YYw zNRh5uAaNZmQe_dO!6>05sj%x9klvar*UqdaP|QVP?>-Onl(&&5rlC?^j<4JGItp*F6xz@=s-~ zs#b^`t&9)vlD2;@;b$(p&YU0a_>L-i!T_Jrwq!nC;@!xz*GJMD5p}ccQLCSy#54$1NX!l(0=DU3 zNi*AKPFuJ;wN~(uz#Gox7EQjZQ*kHiy^GT$fd#Mz*i)9I-EhDuHkeIPQ%DlBhq_hy z-f5EQJ1(F8vzTOryZ-`et*~sUh4L$12Wzhy`sIzIVle4hCq?>N{y=ff zg{0c+$lDM_Q4NdcbJel@dSA8uxO&oVfWv?u>C4NLX#2KMfBeMmp$=x=BoI-WG7$g= zlXy-RnO$qKx!ydipCMXv($F|Os!k#HjO0hDdey`#d6US2@+?iqZ3D@tr3)z-d=p~T z5T32T$e!j1ej4gv?y&&2qabAlqi6kp(f{)gTIYU;f8^tNgV|D!hhCXaf30AXq_@7_ zAy{-O^Xe<loTjMSSLb-7ZqXG4!{$UE{yKZnGG2^e8r$y?NyV4es{}yYlnM-n#t| z269t)H%rJ=w_b?M2%Yp{JY^9j`(`iHu^olYt@d+Ik(5kOlv`j_gB4=BTLjt)NVH&p zd`-i#h+z%-b_dTj(-)YC6#EwtXRC&H2Dx79w8uf--5>U^aJe1C#`sO1;s`j5hqHlc zUq76tYbe!~9rnE2`i?*y@L1mtVhRvb6I#mc~Pvsi7OGI9|aI5Q^)KFN)uQi<-}yCvRn-$ax;QE*XcbJ zv`fBL>ixdEpskX%aB})+7$M1t(zKi9bVzg_cT9Y2DtzN{l<9l@tp-#JYA=6o=pX}3 z@ELa@K$)pE2KnCW%i3PUm^MOuz5qw|f(iJ^(dVs`_FL3#e1n%&g#@EK4GqUe<~qWk zN;t5^s0T84Bqxi4jox>E*wf*tXMTL(>hMh`SLKo7lZP=Z2fP_9+~w;yt3IT)g-&RB zREkQA28xr@A^*tEjy|3D4-j#MhR<-VrFoEA(%ZP9WLejHgk-Smei&i9UP68C1`Ogw zncA4}(Ym%dP#pZ+W`XmJ#G_{quLGox7XBsbM2-ExD=2%|)@LeUaHbU;-&Q z;q$;mdM;d3jV7x|^%FKMi1WK;bYu|P|} zE&2y9I(U0ER$e*_I^AL4w5F=rxNi|_Az=z!sPp%Hwbz8-#zjG>8F$M&TKlQQHY6Az zaU5o5UbD699k)rtf;(L)VmOVADWAJW)ZQaIo9klZsMm5mC3J#~9Gce!zVrGos?SP) z;(ZLn9|=kKR{A!OE;||Vmsd^xbA=femBLd^o!isiBG!9d^XVerAyggqWlcMO0kV|A z1F}!?pjv(mvP+<<{^^ewU|Mk0PAOk{#(ADMN9yF8Upo6p{Y&pS83*YKvM-H?fL645 z{4~m{bu&tB?Ld!y&l`(^u5kJc!_7W@%1{Q7XJ!djMo!>P*< zpk6t7_4Pp`dD_Ejlz~KJjS|6Qy6h^7HVlZ!7M2aex zXDp&ofAp2;uE$fM7QS>=)|5NF7l$~Ld67k0Jl>xwEdpe}?N=uGx?tL3jDCZ!XyRp& zSb(xu*tVqbeZ@w)0JZ%kml)6tDR|C&KJ)P4*0D1i*QSws-xA>s#O*H8Eszq7KHCOq z=VG)Jb0E{$XQ7KT(bEZ&fojMSJ(Rd+|3!Q~l92MtbVG47u{#^W8Z3gaR=>8lP`7gf z@4b{v%K8R8BYHPI$_V@Rlgx?-R%HfxR1XE{bCMSI+OTWkHiIjW9*3AP~J>6 zPW2P`r)KDsV&1S%u$cNOU|qP@rWZguIX#7xYD@?EwHmg;Me8X~Sl>ykQu8VoI>H5@ zEulGj>>2Mi=@FhPJ`1hsm>hD})|1(Ylr5Z7cY;y6jPu^c2x`)S+F5E=2B=!f9#axQ zdOh%)0#$CNMfbS69Z$J+v#^oRiT*7?TbGP;%F7Y&x>c9+rl7+xJtlLvy?`A4%mcwT zc+t?Kp9{&{b_mUaVn0(zWxsZRepDRiCrRGDTJUJ4b0o!g-^Dj#BI5b#`a&CsSIVYmVSnXd ztwFUi>&6qx#|)mLUCRgKV0~8V8AHB0SE`hIRyF|(4w9Nx{Ym~WXFJXosfC{h(x&(q zRl)S_HtK>CbaOHd0Ex%?w?Q2!B#hauLn;f?76Hjfe#V zKXDjc=!c!CcG;JGcCKNCn};iN5cAXB-!JBUy?m~_(ziI=ch${`zAOkx2#_<097EWZ z>mkf)`-*x02f_qKGT!?&%tF;h(e>6`gPmJ-=+RYYuXnQ%MA~Oo0O>G*TDgTD1^h&y zZ!5QJ3+qpjpy+^bV~1(uv!SSZe{>JP@wgJpfm+6(?Mm}@pUSABSu3I_TPf+nOWsu%sKKV50Qp#Q5hGqa|@D+$RHN1(+^B4)Wmm#}zq-U)Du zA<>`p$`y&+JE}MHLdm!Wc(Y->_Ii&*kn+V_s4`!o9EC-cRUh6HS9;1Z8Mmg`x{>|7 ztpz!L)LDsFXU^$GV<?+*6BFm*SVf4S&%cnulegk zbw-IP2rB~6&WT4cy~ZSPF1olnCitlZWOdbU8Y#2$-u0=}`XlfS5V$a!EB$Rrk_q4T zo;`~;mD&=%S2;zcdSOE!che6S0*OM38cgD!N^Dyo*=p{$p7b|f#<<>9a_AaTa>C7; zB_0MZ)Oap+HFcQZ3vu09^B(7Dm4gR;9TJ*Lx~+2_^z~Gz)Jp}ng8iOQyEy`(zR%#L!S;~#y(tTC zbd`DfPd_FcDlc-mjaCNk`yQ`7A-M5P=2z3X>o*kwlo#S|e7w%d^t-6tWaOE?Jf02q z`x{g&`A3Y^8JV<@!*}-53sqto=9RY1AxEpJIZdI%#EKu(>rt7AwCW@1+C@#3AVLp8 zHDK)-ZQHR#9e{|DA|~KyZ@R&KTvz|%5Jvz*eGR}zB9y(^AjV^fW4ArAhzIb{Y0IOc z-9gz(*GUr#SGu{S)Wer9o8I`2l+v;?w770>1RJ}#Zjb+dX+U7$V&TUA)?CaxlD6zp zP`zi5%!zRTMdr#+oCc%4u1$GcB3=4nB!K{8GQ1BbPUUgA8B{*EOe-{tSb#yAeddPu zyyyo=FO6xsFZ1{$Tz#h{W&z|rShzQKPSsNvL?t>Sobcpn&-5q5IqDDJ_tiq_T^}s$ zRmokM`@Y)+sjlHibikdN{PZ$ajkelJZPR$hu(^^xk7qUz87+;Lo&r(TTjG1oD7sfJ z!{K4yFlshIopd;{;0!pwvO?05Zb9 za2J|!i+y*k0Jk4~0lC-ez{cW`^U}&y3w@9IGG1hytK@sZ^oj_NsBT=Evj1wiC1R#b zEft$HB%kmpJHmG5tiq=X*Mr$V?Lxni?rmjN1)GtyVd12Wt7Lcf41}PjkopC z^!JCWh8e~tlz8?;>Dvl3=$%;m+VJ(|;|7pjw{BxQ%mzY|7|O_Iv#uurtOZZT>te_> z4}ycZ{za>oRfDrFOee;S&V|rSxil}+1Gi_3mBBz=PGQkh#|&U@dj7kf*s|b z{W8UGn5htt=HZun)n@U1nnGRp)piz;g{$cqZ9bRB2RudmZ_k4(;hG%@k)Q@@IC<7C zTNSl%SjxjYY##Kt8G{?2*dztY6QU)>-LJ|LhAJ=J^#n^glsGC}a2A|?ts4FIs-As{ z%?iht0h25-V=t}lFMsk9rVVyQ7APW}Qd?`Owidk$ZZ^ zJNZD3hPRUS@k80UP-f`<^R+GkAJ5T`o!=vW&a1)MU8`G9DWSF(#dZ`U4qxF~OB9C* zVgX%qDqn9(M6>GKS0rE2ew-!}+Wr9tXk;q>YY)`{GF5O3qHg&`!&vI|TRg#ReX9Jf zSLqlK@@dlaI4f&wRsU7PprMOp7I0x%mpH)auEc<(!k_gtSp@C~X@Z`uCD?+1HeLa4 z+32!Z3XsAZ_)R?EOWz?$J~KU%j22zZKq9Rk(&q+$%kI4HrE_qL7Y^8Fvf5E277@*`X64a$#YLFkuy~kUtE__j#@fqG;XCo_1fk+^0i?? zU=$4yd{79Gb{C&Uc*wrejgQ9%=LQLr-s*@CRace!F9q^3C!pE03ZA4l#3LfTg-YAG zyWcmI9@QJ8c~oa+I%!-J^$r`E0INA9B0iP6e3d3O-phgFr!`Z><9iA$>fD$*kgC&S zV|V4R_e^St2a#q?C`106ya{txA*aIJjbLaU`)uWA_ya|WQgy*w>4i5Sj1ZRr?=2zK z_t4*~eQ~<`uGyINmSESz^{biVbo)GvYfzSQ^~X&e6w!|*ojR0W8uz!+BOf<*t9o~M zi*bnKGg3EpgZ#}y8iQTA4Y~e3L+i$!ZP(D!=QwqC+vF=?8qQoxyfX<<)fz_mErz<= z{_BSd@b3}`>T2i3YZjH|B_$?>zdV20m-*nUoP)@hhTDYMPUzBjN`%BQDRaP|egF%l z6khiDDc)T!FCOPZqAiLOX`|SM1D(*bR-sQkwG0*-S9}r%QP0~-t8=H}Oh14doCwG@ zIO-R;LEz2?bY$8N4!zkNxH)s}dpZ6R#iid1CNgVmJX@AI!X4bC)q`&v>?2BSvnW zko!yzf-GCj#KdZ*X_V6|VJ@ClN?`||f-mhtAX{%<>RWi~SGx_R5x5-Z8+}8uok*2I zB4x*!^Ngm_x2CdHBcTe3zimCJmP1abHnMKDd~GVj>yhIb%e%2p%IjPQBM|n#Ox?Dm^e$1X|+Z$i*k~NovkVwGYTsPvq8zhSHx*6q{^LrK3dn9~HM=xovp=f_@v@7p^r4 zy-MH*z=yu?onYV3x8%$>m0i}qT6CihHy0{2&@GeLH@HNw71+*2Uf%GgpmE~)ld(&JHnnZi-9 zM)T5+&fIpV>kl5}n8xLHZ{q&cb$Z9d+9cX4cV=x^UpuaLiTkVWZP~;-#$$(**OL+? zeuCMY?)J0In7}3azZr|j(Ig$|S!1VGt5s)qw$&|art4uCsThJo>Fd*a*GzeV^~)^E zg&ekXiV(&M`T>kRqi;1dcue2B@-y(apc&s{g#tD%U=W$V@t?*Z5u6t6v(W*WV9Ynf zA1-HV(%88((P$KuRB5Z4)t#fhK+-TEyJ;DCx9v@}kdW3~5;cJ5e;#-CW>6j*m)7x- z^&`=L9o#%`&CVZn*_^%kFJy16nBIkmeW8CD41Ko$f+Jv2NnnIr#Q3BwQLfZ1ef7&C z`@c-8W+=I7@g@M$kMEz^{%tVz`=F#;9_2s0pPPT=;5mofKOHs#-g%OfYwce@j1+Nc zC_nFP@nqb6A@jc+`=8&m`F|Yvfad#`19``QwfdI>7ypj~#T>gQ+RcCbrj_0 z6VII!3kmz-V6U74zcAxkJ3I_4bby}|^%G+IfpU35@3^-X&R0&9JZh`a5lKFl`Th3X z!bZd&O-6LdS_*$tKJjC9PZ4@eH5v@I&t(XOkCpsfRREkKqEL@_*v#1XL*t^57q{6}pxbYc{TNq?rtR3i;2b4|dXgB)*&mb4 zZ>2YSA8s@0Bx!qOIFS4ST_Rb1ZELOpL76PGkhX0O7|K!}BM`JJOl~n~Qtgp$LECqW zE__bm0REY*tFDp4R+{&UcH#^WCha=E{_%X(X-d9JKoVE*o^K4>+vrUcNBHksSy*&m zB!rKBy4y$e6oZ7Pe$$pyrF}B}#le96d#u6!?HshVd|07j`mfYH^ucVMhch)j+h?Xq z8@1k8M~G6lF#?o7K!g3>4_rPAsBplp2W`!EM&;|qXUI7BHTvQTjWP=b{bJOw z^>a4G@eH2YiP*Z$SI{ouY?m4L_v_;rpZsZS)#57DqrEL5mm&KPx1xXmAk8A|xwImI zh`AcuNV2i8h!x(o{6fDLWHS@gWjt$06-w2R_g{%_>*J5;(p4)CGtqUwZm<_Td%@{% zH(b?1_oIl$+!%hT}k9!DpB2Z3a)nGn>_vLcGqLz&hNg|e3j5vWQhQEl|Db|y^ZrO zn<&0cFjk3y3AZf1yJs9gRCVn75|abAzAL(+;N7yDQiSwBh-B9_HoI^DQ9!Q0KP*mC zeJ@gs1xAaK!)Y^?4fVt?7ugOhhi3RrLg@~8k{xTp$QW7uY{g1UlJ^0L+7}s=%jc$* zs(70oNzRTbw3{XKpjr=(V|~{prI~qq51nnhvYUv%r8Aup%qU2!JWmQY5XDj90#aa-LjImKihg`0W=>qyd3*^z}HegdI|s>p~%< zs?nBD^?S(C9pVioji|jJQ)_af!VaSi4{yg2CRl}S*#d?@Lhp&2kPD9go;!)l$ zra=45Sih!C@Ou2#N@yl;7-Bj|de0fIp{z}CkALh{@YuWmg3QODp@vHE(mP`Qf?&g1 zJ@29Yvz7dl=4n31h0E)%_U;0Ud($l{b_}SMp%+l}`7b)2x;HG;as#hC>*K0=%!Pp0 znATo_R!m0qdxwPq-X{{*XPx7y&^N1{Xv=q>ySTgi@o8Ge;KRNfK-x5by`d%{?VkUY|W9D7Ro4*imv+wZ|~i9=ovE z_DkYQ)!s=`PvXzr-C5*9V0fxTTw&k!8rp54HBgVLF-cfXmtv2axd!`-b%v)jntVl< zU2eR7d7ZyLpR%=?)0)3ooZ2Os+C6DZZLT=7)=zy=ZN5|}4cRH7g3d2*+nFR8=(G&S zosqPvn$9`%Kul7Ukgc?u6Fw!@(4glr)zpN4ll4g$I-p+ApZfZv(ZLJVQYgrue!RuF zv_UfVnonpn`m#rMVVg|ei63ix`3~dQ9HBNsBjqjx(!Ixv3EDD-w-6X0VG)I3Mj%{m zzeB78ytYS7YC=GL$CFV=%3)om!etMx;ly;eo30=Sj{y$3$ZP?fz(Oa@i)=qW z>pWBIp2!g4skF>TwkQT}OaRM2eXEM{`!(}BW}S;a;{DHGa@1D*TfT<;1zbu29qAdm zi2Jl!bPS<;>!?U2-@~7-gdPljnD2?CJ@kbBw32IJFeSIt9$6iGP?8223$4OgqgpGD z;3NXA>vMHm^gYj=Zw9EgGF+_Bsn8O9mHooPqWE;(y0TlVOyGTAuC=aq+C}G6lj$#y z&{vs-6bgo;dU_weo2rwmc9Y=d1wz07^-H3>rykxOdhprE$GELv+A!1x6S^Dh6QaNV zpvt`P;!*Jgz3usB#@H?ajmSPn)R0ZPpL74y{ieJ6HTCOqYtf#clnYI2YlcwHGx80= zHdXXxo#Cl@CN0l{1g1_a2Ge^dq4!CT_x7e24g>)cGN};xFT1hnrRB3w9WOFhA5KB) z!6EBJQUfx8@X=BfZwx68hMgpW%KNKIP3mycv_az`)}V2c&I?knVUO(5HJYxQmTXpk z#`uqf{HLDG4xp)03AmF32Q(TWC+GhR6qn-C(pjYXw(|nH;1!JYD^7bCTKQBG#SGv6 z_F+>bHtAbDw5PN~P=9e9lN-is_A` zPyY1Nwj%2f|^2gFDPPjr*tR-v9fLF{FN=Fuhok=y5|dCX7I5oYslM8^KM zxmOF1pt2b^nEZ2D$;R8Hw;Ws46G&!@LTbR-iKRhzGT_?#91*L%0RYs=h&An)lBgUX zw++TCZChq%XKAU5X%~s|l<0sc1e@ek^DkjwuEz7R2T0q8Z_H;beE35!80llcgnvhy zw2Xjr_Q9>RLdvzmP>O7+lwSyW|a!%`l>gRFW@D= zuiOcdi}UKb`g}I+(fY%`hkcUk{=HQ+|L0}b5XrjVF0wy|j2-N+@C?lbdUlK+@=SaE zm9VP}iz?cp5|RP}(hVXFN_R*}DBayicb6hDAl*neB3;r*cXxLV4MPsRi@tvEdvE?- zK4$K{d!Mt<-fOLW&h>!~3EW$}DM|EzD;9y>d~Ay6fgjT?DdAS5;4ysALnv~8Zfftj zPNQP-HYqoZ;YZKG&Cl$~>OZq?OD~3yac2xUX*-l_R5eAq^Cf+M<3TGB-gH^OMpJ%a zyg`weAMz4=)?nPtb0=qutIGD|v<&g4#n+@8=D~i`NNJnd==9AvUe5#DYS@9tfZlx+ z`_!9hX|jgCv!Tv{6bTjk7kzptv3*2JS>l}M+IS$ac~s!575NB!#R|l00CpM65=W&2 zc@82d(ptZ$2(-iMmYvLr4Qx15dWbcOvz;=y?9j@R@9-75WA|zBlT1!8_Kb z80A^VdK|ZZQ`Pv83xqWnFlXI?j1j4asd`ZjoQ==U;&Sz#{XUhz?Cnf3hKnI*A8*&d z5rs9%W+O1ms7RHY9&<}%zI8?(?}^0-d_HUIj{C?^HftQ^bbPB93j0|G07@)IzBw!*mW0my%}Az!~ALk4C@> z;qFdsxR6`KJdYV_A8t8Y^E7fj5Sqx`_fuOU!F*nS>^m^ZeqJd(x1HSMCow6zlm9Z4 zoXp+)ZGtxKnzrW54jWc4!+D;!1qus~cbOr+md8wDQZ4`K-iAi#438)D&~~Cl?4%dj zFce=a;%n17+yIWST^<_KF zAm{z?mlD#df>$51N&~YSN3>_i-%L>1)8t~KI7*4yKFw==MovXrUB-cht#xP_5I#wu z)}YhivM2leGI=r~{bG4jUIMei&D#gLYeLnjNh=YA?6GVb#|ff+C61j~S+h{sgilj= zuCH*N=FIAqx&t#vmp_qBlQGR8qb^{|j+F;8Bix4GAMlaxHtJvY3fzW+mpt9J(?t1P z$QGKebA({UR{N_(fLRJg}6&(b4yX;RU&Txxt)Qy;E%_RZ?iXR3oPQN7;c ztr-P=xI?D8M{1LcmZJxvhZWp@~daD&OXHX-ktnTtftJun4qDtDdj&TJ(y@ z$lyAfsd0S}bQ!Z8_~~ftnXwGkos>ar)V*DEUMw-^JC9;nauQMsOXu0l((+{)Fw&Oe ziaw^2&zejRc&Ti~<6qd<5ZV>8%^xJV8p&qQ&>a{kD!Z3Ual%xKK zfSd_PC;`29vDkaUY6;Af^~aQkgv}iSq%l8zA7D7bXKIY5OEqis?hR52Zwpt+MD?_6 zQW@e~x&%R8S7=O9s*agCIp1%Rtei$Kg(S2CzDaJfS!f)jo6gjd zIBYQvg|CSbHR0(nUm&b*Hq8$Fu6;zSJe#=LLr0$Z`N#->t{w3>2~0JvV&_$zJ$n;8diBl*}K;- zxZk`cjs7dZ``bM}&zp{RN!Rm-l>CEXsAyW0I6k1Yy(HrZ!$|eoxoe~!hLWi}I!s&` zlV_`o#jlB0w%#O?U|!{%y}hJZ&u7{>S;FVJn`1eQ3nJFc@y>hh0rh|P=pw%e5-|v6 zfN;cKJWWzn%9~%(vNU=Yq5OjCZ@w}?wWsMJH%{9=4)|Qj-VUEf-(m965+c;Z)WG0` z%Y#5>NA_<(*bA-NA8i(%Y4M^$9+HleB^&5 zoRJf{Ig2=uHFOjmpI1|a^~8@ZC>I9t4@*HDh5ooAmmENhW-zimAz&3VcP#JclR}ky zR0uf7j?0p3#3X1z#;roCmi8$<7|S*dtu(3Li0Hnz(-?&!ysN`6)~Nad20r_Ikh;}2 zBA6j_(him;b_wL~-C!0_2W5sI=YEh+&v3Zb?|fb3lwTWIZ87iN8cg?B%g-KQ8dY<_ z&V!D49MuRjs{{xQ4h4XXtg~+=AFqx>u?yVW!H(M-1$dZ3=M=XVEh3k=^hu5T({?O>0)~0LKDg9_Sf9F$DfXoJlu zI(QUO-)PHHt>Ub7n4bp`72aOcFaJ!9~C zBI$5TQnP%NNaqn&1wM(vw3?o zFyUvnuzPkG?E#b%fwgI0B0g7wDB@?^zDKd>azYM->{k6nhnl{J9$n4)13}oiQ3ON? zb+3G%nWBc^_XNoG@(|9q4(8X$JOm%s$cks5`;b?p4|JS`U&k6c2P6rH<#?a|TxX?* zXo^NP6W7$K|DngQAf;%rz2J6`m}L(%ebW;B|DPY@4CH7rm`1Ot%D^mYB4`8&(|- zB1YT1mRgJ9L+E{%Cly#CjpgbalBLkd#KifvnPoFvsiCVfl`)Q3ao#v40FqXR14mFt zrvTp`53le|mr%+g9xpNUpeMMCJzTjH^O+3ar>b{TB61xo9%_`xlgZhQYFd!gO$=eS zSavkky7<;)dX`@bx^9YXpr5m-=I;lcE)lst_h#;9WLvRgzZ&m*AA&h$YTfJs3*=8T z=8Oz4r4q^6vkfWE3{8ZQ6(S-`{OD;ZeLfFP_z42Fe2os@ru)&VzmFRfoc9P=EUc^V~U1hw0X#UGTe24xcz$JY~PA^zQNajFQ z=vTP2t>SZd`|bwE!0&=H3;hwGdJ0#z+-lqVZa+MtjRS-kk*d|=h z4y}r&g@ZF3mS^_3c^NLp+&)rn^D(EIL23a?7b0;|Q#FIP#XRM~Fm&+pH6#arwL5Ze8D z+uxeUSj%p^n1QGy4Xz>V0U_uLFJM0LO97?p4~HXEU8zCDeNT--U7q|s2YJdoK`8!D zKav5H8t1SuwpQd{EK!6>3zO~s@PZ*l2(7{IC)E>Lqkk-^-;CkvAutE?LwDt+FNVF{ z4*zf^Xrh1R0thc+0NzN0&Ywx3elnt-QEB_x(wt~zaYqJ>4mq{X@8_Zf@?*|kgsOWY z6Y85d*1v9bCoBqh_mL_|m4N2>BRHw{>C5c5#L@daQTZrbC=6FGEL{&g4FGooDVl(c z4_y7rl{&J&@+|*>&zpO6$d#E3Z)0dx{jnLj-b4(YUFH-m<$q8O?%AYd{ZCZn#s2Uz zD-_88|5yJ?ixDDRFEA@mMxtF@q4(iC7yhp0sv?I={zlQsAO5y-)8mzi%%!+E_Y-s2 zzfn=b$g^tv>g>M_;3u7Vn{`t+kHS0RhwvT__}ib9gW|ip_OpNd&jR6y?^Qe51i`!P zyXo&0C9nQQ=fyssa6Xoa=|+tXZYb1$Zhggx&YO=7W=lwf$l?G!{ho+@D800Uhb z*3??|oFkwY1(e)hNd@ZV(gguDpl`<86nMWDR=3{j;-V#jmafRk_F2EQ+6JFF zmrI3Mg!3V|hItHcr^T&!u=>xNc(cH2wGb=WB-Y%#yuc=)pWl9GB=b=@(U!{RicZ97 z1#k(nf&dk_w`cJYoMXGJ>$>E=zfjkRDBuE4XA{iox5cD&%3lB1c+MUv`m^&Oh_Obs(`c>wG#6 zw&|A1{gtrh{O9?AV7l5C&>caxTw|@3F6cc~s+V4V zJJ2)cN7}O1>KuVqU*kMEco6u$h;PdB>Xzj)`SglmJ!cBAUQN?|K#9t#sK&mrjqs6& z!$`XVT>a*_f4Xvr)mJj1=Da-9Xunhp0#@VQv0Sh-c&1#j=R+U{S;-H9#tYR5E!(D# zz<2@JJ?&<%x*fscx`Uc;lHs!UIkI5;p(M7TjbB4SLZ=VmrS9h&klNjH-(ILvgRcnB z^EON8{hkZguqC^PnJ|n=D=(Y5sU=j`2pwN0QB*lHU1eXl)m_oh4`iCH zFZ*aDd7bx^b#$0KM{Jue;-j%(arzD`&AIj^7cbMye|^~VJS{oL9*~&Z{!}>%-WOy` zehXJW*{NsPZL-Xt&O{EFJ(iZ^NyZaZSBs?|8vP?J$&9x2O+F(p3v6b8Xq zy=_szf_vhmeD)K+%=}LPL+ibV-fj=4w;1LPi-fEH=DKEjD`<5t3?6D^GvY$`J zgKZk2d$*-h8sTf-(~1K&)x(|JiTqiGmIJ_eH|L&mKAJpkk@iEr`U}3UiTAf$+qGmD ztF5!&JRp`ASL+d#I7Z59YRkS4&{SS$Mf5Mi0rr=5+t`ik1G@YB(T9~^E(_d=>dggq zgfEju#Rx~L1!j3`f-yLqI5XTaTHhO;=a1m`e{M8|up-y(6$Qt!A6IG1D&-Tfp*UIb zYZCITFoB6ZR!iQ;AZ)z+uqB9|TiIs!8U2-uNp5GojN|vIJobxmlM7t){F;)$#cvkyJ$2_oH#s`Yb;#UA}Cn;6wr4=JKY~teW?%VR;vL; z&vrlh6j8Ti&@foQ-Q%G*#u;z%&m#c?=I?${voX!2sBemI&ElF<&xl{&dHHd$;Z zrmJ^O)}Y`oO%?uVv+g^!+zwZFx~w5ea1Th!J=nd{X}KZJti0K0mj0ia3{EaCZ&Vt!`#!2C|p{zPIX>2qWZpWq7_bDjS`9%Wu-R(a(H4xzQVA zHk{^tHptZinX?q|IM?s2JS!@xKLr-pglIfHuaoB6LnT4x?|i-|=R5yBlty(gu!6f)SFc_`Ef#`|rSzPR+nxqLxC7lJ_FY9Vl@6H`ji*Jb^u$)%W z%)6{%IgVr4Gvts*{A{>G6h(PtUs7Es(DO@Sh@aQ@B<_0< zl^C6+7~&G%PI`fn=uS4q@o2;}IXb(N!)VEs3O|JCw&0A!d!!*ZWWkTw7r@Gb;YSIiU?L?AhrG_XU&M_f z_D}0{KK~YE$y)&IfUb&4H4v5sy>F~$%2tn8+riGakOT0SwtGbu?Vs}3Nak=i1FO}L z^6hqm7{rCvs*_T?A5bVs!|gNE(lLfy81KZ|Z(-{zh5SS#myn;%H>WymDb`Opj|%KcvdBmP2VI8?WT@YanJcrzyy}8ym^_vqiC2NTrhn)66<9 zWj@^}HzYKBuB4^Qbh@so`k}seJG<>PAC8LkF3*#&Ew`UpWfJpGs0#6AA4b~WEk12A z>vsm^c$eU5`W6HyxqBkw<(NgYz)|mbH1j3z!)y2lQ>TdtW;&pN&*jVjd<^jfuh1Bp zzgyTizHTypksIic_)Y?aF3zP!jJVk37xfTnpq&!kZe0v_2%ENWKedE$5N#WQ&gDCX zxc$Q92oehFG%o^NG0a36sWLMq^{1UB%fR_opLKJIEnl;gJtN1Z797RIQ|c9G-KM7D zrbof)br#z!q`b}h&i}S3=BcNaSzF~8kMeqx>L#pKQbh@dpCN^3H%v*Wyphn~W~XQc zU_2k_O|e#Ocr5q@@N_}Dy@8<{XA-%zIo9&+qga2$S-*Iw<-JGN{Sot36MvMX0^!J; zifKl@q^GvB)0r@-XcuTZb4MSS{csnz7n)(1UWV+fm&IbT&FN;Mo3aSch+oaYd!T(6 z63HSY>pMtH{(^~`ls|Fu+=DRu6$s&FqH>h9ldF#ScjZD5rz)=u$EE}>i2;E)jTDcz zY4D3Sna(iEU=bu=?(pKxPwzbwWY<8q=1x41 zhe;Ks*3M!DR0Whhb?-!O=*1zJz0|L_sXjj!Q8duR%@%%=%=q0MEK-wZ6gvSI8u&Xj zj6^;*qs>))M1+r_k$dD9fWqzaXqkmN7U0MRzj4Vu4kArH3sQk<>kULv8&BU!3px0B5Z;lecZZ6>5^5bc17T-ME z8?FqXZ0c1770=uK0(guAgR3C!SF(x6?PT{Dd^hL2RMfz5Ze9%}Qip!U({)=-wk$Ca z0Zy{A;w78s`kLBv=DmNVmWk+kb+-%W_~D3fPe$cIIz22B3Yd@XoV?0DT5 z-k$#pwRhZKV8VjVY+qbekdoy^h$>>*{`glQ%lGdjeEovl&9N!mLUdSf!D<&e-Jw(LV%(6-` zM{L~k=?>N+Z(4H0tH5d}_7sPyF=T?1*IleFEj}FK6YSqm^OrOn8AsOg4Liq1VD}5E zdt>S684VL9l&*?0K1uN#ArH8|R+RpMHBKS*wHzPo6MnZrn`RTSWVn~eAb6vDT zT~SoyR%i6McxHYLLJ{+5I|IpnZL%|wtQa;2~@ermT93i=i=z&-o&v(DR@(driy!sC@9{U2nd zQbDOgs8l7-{qn*rNVN)lDqBf;4gOwE%vPEmEjGADx4NH3t+ZnZv1?{EBb+1dLk4tP z(xo>rge$4~ZG|gEIWxG33x!;|_`}ob-oo8n4(mWC&QWLWmq*e!=ln>8e7stGppOj* zK+OO^JkI-5Z&o1(^S9@_Z2GNFUYV6X`Vb@7pQKdRCGzqn zB5kd^eEg2vXKP~jM&RO`o{&<@W=GPxY}-Jre^9MQ6I=G-$m;l==l&iCZ&K|plBf6n zqHAoScvlfYw#SI`UBfVtWD01pt6wH5xTBfR`R9qcQ2M&~6S`%ReHx5tkN@KBXR}n1 zyUtco7OG%DH*oB(Ih^I4jQ1QQl&A2WD%>PfMseb^7*-YfhhGpJqwSm&B*&9UtNwtZ z1^a;%Ox9YO1|j0^FJjcP6CSdXQTWdhN3 zpyMq&E#|s?W+-@>ldJF&^hK*~ue@>WvwA0A!0vGYIv10-d4<9ki$nbnOglTwiLbVB zd+93Q!&h1HMbbqrSpYj%i*rOcE9Yxuh!J><{JqRLd+eH6YSOy@{N-#z^w(IfOqd=Q zgd+n^a?e&+W)0yS#I|K$QBE`h25mN7E)nrM(E_A!k2q2w(8Zerf#HcGZs)BIDGD>w$DL(Jp=J{#ye@h7 z1$UQ-`PtJuIgS{%`GV63?CT)hJ69?jy?ma1na^hqWc+CgHiCW&GuXz#3z(alW6%=ZgB>Ym?E8f@g9t2>r|C(re< zH#Oqz;BMbliQK@Fi{czwAzWy~k^bOc7ZNjJOkgUqGL>9jiXsq*8G%7<&uB(KEJvsP zW561f9{HoVA`$7dRzxley!}fv?too4`mv78-ZAOo*CLW~zqDnsCE0NEMupsmW~R}N zr75|dBy(1{T4l@)sAg+O{lQ}U0yQd44}hg0yVZRSEXa0hE}ValP_^+JLz~?-wiSN3 z`=zHlc~T4h3GUT%-8q0htXy+DZ1ezi0-*8T1SYRlrd1sV?sgl{xU?S5cUZTbmJS7* zo$lAOwA`JFqsakYH@}=qR%k-7KQH<9@qLL&L73j&5=4aSo>L zJzx0MQxNJVCDFQ)f`qOHC+QNHD7Ha|@NrhrOr)G$P)WdfWsbIv+x0y+v|^ETsF{%KswK$g!$GjBBq`r0HiPYFi=q%VWC>VzlRmpqT`Q<0VgSwx)#T|vYa zIl>9e-d?;W`7N8*7hQjAsh6J;^U|rP@H#@GRoi|7>+#yN~hT^N@4%zx>Y?VJaPk?e01N4dDLwAW<9viXPb0%|R z^1-khFl<)233FBN>oHH%El3@0@h<-6rn(SSQUl_kNJm7|bX`pq>B$5W+$@(9q>7)Xw5s=UQ2TKPI7abvEaRAK%Ub|h9|aNV#q>yK_x z8D$XNQwQ*RWhjW@E(j}?tBM837Z+`z6Tr9J+oSt{}% zJJd_arW&H|LX1EcukjIdLC?L5)s&)ckk3i2S?KYi$P~n05oaO6T1zNzg&{!F9i#Z= zZ1+wRYxyW8BO#l~)uJ$7*LAwLiW^o=iqdb61Jm^FcXm$vpzrPuX}t~au4${+p24Yv znHn-BnjQKC!@cjWbPMI$--uNHF3)kQ|0>dXhE63f)-FwB#!j?SnIuTaRnagy*kH~= z)0S{C6kbhUO1*#7fp9-(7fXdPT>KMxl}p<6fZX#u(o{<2Vk-8y;~lZ0J*?=mY;q@L zZq5|1BR-w zA5h8_u|4U-w^EkJ)X&Dnd}KtZjh$&uQOln#d6xvo$Iwn>jU}6ir-;WKmil*P6y6un zK1ulp9te z?(!dRisa{lT!2)jAR_J;rYSb^clPdo-0KfH`t~1O18jy4EIsT$UgkgPPnZ#A7#tW* z`o}wkBK;To%0qwS#Fyzob02Pp1b z9m+#Cr&N*b^`(NWxb2yAL7q&y%LC!{s3kvBzEbzIfuo|r+bTNSjl6L`pR=ic7N9x- z$B{_G|M8Ad_U{L@tbcrKOn}r?hEEIYd$5@$nqZpzrN=LiGDbLZ#}s$aFfh+DS@!rl z0N&|*k}zXG%QakDdeo~6lsVEshpV5ouS6#s=aV?OY=NLc8fgw#a^HV;8w?sf?6SnB z@6Q2}y=aXU7E;=$1WO8?HU0GuiU-N35;l|oc$2nVRBDMyX0>A_9D2z_6Lvy_?|WNG zUYgV-`?kbJraT%Ujcv9GL zrYW6drE1RH!gS`M+SZrVDY3qVO+(Pl)+{~pXZOMdZ3q8ozGkBSY6 z7b(WXM2_%r6y08y7uKc86VeaFVn%5{O@RAknumi$5HnHF@WhOcha=nY$k zRvyR|9}eRJQPvNGM{U9oa@UAPP7}EH_BGGlPJCS2bZ37Bg89$2h}S-IELETaY{T-q zF#f0?8yepm>zpL*Z#yV$GM8OOp}FqJNv3LxV|JmoCNj(?AFDmSMA7(Fs)yT!^rI#8 zRrd~9X`x99t{O0glQmV0wHHx64LuLoU=e{D!emEMHakLl$BL*gCn&aeCRinxkE93y zlfK5C2s)o`B)ODCKlTf+KD}knZjf7U^baB&DS! z1VvqOhu`*|-95W!_iX$DFyHsR_r3Al=f1abj;68gUDc%m8?nC+W(@~a>$hztLZpCF zPkv^IwqN;83G=4QdS(J;zZ_mcOLkay*=Q?7ugVshpbu)4iE}hZ$<5na2=QGP9hAwP zTT@dZ3OsWYmP04(|CRQX`q;=G@@#oR84KNtsdk3tR@fxQmUb)chZPk$1zYQ9#2I?% zLS@=L-G;jE%On9zNFQQXJC$nOiji{cS9-gVNg@oCUQ(3c5B5h#i#^;81DGuaAGCNh z8y7&edQWlnKQ%Iy45nyWy47XuaW!!GtaiXPw{`!OgMLhi6oWv9QLLGc=}?*B>teiR7R8fd3J=P;I{k>` z-Xg0e7aQ#SwCO@BO_*olhl#p6w^4^Ym{TM1Ii$v4|WkSjqE~d`L|(35#@R z+UWYW36EQWu~8a|yFs!k`l?uh8&{#gIfv&n6Op`=Ud%of%i?2d&X(#5o)!Tiz-R8! zP=rKPqgT@@mlg2@KP8j_UF?=}QQ>wkUS>$-&*-?3VJ(miLa@)96i1>{)p53<&b9*; zVb7rOtA%aWUazar3{mnF>=Q9H$&+ly)diNMIrWBK{PLw94}`Iyd9edNyWmzAtlUWK zi0MKNRWzznKFNW^1u$N5o}LL=Q5fq>-#wH{oHs6BQDtUR(F&DfNa6$zourd0)jIAU ze(3j67>b(4J)2n8Q#M5i&b2oZ&p-~f;=h=r;knq2cS#c#|F++4L_OPL4#IAAseI;j zNGlg%ue`>P6fK~HDlJCvkw;1oK7$?797jWqh?MD$=Q7n`Y+2O6Mlpj4b8ILl`1uwl zz*7f#JA}d^DEMg9i>o=q8lKW=T2@t|cEHu1oymm5G!Zlv^lv2vJIG?L)QHxtc_eo3 zn&}KiH+f2;;_X-xmw8!DA72>`R9#j4P=(Qh)!L}6XA{1{Cj?+3yMkCp?W0H^^mJvg(NEl9d=T2iffu8f3Cu@+{ zd{Whv>?OcVolMoM^|4?fVoVGB`pq!Pic_T!!oCaSWRG??*sZo8 z)H`0e5wkN(T`0s4>YdbTC%-646%vbwvy?@n;qbNkfEIbt0=7em1hLcPO-9|sL2aa! zB--ja;C?t;=<`zmB@rE;s1311ktuj|YN%$^g5ecVeKVR>54idbVb_|$5B{Y67S74d zRQ5+MZ@ltSeu(;-TV12=y{ zC)>Cot;dKuBh`{hN4Vp@2^nK@x{5wAFk!es)ed$tIve3Ai0S8NI@iaXPsmDl@EYZw z3|Gq}Q`qn^qwysSz*?V+wb;It>LO(=fAoe*rzetZG~|SagWKG{NiYn-yxpIW-YI>5 zIi-WkV0t0U@KNkVsf||MZ)b2ZOCe+?pAimj9L|Q?g_LtgmP{gD=CM4iZ#PP#I4-}U zxThxtqKkL>-2!IC&d(J-=%FXZUx4F_~T6_x#N{&K)zH? z0YE)AuG=v4U185vWKlmA;&VoJR>|+Rm0#7d{@f9eC{ZvLo#n~#A*kh?PFo)jER0sN zeI1jZ-tBlRS8ynlv?NP?hzs2}-aD|K8h@e=G^$jVd~uu`{x1;ORIyJn z3fk0&Spz211grDUEoZK7s*iiEqjR%6CI`~|1(4%Ik`nS#3&};b(hWJsXE<5UUZQaE zyXxKjs)IoSvF@?@fZz^u8x0v3?ELuSHAQbtr|-H9zShjDLJfYN2OG`-96?uD_sifG zZ1t#9g}YNMp$obC>|jg+K)2k|!#x1ZJWfZ|Dw4Cxp|Kq`>DGp-RD8#XtczKZTbWt* zv~-jjoP|@$U!DXO2I%2 zCkUkrd9{Fuu_erZJVG1#O^hq9!I!N2#h103i1fIJ{fpm^HQnoER@g$!*V7C^k2ER5y*Xpgf^LR_rh?;jQ_M?mt-F3oC)dmU^3v)h}E!)(I{X-*76R^F|x-;%9-hLgbeQ8qC?6`2qztC7UvgEHTV3n)#fDZi81 z4)JL`mppefQW^CD*#nYyH1MtJPU z4YFTo6}?n@GtRVNN8=><9g^Et+ni zXPbVmc`EoNhV*%5P)Qc9gXWk)51&eW{}%Yb-2e=0%ZKFRZClWS-5{@o$g6R6j>#Q_ z%jDw(a-U+V(8&_`V|dg>@aNtlFte();aNf&Dqa#}%OSSjMil$-!uaML5_}2ig&iY` zQX|ouZ6{B!?WJr!@{aI%iaI#%j?rdT0A$|>_0P*Lz2iDo5*^RvMcVk||y}plhi8@31m2O_)vD9O=0M-KJ)Y=kOPCRQq zCfa@xXrb=gOsA0oZhQd1Gc?_>myda`R?}99P^RUsoMftVraD4(wg^SP5x6R0^{JSk zulBGWy~ZpndiH(zHA5}F)|hdo!Ud6FVCpVRYVxKUJpyF^EK39GRmu^LNZvM zN(V4$A>lu`aKiyB_-Es0tlFT^@{30^Uq9PfD0ij=ksCd~$wHJ!yCdyI}UQIHQ<~T{{M%ZT9LYD3o3- zFne&o5lg!8=BD?yUb@H|U@_TmBo-Mu!jrVgF90_{$iI^(Lrk(b?D{6mQxjR}B9qdD z`TZUPK~w#;&B{`!b^>k%tM2K$!irMU7aW0K6Xalzv>L z#xx$U+BYrVgm$@%C<9$m7b-y0x z2xwJZZwQp%SU&@17j$gKu=qFAlm6B?4F5@8YR%uv@ z8yfB!*M3D8k|GtI8*8i`rxoap4~(m@6Xb3@(g3aJ<`b_q6g$>(Fu?WQ!7fa}Efws> zEoidF#otCS!|&-$n&c{|mzw?=PJwqpJ@zk@N9Xrwa`n!XLz-$>IV~|s)3;wWey9_s zGKwuHrS;yc@M-v6QgVureGN(DsVKeg{0&6MG;r!QD=H4wa*~dzz9~X4Edp_2sIC@~@Co6=czJ5^*8F}cUEu=Xu z5J1jOUuuwRRZumnR)hIza^s;#!I3|i;ibXGx|ZqycZm$_bDB)5leOHWG8z;I+d*A; zl?nirF|StIGd`u^7h!rptcsz-WjkoR2OvFFW2q*#wxKH2qAKaAksnjiO|jVTjd$rvgu8GoO3MXtgFF^!kg5YpYb1 z`xC+tp!Y_ts@Nt-t3;aL9%Gz%@d*#bJ#(wvTi}7;8FZdMf5Q+m7urkr3w%@F7b;jZ zR>;3^%f+*{5-dHMu z(SsB*Ze@!JQ&C*1A%Dz`zhrna0OJk#ulv};{a$kx*)Za^R_s01w416RSv&wXN87!( z&2Y=rpN&g0M{KNbH4QBZdKjYuxrpRvj z9?c0lVcC&j!Pc9btBKwKX{51E^xNM= ztlURc?*+O^a1-B9nIq3@d;WeM!DrJ&_ISrt=1hx7u#T)=#|r9j3>Yoy)yy*&6{%X$ zzbsk}C%PyScEy{vx_<*%bc z#*61puu(8xCqrU)De*(zXdy%Hc#Cx%0u=aF&^E0T;ag_4I;PYa3116PmK13c*t=$PVytot90-Ke>{n(ryb7oC8%QXl+IW3M>V{;1>taWW5>pi zbGcQm?CL+fje9UzD)&o%EpX}jDRDS6Qv}n{)=XZUQ#RDuf@)8V-9Bqcl3$$}S*@X8 zQb6<%T2 z8@J_`!W=u3=x1tAx*A<{0%U`zQCcV>Acehh5Mi9<1EmcWTYae@q-0*ZUaI&>BTrCOi7gRQ zhSk#XbnN)5@aK3`E6QGkb8*!dbfIJg{;zcMn?!@%ku=@ECb28J+EQ3od08I&ar(n+ zO60k_%ikfvJ&URfX1~ytZ?=;+2{{TPs+x~aNqsv)mT+mu_u13CO47zv3!S8WVX6LC zN3q0=wb|A-Q(%(BNGMeEeBS63(?WWHN=zM0!h}|)Sf#~Z3q|=}^*f&yuEmoY z5D;?T+0OS7eCU{31vki9cjog;|$X8*qTq$F=F{5@1uHLx@B_I4wr~XQm7Z^ZqjHlIc6DVRvtI% zWVOq*3o{#=3lUy6GLOXZ>=Cu%MhVznshAFY{p?BW;b^6A-9ztjg`x5TgRB&d;pu&M z-OGC;x$Xy@#4VhHibzC^OMC1Ogq7o0@dJrjP3?>b6)kx{Z}ZiyNJ+Y1C`mfto^gyJa|*Ju%s89H;BRL2tR65h zT6J~#@0G+*1JD49@nny++h&O6x@~i@da(Tv343DH5`dHWbMIHOPAZ zJ&g#USZC4#J6PT*zqHH2@ARRYMN3kuJK{PxUh4J~5j%<>Wcevcu2`^Tw8z>})&0a4 zJxje_&YLo=x$dZ1r7887f|s@rHl2DfJDOIoz?RiciNr?)(39*VoYpV6uvQdX&?~GK z8h3Ozm9~cUG?FR#at8fN+qf`*^;}~NPpFsJx?T{n-$x!f4O|r|Q2Zj+{!9iB&S;{~ z&SbwMH>;m8n_=2r(92o4+-Gj|lxVTz)K|@GZBXuj-A59ZA6cwYgbHBMFCp46H%#Kt zcPffco7Pe9Oj1-b0?(@GJjg&UgD-SEigBz7`;l6XbAaXiCMdOP@ zGZ~b}pV6MCHnEiR%?^@iqcD`U)s;|zA3c`T3Ogw9RF3U?nZl;SUX)!D2P4)-yICRT zXO^^fA7=4YXrGjSE% zxuXk79UN;dB;ydp97wksym_1|7f~*aOE*S@d!4I|(e4^|FUcK?kw~WfiaBaHnusfn z(?-|fc^E6b{3nv|(di{)fc1`?|qIOUXn&6@xH_xm!Os)aqj-b|HA!2>%A{ET&Z?ux1zRcFYn zeqJs%_3*^)uVz?uhKAyIOc&10MX;(e;iwbwoIS~EW1!x|nStHFLOQq~wvnV$Tlq+T<Px%heEU1u_2WTL%w6X6 zs!%9Wpc<6P$cxeW0cQ3w0??%^? zCwl#;iw2~Njd*W^O`=!&+%@q#BgmGb9S?<=1w+dCV+9(SOgrR^#NsIIjX2}U1gr8* zBVzWWZ84BzH6IOD%URS!gXk814AxM`t3ww_%$MtH#)tTIOKt|XN#o|mS} z&Fq(aFg}%%VZO@*S0;!eb#@hPJR%i@xG3hDVO(B{C*$OhVKX;*o#zOj7kG3%|MVW0 zpG;cSE5ca21aOtuu5|+3of*t~X*8w5$#WVS%x%fQ1zoro!>_9c-a}&Sp#fd;vq(7j zFyqbhA@ZJhm*OpOB(IUV-rb(_RyvLFWTct#cG^>O`I`)Oo@ z9GmQFQA$1?jz{t-@r-(2*j|4R)D99rky}sfNArQdPIG{ye-s$l>_c0wbsqwa9SDrf|LOUix_jM~3)|ZFb zp6J}YTj6Cs>UxADSJRWaQskUoYhe&Mlca^nk((u(N;FxTF-i?9@%$J;4`@@14yPJo zR+pE2esDG}!tq)&U*K~qdRFo%L8{pOs*+$Uga;!K9j`^b&OOW1I4B3|$MBUwvJm1u zt6qJ*dR8Yd5E;%phY#gNp`!glt~w-~;Oo%>FK+CKf-8JSmQkq;fZvL3u(WljvwGR) zxh&!e!tqt{<6>O=+VO3NTeWr5y?x5l71()zjSrkrM<0HXs9Lw2m4NyGL~QXaC@*6O z`)5`7_jHXvf7ZflPhW&2a&dCqGx%K!l@lPISD*I-CWeAB2Qnc4D@^w%HHg)Kp9kk_ z>A?Y3!j-(UoJwmeeh}Ti3Fp7d8mm)w@fX~T9oU~uw!{8E??^gKVVy)%L?f})hXpj1VOZ17#sxnSR`dek$y z+WHp}lXyhPG@_&o~Iz6k!e1-?){^iMxjcEY(O8GjTLyB!>sUeJLK9Ppth#b}u z1=DB@zYd(Jr79^3*#$d$0yT?*v~g?`6bI#qZnEv9=y|kEpkQFNuSv~>>4&py5(Ckg zTJJ39{nEvHN{6@OqfCQnu7ozX(N-rdI^1X$1=sQX*YBukr5fUe>>|@Q ztt?X=;(dyaX`34wQX)MnNQm4R}k1&wfsqzh$_j)i-1-5Gt{@zQPBa4x}Ctn#}3RnK(sbb5Wzr3+2TDCML zQh8K%bT~Sy=)st@NR#rRl8Bp1-hxxAm51+|k{m)-v&b|>9Ozagp~|X0Y{Tq?9RhX9!gJ-1yWR}z z4CaA2i-QBimS!IP9C}UtJ4)(lM3jG7ge4*bS>gw*pm5p$1*>^=i8VC-~~ z!p3UF3JFXoS!|W@f2qPcQ4b+NRYo+iXtK~V$@;9ql2%;41Y`d$C`_bE9Fz{C~`VfBXf12|q z1`mb*Us$umpCXIgH^?U=tR-7a}kA>J^QXv_FPkpivQ zEuJ&P@taO>LWc5IlSzC`OnTFtxZ69PBA-hN#cVsb?$N&0X};3Vg%?y+<~j&ZQn0jX z_ncc)*{heub2*aUQysM3J+Od}?Z%?9hSkYo&5`{gPGKkKuvK-tBF2WJPJ2ZMSBX*t z@>id2KL2`O9;K&A9{$@$g1Y?nOQ=_)s!MN-J`@srnVW=js78;nkNuci-Dkpup4Mw9 z(=v`tcm`fpPJFZn@a_jHxn{AZrSbfpxyO~r48b)ybg^j&o^D$Tt_BV80vY*rUcHM8D!$L5sk~48S$}KKIB0!Z*=!kTju?>1FSn&9(?P0og!5}j-70NEE*Nyw=QM4P=Vc-cOQkm?}^!*@6xy-g4jI#@wVbk`o&vPF?+RB zk7KtncY>V{=3Pf8PD%^EWC5rU8n|z0WoA8G^+u+MJ6?A{9N(Pd@$?(_n|RbY%g&cw z#Ag%wQ*#ifWkw-}SOMv5^Cj%0Tgdx#-)LJb7mdVzX(s+W{y^CFuyAWzJ_0EIDC^>V zUl~IeALpU*lJoout$L$d&6(u7YCTjW*e~!wDRyTmvN5_WEsw6LX!LuLaz`Lt?6#3( zg3+4GqCaCQ;7u2r0jVI{FB#v0qtxVkZSi9a0K4EH6civjx zIn!EI_;^g4EKh<u!fPnxbhDyR&JJSb>VjuoX}*Z7 ze_@eF$LMvQ3_vd{^$Toh2VAU-bt2p?ESb1PoZcl{7%;`HnMSRN zI#1BgRFR+t%GvWYl8Kd(sTL@k@+1iT>H^j&45)r(tw3O$Z1`wa4v^~>6=mmJB1uI8j;`yqfLIiIIlKx01~HrB82;?|kG_?GT0Au4UK^X?U+rDuh7!TTfgkzo$myTLZ{!)dhSN0seXM1&;RBjCmQH*(!ns2zFRs^%%5 z+|$FHP}CD8g{uO0v(WSSwLupuCg9b{019Wyek23V_IvI8tC0sU7$YMG*PGF-+XOb?wJZ>=(!}rz{a`f!ny*1U?k~6 z%|L8D5hn`wD93PxfrXGYVT}N-cC>yojuWnB@^!Z+^wmJ2yw?pFDQ5wY+L~(OAgL|Y0R3-OC6aKse zhk6E|iTy7SzLL*}*YGJ4!p9c<9>TBue?WM=ck1PXZH#G*RVw4kqCk+=D=7x~ekLpj z8ph&gbC@X$U--8a#2ED@j6=?pz7qyK&>4nGbBKDBVn(#mWD6ik-3`AogK;=-UX?Pt z5X?^IPz#Vz5qDu5kK@Uslh_MM3Rdt0On!}iq>!kWnLflunELp)-D>1B8S)DP=-E_M zA>bxwaOHhlppo21t`|-$_M&)myyqHl*4Rg0>Qo637#oXc6FMPWpo>Kft5E!A0c=h} zry<}zDNi0b2iAh~NeHySB#b_hF&Bn8dY3v31z}<^adN3VDn6T1hEayC?Y#?GB2QC> zl@^jwOxPJi`?X@Ue2$WQI>tMt3(-hC%YaE7iTEUPv($)>u`{qK)3%axs%y zcU~g!p$*rk?k^xU%8)>IGoV6~S1isD-c=m#mv)-k1 z^Hsu?OX{E>Qz7jWUG3nFqd=9oqA zlBWml>@nxa_{Y3U^Xh_r5esJs&DLIbJZeF8)m(DV7vG7R>_Yci&dJC23u&Ww^38wzBksxeX|wd#lo$IF zzs7!@r>GgjR`hwyCA*9MuK(fc5AtYA`5R=V8U6xI+bZcXxfb z6ldSp^-VU}>~1zY$xU7|c{6v;f9~9Ke&@`cH&UBCG#6+OW+gK$cUn_o5^shnwBpIt zD`sQU>rE0c4V9LA$C#BgW-=qQx#sZ~aTGsL!cI5034C)3a;Xh3fA1Vc))}AJy+!M^ zfKDed6f2?#c#e8(hi_F)#uDy0PEWu?LCAn3+c|ehe%p~!tgSlAMfA5CFVHBB7)E0E zRE+eviPRC_NQYQ%Ch?4?krSfaAy9o;lVGna#?>g-8Ri$y(SM#+{B-l|Y_P>}GPUzkLqVvz1Gvyg<5)(o zniP#F@YaYy>jB0uCPl-I+9+Ymf;$xDB*kLP$(xFAx-LPO{0X52uDzn;THt6LkoRcC zj1)OU+3bz)+cvWNsm6PuN1OQ(!DnX^cHBJ}$(P%_2&Tsh*WN<0M69#bKAdU;hQpgk zu&r7-%Xa2AUy9$2aVFRIg!G{cWo%7qEQjBp2t4M>z-6TGXx0X)yd2-K_DocuP!wch zLvziFtF&}?Nu<=O3ApaRdS)`nP$D|M_8uhKZkLitnbod&N;R@XD@*%k?O}BE?UQ3U zgzwWE?9u@S3M&%@*O)wC;PZ2vd^}B^|8q_hN_ytRPftYY- z`WSkNHw=DEvqYHpB6<8UJbG|^Z(`AO{GcVwVFPIc+@QP{%uK#=96Pt-X&Ai`x&Bd| zY`-NyDM?5z#BQe1O1sOyyAgMj-owwEM*E`blxZdk-aDPFCr+WK;xsTzydW!&Cbhrt zO}p8!oh%9{m=F^~@dy!5)~HU#Ed6OX15l<7dq<-+trGku%|q>}W8V1T(kW+bZDC_A z-aXmCCveKNJV;N>(|xf!9#whX?6i1bM!;81e5QNwm9<<_nw;XQGSWj*Bb!KLe{=&s z1Ndos2xhZHZjC$yoTr_isX_0YCPF9WBh>YA0Eb-H6ljIS=V-4EXKF%#OTN$aBeey) zkyetykg&4&GHqg9ebv9iiL?DsWncR#85u2+nKjd2u86$LR}tddDG3}mU*YoSe-(}y zfoGmr%@*3fq9E73K%(vewxX!}O2FTuZqz6wD_^A2cI(xtT$Gu~>$debLg$-OQrWWW z>qU@x^lv^E4x07r*=z+p7~pDX6Ra0#Idy~&tLs@C4{I6d7UG?%Z172W>lNgc^z2pM zn1vF{BlnQKvC2`98(h(=08f9mQK{eouhgDZZ(<5PF3pkdEy}c5rNPUo{88S|P#q{; z+}7UDx3DZZDmURMV2$Qu^#LhbEiYfvunVhMC$dcZ0^PBYlsd%t3S2TZX7$Ui9-aX@ zH4vfbY|Mz&mQeGu6&$~GHvu8Cin=aV!??tf8HskwmYKL@6Zu1b%9O5Sze|c$#*75L zt4%y;-ePrcJ=tQ~;#*c8L+ZYWm#(Di`rXID@&SnIx1)8r z)oFIwPcjMef&M~Hk1+LS@2?jqV^s==*V|KD|Ps}IJ#dnwTD#=VT0ZFjK$4a33leJ-YUj*ToJZ&e(P=SK9dYin|l zSVN;ZIu0~z-LOw59o_G8`Mbzu$(0TBX+K17zO;Ybl@Z=oe?lc-17>WK7bZ{^Y4j9y zZFv519zL17zV-3hZid^xg>{q>ryUwg?mlBlxAsxuIwhP4(NcvL{34e*_9K{y)@24i ztx^UTIN_3@9Oq+Rw_4SEX&fM$_tTtYQfNA~v|>Su%sy7P>QDf#)CG&zD!*kljm~ux z@O@%fU&s8l_OQ2d4M5!z(3X`)m0FUmNE@baxiMKV6j|+?!m|DZXxF96Ju0!_<4#p; zF)dSp%@4jD$aCPFk6Dz|YI2Os{#o}VilN*6=oH!G);8!M`W>m}K+>K}L|j`?RgQ~i z;_j5M z(aPJv<3*#C#N7oWQ;kvW+EuSG7`_<(n@j7*&XR+Ubjqvb_x3E}xq8_=Glo?Gcp?ZI6IO&|ho&@{IBeHe4(*B!`qqrM zTC`ZSI5eid=eD*yLNz@s3weVCFts~tC53PXHUL02}Q?(aO_&Gm4QFFO)q7S zrEsPs(%vmrPwL~@!G10l)MH&F9+dNzuif>#Tjq~6CF^M4HI@E!JAX9}vX)ck=lt0N z6pHGa__BGHI4F$N_vY6){*Vrp{bl{t2EL<=bK6Z#m|M&C_gf0xER2$xrl7$eL9~Jy z@2544{a~(2#7;j;T8SS%*(UkMXFR7;oFCHel^|`H`bz6O1thruG5Fqj5({2>g+#3K z;zQn4wvF#NQePnTt^(Q|5A<3&Xxiyq<8&2!QsmS3$q()o?b8T_eJ@JHm6QHL>Bj)# zt>|a&b0{Y2(0(dJ?4Po+`&OgRM@geD9~MXmy0#)A{G#khn9UY;4(Jl|Pn4|7s^~y_ z@BqH_$?{TeQ&>HecY@nb<0NNMLBL9GCUX#r5=|N*{+ezawfpC-3+dOg(#>q3IgYP( zF>g=hCMC?yVH->}B3wC%WiQU)zkc-E0Eixcz5LwxHZA9_Tk5DPB@ad2E1U;Ot4%i{ z@Ty+!QvXB`1MhwUN#ruIyJ4FwI(TC+jhY6hi!+lcOEs08f{h|_{-#?*$c+lQcsquZ zZd6@YSW7d=X`1HT6G@-%m9+qNb5Ew)YNa1|qo$ws#)>e|H~=BpDArgKGnc^J0tQGY zoG9;l^Cu2R9Dsx@2^}e4e>;!d!< zz@=A;e7jIr9DZHDcPmkot{VyJ^sP}-?~m^*n*b1rD$=OFRrQ%J0F(tKL@P@d_yBnm z`d9r{+P}UI*6ziwbU-OBq!-34ty;HHMXh)E*mp%v-;eI2^{CZIC7_bv+5U=+1crwc zX?gQ*`UXJZ<4NuE+lTObublu1JpU``sNAC;OzXL9{r9i-udIy~p^2d!q7t=~;y&em z3h)@12<$mWh~)ptO!-@%;(9HmL|6QGR*>|3Ay}MU1#E`lD9c7PEBJkken0RFLU~|N z>uYA5TxjF#{jt+*^me2mp=aQkEGmAeSp(g#t}N-jvW9BLic>Vkb5b*bG=f)-^nn zh%h|A@BL0L|IfPj`|g{!zaAvgf$)Lw{j}A{0wupUluv)^ncSa6g5r^2`>6F@G6d2L zFke~!x(3mNU*13DP`S`9NEI;XOptc?>GdB|K;Zaa*BlDfft9-Fagt@AU&tIdwTItN zyChQS#VEixer^0`D?>Kp*k2>9@dJZ|&(8knokeTHv>d!z_Ijf;L(BHzCb$Tsk2qc| z@st}{keuc-ww*OeBe;5>zOgm!nMNpL$zT>y0pi1|h0EF?F&PLtbTm;B!r&K4lAX?g zKeW}DaBW-%zS`&icIzs3lqf#%G^OkE%L2seNMn`I9p;<(X0Q9$Q{mEQ%usOK5kNzQ0KJsRwHbnv~#MUk%03lwC< z6q|3j{s^%15x*?v{ucV4Rs8Bi{O%xt*#K1__Odt<7Hjn-EoaZ7YPZ)=63QW58fl!r zpHJ1+5IH7#Q|#j+#4t+id#LtB-LQP1iJf@;k(AZl8gh^bcZM|~}0D=O(HI1Iqi zKG}fUPVgPk;I|!hF)ZkNvbFPegl`ui1uaAQP-O0v{cP+oOSLPU{7pK?RMm^V&Z|^&Y0&b>R?@&c_*Bk#V z5>O50+h_YTpQYf|rQNv}Z3S^Y^wLPMLSpoc%7^j`C4Io?xuotzE}vm&jCntMfxz~j z($VGnCDQE~l=1USe)7jbg6G7!XVIVEpQh5=fUzIedTPFN2Uw*Xm@Ekgz}hVU=8Ns} z#hyaw%%ri1U4? zXQ}THzWcO!Gw|+1s)~ncqQw}9D)S<-mdN?VVu|vS&11cJ{#<0+!;dZ``zE*}drq0Q zD}KFg$>jY;?q3WR@POwSMG-*0v&$eV7fW(2={Bjs|Ftt(weSpAX?v{d%9QXecX1p? z$!I%qs+U$)c&%!{mQ4dfHTv!V?O-B^Zu8NqPh8{$zE=0Vle%CzkoYvkTI`{gQ$tX$ zw>Z=uHUy0bOWG#?<$W=eoy&lABzFD%0CW?PZ3CgoqvZMl~kaGcfiI#tp2O@*!c56?QoGJp4R51#jB1r9 zPLvhwM9X#)HZU)gQX$v1WjkWgM|Un7FnO)GyJgvcF;u-RIdW3C{WkP*a!}fIqDwl5 zUR^%5&Kr8MeC*T{#QpMG-x9>tgX3z9f3QJ_&y{GPhej`)eGn&??Rd&ae#^m{oD>@w zr5gdU@@k?5TQhvb!gUm6(PaHU*?BbzO`d1AmH-TJKQcaeM!Acioi>PwY-Lz2v0+i& zxD54dqmQWoly3GH%x#Bf0C*k;5}J_k8<5rT{Vxuz{*t5HgQ}lT~BQv z8ocjoerr+8zhC5C6$97AEw@4u^~bxn3uPR=R7_YFy7i-%I`^2^`8J!#m~`{i!CmEh zctJYyrQ&Z_^^34NSWC#`4OW>Hni>d9s`Ve^%&vG9({5y19d@Ind~+8hVwAAyv^R|r z8pp3ULom+blc|kQfUiHR47X=S6BE&KU8$KdIBE+!7G5rWdZTlZyBL&bX^k$(!&c5!6pWP4~ML`CN;W%vb?VuYP4gCnB1XP$s1B$ zM@WU(4i0`Er0!}w8SrLeSa@WxJq~~;gp45KC8LQw0}TqsT)sKD!`nbdrZnj4UJZ!=#(i|keg5qQZiXeVpE&QJY(=dYErk7Xsf`^Aa{iHYhEb#jT zP$@!#f4pa<-osi`VHoJ%EiQG-+zAK>cA{DWISJb35+^pvt`r@$JoLLh*-Cn660ymd%8l;BWw~_jEHr!UuTOT<@ZaUgyST zkWn!Rmy;H6(070RJax^%Ql88ZL*SDVL-~D}oJ>rrSW6zof_pCMHLB8#vMZ6UCsB?J zyv5wcJAP|n?U3neyPCN#zage;7EX^y2!DuCZCZ#T($JS<$`zA7iPW)nQsus&fHu9` zQk#cUr)g8kcjiaiwhcvG(RD!+kT=7r5?HxNLFCh>>Jd zN6e~}-yDp$o)wAcm73{uHiI-HIA3Rq!QCS!^9|V?S(2wqpzVz8%nygYL)M@kiZAB1 z(45Tkp_l>8;zS?;SF#9KV&aDnUKa@WyqdPUjW>A<9ZaEn$FXhSUOd?*zp{(V|=00fr!CIBYJ_J>5>tyq>6K!yS>Wg6yr#s@G>0lZZ zD}?=)-f>^hOZofLdfDZ!le+9vChDR`_BFz8{O%yo-B3!%$7f@O|#Ei<#*I-lZReg=H^8ERr&UiLMgRc7VU_#rcU5oY;r@4`9$LV@2J z1s~$8FA8|dacK%0ZZyZhib=Y&kqE*aK{812tn4d6w+$p*xeD`N54puJn=4sfjL0b+ zXwc-W0*>mKZv2r{MXhE5l(D~!gGQZj)N zw`g`>6u#|z2VsdhyXAQ>^h%kk179uAoJQ$hn!@5{rx^m-i1PuXgAC-E>aUg$GcxSL zv>;jh;{K4bX+0YfJE8m=6wwhyvHm7x#?@uW5(L5oB(o_OMcsId?x4CDQc@|}md`&Q zy>Mqs;aw6OpV&UVKeHb}j{z3nLeMFoCoH3xZ4fvBYmzqiHH}e8Khg{U=1O*u`Cb`a12{kv#I8D%pPV)A$mI3`%TWSRl&!CkQr!n}{dn^jB*B?3A^T5!w5=^kRS zka<;OMt&$ZySMl(sOy{DWBnnE4hRmTESnE9>=uNuH!2jG#*AYuXbT}Uq@G$~xPbPw zC>TwN1fTrFw)-NS8`}cPATz z$hg)gc2`&wItBCTPK$rm zE)z{VzeCt<{6Ji!b{j`F;s8jHe;bH;M$~DR%#^v!t{C26nZ2#mmr&~-Zx1WeBPBCy z*j$e*d=l4lr0ME zXmqwaUu+{Ag3zLxjRPxmPiKjp==5HwnNVcXchPTVN~Ha^$iM3`4ALHVRe|WBH`LdX z7^r6|;sU&%)2sk>G8u;cH`iQy=I19uA`X1HgMF{es6=L^mf5FcO)V-G&{JQ%qWdh!L1PPTz)t?~s`}Hhu^T`AOA0 z3qgh*SzFl{x)GoOjIQdcW z@P#q^rk0&dQgkxxsCiA6-8B^nY6?PbWg`?OE>_6Z>wGIl$I}dKY0Z^jlR;EHk{k7q zR2aCTWqt&HXyW%QSkDH&zm&Fmo3Emm)Qlz5LYkHXlV>rJZXBa00DU&BG5g&-a}K4F5=hBH*mU zeyWrdTYDPPJa)T$B20eh(dVbJ!Uyrfo)^~u@+Zi@E0pxpR(3h&*mV}<;8C&U(4u&L zBX&$d+!y-LE`X@{C9P~KkYU5urQ`!@V}ZNc%rTBIMf;}Ea;+2VCf+9IL0n7KvHxuQ zJj3%$?{DE*1~9tu(>}Qf~%&GNy9{0X6x2DO*lK#PPe3A8VxI z0*_0HV~BG-qK?aM+1>Ek#e>jO4^bkk>IMpZW(f2`g&#B&6XiN(1OP!mzQ4IyBwjs0 z3G*wJe~v1NPGcx0VTj6D%_NdC@|x+rfGyJs$iv3fpd0K6CQ58eeLa@DseD?yFbU>x z@KHzuVhigazdyddfB(ak1J5sXB9BeBR&e7&3C=qe&@%q+tXzRgf$nYh?dII9HPAFt zw^llt{gwG~y6wogp9voPhl-T|M>k>$QDK3}oJ~D#=p7=jf)ImfC0G*$n=S=ct!lJ5 z(5`iZwJih10qsD>&mGq_mI$}2i;PG#q)oFaX`g&D-j(iUf~f-zbh);OE>)&e8d8E^ zj)pxe%+=`a6(5kD!tU9vv=Iz*`CyCT{N$vg9G6HkV1>UKr6yMWy@ zCTwSnA_7ISdv8dFEO4Z-lYxlg8@d6FA2$|*!zK<~2&?$OTl_>kLj#LT)d69*;?IL6 zNR%%EOGbE>dwyZ4wU%d}ZL`%WFU?J;esovgj(#Gop(abEfZ-(WbUSYkJ-2X`@fJ^j zCyt~j!OMJ?6*<9?5XOIoW`}ulpgKSej;cNxrpMO{Xh1#EXrdD1L)yU?)cmjD@1IBB zj~${ewJ`O5Fi_u7W8ScBFrq4J=N*l_C?CE4mUteyh876b@fwnwIl|24p78QP6KWsQ zaD3JEp(|bh*LM?%{O@46*Z6-KhQBSge9g{)fbzm$PI}YhS9nNg&s~x+1oMucsoPG+ z;@GYGmG0d#YI9pn%FlyYDbNKD40TUex=IT?0 zYM@Fid?Riy^m?y=ZqF-5M5fy{IYHuTfoJ1$F>~5KdI*WQxm&^>&|xITiVm{BD@O9^ z??`yoVLss}h()aTHw0rWQ zH4}1E=nBSRupcc&>`6Q-((=V&c?2W)Gy30~Bs&F)b#F-yu6c9dRC3e3Ix6lX9Je;4R$puS zYM*Lp_@m!D!IBMm0n+0e%F6=E$*~3S-P)H)VzS6iR+FDWLL2m2oiXMNSoqV3E<~fF z`j8qYxZgFyGW5}Y{+T2ZB}o{S3j-Gc#-EQ ztpQW8oFwNMV0g~J|0Q&7+@1uqdy)XRKAZ683M{$n1;7aJOYb~E68MdW%}v&-norNN z8AaK4Ox66uz42|#?FuvBZfe_7qeGlYU&jjJ2llLdQxwGUH|TytxpD`&_=cn;RjK|A z(V9jC3iajna$RPk$i*Wk2yXf3TtFIW6EYJ!Ut>Z!J+Hy6Pf(%?V*zIfjwBStHNYU*#y9qLrx@Ra=rq&zLQS8$LY1QV~v zjDN-gHPtc4+-=&SB0 zoK@QS<-4eg;q&W#sEC6^I}Z?UI3~9#S!+$NQeX4TQj{cRwP!Te!8gO4k_cTwbXwt9CT1P z-Oe(Qx@dBbN&aO9V|brvH*=2BU_f;C9M6}SD9Ip9FT0g45@*@)2PG{|>EeodN zs^Z_=)A@Yct*;hnXj$RGZH74G0O_ul|w z%^IbaIP2bKLXNnBIL8&8k)<^ex$-XXi}w44r?f2I`?{1tMqAois@5gLT~ZPXasraH z1Yl06hLlcdr{s)>Sl)>&EJf-_vPN;=F_Z8$6n#HFLWA$w1DP6M-PpW0!#ISI}-5XAqC z9Wn_pcuQ0|omoTqTd&^DCxa0OGM1G9N~48)jzps>n^$7owsaaSM+k-C=jKp&j@TM<1IACBfnSddP9s3koo z=~n*tb=iI!IS;3+?myeU-3B~roV%Do3wdI9`OD@YqVO{r3?bd6l#}SSk+g;ZDc;P2 zEtj(XPk8^JXWK_XvHWo>4^wg1ZV&D}y70nV1Ve$;sG367=s!aK#E3#>)!kA%8M4e8 zaHRQxbX$XqyQ8aWni$7zSnk>BM_D)FO2@^>%@H$>%=t$CU`4x%b&n~MrT zrI_161^aKR#W2W6iQojFY-8=KAQV z_{c;@n^~Qd{f321Ixt;S$XA9KQ7m~hZcjDsiin%b<0rSiHa=%Qa_NQ%{Y9TeZFro# zmcj~ZeVw3Pd5kxOgA4}hHS$KX!CTOoX9jP_au4r7&3-ypX(`v<_=o_nz7mOLdv^g>9>peM?1By+C)7%VBPH z;Pd0y%j4}jZH~)T z*!qRqU9u>LBSMe_5oG`=*UX!jnrOR^cg@7wpiY(WPPkemlNvK`za7TyIW)WF0LHCg zq@UXwzHthi@a9v+5)|=|J=nw=uO~AFsaPU}QEH<|vG>hP$)+u^#4}P-^tQ!T~a+z!VCv zl<7yJ-H_gbtdP`9q<^*AKLGqDLN_z=$kUP+9ELp7&1jR$DawI=fkEut0GX1@-7Icp zSiNMthO0fgTZ;C@UhT`I@!Y>r;?x)XKx^lL^E4dcT^3Co_v0G!LPtYThQ0d_tzt~l zleP5wb(yxoFQVUntJ#rcC2imRRT8W@Yi(o{)Rf8Q0{aKz&N?d2<_hD4gaio?Ai*WL zyF0<%odChz-4lWa3+^6l@!bHyoyFZX$l~r!H)+2%ZNKX2IsJdn?EB80xpVLDd1e=C z22LCjXx>A9xKQA`D<--wt*L)DC~zMQ7ChAv+$Fp{X1u+9_HdVaf1P(MbU*D9gA2o~n8u_|jHk}U0<|;Uqi+@RGK^>}!jPf}oY}y61>exl791|$ zgd(!B_7xdFOTVAn)A^LEg(V=)Ne*jV;+N(a8oc)uwpuug6O_rVBPBdYD{5?E6W_n8 z9H+1J+l2tXoNtdOqy*~JnT%sLK#jZDdWD7s+!SW4#WruDtrj$E8Hu!S1t+p*`!use;J8~8l@`dk% zB`_LCK9&7W=qbbAFb zB8B8;wC&*x*Ob4_NgYdj6blwLS1{vZ@@ONK3E!t{T`#2v2+{5Ow>{P+zhu#9t0sf* zM9TdUUtFHvxpFLqAdLlt1wgZMwt-`w$=E^nxKWZ_DEp^$gaU%Zj1}>5H*n?5JM!6j z6=-i%V~>OMQf^Kf5zRRA>>z6m0%c7* zi9@%|zZLRFs?gXJQ;1}RtK_1@s-yNj=h0AN7-6nV-I~qEB0Q4|Wlt)Str?bU-U? z&%;|G$OP2oLgBqZQ+Ons6hG`_1baH^{a|(97j<`C<9B#e?u2@~s(*97bXBWS`^>_f z!tnt21{TL?h4^6IJF0A8Cn1% z#seJYl<0LkA~9F+sAe zN*PTc5Ac#F zTp}O;IR662qan90E)t9)?<`%DpFj~65b9{E`5ylKk*jTzx)hEQ9ry@3cBPVM> z(=i|d@=Ue(UYMLJUpCGQftA9I@lD2?&eTN{P~MEe{COPH7MW|s%d**>vvU89cQn_} zb47H+jh))^?)xL$)p@sMHVKF7z9ReY7oL@sBxOWfpoCw_s#QEV8^KW^9FC!5Z2l<+l|Tt$84 z&$=GYTdv;Ydhr(G^J&K9dWiAEO;QT^T?pP95#3C1dVe?5UnlfV^t$aJCAy8$-y;07 zoNV085Lh$0B4&B5@7qzFn3hWs5O!4RarU6pJHkILxool4zwwI3b4rs+b)a1AyiCHx zX|r)OuZj{cvsS6nU_#+}=88{920kTqW@=9CCO&McyfQv=ZP019`(y=4IevY*>8bWv zBFSrog37xt$C-f7qT~dyhVGM@Ht)W1EE_o2;dd1y-(1Q)9dHDmbL=if-w~x?{*Aw% z&?8;gnPEl?8>`(RoklFsb$!wIT86*od*6D_TkSkbvwPLFMZ8BvJpTP>7Q=zKGH1VK@n{72G%rNOMR&W7%s7z7W zTm%Du?xuLf{|fWTBhNR`Nqjg-ysISgUMRS2;e04M@PzoC>6TwIHeXm}obl`5>HAI5 zKDgs%gx(p8sJ6=ddm?d!nTv6YOoMk za4@nL{e8u=VInVpqFxKN%e6uy1eGNa3f{CZA`U;&Mg7UlyO!Q* zkP1C+sp}Dt@?bfn*nK%uGg>#O0y@xr#P#OiGU}7(%+;kVNz@>%&zFlfh(DUO+n3Hj zfB}pAL#z7@8N4-Y0PXuw_8-az+;4XLdQQooAY3Bk78&zTXx`)JBj_kWb%BtMiz^rj zl>dRD{<98rS;GF560+@^{V4vKP;t|Ccc1)EWe}u`8?%4<5RCH&ng3MJX!`9Tsxh## z7>5q#xtnFNg3hU6pr4igho6O7Hku*@O~J>>U3o+F#L{AqyKG5F!pDhm*F-G1WrGc`|K7kUaZxE9_-J^^&dX! zr#@ZBSTmEj80+(f@wB+jAQoDp`I~{hpC9HAH9Bo@>z^3~B0&Wl)cuR0KT<3V*i$>d zfeW9`*Fu@i+c(V=$o=Hrh!?kpUEstk7`B$OUnZox6f^5#ZRvWjEKe~^!}cX_H<#eK z+7LG(4iy{g>lEet_xqX=e*390Q!m=LSLHD0sOppUco02$Rn$UD%$(e-7o+9O*}R_M z&tUYXeI}1g&!d1jIMOSMsk#nZ#bR^gN1AV%uqOliCZAve;njUmK^Qt7`ClS(1K2mw7hP30#(yL9-^zv5b8 z9)BF`uvd#j7U2XckygSjd^j1f>=}yxke%HoyT@sB!&c8=WOTe3){i**NpIa+p)JE^ zt~YX{qb6p;cWh&S!`Gyku!x`pPLbT|3=2$e?wTH9o2lPAh*u>UL(HHAK65Yi&Ec%5d=UpbJ|XLmMDxAv?cbQyq;7gW79 z{pS~_5c0dVh1F8e64tNRQQY!Lr`4Qvi$L&q6%S&jrm_!@mDucwjl>s8x zU^a5I!ycZqw8(wJHX5P7p2OzlW3&1MVfuUB5YJRl0jC*(@I>HZLzNTzV#7?RsT&FL zFh~)cI_9p={TMVnn{YRsy7&b%vs10wEb|iOn%rt=!75&_e)Vb#_ zvtya#DYxU*fUa@wdClBH|N7JCH}MRp9c8@3Y0XNBD^5^kEoT^P&&^TcT%}s;7vJ%MFMjlk?rB>EbC>CR1hAqWH(bh?@1E<13*%T! z=l0I-o!e1H&2zJ3?o72cOhvEXPe>Nz&0dV^^_t^f!Al?6D8o}NNWJ39Pz)~9;zjV< z6^Z8?mU`ajK-Zij#$oAKzcAp95BA;2@x__A!Xs~vhUf_6nabHFub5t8L+`R~IFZRT zQDeSs5)3+%ZBm3hjrXij7$ELUXm0;=R%v~*$@oCY=sU&e^QOJ&g7RU*?z+iNazufa)VGNZH*{_;uBr~HNXkGeTG3uV-9K?Uq9>a0j|hm&c02?apGhs}WGL%~#ml`+ z*Gk|sv>U76+ebh(0Ilz{8G}?NVFX4%z+i zf+J2H2l&Ktg~`-&_|hA%!2={PG0lX|VEopczK{H~Tt3)=S;dOkgbcY4Ct?jlEAo4o z3xzOYRnk+fG;8Ttal^_NhWyc+*oyqq)J;uEJBnlN*6E5|YBcpLpUlX7-vC76P`^lT z^C<{#Tjr)1YJLV~UH5R2WeLilukm+E z0m-&PCZ9iuyqClbhCF9(1t$+u8e2xBB@u#CR5+4pkc*X5xV%W>2orMadQ+4!f-B{j zGs{`{;^H(jEv>N;uvi$rCO{B>jc@Z+5Tozz{RYSG+`iA?)Y9GTOI;Eyrg+%d1QA|C zD1TF3Hf+i$G*K7i;CEK?<>I-`b!=1@R!H*jEz1w4N|zrWRIZlkpj8@DaR#902a)#2 z@E1O}d^!2}m*aNc@)6HX-9`@dWbh~_U5e|tAe-@u+u)=0n_?N%=sD(Ov%8)jO-&9c z!NrzVXx#FyJB;&|BwL&=f*>@5Bey7=rp7l;sYs?6h_HG-g6cerj3iT{HOgMJ1(A40 z_Ebnoqp9l`=&Bkdk5Hl;Pj!-!ye%C@jf^(sr-;|BJP)8nVJ!X%jzKh#5mj`xaix>NW9U)>Z3jd;8fdj1vBZx}jfvK~;tA-nUDIXd_~dI>poSam zkFaHb*tHyl)v=Ku$K#Mv9#O~HL(m|3rv_dmF2+pI@5K}r-Ra5Iz!>h~KRdDZ-!tAq zh$`qAU>`(1|KQNiue_5iF1%zZ8?|m-v6jYE=E~vOMJ>|u9e(PDi_$U2uY@8&Iq-AQ z0f|9^9O=eZ$Fe0ZJ{}=@9*|H?`;y;Pmcu|-C37q{Bnltc1O7yGLjx^d{;bss`gH1F zrIlaJn=|^Zo!s{{`(=YP9yZM)2b*tE1vhq@>+caZUz=;kJhhyVJHUA|dS2KXq+n@< z9lM5W1%HBi+j3}Exh5^}8#M*dUOfEONx)>$Xs_pEmX^p3-BxL#-`%x6 zi)Ndgv@^V964;y>qp1mW4#Bsjiq2F~B5S9ppb;T>2Rkh=^FbjydY5QQiFrdm!B(#` zU-g;<4=t+hrwCvu@JY7zaXc;RxWBP7tGNm$yqc;$(AKycP24)FE0$h`(=h*1iMc(h zIGnU|B30EBNS%IxS#iPwOs=y}vZ)#Vp{O|o+r~nyO`oYkKgdj=#HRE?AJXPy>#1h)BGJz@L|XIc!>ArM(`3#?~D;z{C%a`N>?6Z z+s;oJCS<>~XQygQWdTGvecaMtTy3jrAC}#OUp1@KO;vC<$C{#DMu$3P(jmg7?IM_ZYIPgN!fPYq3 zmi@JMWC*f@FE?j+xQDcsZikb=g_Bu>N1|F7LDKU!E&ZXF#ztSj;gc#9-llVEm1FM- zm@|%zXF@{{Kj!qk(6MeQDM*qo=PECGDzV$}Tu=@8W-MgSVvqsi z#{$a!o-$(2dLZxB!l=TFqFV(iA#@; zhh50PUBJbV&XKi;<~AtUuQC-~^Hu-_JGfwTJW0>y1ZDX-Dw38@X+QMM72m#TyMoL! zv8+>@xS*9T8F<6~wy)~Z9$l9=ub1EDy7|9RXiw%jcMu1z+#AG*-#WPV^MBSm-G@`CESx&FFS=IC|LPeslQ%NEuWMpVjL>R+_jiTPE4 zwz^^<1O@Vzdbur0^A_b$!eN^mDl|&UU&4Xt>uG$BIrOI5d@74Cbzw=mog$RlvJYM% zH`vz8)x+O(BH&cEr_P1dxxoT3Z2~%D(zc=qmvd5shN6t@qQjc-mAYx}cUW6r%ZZxk zjU;g=!vznSLF!1E0%UWq{O!(h7vnig1i~MI#2pinAiO@%~j~4{cvQG z*J(PA(OXAMgIwr)e6`F|tU>SKAs{Xf_euVW=|vg1rJ_|!frRS-NBzm~9!oMi3*yVr z-N8yu+gw#-v=WBUtM$?CZNLFB(pFP0fMZ*tyssBCMkYw zb2A;gHtGd+SQTHDfHX7`8FWzNw{OK;M%mP^erO<0KLvtOBH4mSASUD~Y8a!eJjt~1uU`TZ%(jYXnYg`o`Yu&oQ0l0c=3mLVBX2Q)>|qW2Ey zIm$b{<*^Z(V^w3!FC(4fs9ECT6D#OCRkQ}oTO0xsfS=Xx&R6ctlW?r!l1+n!CzcF^ zQGVS64>uS3mm1B>P^o`%>K0OdGpJGUfhReM8_ju$4O4XJy%RRvSALo!?g>rOM3EwZ zfvBgUdFi+iv4LiC8dskBNQP@ov@n81Neni{t8|s8J4b~!NtMABxW9CwYwAeDGgJIn z&}J*eu4I=twOWD<^g&M6-QGB2!l_s75}e;Yi!NhAAxrbY#x%rsKzi*CfFjL*^?JGZ zE4}i}`4iI$OoHCYDMM|dN>V32Ez(YEh$jk;%_M7Xo!fJ#?RpI&scC6g-ugYXp1MGG z;)Yp?S~<10Cv13yrP}hn7=@TN{@#09o`QT=$KS8;;+1r|)w_*3Dvzxfs`?FMoIiOs zgn;|Ji7+?7fw>T;S=UG91#A=iIsJ%Yi`GLwgo|zsBrV~}ic`O(d@hu#zq8esb z)PL?x+#g+|K5U};ojg7u+H>=JxEO`$Z!fHe@p|&R8AYsVkNHPNiIQGtG`7BByxH&x z_&Ve5Q3TxTF#y;ah2K?{U%yo%3l9ZYsw%Lp@h-QIefXTEjv@M~wESy*bK0_W59% zr{!o}Qj>fXH3cPCQ4*CGK&JaVaMNpsRTFHc-xK#D@9Yxmh4*?JSi?t!cG_d61)>Iy zorwqAPhsE{N5zf@g1IQhaofb4dQz+hP~sWjLaNUA0D8OP>*^;j9SyU$=q85Uj4VFz zsn|6}++gQNCVI}c`UUr-I{boTD)99DCNnvoPLuvZfgFqBHq(a>yjYGosraL$Fc)Ev z3oR0uIXd#bF6%#L`Os^v{<@%uIew^rEO*aW<>L{FGigjq^oiXQ340Sb>zs zNxpLQed)+~l5uOu&#ho(amrX+d0;DAAD=qeJnNcfq^-neCkrKpP)u+PF$7Q%XRYHoyzU)1W3R)^Np_U>B-q1a#GnWxF238uZ~ zU!kY#am9m(ck6iH$H19Lk#P7(UOZ9wC+!Y9dfIo(%1G)31K|uoLk*KEjRVA5C!RXL zl~8!Fr@h~ixV~5X6^=VCasb#ZR>M8wsTA~i@=j&mVjgTTucA%mFsG-DRG!sV1)kE# z#C_y>_j8=z{jH8oweL%vTAvPf%O{C%{3A$b_c)b^2Yux4bvh*k!JLz0MYmE<-dW7|2+kr=lLT?{Qmj> z?)Uyr5b(dYxVPA>AKwn9gTjj2;GoYS{QIv5t&i{Rns#lcpfwn++9v|z;^HvS-ntz> zGbNdFntpzE1pJ@qBq(`qaw$X{B+;UTUxDBxoWSLpkOI>H_R5o<+-8i_AD%y>v%gVq zkH)_-8Pw?}(LCetm$!x_$8hYw8_Ff0{sHNZM0pYdJm0|K2?Pfror(ory_=qLY!!iM9sc8XmVwvw`Ew- zApbnI8Z^N7+~YvZ6wXGB(W#o!V5r*01njh;(_^WhaqvF_jt;z&?$$t#TZntQjs7=$ zqk6A7X*DRhz{+qPBuKeX8JchY%MSYoIB=OD(7T=WhJIMdVA0dGQ#~E{Z{BqYgf!;Fa?Ik_*D)V$iq~Nnn??~ewaMyKY zgdb)IAtFEf+}CnA($swEOYC?hdCLv!C~fDH<=#8q-`#+<6R^(bE<<86*_b!$-CjUW z+SXTSj}eXrJIP`l&Mvq-4L$L#d7u_qyDk*H}VSz7p zLPf#vw_D|p&N|-)rx2R%1hf??&%Dy$BRxV=CZ}wU8Ge!$ulD>4aLSeuf`w5F1C*Z@nJ!ACW2|rt~ku)97e%x~T+x zqd{Q~<0U-Vxon7fZxlf2mE%wN~1fLhd3G0uYI zVpPAXiF>uh!)s1dx^)8rA&J1i7bBj>n-fo*9To2QQs41vdA6-uI66g~eDryT?-Vue znIAn|gFBYXjYr2#8D5+ok>St_b&0o~jojVR=kmr*w1;d%TEG;dMUYGI%skpcRD1Pz zCMD9&Ls7=~{@H0PK{mawPW#i|AuL2X)$t8f22^6_yM;mHss^n#1XFgj{?5Nx2!JD6JwV+P% z%%f?|2&&s`3dl{lY$IbOmf=^2A9n}6S~&knmr9R=9Da`Exf+t(W^J-` zVB#_DQ0I@*4$>C4qVY1eE5utXvd3IRqmSzVom0QwpcTfU^xLW`ZIXQx50c{eaQG5L zyWu>t4-(o1f6<4X$4cv#2Nr+`1Bf{yeP)RS?SHTuM; z$6d?RJmlHsh9SBiDZ5a^PmX^qSHl=neVtudOdB2hxbya#*@b>72*c3e5bG89mkf&D zKIl1=iWv4--;nQxkKj6!yKtbego3pBQPvAKWBO) zU{(9BD!MJ?NR`5?W@a(Kj&)}gESmCT=4t~9DhVR8B~7%VexfMO5!}sjx>{+||(ITgkA1?iWQ2mP)@u`NPUh8V?X@OsP@~LMP5e;a5+@`qvcX?c!np5#1EhSUxi- z!;q%YaJlj$DRizpv_gNIEA{~fe5eU_OS1lhHa~Zt@n>jbxJ+%TF}P*e9-$miTRl42 zjk$*#XI5Vg3QFb0uP_NH7!fg|GEAg2SC^B7hD?W31e}`xNtZ(>ks4$wYe%CbV3~uI zA!J{J8)N;F?(k%k?#Mpt`=*^}rq{io%E%F&nFxS!1%g z+P3#NLqF6{rfXh_uGdwgET2w3$sky&SSQ4(HXF%$MI_dSetbGsR^{YM%aMwz_O~U& z-$U`_#hRD!2hKbP=U;xH40>a%{M^qpJ0s5!^r<_TYlv7i!%$3iidjmdrlYwtN}^Zd z9QlL8Id+nj7I=fW&lZZK$gIgfq%WL@7%#M?ywKarozJH+fK5RjSEr|hAgG3MylFb8 zYb46>_Bgza=q;o-rZr|s)%2*|*EVIA;t}ItRH_%jSUCU7Ah-m!DTwV_sRoY$rG3b~ zo;^BaJtsGv2iDe)3H7XBw-q zXOJdL7K=&k#Uci?NrPFW(w7>R!jCD82r{!?TA<&g<>oFbesBd8!A(eK`_EUo4&IyR zUNO!5>k8(?RTO=3qR@>L$`3FXdqbw>?h*Yal@e&;oC^yZ(nveDd^^6~j@@|3)%Oc! zvy1u6N4_*%tqT|f7ZUXU01^^=6)1xRn1Eu#cFZV*_QGv)egvw5kmr2T^gBfP&qbX-)zwiTNln+qLX51zyTe;SsdyDp;2Y z$SY$Jt|lp3!D9`OTLIa5RqI~9o}4@>^sK~7))`Rg4h_r)sfsK`~&9!Ndyx=emWzX;Ck^#HRZXwKdB$Y82OOmQ#%V=1Vy)||Kn$wy&jiXkjpsxOt z+~$^Z71`e4vgIxdJXALmk{jy|g+vM`KT0gZ&hv-m5v|I-!3p-CqCiYOy$vN+vEYlG zaV@3HqID~9pZbQP+w=klez|iScz$K_4cEy__1;3%Y>-+Vw}O3^Ft%h=`BiO4NZJ<( zmnn!#;Wded&BV;H=o>70C`hiA;Mlpd85!Wf7c&8`c^x!kI{1r|4m?BL)XZQ)vg zzX?rNNE=E&SrgBgt(@}clM76GghiXHn*BaQFcOSQ5+ByrXVO{+T=dYLIxm@~`W7<8 zw6E-HQvM2$K`RE6&g~7jhamJTzsFfoL&3PPusoX-tVb+_>H|%BaOB5I%IJBx^&-%_ zg}w$O3`12^8kT+zW)_D>(b*YVibJYWuNqc(tQ4o1XRP+bEOU9bIz9`8*ZWcagYLHm z`9Z$$uxopAc`2S_aTXRojz3)@@@n~;3uEcMeGy#on5j5cyP4ij(fYsKQvxFcOul!Ns9r8CbY8Sk=XoxSl-0o5)111g zMy^Yw3x7N=+kQP;M11al(379q7?t-zJL0{7#L364lvxIOf4n}O1GBgI$3M`+CqCxX z{8NJs`D5=c1|8-#`qIW@eC|KJRPvKeLHI*jx}P1s|F6G$&}Mf4^ZHk5|L8BH{Xa;+ z|L?N9P-5Q+uiGF)86p<+gZwf7=(Kp?)OW3c+CNsvsX9?S$0s^xTu*8;k}%Mz2N}nP zO_OY9_*54A7R;iDTU4! z{_RBlMDs&FS4O%r*$KO)PTt_kyf!q7AwM&=$}>?ZZ{7kOw|)G%e})2)GGi z`x4h(Ml`eSbx}xI<)#l|Zf>maqzg;uI&mM$+kQoeDW$Xp)5zzR^J1!F5kk7Fhjit$ z4N7X?Lutxf%@m>BO67VO?3VBtw&U;BG1th6f^$%ma&*8l&YL`QU=xXWvS>-#mNH=t zqECG{hLG}+8xOALF!Xvyt0XNu^-6Pa+4h-*iY3_Ek5f2tek*Cn@LR+i$h?aacV_** zkkh?*kK3NHTM%zW_Xscv&NG-BHn%-|uy51DnUrwI4pha=Yj zT;%_(zNxhH3J_;*fWZH}0`5jlksPiPjpO)x&>_Ub*i#NSbWB)sMkR$%ghF`;qDuo8 zELk-=pKFTjOY~)~(x7v(L503_>AkKzvy(g^u8hw>JDk8WMAq;%@o0*%hfGhp(Uh`y zxul$Ao>9m2#}Y<7)(DDYall={6T|s0eU`;B9(UTAuU2R<&U~D-bXhXJx)#N)O(729 zgJ1Kf?KR&6lz-3$@AZG1Hh3bC3hY%}pK8)69mKpQzsNQUuRFvJ7LIdxzMzgs-6qSK z#nRnEEJPO8?iiHxnv+;@e}IHCA6&T}CzmhX4p0qEB1HqxMv+#j?t@|IxuJ zxbw+naLkjxA_o|7G-_$re{d#;4O(;63(~6*84S@Xc(Uwy-r53~XqY0cU* zN2aJzI>#aPAx0(^r8Q+x%vQ}E9_5UfJ$kjrI^q8lBIF~uY$wa9Sn$X8i5h3vlf$aJ z2oL}*4X*O6iABF=@OiR7N}mTkB<7=o{zx5mJ^#SmRmL?Lt#K)pMiCH6Q9xQzI)+Lq z0vAvaP)3Jz=Qa#LLAoV|f`W7-3QVNCq+@hQ!(g!DZo}*Kc73_;j}NfD?|IJoKXuOk zJcpO6Rbt+lu`pY=6#Mj}>FJ)k?R}}VUgG?(J5*zBQpL$>B3wWofDawZ-IjY--}%XG z+0p1ck-@o28Zc2&bBca%4czd1w-|}gZ5x#xs9fI@TZdhua?;*1cX2_sQd7m7V_~()o8L+PJdaa|*0&xZXLxmz}A&xSc zv5T2q_9HB`oO(}>R%j>Mu&`ik^})Sa*Ptv}`peD~|7`VqZ}Tb7kI66)TmSw`?<);* z?|fgr`r-OjTK=11K-syZXJer8KJ%_Xj*l&Vx135!7Mw!x1c1mf0Z>xl14+*sDY@gE zV9gWP67t`05P^OGPe8E0)&ntyX8x>-H8nhc`Ly7>-8Tzt_<|3_3rlm6O1mBgCRWCU zdaqJM@>$fAruX^qsUDbZ9whN(2 z+R!`lg|X#J>8Q1TwxSO6(K9P?zCD&MV7N_tk7G1wC1=Fkz4_}622@EFonzHtTu`*% z+DrQAv{oZChr1c23-y(K1QLKRJ5ndM-7J3Ud;c5Sk^1Q7KQ!Ktxsk`0Wpj6^AkS8E zhH$!AfP<3uA>o~2j(_#eFvEK7$j+(R zc#+bdrelAvn8|#qLVayKs?z4JegK)CnwOcZU}a8f)9IFZXQYLiJ*&p0y^&WRZ|Qf$ z>5uN{jOXl;Kl5*$6Kki-EoU&c?A}TI z&MHH?xz|FfsN}>Il_Yy15v7FcY9^8|G(SlUSFuwBo~8_2x#}};zof%@RorUm^@=8M zyPBp)J>%&O{o66&&uq98O_A@bl_HVvPY`K{r2CV%VrD-P&UD-4n%sMwUF}aGw}f6; ze^}0!8pyqy7C9DVsLlO}T15XF(?ve0Y{f!IS>H4JcO?ebb%RE2b^xJk-%Ya3{}n43 z?yayQa&O5o74gy%Uu=M9wa)2UDWJG#go30O_bpCoGG6k^;*>jsqGc*I^0liyJCO8I zg17t3+YPgdo5>}>Zoe9fB#Xt!?`mf&W4?Af`74(?nQ5Lb+ShT?i@!?Jb@EAGLhKHC zu1X3w&_7{{Ub{}-2d8TFow-y_ylkZ}L4tEL$8kZ~d#{UPY}7GQeMls~Z|1|ttEm;N zk{M&4Co=LAYb4U-xhlHuy>h>28y5b|pIB;{30QFCvrMsu#3seeqR9M2?K) z&GAbKc4Wpkyv4HG#}GHGi-PXGsYvk7?MU`a+P@{#6#u3-uUV*ZN-gZ;6-C*0v$i5s%V z48(2LK98Qvm>U3g!loOGOCMc26m0X=Ve18>$rq{5=YofeCjAmmlDCvQ}> zguTzT(|o$ubcN|$@5Nk>$sXx*wX)*k;UoF&7W@WdFIiQFMMZlOC{|U{fs5mSXnxj3 zsc-C`Q(^6-MzqTRBmWSO>FS&_OzI>C>g1+cd%SX?q^(z6B;=!cE0%XkLv5eL7NZ2$iJVD?VB zE;Xf0-(|{q&4f(yTn|oJy5@9cHSMXn57{>Q9Cx7YRk?8p-ip>pBu&9_~@mG5sxmdittWmt?JwgG*ETI6x2iP2LI8Ylb`cGH~ z=R=YcT4W}I!?e)AV2k6!hfEZ<$di=B3WU?quzH^3<+|`a-3XR%yuwt+3ve|J!$2+A zjA$e56yaSkm#|SM10P(3fFifX5W&N)#ALdwJMwR3%UgbSftAmR~ZV z3(_)pK#E0Hs@jy?_C`zswLD4N9`H|^5x%-W=<7%ng3SdluyqJ8P&(?7=kEeJ)M0uj zWAfS(NIh~H)C>7m=*aM2^%0R<%z{5BYxBHP$(W&6^mP77j0qn>pjHGP!ZlS?mpHzy z$}<^y8+gI$-skaOMFbO2tK`8-va1(9FAh49_L=6gK_o()gfM(JJc_0^{hNtT=W~lo zPNbC*M*6$J$}IRRvbG9{BvXbSnU`ps5OLCVVpK^`F__*QMz2{yvm zzghQmURKzcx;NsxH$lyblmrWoy@dTtHXZ{`A&ejm-)t_kdg0mM5pw8vuEjqo{pB?N zNf3AS-QS-yjs{24Tpp(JV#=_I`3;@?P!5XakUG>-X zwG{7$fBwsaApK8QU~M4YUw>Wx7b$y(VY^>PzrfKN=Y!4u;-|9W@lp5ll}HA#^p^2W zkk?V;RhovMKWmlAbCa7`-Xk$-8HRwXG;%f72I+9@Bs{#`{cHv{tnU=G{DlP}X_ z&ivM|s$PZ+Z8l3Tng%*&3KEnQU`y?{ZcpC29jNFS1uD+0xL5jUsMIL?$!M-~Z)x*g z{PE7Ci~pdV)4jhn!TYm?ijlNH(CdOeD*Ti3dz63fYlG9hG};UC@m*CgR4 z{g#I}yK}EQkqrDUe zqN&Iq4F_Xu6YFL;MkgeUbW^)594=|_xCRM-vKAGueRkfOPvCSf3}>uuv!7^!n}i;Q zZi3!cZTij#)r~)vMR$lD6~Zt(n;!cHCOENFE4^aIs~d7dS0h?N*MLAway9@Ll013z zHc=YFTrGv(W`S4l&bEjz;W`ujr>Y*Y9)*vdnILr_o7-Fe+8n%TZ2(8uY)%}e0Gu!_ z_7mHB5*rR}5gXny$<`FhGDxYQZ+#Y4Q2Z|`Zi1DiT$y4x1K5wX&6;&eWKW`r;`UY~ z7B!3;hkx=xqG8zD;Yi%tDewUR+pUf7V=eL({ZR`)o$Tb0Z~~iLgxhARU4I4Jy`&w`G!FF{l!N-Le@Q=R0bm=wacF+<^pVf38hGOs z^q`6Vk&>hppmGQbe_oIe`P0Bp!4|5yKq$s!>@3Xpu&0Yr367G&LY_=%D(+X=^^lg! zQ>u9jdeu-+kJ37Iw5MmULO>P`Rb}z(O8NQ)uxvn-Em9E`TRDw1&*Um2c7GP@W zCjuLZ-trzx-Py21(8?3C%5Kbb+XF9fv;wFO@@H_-K?A{u^q2($ z-1Jh-47W1-R8$7 zO5qyAaNA#qxa?;FXCu*K=Z^{(p<0mraDWv?W4sR4vyRp5c(&RM0%&%0-?lb%nbgAh zOw?Fa@s$aGvV$YLdXAn)f_Tc1*zZ*s0)kjB{KjI}Y(+H(u6*eb*a7}d(TP)2p`#6cL1U*m*7(1i#6_3 z3%q`nR#nn?VNUW*lBG=8y7n}YQEM6Odfl!a9I@H3U;zZ%L<6Cv*-xwuw@mc|)7>F@ z%U~H%5){Z8he&x)p>`){`>VMXbPoWjs*J~;$G&wwJi<(baCKf|N$#R8x(dV%`LLRp zEjsKqmz8>2B~WadCNA07*q8)%V@A^Rw_|35OQ+xA!`xax&5=bUXnd(|4gi{V1o%HL z=Yn7aSfVry6S3b{71z6W;RkxnkdAP4gv8o>WQ)Kk5(OkOt?%A~eMu?ArJWv*{@*6F8j%KWxSy2byE4 zTRHUJsF_y_Kk^CB9#O4)2REoL;~ii2j*&ko5UY0A^M+IPx^FmB)oQXwo>+H@EbBnD znp#1PF__1rk$qQ`j)n#((5+k_HN=$ist@JFkEjM9VO5j)wd2q8!gj+t!mcQ#=s0i< z`P^~6ZRkP>s*IaQw$^~1X4pY2YzGZH3ZZ|pNLnheTIwAFT$^&l*jKM*pCSbzz_u^Ws;0%khHt+&5{ zXV{>d@Y4#>;N4c$rSXUX>Y)JK2c&Z|?5&l5x*_vKIfoNT2J1q0wG03`YUlfuTg4_%kHEs@E7xvG!PN1Ow>6%k~ zPLBe;&OLY=e1E>Uv_}MtD_mgmEbJ_uE?B!61uepOyZDgEvNi2nI+DmziyGYt?Cx%H1|v?v z_JY<~F5!)YlKEW7=F##OpirIIVg<~UY-;w1@$P)bl=uPT22zBhNIU>0hq?sCJKuHH zC%a~T2%B%($W3i}^1aLT2qW-~+WYVO3|A*V9NDr_h?z|w+nz8Pr#X~$YR)>3=tJb+ zt%Ges3<6Q1<&NK{ZtZKsHU<>8-bSj0!7?$+UyjnQBft7i*fIl>As@2%uztIY52r%= zFX&~Byq_8ao#hzt#kI$pY6X=KPLO`FlRC8QbKIKSY{k2z3sW(Y7HQ_^F#wlpKB#B( zi6n{;%x=hKIpZL1*Cl0q8!h(~Ze&n;2T><#B%2M_6ofr?PW=S}CY~)3_MKy8% zjwYZT?0j{g!`)&o8E@_3CCHCm6Erl2pM7>koLssa27L7SKn{v}13iT%Z^{OMEZq4+_N}p8r<-F_b{D0P zmVMe(U<}96YRa3|;7w426u7pOIbC0mf5lM0GitKeMPSJbTHO9=ZhXR3;+niDM*k}A z_3FekOEVFRn5r5})ESvM40{+pv+1`Q0zZNkq9f^@j$>;MPitL-&I{U|yk5)eXQb&M zpAR0nZrzi0RF{6OlIG1G08im+Z!~$DdY%)4%GTI3NMt3qWYziB@~Y`|GC#02<#B`| zeESbYU*%0ot52j&ZpQ;4&V7-6o4#F8R5d-|AWhpR%vnfrnG+)a&;>j_N1sl$$g`jf zE5u~K8gbmq>zLo{{7mV;HQf(Qj=o-`VsmZ874L1h@JP#jvARR|F)>w9?v%3*J_2XD zw=kH}s_&$A&OQ|v0noQ?V#ZP=CowT#AUF?aUN{II~;ROnRTd1pD9~K)kK=x zKFR=$at_#9vE3d%hn$u=MbMck4k=QyYn~UBUCZ>mE0Wz|ZmGzjr}Bb>Rn=FAu`>#W zrTt|_j&X}E@MXirgp!$xKn2Hx<{|?My)^U+&st1OPo%2=# z0@Co4`=A~=3at4&K7Z8DR%3h@Fm;K+@V@N8-OapkKkA;RiBp=1 zdbid$lkcGG5OWM>-w8Cg@ODR1^R8 zyiY0Mqw@;aD|wQu3#^@-yy)e6fXT(F0ghD}v%bsZLdq zn+x#7KLtPmG~E>_><`ZhlHWGX*nQ%@P!;97d*S{4vVOLkqaK^BLeBl3^a3}&w2WH$ zS>iL(4=Ai^v1K{MWG@@C(LfKzX7)&T!1c+Oia>~De#O~!%_7-Y#x7$So6+@MA<&eD ziR?yJ8EYAHRpi>hpH^4*EqF;#ZGhG_S|IZ9PuVDaDe}ou=FGxk_S}2QKV(jUcTyVk zWFH4V$8`ZVIpH8zp9?f*9M|!)yn&hU`ag^rtXK&>pea%o!$r@y4fz>k#}%JDR*vu= zO&g?Ru)$XKv~zWGc@I)uPgNN%@@*R*&k5M@>M5B{+tZ`UN!J@$+fO~7J37L*9vlr6 znLs+Ry0f@LF~}lzTPogXg)lGZ6I_k47jsnc4d1WRmMU~utV5>5#LZ+5$DE!{me2W? z;`7oc2&QD_)RfB?Xv$ID8L0l-&yeXQ)a8o>JRAuO0o@e@}Q0j zvS2(fhmhRFum}CrO}}`WYX(X_ zb+q&`DUW;NPx85XDo(n$L-Dzem6Lq&L&E$Wcoaaxh$RDVD??t_&Ey@Sq3EsW{E9oB zMWA`s!^&BlGiby&Rb_8<^imOKbD{B86>2!X?|O};Z;FJ5F>&(n%&yJNtm8>qu2o*$ z&4F+x!YotTe|&xCX5fXr{lYDCMD0p{3jmqI zC521JA};j|+C8@sTrX2NiuMlA=b4*OfI2B+pMP2D2(@XmPkXc#hHGQPFQ0&DBypZwkFgJdyras7 zC;~R4yr zJB$Snr}OtDQN#7$B#qYGnn6hYyb;**abfq^1GdURu1F)7Hke(A)p$;=$~qSg3p>z& z9rktN+^-_1W#TPg(9!|D)&qCOAffZbtSzI(gMZe=epha*PiSjO=`& zqXkI#ev1>srhBZ+wK%}%x@%A4UOA(5Wpu`SK+lhWW5M!(y^}{&JQ^vVc?a(FzxU_; z%uZ@uP&EakW>z>z_)wi9>~*cf$+Zu!Os%y#10k=CY5k4~Zj`R6qxjj24)~DVtpj1mSWusvKb`i-#Tgo9)zPi4@`Y9$>8NpkTo+@A5kNPQQpw* z$uv{(5_)1^9{r;^-eF*==-w61qCIBm-8>ie`dD7Mne7-Z$YH+4XDf$;b1qS|aKv7& zb>UNOP$2{=?=#W31p48gO_%10Us{~lI3V?Yq;*3Djm$C4eKh1X+zw$uZRUR=US!=2+}+KhY{5S@|*gni?`ijw>%|y^84)bNIlvWDPWsj z^h`lhfvL8ki=d_s`5dJw$7S_T_e}cCrurE4{cG6u_uJBQRXRS9r+DTL9!?DJ4kxGh zqwub?M~_0GB_>#C8zW{6kLFhC;h$eD|<~H8t4xlzpUub#{PFn9Qn>C!fah zd`Rt{e&7_dScW1ZA}3Qd>(Qz@3FFjT^9!Wq7Ez&OhE73vfc-4_SaLe_S#6po1j>#K zZtZ1#j=yboE0=(BN1NiLo@4r5v>(oIuEln^-CGbd#Upi5^vNUZ-3QbSi$*sCaXqm8 zw?S);GZlR9=`n`}Jjhw;N9hOj%jic{Z1GEs1vxeJ%*GyG`%H&k0HU{W!oNZt4T;|= z4K8O^g{qk*?}!rmhYix4=OqUs4hR#S(h~Ypl9B=G3)&-lV}6^`q#ol=J!y{z?w-jw zld&`^a$p!B3sAkb7F@usbkxrXtBS&|iq*L;~5PV_HW z>IBA&ne#XI>m!E5+uRKQEdO?3^Pl;1VOCPaPlDa?YzE+*%P{Pq4*r)E{P7(e1y(T& zrN?Y1=y`&~qKWUj9eK*$-&trQ4PD+;p3z#o0J+yH1h#&_{_JlX40Lf6%aL8&-7v$5 zEZRTsEnHgiPP}xt@$n-aa@#+DIzagU@C>}OqJ>v}+okxr5{oZmetFiF#o!!qr^P8L zFRV(rdg>|~X|6uKft{yYE(sCanEC>JPkF{}BwV}UGojSKoM5Df3}%CE#O|RA~65!(_8Q`2uq77Rzhuv22>xKQ~QMes$VIiUc*L z(R1g#7aogMf1b^GllJ1^e@%tB3Q(a5^%iCtCqUT{8(A4f(@Q@ z?1!(zJfmZ;<)D6IMD^Fw)-t49~#;G4cWLTcn$^((35OG`@czK>RQ`C)7IB zruUAO5})THX?YUFOH_IOVjB&KY=X|~fw_l;xF=M*dvV-KP+*Q0`#aW2E7Q9SCwG}k zYX$bNGO2g8TFiSrV)DD<{P1)>o$Z+1DPk}939pyqCYWX)ma2EVp%d8;zd|ztyXGT; z`<8JV7kzV D@c$;KL&`^TeIn9vBc9X}dX&wwB*Q5992Opeu&9qP2oIABX5I$da zR$}yq)fukgJ+3(pqtj(?1bHybrZf6-rhR{TJ2j58Qw-VLKRF`=;LYz&k=jzl6!gkQ#T83)~YPg zlQ?e$?nCXg$cAsqB~W=JEoV=`n4zwmiirGkYujag7S{#{7AJiB&K^zOn-d@}KEOhr z`TJB^Ah)N-4c+7_^~@3Jg2$JD3(97Wm#lX&ry_Qh=Zar-m$nzM=XgD4UoIpi%5|c^ zmkvgiFFl+L<_^G4MteT_iQYH{xm=?L4h3c7z#sW@vy#nAdtARAxI zQ(C3R6E1b*yK0H6zKk_@!WEr|<1d|RVl46vAAV>z64Y7$EZzH%Dt5S3>BQq|QLb*={d=h_XDd4C5JrgvFd7yE@mYaq}d92jUs84U9@vK?R z8HSd!8pFBxelqZ<_x;Sq_j!Z)npzq>yS{1V=2vW+56kWaA}jSti1MnQUFKwqnPM+a zRC%X7(Zn=abRw;Bz71MuY2iULH@ivqLqNwdy$)n?kPwlhokDa*){}$o3?c)-f|T;E zXTpM%4R?0q+@3t<7FnPIzn^Lc+>*XAL;6A0Liuj|qEv#8NZL!L09;8R&pqfxrAU#3 zeGlrOwC{!%!5+!D^I6&7J$+?rAKYuivclTgh<(z+*T2}u^y6z2STA_Qz5Md&-51JU z9pTE;O)^xipe7#wX}rmoujF5dOErF}Ggqsq zArV(2$R^ld$nYUAg8hke`>u*66GvO=n{zfxCj99i;`CP-Kothp#QEA2$&bBH>1?FL z9c#&3?mL{dC)Sg2$}eE=d=MC1W z)%D{;<2hFfv+f&KLt2vh7u7%R@Dla%l`^W)Li4tj6O9TnMy8wq4Y1!Kz>}?}1`K9w z0;?TolvJ8K@%8zJ*M7_Fzf9XDzi3SKmCbSF~y&gFPa>I z^=I+U^kRQuE~KRP)DW@|oOOd!H@wjL)pufm>%t#VN|Uo;G1#d0MV)+I=I$-9++L~p zH9KcwWbUyQ#vXZ<{2oGGJ6%q`ygO+TeNsu)9FZkZ6kJ`^3xbmdPK8`*!G#JCuUNerY7 zZY!g1Z9YZRE?vu&2|DQcy3aJ6Z#$V6j0MyqNo-hdM@+L?Sd+hgob{5_EFxd1`m=PR z-Y#jh^-qi$FaE;Vgkl-7Z5@W|4uABto9PER(FbN;l9uDRU3%^K4Zgcw&w6dl;9v25 zoYv)qbMKZ}`a3$u4>trYJ-{8FJ>L~%bAdB{Ut;Gy*y$s52xC)rGl@a@6^ zA);Pgq$4x~BN_`!1qy`iZfP-x|AegS=`RcSXUYgO5m0K0RJS3~d0Gj5s(P#e3KCiG z$-on7A8x={mCpuGBppme=ys|8L?!mmsDLS!FY{^R5WH-e7U!XLd&$~_DjRmP=VS6O zOB_)rb@lKR<{(RV=?pOtN!=8kOb^n&lwGfG$Zet( zs0DqPj*@oQY}HoQwuIRJA+*t8<#x~1dNvRhH2Nl-=2iKlpV8`}(4U=$F~j-IB|9=g zKzd2)p`lP`6$itS9jjmAZv)_^o!BXd)5Ndy6aOZD`dy~#ok7dRoH~9!{Qok55^FY< zqVY!^pY3+co5-0N77Tj)oY4>6`Q@A{9-4;MX1L(6s8nvaq~))?Ug-jiZNFoMkiyEOpOy>6w2H z_0w<4)eNlL?|0V?=CHzt?DW%=>LmEUJ%9h+8Lvu<^IAl!;rw`|)WF1VztlNPOzG63 zZDYz=#L}+2fs?A&-)ZnpAZO!Tm_Ks!Foc&xw)sV*1k3l8D`H;`=SDnJuL|J9bZC!q zcAuGaCBe|pS^2GWJ3FII3qg>FXEIuR4HCC4+B<}Lbs%*#d#KSbC^xASe;o=Y*BSB6 zJe~+2b72TBIKe?-efY{o(@s7sS35dhmyLMzRWNjIp=m4r!o>`JCAnECtL1wJi7azV zIbra=w*Z^8sHT%x8O1ACdf&e2)>(dgVLI_lsY!TRdYZSV)3GUJUiv-RC>sXSq1+C` zWX`UzN%n`Nh7=)eHIHMj@MI*pvzSr{LwGx*%|qp=s5A{K#Dljle!OLyZt3Z6$gbfn zpgj&}(yD(BJqCdhT-J4oI90QZEvb`D(DNQN(2s=~RLR5{jO**DR7O%iQpDDs#d~9W z5oYF8$voy?lVt3ga+!E#jVb(Ex$Se#O$MHuIsfdg<1s|+fL~t4Pa@m>=zgFUmviN^ z*hnkW@}sxRmR9$O*hp9N*q2&_~E;re4?kbU(ZP+0Fj+ zGX9(x3%}ZSRb!H%9jxI!cG;CrdZ{4EOzq`)T@Nz$Ly6<|@4lki;yGSvLP$QZyxu9J zsjd{&cC!KYm=WiXO)G-MMtdA*b_+!_$Arr|88X7I@u-P3MP+&-mW{I>c5M-*WTHCB$)~Ev&WSrBP*F9 zNmeK$o9hum2#K;TDwUnRD{eIRt=Y7t3pYsWe zrzv%qzJ9A?uZlV30|mQ!gZ(kt2IX4%0C+y`G<~r&TaZLs%zM(mu!#6 z=T-`Qx~b$ihEPbW~FpN_QHKyAm2>+@WoPpTz;-QkuT+(m4f)3iUsDmdVtd>5WnKrpbgUU>}cA zj<$hESUx_7i*N~&J(%Bju2hVn+ zvt#qE$C2fX(W!64V^{nGfVSpdLCTXQW<5XN;$K389#c<^j=c190J}wX8pI13sYysA zqR=Ly54v`Y3}Wwyke7GXF2xsX`qLAhc)D(lzn(@rP-RzOsxEaqO!hONgjuL>4LT_# zMT`|D$VZqo5XOKPbec!s+{qa2#XFigG8A0(>Y&mOi( zl#ruP8cYM*UmDgjSJ%#>;30+wMhei~o>=6gTp(8nj$LgaI_YwDM;~tjmaH}{ETHz`olDL;ccw@AW#3&J+mg6@lC1*wF17=E?9N^^CpF5s%v+(ISM(CbFndo}QG0yI z6uOvw5v~IZ7A-0}*^&6wqr*Xk(w$Amd{BIi@YZ*uy>Nww<>$5vI&aUoDN&s89CbWj zlTALi;g~74!D`6#1BPG7&C4_v2;Zc>T`)tIJ{?5x_B*iUl#E%{gj<}C6fKdvtpb3@t;0$<<2 zJMr11XmqH-8gjY3Z5VXJSU>2>&6Cr%w##;YIiREdOpE99Xll0)zmn?J(|_qXcR{0; zKBycK3wGIi;rO2u0tqWiten; z#n^iRW3?T}pyu_GA0kcU$D#H0%9!I)Bmr56eU7|WPDgO^eqK+GpwGN$jUc2M;9L#{ zWcHX%-c^N0!L8mleuk@C{dKZOsL5im_NDz>a1aSoSNe}0)h^#Rf7N4Zf)n*1oYH=6 zye*k0Lj0`lUzC)S=;L3M^ypfEw#Vh;7#uew1z)b_lv$3qD@_vrQ|pA)wPgwi@>P)& zbrkrKtG~&1<+@(JT!`50)Oz)}PObh!nA{0$u0;PBly6+xa;RlJG0Y|9=vIpw5YvwKm_$B;a44h344?(&cY;isHklixm(~RGi5HMy~Hy(9x00 z?=9C=%}q3xRr?7B;VceoE<#zow#F8#b|*!9Hg n3aHp{LxdgqtFV<{|QG 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%0AQ$Q!LVx-Sk^S^>x5vi|OK+^Z%PL||w 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

    U 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%0AOJT` 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

    f+P9pCKF*!ks8qp|zb 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 z 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


    3r-)4+P2jkFc z2bCR5V%JarJBi1ZnTPdh`TCssfn1N#@`3+L)H6aodpbVMCi2dCwUfE*`*%2;^t!t@ z`V~Qil9lo6WcRA(`F!{-_6yTXXlcA8W;oGRp9?*5D)A{gK84aU$9}Jyo|n<#6a%G; zm?DmcAdbETtgQyy#dtB=yPC(>p*p9@sJpxEycb}I)S_BAO}@x`ur!gOOLlF$5xZiY zB+x^VnokJ0dhIGDcTVzc{GiyOtYO7v=UH(UbLF5~VJ73sB4wG1#x5QiND{qHuN{Ts zqL1D%=jhbP$Oh7RU_eyW3)CLO?!n+!jdb$_d$TX%; z!s8~io>PuzD79+UtIalL%|F{^?P-UiI-Z>Y`l=DV5DX-j4Tqo&&K#i?ojQ1~n<~C_ z*E?vq#Mv_{wGsF6yKAm-33nbh;yw%kz0z2HDjmDL$N|E)+q$)M?U?mYsHi`JDF<=f ziY**rnHJRDe%Dnpn$KzlqQLIzD1t!Y?I%N&um|?do-G#&}IXYKgebaR|;~n zjcP7aQcb*Dj+6Ud;$x+xhf~mPZBHx*GHWWUf#5MR`jRhjs@F+T7l56wH1%}=@%sJd zy)-F|RPXBp$>wzW=Pkeu@I2X%=EVLc?Tcr@Gg;V3sK{&F3EiQLXfH#1ZxqWPnw}Fb z7nif3T{(~Ad&~RqDnfpckIOA3qseVs&VCc&!?5W=I2y})#?4e5spw)fraX0bQ>6uo zVx%1?>nb}U33YnXlseUPdp&5u7YUvqg!?S>JWLdWk0npN4+=S5FAhgI%iCg`966Ja zFD}Vf&D|Vqcj8{&U|E7-$Mt+?Y0#+krMFXA7ew!l{L|Gl-m^?^cz`fcK@C2n0|>x{ z2C!!w9zD~PMY=%*9*K0peF<*goULuZ_*-xfFo$dhel^<0T+Oh>ZAwdrQ)bQm5+kL_ zie}tnFc-rxXWDM4a+qcMsC%rLdrMS<;q6LTA15C`y)@b%tN`qmiJGuc`^G6LsV{m*bGr+lgC-vp`X89XAga&>?0_xp*ty{_+ei@DsdLumYDfI zu=x7)5N9ZsUKH}$Vf7EZU3FAcVHO7#mPSCjLqMdvLqfWxOL9<Pq#Fbkv)D`??gK zS*)?ySqtB#&pnQ0OxvRaju5#RLtwQi(#u$YT$xCmZ# zA@z+p9cn8R#He7PMj#p!}q~&X}NGJwTwiqEKw7aS9~^l~>YP ze?GEYp@GleKDll_196?yT6t%<2c4{JQc@1oMAlqf^?b5DG@1r0*FQ-0*aRLj$`%BD z{D!nOtGu}`Hhw%c@v~ZtWE?Hv46U$*OMxTG9_tc4el;x{aZRq)TNML;JpO^x}u8XZ_24|>|{bve3dxK7`yW0?Bhdkt& zQ1yf1SaRtb%hL~}v)pO+0Inx2wymuy3Xb?J#EyZMXiTX6lsC=oGv{loRq0=QsflUm z*^E@iI~bODHapuaR-Sn@U#*RGg=sgv(Kt93Tcnuv@K4G7SZoGUKGeY-ol^ahx!Ec= z{6KC8Q;gl9_pM#wb(3;=5B=r->}6oojcpt5YEb!Z?+aqU)*SE9bi0p&La!vu{%xb) z!UWU0VmZDA0u4Q^eYzDq-#uCX>VCZtdlzXq(yZgh!{cdaJXe#Lyz9+}sN=^EilQjP znDH%VbQ-ZH$M;!)2AJJ(wpB8Z>U-`Zgt{xnVAiYb8O#8R^4%g;o$ z^QutgWSiOj6RgVf*&JVj10fsDbzG^Aa`e?=yy~q!bCM%7J?H^cxg>v`+Us@_eqsh_ z{)K0Q6pdYpLIj-Hn<%#BWS@pijHNLn?ydF`x-Z+y%*}a}*Fbu2A5EW`Xuep)G$4tg@Imusxu^TmG8Bviy z_6a7upYDi@$*q0RVg1di_u9w%E&n_GL#D({HN8CI(y=q%7I|?FL9-Wau>N%g%>PlzO z@HP1m(*AbarDXy8VTa&iDv;ClRTsJTUk-C1A{)v4g%w^Oh*wvM!eM2eDUXjQ@r)+J zvuBTq_eY#eRPVf!QApp?wl18VwU`ML8e&W|2XLQ4n)DQ5QNpVqx4gxjcD-fuD>11q z>;w;3aDf!7t1otj4M)6~+GD(Ri0~=b(d0Rlz(89;tM}yiGyK@4FjfaI<9McdF-H6P zh+!AGxc=qr-l+D*>%i=I(JrW*_i|y%)G)u<@TY`-Y`(i%!QWBIbu0>Q1*?n-2Bf3;vb?nE9Mi5O*(tar$nTku+?O^OYY)L< zT717Fu|*%dA;LPzPH+9t{N8%lIc4C3QOr*Msc5>#3uQB-NvMG{vx8E z6+P{S4=gpu0$ILlR+)dnf6Gz?tIAL|AI@^08!pOCJx-~u8Xt?J()VKIdfx5nf34l` zcx>o>usVB+w8OJg=wtIDhT3?~4d&BkRh^JbwO+9U7vl_Mz038|lN-Bn?A6Yh_12b+ zVcnV7399|UX2n?wGRvM?qgE#^p0n7zaB3ncu%y6rkwZwz*iK0u-EV>wfkv!;Qwk=S$h`v=vkwmw>tM*Z`A!qB;a&-C0St#>F`}dzvb_X0L zMV=_y3Gek%G8!2jk22`%R+$Hn7wLj8#;RJ~t5eUl(zmKbMxsuif7K#jA*LBkwlgUh z!qBBn+yX9C`Lv7=*5lQU`^+qW3agmGE@PGax|M0@U~U!^`p^lQ&syK3)4z4R78p(*nUZR^TW6U|Gbp7F_##d-CwTScj>J3Fl$-gY_& zzwga!ZmcwY@gy>H&PIs$(XRZqo9lZ4_6c%=SIPN7l%x)6Q!S3)437RPH_q*H8Bx9Z zA(9P>*A?rrxuf=i-bJvK<89R@d69@wa_T`Zf!QcvLovVX<5HjYoOk8I8;QmP zT+#QcsBGO=w;LK4>UWPjFr)2t0-rAII5$lw4ew44nAh1ReyUi|B+ zAPSxxa{l6I^K_no`4N|va!Zr!Ms2-4LMPXRcgr(SIgHC_g%0jAo9`xS=jQCc>2BR` zJPn^eSXvbt(n0=%Z35^W^fnsl??#4g?4R%UO_o0!0{}`_3rAf%SBz>6Ma$2P`WV)) zx7nsdS39)X``2ami|& zvyZEAr$6j&jo>GtGoRc2=w9vhtk|w@5%OX6W^pc}ZTYzG08aovD6*3N*iXvxzB83y zS9w1(wVsr?%%xHhZTj+rFP0O0=RcU;1{!voHmi?!&K{VV&^3w*d5RcUmrQY;Hf$e+ z^qhK#%AEo_E7P`$YLC(SFB#(NO7}YX5XO{zJ6>pEXY6`y)&2v~X(Iqna?+PzZo|&_!5Z7ZCi-OT$HXqfT0{PhqwchXo%by?d<_rTXehcfp%Vl3!@fAU zh`(R@Tn!SC%`m~gC8)2O#sDvvhVz>U_a%Rb-tWWj&+a|9Qw*Z?K3nLuXeu%zW7{=Y z$_|Zim}{%u=}@3%S`4lKPP+Yg$>pHa<#hFr=aJtZG%*n2qJ4vmK4<~mT~^|<%F*$2 zJuAbY%hP@HD%SS}&vK@rpM0#knx|2CHhoGODPWbbb|m?&mMe|N=;S6&JGDr9Ao*Wz zg)uxUUPi%nAWS^!N2q$&6=(Kb$1uKEuadJQ$snQ8Ye!$6Q%`q@8O4*%rR3c>Dz*4m z5tY%LG*g^!LzMfF?WN2XE;0T2t)@9qR>0#Pj4;PM>46t&sV}0E*?SP2PHUXAoyS~(;(Y4NkKHe5IWEt)J>!oYpdvCh zjJRWmpKh3ReajxPO4T(1FKKMF3*ISLcPb`XzMfd6F3PldQWv?ZSK4W>*97t=TYG{c z9eFhrT+~6-bYx6=YpDz+*r_X(Y`dYsAOvwO1AR68!r|lmr*B{8M=cc=)a$P%aJu+u zIO|nx2U4A@Ldp0A5xsh3Q#l`KE*uCq0en0+ zXN`v`s60G-!Kf)_bQ5rWVp3}AIx;^%jbih}Adb3zZGD$UGb`1h%nM1^m7*B0aS%U) zT+Ta+1SgU6Sk@ma)}r9zdFdybuYEF#i=JSYR3clwlW|I?$S!kjx{`*OuqTKgw_LBf zvA}}@Lbn1%e}6#Y4}WpygTHt$5X(6?hau67!?301G+wZ5) zep1t)>7;#wcyM?8MOsx`;k}4zh9Y zTi1K)6vq5D=c@*tO+AzsSs&xq+A>VopsODh4$wgkC!-XffmU2-iO)YC!%OSJ#N;m2 zQ2yBbuXlgt_xe5v@|b34A@=A03IF`0h^h(O9=NBUy6>yS{rYA2yKj}#A5x5+H@$W< zWcY3lbwsP*0X@X9p$tZVra)E7}@Qxe3{CUt{$-moR-4@{}H!&@nb!%MRx1}lD6h+UM zRhmfHlz1#^YL#yTsGSJaM{E_QLeHPsHD92RloHP5u{>7rD-^uorh zU1@5d+4{)~q&3y*)^!2iv*fdoPV_rfvBNePR81x|{Gq5FSL7pz5Miw!H}m^F0t9F5 zq-_;jEBUL~&4);9R3{{AS^wK(P)1+UI^h4&RN9@ekjK7p+^E{H4*Jf0Y zBjVF2R#=mxZ zmsJUVErFl+ZH8GMi?3(&ohP91cHKuo)`MluH_! zaQ0bi4ttPd-CrBEvPt!=A>R?a&i%>P9y~|D%0$x++b4uBY{jjCu9M+A%zhve z>P43Ua)}@WQnC;uOo%Qb$hwk{Q*{~sHULq6OUNXSOkeBf=@fa@6Y=yl1^xz1t~|Cl zCB))K`1x6X&6`rd`R32?q?%>0AGZ+cWNoBBi@k=lWNz-b*&!VS^%f+nw&h%C@u#m2P_Kyn zd)P)Zm`ZU7*33g(I#Q+y5SYU|TjgL80Bc*V6c7JYw|ag_U7KKQMh!58WiH-+`NIr?Rv1KpnI zI@=%3QgR$Qovn#NiG(X4TX`s0mZ?J!41pugi~7hb2wtz`wa((Oq3q-Xt?2A1Meuje zG^lMRl2EF@bxbVrzbp7is}C;9=V`9~;-4i)TBShu+2Q)H&X0TIj5*SzN{Ymy*Q}J1 z6~7#EYpl&vOTXrpiF$%*SV7a<+nkpqn;_sXX+du2W0y5FdGg|6Pk)r^&{hr#UWWafl>YOd^j%$2L;GiVUDZkkN3YC zyt>Izw~o^3P;;<@o@>|3Xmc0KwLf}jkTzhFph$n#C>}qpDd#{C+W$tAQzk82raDL< z99Z5E7`karFUpdW{(0NpxCr+Wsx+W+z_q{59Lu0P<%*dKIjU0co>mfyhqjFOGTYP^ zNp1;{alLrPh8H_&vT>`Uajv`I6@$j4qklWpLO9ZNdSLMZVaacCULc5s%6`xj=h|96 z&-=ExZYAD1A4?z=UGrs1FWMT3#>UVEW7NWoW;nJ^)U{!Q?t1gVyRRaDkEoFI)lYzUBt5w%hY5 zQk{NPQuODIW8dD&Q5k~sGsmtQ=ri+%^?JMy{(lS`v4ignbxDwcnV5J`i^kCTQ2dfI zHj;Lcl6Y9G(II(;lI8IkD%Nj)-hlFN5tW>N!8(HpAjmNoPjs2C~j5vHqC&KQxB)r^b-a`2oXG z=vagstEuGk307gQUoYeN$-Dj#f&RA$Fq5CPQYFn!2u~j~^HXkeqV^LG0tC(eG~t8a zCj1$UzrQ0B_<#60-XDWsb4MY!eVrg`zsZBYy8;JqPWq>9+bGZL*%AM|&KwnOkLDH` zd!3JiDBR~>mU^y*02X*YXtpII-libR$M8l0zi#QYyD~~-uSSN#huTP~X>VB4&U0(s z&4Et%=B#H-WRDl1t^ZfD$S9G^aY=`vW|0dU8!?iS%Vdm;%l+-H6SAwAM&53p&VptD z{7(txuzyJS?_*cdHW3Id!=)cyh6vR@=?v2ccCzYs;L!L@_T-Bau#xu(dmonPUjZ)x z6qt@5(EEg6km&`BYQFiaLDiVZQReF6i0~v3+%O}eu+%4ZmDx!_@}>Z^Q1JjGbZLw3 z+qlT55bPTLDV+DOx4GO80@l;Rvh-7W>YY9OCxIL)y6tN`ZbGnDUwvbuA;B);nDq)-YeAp#paU9ih@9-SEeAL z1J@{fngApqvfWongf2%t1a6rfl<^~S2A@8JUrs>t@I%;7FH=T1qQZprBc7dNMJWA& zD}TjxCc$+KuNAo$3baSDAY0nxMGHn-`@(5wR7!C+LnJ%)k%|eg$8OL(!YF`&ow# zT?|!aOrQF#LL?qAhFY#>`G_yZfYRJ7<8Ca3@S>+VvyX4XjKqk>gAk46eswDef-tBswfg)KwhflVbu_8bundUT;HvMR!YO3uh&H3d$L8_A>WKG9{L7^k-MId+7qvC5#c zdbq2AFiM^w})H*}jn(O^~N z8bZ@}sxD)f*#I7SpQ)m=k)>pTxGu&aQtcfh63Unoq5BrViKU{YAN20C4cl?bw(U>^ zHre~Pmi$C~%~9jDQI8Bc6nbRgIkjR_f4%e^ie+Y6bi+Q+&cG8s zw5kj2LBCI<>3sd*4V{%vT$bP$IwL{iK!3F^Qg5%3+`Yv5QTlCs0m*=x;jdjar zH>W~1ClYfBmG&A^9x0_)qT47Y@LnDKF=t#83n!_|z8;+IQL&6Fa zQd2{uBzx60M5zvx>znQ&=k1b7x{TEDyp71X-w|nov?l&h>5Ew~3@dK#xJ^~IHY~Dw z9jc-CXE77G(3-sY3$H{wd5mn6&fM-B40S)1M3jDdH)$oTjVHPe?=be?H0WjG`q^`# ziqJlR!{sr@m5=QbaHf&Ek{z=_vk!>&bAdkY}BpuZpV_xdfa#NuU{*2r0F9d zG(t>;Nkv4zASlgU9lQ5P-19}` zVA@)rWa0FQa70oLtPx(MiW5yV>vvAWbj)vk#eHoIWxAhn*reBw8s!9TeGftLx_Wrf zbTc~xVievg23>;3j9`}k$C)S zeby{$SN9iOH$X&k!}*D$s^G}m7rV;`4Q#Yu>JrPmUc-`JcLiqUEouZ~%)6x9*Av1E zs=c9+H-n(z2vyLbXN$tko;{wRlR*rIC1h?iN~1-$r2&Q@O8=8?wv1)srFf7i_x0abAAQm|IBlfAdPt1>6x^8} zED2ri>4ZjvO3o0Yk4zOAVOAEkfLc+`yq3R47>K(5JxajQ&F zVC43rroWa$$zS|s9*ZB)26^%LxeKqcFV;5&OL;yVPQGRK1QVOT=$bQ6jk7b#rOJeP zD5(Qth;c41)Ed7~f2xACg}$s%^{Ov3Y_lN=$x^i3%2O^c6y;%lQw}l+-G3fSUh{0i z=u#fq_mWU6qjLCadxwKoq9)dH2ASUR1DYY zz@hg0WO<`~Y}r0_FCWi8fCE)T1d^W-;>OhwvR4kE^pstv9sM}Vl@v_-By9cQ6IYaS z>({*oP)DmO-wZoxDcptY*GT_eDB*JL(Ml?N|_*1dOjcC-t?DPsKX^ zr4@hxUF3>%>q_JoI~p090mmls1Kc;F_G|aVyy2iGiHmuVp;UtQu>j|qG^Am6;t;w> zLsxlhPvus?_{o#tC$Qw9{ZUbVa`3TF?V18f<`b44ryc>(cbxNC$f)N}Ry!%i#4MOv z7ol)Bi(+ILh-yPkqwos?Tw{mf*Ys3Yc^2&_3dG# zfvxb(5on<_W5d`l=)Q#an%39;dyrRK`vA4{d0(pAew|9(?qkfG-`$J-(hu+b=T`s6 z{{P(S|Ish}*#iC4(oa_661oL-ePxid2?xhDKXKb?Xg|4iBz43!|AVdb*;i8$t>-nB z493BjnrY2$m4{94Y3?(g2YF%a6MQ11LN$vspC=+n`FibU!^VgWk>Qehnx|HG&X>|u z_dU>e3{x&wb5@Ja+P4I6dm^6SAdUv%Xc?kUNO(^S3ggSW#yK5N6RcH|rdfB-Oy~wx zm+@-C@!9o#uR|EJT3{1ubQc3z2vxx*0793L_iNbP&p%I0oCglpo3;*&`)%>oeC~Sl zG@%iAxd63Mw5;r&pLr=V9p=z>W`h+v>SsQz!A-#Sd`r1B@_we&m*Yao1XgO-IR}B}r#LfUSni6lCycWtpHo^v_BCchL zzc1il!cAls#EN}~+cKC}@!~~p#nj@Yzf58Kz2D_=!FPfn@Ibz za`Q!JEJnMAs&<4Xv55mGbbSdN-sdW5lKU0$d`!QB&g*YF=N9x}G@VLb zy(W^_x;^!=VOK3%FWX9}t4R|j1?k3OA&>J~ZuGS?e4OUCvQwI5^Mz527YKhqH;j0T z!h|9=|9GqL*(Q^)bR*WSM@IatCqJ9sRz{m&=Mg)hG&UBCAxcPV_9{okjr$dGGzkuP zub`3uBLi=mu@YOKp@)Jp@E1@9qq?glrG1~N2tF}~{r$Cdl-@Ya}bkC+6BDuFeV zQ+fR{m)pkQS`pjtS0cUVv$X1W&=e0RQXUOwh`y)`g7eZS{Q5eBG5sdMlL%?8n|{Ir z9$rw(l*MIJUIP;p>q@_qsnh_Woqd40^ZMRWX{9e`Z;)dEh7cnllZvo`GTT5h-3V=6 zg@IZlECTYpR~Mvw3~^Z#BttD%?&05*FqSGd)aeeOZVyK>Y0`a8oLif(X)ZxM%`DMd zd3HmF*8wEIr4A->?>HlDSR?cqMyJiYuFygrjV3rROQD-wwgsoGGy;5wt$sFX(2vQfghC zG0aw05eF;m*RGDcQG^NBNs>a+4g?-1jYBDwSPOAkfFVQB1iEIX&TGKCrcL(0ggA(v z6Z+6U;Ma5=OjQ?YwfD5&fCNWVc!Jyt<+>j^W*p;LbJ!$)Gh4q)1uoxDCw>F^WvtZ~ z;a|$p`_<0zQ~3x}+eCW(;Y12L$}KqH8|-OakGREzAx}4iSwI=>x#6dJkqA}y99o1pu2O9!;6FGNJvGts`2W8b#KF=dr$pFb$Se^!&BBf;>l(b<;gjc#+EO2`= zD9l8lI3cYW#n6H^NrQ=(KvLZYSPl)p{ris8X|RKzw0CFpkuBRAZ@HRq*g~kfD2SMs zVISTVC56{}{!szFzwN3QX(-K5?)@^%RRLP%DTr&2G0_EeILrm2s%$fqU5RewO$Ds1 zOPm;UANHDxAsjVr2yL>r%|9YmI7D;TUED4TOow2bQSIAGB~gp_J#sYnPYqL~U2y6b z>s5Z*b(ao!zO!3@Lg<;n^eAKBmeZV@MjwDm3)MZ_wC0H$td3@?CymH6%Wn|ZHmt;) zqZ9Ic-_T@Aciw}Nu=k6);9DsLf;w( z5FhKtM-u>-S6bKBOe4cPBOoMRve4XHUcGr+QpUi4cgo_`n{1XlVSj|+jOWw3uFHnm zdM;Tj9n^A$ij$Fj*60J@a9xXyNt0I{(32qfIAq8TQpi2{-Ymv+@m(rU{8&%SJNJHh zO#Ms^ys@vt{i&8?CWRYHm~;(TL8|8PLOlqT8s-7jN}YTgSUgF_ozZ!tCprh)7_~xU z3~H>7;vSp+P8A3e{tVo%cX9Ie{#~3z!)gtz*cbtNuP$oEgd&Z7Bl(18oo|kCD-F_` z1!f3XC@u*zI#2k-aIR5I0)zSq#$`je&SG+3(>0e)uMy=`RvyZ69PuS+-Q?(h+IBiO zj4lY>AEP@kuO<;Z(vW>763Acp+@)b?t5mY_!Zzkg*BNz)nZ3Jmv!CG_>9MBeI(AUU zf*m`Eq(hU;PCbnhhB#kPXvwLV8pXtD83)!ywmq08GewnrQ*v9%4eb7oMxEyeya|EP zsL8$4O;`2Fu*AxYA$BD^?JI2cF|K7AKO>(y1XHpB>-x!7CdSKkk%27DYQzr>lKO&i zGlTpPocIbnaxQbZ`qcK z5sq9=Ms-guN_FFqg8`H*jrOs2T056Fq&)byfYx^cQov5l>*`!qZA&KOnv{>&2_esX^w(6`)cZ7~t$=!{?XUeYt?C}D{eq81|(m*fb3-$(brXR{1M zzU6~LNAnKbKF}OQ)j^` zg84Og=vsyU?(p>QCN%zvN;20^CHCvyKj7p1CW9~D-oM_3Zm=PB+w%)&=KQtM+7nq8 zek|4#%6GeK9p@j%GHu(3l{G1oF8u5${bfdx+jsbDEcky~qedzRk6E~m*(Lb*pltx_Z zYOG~trSLwR4--l(w^-U?8B1fYH=NmTlV4L!1ny3gT(Q~~Q0V`aIckjp2ICy+?_iwz zJG0gS4Zm2fA280Z{uahnMWclt9)#r57E>j++2phnwIMTpCL$=R9>fx!AJO23AFijxVk9&f?|}Mc2a=M4g}{V^OMim-+WH-wo%M{5mK=aU4>M`GydYN zfrma)DT>*Ejud3i?5anld!Q9ia_dmSzk~gO_`QvTy8#j_TdKz+(J;l@Lh6OS3~*RH z&5$H6qbv&2$=HZ~#CZzEjQ+%Oxf>m@NFPR;kmt0Iv*W##z!30Sh0ZZ969ffgbLzOeUABMpIeWbaAYaH52~}MNX0T19uIk(I)L5k>0a;Bn~1? z0|})ltSQ3uiEOBryMvu0$dniiv^k9Gvjh2Hr2+_Ruihz|#W>U-;EsG~GNX?#qb{im zli_UcsgMtFM1k<Wc!nZXroHaDbEeUlWchnNrrb>7Wp>Xyn zkGGk5Gc0u^w<#-J$beuK-IDo@Wd6fzT)D!avKM(d5~Et7^KOjkm4^~Nd7;y0mAc&C z{`u_L5muBUGXEktfcG;P2yip3P4H0qL79b;JY@2Y;dLP1b=Rm@aolytqS39r2;b@y z-BF44mR=`F2Y)Z2kxSqj~2=DEQ`+!#^I)AKK%~|XaTPWB1U8hz?vxAoWgM>_^yz|< z2aAe&!xAMHXY1z5b_X~y6)TU%N7_h_q$k&T=ZH=w138DL&aQF2~|?54b@45uh_5Bg|PP|&f5Z%A{?`%X@m z-q&vPRY8pwY_|Sz?ndtGEpFK)N8@xt!AQVZDV`4v#vq-8oE^a@19L#`_mIj9d^h2M z146TLoF+NDUosDTh(pg&(l{A~jZ1fj-K;{QgoY=l392jI;~R(Pe%1_z$^R1lMX z!0z3C#}6?_B5QsoYY}?0C?&87QTV}C>mjCBSa07)!sxLau2Grk>A(N@V8E=2bwA_= zfLb)*${!)PI|q?Zr*i&Y)q0LJlyt_oAjGk==@#>4umPm~PkOOoZjql|!Q)8YqX|n^ z3?z>JQ-U8dQC1`u=pDPingK&TYNj!(-Nb9^oKHfig0Vrz_=AIB?45Nj@_`4X9r^=r z;ofwm2!Et}i%N`K3Q71Cd63=rx;eVb?FrHKph&ixY(OZO)ORWxZ~)sW zltKbN|3JBMp7P=lxx`>L3cSYq!W0kKdf~cBr;xcn5JPk5+lv%wd>B)z5>}{ydPV0i8`i|8rEQEh)8pL9oPl3T8h6v{|ZdT4KQtO=AyT z?eK=7c8*JzR$RQUgRDqxs=PC^Ap*fV4D_Tu0102!VwOTADzN4#y3LQ6JEIN%NTR>(`+HoUkfwOa1(#8lf(&REdvHz;;=J8+W$gwc zi1bTD=)-U!LtqDAszOJNQfKa*!GgOv{^+g&WPAlg@uv@ktF&?8zECqpu5q!_F#;tD-BN0uYU zuZsda+BQpiSV$zlc=ew+pxf`l9#ka5&k@q7fzi0Ub(NyZ!c*u&3tvNq=wv#ltV^gY z@+c0(QBQQ|r)y?+D!fZIe;i%E{0Ql@c!GTG%9U5=@GbRk^g;@9CNx`ohWJoW*%O_r zBYF-<*$|N@Rr~NT6>?`Pzgdn-9(p84X0#*JiD9rG2ukbc8%2lOwrEQP?+WDu|6InwD6c<7E$lkeDad|-T) z=2UfJcbY~@nMcEi8xB2pNhi?19r;SxQ!q4BhTB5k-S8GYHk=eme%pcQP#5VKsQc(0 zNF@twiFP{E@?asqN%OZ#8yLntZ&$kVMaR}guH1$XzY21zC;2mf-29fI`F7^6m9{{! zak*=?TGsd0YI4V+p_~1cX9M3D>Y{w-?3hc#^hT({)BT#uM#Qun-6b7<6E^aHLQc&j z>s=H0So!ST-_Tr2UDVkcYKSpX3~t zsR(;%NAj#BprWS^iuZ`Yaqi01iW&j8me+&B`Py8Rsbe{w3f6jy86k~)DB%fZ;*XRa zd}wjq`lg8BFE{I?EeFa5HPC@GL`3)s>=bcC25c~#=_kAyOX(5cOqMAb2@X|dLb4#H z)-xwc8&K4@wbvwF`8Sxeh1;oiJ$)ZKMkfNiMdC9AIx;#YsN3B6S(^~t8FG>&VIgqn6J^;2184#Ph~%L_Jfy<8 zfs9QVhC$>)bra}phPaDU9)a!mo~q#4m%A3Tiw{~R`bTo7bMK=qw0~}RA~#wqA5{dy zf^P3SiYPE%xvjbAiq;}%>{r6O+~-OiA`K@)YcJDRdjt2Z3r6P)a=H>fZWRZ2qoht(HI}PPfH_t|%#&P_5(m{P!Ds{-Fg|Se8v! z>jCV+IWwD#wo#KmgA?L^MiCfZ-`JYy5W(;~=;%P=Vlj+2GeY%E!>K70p16=T`d@Pg z2DILBsnyR1Y+UTEGa3P5@1m>obxpA?Qx#uHY+^^~#9${YsI))G-R7~cA^+jL$};8v zFziJ#iN~i1i5=nxsVqzQ>LTcLZUlKP03d^L7~p)(=!5V!6JtVRG*sG#=2Q*_z-}rPaf1@fGhSo}8;qQ8CW<<|hhW^apEXe?Znf8X7+-MXb`1)4p zF(XIkOKq#?^$S+)UvWMC^u7lm;DY9RIUmeCv+d;v@WNUr`w z9<%w=h{rJ{>Hx|#wiRK-I4um>RUDsk{+P1?$9B9dLl`KVULArt^vsr?RN3endKgwj zS-OSzWD&0nw=}D;89R!&=~x67ne@h3OljY$R4DP|1>d}_PLLrM1So=vnaaio9V|Pc zdiBl{b&*(3Vv7m_kb(qLVuE2>LSHSFbsYKa&{`nI_)I$XP8`)B;+w%+3`lAITniT9-9$(6GXj54+}&}r1i z(H&NI^BELYaSKuAQzsA3uaL!lpXIGZYVbM5o5%NmQTTh*F)#A@p27#kmTqdE z=eL*G8;`KlFz*MN*k6ozHvnIBfOB7l&l7iGP(r|4iO1{FVo!WyiUP*K%=P$&QG|y# z)Uu}?F4foBD`kDFFl(v@!SUVX)d>qJe&3Up8$x3`5*jD$IFqAUWw8{I_q1RXlaKU zNtfJQfJwtU5WGhiE#f~bTg7U*iI3@@_8Jxc02muDlWB~k7S_E10%O{m=QH?Im&2wX zb0Z~*r>>4yZV0=7kQ^lq=LV7QQBTPJ!A&7=43yek+eQ-HzX(GFH~Pn=5AAXJ_`kNt z)$7R{z@Jiy`p5Se*4Dd2i|YC*?$?#i{$8RF+i5Wh%L;{|rCpNyJdWWRp4h|^G*HMa zjdg<(BaaJUo-TmDpc-ldr~Iyl{kUNA=>oJ13#}vwM9e2dlqCH7tn$BY0RJOSIS2$+ zc(9x6wC9mt7t$E#A%2Pu$0u~V&QDeik8YdMd9Kp&ZW^UcL|nb(u*4hG}BaX+1P zaz^YRS8`cogMcg03F)~dU<0%seDh zJg;6Tt*@MP%Gvl)0--8(=Yd;p^zD)34%%(CZCS+J)kn5M4z@Gth1kJBs!^r#Wi!UJZhvm$S@(SM!R z%7dl=AqHA#Ou%`H`Hw%Q|0W{jd?e2>Cpsza37*NMyRMH0P1R)2ZQL`TjOB3xsDV|g zKB9Wi#^gz+ZaDcYH#|O%l<3jP+A200M^Ha=cVkLwoR`+c7bnxE_mOzRAwehIDegO? z#7rn@+41DJgVx{x6xuCc2CENfhC{>VFEk7ZFB_I!YJk}F`>_ak9Kg5{`{c( zIoK(cyuMuNps$)}Keyw`Y%T~V>iNx@R6q@YDpZk#ZN(_?4NG2V{cJB65E29F3@{Jp zIPD~q7!o@0KbwWVziuiTCJ1j$tEl@be&{*D82>sf4_Y=5axO*CktlIMtGC#5PFD|9 zHDXD}yze8GLyMWWmCIS3n z(h$$8uiz%veJ}fA{+49q{X5ja6>kn8{K)>ZHk3J0fJ3c&}6}jl*fi@sOg1Wdu zetxSdwOb3gzuRnkv^e5by{7oLWw?wNpI z@<~K|R7<{R7l?!tU5SM+5QCU}_e(mKF7T5+`&(QElJDZw!z$%i8$D}A{_2aFdTp{M zR6%Kx8-FrEzMs!p)krmQgErO`jRW#fl0WSh16`qHonC{8$8}{U3Lg102K;9zouxn| ze=UQ{M>;Vhk8~!pa_lF+;Uj=PPE3T z=zUVoi1vl zA`?vgr$!|Zv2%QF^x@f2s4Ju1_nfZpWCKb&-gp&WC*0l+jTg@1Lo=TER$cuQW5!kd z05@@9NY!m5*wY8%OF}`(sXrlM@&l?7YDClF$k7y1rb~bv$`)mjvPVaMKL>9z28b3G z4KQOM746+f^VAbH(qoj*w{kHZisrKR3Ydtf^ZyFqO0e7=Nv)$zHgC44)wI} zOWmBqtg!u<8fuO3e#C%^zx$!!ea|2ZjYc~KnZJWjke4?y>w&foKXa0xBTjq1>3~b1 zFJ}B1-<;c{+x%yNIJlNOmk<%y0&gd$z$&yvElo6|;t38T5RGvC-m^B$h2m-7CXA(@ zaH%TQUzvpu;YFuhacPNzkhst%@GdUp|=Je!Yyk}uv=%>0n9(8)XOHw!(x1*Y3pKk&Bku*TPKD2O7sSSTv$}@l9 zOwu+I|28{uO;75Y@}#hMy@0hczBP(+hg>C$`VI?fgp2QtBY?kwTIV2BUV~*|{K|h` zBN%b4i>mqz2w$l#Pn1~>K8RFXnSp13FAn2S6_=TlAhn@zy-=}Bb%A)^;RQXZ7a6Df z%kTL%C@kT#HyGeW;9&{6A*AGJ5_cr^=Z`&Hbc#smr`Al=&wY>VoW&hXAx1R zdFlJa%e9q@F!yzzHd~k}Q>`IT^-++xpeo6J%QYkwf4>R3oATURB!`q71FQe4f{KDe zawiU-y)f=oVW`q8wndSOU*z6JCR%GVW!o67DM+rG^@QY9oT&ILYo%}p-^rDph%a>W z#mH=7|1$KQz<;=G0(Z;9*3wgw;JrSNHU^%Vv~vNzr0<&>&f}3h1ZP@6q;M*_$IUc- zYkRC=-uHC)P|tT}_zs*$1Kpy0nyGJG44ef;gLT!lAY4~TFX{Ei!QS$(AD2JCd(Cr! z@ZL&go6=x%j0yfYT|kg$iMhkr0ni-84Lk13Sz3RXq>o{0Itj@S8Rzrga_va3|-R9=sDmoE_kEKq}H{SZNW7JAZ`F&h-_v9V; zE3_9$!9Y|S>2J{9fdEBVLYo6@d-C2frM9j>tV9cc7{r`G%$&+z3RKxTRdS4K4n5|r z<%wBN`0O7!ANoWwt?Qelp`HOc8Aqf2--caONyA}|T zF~Y`dCjl2hl8i8_!&!r8Sq)xJ>w{3@?cKlx4UdRW<+-P=eunQLa{T+3M4^lUrm~mV zCgYGv z_HC0ycIT~8_2D75J$Gt@7p3gj*F0MzE-s|%J~Ic0@8AV7{n5H!$HS>@$64G_Y!-Vb z2J~kPi`$?(XyoArHzWTld?*B;whs$8MfzB%1n@NEg+M`OKB|9cf&2d3F?S0;rnUgN zOqX3MkS{S-ln_Rmzhtxm^)zn<0l8jxSptRq<<;H(s8T<;dx8A^1^eICuPFf_x2vwp z!GFDwUG}`N^#tkh8gfyG*Pt%YU35{UgMajYp;*+O z`)bh+W^#H&aW%Cqn<%9o!gEe<^q9jtYPg^M>*skIFLRU@5K6?i>CaP?8f7(4Qi|Lm z9Nv@HyFl+=?l`)=G3E{_PfS$1T6fRdzGtj9w;anGL_orB` znK``dwY(ZFb+#8_p2~=6(1WmqdALXw>I)6F7j&Vo`m6}G63a{QcyfaVo?Eo6RpU1o z-!9F-LI6luBpo>$?Z3m?PN&CGi8N!q)HI*J?dg55;j{7eh=4v)w3e;6`=}|v@vh~j z+R}abja%y>XQ}6496k^6{z)-QW*E_Hxd#!IRnOmMBBk9c-4D7ZxzBMsEt@VM@!$7i zwXPX*-zC;V?%OZ_Eq7O7i4Ohi_k{*qPTrNorX!tn2x)Sat$Atp)AoogLFk-Rm#NEV zmUIIF(slEaLMpwbn(Mqp((gYt3ut4W%4N4K+L?aCEl5QUpi{|u3*W0Nl!`^|I%u|7 zSyKDf&AEIu(1g?3`yJ;7gmG$KuP8hFXEQ*5 z)Y7`%%g28x;LzwP4|d9ach-tkoWtw7=m<>q*`NuoY#F~O``rzNd}UW=%(S5u>xX6& zYk$)Sl!P=JonVo|IbXRbvm;d zn+gjO{sM3t`Z4}rG34xq`Ng*~VIjoU(_v(uXXslB_-k3OF?=3%wh@&4~oH?XVVlHTzX4AYAb1SJ)J}* ze;(;}KS)Af;`5Zl?HaF^*!*o#w;J_wu4@cG#mX~YV@xJVm+BC#!7AoqZzSc+Z>U0- zQ1$qi73jpIdKGh`E~YqhG!o52_#r#VQOAB!^0Nig^k#}4d;I1x{NxaM68V;jg*^v+ zjHUr^b4!i|NW|q1=T>N9>>!4rF(%#cyH&)yxk|G7Ce?a}G($RUyP5$_lIK$LdFe;% z$wd`Wx398`?P=bx^lQ>fbgLcHLOfivrq=jZ%MWfj6BfQUwY>kxeYSjia=)F~dX+Eb zP8Rm6>42S93Rq=W7*Tch+}~&u=1u5fT(O^2*S<-HsSx|Bs;X&0q>_c0o+k7TJo{ph ztU`ykkF+cuB>6ZoSNSaJu4OECN_l*qL^krR+=?jOPy(eLQ9hy_HL|X+CuwrI!6O`1w}T0C?;X<< z7zM<1G0FGqe!z<%PUEen4MWRG^@?_LnZrOUX!I^=`m72@$@J~vpGwLbqi*QiDQfm& z5cetfw(9?VEP?WTb~WtQ=6E|xeRps#@y^}BY0)v`?PG<)eU1%bbT2k;-MO(iLKvop z(L24lYjOD51L>4eOZ6&nrUdEeV{MDURqGx>AjMb!!Y8yf%TIALW0W?fu`kU_t@J~f zkuW(&k+l>9$TFl9BomCeiq_9mCrvf4chdUaZRl*sp-iep$y4RJ8r0T5YjDTy!e8`` zYu@IxSQM~4L+o0UQAzcx=GYacGIA#B`Z|h5_I6Y#(Cvbsy@cPkGDw`AMKAqIDoHV- zonfDp&1=gyL{zf6+(x-EeLrUJK(O48Ml|`$=I;ALfzSHWaM>}Wl7>TpbW_f=!xWeC zUXNGlEgrm%0oniYD+Z+AmTGA!rsA}jYsdbzBbt0y-u6w3M=JEE2n_Z*E-bF@nLQ(j zH8oL9$wUR}xM>L@1u+o~jGdR*1P>-fMUyIsd}<_vS^~eUcQpJc_3)?e-8J>tz@k%8 z)p?hVDTcBoxsiNAGqC7;9P>kLn&>B|nyFDgIV~ye^u^c+F{~(4aakrV#F;xV7>tBA zq>{f59Dgax7A+gEL9&~+hcFymCOz(n)l-D67}gC60T?>TaLo`U?dt~=u_UtsPkc?V z(dh4wJP#azrsZ~YDdl$Td2zX{DVK_)d667X&f~9^K;JED%Sr`yDx|1rTcoTf-eA$B zzI?761!T--gXo6NIAO3$EYCyFG}@iacoVIRUnayb%as->#1f(U8S3wyK5Ef_WIUm z`!h{RF9Mz9&?dEfS(RUYc~lU&h)@d_k(tvGzwCI|br)B>4!P&ix+E1> zY_se#@7k952FAX{<nBu7irLhu6Fzq$j2-vP3L*~QUUG;h-iSxeb{1r!KvvPNX&URT3m8F-p=%aRyg_VNUM~c?*7!xOmT!|D z?0)LrFW*+XuN31OJ9oYOx;kl*zpV5QQ_1E=%t#L*F~bAbtKf{TR=xZy^=QB58k756 za2RG@(Z(!`P5ExMC8gB3Nl|9+M23qR3%n53-fPu*GjqjU5zA)Zgp1D66H&A8uZhp5 z)@LVx7>N!h70H`!CV0WyB^3c$*spyjHU9Kw;TqyZN zlp(>YYIqyV2_2z@NCoKo@OcA!-swlW_{eA{M6g@^#GD_DzdVkpVdYb+0Rydu6HKk3 zQ?AmX_QT_^>JkN}KzGbu-OebECmW?sXQ%UR&CP&h|Fk|S66XnR_JPHGl~Y&eV;5?`km$oTu!R3 zn}gcL-k_8w?1-8u3@$WgZ_gLT^5w|J%gHemMY`EIGv;XG!;qN0l)T;qcJ{BMaDQ(u zm{7lNFjUxFk!!kTrCVU#x8}`3FNXm)GCg!1F4W@6N1`5gL^P?i5W;m?j+68R48UJ_ zs+6RuGvK@Zc(!Ia;m57J34s%>s~HKLRlG3w$hr4Czk^t4*elu<5ZhNwojN$FO5w^X z;U&zMFCfE>>b^rq#CQ8aq0J)M0(`<*ked08V;6a zcR3+Q6FoTByJe1mW+<^$t^iqkw#(C{Ph!;oos&%_>7!Z%2*!y!xy8Y ztX;LYNd5qMU>R2$vJy-ox}=QWh`*SAHl!saSuU~pP;t0)m&CveM$U;0G?q-1k^dCRRxlxR%evIxCH2o=&Vzq)@|aKN5XYsUmqg zvAQGup3c<`cH3hn zhcv=oxBWpE%DFfPjN>NjNuPZVm>wxgll=W^fC1R44gsg3pz@oiqiE3zrzThm#NiA< zW~4MVd*|xf*6BI|Fgqd+UNSbuY?1FzHq%b{&EDu>%7>+8HH{@H*`s(fH+j&xa1O1d z;YGY;pC;JH2jU5Tb7)5o>M|G$4k)MNW!5QsvLr9!H@7ZGV5bR_JI5)h@g+7@-Kk%- zpGa03@Apop?;(un&wWmmL$xDlW*{Gz$oKpfQ1cv^oqtEiY3us|0RKO()YkNp=raT)_TqlHHjZa3X|;cfo7gva+m6w%0O@bDMZ%yh>zhsxpH z!EH~)&-X<9RrafR=`>16iq9}EbJNW zK7+Uyvl7ie{>HNL{>TYS89zlZ_z$#!=L5%2(FQ}@DjZ9Yu>ppo8Bd3RfD+4 z^E_=Mc|Poack1f#weOFics7s!{-A3Uvpk$C!K1y?Oc#nqT= zsq5FX1cjC@_YF!UgXh|U#jMKv>W+){jY@DfuR&H|tgQ5v?svvo8*N_y zX145Ko6M(dxQh$*nTI6hX6?2P$UmFT3R#!w>-3>4Lc-cLzU?FaIadJH{b_)UF zxs>bWoo4M6^u)88hFkCD%IZbK6-${XHLQ?iOnKz+VCAVQJP2HCuX_yf=63fFjjpi0 zM$rbm`UmbJ2%2z*;MgLP4~%hR2FVB3<~?H2K!2SF|HFAmz8E=lJDpy-Nx9(AyBHjv zSyUj`LWB=A==TpjO|sXqRsaX6`ijL-9Wv`VV@d06z5saFUe9h_D{(Vl1=x-C`xPWA zB!foI^qKh{jKc$GKP9qu`n44Uh*eoTnEN-8rXuq8U1Vqd%7^7_nz5-8@%o#DYi#`) zr14<5B^2>}RI@z|im5pQnCP>*jbTst%M%z4hJP|`3z9neBOBA*>!M`xO{?}cr)!WeL;>J zt!D1@)Jb8=QOKBnB(Vl4M1$>{f3dDR9^B5~8r{kyW~gn+u^r)HE)YpvAQ5{99)c|B z;E#Qo!ch?H$sC_A&R5*#AkcvW|VV)j=7S(9C$PXSv*V3;<0)vcI?4F=>`L zO6O1U4O;BM$gU!nDx6d}YucewvPe>VP8tegrSpKZo#yx}ANn*Y22z7{LJVWBm6ZZp zSaM@T^4lqna@rc{6K81hdDvnJlg*rKiF-Dx@EE_09`nJevyt&|0~NB-(n4S>g%md$ zx`vPkzJJ|vyGQG0!DCBU62t5n7aIXj?Q)Y$dGb)4y*zkoY(koz0_j)PcO@^fKP2Ty zkH1D1KY^T!P|7Q9L9i6b-ZGuIDD$cR?0s}MI{20%wiO(lnd3m$XkuBWUoi6(aoMsxzV^kKedJcWX*nZk>b@FW@S-Ufw3WhWj=^ONRdkyqQ#UK zryJwJ6djG6M0>T2$9d5Wz3ZyXmoS@~H&MLcan>n=6f4&nbmnf>brR`dX>sq+F!pVn zI;dVYrCzgClUi`R!nCwakS^E}k42>Q(PT8=G}*wy0FxU1MxuGvXJg``VoD+yOAZpt zjsIjpev8C#SzP4O=7zH0oI0*ZNqqE^%kkSYBX^i4Is-UmX(`ZS?>L^9}n_(9@W%zkGO6k%0Z%I`7%Vz1v3(@#|`TAnFAZ#GOWI>Ls(>l z0GbkUd94V=@rYua8lI;}cnWS}&z)e=TrOI!zh=YLpu-8SmF~Z0jwx63(4##|$C%2D zx+C&A@3jl@ggyPPqqarT`1niXAX{+Y>0=mziwMCkgwAcQd0v zde88(dsSkjIk>hhGQF3D>wKUU`gRNxQcAx<4eLo90S%v)AW~^R!_K`#k9i5Z?2*Q* zA>(I`THK;H>2AbEIw(566ZmpUT>;+D2d_Qp_vS&W``mRKmewXj92-;S%laS}fD01x zb{J+-*)07Dn|`$N#*p2Wq1BmSqX4a``TGuI_eAH(+vO-9=D4Ex1JFTV++kM*sU1Pv zuHB%d_Sb3yP~B)76fDC{Ai=Fcpv7PMxQ1@sA)Q#4#%cH1p8+2Z)Ue`WqUNya;z)oV?3F>}np~OfZb= zl)4B#Z_YxXap*Se&7_ffk9eAQIBxi@ zTdr+erkTc+ab?(b4fY(Ojy9XCrWof3!vrjsUql{F!Y;>FmnDm8Cc!gi*;lbHwubP zw$;*kwe@A%*r0Uc3_{gN9?b0r4KFWXz6nmUvA9e9_xMnYc>T}GNHh8GkIoI%bG-w| z+^9ecI5}M#zG-Fhz6&`EM^z7hM@Oa!Fmuo5Gl=tOk@>tiet)fHj-GFaLv#A}WCTK9 zy=7fRg3@QLX=`4LGx7h?T>s6!`RTQWD#;l0tWD7zE`o5izPS8N<)_QvSRxvgiH2Hr zt!g`yGRJ7r#uLM4m;8Rr-B=S=E<}?-FFJ+j>)h_yS0HJDS1HywJ+FpfU3@tLE%ct# zr*Bvg$si;V!bA)9yP=h5?KFLc+nWwH>D!qvzpcrQG}gX}P%Nqtg4Wj7S>c~@kb-P;YRzvl0CE1Cc&dDvXs10E%Q{5g$zWd@OR?_9I+`>VeAJ^~wYxeHngtZx{H zG>~!e8%^Hc*(4#8GQ%iGqC?4Bph>>gkUj~yBmzoqmOgTMR;`|syF*piM?2n+}Hihx=DE z{u?GBj-g*}jM1w1XSdG_ekPQ057ukl_5G_@p%BpE0AQoplIybe#88sB@92n!L{}iO z-oIv%D;h!^$$9VyxiO`k=Xh^Z-2-HDa-wVOHg#v|)r$*V#oQ^=s-dw!I+1VreHAFrXKCIumdVJ0I+qX3|U3 z(%jsdJ((X|?#qzOt7{@c-C>}aN{e!+Y*<_}vUjp-08$vv=>``1)Qo#5O7^Y7-C?~G zcUZm9zG4GhcD)K+q-o6RGpY7e0VYmcy5yQ#Dc0zc?|#); z(J;(4`t-FC1unJNM4A6KtXM{Tzk6JF`M2PrfY%?I^YiJ_^Gu9Z zBz@N1im)f>JrO3 zXr3sj#XmO6BYGrf6@k-(!>;jcCAZ7F^zo0hU>>{arn^1F_*3vMPF57w=HDdo%x^d^ zLQ?N)N$uR;IsxU~qfFSVylJ;zYfC@)k=kCPSG~9vgJX~-_NN&D+-eZmw_Mm?cj{R| zEb0L`H5y-Vu~MA(w0Gz`g!`X_r5A6ugh$!}%p1CNX0gNeI*2HcN85N=3{bf>3I|f9 zWmN9=sg;=&))YDhGE+WEFAJg)=ynU)&|i1s08qMXi56gf2kV)kupT9T=6TY$Hl&Pu zI6&jRkV;K^(&$Tob-^AAU3XZlK3b2Ov}MCy)v-iy^o!>;CtNU*RDk&{8R7z1WKGOY z+-R`_pokWh^r+FhD;PO@}N-A|O`pfRfIDnSqiEAgC(S~=`Q;vH2ER(QX&DJ))CJJRS zd7x6CSAM~-YdY9CRi3WoHZwPOG1n3!IWLfTa%NC` zg2@bnrgn3rp)c%f%m_xb%tn>Xt>y45U2M4TZ{u5MXw~e7n9K z$(gEZdrSoxsF4q9KNIL)d-@`x$`f2I)gI5;rn5gEpincpzqH`jyg`p+z|N6p_k*Dr)vi(gNFPX5~H!`Wi$tU46_Zsk(@sM`si;+9= z6n)HDKq1XM1*cj&b=fV_;#=G=k;Y1vwko#hf#z9E>^;h6B__f9VfP}nq4y@oc^L${ zwT1P(ymGbGso(y%xz%=+A=IwO`>g3r8kIy@F^}@M6BG_EkNlx-cd8@hzTH8j%U7Y} zL0O%E;Pe{~Ne8s^4FD6Eav@cNT;=KK)n{dPdcJC7yi#|)JMhMHI?p`9NEu4cab|$d zP>HgNn$f1MTMZrQQy7@k$cGGj?Lg~zj~lK(_?<6O1>5y{ifFa`0_{PEm9`s>DC3_= zRpN%H>w6=M_;?YM2b4c&#dKPC-DP**wxr{5D>_A)4j^v`VjI&N-KyV_UF1Dz6*|%L zNki+wk?ic}5B)QOj?*wn!DQ+%bmAgj^S{gqF(0cOVK+Xyl zEY?C+BXSIzv6e(aF4o^{GXo(5U-Ayvd-(RIDtPy*w}DvGr`5$-+9a-Xp2N6(22?w| z2fuDvc(WXbEI7@PqW6SJ(mv&7B6*>*)0c*MIXTvq#oNV^#3# z6$gjHxsx1&P3c764jv>9A9|oe;iQ^1gAB^>Z`KRk6P!rCDTS%rhBX~`Mya^?aAL1&tJI1ztXaEv_jjFbFeP`kVoxFx_|ww7$b^K+ z!3{f>D6aY78!}c3Y23C4y@R!#b$(l)oabcQU($S2(rpXhdYc{doKf^a%utF-z#UeB zFN4MU*aQ4>S$^rT;nIY3IWq?=sk^@3^W&)F^u4=@lQpE;UsHpTx}Li*i3ur=G3kTpBU_nG_k9wrq?p{E z)u$$WPA*;nZPE@Xl4!&xgi$df!%f5?Wn=}cs?UUtBMNL#NNEBrY|IuJk8TF?JW+2e zA9*#e5~#h9Dh&nLE0WI-gBa1H?*DYLV6ff7b9(HyRqNC18x)Roo((Yr5u?z67XO<{z>EO zeKTH7Q^6h0~C!qobC3hU1N*b3Q8-O)48x>ea>kbqap0Yz>|5 zzr<2Xhjhr+bu{;}BP5p+w!TqR*kTTLXcGLgmPMmQ@6tRUz2O!zcvHG#eDu#(<7Kue*I}=`w=|6Elf%&$W|-a`9mEf2d-NuP#@qX<3xlK!8?FO zi_ovwJ>ssK+TkuW%#^)23PydmN7iMGB;ag)h~MooQz>g;d|L^0Yun7&@mxf@+hhE( zUdhJ#a|D@>`h1qWr270TQqr3p(GFpGxZU^Iy0HPm9x(;?mwRMRZkejRc?>r)55rK@ zHw$u&;Tr$FUK42f=AG{mhdD%S8>_htZ^8ri~mFDI+Q2U~;MHy{)8F z;2~2DLB#KIIX)i%q2OHnxsgbIiW_1sQ-Y0y^m!llybVu@mxzUuqL`0pz8pX(xsjCUc z3WvBN)v+*j;D}~GOkvTxKm;yO7Ac98vP_Iy1-x}_e^;;rreltlk&#gtvnVg~cqh4Z;ILBn?-mp53UFgENUfs%o8Aix=fD$XaE_)1 zBS&pp4QDG{nJ&1*&~A9pb2Jae?E3uTAkJUM3qq<+iF>_Y74OJ#&+yF9cx##I;g%B8 zS>VEfG-gR!otNJ8@4J;2N~l}vq>S%nORG6^RvAEv)CBC(EBC(=#tXTc`YlK+?Z{yc z!$3wxreUO%@&>Y9mOIJr&-pX32qUO^u$( zJ+VMlh)qmFZW+0VqZTm&D)XhyUmUmzJ1d)mH%m`pI&mXwhWP?mNuDAIQ!16lg|cYM z`z;@|e_B?M;Q?&oi9~`K5fCPe6mNkd>kT=sY*i54&`w9dcrcT>?pWsFxoGRM6%+Dd zFEr0whCW}REjoHmS_)v_plzt<`)dDZZvMbQjHQeSB-wINL0hfvs9yvi-sq!`q0t`_V^W6qrbE(?2=~3$h5Xuy7mswSTja zAO(U8=jvt)R#IJ*qW^2@6VD;T>dw|talB*4k|7~u{4OyDZT_Pv?P&VL^a7knrRa(D zVCPonVP?sIdwE}+(YJ-UP?)RQI-e{)UzF?k)KCC)ZOeEhTGjb&k76-+EQ~uY`$he$ zOvolC#PP4w-~iGCso42O5|>u9Li-;jjT>78{;+glS2A?=W~p<3p8(0}W*AyEhyxA2 z^i7x)`392B(aLzf!|IAhOns;Z0W*hQ@Q7_^aj%Z#Tvn~gvrNR&Exg#k`#gN04Y5YO zq)f@3IPw@XG8O$~HpireoGo9F#sB0vWmij?kP9@7!|lRJEEbC?3hdx%?Y3kS>go?) zQtR9X8%M!ZfPrJAF?BSrVZ@!GF2%i^>Bzr53R$pNlt4B)3lA6|x^`h*)M27)^qCTllHBw>EI-FMTu8#$;ZyE&&QZnli<}JavOa%neX!9{xjB!EP_G4fh4{>B z9EFN$BfUR3XU#V+2@EhY%solK<0AwM@iZ2KY_f9!WAcAGJX>U=-~L~|?+bWfx~IWqtE;QvAj-k2fhyNN2+ezB(Ygt8hUi9VPRYU|i@MZEq5yvFxwQ-{b5(fO*0={=RgA|QFulSiXaS(RLy z0N|#{epO|O#%N31@nNR(J4(d$D&tP_=UrAA`E}k5FZdd778%9L&xEOES0J#iO`qrs zO@&5Ta49voq=@jWO5erEJS9TAyqYFF4jw3~I~z zx%e!>b7-Q@rUyL6gH^{>JS;MH<6?)zJmT+_eC2HMA7+1|^_Z0*!0PfxiS`IYr^ga{ zGQGXRlyGX#i_VS5r6;-W?q+3|%u|vsD4dl8oqJ-?;!rDh|xvspay@_h@OeK5>uGPR}viQausw*eRMy-o!Y`y8d`l6euRl?l)Htg zjb@pu?k9tLRoMWg;4{c;ghf~j$Q2#oj#~x{q0e=|7Q6`Y0i-~BbO@~_ij<0np2VWe-8o%3$WH7f}*$G5P#*5w((!|IDg# zCq=jv$k6zSVYLDyQ;osP_U9&+jy7swm1@GgL_?o&ZB6AuBLwhGP|Q|_5%(vXi(9;Y z827xVYLnqx!Oo;y*3Cn z2M6n17E&`5o(tZ9X5)5w*;xce&U1+htBH>iOPe%O6jG}J&>Ttw^$1KjtSTqo9hZn= z>i-D9XHwMFV>fAl0NJ>+`)qP(TSJ^!S&hE09B`(SxY37e6?d^4T zsL!jF-4!pIdecsbz4x~*=eqSn)7IIkVcUBMF4XV0tad??_PxxxmNFV-c+UPlv9@W z(BFXq5FCSMQrTer#_-$~d6a6Ara8^d0klP*Vye1+y>HG^Y~Os0pC2!j@mfht#-a&_ zFs8xp<2Hql65A+-GPXqf*t|#>f3$M2jF#@RKv}Z4wZMvsjgSnD*jZoVfr=5e)X6zm z10@aRXbu+}XwtsIP7)`f`X8*G^c$`tZq47h3SB3hj&(L?P+_zRz=m*rM3fQFH3XF5 zlT&kv66U+1*wVb83wbN%bfyJ~2sv^r{-#c?R^EnME9l*9)7j}~!a*SEAK|8aH+Qgo zoK`01NZ(8nK@<3(xO>xD8SPL9*~JX%fO`X@GSuT$+#3x<@KwKcPSjRon%eCvr9hh6 zyG*h2#law*V()hh&L&P-G={sPo!?&4Rr-A_{i?K4JS>R=(-w|miI)S1LPKakN9h0uc2kze2cwIg`DL7A7qpbDRk(FPXpiFC+ z!5B_GG#8~;z;f>7hnI^k4z&m0-{-?SO>vk+8!6s1O8z4rGP*O^9;i~Y#B?7(>xTP* zR)K+$_5~<~EpjecOtrEtPyDamb!u8NmEiAwteHUtO^HR|ZsSZr3!D_@E>QEGs7Ine zPDI!;X7|g&@|~587M zu8RAE=f&L;Sw|YK0eYx>6k#q?onY(~euN$r+CW&`6^RT(QHs3g<3$YiZNzFAR zMt<$u+OnP!7>Lf53;#v(!VLE_6uX1XX*(MszdFk;;enw^#$6pk7)!mal}ZWULm2Eb z1$kUXdwAPM^G0Tve!{2`p-mm_+{hB12Z$iIby;EGGNP?g+vmAswof#)b@EQzljdGG zWi(Ire%|X{1=kUPpb(M9)JUN;Qy14}aW} zyR3?gjjFPu=2zh7h5Rg9t~T;QpXY-OWamLHeqGT}$okiF9LE0SKVX?kcmuiAXapW2 z8J4$S!+Flp8rgL{$&6q~#21{m*k#l&Nd>f7+Ox8&*3VTck=OQ~J3p@Th;iC(L*hgnd31r|YPjp7w4JI;Zi?EmRs$phFpGhwzeY2IKw5 zTju{WWz0WRy=?U%H1#}_XPSDfmd%+AW#h^k48&t=MEMTjl_ChFrrPGSsQ$ZM2{=2V zIghcRbv(4o{NzQGH<_TCU(=3jg2J6AVFR|mij#OTP@{(eAB?Qb`X&}DyXjQAZM zi)|6uSU?R+kd5QQ2G0)IVH`IBraU*K>2*(%7vSDYb*a=Xyf&C+#CF<@5L8LmOo|8b z54?k=njx!abj-4(5bv-de3h^B)QWD6m<6i>UqPJ|LXOIyfIB*BVRI)|KXlGi!eD5b zD|i#6wg#ro!Ta8>4l@5irC)H|%t|DVMKtM}$qhb^Y8haRV-%(SEJKCzJ=nwsvew8V zp4Kr;lm6OWCU^Kwa8cWfYRO^D-1;iksaMR#b%90%H3B=iq*tv3N4&vL zL@Uv}34Qk0R${jH%=e^Q$gn#dF4xuSlj5l~ZOCV0_0J(CDGUn%iCd0y$}N#5kNybO zgT@R47|TXEqUHhy^MKiwDT<4C702uHz&tPT-_Ey#G46HJ;~~wk3A9aCK9tjEo2k} z$*7f64Mm#nMlv7J5ZO;2z=!XBulvHqbY`(0sp#q7-;DZm>sP-L%N2f39Sk$~5*?X) z=#_zj!urO^VrMllfy-y3qqBGP1NnLD!6^GTaJ<@GkkMB4DDY)3pQ6@hWmDTKRfD24 z8x3wLL%h6{N%PB6SSBigf^TJRYNpk1Z&#&|MTzykgg+2-vGxqQT{$J>>WiyIf0wIH z^aXdIXv4A0$279eez)GH)#=x(U}c4PmBRiE&{N?<9A{;GE1Q6QFNsI4W4E!&c^k-> znxT~4Db6v5v!fp-e5FZN9R4&7nzxb0w)zjywgl4PcYEGbBC-zjIq@<5$Wp6I0a*n^ z-SC(*$I9N-GWkme?8)xk{K2O0J|165m zuz$L3euPY~DYY&2LoQs;@iGX<%i zv`q6)?z9(RM2hv!x_uX0!WpHn$UH<@N9fPx&xG5{qk$IXl%)&b=J9fuyi)0y|2n?! z^bGP1>2L~TXbR}-p+pCiqBMb(aMJRR(y8bQB4yv0?2#@#(u8soeRNJ=OyT7_J4+UC z8mhpayG`Gf4-XOY zYSETqIV$Fo(Rlu38?%bwgd zD-64@>xJL4mYZUk`E#4vY?S6rPVRIh*Zp#ileQ@2aMr^6?l9d)B76MX+6c#}vLvql z#2^7MZT(_G*&af=%QTN!E?;mz4m6$fZgXs3bad|FamHqBGo~oputI$@*P&hDzU}jg zkF)5A5UXq%Sl1N(zSy)Y^w+o-h`3f0{z}X8UD2`w*s1TP&fNJx~Or@=aWdHTH8U-d_!H@8gf ztKJT9z6O}eV2My7DAt(#&lQN@8Q;#c5h{bG_r_YQU=B1_yLD~dH_85ZCNCBO>DGm) zxObXuIartephL)uwS^zAgOr|{_#uST)y4xnTUtCn##2gESR;SYM;ft@!=`fJYV^}* zp%%e(XUk!H)Tn-`>j-(VCy)PK<5_<7i_|pV=s4H0V_(O`!?B7b7=OK-^-FI<+U-BT zxc_%x#W?Xdr|F#WpJShYOI8y2OgR$Y8`Z4j_9Qpr#Bkw2qHi^%Z*F<9hmG?msk8pg z%dFoBc(7eSAcBzp8~mw!tT{S48$5&b=Ur6K{^ngW(O!dasJ+qI5x}5CD)8z8x|ovv z!mY*Rm$%N<(@+0hA)&h*#hc0~2>tq^nB!T!I^a|-`(fK5E>Q|{HCC3d3j=8q=M)Ke z;Dazw&!-`Sa@{39fm`PCm9rc-?dVcIM-P8E3P8-u+F|MW7aW^kgL-ytq)XjqeWh=F zA6-6=b@@CYYEQx2+OhFzvxx^t)!3HBx%vAcZ(yme$YZ`yyGK|EJ9{uo0E?s#RuMv4 zeYC9?+l!n?2YcS4@@5>6Ichw=7&Cep$zNm4Wrw~Y!k;5 zt}NsS(kLnaa6)oc@U&#e$nrU-!!?orP62o9-Plz3+a;Z$tXru9_pet%f8k7a<)}JU zwWXMwPl!n3+VSd3nJKSxuyGr4qWi`5lx%X!?uFb3MUfmNl6(ip&1H-x?3a&oFmThi zMaUL*P+`kY&cl-JGSGO{{*+<69C^n%<1O=D&4J$vKGhitN^h)v`-nw^ zb$bRR5zF`NzOiW@g$RlSKKaGj3&YEy7na|coc+akT<}#!PbE8SIljR|$iTOXlAjbo z`^Q@hN#wK6%k7P4fdSdvHqlU&}FWKb{`ly+d7?U}A!b8NuD2!FW)kpr?!_&>f(b zUQTtfNI96VifHK#3+XE9)g304@m@9?60~{{FK-q%d-AhgOTjbWjD2;W z-kfVkp*Kkpso9Ug2rxO&X^9g-esP6*;@^m|#|uYP7t4aV3mdkp-raP*tKEon!}?=! ziHp`DhpJ^k@sNix`J{75v^?>Y3GPb#XSKy`5*fhw zyt86tHi}Y`jYFCEah2|}-^H4Fc~!;{+N;6&AM%UIPV~;l%7hZRbEQwt{PiZb0UpIV ztbz}x9PsD$D0yU?iM6fV`+K%Rhpc2c*sSL+cWAwy1wA%DBt4(f!kfO~ zYCSXK>t7r8+xGB=!>!-U=ak8fzs=Q&&+R8MDd~QzZv(Uk38l4vd0y;&QNH|}6dljp z$Nq|dX$y+rE>9`%%HCLe&*1Q<=|rdl|NGheAMS<4BLQ6Z>>Vc$bBB5MrY88$_IsXK z%U!$zbp7Bu&TI$@yn5H(>QDz>usdP3M(ha(O7=^dqE6F`Ey=e!j zuC34xl2wLT-jbmcAE-G^5w!)@?po~f|ALFKx~#k6k0I1}hg_(VZ&xR=>fx*f@cr1# z8GWbp`Cgw0Yw3tr8;!g51rv*2SQ+U2kNbn?>8m>P_I1_~8nOMFD$e19WFyYy?&e>V z=ofp9;eX#Lr(W-r5#j+XmSEfZ<$6(@!jzCf&>&CMeyh;#tRkV* zhX_auC|y!RBi&un!q73JA|RkccS?6kmq>Sa*U&N4ki!mssBFixyFC2Gec$_@d(OG{ zp7@=^yo+g&B!yrC`9t~L=eVl&U&Q%X{s-z%P2{f-u#h!$>3U@h8k)6|Xo^@_$E8{CL+#^}&=?W{I&T>LTgSvBMAC@ER zLH&OuAEXGC3SC?NbKv-pXBNM6%rJKv3Ll6Ak1PGlv=h0UR+A%+dE0HMvL|7ueEduP z_8!smUwRY!=LJ9~VEux**ZF5;t5Tb6LyU^}$P~@tNAS3>uR8CE!)4S@Y!9$u6@-sioPPf zi7XAwRVUeIec^bC)*kP?4IM?@C+VtGz4$4`?gzgZK_|#zkH;twv4`XHnM~BH9+?&n zB9p9nxTYD_zL&1}ZlQ3$F&VQrT;?>|Ibz9g^YV-42dq^`bMtStscwwhZ$qn5_`vwS z*f?1rGdAYP?8kx$8$Wp-OZ+#oC?D}x3QZGvfZt)^{R<{dwT!`!zvXdjt$AuI*n!;$ zxPb*pG)$-QKELJiGv5D>NN-^-HcI&xD?Y9x3LEN74j^W(i&a<1JhWzaiyS_Wkf9h!;P@M$(DiHAXH(TOXK%bEZe-?!_ZZE-?i(_R<2sr|z_nNdpPD&S zuP%9XT#wLw&o+$4GjHbapuAKjd{9U0q9Kg<<^kIc^B?-#cz4u~d;$zjLYc#D{!kjBz8^LnU8Z+CH0 zudwdx!IQMZp=u;6O|mgFJo1c&2`J$u*?lrS#Qa%FgV5S8l**|X!AK%pQfA?)IxB`z zvVsmALSIRP4xRqw&Ytw&GD@Y&?a zchR-kpTihWmQCLm-!p-=m~auN-ymS%U;PgT>RzZPfLKTWae;M)T~#=h}TmUwvqsr!E`$nNk9={?IE zbj_-GiSf(e=*Ig$#pTnZkw6%S5$&>KH!8RsRgBH9v=$Web$$0-`&LO65+IfCX>ok@ z@|)Y@*S-^Lk`wGZkkfY^R$h1sE4P~SpQ^D7Jf-RI;$CA60tNf+jW^2;zx97jctyec z)_)bVLms+nsy!`Nzr{ZL<&X0!9Y{lN%~>c$DsI;lEuAB?FOKW&s<{sIUev~HdmejK z-&Cbtfrt9OMuKN#T_;t{B-U!)Mh?WelRx2|1w6#zwXrf8)b=N22hPN($xyIJV{t0Kd`pQgyGlX+v@a3@)41e3C~3!eF{^5ycQxc@=h_^N z$2WZI;0=;VO9(JLXNZL)FeDgrcRCJb?*%`gw3;Qs?4?viyTbH){4&?wP+h?`4rAlC z3cdmKf=&revZ;@hI&L8kf>8O8cMKY-Y7fIzUzuWLFB0nBnmr3=v8D0A73?;v{ln}E zYPXV?39iKb_6cGmY3m{$HHBL;6Xl)HD#^A!0a%&`N<}tYM{timf(m3@d$(ro)XWE;5Sy$u<&t(LhLNp5FmwO% z6?x>+W%$y1L|LW>dOHdysb@>xHezKS_{=QX^;D6f&8RB7Tei`aEhJ_GC;YyJB`7Lv zE=UNu3i0Xs@@Ld^5&b-?zB1O!Bv}y^OtW+GDryAL6`i6nT17td4soKRD(yPP<5ZW-ii zk|d-ntd4dyn@+Dfq!YNW_Acr_2o(?u;M7E1wCg8jT-H@#ooKYzzX*>eF;D$0CTo_8 z|LNnCr-t*gNFa^UD6ggSeJ_(zp;iFTF>{Wwgn4;Pp$xn9r(CW><2B0;0ThnPCK%Q3 zUQyR0WFm7!Ma$+lnJ09Nm4q>|!c~GB%-a;Kz;CX&4Zz5%&c;USfMTEftL@&j79tX{ zxwG#N5P9`-DpznCz6`At{Y9GW&0LONm$s&Tio)j39#J=?1?2rRq8h|DjAOAbPk!3Ww~qOx#B6G`NJf@H z_hnZWQ!i%afP_R?<-6%Y<7i}BZ%WvyX^uJ#qF*Xh+lhphhYbA(&~nY6@w$EU+r6YX zxC1kE8;?!AxHG$tZ*z*A#`VCkNnsebaN(qq50JHunZNn-)XS=_OEsvkNF+(EG6&l> zLe0C}y_PJbjhV7pgG-F;_VkS5U)L3(7ELo>=pQ#Dy0q|UiM90u%vFBJbMJq%E0@}2 zWkX`+hRL||9oTBWy~C1K17d@U+AEc*3H;3lEcWy5WR}L?)z8TwwC?;FTINKW9P3KQ zRDPAO$^QhKk76pVl(m`#QS$!-rwiF(ybR;6v~LipS77M;XM*Mq+7(ZvklWh=2Z(~w%= z8h#G4>Qc#g92#2EK`(*KvhZ=+qBUc%#Q#mSxd35U$c7RrasF1NW@W0cthQ*tF7!vl zjPchFR(Qj2S!ZAvH^RTA<-QIiZV%EaJCDY}_^#Wc)wHx>;R^c?B5ch|6sn_$A1WTF z_lG~#)VExvP>kaL1R+qFLzcnJ9jzO|s9H*Dlp-$E6;1jzWk(=CcD8L@i;p^AJE^;< zmjelj&iKlvsd@JLV^w-%>ZI8U+nU^nhxu&#f@Ue(mvxm&Hkug9^JlAEix>O$7n=S&R0~%TbvxtuvZ~W&B=@bL&fZwaJ`h z_~bb86*smPVC9s()J*|C4TVV_nx)5SKOf^U@QVUI1@A7gVaS5+kA2ff>?mLfgcY)rQ3!xQrv zYTL120CgQHma@;z7Tb*Kn#O;&k7LqSGrB_3kLvPOH5%g~9dm`!-iL^>rmn$Wd>DJ>u6 z=S@`Z=w{un?MWfA7xfaMPI+QgDppKatGnBJtq`QCj331vLDyql1?Z5+?WtYusM79n17TX5E^h! zx9QG>j=Jx)ptq=hL{Rs*U-eBQ|5e6x#+*mUuIF}`cpej$*$8iiu(5xCSQL~nB<~rQ&5$sU7vs8&pQ@O zuN9Rn2;pxPh`-s&>dG8Mrjw(Bu0J1gy=h23R~pI`s6`AhzkEo~*KBG(f^4Ao>sh*A z5%u>dH6}yHw>_hN8X_Yr0#Et=PM=fttJMF?M_u=!{QqXr_TGtR!n&NGs;Jp@ z$IAFRr!)!4?(N!A=??`30qE>gp(hJHk8G}eox1JU#Mf$A(lL_pB-fV9TW4XWe_sr` z7MDdLKYwJo{!jkje`BZ2NxwFBGKEVX-q6E4GP^oa%M-7?*r2=^G!!xIHbuWR<8g`s z)N92cQ}@_AAE^;CE5)GyHd=4KT)Cb%ap^XqymrUQ+gMwc5O`UE`=fQ>ujaV9w|ad} zBUH1cBA9Xyae$9U>vEg}bjIfp@#!%`OEu@#QLy)y-XaW$YodNEMNZZSAs^G0>M8w< z5;s^Br(E{#`RY4lakBE~m&-6nv&k5vLB&Kma|fxG`sP-n!IX0N>({BVwZ(2riE#qu z-tQ0xvaGd@jdKU@iX*tfUJA5tNyu9EcT&e<+n4jim{lR8@h$l^+10mxaEARacl-La z-R|Pdec3pLo=r}Wyn3pKf2QuFq7RUgjb%=si2b2aldsh61ew}EJ`)Ac6#(FH7JFH$dM!3bDjPj(&Uf#tK6|*EJ zjsk8t#hB^dVuW%neZ9wI!S>k7+=Ss+IrO1Pr|+=BB0QEhnmNW&6@KV`_w(ynZVL#l zpy}I+bDhiM(CHknmc~Aotbp@_C^mK8t=%=%I&Qb;&0>r{9l?hPuX-^9raHih!m0E@ zH0(VxdTI}=-zV*D!A}g~WlwTHOhp2|!W=k!`d=^TV9s&jn>SXxXi6EyRw}{%fB?#8Q(DP`S5e4r?=yBG3IUY=Z+)CL;0At{jG6> z*P0ahd%AiB%a2%Fj|TTf*$lM{rHM{lP!; z#(dk4PoE<*Mm>t(#W}x-wi1_TP(hF=94O^E6nx;Iuzzc9@eWM&-nwXdo&#+ORhFtP zGOBA_mB8hLjyV!Ms*xNx@_ag~_*GtBZeM>#dde$?Lb>Y6mzyR;--6aX%ZeAOouy zMyXsZ8!ClAI*o%B3ocXO1d-<-_M|TZ&y}OnZ)D9UKJ2Q?&r3ek&SfvoD*N=|H7##) zHCddJgPOe&ZcCC@lB;YSU#AY#@>`+f%$V?}vG+LBMqXRSDr(h@C<#_zL}Tsuu9PXg zgPW_Y)p4Lnm$OG}F_sd)x>C-@B8|w0>NZ=!E#}vN|DKn?|7e%<+#X6f!4bU6yh9T* z&ej)Nj?>jS-WWZtii?&1S*XgQslcVceqXNg;L_J2G^+7Ga`c@uFm#L52l*d3FXtN&=$d#Pa+~5o+rTdhMol(FSM&~eB5Qm&o33gI;FIwRE_XZF zqoN-EU>Oh@&jhq)0i__2pRNp}v-p$Fu=mQa^X}x!xH#se8}rIx`R!))xhEGD3yq+r zbvE7mfqwOexn1-aVvpO3(o|QAl?sRlcyE((h*tnqQ3)C3YrMB2SdlE$67nG4JldcR zuzNWY=#}qXKh$`;P)ASApjyZ(C$mBp3FvKi})gMm1Lt*SU%<9tcou1*2P3BQAj`8`BJuqMbp+sj= zPjXQxt$yE*kEF#&=={k@1Y1?x5{84!D#>E2gdZ|<*VZrRYaPv3Rh&UuE0?mm?} zUUb7YL!o7e3`Ob?Nb-l>P>l?XON3|ie7oKe?uKemid9nZ4aNR5qcvYkxIzElbaDy=TCL#vsM>8<0>uv^`s-u%^ z*fi2`F^w2F96-DJAkF_JmrthqhMy`W`Ii;+M!v|dnyQGC$7h&t57oZb;9BeayU0Id zTq6dBV?}V>?t@9fs*A2ec&;G?}w0^sB5{J%(_Up~zRyxy1 zKC-dM$8F`&R@^!6T_0s{)3_WBzZ|7Nj*|b`Xn3377S3#Rz!oG-BSc`j%-Mr#&wn6-bK{rY$XxV?=+@8Ka>&tH%xflWv80Ls z9+&+iBU?uZkV(-0FD5-Tn!21+^m5V*)Gw`0zXb{Z;(%#Xjx)903R)YIdxS!72#)z5 z+uiylZ_D74ZV{X~2KCsu1*AFsXy((Ok@UQ%J*xFH9?kDuyw-H5^l}Y?*L2}ca!}J4 z*Y!?4v#*c@CvKgpx&FwMV8`wS$!}VAZR*5f0$*skB zdZ*#fem6$LzXqseF30nPP1AKHT-g~IePH61w2;J z!#OaJ7NalT>6?0*sIC{6RK8)mNseH`nOxsPbK2vDA>efaZs~uh`C9Z(p8T$q>F@v7 z54=`!UerC`7Z%vn+lmFqZrp6nJbw)Iwr2UhOJW}c7XEykg<4SH@GU@K2cg>*7b41B zuyF%L@CNFBDQ8K7(eL~(#bq6Cdh6y9KWiON(~P!~0NQD~*gq9m9U(hzn-qAlkJ^E3 zV0WK)pK|7+Isd|Mk}Du~6yu}fsRZ=Sl)-nwbF#&b;dE!S^!Zg= zQ8q`blb$Yt3_W<0U3-m@DCZ$F$0=a&&MZ&evRU2Po8k%VdfB4baCdkebH+u0PEgHH0qwu zfF9u{+;V-J$p^XHL= z%%&S9(gv^{(N2u_NpJ0ZlgH}4IO5?y7Op$ltb>zZfXwP(wc95_`Bh8VU?iBTb~EBz z?doP-=&~02?-K8nug!Fju!-_?8jyy|l&mTjRZ8fXoqZZuSm#(nbVFzCOdaO>0#L&g zGg3=BnL@?0@sCjZ6&frg<_@9{DwZ*?R72YR$b!Gofj{&4Th-dn7n#67_U;v$VXWc` zfEwYw1$ZUg<=iN$W&q$aX6X~63tN#!j1OxGp3L1!Pb46wIB$(uetL@}qK#CCSMtWm zrtV&0-MN&_QQ?pxc%L|77p@Cl0DulG1df<%j{voZ(lXFQ>h@7BIreEda(#8@o^^pg z*L1(roeQ*A%I=&_a@sjAL*@e5piT|2OimbAur~d2+8k%nQ@!53_H9VYlBlZlt_fk5 zrPKMvvNFNCrKS1S9n+O<^6$6R*C_q@2Hg`PRd*!|{B)6_Co#F)8p0;N{W!Xw>T)N%vgb3;Rb8RP(*=2v zEBDRJA~-693WaQDnwYB4J7n;Ikm6LuuV?vI*j>-z-RTdr`}vN%-Bl_$WTN>Js+~EO zqZQsD`Zz%Ihzq-siMqKSft?xwyJLDX___eBA7lG`6pYw`^PXIsp7+--Re=^AX37%2 zGefb1oB|DHg=KH)r~xj^a(Fm)#S8_{3sRO4I(v+mGgb#gocrNTv4eZWkX_mros7>a zArJ1PXZLjUbjCsNoS)zPAz_cBb&#{aTv%K{L_=(z2}jUmuM3fWB>nIL282^8G|GlzbX~Q+IdfyqCiR%1m-5 z%!LaYYN_4i(FI@3xb^r5?4DLG)R(!#1Kfu+!TdcHSS#ph;Q~UpkcZ8)TfM7w;kb$; zhU?hR3hj6dHPzWpZzQ|=V(*pkbTSTxX6Fs`Yv%(~i-GCCUtXj9A>@d5xyYvU`T0Ga zZMK!21)b&MIixmAN5$Hmwi$mrVsgzEG8wbE@4GdZ>P$08vh$SHZt=WoxGEc%@2B%k zZ`H2+K~C7i9Qln^PEBs~&gm}X8Y#<~QnK@PES4AsGLc(+{dF{-IyiicROc2_o73nyH}(#VAmyk>!toXdTuh5WcJ;aqtNHajtMf?K!CxZMWKLv?*? zjEo$GE1us9niinnc9>cWa%!|zU{cN=Z48aL2wFW{n^-T}STM*Hvr@$CWEvcdVNlyh z0Xr81doZqU%t*ve1b)>UhlA^Z|?Egznis< zb*tq>jEQUZMGB+gxIu%ec&bW(^|wWfPX9xK3`Tj8?|NKRHKx@z%jv3wBlxTjararF z&RR2|#K>nk;g5*|J8xSM>1AgFVE8uK*+C1L^N7I32yV?@5crUpcgbK#M0vBMG()(){pI}kC2E=%$f8x+%*IXYDSR5kB}!IqW&*xP zPcVx1!%kM7=vddWH*nl?LHTYZbl+hkM~nvqPxVB{k%iyjK|#6Lmk@cO)Kk8+TnVZp zeBf?yVA?>$9Fm=2-7(9}CF-+Jqw5?l5l%f71#@E|jVjMgO?WW8)+a-xvLagTD%>f7 z@9lhcDOrZ9n69vWCTqb>^L3h+{wk1dafY$EV;Zy-PhF3h5iq==4l#;6Tfpuu!rShP z4RxnMY3DnqIJo)lT`}Yc&v)CP34s$$Fg(F!cu4U3#r@ST%O-I>fExdi%OYu^Cd;&= z+wEK$jtA?`;ML=@N#tTL&n+DjMtZfQif4=w8Jm3CaC%*?U3CN3Ev_Fc29hIomnXM; z#txHB$vR)K+_I;vk;|#E=5TpB`tlDWZ9_^#1v{R#w73q=UloJu)m$`v@&hGv$)?`x zdr8U!nJ~I|k(f%QzcF?yt_YqRv(MDF0zL`5nel!-y)KrDhxfuh;SK0$=Hit6Vsi%J zmEhWw&%fUd0Il)W?bqYho)dzXPV43vx82uq&z;R8$X-H+gqWX}oZS^dc|*o_VUPoQ zPvn-5^cSls9Yg#SjECm2D_@J2EgKl?wQgX1T%%$SCD!=bClI0HwP-T5D)lfybNNmU zoZ{+SK180&vnTCa>8jw+Y+jqEXNzOL`}~E60$VQw6AP8j8WA8;EBN}1n2?h& zbmqo+!^Pq|gE|DgLVG)wgM%*`4e8 z-P0-X2={0w0U1e=FNnZz&g_Jka`Y3+iH>7c81PKyRp}&#Ol1!dE7nzE|8W7X(ZW$3 zv_3!z`jYU`-db!e$Kv@EA~&;1veF;B*uNFGwrEs|rg$}!N2gB6yko>5{iAVR>2uSO zs=x$L1HHc>cLb#tsPX~Ju)t8THS|dssg5A>AnJpIXEkRI*}xYGXEt?*2=MW!p}>xR z-L9v=QLg|Zoczr6;?RTqXxHYnr3jbzP))Wb8fjkhp`bj8JZ1(?;W9=Q!iTKw9L&LX z=@F*(GmFC8)A$@4L=_rj@90t_lp^LTD?F07Wc_*C6lt0 zFTOBoV;{mmg*OD-ZWkD!eeDaVCU|E`cMs}QcZ@N8ewc7H0$xXeCyR02XV=<$f1J1; zxVhj#qQ}fpn(O?_H9z$9bt=lfC)qU^{y?l_I_19^lpu6lA0y*%TyL(sN8f=98>KNFk1W zwlApuMlt!*{=6z@fM-c#qaE-zc84k zRsUvRkFT>KozN?T=q)ao5M%4W11920_7G!evBP=TxiO&-uRBf6)IXXycFcI)3j8t9N>h zC?Ti4`@!GcIL!0Yi+8tsO>bRuNI9jDh&769&gLw`TNDrP>uvsv(NOmvpkDJEyYC^} zR(@EwcJJrom^{%cwY3DYsl(ldbv62m^{(`h3Bl30UJ}5p&~_kJfCWeAS|8xkgvtw$(oGF$1L3`P3S_kr?+B;N1rDXU=xX zn9OBcdL`gzA^9<@WX!3SWGNI0&KS%Rx(_33C$afzW^wB}(cOg?@#~DKh zlOI$mS!sA)(R2ps7undVcL^_9$I${#<+T(IlybXj_m-ZdZyd6xso*DlfWL$~-;`CH zs6~wMzyjSxCmGYL4kmSY+nYsju}MqPmk+=Lt?M(kJREe>okMGqy^YP}+@GqcfXs^}Hf^XDt>=8GB0 zI`+y&QZ_8M@V#J$nwVkmjZgeNKDub_-8_h0k2#G2E?Nwlna2RdlYf_d_`sB_H8Yv9 zVUmwGM1ves#nQ*oRO|g{Y=lUd>>#j9IEWw_;?{b%%i$f+2r^pc@{DzfQw^d*syT?; zl58E97|nG0Eu!uao%!?~VRdyOAqZ+Q#eZR(U;{WzQgzq=Si6HS^VmByd_pzH(~-An zxKTGK1jrHAm7Vf)5o+iemQ(XhEpT>wUKI!Ls&xsZT-obMl2M5<#QhVuOz!YOhNdX* z;)kjw`?B~6f4~@V{2;@c-jKZ8d9ITv2X$K4GvJcNlVC$1vP(^gPd#j&u#cCC5hK=x z_{8Q{ER`Dn?d7gJGq>RJWwH78P0NNtRbaQqVfSMyC0`d+6_szt6T_(O0Dip3V;oZm zk|>ff?6N5xD%3P9|(G*{WAOTc{ey<~H%!#HLDmvLEHVT|$` zPEDZw%TF`+m8xC%R#0O;T&`tvVS5n9{x=0y^II}8Ud@Bkhki!P_y1a8ek*r8;%&3K zB+|-BF*^FP4E=d_jp4Phjx7(xk7C^pFrHj6MlpHX2S)ewrft8&bDnrlb3-Mo$c4M1 zc=TDDR8@%!hf+X~DAUaB*vNUWqQlFCBvB3Xdxcdej5=G+SBkxu-I>h?I%X}xj!EnIGs|+T?kuxoPHilX;HLlFv%QxI^QJZ&!5P zJyxkFQ6f$@Zy*UsB#9`Rk-|~$GFuAlJTQ(=&9gJ`Bea9Oa}>(l52WFK1&p3Yl4w&Y z1NbtX6}QsoAsS1ZTz)Mg%OYAJ`wqS;*%RAWk62B) zty|0r$xoS<^cb=zO7tOsm$Eq-r4bwNAQQ}8e?}p@`}s_U)#OQRjKgkQ#fvBzTdL(@ z#{sJz53Rk2-BaSX0GM|R)gwca9W(khA{Aws2dthCXag4A@;q8LIR}#MHr$>BlSUW< z-*t6lGOoYp-zr}Z)s8Z43S?+M41eMY=}@(B8J~JRNS7`l8(mZ>BLdH>7^#qLTmqC$ z7O#gwrIFKg8I$_rlYSI^p2FS z%saT5tq)*?spaD<8W!Q|-Z)g_tY6}K6NzWSQ@#?%r|79r3~9tWa*&j$;179!B*Kdu z2qB!pmQmCmq3w!7Dw4)VORW?ak-xdP)hM={tICr)R<6RNah;;u+}3r^Mj~9oIsT|v z9ms%b#l75Iff%j|9u5ca_3hR$9>&_)o$F|s8vm}dcE(-ew`kZO5F8Ah)cui@W;br2 z!(Ow?e&p_Pyan>K?%vNJIVJNmYGJ(JE+ieQ{^5>xf7TMC(==YPU&f|`aXh|o(US?y zq&wV9y17ecP7U(eBs2h9xjS!5li4#+F!Tt!-nKvY*k-sh6gVsy2n)B zt^2HePuQ<0xily#co6?yn0pJQq6uTCa4GAHT$!LJ^m`0ZkNf~5cX^B&$j;RiVx(p}l8p98aYv0$brWNbfAF$|?BYY&~8tVP&J@~Bz>91Yj##&Vy(TK669PWtqr%OGJh?J=k8;MB|5j>PfE zB|VWzWnuzheF!~~qNM)^5~^1fMMdrbbW9@=;eFrwXiOOf*N9zO0p*`p}Uh34oB6>?*$?0M_`$wuZXkdq!L+rusXP0+Am&R}> z?2A6YNH(x0gSf1hBNO;Vbvj0TOb%r&WrP1A4T?ZX?kfuOj2_jt-X`#r{r3Gn0I?@SE0wI8u zSuFI>K_GO2KnO?)CA39>K$!*`(uCRPo8t%_uPBWJ@?!%SZLml z2@=b{Ex=Kp_fj>5;4Vn8O8M0&OpKZxfuu^AQ-51@RzW9b6_!$71E;yIjZsJf%YG#x zvYoEVF0tGZ@E!w6#syJql@SEIUUc=_5YRWsogOW@;hmJJI5D+|*T%hT%h8fEv7BK9 zh{8w&DdwVflxkt<*i<59JkL5j^DSDJL{;mfCsg0|HG;U|iLW&THA^p~UxD)B%uHnkYDgVCq-48}tw@$@*rmtn<>$;zMyJJFTDbob^2#iS3Nm}Fa z?hIot+)x9xEq%7k)YRHRIocOX2~zh&r?-2hvQw2G&v(5s1X6#Mh#~qDn3Eb__)gpJ zF&pe8P``tn%9LM{2`!1E{QRPf<%gy#FT;yamr_20j`u$A(>K{k<#45`Q62gGQ75N4 zp$iizK~KdlR_Uh=p+tcj?zZ7Rnt`4>chYTm?K=|me-AQRG53uRudzxfXXt<{{kR`v z$`Wg%KRRrCm#>0h6QKbaoo?Ttw#1A^aUsq7b~Q@Ab^_!g0fJ1N0SXJUfzNGmtDS)y>Rc^Sd4tdJcWy`=mM}uc~Vk8_yKW zKg+eyE=#ff1#Rb{=#iTpG}Ks$x0prONM#l{G9>v+eSGV=+9G5uOJ2^JgEt7e>(R4B z>Uo2WUB92@K&*ffF3ZH!u8VfwU<)Y!0+Ef@fVsIvy#Kc33NdgA;0z;DQ~rh@{iP2c zC$>cCv!5h^^_pDnhJb(KD+6e4dxP;N_zB?$)^m<_(VI#xTXk;GQyu3fs-G!WU@VZi(1vh1org@i1Eg z*Y|$y_=xth!WFnEOTu`V4;zrp=ShugV#Srf<9_HD^bLtOWMb>C7s<8h++I8JB zw;a)rk~7Kg2pj#WJLSG+F2bzOiHhZJY=u^cGeo5EkZ3&~Q}j(%vvzaGqNH3XOgTR^ z1jD@@6Yt8An4A4&T6m>%wJs6DWq&pOorUr=OJfdA;s?Pd5tl^jeA(ij!rYyY4`D9p zqm2kamPIijyi=*cx@72WT$I{7xdaBH9%9gS|5I@JYUQS0K$WM`QT=w*TD9v~m=$Cw z^3GKv<7Mg-1|d+|am=-0;gd(-fY0jzbx486GfY-M9@raOdn*(q=AzAlR?NMJCakSp z{`?iW{Pp#b3O5&Jxdlqz38j2Cyq$4#Ct>h=f|E5ve@u5S!Wu~$PJ}dju6-MXIaAmb z-4;{g=}7(4i(e@_TjqS}UvL%|!^K}DSi!lKlOCF^Pp(~84HV&hZHtz{ej~z%>Mtfm zCG;NmFs7Hw#^A-6x3v43Xr6;- zz@$K?KA49473Y*_PxGx9S{pzwxI*>oi7)5MZe1S_E79sq6zAr`jM+XJGQ!m&Fh472 z?Uc)KgT^AKYLkW~=^KiPfHF-GP5N0eQO7V=+vi$OQusjQ5;AcqE5MZUdP4!rDPdX)9o5F7%Em@xr>rZF-|&!b z*h)ztr=`17+{EQzx}*7S3A+OK1$cuc3ivI|-*1jZhO8zkKPwFuymxhaQ+hM}~O-9H!uQ(M*%b9PAo3lokyA5;GBM8kxjdK{-&Ef9BGi zpcw6)KWYEFHG$=cR5w$J(g8F%EK7Ky`iik*67>=$e#F0XZGQ|<_Gv<@ymgQOhMg$& zy9uvgH_@+D)Lin4Zu;dMx1;{~5E7Tk>5Kkbvq1*95>E9!tUw)f9I2dgZKAqRG2BPK zmcYPP(IHY$C%8>eRz@RczZ+H!?j8TR>pa)f-`Mf`cOzN`ZNg6wI1W8F5BEO?cE#Dy zJ!DTKx~0!+Ri|>`u#->pknV1okI^EQRhOOQ%8m~&78t`Tv>+xc^(l|Cs=2&XzqaxJ2I@q?`X@&oy>Kx7xe@mfQfIdfO7Y8vQ)Xy@!Tfo3C$ zRjnXzyDVIdj+#~nN-Ge&ndSvuio9BDZ?GppaclL^7YDE1A=xX*_#%6B%r(W5hP-`mn5B zC_)B%!7}y*wFL8rZ7hfQ=a6g!VgiB?bhn-NCP7~diE4KWp^YZGO@#NaaZg@m557-v;GccsSHvcQLM zn=Gnj7!^B zQ#Gg_;X#EhMr?K$%b?irmN<)v5yB0)+86j-7T{uZP$8RBja@xtG<-G%8~bK{iw|Yj z>?%LlirV5@9H`~LTG&vCgBI=1m2JipQx$12x?#T|+Q?PFW%?UQG=3;F9ZCK>M&Dq` z31xDSzwG*_F^IQyl8e^osF!;eQm2b{tK~cOj4zF{P)inwsdMn$$p=w>*%?lc@cHfa z>i-K@X8hH*ZC8K;_Mn+=wxWqr0z_e6S4QJzpne5F8n2b(j0X~wRNe8(m{KmC*qP9( zH4fYAx76awL%V13Rk2{!a$f^zdpSBp6!(u>HdQvnUBF zyRn+xjxxS9EI=}PTe9s*m^}`tk{iULQI4#7IDXO2zLG)A8L0PUYcyyux#=M==hbAr z%#Z!QYO?kr_Z9)Lsw1YFq*XebCOodK`LJsz8}G20XNXegnh-|_h4N@zfVuQ0C^ zhxxB%_#&v;UDDeP-n0Vgn%=@I2mYY)&c7PbGM@@RNqP%w)XoiLiKx}p&V_nUk)4*> z0pb)D8s5v7x#2;m+PX0$&`d)o44aXgEfjA7$}#i>d^!qcVH9E9hr_aT37>ttk_ve{GgGf+h$=z4oGF9OYO$&^!JtD5!Ey zz7|?lY2T}*aj+g%NK!EhH1IA@uJF`9GOvERo|H!+J-*O6Ep6?oP52mRLX(Ip!olxL z7C8-dpiL!(Kq;Q9%Ho8}ZC+~Nk`b6iunCXUOl*0oCS**Lk6Qu>@_3A|^Vlk3uJDK4 zSDCLs1f;2on**l6q^HX|S#}x?==PWwRK(t}w6K3QRYFg3d+@UrWAtTjGqqgrA!%Nd zXw`CVxtZ2>_bzOD@XZwyJ7;RQGHp{R~x&|&%`=(Y*;nJjTD zw>-W9lPyJ;YmIBP9w za-;U+Ohvz{*kKLtL(NULaNaC;_^t--PyLD0eTi}D`Wn5=46a;4=WXDEkug~{FLY%E z#ynD0*RV)vB}bI4nqS~R>()mwSTJ5Zl`?ngC9*~k+Lg{A(xR`bQVl9}GxZhc7PBy% z^KQlh%1_kTg-|P@+DE$DmgTc>>ZDjvNm1(*HeZ)lW_{8~T6AG73=U_CTtX|G;qmns z2pZ2Cx$VT05$}@wl;dEIOONee>Hf6?7s+p^B#ceC7Cp5coTIC4G{rQu#}4>7I@NPE zCL)xqS3_y>#x7U$#Qm%N)TQ{Y(2poo_jpaA2gTrOc+Z?&$J;Uk+vZac`mj_{2&;DK z5rnzd~P5bN=lFgPc(=g7vr3 z0kd6zneH6KV5;_4_or1P=3g5sB|&AV{5eszUy1j=$v@2$>~MVE&-$X7IHJItobPX1 zsz?dZZ~FjVyx=flw1RokI^7=Y)NU@bmwt=swG*>1wVfR1X5)9kb!$$$K5{X^K)Dgm zZfJ%SI-RgKg1#%Ya>;cli{hhdl`dk+(c9eF$@A&Twu>YoWCJc|c%v)a8K2)!7I0HP z@WSwf;+P&z%lP|H<|g(XGgRU#%)ECu#-TPUR2X5a+nur;sCC0TeW^wWe9Z*5{cw1f z<9&4>v*#M0Me3Go!{t~`=&kD!SqvB_OT4Ew6N+0cp9{4%hO#%fnQu%<9scC-)${8>e0KM%gM=^HewvJ#oHt@_R@@^kCsV65D)2Ao)UG5&~*C>b# zQ2}lzDoaNo%p0myBEzcS&B;Y$ z7j6y6prCX?@!avF#XMhL`df$0XyLn(bsDG#CcJgR-1G*{+cBng|^9RWC?0~)mp zG{u5ioBXBIugo2!??!~aNJ^Ybphz_b>Nr;A`Z$rRcLkIKrR-#df}zjy0|-4H-9LH@ zPfrM42(giOsEWRMeb8bjTqN?ir)7QT`w5Ek?7gk}k26^NnVjz(xxwCT|KDw|`1A{glDCjbeCad9^{s;FOj4yYVEeg{95g#;vqldhrC z=Q|VE!jjjS7QffVtqZF=-!=UgfCGzj{=tvlwT7)|k?ep|`bh#cplC(zWl+Fj(v9BX zZ1HBVw|TTKyN8BqlsZ#sJK3&gk-B|tQCd$VWghtCS?3!Q8Kvz~fA~oq#)Ni_T-`d= z&L2`A-c5hK*4`;L3*3Vm$C^oJa6r7-D|cd$KnlIa>f9%1fqx+HN8BuDP!c793`X63 z1B3Vhm*Y*2+mf21$gGuAiF^FUp=dJVt38Jq%lNfDb6Q#pt!Ql-`)NCUu7*2x1!i8I zfg7Ra&DBaEg?*nxu6OjCse!w5Z9Fb_ zEkV1lGCdIe(xRpLnc2*pnO(cD=GKxJq)aaDflZPswI*wjtgBXRFa6DfdqS;DT^jKm zmTvNr9nCL6nu;uNK~h&9z4i4HTDNLxxNmHh(3Q)&g)P7$tD^*c8|2air7Y175Wbmt zFgn5Gx-U~2HwU770IZ;b*(leo^^%oCtSWaSLOv@?Zas&<-CdGZp;nAA z>GoQwg{NCeXE^JR67k8~G3?#Q+XJ%F%&2>_%)WNf&Znf{dW@PlMOR06#jPb|{&G+9 zobfjX;KM3;=Th^0AK}BX1bx_DkWMtajBdr$Q>p%_V+-gH9qg#b<}6+(1HkIeznm0! z`y69D@@d-fTZ##V5Xt7ZF8v^{qwGh_3s?ItGOO1<*Wyj&TVLx5rlC6k&_7`|Ft7<& zOSJq^iu2d@OES)EnLWIUFX8lu_2Dyra%)*s%u3+ar@V%pthRz8eH_sZ4(@XQ67cKt zbr;VTr4nP4+t^2BOLz6njIRW^$hKQM{S=n7#wVYj{M`E;dmLmv3-A(E{?U@9)HQbH z0qRmT{SI%HgQtDh0G6G_%LKCgsNP^`Vyi{9Wi_-O#*|ibO+w}POEG5}5?7-73mpK! zRqVIEv%_Ly=ljcQUeNEixk1yGmZ}18wU=GPjZBAL?`Bf0-W9q;owRnNBq&+5&WDDW zRa8EDOuta)V(|C16)lkcb4|dtLrR*yYj0CMz35lICI`?~*nUfl94px_MW0T0HA$1% zJ?;etdCK~qyq^zABwJEkSPiT9>oOPMfC44O>wo?xmUCd{B%2&9O;f*iY2e+9*}dbt zpY|hsDq@zp-!nId?)W#!`}su{CDOEcyPU2~prG#7UF8h4JSPpB1v?(6f@T1k4P}hf z>eYLU|L8ER3VotHG_fi(9;ggfXmq)Wl2rW=T@wriaxwD4WBW1HwgpoeCNl{ZMve1D ziN3vnd1dDoJpqVOo~6f1%WyxNDAwU+6gp()d%c2B&v}QCvUkXpUW^8Pv{<3-7@=VL zC7M9q$e@h@zANH2q+8*rXGuHK*c;p=rmemYPL3KG29xN}GJL$3Rr4MAu`p7O1mZn7 zXT*M{V~_g=-Im>ln!5X}fh|m4sUVeOc-aP*dk3^uj?l>8P~zWhD7c+rlf-Ub^lN~5r==NHTVZE3( zKd1IT0^gh8Y4{M!z)Vk&ID%Gj#y*M>VQZU?>i@!Bk~O%>XHA=I45{alq3#WtY^)=x z&Lt+sBfgW*xp+Bru6b4;=fEV1qkJc{bIvrX??9y;;yyEc(u zGLe>9%-OK;@l6J*YDB2wH?Gq(51k?5PS(naW9>e5t@`Z5*Gl*68_yaTw2c}sDjVnC ztSZk<{}_)4t^-hJFFBRyBU8~K8>w)-K~duQfQpzsb5nPzp*Y3fUs{nx%vcXKL4tH> z-HTC6&ogtg!lmSSWS#~v>2iVPW*kcx_Kp08LWz=;`Ub*6 zF5`qXVcp+@l1pJYAEKs;83c-+z26U^Pv)FP^p?aI2d#aU5#F2rvZ?y$z%!kTZWAW< z>-pb${p+j>Uc7pua^;{-##ThbL$kM^us+3*Wj8wGR}H%Q3dp9F{;4rLfN?Z6>tc)0 zwJNm9l~6dytL5kR8;V~VMy3y7mH@i82Cmj6yePxI9(p|;lM#TsBM}xdd^nOI5Y0=$eY#ATCnUqA)z7>a&=bX9N|@ecab2pj3dmhV%q;L1sD*Yqtv}C ztFWQNZ83}|f2dGnDm#7hk7f2HMav)eMK^Tjfln`59uGHdf4&|hw#n8+GetEV46lSu zC}meR&XGP+#Wvk%_WvY84Lxmi(>~xCj$*Ic4f; zii9kd1SQAMx!uO@ZXh&5eJC|njIraJj46RDNgK6yZ@2<3YmNObowJ$}6@h+|Ni2(L%W(!WBz3V_BeO=ihJ?*_k7hn_#TrWbmJQ!DbXM=*9Lo*?oNyIe>hBq&qkP5Um{9rg+`PdWf_0)iEp))S2W~!o zXGY|AmpU&HEX?!WjP>VNqWJUpXKVL5N6@dyRQ9sG%n0^qF$lVbjSkMFi+dTWh5$oA zyuZGpN}mGKiKV@l8&$~>?xv$36#~7wqKX!Rm2oy>H?oMQGA~6Jo{MpKx``4xY?-sz z`fF1%GJk61FAQPs8Q>9va_20e#aJePfH*evDyEsFse!yqN(uZ5SB!5*WoenWHiQ89 zX}$ju|I4ZswUHVFtY`5{w?cG@Y_(>Hpl;O;3e5i&c$Tg>3@LMT2`%?QoC zt{QBjG9*S!~ zg+`5f^KJg31}=5t$YmvwD&zG^*x2{4Uj4Nb^)KttV`LvMs?;n%bwg$R4KN3U+24-7 zY>r=4o+rKXoqZ0*QPb07Lm~gl#`#Ei3SFWO?F;Z5R{HYL0h&`~%KGJon#pHF(%t4) zNYEJ0g-=$so&BUM5XZ>L2Ef_bSzGM|^F8svrnXLCB7vO@^8`u7})y4+!@>L+ zg2>V6QPa-Xr6Xu!0iM)4;+VLd2K?+j95PyI{W7Ezm{Qb{vBhFh#HF(Cw}}(e9ZWw% zb3Py4IPM8KJ4`+WMHAl(t4nzYn?^J(4JXdU=4J_ly=7IBEW*357%H%YRf+K`n^nyI zcA-7CRbY?%<}S#fS~q?WyKPgc?&$uf?#78{Lx<}%xVj(dwgL*Qhs+5}GFdZxyf=Vk z8huu$Wt$6qf2lvZ4hL%tGL5iJAzn*@Y);nH0r6j)lff=%l_?>SL34ZR9+hu4U;<;c z#I^Dx5bx zH<{@^w-`!2@dnXZDoGsaD$F-@gk3)ODb<8EQxhNF_dsu^BJJ%tmZs=Q6A#^vi2; zHCvr}qD$#6~6LXMN!Iwi8JU( zPQ<^>^Ry{wPBU=Fv*}ZY{Qmp2$wQ7r{y}?rf%bYy2vD;58c_5dXH`(x3xwn{U$(ZJ zmieVl%*U0p-iM#{Pp3!$v(ubMJ9Qjqbf}=!!HnI5f&j9xPQy{Jta+nW<7^&(vum&H z{u1Z@0>{iE-q-zOLAR-JvbS<$9Y>U#)Ma?@deV1Zxg+8@Tc!a&<8cCJAyoV!4N**} z?WR-rs#v`Vgot-!mum{d0=Ek~Qb~ayriNqw*RftpGFN+FJp`mkm~20$Ve%Ez{@@9; z&6WP=QE|oDElWR{ZwZQeHmbyd6gStL8kfSnLs&ayu;sI>)a#fs?mH^y6szU3p@aQg zl}GPbwsL2)N4ceB5mq~OM->RMe{fjcJv&Yg3_QJzR{TDR_WZ&7DZ^u$$kFk9nsoRj z%!g_?J95iW!{@U@{k%xiV&d6J#KQ#@kzP9Ocji46sr+{12{vI6(GTF}X_h>=8~5k7 z+21-u^Z@3w(j?|t{P8TEV`nhz_njr&pH2C^f=xO@If%7B#o{+?(UY54Vep7AlgGEA zoF{bfTXi2_tC@EzzI(A{E>MhllDhDkUyXiakhyix@nc*7YH;z;|GjP>Ye}61jcY5Z zg8b|8sNs}T3w%O2kW>0D9vc5VRpta7YJtcnWTjmFZY8t74VT($mEgK;kXk;2?6i4Q z(!~#8E=-@`+3u-G-a;IkqBE=~J?L}Z`D?8{tf=exf^*j9eww7RT<}(RJY6Q!V|%Ta zw(Nd@mN`Avq#U$<8Ex7DR-Fz1gQ%Ik5z{!YH0lzI z*Hl8D1DeFJnxE$yXV8M&wY|$^a#)_P+ZzNUotz1Cs~l@A-%9`D>)hN3wKoCv51%rj zl^)W>-p(~Nzykt(9G>u8#;nZwVcq& z8-Da<46gN(<3^8}(RedmX27d^AkdNlT#bL|ZYSHOp>EPc$o$nHy1-22J@3Wru_l%^ z$o)>}K`J%0fW&x2g~`2@nEm(@5NqLGH}R)D8^sS|mSBT6Oi0&dRpZh))ryy>fTNd% z-Qk8h4a==c7q`z7;BNJoE%i1JCLdC(WHM<(w`JuCc{|a6%AcVn6ioXaJ#Y^kFgIxp zE)|02*Dr^Tg~4bXgwiY_c2i&0@;A7V6kUZ~?i={@f~nKhUfSD*lWrZ~(^0u2+RSD> zOTeU@$Z=|2<{3}WCau(GUQVa4wAs~T;~fSYOs(Q>URbqS?NcfX`up(67E$(mAb-AE z{qV>&bDP$5L~J_gA8oSO%Pu`Aa`&e#+yU`6QEXFZVYDi2z8(-AmOwI94wl5JQI-4V z#aeNiQV&lLn~r+rPH$Nr6`T%TKkkq}?8~fi6Wkj)n~y%h%b(mw`A_jCUKtM)BYa~D6$(z_+Sh_EN{UP(g2&IdH8{T=MVxC6S9;Ymh zBI)xi0Ka-XCD!H9%ahp8C99Mb6mF?dIPuODcLYcNEdH&+W1QQ+IMlC1K zv!UmW2jZoEA7*@pSsIof$S?4S1TGIUxr>T3>Q4#G46X_CT_M3r_#$`#g4OY#`Ah` zITe~{9>l@|sl2L;^N*hRyV-*cRL&thn2Ib0Qdc2B>I#FHjQ!;4eQ)F4Fgu=&tmrQU z;%WEDe{uikteR3pBo~3c`u1VMPURM$j!I+(jBM-YNSv@ngj?-)#%N&2D4=!ZkMob3 zjLa`3o^2mBVJj!kjx{kN&zE_dxy_$e@c!|4so<$_~M(5vkYD~S`g{2B7`6$`*O z1YYAHW{v9FH${-Kx0vbHi6+K_bQ$X1BTHjId zjJU0z<+jYL37<=0lB`WH67-MfXSE1W^pdw9V63f#3Tcds2#!_T%$UnOjfHvRS=EeK z7H2I4ZKw3gcH1zYjLQsBa;($O7`+rwu3G^`P(HO>(>n)o)PJ#a6m0;!3?s!&z_h@+lspZWM4>r(cn(wA_|V=Cq!@k48<>Zs{Jl76OWhkmAX{JkFi zOn=g#d;RWR;kQ>?c8d}>qH3Mh@cXc~T%SWnQN&34-&o>`z(9jD_UmPqC zgHL*E7FaA1y&_FJ884D$_dgA0ZflD8?uqzMOrOmUuAdg_JpahH5x8EF5l2wL>j_kS zeBx{V*D;z!B(|0q$lf6LFDB77+R_k1$j7d?+xrEac8ukZi$+gBHtd@OR0UAnXO55} z0fsl+w%TlqN{{aW8>V=2T&chD0qYjAWRCL!uglVI&^|tBK0ff1&T)Uxy&q#GD}%o9 zp7xoZt;p}aj6Qn1GRQMl&nbc*NvrhDlnA=0wrYkKb%&$YMP_4OS>*HBa+P$9#;7S- z>YI{Xy>pPt`M)bOacC;Gnn9oNe)Qf?mR+i9I!@5>_vfCM(8v7fDh1=sbxzl994#Lx zFjTyq=xYQ0Qao1lv-JA7GoHD5aOo6YK3ZunKhgH^6ki%JA%93NILR$_><%nFAx}2$ zU2!8;jK4DqLlRswwJa(F3`WXJ0nK@(aA>|{wp;M6@BIZpi_P^A(V&zYVyz^@9>h5- z$>lwpd*BB`H>Qw;@_YvJgHcEQcLC`y6KRM9t9Z_f!veGHDYF?ogGk7r6Fl+Om0Cqe zYb#SNt!m-8>ul@LGGKJ(MAH3ia^s{~^X!xJ8F05SUm&~LbEiPE6IzLG&q+9GPZ-4Z ziu4Y+7E&hYJl`hw9p%0f@oQxG`q_E@+;z({JRSD(R=*lg3 zS(t=>vE}Zsm-{dz&XG>fzA5&i{*+0!@LRoef}b7E$qJ;MC0If_&4Jeg{GHOI$%w9Z zkDiSVlT)EJ*#WE*xpvL(L@m*!@10zm?Vqb}bm}u2^)VpLdkoUz(k_?92v+K+0+F74 z6JC;+OoOp^&OeY^unrcLi@W0GQECS=#vQz#sK3wa19KTRkCvE*J*o8k(4Jd_m4<6tu+Xj?L9WjyoL z7iNN-F%(D`|IwkT&$DR_A1=G1Z;9vMI4DD@1Y5|??5xe~%W$54ac-jExUnz>^T9yl z5y%o@R2lQH7albQLb#M#evLzi*W(_qR1;7s@!{T`k}P|IU)ijvivN5gi-+?nR@h-Y z47ii%4Aa}&HhOljKk&@uv{eg_aM>F^WRayo-xcDrKxe_Mxd`z23&CL?_ULY(cBq%# z#}^Y8sm$fyY~w6{)EBmwGjYdl*}!w6&g!^l$9K7BpiY;UwaE;iFq9sRdX%nNxXVcG ztS_1E*?0V9Gx@JlY{KvY@cK0TTd55o0>kvy= z&!aWe@i=dgp5EnDq$XW&ewIX`94Ti1FJzqsUz1TA#uY)3ltw`iMQJhU4h3G2?nW9$ zcMp*e5Rfh@LAo1(O}d03E!{Q7fH7cS^;1p-YF zGp^hZxNOmhKGJC0O;>z7tlF2itpu=dyJwW;jG%n{sI>FZA7=KW<(HUfQ@ke;lt9CJ z5np|cM#s0X{8-arv%!oIK;|5k)$yz1$00)%- zBP77+AP~F*jP3wK`PI-2D7S!76VPt88!8X32VVqXBV}F5V@Im z8m!kyQz~BA_nW01H4MQVLj3zPg3ocsF|EK;wd&9Iak*zLHicq8zb*ZjRG0+^u;PAL zU|y|)B>)=1$H3r$j@7z8SO4$k@5kiLmlHC0Ti;pac=UBNtN~K~@vZGYZx8Z`F=YSg zoNG}%V3aKoO3?xi*hjkJN{n+t`oS9%FHvIMB{ktLyJLU?Htih#5#oe`)9dK(PPRqbf}`UQ)YDUAcqj z&t6YsbJs`zVayWr>?$Eg=Bv^SF8g9Qwp(VoFRt&B@|)VFJ!sI z3&qA7x_xHNw&m`fvB47GxHI*K?Rn!;QuEo^Twg5*#-7@m8+hR7mydkE>VcI0rDofm z@C=I;#5N&!+%9>?A>dcV*N%qI)XQmqqwXW1NCJlsQrio*wkoXRFGdr7TC}Zm7R=0? zb(k*&uMa@rxUaN=&~%Bs%9?yr*I2GR*DmDjnUk}i{+sJCgqc9-%qF~Z(CSPi1bq={ zRT&|&jO!u=ovVV3bxa4VOFFWroVD~53}UpzsGG$287c-a{tZ9>m{bVX>GR3X&m|c% zk_R=dTQRY1(4v$n4lW&qVaI1YKAU!t++})#FQV={N~9&TT^OHl*Sh6}`Ht;;PY$ha zf^IOjpS3r>@Ik(q?q)iLJ0`r&RvO%(R5W$;J!3A2ItKJHKd;`~1N{w7d`ln)WZj@@I#x$mj8^a9p3Yk-o@h8okiDm zB-joaz$FXb5*wZ+@NVb`J%0nalE}Y4YAJ{tl(&7(;x<3qAzRuG{q<5U!SfLp z9-BB#`~Ek2X0l!eje_`(<52V#zjg9m*sfx0uLm-KuE}nvw@vlw`FgGf+V$oZ)7zQV z>os8ZLA5x}B}@kEg*|Rg1{EDtal!y2#%=*oF(Oji9%Bgb7;E6-G5hNYk7gBpW{Hc! z{&hh!v+&a#vR_pt311Xn0$w&&mDhv=w-MOyD^|~z(edCjRq$DcIR=MH#GS~5{x%3* zUSG$ZTwt+@ozT+IbBpV^3)8E`)k`w)aa=yq06P#ZeO4%dtEj~xamU^8%LMpkWj;|Kz*& zv!O=yUs7PN8y3zGX&FIll@@4FK6aMs`lkryROUKI2G<3IEnnca*>DGpAxL}R2<_1j z+K*_vql8oZ$Ojfpix0qEH$#Aq7BgcDu9IH;6oZ;Y$Hr-{GwaQWtlE%YqtduInf-uO zT-zWRni#JF`PPL<#2L7?qc*|*yF>y!Y$Zn(D>VWL^*=0)#dNT$&nDMk!cT%Ge!SKr zbZ8De7X#G}I2GlGr5DZmS{J5AsW=Q~v6~vh^eSsiAbQa2$rIC@@2zxHBtgmvJK{8s ztPkQOm`*rig%X5|*wOz6!A!>|OxbOBcu!3kQ56KvSJsOcHgH0{{pejc=Dj(FVXwE z4iCIdt4jej_5o=-3B@LN?U}1_wBh5c3a%l5t@+>&ha%sa(g7tgC-f{Y`p11vDl;D7 z5;zg?&=cqvpjX`LYR@0b$0@(iA-uveE|_Zg5fh%dwsBE%MB+YAhF2fHwd5V7_IoT>{V4yuvlR0) z2YU(rj!UFG1UpynhpyW%`^JURzkMU9mCnHl(*eg;R?hgmY5$uIS9OL`Vs;2mUzfk1 z@(+*&V4uf|$0p3r?r4PWqyUye(XijlmL5jr7{L|I+pyrJYRE^5`C!NWlG+b1eXM)& z3#oZy*4mQEiubQjlFNEabG#jhgxyZelzH%RmcVuMz`|g@LfCksOzS}-(O#9@Dw00!7{2JPz1yb zO063KuXajB#s_7fo7kVPuxl%zE9W@)#xY-pXXQuZT6${qNH&v8{+0}OiG05* z_4k*|)46Kc)tM-4Y(Iz`JF<&G;?DB1Q!=QS{Ohh&bQkzy4R=KhJSK(*&dFe4tJvHN zFb;!%iW9VoSzg6(;}*pnV%=@ecQTRMynMs}tV(V0lstIwFip4}0(_V&~4D z3)zH7u>4AtugTy1N;Jd#K5WUX*|9QykL6@YYl4AV41zv004`!yvAr_aGq`=+KKO4CNFoUyX=E6(Hjimxt-$y`xfZ0;Nu=PlnyQtc&>zv%V#DT!*{-q zas4v5USKg}DrU(CsH_vZXYCp|BbATrfjBcbfqoa6J*%}+L*XDR0Y8lNoI>xbx^Qa-QQ4Zy$#Ma2Ms~ zA>Z#D{Or28D7kCQ>Ayk)~laZl!nprdBk$OtS5cVW5ZZQMfz!u z$Mq(qvfra02Y?6V6*l>B?pwE}55?ei>oQ5haAh_K);b)Wkx=i|g zAlGWh{af#-+waok2>GWIkUoaYK6i&!@}ICrHD7}IwMJGcZ-3mSbRcvX*(#$E%2N2f z-(5W>lzsNxhaN`1u4mZgdn;|Ajg3Qc^C(O|E9|Z0Dau1KTtUs@&8)1~X7kAM3bPU-70;n)@I``lcW;lAr&$Z#4@gX;pJWwpX`M6qqbpOGO2;$xsd;*FVT-a3yYsnUyFiVoXG@5WgZZP? zyYwgN+V}K3m7jIk7!lBUCZyBr{(M#y$#}27?sWkZ&ESoc&UtW&jx1?ZAkX%mU_T(n z*7p5%f6=qm^T6yltKNCA^t6cmzNcRGUkc0}88JpR@&4^g44!q}7i<~*vFt<&djf+E z!m+I_EuVEgmD0Pn==e;h?+m<&rBe?St$3Ywc?yfwXVa{@3cHLoi%WGh!_0undfZNC+$TI6JMU%XSVQJ+0zF`=_iu+?my zj;qOwgYGcIzWRjwWq5Afi`$u7{ef`^`tn!xl|e`N=-Z649>2K@t{~{^w7vWF3fi@1 z@tM-r&8g`ex8%x&t3nY&!xGd7ojM2@`|HWa3Kz?+$EL2jZIVedX9h zyi@!>x|7cTz04db5WAc2i?sOKz$n{0-&v2UxJr3``&IGKD1qX)8*xW`t1-XcYsY9a zFt%fU8;tdN!vZ#kQ#c`c5~aA?<{O1F3?S?kv@7UB8gYmaV)p&1r;8&ZJCEh+_Z&&* z#tqz>lbWwJ?pHaw`B*7^-{$hFpd%T?y$jGqax z-^@m7sb|H9`~@|2YW_UY-<7w;Domq`W#+OF=V}ENhMruL70Fz?@9optVmSs9fp&eg zMJl?^tj&>8soR3_(W%?tqTc>W5;8KH&276d{xvHvru%f)_NIg#zwRrz&sZFXcg?Tu zBdAhm0F;bPQqcA!rBPo-+;;dw3h3~am3&v;MMlNkD}$KZ#*@uvP&a$YI@?)HCQJ5@Gl)T%` z;S~wyRaFm~XiWSD#6Uj*%_JH$%Y`XAyen2u`X%4kVR&(Eh}BB{oUU20^>DwzG@;haYNk88VC71PTsEuf{0SiCGij#g0fkNN9)B`oc9tPo zOE&nu4&k$&xL#~Y0{vE}%2rrp(tAr|@V(!P2V$1Lo)0;vBCVVJDOmMJUsGf$U~!ILo2RI@BKP3!X)YObih7e6=z zTF@@+!;b==f^TK-iaGoxp@7xLNA37=L_crq=fpA|&P(r^EhETL_x;vrs@aF54<<+^ ztaSOHgnMh$ET>3n`IUb0_cLhDr%`m|?A#58vx+DGSiwuC!t}dQ7JS&Vq_#Lt#nFRE zpP&G@CvKmaf@K+4iM7*}+}CuXHVGZpfar*%A{m72mWikGMv7G$swMWx704W9$0^q3 z%JTBG{Z2~BPxCf!WWBXIK>fs$Os={rMj0qvC3bzs>EY`@5}%L2sS{Z1YPx`hv|6^H zfklW<8js!;5<2(Y2PzqGdc7?GY`;DoRZ3vFH~Z~hC32D2;ARb7cn#SlmVTrmoYd+W zs?;w|&w1veW&Pv$CTFN1Vv5LXS0KM*toK zAI45r^@Bx%Oj#!4g#~w*+XKRmLt|o|tb5T_1y?({d%IYeme$vdmr+LCjWLyy|j(@!O-|+iOo~oS!qB3pGUOYj6?T=PEbE(GM~3>6W>#_YjdC;4Ts#^~XIW z=ld0)HVi6NK}r}@;M~5sUY6THmitZA`L$bY3wz#>(#H$TSL<~%5;I=!o%C2F@O)pZ zho+NPioz3kbOJ5rDiznQ-tK6(m6buH|@hn2gS?igPte2^nkXufY;=?V%#!2F&7 zInI6s5ffj?0ce`Fd+#dOgtLv@Hj#+pv#FE7ar8dnxus7YqY<08v&gf%ReAp73E9Ld zW&7^@TqRJ-<9ctT7Q~e#!xMB<@aG2Mo@FR;-t%$gz@!tQPnIAxE<^o~WJdvz8cNb- zz}F}0Eh%sK5J-onSNJEAq7%&@g^IfS!$ej=rz5;6Pu1>A_#WP(BHs_`twyN`%QhC3 zX0Of`PK;kPtW3QKGJTzAZ9)1|PPVCvttYdV?nf&n{=)Dnpka;XBO%(m6Y}-Mo^Vgw zmE6}x0v6ZCH`Ka(6EURtzB$wZ$?!d@8_o4OQZoO>azlS9+qKTLqI~8N|h6p*Y7OKem zUPdto7a5y*4yvZ1d0`GZ@q@MCSA)jjRqm0187z*sHi74M9Pa$$;?=;4$@f47H@|L| z`ybaR7SEzNUx%eD06+9NU)NY}Wifkn_ZGBMWi#g!HTBCzczV9mFD-u}%_pjR`|4Ti|r_J!Rc?37pn!Tjv9NV;jql~&u`n~(Ezj<*^&8Trk+Trmu}X_WM9re_8G zbutp$uPJWC)XLbd>sgK_vC2Q#SoPpD?-aEj_>^H0ic+AG^4=Os`b?2P&#RxxZz7DZ zzfwWxhx^dNOayP7ZFOcGB?r;8>{G!5A?Ln%Y7MZk zANG_DC`oJH)v2(xL}XFE);%~d?J%A5)cf{nyBp)Az-L=Oxpzyz%bSeZc#Wt@NnTiB zWt3!Pqj%$uLcFpiIi)J0`j=+G7tjv`cm;oEnsjiZDlgS?D>(@_e`%E+w}HNs1*z)7 zw5r_-UG#=N*;tBNEKzSuQM0|LSC_RO;=q$jU`smY`AlEorerY-z#&Z;(%?(SV_Icc zl%a|g)2di)rwIW*TiJaZ1Coh+=?!jt66h=tY_@ql#=I49v471bV{n|Jb>hX!+idCI zZ+pR6)!uP*^`1h1#jwRqzOd&Vgn)>2ZLcngDe7ispS&Cq);=xJ%Ldb!0*uMWeL3-o z=A6b>Xd&IQ=N6VKSp8&idBn1u)CD3UWv6N%c)CVrKY2No2PM6iiHh|6`m}Y5`f(+} zW_485?CT%zV%)nS;Ku6O%AL5;0M88H%2Ry-(@wd0AWg&F!Soti4m2=XyT%1pY#f(CDF1h6mcC;&Wv$92pL}=8iRjD{- zae?QDPc||vAlTDU0pkresTy#W+1(w_{<$wN&MIsn=4PF`Zz6wpMca|oci*C5Qk;!u z@{u(;1K4<^zJzHo+`jCL^t2@5c28XMuL0B;1eJu%1#YtfyJCKUp_C5ir|biEcfB`C zb`Q)Zl>gPNiClKfsnj{=mMm-26-*VQU|&BP(~wT28J9K61@+(7C~A37-?{MjuWU|A z`l)Xh@k1WiuFR5jjBh+@lH-|IuxGtf`XSAjwVF+P-+a+V^ktTrQsS4(qvrfMa>=%X zbqpYX^&Ar(Pplr=f$O`%aLyh{VX+4fYSl0sIkg6Az>Ap+wj-=;qT-X<%B-R~fT{+r z(Me)s=xTFViLLeblE7WX)TKc1?oGx59gMo0-B{X27o;Z{j0p)gT}eQS*AW3EX5gaI zCV6yj;SA|m7~I;6-f6BZ4hpeMiX6Y~`HJ@b2e;nER|SoX11z-&YQH`pS@P$ddKj=tR0H zg1Pc9S$Z#A$_sDc;h{J9^Ul^8xGoP2a32|`zT;L~;e7YIp7+y;!b~-G?t*`GIxPcN(me~c)vpw$|DjpTm7jTSxRlfg0 zfQIQqFAaO#%E=I>@gL{4;`NOFP~W2&xgqL(?uVHPf$t>2vSn0~R!y2!+Fsvgs}_}c zE`t?i*22*xYOZ$G=bk2np8Tpd^jBo>3?r?P(oGzfWgRag?e^`2=zb`S)JN$%R!-{x zf%Ov>HFOEe{wB&Q`jWXsLhlO=YwNmBYed7YU%x!P`H)U`&6WH@-YZSj9a@Dzf!XE7gX$eM;ONqZnJm4YeihEG;R+?s_)fb`Hn=k(JMwL0k zKKnE~_N?A(cO0)Z`vwM{S%4&qlUea6sRYKQM=yClEyw*Mcwrf48&S(5x`~U}1BI41hPoK~<$yBy~ zHIdIJ(LgP|`GT1!+|iKd?pE1bay85Ar_YODPtr1v2M$LgQ*XWIY1-MjA!BRwJ|HtC ziu4^{-)StW+NL@U{KZwj)5$r{#cikaMrdXx5OQ_^c5Z{WsrqxxR19#h z5<_^(o9}EqOEB5s#9mTWB$ePE7M#|JwLGe?-3{E$lBC7wZFaja6QfeG&hGt@elw<0 zb?Z?k*}zqBzev}pxdlHkc>6k1<@uaBE$>}a^xZ=#LV0C@r8yMVpMzs?ow*RU?glx>o#Z})+XX<`VHlc&*a-o(`bkvNn zP#KSNl?AGCVMcXdpneSjdA6|dl$zuo)r!DzbVTuuNtV$oa!|q3)8FAyVsRp_LGZIl zr0aNU<%V^Pt>jueUihCDLq6-Wo-oNK*ZZ<%@4E&9!b@M=c1# zZOfSR8S-(S*YD}+uB458UyyO(C5k~WLgadzj*Bi;uMGBbx7>3-aqV({?fqDyjHHD9 zQ_SF2<+#hAE+3P*l;vq)#X4Y36RbG-9OPEiz!9|7KBEj-he6&Wg&c4#Mqk=`n(>zc zT&(RKq!6*bxJ+yi0tRg6DKKBKt~9}ib}&k&G7H2^O5{6cb}xPnmunil8=5LW5QWFko3G!?3nx7kM?7}$#SD?hMMcXTR@GjKSpIn!J9D$mb=xsDi_>UHOKxM5Uqlk!$Oz+WWBuYVfro;( zX66Bp*bJrck`MYRztO+9XGVMld-^HTgzAAP5&=q)fr*_={i)%sQUT7;zDD8_Oy^0r zh5k9tN5B3Sn}}gOW@w>naPCkHHsazZLcB^F1TWoW8U~%xjAtci5bVaVk8BH$pzG`Xq#7zG}xnm zhFcmFu)d0w7S~9E0$Ms>6rung0XnI98JO+b#u|0Bc8z=&prvB9!L2Agq+=SeTHzsb z+fw-42SNB5-ZS)Ig5q(4ZBic6!pz%fu?HlYZFoq+#5clKE4;Z7+I~W`1#e+#4}keS@smNOok`n~zuf z2jgAy_vd(CNc!XSt4!$dFsa<`>s9^w2n3Dt9dEnGzPfuZ)Z-^pfBl3(goWz?FanWkRtx|FNm;0vhB;k>lB9p%>K;;Nh&V?Z&&7%wZC$hAQa zC;wKYE|sG}PVo+GBz)_g(-En%v_>l==D{o6?={!PUM63RlG@-O z*GspCmlQO|_{lO~3-q01m{@P$C8Yygk+JZQ;cLBfDb~B?FU|s+MA*=JQ@Jcw~08yZm_&3#youjHDFn#RpxTaD_77=VF(WdPlQaAuk z&~zix*Dun76SFZRehnU#ri(pQ%Q7nsumC)ocAeeLy|9nmUk%N3uu3zp$Vzs^H_%TROn% z)r;TXxK^2y3&b-YSQGjyC0N*;rAxcGP%uu1Jg5@ zAgIh!uxgm=-5gG@ypgv(N1n+F+(zn}q36Z-#f3bVxCvFfO&?N{I;0vhi7B^w`V$UP zp{d+{dkr09Rvyb7%78W}%FUG2-InWvwo)DsCft(XcwtN@_ z%eZ^*CZ&M$q%JlxGgNh*6cO5UdY4wOcaXFV9JS=FDhK=Rvt?3)m z=_>06Zd6iNRm$m;q}dy%5>fP{EZ)7Mq?#Q)wp=DxfR?anb7DR(+=ExA z?Ef0bQW6}#a$XGAaqXhB;l|%9q=yN#KH>>?R>q7TME41fwo!b*X|Pv}D7c8I?z7zv5@EXG|Yn7n3kz(e`|}eJgT+?28ab zC&MJW*u1iByNZw_=7;L$PW7Va@iZ1+=%r4kj{X#SiN?*nM2QPGiN=#(79ck4)BzUk z8oV~Ap@Mn-4SPL?Hh@dFSndAWmPq(%goK3?kqvZVuRd}r%>Wh!ObYwDuDiEhwd5wS ztZIJ}8d$#h;F_}VFW(8Y-MB7WJO~6uUQ4)$Jo-!Gu$j&IjHAVfQJvpddc5%kV1DC@ zwRus}@atq#(>?9f!d=|vDNzRIaV(u~)e{9(J(w=o`h&iRp!2WY9iDje(Inuko+Ght z1;iISn>~V3RAiDj`haF5`k>?<*0#0}SwiFAzbzEDd4489LE&FwHks|qxxD7XlJxY(i64rET>CHpdELEmt2s3ro0y<;qROG3Q4yK}fAOKK>McT> zHtJ6&1ojknAV;6IEFY(p%YtS-oz6-J;0j&zuhRkq{O4sxTJ=ajl=p~GtG<}E|CCBp zTvtKY)EvxUJ=l_0rR1f!j!J zYb3+*tSCyt-7*>7qEfg5>WKQpB6!9f*_lQ+Dt>dJK!(TW13Y`3LO*zw{%5P(&tTqu z>hRXX&S)M5xK%U{g|{6*ju5_3~c&$;pY|I7u&lxB*oTdHiR}5ssfFn^A_9BHJo6%_JVSXAcq7JPiZH zW?Ipk{BhZ6Gv=ySO*@R(#4lAH%<&~Zh-9XiyD>VR$)v!WmN(8g(wafBAPuF@P0U7| ze|ON*HuPhOU7`Btox^Wc!Laag5~fcC`oGJ_GHTKl^x2KPUQd3$JG86!?FYnokI{YP zbek(8wV6N+o57IIV(N);W4^*h*SR-L5xzg4JnA$hzwsBY`6l7QndhB)_p8D_yUxCH zbKfdA6G2dMS_^-PHwqEuQp0iZ1DN!Z!y#)EgX`kTxOWdl; zO0f9c2LZc~y_U9hksam$>v{v%XBX@ILX78t?;wLkw(q`6Q{}yR<39G}ql>N~>*I?E z#@fMWoz%kZd;$U~uaadd{3R@mVqL`4r+HW!pHnv9-_CLmSrMs)d-zovAuFn!OhZDZ zvU76g>Y4LJRwsktJpze`i$Q0{>qSb5tW!7%&*PzPsi3*gCRpz6#np;BFRRF9xbBif z`$i!ZPj05x{-9ABBv^a9RD(A^+pOJu`PgUnj_0#am>?Nkgblx-($*UpTs;clegFJ7 zzUn^^hl#9XFMypj-PJ~9v(6SR;_?VUZVxU-HK#&U;e2wJ0NF18>mZV6u6?ujT%%@R z*t5EqmbXI)+!0WP_IXJU5XepSowLj~eIOWxAY#pMo{)5UW{&KhO38&Zy@!;=h)@z6 z?UESRJaO7X7@Zn`y>DJY7q4)hhx6kxwBvbVja7P^Wrsu)51&%W$d}!-X~$)=Z(lx7 zZoIn%NE_pek|@Z%ZPwNHQ%g#sQ#`AK)?jGNaU1l`L(86P0HUrH9E5R;#{ugag zd@EzsB}*@2D6FN~6S_yPpI`cOM2X8~H!_MWI%T{@iv2c&WJPhVAX$>~pr&Y9{`G9; zkY{8B3#DBOy=f%%9XQjVc)+rPPk!Kp~Aa3UNWQD z@b(c`Q)`;a2l~4s>`f|SRo`xp#topk28nGJ*=s}V1K=yPGA1vVjUJFoQtZM6R7-tEm=EW>s6VTn{JIx755T>p`CVr*-9kvE%-Vtl;#6p2Axl7 z$Y8E7{oI&N6l*rtUC>Uv&u=jQzR_@+_6T6BRkSPjRD*?V(C16ei~`f92{d!=j4TC@d&lq990$NVn20h=6oR3PU%H zbPOG(2p*9q}|2JQP144tgpSBQ|=K^35?zM8xJ-I7wpqOw;vDds*c9@PQj@t)x)0 z^!%h{$C~0*x>53HCykCqCcLdg=5)ivqY0CX%V|iRzzBS9aY=^}4=Zg-waboj>90?z zAmniVgJ^#FzN#3x5=a7OoA;7dUSf~IM*h-sJqhRtDY16%C>OPlO#P^&4g3Uu8~C9X z=$}hFR=paRZ?to2n_gBKL94Ed?(I=EFGB)2-W6oqEUuzc#Kn1TDHBE&`Rk zTvw9_1c3{_n?q`9lB;who+$L!+QIW0)80&#Ylwe6nm=A+5p=YxO}4I?SS!MVl?#?lmVtgM93|SEc4z&B!YtP+5{77 z>!mB+05Q-E0SrH()^p03hMwP)D`%%TuNwBJRva+<%rOiuYTpU>V*$^B{uFxFM`bp6 zubY=TQC@vaN<%<})^>r2dGJcxACMYYb7MM&;Py4s3D382f2qdyE$VabMSqJ?5_w6Z zYRet@abvH$OHwt7i%n~eUY;5C+t<; z5aW|d+vXseM>gN$Dem?Uc{ZaFIXb0@Dj@cGsAA0O@kU|cV8c2PTu;^6fdB|H`3=c- za|qhc$u1i3?~hjaj89i@on#HK5{x)xu*$Od&4tSJRDUoTtCj%Es-}0SI}&!kU?^pI z#=()iXQPg54zc}?@q7JE6NWuED|y@GcnUEl%xa`vv4{-!NZ2BfuR!dnLDtHr4l{;i zcA7~$7#U$0!z;N&r-2_)1b=Kdf|;RA+J2P+6~VC8hZQML^<4FJ+V#|6&r%sR=k;;d z88x*`W-%@#{pTeZac?pALy(GZ2Mhvf_RTCgO=Vz=S@g(yXR)9yxl{F@MHI}e3!DDl z75VHR)k=4w7r5FEF3F7z+Y!OZ<`dg^szWM1Nu@kOX)UZ{_(gBO*Ze)I$9^6vVhrNB zK5D8I;8%~8_DR2_pi0{Z7oQCkAjnL(Hk_`F;mfkctIfJ2(B*#=O^?jX%rNrku8DW-WR}N%Drv~f< zMb*vE^px6*D97x)Hfy22ZE%;H5Mi^}Pq|(%mNe68)nzqZP*eejJQTSjlrS8MGnAv> z;r-)h@Ogbh-f$vDY5~d|K2&UaBp?3I`j40dx$ygSVn{>MQn=CK#MY3K|M1a9idz;f z@@Qp;b8;C{c4GiB+jk*{CRcCTW6go-mrrc^{ShyvdzWD%YuUTwBs*l&E$=g5Vi9;2 zeYCVgU~~A?F3#nj+z}g*xNkR<8Ww{J*Mawbfpf^}$lDD3yjP8BwSi&4g1h1#hJWY@wRDHmu6~TCs?bHBz3n9+*m(480XB!=s<@rktpyum*acbw zr#bb;TIYrwI%f!ZV|fXAdhA{}bH3W(=_1Wd>ewDJ8(1U-|_8clKe zxUCM~Y|N2e-d*4T_%054ms<5{Frx&j=lHx!36m!zKlovzwV$~i_@;h3sz}#(+>Qq) z#K0zxlQ`;Q3A0yZC+6c8b<^i2IT53-rbG8eQZm9E2Xny$n~nGJP@@yYgXF(`KCd9K zU?HJ~G0o1ihqouas9I-xTKc7|dBzi3Qhw6WM>W-ZqcJPOFw5oR!}H7;=cCgDTCuqr z;I#kym;%7X!KLFx0gq6opsPV7^G|m>H3+5m-gedP^~JLPHP`a~QtkfA@5A$~yW=f@ z$KK3r^Ku*7UrwE5JMPR=t{_rK6KlAg73@xu>z1wVO!~;0O!oC-Us2CLSDfa196PA7 zpzmgA^KPR?xOKCCqx)Itt<=Ir|IADnm8DnZfnRkmbpCn~N)$;TH9Dn;yucF}BT_|~ zWAZn@322+eNK=PMUYeak`m9w0D(#~zy$==eIQiqvP-rRtkVvAnb*LEk=qLB}tC!Lh z(6koxyH&8<;WB(ff$(A#I(w2KoXa|RoOv@lL?sg(!4*&$M9 zj|3f_b7mdypfD&9{wW{!TPsGH#F z*o+J)B6BLKNs|KO#K8}5DFA{W0FNz)eF zAxXDuwKSK&(y>a*@l3m!8rv8KrqY%qwo)&9%tW;C|B!vk`~lh4I}FhuVqvNeK-m0d zH7j@ZZGEm;<^-?$L={CFZbb~=kv@fC@9_F(>kbsNS&&$KcuTy);$OKy-o{!Jnqx(F z`dv-|pI^REu0&7C!MiOCH2O}UuQs;r8I>OEQmAPeB6ft*S7ErDG6ao71%{9rw!TeR zYHZ#QIw7jo;bGZ<-hO-!V{8tVNKqEbw+|!B+njSSEbDvr zNO2ZvyqVVt*5r$68B9YPlN_&kNbQ}BjQJ5mTxc}jont7x?1`R2)g-lc@dXvSa{EVL zy8IY6$N}UsyUbA7cY92=P{3M*T`F4`E%q}sBZM@DGf2d}rypMs+8n!?D53~$;C%C* zzg8j(xbd12w+C|W)tfl;?!zAG!a;f&%TofU8!X zgx+icR214-9p>()(87M-KJrjCh09opbCCVS(pkHcQLN?&&Aag1db(<-i0VDHGNGfy z&Q=y22I)M&$}_>e-S{U~sZ-q_h^A*Pc}3XkLI@c{J0oVldTTSY@-KPzl?=Uj!ZAYM zW>0ABYABbFP-iQZYABiq?t;)N(9t49kop6Mq~TgJFiM2IXSyw&jKNpC?+Fd8F^JI# zm?mre%U#cDqt6~?CzMk z4&e+YwKL$%QuED+CSP({>WlHX!k$4VEm2z}$`aH}64VFa``$4kr|5peGQZiK zyO-{0XZCfSV|~Y!?6gV|*9UP@Z`6CTOugB%+3bRnw~SN9!ZsBy0bUByUxlfQCvFZ9 zGJhJ=gmF71gJ?iUSo%|U+!$BmzO#^Wp4$7b1I7=C%unXtWY6k;P3^)_ z{$qAA5hv~Ap|&)FhmFbalW#1mE&h}{&Z#!fz9LOEQ{4O4dil6Dah9a(-jJF+-E)7y z1<&=_?5O=wU}g+m>m9tzh|c%)Zc*$a{d)fs!r!k{r{eTy1XpL+lK09{-MAF3*zNf7 zx5Ajc#pa8p>#!|u9pGtMmEls~LW5QKN`^aiN@AFtlMX%yn%K=@^Z8Q+js8_u#`S7L zEbwX}*4oK}Zt1A15x7k>=e{SsL|PUhKI^|x9*v)saj$xXV}~{78eMb2oYz`^MNgWo z^eW}8&WZ(wuLJy1W_A0K&Tk$!YclV&1rSw>{lt88_`@#QP|VY2Sv4?VbHdY7wcj7` z9!_A1a2KB$|1o4O=a?)V=5`(WFWUen08Wu+C z)&0Vmy^b2SI!6mqOP@vG8BuO-?Ll+xd`?0y1#h}%8&Zi^2LQ1dxdX4BhGp(`7 zq1E_~dvl%_-p9>i$E*Jn$;NLpiCjFRX?!@xzo5QE39uwL%hDPnec^-GoY_>n;j^s!Ck0k$c|b3Ub` zq3ymB1Kh|0UbBQT_NzxoGmkOyGvSiA6_0)~VC3L$zt5*p04OkV^o8T*hEwrDE_;&A z4U5QG36;b;ZpM`P$_D=sq8Q zoj>sB{7e^C7@W{w5-ebfjR?hH{f1sMcIzi=r#Nzmz)r<*QXYW%4k}zL4Sv1)1@ywj z)6lTYROlFYq(lwZ|2yz!Q?!$5%Tq}8@2AP}jA{9?AVPiymue{JbC{%6V8wUxTseaQ z*b!V-#}YeEkHLC`zTwx(>z02iQqSQ< zX~~y7xNVNn#t{8WK$3_x;D6p<8CwCct?d7K%let<^?QijyT1XPhH!f4jFRz|3NJvS zj7_ICUe2>Ql@Wubiz(C7`hlX4yqwl1FP7;OzC(`*Uo7kNk0xlJZ9WLm8{nseLlft@ z@dIV-OUdJh7g@u)K|Ex(MYH&s~GW3>?jNnmmC_J;E7f%TUtCTTuRY}B7E<{n3P zii9~)^foz7$P4K&`>i(9Iso+RdaR#NKQSiGeoz$p0fEf-z3+ccC*9L0|io%t@n8vmA?l(+i5ACIV;>_qY-feZKcwkxvnFXRN|c6 zOZ;alR&`qqz{|C3OT%2#=R7mk@8N=JE=fDm7}s{ZKih6#9Zddr-^A+hdwt7-Oug&M zxm==l<4&TDLz@`q)Ex9|RTn?(;w-vYEH8OJOaIz*G5cscG$za86xFY$Lo4OKG7p$` zyK}T$e0MgBHzE)c44AN65Ox;S-yfW!l4UTVqfs4)Der=H*q*AXM2KhI({xjLdYNou zO;{hbg(1G%^1ncvudPp0w>UI~1i>5|1_Qw|I1O7Aq5{V;oOLI)*i< zP8pS&C*VsGkq>i31Y;9M4OPMt1TYM8K0d*YGJc%lfC3J9(XjvK#L3b|E8I%t*%Xs% zsI$Clo_;l)a~`Kppt(tKIJ+?Yh4VicIm7rVwW@ZpVaX1m2cmwJ)VAgqN= zBd3jBL0^O7TZbRmZ zMTxVt*0n_6WhnBqRoz7-U-DaZ!AA4y)fE=+2X5={&GlDK7y2@~6XVH;S){4|Ht^rf zU?fmIgi$9q(d19XP9c69XTN6bj6-%^dxNGZ3L}3|{?(pdy&S!jiG66`qwnE`*snF* zi0QiG7~!g)j$Um$K%94C^kXG5apYg&$LYB$!}zn62I7d^tnFk13GrUXBGYR>a4zC9 zCYTCQUT&wMj)b-26P}_>!5pDU5A`r-RHqJu(^Yf`{chAv$n!Weu=bsz^l9p{hrAG! zyuo}f+7A_Nu(rEn|CB9FSckAD=8j}`uhw_)0jS$~6WIHIUFW`(UgkAPM%NX3j3(Et zX3J^le38%OI;#!~!yjB?A!*+-+c#S!**>`k%mf3e#!$?Vw*HVfdDCnbgJ)HgPt=(+ zQ^~wRHT-Ne1Xx`veoldRA|^kNKWaR_Om7Zac@z6iDM3v|n@O z!btW#m3ip`qwo!|KY(YdXLq;uwwpEnaJyY-w9>ex0MX_=iYYcDr*7!j{t5-#BM#1g zpvM~dH#-SFn5i_CMOW-l5_-CxEhz|^-Z`7p1q>j`jXUCk;KFOFd~AvkMZ4gV73a}i zs|8!NKVN~~TiegsB-+i5jus-0Y-axqlSQ^LI`e=xyq_62G%iQHzGs_8*z+2v=E=uX zuy1eHD_u^06^*ZmFmM}Xm}YWZT?)-(qVOmE!F*JYG6KFsgP=DTw4bmVM7MvK=ti>= zG&E%2K4)Vk;~}IwU)V!Z{C*iS6S32EhHHN&3=MjlpK&%TBVd|f)JWE$&Y7u!ghAW;rhZO>9NKqZqjjudlub1=*DZ*063jtmgGsQ!Y5r`8#ai!ZZMB$chs> zf^X5?SJLKHnv)|yO3b};Ixl1t;=0?EX*9jDH^+@A-~Tf>ZRBq}epxt~t<|MSI^dys z%meV8l6mWA!^-JfpW$K6+vXtobYtE+6t8~(-{XD2YcxmfV0ykc>$=`Ys{5-cxnkJL z;ApVc6?wB;t))98c^0G3@@ASoL&8&o{PQ~W+#!&7KH^N&6w_@rtA3 zQznBdG0RJ7vAfj{*;LlIU$Jh}#0qXcblK!8h7LHGTu(DxH%s0Jg|c+Bivj)_4Q4p# z5fte`1M(+Phu)q0Dpu3nh|9Aoc@lcK_X3_)7HPJM-!rPH&m_NuJ-m==%L|$7=UWK} z=hmz19jW^U&2clS#Q_~;QulUQ3Me?!TSJ`b|Wn)UD z&&6)k!c5NCvEi}%qU)s|zcEkGoh!BxTvGI+UKX?Qok|qocoxBu6<-@P1;h*_cP#X~ z?YDd@to+VT)hQ7FmzS#B=j&?OcP}C%75rI)V}0~3(9zW19Hd%?_w_^!5IB3fx#B7I zQ}}j-dKcT@!>Vh7KFrT&v#S1l`MSGbzNZ3yyS5escizmQTbuJ0&K+D`tKSnHGoQbk zY9@|agnORsR>1j9O?om8EuB7A=uHJF)`-`=xh1wm%C!G8Z~dIEZ+feDxQ{3HqhYqX zgzWFj_LU@TdN&0BjPDH^KcbhqJxQU5>`8q7qp(;dluw<$;^gZw=2~0hsoT6+UINw& zn1U;J%+8twWk4wPua_T~9LZstf7W~XC~Ljzp6e|{pMflU`MHmsU&^{L?TjToHl|y< z%KYZ^*(K`>=_Kfaren$%T5tcaRwleK7-mId;Ol>q>sO_m-@9?lQkTv;I?BS%_aqvC zcME=p@T#@J#${UJyZyUPEkuTx)$#f$K-C-6zjJALUa{crb~&8e{xpjOxxDG*duKM- zt|ml}@>t@Kf{&k$?5gN2C%TU@3aRQfon;6#FJ1dwbbS=7pg;GS!d%^-7sQ636A#`B z{Snr@gAvX@9FNF|?}=?*EO#xe&z;UJu!#pTiu^qu#>Xvb3}7ERH(Lz__AiwKNK^7$y(&`?sYegN%eK8-fKwyQD^_k-aDt7S7I>`9(jj|VA_5p#$;l+XRTySb29x>pSmJ@ z@HeKjz|4bOa8KWlzw$V~*F-TNdeEd&_l#{BoRCfcllc zLn5Y^h%d-0+*d&#p8e47kqG88V6`mj``ai-{M;oMB0nMIZOuUH zI<64)PeD$CW_coy(apHVr<3M`cT4S4(RHxII9F9Dae|Q&snPnoTx(n%CXwz)k`yRb z&hiE(j|{BQD7YwTTXX3vS~EgbpsnPYvmg$+iSD3C3UN3|IZqJm0Au7NX;-xMbH5!W zBC~FaC|=!TbZpW<7;P)q$zZ5QnE8q{>DXz>fIaoSjHEYKv|ivy+c8u!Vfw8w^s`Tx zpkV%dIZ(Ux$_TRon|yWat?6$}mU%1vdRM`3PA9tt9x$X)1)ED?ZB}8HwioWVhtPrz zr!N=ghOH3?r@N`DQe``+wFu%uxEZ4O2Yx+MYM_h(9g(jj}Z=2i}al`C6ruBw2u+2TR#teb17)^Ctx?z=jN*&ttZ zJ_xjB-`r?}G-sAh+VK=rntg3y^sS*`21T4=2Ty4nrcSX(JT=^1OIJY*EdMD*A2hMG zwvL1}sx+}7?e(!Ke#XQ{T4dK*_YGomn>2@X?Qv_-nbQ7u)1WBFkNelfhxB4THD}{& zO2{H4j4MkNEt9Xl*~JOlab5q76c1WU+7JM_us^k%ae45|yadvb~SjlBFE}FA;&;s~j3#r*8aCyyz z7MBb6=sn|jF`a5dot`}}`bTpj_9?2Iy438Y+ScQ)Qf3rs2cd?Kb42p<>k0sbZWL@N zC~-H^(KP8V>9c&djud6Gpt>KLEw6lqp z@RY-fZ|6(uKB{6xI|7~`8#jm9!JG29j-EuDZ-fc)M&ioa?2bfuq@v8$DP;xG2LPSV z&hG2NsYJXo2HYeSJgn_9*IiNOl2BO1LyRlu3&t;Y+@G&SKsj&Mt{->K9v|RR^)Hb@ zW#aPC*5$*NxR6p0%Jb0@i7+*~RDrXh0j97pl7;Eoy8>O~1+SHLA&?q$*3WHYI2W)l z-1HazJm}f#B&f#{k_3Z~PPlL+7kyX8f%Wu$h26i4{pzH2{tVJR2l$wep)BW@J~g`j zDxrO-54iQnUb7E#de zmv;sfV+=nWFhhhj?v-!Q1!mfXk|38-7&wKAv)d`1%dX9x8U|?12O~0yZr`23Nrc^xDbZi zsHBH77*zJe%Y~)^e*1}&0Ckt5DjyYapsZz%XH{^h!>d6!j2D%6gYiJ0CNE4q3^m@1 zW`FOlrV$?7BMebmqKQ1{FzZHA5)VK!>VA)ul({o@O;bVZ^|vK_rH@biz7M>z)HYH` zA-e8jX&gU~5g=JhJP3RE%>fmL9Xau?v|`nP%_$B#BNh}==boE;SfeUv z-oShr8T)4;Ts|4G{ZD4-KL4*-EIq^2NwcC9hN=6QGl3KBRwtF8+kf8cc(mf!m}rxe zNaA-YhmeNY?ZKELc|K=^L}_w4`U^(8IFLgw4X`?041ct*&le@e3uI!fyGAodW;4sb zGJI^tmiwf11052`R)0m@tfvEs3wV9Z=7a%!os}F+Fn?cHzBXGSb^~kbjNzE4HC%EY z>@ZC7cfR<6#O6Y|jRdK2V`LF)9>YXDfktj8;T!u%sKdozD)AQlps0?3rPfO8C(mG; zV7R`jNJ;$T_mcLGau3!#BxrY{dDA&2h!iuZYE-7o;`|F`^x)Q={hUr>~ z3GSBDlf(0y^C-G7rE>x-8L9A z(PEomo<0pVVcT_gfGgj7^lUt`ER#M2Ewt5%FrV_C&5l?plmZLjo_pJ)b;vIPe`sUk9`z-KvAL)N4tAo39^Ih=} zg>)}NHSFD^?I@7}N#Tm|zS>16zfz;&C*`JXyJ`(z?keh!@~uZsX06~msb#Uo^RLYK zrf2})ut=Haj@vU3zB-*7e~ORUjY^eT9{OAffUoZ^3s0A00T5cFg`%k+S9oEY$lLve z#&NN_`v%Z-iXRBMH(NHbY8g4b=)F6XT$-E6f_ONG9V_R9ot|Vud;}m03Tde8C7on{X(%tcs~x#9G+_52SpoL9M%~_M}UpETGVyM~8ht)#+S&h#3x{;E?d^rbIo}v}c z9}8Wciz0{atZsDY0funD8(lGG&imB@`Q`AR02S(46KS}K^*dJHoWEj=K4OFDT@<}pV56rcAA9B0TgMBs-KQv8-r7Dus z89aUio*qUSKNEjAw|`*!%Y~}$cZKN?27c9djebU97)3Ex-^F17ao)?g;ngZ?=fGsk zCnY?4KNM2ul3&Kmam031sgHPQ{9TFUln^*+k?z$a7C-s${D?KP3x zO&>)Mt+7zBzG{GdV)Yib~;XQw#4q^m$r5sjVJ{!0@J zRvQ48)<-p$tFu1?{qqHtgTZnRHDYj(J zA*$u?uep#{4msSKy^subj07F!=zSR*fpc64C`_V|N=d_()}lW(*S>19)dtE<=CxylZUAbxUIMwoJg?c-G(~{}4>E1Bab$dL{vr!Grylj{XL- z=X+Gs9;;nCg5fHb{|uvL2q)lQo?`;@9JH;?KT(R9%`boVA62v6%53>FZhn7*>a%wi%`ZGBUsVmia;abc;Ona5qH5Fl2S}%cG>C-sfOMBgNryB@E1g3O42?*) zbeD81HH35{4MTU=&;vVuyZhVSo4uclIp@4jy#IKfO_UQF2@ji{u>%Jc1^-HCkY5x( z2hsI387cfBqW(6&muNTYCB23m zU+va%I-hOry-0_=8}N3g)uV!AM1M5#7}RV1y4Qsqy;o6CJs)V0dn+qNY`|WOHiuot zC1}#_^V%bsgj3z$Shsj^EDV1SLI=qbcK5!=uSMuJm*8vn)>lVjk4FM!l_$cG&#BYC zEl+NyPh)a;fbSnTK6?eti6WfASPVUHKwA!@*x@CY}+7Zr(M1;0QL zw+lgzgg)@#7bfgA6uQ$GVAKLES!gl(89bA;AW)&zrZOPV%X_fcZnibLwE}9^Owl0; z!?!!{uYk!(Traf&MVA`ovc~vROd9Ksi?NUA;Obeoss#X@@A03$2+jx5uABd5(%Std z6j$a&c9_ds?jyAZiwCGf!^?Z_SyM?FQ zWRyDoNQeiE=zP1>tvp}b!^0-Io~u0&GE(!+Tz?K{B2-QD?-`L@HM$4P`J zcPO+WpQ(w+0>?CAV^x!d4I;$`MCV23ZLY}pMSB-v(_$e*Das?fPd<)-fp)d3WLESm zvRHLLA4^nm(Yzl`Y|#6i#ey}SZR|dhAUkMiQfGOhUjb=7r0u=Hz~h$2tQoWki92$|2j*z_geZF+U)Wzqs>#2YBeXB( zQVc4J$Ky&&H5Yh`z0EALA999B{Y6h5VZ@Wcc*w|ZQA}bVXUZ2nUwOWgiz*W9QBCI) zFo;XT7+3ig4g6m7tz0-R?-+=xed3T-xzzQ`4D0lH1YLekV)@Ef#bT!7sW5N0jx^!D z6+XLylZzNePk3fM>%UE*l2~Pmoix03v=Jzq2-Z_i>8rM`x&JhVw<-r^@Le(S*9CDF z%IWz(XW;t!!+7UwOYK7$F(gzjohqir@g3ZE8j_6d?0k*bxznc@c+%6lgP7wTPdd08 z_jk>h<{ydk_W({MUb{wzIX~H(GX6Ts!{g6=DlRSGcLu!_3l{#BEq(_(NMTY=tF;_@ zgjIp3vn{&A@Uz8z@1m(ibjo$l2HC3W9iaO2qF(2JM&lTsItq^FJ2B;>bft)nRRu8V z`D8urY|*3NTEG)HTk5x2nwskySg2XF4Na$I3-l)`0EGsz;Mv#%t6{Pun&*>~(4FBp z-OjHTRXevUJ^jvEA*6z9e?vsV2r_wk_03v@)cMaDNtbXsHd}wvc?4nn7(<{zu5Fhh zi)12?Ahw%|zK4^n&K2pXGTTC5Vp`gBv{J1WGxL+Yr=yHZ3Ym4+30hlZ=y-vgT%ybH z2Px7B1t`%X-r#h9?oX3hZLn?8~)tIT-*>y`(2guizA zrB&&Abm%+l=XE})ivQ%=+c_k@@N_*OQBbv*Y-g9%S`$PwJYlQfIoc9&C9Gb%qIc}i zIpt!UZ1>Yp%FeDR4?g+9dlC9*coa0ZkiGr6y~s4Zs&1QI8lBqCzI(2uwihKdtna#$ z?d6=bUVq6Q*J7b;<7{(}^6nZ6?%g(K(Dl*EeP_H4Qrc_BDf}txTkIKxf&`2xeZqGT zF`Kz-FX2sj`XR1CNtsu(By}@&pV`D@3A-7fW35W7e^xUnSIX4cXauy z$#Izw@Lf-vrfZuYShg{zj=d|xUU~Nf?+--sRT-kg+_!JJ7FTe_5{p7yM7w_MjUWkf z#7Su;?p90li^1ZWCq0xR?|)qH)Is_IS2mOdJGKs0msLn4PwoaG5(w$>hX%~lrEQ!r z=j^e!8eA2IEEn(wgllGORaaHYZ=HI4;Mvv+_LCgOCkLJTh1mCnb;&{aEJGu!{uENt zt4bHOjpOJ^(gBJ`S(!BtE#1YCMc>`Urq{=I2Ck}b!o>sP?8jbo9-WgLR?qc|))Rc_ z&81JFEpR})+#!Ei#@P7BRs;unF}MY|FW_Tc@!-9(NFA+e*LFN==qT<9C(=xbF{(Yf z4Kc{hx`rMMHAx8B%l>Zfz8qV+vh-~1z3#kcQ}ah*=__sGaCADow7ejaxzFvwpoL*X zfBM8z|7l6tGD`n)Pp1lA@LrFD@rOuGI!uvM67nLY$tXxgKd%wGUmro3<5;C-LV1hz zgHkfVGse$DWzwLof(%NIB<%CNZT1*%w}a{H==?^KdoIIHjQnpKQ@9Vy2;w>V2Psyg5{c&H1V+!UJaH+$7DO_l-KC>(m{>NJny4BapeZo3 zS#4gZ_%~Whq9~nV;1yo#YunC6y>{%E@{f+F(r!}+KCp)n)}jGlr4!g8^D-#b_`i#^ zU|$LELHh3))7?th%F)(<5e-2wvWX8>tP6*)XOX*@6^Q%1vCiRtaOw)$cib+KHFl>` zxasM*SklIpf2Wx8X$kVr&pz8po1~>^w~4Fh;FQ$A>AZRq>PsU1J>1d~_Z2Gr79vNe z_wWYyp)VmRgV|ye-hp>cuOoe%de`m?I{~L&K?n{xR~vyF$yC_c3fX-wkXBYo{`joW zB8l*DjQ?-+$Q6Cx_30751<)hL5;scOO)SGec3e1j_ zX+kp27T%_E;g0cC#W>c+H?Db{OE-bSHsKN|40M))H>WQ3SYdeQ3M{|SXRvJX?6+tQ z$IqA2W+bZYyj(s-$Xul3c^|-;^=^S5&%qVI8G-xb_I0{&6UJ-guV4Mk| z7R5KPm*HfHh<0zx>C1<-QjEq>aigwRQ9~}%P>U(=)Cp`c zLpl{Ct}8Nnj=n!7`|M?#so9rza0I0KfREzo+v-wRX5>R+DY=6_d;0MQdZX&vmZm>s*F~K~C-@k~#OQz; z-LGqqh%(Tk?(8Vs;Lla!{nqn|(DA4j+a9A_*$&=4+x@lU_|TZwJF~~f`au+UKB@>QNUBHQrE?5?6bd(P+kqyi=hdxUIkzZIwdQ)j(ZbrPA4XDu#LR^b z)30L=prtb1-$b?3mbHPuzE}SF=|o{B<;pUz(%TQRp6oLzEqPLs)k(dAFH!g@l29<670m-XNn*7PI} zr~nY!XuY2pWHS0(>%uF}P@NBBeBncN*e55C4Ed|oPzQOcvu(*{gRCudC+qKtSb>Y5 z0zeErC^*QMt{00Sznn{J^g%mO{fd=*zB>s+&|(Zs{Ha;L2}zcg%D`hQi{c<=`ti=Q zLc7lv3bTkST`U_GOXIq5g6)N|f<1q%PbnusXn;riDK2;|*V}np={A5x47nFkgqVaT zPCRcx(qHRHOU)@51$w(sKzbYjH9CGe)W6;$xZ{1-rRvZNh>81glWP_G<4Y^2BV>HO zr_cA^ZO)EhKAzt>!C%=0m1;-vko|JsEAHo+5~v_k{#5<^MTG&S+4;RbQx{5g{8$fdC#WO9s6 zD>MQJW@f72W@epmJULu+YEt577`E)pEes^gu8iMCsE@TnY<|Zdg{9a@)ZT=3*9jb! zL65S^QDN$(dX*ouYc2%*YHvHjRt~+u(5#=>;^N{pJ;%>wcb2rAriL8F#jJnVVYkx? zIS%#zG+5TH*=V1Y03h(fWaRMlH)P$b_ovtojIqZ}=mt#tLl{4F>x~MGK?TMSn?T7X z`^n4(cY{l>+Ee#rLWC9xpF@4V@j$=$2!S&F*1#BFKk~2}9FB8Wd5h3JG^*E7HmIjR zrXlU=@%zLr$d7TdYw^SqXSSOY;;Y~R@oTAowic_ik=R=DL~H?=`MR!Ztfg_?tP*VK z>4l~+Njz+WR2lRjlhq3}jn5%7cH+eyta?mzmz`XvjqcU_qEdgN7#W6an>6`Ov^&^) zXn`=TdWK5AjFe0xmY!ygA#}BM^T+x|pX%MdE7yC^BJuLoMxS>!;UF>tRQeTprFop2 zeB*C963h-{T<^uJ8C9e3vXG!9Ez%A+*)JX_)~a9kBD(e9)e@0R_24LgdIJg0yc&J< z(v%%ebh+t1PkW9Thx6F@7cJ?cAHOV=g_eTY4W0NhD0zR(V+X^+l(4eadm2AsNtn5<61TmF1 zm2>2Vzg(u0Ppb~5Lls&N02x@$Gl%N9Z@&S)0YwI_d-s+Sdf6U+!O{P%9TyOa9g&2BKH*}z7GYq0 z{kjrGJZ^mu#OJb-Mb#OzF0*)(P^ah*q|}4(At(hI(QmGrqjCy+>~R}MOP{f`cp7P5 zlkK9KIG28hmg8GaIh7K+NhOBNCQUeiw@ERkgUjs)Sz%!{4OrwIy#!NgdPwo*9=wEd ztwOOnfag{bZQ%E8To)VW>ai1gFF-Wq{h1C$iM2#k?hs9m_MM55q(EMqN#an zj4dr&ck*&IB?`TrTS!s!(a6(ra8>4lGTU(BFeQm&%41?tnU7`#Y-eIWsK;!9Mg^jb zY>G4kX<(fNG<2oqhol~T30Ic5=_%XEZau%~e#&S+s6|L27Z+CyuNKz9F!GEVt)Gzs z&?K*Z`qUGu)Z*X!(#y)@JwDlknioCnUaURI?XNXq_&l#c#G1BNSMMS&n(ixYuHiz8 zZlhF0L|0=OdW*N+Lkl}O_aaF#Bma75>h1)6n`P*Bh zJ`N}}4MUr~k7mpfc7zG$S7Q0%L*i!>;j~v&293_0XIu94lXX?%*qA1*8e%Dr(io%B z3iSQ}vJefU7&h?zoJsv1tO+{#xY`s1UKG1L z_z5ItHv;g3yTTkV;qHC0a-nX+iDhP~+euju!usAXLVf2;^^4ziinT6G91$}2FHCW( zxZwUW8ybB6ulh79t>%1stGfDDtJGnJj>&PF7$M~o3Lz%?!QVp!f8h`lq{S!>E z=F>(o>U!QF=W|@M^IzL#X>KZQ&(}n`aIEmeb;dia>QE(Qzx+k5=<}Rhzg@wqlcmhy z1|u3>;?u)kTy5RehsR5&hCZgG%DKYPf~vvBUE`el*m&G~V*xY$o-w=+soo{$Q{73$ zhgH0{riBCdY;6r?>**q_t>?a}14MO4sqvq>UkANb0p)*&dK?DI_Z6*??WmJ&ePbT5 z3-ok-Sz*j|8^hs`2t&PMJp9VItL5POYaPeC!K0JPJB#(NsoGh`&Lc+JznAq2hi*Dg zDjqgrJ(^0QQxtoMYLVD-w_OW9Bp>GwQr@yUeH8esNF!jBbXqre8G}mi&r#)?865kL zf}?js($aN&Fg`Y<7 zY^0qCAuWpGczj%a;6Q)jD8dUq$n9B-8D8{u8ch!JrKL=PfFin*7V$jSg7yx8;CjE4 z&4!lO74xto^lK_|BZniS+vVo6>3mHH1)t*(k*k2jT~E175E*aj%XCA3hu=R8bZ44Z`Yn*%eiw;x zzLdlc_$zagUhoyrf(OTs&=b`qI20-9E~C&Cw*`d)Nmz|6^F;#R4J1cSq6?ovwwRgm z1DPvv1^qKynULo+t3#hLactuN9A$W17NxwCWM!mwXn)$C_(D_nGMs)VhC!#(wJjSG zJnGE^jW75QA1y|5E8>iI69FOWsE9V5UB^^&apB)E0KH-p3ST7au3JfB!~G8h@?UdB zT%WOJbadzdLqNR0(#=S)W(bg)S31@P&ylf)d#T5#QIOKMj%P8NPK2FKPh+e{-y?vf zvfgOX5c9i3FQymy*j2_&QauRrB+<;@m|cS;Jb1=~7a;_?rop5nrV;ZL8dTmhZvA;TL2nU+~Fc5#afL0HRmbaHE( zg=OCH5kG{8>mG#ZIMU&M?3a$`(}*5)3-se=Xr~I$-qw6s9Sk5tW(i>WGt$&sS_&q< zHx?=;2-%yT9s%Ed-wW?i#v8R2JdL`}bxh`7r*&TZKI)(SvOSaCnEFIw85+3zB zOh8(E2JOPuPFjUrDL~_V04sQg;kzVgdpMOxHae2zvoUNwU}%Ttey2|a-~+x`VXADm zd&mPvrh4_5R~1l-zk$cfP2&48$jy483O^96z?}x#A&L7>2I1loBzw&wsuv_e6rBAU z*VuGE8$Gv+_R%L^<+>>&dM+v228+@n3!Am?8QD5EVo`gYqRlWWVzA0})iCyEe~dki za47qu>4{D~IGrv)SB@k+4->Te(BBJAtg~E~1>v{)fI9Cs5ch}lc89e_MyM!EXy9lJ zQX%ho6aDLGZbDiw^m)JZf*qHO7FszOVK#BuaFaIs0L@CyfbvFuR*!REF#L9?p-dZs zw0|)Xb=`0>Cu-o7f6O5Oym3B&OE~!Cn1{VXxRFzA^@J3I{M6-Oe`B7r@I#>jNcalhR8^*6pwk-v7@49@zPcro*H%syZb0p=RLa?9bw(?- zsBbNVlei_s@?%?-?WKp)0?D`LF{`GwR@G}TtVO%l!{mPt(El^nGq9>d#0KUZ@;Rw| zsaB)nD(S$jgzzuO=Qfq|vYDeVB;+~N?O4x*Scx|FQ7D%l57Fv0W6g>3Ce6Gy1c9~4 zbSL7iCLM$;+|0q9EYsCv{0ir0GTM& z3n?4-vJv$FTEeDeq4@))89_h8@=$lt5m}W3Q5M2l7LCT9bEgTd(VZ!rEe1WD=7pidQZMbb`?0JQL=x)7OY&;?S`r%V5A3+XkZQzTvUpVw~mK|Ra z&sQ@DGUy>J?m%m1V150B1xk(ovr9qiB*7;C-$#J}q_yNCF%*r33L@6F%9q3tKmAzq zQqI!M26;mu08<>N(hE^QP!5DOCBe1GxqRWQrr|=~L@fFKi9$2aChJ&gTQhN3Gr zgu%9eDhY`#^cO;de_>Ce{ww>-{G z`@wxQkHvYbItLh|{ER0ym%bN8F!7t2gc5%XfRevqJ>a>pBI#%8G1&5?SgzwL-S6cULcAjA4{kEYo{h-AH5H&yPUL)k~ zDRFeXz=MAI>=}ZM-nMNKQXO*tY2c@s1D`Pyi%B}XwryW9-%X{HLCbjRd7@*mZ9vmA zIsW|BHSsSFt<*QW4OQ0QHrt_NnR`51F_+!lwIg(os)hEm(vXv=v}O44ht6(+c#Ltr zj)_}L?e9-M;!hb3aci5)=bO==Jq1EcLn$8X1RZFb%4}ctz>26QyWfHz%OkdUue7TmCz=LXdWwi)bdMk zG5P$7L3{bph1GqONkk%eK4f;zc%#TDOriH|clkui`>G|69>M{i3O(pO=6sqQttHVn z5;&dK7-Q%38cW35G9U$cn(w7mD9s)j-X;I+3G@B19ob{+>-Npz~J`rraRARE%xwXke5Y%M+sW-9NL)wy8*u3`B@LCL;_L%5AoKL0Qiu} zN_2QjgGLa4RLhKGY8Sm=8voJ6Pn8xMq-Kk)Ui-Ty`zd$Ro;%Gqy__%#VWj3jqMUhd zMOzPfVFsX>K>#~YawsjKP5$Mxmho^swtJ(S_~BpUp=*qzISb;CU^!I<8(|6!Jd{IUSB(zdGRkDggV5?Dj#BB*vSr z6-8gk&Q7Ro)ex#c`9&9cxRRNkLEv*@# z{^MIiXUaeqC*XE{=nFATAygQX06a5DM($swPhmLVNyHrPe!-6t8KOJF@_LeWNtSO- zWQV#hCcAvLHU=wEyKqoYF0M~C11BP$dg{04Oyep<*5#j@npzJ7L1*Gxt64}#P$XO} zsz(gEm2dQjzP=PghKve=c4Og*wj-qV!kbiNN~b5S^O5Xy4LoE`xN^txH&p=dixOD= z#-vO!&-G{`$jQurwy>QEMB{Hp{=}=_YKVT6aF~OpPPi8-B4;Am-uf1Lp^=t-Li{vm zD$L1#%aoe{p;GT_c2{4NbBEl-YB9{eGThAO)jB8bWO`rQ**rn&cJO@#+=829$XcUPs|yHQ<7_)UN8?|{g&l#Nq+E_lNEOxV=?W=2km^Pu_6^3H7Zj)>qUMbk(s5~s9SE{mRveS~TGzA2J=cG~~g?&I(e zPOPCepw9(4zWc3(){g2ses8e+-mD|*g~mPXg0lGX6c>0>$K~dq{@cTX#>$iifuZ(* zx!JJ+EAnI;doK@~;!#*=nIlgdmg)qVGJlwNJ(}^|ExEWF9Q&eKvTEs|2Q=($D0V(I zoA-C)yY(ZmpP#D&m|@`gQUs4Y|ElQ{>&y4r8>Tv}-ke@6vy3YW%#TjrB;I`XoDo+b zx8Ea3X!`sW`ErIdTcqY}F&mFswAFKMavNq{(8B(G6__h!mo@CgYOC2n#*ZoK#-v0h zDnq|Xw}Cayzc=6Jf1IdIuFo`TqYoriPZr_92DLb3aZjN=jE-o3HkY29so;TUl(WW1*6i-E$y%y(tBoH+OXT2&O8AV^W~J z5)wr6#h04K!2OFPJEt9}41%Q_A?LAr{{*BWdfo1O;om8=0o}VXU(^yr8){yc9D~*Q z3&>WRAp$sH-HflL^^G-Dz$XT9w{}{F-Gr0%qk6$5_xL>JJHYZ?7b&F! z*v}iL(`3P-2EA&iXaE=>BpGBvtgF0qAEjYJuQ&zley{Kv9@8`NYR_t;sU-e|oBRN) zqAePGP@6ahY;zu7tkDa`Ly_QykLzQbfX9!`@AY>t5NaIg>NTc44P}Qs*?cI{SjYR( z-`NP{S&u5f!-QuXorsZA)9JlGKQ6bAhOcJ(r-<5f)VO41zW{aub9+=BOtW7G7(pAe z{>+4O=0n#a7+9%@=tjI8jYwlERI3-|b4_ttKjKKR_sIuB4J|I)Bgm)_tq+Tle;ZKmCvduE|Ow{(pZ;m0$IXSR~W;W7r0 zpq!?7@@EDS=GEmh-^tnpv3N-l|Iu$Bif>IT;aBTdCLX)bQl_@)Lp!Qd5>t7`-gn*9 z5kOZURGo-qT)@HoQgVZ>5LxB77>d3L?d{h{$G`QA?Lhrxr~6T{2luq~+_dqQIVl6v z`&zzSB&I!q)wk$>W&-)`oPi|~ZTd&L=k9NMkli%=4mcm?TlxWOnR4mM<=EH&1{34j zW3RLA9f=-^H{YV2$RqUA^fSv1$c(EgBM7gHFHS@{PmQoHq#{J*(8~yIcjMQYudqYo zYK+JV{a+h+2KbfA?Vp*rJCTf&AkFniuM%1zluXSt%naBi&kx^B<<7o54%*hEqCyBn zb?e<=U4>;^!CI%AQNZG1n!DYIOz#yL*Mo3Nddg7tc7+=8?zWQifNV<_lOI|(d^&*1 z-oMg_`g*H%v})=3SR2KsDECqZ6o?5>n0~5?8E_>zvh?0X#?|^0>m&uXxuNgy3AfZv zs18wN=<1%VW(YSy9(6*jXDPkg-ngIaG{g*7`FJb9vr`0a+-18>ba=IDy67(sjvnhh zprpySuoD#;Pa6klLd1UQ&C+0K#B%u<=fWBO(+N4668Wm^0wL|*?_$W+f~}>{rio_D z^oqnXf-{MRALT>AVDN^-iji~AqKWbCcDZe@Z|reH6Hlu!=XMP#R=u7<{p?vh+;6KG zV=M9S-gSV|k7fEK!-rF@N=EN|7F)y{U1WibzZj&Vsned#*C#F;2qCZ?ih6c_q&%$O zAa&?U?b|aiXN8|?d~$ed*7ts_39@%IWBp-DS;5ysmxqP!vDpa_6qPHqReW=s5>$n} zU-9z$AwKAFq#C`NdK8r=(ltwd4Gj#ey+ndog+Q161Dyc zf1WEqdxlt7TFZ(--=xfvWQL4jD!6+woF~3()4TE@yJ`Wxr-6`gj(Tn#W~2tE*37 zH+t{QfyfV3`&T|IoS^}97J!~B6)4B7YRz<+%3mAWex0h}-FA$<+Q028lrF3BCVKp{ zvH+qTsxlqelEs!Ueh=Z@m2jnx&8lkIM=KUL`Q2#KTf|6^1EALXs%5TO_dfm4CN0J+ z>=&_J-{S|i>Ie{WzB011*oNtScMAAAnXiFvv)f)gxR2X$;k zWCs47m>rd#u7KG>*?(2kT7tuqvyfs|tGT;;QF5u`2|Z17DGLdDJy z>*$y_<^*U2ty=e##e9yeFJ*S}1I4!_<@-Bja1a!2Evn+>k!qTMufZy53M_fUk-^9g+o&|!jl6Jnd1c|Ou=~kw~GoMb7KpjwhWh(8`NuW9T5pi`6hxY6%+2o@vTNQ;jlr}(-Hh}`yiVZYr+f==xK8e z%HuBRy>!onOibQmam^7Lk*MVK`-&0dq_rp|@HvULhK45?zfd}tgW>@^~@;r=c-RGNKB-1CcOvOHg)_-Lrcm2Hi8Z>cBmY=k;wHr*JyRJ z?P7N*3|Z#oDsz;Z+O*u`JQn3PVo$ihqPFJuy!!nUYOtR#UKLMj-P&U3g5Sqzh95us zlg?1vVaCV1DQ!cNzSB`YH)&045yTV5&#VW8_eRuihNB3Gqm>|eW~$%CLuUL|C^n@1 zkG0^l#Nd@#Q*S4%jF9=Dpn>YF$Y^xA3H4yQ8mkH#wm**}_*vvwOl!XNx_-jua4757 zntj7kRlYYILM2z%52F*6N7$s<8O{)1mBa7Y!bcT;4znUz_}NP>1y>ZubyoD3jn6lv z*qrN}2C>tT1jro0Jmn!T7tHzW%w*`;!qw3;-{aIBxeO55@*QxAV z_>mpdA=|#7PwT%g>ue}L2sdjc$KvTa>VI(EOL#5GrM*-qOW8~HQM6R4(K`}!S!Q-b z8&a;uZQyEfeIx~^KV0m3juHX6HJI$bd@w$Zy!?oVn4VMt`PFnzI;^$!YAoAs9k-}w*hU3xLx5I8AEL9hhLZnk4OYIdS24N z5!=%?#(r7Uh-uMr_6dOxpg_7d*{X?o9!b@DG+}f?{FW7{1yq!eRVE_L3t*H_fD-x#-kiiwl_u07OK|U^lvdgAOF!fL#dNvEyR@T2 zUJt4B`1~7FA=7P!A) zHkT*EEiWqnB1!lxfgca~=*M5rCU+P=MC-S*p%$(jUVno!xT&Lx)u8ySi#b03fF*f1 zorWtf$eObqVVu&OKxp?KWDhpFuT-m^^X*Xw%`mBkT*{!W?^!#YwvFUOCE9(BvF({x!g4?5X<3j=elEUeCl5T#AY{Y*hAaP?%2hP?;>+K7oTN2LP?`UvB-QP zb|_H!XbZJU<)u^D&8Ov#k!2xGKMn1wEMz2;F?zR(y%@XYw{~MZH{mnIwpKsT`xQvinZ3+( zP2}KJeeImH3hJuq6TEW;V%*?i^IlwIfiZ*KPzZFos6{+PeL5e>Z`(9NIni?I9OkY%{U3ImU zz><&OAN-hk{UTLDL%bAJI+E1vl@q+NEa77magleC%{y@vHaD(lJ#6yKBu}!OU2#fq zzE0$hV(mI{BP;lY_l^3VQ+DcCq&_i8rm2vVrK;>Tjzw#C>}L-j>rW_b7FSVO*)32>HM zDak4b13imv&v1U6mj!K&58APPGT`p5m5a5SMW5i0ofRl`!UJ&y@z`Kg zkfR#eWLpZjP^1TohyOS!01E%8e&(u#%wIC&&45H|pFIe(RRH55wyn$32h=LcWxNOG&S zs#STFduzGLXWttqb;HcNDO^YV)m81z<|_b;>bC%_iOatzVIU7IJnx1z z6N{go$<&$%8JF&0B|MVU=#rkLG!)vNuJo$eIHbzP@Mv(tf^Y$s_CB z6QwqTY`h%1a`QXVKlF1`~$i2Pwhq^mTE!w^MCiCP0QwmY@Fjrr`Pa zrT{ye@+h#fHepi;C7@jDoi|qoIo0ii<@xPbzQ{|1XOz#%X~giF zHewdZX2y9P>33~KH);82z|nESqy!YA>Y5IQ!+bBlR1iuAysTs`9L_1FqtZ6B4rHjc zvHauDG92hgC>HY)isFg+mZy;=?{h3sWgHcMiZy7+Euf{6z{e^C1%8AO<1%)1?4GLo zPw1Qa1g!#lG$ekAokBN{FXOlm=%DHPcULc-@no%DYQUY{x61p0wh5f&hq`Xjde=N3?HCw zf<+?oDQ{aHgCJ%q;`JZAVCt76klx(Og8uyJkeBqoVAFl6v|dl8uG{-U)M2KprEi}P zKZ?3>($bO{*7&s?>u2h@5G7lu=(7vd(l)7GHTbz1I;*K?2Z~a$&R?rO)c<1du!Yi; zAii~MJrAl*$7G4F_6kt`72^Iwuv9JcIHL%=^Fa8ApmE~Ei?(G~6Y^AUC*v5X1)``` z#K(Y?!M<|H-Km%1M@_daN>AAG_;At&l`dk^%b)sF$=k_hz1keMpx)8Rp%5dG(u3Cm z{^ygJtWesS>TrV1PY(=LdOT+Df})#ld0rLOv!_m~l}JitU2p-xOJP?EB2hgfkvjCM zpDGcWr@5DxeU$K{RhDOd-zB^C(?`O{jdr)c7pi5=s`!k7-5jWo^ffkUID3;o4BBPY z>oudW&b%jE7k(Hqj{a5o@RYmi(eOr8Y|Huwj`7olcQTWvnVc7|fqs_hi9p zHLvoe0UG_Qy&7*}-5(Kh71PvTV7ZE~R@u@)dnEDS1`&FN-n9ISMPBf2Ysj@ zt`^_F0zFdaHaQ7`D=Ux@eMg&k48AqaCjyWFmqvUaO^&_IthYHM=^ilT)0IPO`jnk| zeP(Gfi?3 zuNfxJ@VSGT!yP`}X%Vl3i47{)&F9NK_Tfv~3Gr-OXbA>&GG<`Rat??|F@;ke^pZOBhFR0|>I;5%BiyhOQ6LV`%tMt)|J- zY^LQS?>tqQ=+Gy_{8!#W^s9CUf$(3UlMN2TzHWHJlcU(|Woc7PwyMHa`rugTX zSYuPcSv&wb#`PVs@G?B(X%+u;P?+mGX6|j>MQKnk7X@PT^@J@#sZ24kj*%=W_I7=5 zk<)odxh#*>F8bP<16boM)48HBgz9pNJV{GchFJW7R;`FAUAf$s#W3N2EIhRj7cO4ax0@!R%N|JHlDJ9`K*Fg( zrwTy+u!P!58&Pqy0zVxg4}Ij3AU5BgqNu%5epoaJhZ7101N0+TN5$zf3%bsgi@Y}J z0NL>=G7+*rfa06xAY1(04FUZ37=PQx6*;5}8K%c&Vq_t`lrPYQIS>0EVcZftO@c0S zKxQ$1CU+(vAn4lE5fQ*%Q+A9<4(2}uM-s=%Jp_xL7Qtz5A;DGI@P$78PSiEy9vS?x|ScH?rdJot4K+Dvl)g(xv5Za_AqJ~pmrjH>*2hdR$cTetdbsFZk_dwQAr zA<^C}GRjiofjD-(Tj-?h5pCvn^0C{7(9wM)sq#o?eB(G{W4Xe|(<=Jx>0!2N=A|_> zJhY&JbD!%wxi=ZHMBBcO-+Z)O-6+%@8}|ad#rv=-O_^xR8_zd?t>@$iD);kt z$;$J+K?W$FwpV+wUXHwPC{*v>vCa&gKb-8(Ds}zn*pt(=9zk4rUNhnq)0tF$bJ#7c z-(wveJ76R>S~XWf&`u!E$>6~bPqh|Nl1@Km{p!ZwCT<(K8T7=0sd^6mo`>!FY4}_G z)|}FQi8H*`?6&spx4&9**l&tt&w4iojx0XT@vWh*jfWX5U2XiB6_2YMmldoB9`ooN zVCszjPTuC0lZoTTAmcg2g`gD3%V1mPuuM@LcLu+0M6-r$(*5>^@mEm zhd<(ju=#r1l|3UceRaGz+@QY)v+Oy>g*Y)bIL;oPggMb=T@*`*&p$c5`WOUp_`a8) zfP1fosw}6@YkqS%j`#i7mtt^6on#Ym)xuxW>>uM0b^d(rFuOA{ zhtB&7+r3`%>1!`4B=aLpeYNbQp{4sg+qz02>-~UCTc0b~oLRVcut9U4iSlb7HsB^o z!gLE&&Fg3c#dXx0gCSTz-%WZ>7s_Wy z!N}nsUWgTAI6%BzXObioB^>4!fc|HJX<8nQ$?I9@z*&RiM+{3bB4dfiZNaNHi9QD} zm}%*68M!1$q%puX=oj<=3+-azAg;O1^Y>lt@=2#D0H^}%u}P}NEGT03&I>*iXR%x7 z0kJE}-^&5mTnA4dSsLya;fDl*qG7&S&qBI9&!}7ntAIg@y}LxT8LXhLNhI|0WCrzN z@%C_!aUF6>ol*QmP73I~Os$=@z{|O7eX&8~q9skET6^<1XIw<;~on z++<7Eyw7wc{h4KI0HZ}__Uu^&n(gSQmItv9iYD(`-Jb}lxYZWA8;LlJuT0L@P^v~c z{F;0xd+q4|XXm%9xCGLMasS@+BQVAGK~cBu&o^xhyYIVq8#c4fVb`UXC3vIn75{8p zz`u`i<^QVxnnyK(`mgq=>+iD0F}O}y<~G`rPe093tRXCtZ<1mCKd?tLLgoPnMHZLt z%sci+81%S~=&Q3_g9-w*1$Wf!>~5o13hVH>XUk9!-TY}#$jcMY%f zh;e+B1KUJsmQJ>=bhGh@7e)6N7gF+s*v@uM_ZLS z!!o`hG65mA6s{F#JVH{N3`ofrQa89y5Qb1f>pGO!8M(zFXgIUNVDh&BpRwE9q<5EL z0*4vgnKn^_>o1r17&F_v;1~ADZb7ok%)A=Nq1xzl+MIsD9brNr^7gb?wCo=fzg-Gl zyXWEs)&tVgupe7Dt<0zfeYI_pFgZt`r10X`7}uiwAZ27f6@?w@1H0LdG`%)E@@9lx z?QYOZoh{Ff*i>X(4M&}n`iZRk8re|Ixx5A*V<;ML_j4<2vC}w&mU1p`B!;ZmA0V8} zMUCFS0|G*yfuqY3lgF56BLRx9${GVE=WL&Nh(?tv{|V1Y4*Z}27a7+mGWt2p`JH~+ z2vBtEWk>QMyfQrxoNPM&Ogpy@Y7VN^b|V4CJKF0;*k@vqq8yX^=k*P-E!Rs2cXHm| z=a(1GfuPoY5-vAo3nt-nhr*73W`_*9((*%r z5zdWUX7Jl*vzwelY@x}eDBpfRbl9|01O1tQ$|(soHUjM%Yf%{qt#Lh+A?*VMvyr@u zf&^7uIBB375!DM|S_z8EXhc4JAm`)B`g^O6ULiWCJ(1X5HTJTM3CGkRTkC=4V{Q*= zHzR>fsaK~!3gfA;7Y1erd;U7$?3ZZuG%KT)`w$Kji%TIJ2_C0^o#?l6Z#SL}(8!e% z6Kg&sbZ+^@JZ2zpzPR+tt#){L20_|j1L!`E7haPKSp((n)NhO8&$fI3jI{6%jCA(h zze*rCpm7$9koI98!r%ml2q}rWK9h>LO9>6X38P&-OKBhc!o?uo&t6Qzc-lq7$Bt6; z!g>Af210bdg_Lmtu@>SR%ctkB{!IH;&5wg=XF}u-UTRu_@Z6?S77Hv>@2{-=RY(fE zDCdQ$BYfDtfA15LoC?VJ6a?))*iMqUM;ziE zf3FlG%@kQ?3rWDU|Pp@_IY?`8`D_agxB69*6rE~HM*_>3i>(_ZP$(DCI|5f$wf2*085DA@`RB^pM{f@LihQh6pB4ZzJ&(=iXs6=>v+8>dr8h%9bR`fLgTobORn6hxX0?AC2y+u013Fo128xi{X%uD@LpIXnF)GZJ1nyz5$ zN@SbY*HokR`%jRNDL2oP^C9{axZ(BjMdHGh8R`_*`I(4CcVVpL@n}~p0sZypvlB^v zv&H$Hrr*%n_s$`76~9u-Vn6ql*ts26<4p@ObdiTRi6Ev~q%_zW{~cSDMphskH81z5 z^J?VpcXY(OOkI4QBK&tI`8Bd1j(0R&!}ixW>g7LH3zIy*Ow(tNd278qrN40h7s}|c z4=bM~n=zp`I0kM+CVnb&nv&9T>bgu8-$3Xkq`$8d{MkRqIp`o|;7eqbMnpqsHKw=D z=Vke`pUYudQCUDC(nt9|yU=bvt7mKdk*Soe*0k45lWn4dQP?{2z04V`m=1e3WPYJ#xHi6)5i^tf# zQONbmq4`5DQRlC%GJ}#IHP9MN%u< z!cycGQN)9%!M#^0h*2aZmD;|6ZG{h+spS%1#7t_O)eVhr#-Sf^isK=xmA zez6Y0PdxbJu)&9am6a*KH0QA%Jh;LTSWk0SgT(<{)R(~+cSthyXjuu$am+uPLtwIP zSP9J4y)^*Z-$#oqhc1+KGw-p(rOMNLcT)`9k_Q^<;;?HDQ1*f0ePg!vrcUePIq zcGHc>a>tFcvpX;g6R?ajpS~;E=OOYw4CSTJ> zEvOLa;F_eelimBZcdN^+=VF5#0hooyYaik`^&3AoqO3n_iO9t~PInbo1d)VWGIJ&m zbo7xXGJB^-eHhRY6M?*bsaL;Y&tFAo$*z*}7Pdg+rVGyj&l_HevUli;B#oA7s;Ax; z^}X0>$P{%pZM&XL=GIrc@jU)j2%);~xgU=dCHiz7YSes!Y&5FO6hGNqXmP4EB$Sx2 z8_k#gfrUg1^9>6k=7GkXfggBP69duWiD*rJ@Td|vIUU3isu#?^E`MA>s`F7+b;VU6 zdazrFb9?lOg$qGAES;a;+@d1SrSbDP%9>L%dYvE$1y@sxh<<&O7%G8zpvqD98J_pp z8)D_c6H?4McY229j1Ea0Gib-sQYhf{eb#Tyc& zs%ke;YeVxbDO#Y9)dmc#H0{AP%O(BFSpYqNIUa;<>^O@ow<}(+*Tj4P75dRZIBeKS z`d#!M=_4RG>qHD9GKIBb2><*+dw9f$wXq8W`q|ZI_zZsS%hB>=FTWafu+g>T&M}*io{UJlv)eHuzLquz9rlW-d;A zE)yCY198qKv2-30zau!NL-%S0Rc2)qv!|+}@QKvxCu;)ey)bE-$7kgdwA>FwFU%l8 zH08_`LPgScB9A;>JWoS)a$hgMtWfXh`2AQ6*~yVqHd?Ek{U#aOP+?r|6hh~O(uINx zv}=|rGbuU7nH2ZOFuh*|yl}=SFnY5$tm)~X`XRB9;&A~3#I`7?oecW%@!14bpSHob zheLqcwW^Tvg1+N!`R@n1kpnscY#x}?Q!U9^xuq5*#%pso?QzXdLExH{KrI2*=_!~V zf{LI)q^gnu(%M71BH2FhZ^dw}F#)p8`1T2?$Z2EXM;Fn2hsg-jwd464ZTgViZQ%d$ ztOtHXO-2{Q_Z1KJovGIW2lKm~YzU&od>-^_4kzn>&&{J z-#*Hel7>_^7rS=Vt2J>K^IqNqZ^Ii%35Li?=bY4N?*aI4$CN-})gXY)?%Lgr`JjaJ z@ss#bKodJdLm|NqWoj&tt7gD{N38vk43nyi8KW#qy83ki7b;`?ot9mcwY`$ECXGA( zi-@HmYTZI~INDwOE&BW0l3s>T zVi<60I9(Y}nMMVDieDiOsLYLS?W*pJYDp^#KYv_A$^wDnC8jK=5mZ6|_n59*O~qI zMz63X<;m|qbuyBV<|-?(8lOO-@$!d;VBq)QADVy0J}2N1!h#5c0PKqZNRGpf5BNii zVlp>)j$=vGwL*R_97hlv!uXemDWO{H5F!x`_4RSOu8JugQS7xo*0)5I2Sj%CbLvrrFP0N3~s?3 z3W8L2u`!%$O#HYyWwAJ4k>}V3es291oSGUlor>dCaXjaA=3}f}T@j*WVGpJA@i^Eh zem0F5uIO0ZjbL^m;2(&*f{J4nUE04-3c@LSn39ZnIyR^k&8PslsEHE!|tM!Ts!UoAO2K4#s-w8LYwP>;xbd#Lu%Rzg1FbPyiaG3v#fR8{eQS4 z%@orq%h;Wk3LOlTfKKBxt;8|{?(a$rDQF>Fd1;#crt;1@M?9EhSu`dWh8EWM4Z1aqDaCP<$xxdqE8j=xHej&xHx3 z)8WStp^0&U%)e7D!Gp6_Ep=@bjl$?HM(i2>3(&y6@_fF6@L04G-IY7q0SUa49?cK&5FWLhZRnl5| ze?yoL(1!vH=JJjRqccuYoTj!yLx*vj!Ow_P(C|&tMehXG;Xiwufsxa=Bp6sJx$;Cx zn#nmNFo}UV&Sl;QshqD{;Fm9g6}6R(kb4-Yetc?ZXaNRIcjkQ;QyQTv@a!}j4^UeZ z4C3P+)K7Ul&Cqd2Jn7$))&UCTHYKu(0LI|CY1pe_Gl*&HD{4RH*|QcNGetZ&Pzv!! zv4_#M9-@=yZ~}9}mFdbcf~e|xJ+4RFf03R#7lCvzWqD=__9QLA0fYs=Lau4Ed3tQEsh+&*S;scqZBk_^cxGP_heh-rw;sZQyY$y^ zmfW+RZ#F}e;1*YWn*PNhysqHI7fc_trUb5p7+7EF-M zQ%;)RM7iiiVuF6dVutvj&?q{gF(4W~vCJxYX9fv6oTpp3z$=f;dZa#_fZ%D_i_=S& zVFl$$`A?qMAjN07xUNE!&yEmy&(D*epxyS`YRCTlEB^)&RF0O4)vWp|VDXUjbhkwV-P9&|iCX@UIqVohdfv_?EBM`*V|J1bvILUq4_no2Rl5X<%D zV~_!#qOdQGaN6yZY&JC_yranmtqf9=#S0yU#8^8~I6M8lfJkR#Lp$_Q5!3zJDRtzoCv2GJ-}a4^y;hQ_PuM z3@|7@_*=+!eD|23%YDG2Nf2)7|HAY$bj^chP2aK)o1>IUxt4{_U zX#5|8z3(}aY4Za)NFHdRClreRBEJEZ!LmL0spRHRo(NV9e==$-ta0k~_#N!Ae{0K?=P<=kzn=T4P#q00@Y;*Z7HgwzI6mYP=(Z zKM2x=mNYQ4y{~9BSJYBh7gCfUf!G`jt|w8Wg>Z7)u&971u=vB^D1ryo80`3qN9X$) z|2??=79F=+ARyqIoO%;zQ_rKqQ~a2xOM1ELE{869PjF!C9-PoGm?T^DAuaU~HCZ3Y zM`e&PAV*YWYm1yF&z9p9i%aflei#quX)iS;IH!`6MXe98|?2@9#SlOj&?`Zqt&b$xx_j@Q{Z0?< z;i`+Pq;9e6**B-d(<|YDI-$9ZMZA_`4Ga*6<{a}aNr$PQVg;A6fv_)t=$v5@YfMji^@wLPwu>bjH7+q`sNMX$MQ@gWA)}I+4-p7i$wR=*iE!6R8T?2xuDMTrZdSo)*cu`f%#8nHLP?D4 z4u~LJBSH@_*{AH2;TGM^sFF_^-NMBjzbKNTzr9>1Y)ipY@Ecu@MZxICM7*jUXr>4MPkF2!kN4NC`*|B_&+~ z>PQVp!_bXLhjb$Yv$N{vv-|A)fcegS-*eBo=X~dTZy4zNM};XvD;HVXD#uTg<4K0? zn_xzlR!V#=1SP(YY4;rq(O(~!+Yy^4Q?1>7$cZx*TY0CG9iU|H_y}*ZVo>^JqEZ|S zJfp@mtv7-+X-2?ZCg;ap-rpG1Yvw*s`sdT7p1IXBq9rf3ODcc+yzc5u}le3XZDiL=(qhpp`L^X@`1_rtkF z>?mq}v*v&!9ciu|)_9M)?XiUJLZoVM?1);66@_srwuEyr-ufD3jK+Wc5^7t zfzN@j+BeA~nvX&I?&oehOYUMMaulD$x#X!T|`xnm0qNob%LVYuPzjv zh2N1SeoM^?OQzK^+A_pU)>o3LBWM(LU&|y8JLpgHL2~A@u5*Y}&-qxYT!ok$wiwjE zrt0MiNLseNC(bd2N0Nj6+x496H8HklyHg6qL?yyrNz`Q-22uA_IOiuvJ!K{4>s-ch zS2zFdY1!Cffb}lUi92SPXkQb_hUTkUu>R8UIox^GR~;a&Fp>J)j^=Oj7xh~tgtWi0 zMsbilr2B(4f)0(<6Sv*?dK8Z^0n3A*rUF$#5z-e2(e|!ZFqA=o) zNUR&4jyetuy^4%k@lktG63v9ZM3u+JaXf-shh3;a?pXsl#JENbt)uXqe76|rvYR_x z5Pckl&dlocQ)zzg>}}yL;v+U`(LPAod|&E{fyYgS`37(Pu3S(~gUqspdkeFe)*B|N zy1b>d;IGFdwzS3BnBhnY!MATUzGK4+!^)an8|gsnSstYRq#nqjH?onq3U@b@uQj_g z_ewx8#1*~J3AS_t(Wq4XCG}p{5s`yB++FZ*^LD@X?62#H9RGG5kq`&o13K8x-nn8; zh1y2*)lyTvP>g6w`R5j4S%zqJ-(A^3C0{Mept%H>^t88UuN^VYk|=HUtHbLWHQWjq z9k?>yrwU+=Wam+Txk}R;8(EqyP;k`OAv7`YCZ6Ba zN(5uB&mpYorNcRD4wmhxTU|)l9zs+WD$h2OSd90Az*Dz7Op{d3c`z>1gG+0$PHx#T z<51%Zmis}C+v2XwgJtT-!sm;dU9oY4Z~1)>%4K|VhIytPUl&asdLmdz=w{pVJ>VRk zq>CRsHn)qQW}L;`Vj?h*lz*&!7_)Y}zx8WZk3Pz7QKzrg#&uHpZH9Tt$ak|%J7ude z4x+4;Iqyrd3wZmK_q{H`@#NiX-yy7@8=;33=9y-XR*V5x?>I0x71Ov%c?twZu;q)P zye~;!O$(Y^+)|qtBo-3Vu{^XI(zC=7F%ANnCUKq4HJvCTgKlu(q`sD`-!BJp*;kV~ z){WL@n!A2N^^>qGU-@56rRmv0dk=@C8h5|FxK(+sb1WOQ?>i!_IN*w?i?JNHI-wWW zr?w|_J+{aOf%}jV6-x|qYMH98RqF}ly zr_`Pdb_K3`a%RoG_^8$C!bVQ6oYCEX;jRoOsdjto?eQjd#^0=F6h3PIJBn@dUd`j9yvJ->=RsKsz(tCXCSl&#)4qp^V$G(`U;_^P>0Y(Mhl#Wef$J?D@X zwzW~FEHT+DaJhD;@GTd~G?C1gP%K5o&B&m={;}s)TD`XW+#wfh{ zGfB@DpG2*D*-`xjlqVe(G)@ktn%!Y9b{-8-(nP}!4oPK6xN4baNexMD2%+X)-vohJ zPbugWade83uzO{OfYB^7iJYJD^i-v;*M3YTw{IswC;8;&!o=_L))p8bKh#pzMHV{;ABx(wH_JoV@rgMJ z!T~~&Tp6?2>{P}EX{=?J^D8$|?$EBXJ1d?IN&qaLMycs-+`58254?Pgy@WZXMVk7Im~xub{eW%}`1z~+6;?JMw_7!`i5j~75S*T{W)>dmtivY`Z#2(2R@HE+ z*snBq7+FrNii;@R%9JQL|AtjqX|66;a7gRTCxmjg!Ufyb0|>E$kT0pRzHjo)ETbB3 zAD3g-ct=vX^R?s%_GszO8B1tBprXc93lUO}t^GBfBoYGQ|AK%1Ifh*OMdkRe!)4gb zjPu0{*Nno~@?=An4>vv186%FH=4K}Y#S)B~0jDq|K=5yLN%u|Fe@LzL9G$oFcBS2g z$DA0x&#^lrk=$jamBAOH>(QHap-o)V^$Q;KdYcS`>TUyTtae`vu&tQeA8J!i=y(5boM zeCj|xuCo4pyxZACrX%8%vL0;%S zv9=U2Kf=z0F+c{B36s-<*%H~bF7ee(t2L#Ru>`U7v&0gFnBh$w0q2K{Z}Eh-e% zrSYnZqbt44{v>#Lg0*VkmkkC$B3BUCNQZhHS}5KZj@)iTZ6|?{hh?z}WtEM#Vphqt zp+9@r9IzTfYn#Enz@yRHfv;0|c616p`p@thSghrd<~W2Al~lHFg=$a8R|Y2P0$Xdn zmY;!15A>#HNJnM5I9~2q*F@oZbAiK1-;4%-u_@8ZSIsXQ|Jw+bV*->oE}_k$c=}J zM?gEShD9xf#Pp7!0A=)nkDGHrEiucsl@XWS4ca)YX-pFaPV$tyHYEuI9W+3avCp8u zD5|dWwGT<%PMA#AU4WD8w(dsMCE{_{(N!O6VFL+ z{5V@7DwD+0(Z1`fxcKE~M*7fPWVYpU=A+QUc1qG{mg zKa?q4uh}Ir{aS)N84%NH-u_eIF2Ov7$)?XlLwS+kY>Lf~eGGeIK zcy`VaHbXe>o3CD0!_aTtLBQFWbe3!p5rt|%!7J}f(${RW6Up03Ci3%?8VHd|R%w!A zCpPZEpqkU$jQ|bH-IU-WnNrfh`w@U^qS{oa{K-gdixNwc;_ycwZwLCf{o(=gn?i;X z-Q%B?dn&)qdh6Q?(m-Z2{sy;2KSyOA$styh@)V&+<6qcC3630hX5?%Dl3EP*1N@b& zO}=~7W61q^MdU{IQqMHn=9 z?2)+%`n~1x#d*L>R;E-u4YD4_mD^9D`+3)!w^!{7`25OZPFJ(M~>HghqM0JB0D-G`|xhrRGYeV9;@G+lR;CpKJzPD z%XXzGa zv4q_1J?bfIh%Py>Eu1K#vQRPOn}4^AW;Ix5hVym9M(wogL7n+-?jAEklaAF_KBP~*i5>#fQbzg71~*W`4S{Mc6}OQ^N#(q$3dva>X;AFCcbAyv!}_E3T0?uVTzULifWL}2gE1~BABsSWF(-P{UgPU44CoU$dXr5^q z*HhPr-e7xvSf>)t;`%B_#Ve%JZsiWw9mFA8&V-+WJe^)i{*5-5vD7APUV=-I(n$F@ zfiHCLT~@Sf{bqE}yQb6#Li-d6s5uUk0sB!ME(~$uJ$vd8^pkdiRVrf9)=^eyGitrJ z%C~FhRn&E=s{Q%8g!hNkTf@$2SZFIUIs^P&u0?uH{WtIS3k1JW{isxJDs0}DpZ+3` zG^k{O&%=z%Mg=IqQC!QAkM{oa`+>8O|CMiSx2wMyX;u1BgkXHl26aQ$c70A}+_bjF zXrKgnZ-;t0xW{%8w=O|^OwoX%#piqPd$rAY`H7Lc33cbCjr@>$pF%n1lNH3=d<&gC zqwmY>%|F`;>-r~r zDWEnh5o(M4vhB-~Vrq9Q2KaKel(=*%*0w62bdW0Ie>^2n!#@VC)1)p8tN@&uL>YY} zzg;Ld1qCv^Tq*|~oL#dh2E%b$*(w7(v5le8%4zcy%Y~(8{)o=mY`M?M*F9OR0mB2O zpLk|9->T>#E!`iIu+6s1%3!V>HW<*6UO#C|=%g4C9yZFspu;==i+m)m2UGJ=hrq$R z<&4%hZ}Xmr)bdks(-+l-1Np8d@&1<~xk*)6J$n9RQDp1q_9oxV$W`Ez{<1=94PYHi z%S+Al_5kr;)@94{zaQ79-eb8w3V})JpXoLrzMQE3os!4y^im?{BriJ=3XXtAb8L4U zKig{B4^nCMOk-_&f}8c3_IFxJTXL3hn@tv7lHi2IS#PG7&uE2~WY82GbXoqPAWTuw z1?zE--4=2;<$g`*v2W+rw9VRBuw&7rUCO9I`%*+{4VJxTgb^hIbW zDD*UmCd9)@_HU-1*Fu=>aQr^^J@Gm)ERiDBKeI~7VS&AKU@;>UmHzy^)_nU&D6+C1 zON}Th?|HwsTNOT}YL(dAwmPG>u`YEl>DJLrx;dMmgm$-95BlIo*-VUcyzIH8i$*nG z?1|${h)B#p^WUJ91)F~(S4dXkYx+XccLbM_vqqRXggzPmMHpjDx#5H~$Zgrg^* zbr!%GCLlLdhzxmuwfxza9{1|r86UQ+--OTSzIQkF4S4{G$#Lt{-9nvZr>WJ>27hKR zEvbxyj`rVZM(!8=)6HUzH1R8zInD}^rh8=8O^O!R6yk>v8twMs&`(jnO5j(-OCXbf zl)#o{LJ!55;+PYpyZ#*TZcf6UFW~rS_R8P89|iah9EC;0;^yz7)7Sz}Uw%{z#wa>$ zZz$IhST@$3jvEmXEXoLSQ*k$D^gFaAYNj>U<>R6INt_iNf2)pV{$6i7l~iKV^2&4b zX;B1u%m>Px=Sz#3BdWKEB^YGC)+r@&*rGt_Bc0FXXeu#}mE&9dm6RcY5}UUcE_U~o z(DAq^?RVBpc&POZb!+ga$bPzOcVDrj+P(dAX|q#(hvqfgx|4k=fLdZSn27ZH`~vlC z>!aDxxZLmn!iUxC48%8u>yKieDCKB#F)x3eHj&wxSmK~G%UAJ?Zi=0<_p@>_Q}h>N!sWL&TF zx3aVV>p7!Y@8!sx8?*5yOc-65ZmQw9s?>PM8uTzrXm;<+QazgbW#85t>|LmJ%r8E` ze-TYLtt2`9fOpiHx<)gkL%=`Ik@k1P)b8eioJ4QRyHto^7(w)M8%%Ae9u~F*ahn;e zg`4|#;)4+2L&n=Dzp%Hd->VEe`ve6UYo1#hUA8Z&#P}}G*i@%K6A)97yIzZL_LgI* z2|FjF)qBq7Uk!fuEvVeFESn4D(KbWg`i1!K03HP=3^RuOOeLO+T`FEh^VjWo z4@);DQ*)?bcSF9HF*`|r#-4Ht?J_x^TNXOMO)Wz^m)f6AzrQeIwhW06YChQ=KXWF& zs@Lx0dqtJj7DajrHf38?b+5=Qn})o#wP}UMIz|kPh`(>YOvYLk2KHN;83)~qu$CRP z{5b3jtT$mIY9Sm(HC1d%e|p?V?`Af}e6REVJR04irUC`dEA$I9N3!7~-Fj1uKqAxrq!AuBN>_ zMJI}7NBg?%5w3F)Nhu}j`IC_xExX7Ds2OB=zA4JM8CV%lVC5o?EaGc2G#T>8@^fJ4 zSE&!XeSwgIo|qdAtMD$XdxO9GKd2Yz*o!q8-@}>pZAi~i>y8%gGr}ZbXQjq%*>@XI z?8olX0)~B}f^{`yPb>&JLU*~pxEqNcZm+6|cMfzv886V^wQ~c#5NO&gkbMKkcb2X= zhv#{8I*%r47k9D)cSFWb@JT%EFPxa=U4JBH$BIRDY%KXCk5%FK;R-8SVR^PYGeoae zy@N&>!(V@2Y2T}MunbR^o{^7G=pM1xpqAy1D~VO1XfC;Db?(GCNKL@L1x*m}7}}Uf z3r!{P#0$jPFbClSVA?~A#@&4(@N7kM;^3cvjW`lvhS&NrQgwKn6cmb<^)r6V{{FeX z>p(A&0n0|3Ru3y4zaL%uUW2UhSn7o;BE z`v@4}H`Yw!{P+m$_PK=>;(1=5(mQj=DUBY&!tNrNwqZq{1)=H#lo+;!oDqR6j^Q>? z15QNPfrIDQ=j?dK{zK^qHXkLrp6mSha(-Ne=ZuMR_n{2p0U>9Bty(rcp;xmHSWtdK z`}CTvfK79zq1u{h)pU1nSK})m0}dOehB^EFFF2ag^REya56mh%EGyse92;>@jrYT; z=ZF={Vi8QtWll%qZ{jP_pu$k}FE4C;ox&~Er3sg`_OQ6U`Mw$ZD4pad2qPRXBE`p_%EZvOx_rJTs3D{ulvTqHk#%?5&I7;#9nKV7J-bJ?%}0^ zzmUzn|NP|pc+XL<@85|p$db&Giz(VoY_l#62&pR;QQ@_0Dn#@(dk__SLjC@762IQH z@vv6$_V^$Nbt%*{#RwUfy78z%K6R*)G`E(TxtR`lr4ZcomqEUM%a6?gku)7&!{#6L z)nhmF1NEC}P8}DH-bzr>F)&}vdrh;j74ecYqjz7TX`8^N!Q;QTJ6y?^yc|g=p3v9d za*A7hZJHFAu3BMj6ohjAmlBHoBe=FjGx!5)=K*6uY9&m&zS}?ZC*Xb{+OT@Ajk(#Z!O6oR4LfQzaou1TH1g`nA-zKXkuqt=+nwb#<9o6dj>1s}I42g2_|^`g+J_S- z6^OQT`mM9$_?vqPG71KlJt`iBY8aPl=y~_4lJl_ zeB_8_mksLpJR;rPf-Qt6cBrpw;XJ|o0~g)<6d0AarLRA^+Di729Pq0E9O5_adT19U zRXL&VACDO7pk+UE&cBa|WJFQ8In!o7@RpbmLHEXFP>jb7W5T+FUw`kftD(I-v(x1h zGA&dzh-zIx&uzz^V$3&rMd=v_zWr5|3cdV4`^Lwm7cakgV*0*2fF;&?-q%VX*P_L! z6Y=KPd*6gC)KiLEqs*|XgRJjzNe1ZBabFW0JhuL~;2P9c-HqG(1j788f;Y}Pt-(z= zc)scIxCVCdI)Ei-kloK(UOIhAF`YA)u>K?fd292>u_AX-i6JOqT{)@@$t49|XoQdT z*W$yQl^Epx3=~P<+0UKH5dN372F8#>X-y`G);a zL>Ram9P-Pr{Bs93gTSnE)Wj;HbJg?gLr9LN+mU+1)^69U1)Un^Tu>sk9jgT4~u~L^N zN*N3NF;uoR@(awh?oN#3fJt@(Jv^i!AdRSg(+Q!V$tO1D^9w~~Y7Z&za*A?66c5E+ zc4>4L_%b|caQh|KW`kRoI@`|?_6x9{EMWIfF}zz}C4Yxk!4t0*m%`XV%ZV4A6MsvM zBbg6FA+^reE4>?p)E?wWn>?Gxnx@Y|DnUSFM*KuCwybRr*MR?A-JL(;z| zN1&fd<9g`zP{1v|9o=mrvM6CMar<^;*Xu_+ndg)KXzave^kBD2cz?gH-3G8oBseKY zhfTCY6!P(RH2M^(@Ex%p4bSvH7Dk|Ssw$sYH8ZzAgy>6pX240#KF8VJfteh!Vgs=FP`MSf`52_E;)Z8y+RR$h9Hi?!Rm( zx?Q&kIG{ODkO8Yzvikr?saJO&r9I>GwodqJC-W}(C?Y8xe({<`3>h?ifI^3saC!IP zu(gjqPd|lASFeYD_%;AW;=xMC49*B;s$WN43ZL7~4cr$(`_mWNL`BGuI$khT>HP1G z;yV*)O(1`FkIhBuqrj1=h;x0FU~fkrdt}(?_KiUYgsn))60zd z1FCMVbDs<&@8H5K%4jlKn1Aa7Yi?yNJzMcCYkHrOoG-i%NWhebv@)D^cAu>%nb7I2 zAloV)TQ&*ZVTALw$EbJpG3z+T7V#Vhx~6=XAbP}j91iMd|GqkZH>EaFJe!H%mG-Xt zSowM4WWlVErc#@OJ*dBLJN^KYP_q=~%G%X)Y>$4=<1P^xrHoUbZEbTWy{~LzbFk+e z7PhopXSEm^bdQa9e)azAba-42V~*$_@!pzEM@ZJSH#bOU6cIDe!sG3Bx|}=cpSC(sty;x4{I5_;0|XQR000O8^O{;y>Mmg9 z7W zKZ&a#AfWmqARzI)Kzzc0YJdb!f6ts%q(l)aN6B}eCP*L=c@YGJnrMuBBjl$!n!_h8 zX9NTyn!o>^Nvpj3g@Ew8P+D9>&0YUs2{i*QzViKKshr&HJnBb6ei%BiEFcGw%Z9Ek zI$-lz4kk}?jyV1Y^e=hyfAs&+|408H z{eSfT(f>#PAN^lPJ3Qqmyd()J2PYd4?L??~B#Erm0@v;^$5KrVOQTLY_CHe=C8B2* zu{$RO2P@f)wmL^J7vBBp&Emqajjz3tjP*8JrRwF~lZw&yvoW7O{CVcPj4;Cd`iUus z*vyoGLLd!lr#F4vUi|yoq+>KQYgmqbLa)imI}k;k1x8mWn_S>}xMnpSQK3RpIByGQsYc-ZQy1nqwX&|8B+lq>=f|seE1`)rn zw`DxtfM~^E^idj@HRil&(5~;^8ey!r)4MrQrjyYH4YU9ezJ9UhGf$-LpGC-Y;U2g-5-a{ zP)s-p1vi1 zy(6@gD!QM(Pc|J>c>DK-#^Z`#vx&+6vX^~kM_~Eq!&f@cB9e=O;^N=ulN|%`ZbA>| zN1!ZTHV>!U3|=Z_IXqHvuGpp{pR1nkzU|}1)W)E(Vm#H?S@$SoNu{wWc4Tr9W@TWE zwiJI4tSicSwS65tTTjOUA`Aeevh(sit%D0wZHNX$R7lFu{6Q^*ucu8|+7w-jBOAc1 zB*c8)8xK#d8!<^SkkUx#k_ffg3KNO8TIy6TgEQ}+le|#toTDxhYC|Nh%J#&|p0KjI z;jxC7@#s$>&}0Z0yDlv9BzDP>@$!DH8MFe{R16w2CN4$&sz@NmdRds3kWI*sR+27! z>~0t3q@KFo-GY?|MdLYrmSfC!wdhRDdO!6Zr9vWGA}gk%fcpLOapb#8vxmpK*fGJO z6uw3}4vtd2=K01I{q>@BhHS6OYm%X*7Oeu%r$nTZo}+>& zFWv17X{K7u*@Xy;jQI03Gk$g^6>0^&V>jH$7BqlNXO0y&3E9=4waBER11=r4@xnzf z8a0ATM_t2xzP#GxVsV+J;w2JIC89%T$TF}0;58D$k^sG<=QA2F$sL*69VIe?NP^>IePpV^^UW(d?(a+#UqYF@+qDCOxxe%vqawTvzr5lX5wgkKglIk)oY_ks zparG6l=x%Y8vCXP@`jn@??vo-{xq1XZ}F0$L1 zcexX|B2VGJ*=bxk^4d(Sm@#NCGwL!sInl9)?e=eHTNfrqj^KYx?NTC4uNAEn*-9_L ztH_H-gq$K3lwX_`mZ$OKzd$ci zq2$`I&z9cCG$$;5fra8>HqR386=81%q$j)<;@0rUWrL3>9(Ck7Rh7kZ5ZW&$hVPS7g@0 zTY_d2A0x?Q=Qw(zPB{IDM471;IaPQC;~YiTBZ$beCo(v3*VyoRh9MHwgJ#uip_80g&*wMf*P=|Z>m z-V7@jaN3e}SQQHW4Vbiz;~n^i)6UR2yF5F=CgVUO|Aimrx<))^yxb&H@m_r3)QDnb z5cy;Yht4qJX)346Z4kp)OqAX1b9<-C7esH9J9>$nK7@YXp8Z6xz6U=>Kdj-dHJ+k6 z|AM$42nE>8B8!}o1<@%*VCn7XX_7}^l^$SxQ0XM7Y+%kvwl5NRH+x8OM%AfD9XS$f zh0xT6x%--^JaT>Mb1_wuXFlWksrP9yxR| zuI!EK1$4+rkHxQJupkup4gplxc|uBY4^eiDorMQeysF;4PzB?}=G0|c#7p~SIHXwe z3{&yo$<;0G@gW?X?c+RS58;p65El_@GzvIbjqO3vGNaM?{E$?TJ9iWT}oz{qDQ!UJlAlXt|YDHH8d@;2WW1wN+7p$V& z@n+b$lw%jqyFTXJ>=n^getAXQ+Z+{?C@Yfi$pssqkpN~Ucv+CHiv+z|Z)1;(R^9F` z`p(v`%^5|mq>@?#pDwirad18GbZCj}vo)PuB689&>|Ev8#AG9Mp%4)ayU5`cmc+IZ~Eou$7SS?t$mFJ4WZd=okjk5 ztfJ_??{qSoaCM!T6kW|oJF0lM3Zu1?8L)F#BWBpGVcJ-kObe`oRholE!k6XddJ8dB z-$c_w2k%(FL%WaS(yQIxG2&r@KGPLVj@;hb-)WIXK3|CLf@~;6bU{p|0&c!zC~Ifa z_pGSl@MK8@v#~yYDYtRFCUm~UB|6ZZ^rM?y1WC3~6Htlh1ZONZK}%*}%C`wQ+Yvok z=s^6T$kOqO{93*)I-u$_BMDsuC@+RjZ%NHn3X-+{DmZ7F2X5rQYsv z+>91U);ib9^)a{b5oUF1>b8DBCbnrlY~ZZWe$XlmkHf=<*61|qDe}M7Hx`Zv7iYJW zA4;N1?}v<-O`z7D{w(wDQ;ot*dn1V9<0dyK&TG?8yDP*sh53k^2++!u7%9%y(x{A0 zo8+gT&7*mE2et{8VXz5TO*y-p5yjqrZ>{7OvnI z4U$&A&-G5e$f~M9riU}^G?86+Z)*{O)!#zD_sEDOk?tGk*zBvzWe?Og zh#)h{|4^(QG#@qTH-&i4GUCaN?`{Ra zXhwM2wF{c$%Bhea-j&-tCMshz(tRS#`_Og&jM0EU5Ma8@Bq&lemr#J7(UTxzq{~ec zX!QCFkl?r=QNoe(19OOzMJbo%!<(LDLr$AKIRF#qn+~bemnl=0HGQ_o&q+?hW7)F8 zBGfTcMOZ&=^_PIzY$f9jhXBJwWn0gNs>^&V)q1N<69KY@;kiy*L3uGE`0;-2;wi*}90Ip5>c%UjUVyDj8oWTuXmBv4|R*{2?( z$M#n4Hm{UGV;Mh6M+lkcZ_{oV4lOq*s}l9e?gi+t=~fCjKA>S=CLfIqu0#-Hr4|0p zum0f}q%Mnm(qUm`K{`GXbb4hFc{J9xrC>v&N=^Azyo$6a@dr#ciLuiAE%4#2#{9|6 z+)BSzbEHuhNk_Gaa6={XL(sU4FTJQ2eE`EGAIRKdni8kq_pCgqO!qaUYJ}|`2ZS#q zOT?a{`ugd-sL@QG6*8-yJr%ZH$f=`rp0{Hsxfo{8bnc@gO+-Lq86pwm-2vqJz~N@Xx84&YR4ym8zS^2&k5DgSU#=#2OWc4CicD2ai%R+8~vu{Pf3EKda6zv-t{% zc)$2y=lmu}H!qI6ANRFWh1lW+eS*{{W&{X7Ou{vg*y@;sXR+le9>}bm1-G+e^D?Ie zAmyy@Pstw5)?8+~0h_MZX3Ny|*n9ce*{Rq!*TB{*E*dh$3RFE98MFtuX zA3QZd`{#l%OeUd=dm^lT4mod&bl(6`jE&oX;-8D+^f(GfYQK{|ObPLo!&$SnPeLLH zt^9PjFeyg|`x;Lglx}(x-eqM3oHx-~y1nvMXwx*4eQ0wKCN{oh%Qiz2ISdwiz|IXk z;wISht&c$ADfHczqYPllG?uTkSJ=m{UXJfM)Jqj_i)Qu1?C|X4GjjWs@PkTDPOA1W zm5gqKvv18b`aUiHg)ar88BCpVpV4#|{h`S)gyZAvF46t1fpP5XS#oniAU&ly?rSt6 z)GRa0QE{h}=+$9{$ar?RkNM}(tDJ+Ygr@gVLg}51Txp#xbcq|ObfOB@JF7KRKNb!g zSc{{w$_C2-G{ri3OSrG6p#_94tl`!Rc}C9%w~*Kv??x~XLj6luwre9qP|<|FYN6mL zaz~HWqgl-pr&O2)ZZ?=ofJMQSj^9b#G-($I7rF{>X7;EmT=u2^DT8{YoqL?tZ4z~z zfirKx=8k@} zS+sFUp1-_cq~~75Wsw~t4~Qz!ybu}rjG@!AG$l5EPV4`YyY&)Ta+QaGE^AVj9soJs zTFN;mGAeo<75iFm54+LCxmL<)WJ1%RPbSuKYVZ_Y3nqF%J!+9y^F5|mCv5bUY%IkS z3k8)089LQ2L$tc3M8}_3b@!=@6aQw@(8BFtdM3IEO6sMOk%~zZf0WjS+(Qig@%Zr* zpW`mKmTPpg&1P7CG*e5B<6xfHd*RkFtw87Z#Zh9~s-=6-_YCp7W5L6OQj{9Gh@VUK zu<^JE;<%P<@@x0~3hHd{IH*-(W6t+NS8EkH?{`E5q0&@cU+7h9lbB+6feClQC*yz# zx4&~TOeffWX7{K*U|Eu`(Ij_aGF;K=qH3VSUNs#@k1k6LQzD%*2a=q3N1{H{Ig=&c z$FP*7yD+!r*w3X;_VCDbF5}R}lI?=R)8+%Ti;`I%JKK{7I`SolhO2iX_Fha2pq8*d zpVZSWX=YqNq*k6r9_;lp5-LJP+V-axKC8QK zpGwx}etsc7aC&8vD8@FrcCE`%+djrL7xhA_L>|=Sb0CyXMSpn>$w^HUf^#VMXTBa) z#E4H74ptGsmW+wm*Bib(j~+q4-mkDa`>If>(1~Q=hAk7Il<~&G687$- z3G&;k8eo+o!U!xP+0NqpbmeCH5aHBOWDJ(VGT95Y%bow`3$&fp{0gvxfY_{-_(*+; zBxm`Jluo`i&4$tiAyq`eXb_9&<{rRx85(9;WxyFF12Lm{M6B}s5hGpEP+MY%j1@a9 zfSPVvGq|*9o?Vr{a;u(ov`v`8Or|97gPB$iU_k3FN=K5ddcv8+SJkqpxSnd!TdXZU z=c%dbUdAGevD8PbY1L6(OnqQ^OV^C(l0csu{v*Nc%iufOAi5h& znjM)B%)&~2V0>?mYvO_`7}rD_Hca~!Q6Y1&yZNM3&$o||^d&Y3dl8ZxPDwWG<b>6Sm5=PF|625s~ZO`y_O)@ozEZf|Ml>_K50`nrIM@I3CWyzX&ZMg?4HqO8gA7 z#Uy2>W$h%~!^Kr$o4p?hO3?CW*INSK%kaL<4wEw*WPzDyzazCOi&EzU~VC{ul=}mR$Pn@v)AFgfJraJb^#bB z(yS|MV)9!~8nt`BKM1wvIL8g+BT-9@BZq5${MOSVEu6hOEV;RPk)1E zkV+kaHyd;z~c0K+?%KbWYz^JKdSYJllCs zfPTvBH|%@EC##M6x8I;$nM>(4z9Pf-i5G3fMZyUNnc8;i=NSD9d8qTjbLo~Rh8 zvph`H`qEp^OjNxrBbi!acdpV#!%-2zBrIFQDsO;Av*c^}82(BXi{qM3>+}9*wwOGI zX2jqJuRe@x3Sf!=1|ElvKC`>fy4DD!#7b z3BZP@SUE=*XtHJ6r}_>7f#%(ve^j{^N0Uk4yxXGk)#IJ@!#bt9*QMN3Q{rcWs&P5c zrLTwd<8)M5n6yGvl|j2oIq<1{P_i|`Jwpm8n5J+Gog4BvC&i`{C`+8O4|zV(6|1Wa z&w47Lx1MNnfnibWjV!5p*A%t#Jv)ls=keFS1hCkaKKE8BAoXw^Tiw)=?zo zD0*Cv)@a{K`&uM#f`_+Z`U#3^Efj94_NtwYNbjj68*wkSCM%V|rB_NU`$Z+pOfDzdt1? zR6egIKMdXBd8YAeL(n)n8UIo48N!?S0Mwj^7G&h0yDQ>@6@$;`B_xp*`T}isOW$BF zOD8AVC06MP!KPPVh!Gbx@{!HkYk^TiMiy*xE1HL5uAEA|hAe>1=4u z@huNY@pe6XmWl4iI}hFn2JOzNn)R3Yc`F)`8&Ng}v#XY(9RIY&|&qo%Crtx#onm zrz4sEJNOCerud;eR6J(DKgJYrjZPG{?iPkArv7d9|>VT^(4l!W|11gG3kMm z0N*iDjl-^;o8}NlLRx>zNX;aGsBGV8uMvj1Q){R>fl+Vn#0hLue+?7NFx1p2ta}MAIKr;GptYhtbFT}+Yx|Bu4Ex!g92gT=B3s1zm}D{#_bdqp&s8X ze1J-yG2W%-yM+p>5^xT3RT(gaFz{>+1Grp)3gsMkVJ5QlbgB7k^@&6oN=}oMhZjg;!i-;PqpBiePC#cwFMy>v9-q+) z;TRAW9{S{xdyr;a(yEDOK|JBfgraJ=@)mQ4WP_2ak$gX&W@%Q(cLJk{>eO(aWmtmIY=%79X5LijWkXBH@apQznGs4-N;hczn znFL|sJfi2&SA|j>m}zvAm3>no8HF+;Ybj3F?lIeS*hQ&NQNJaM3~|@(Xi(RoCeIs0 z+ZSP}nvnX^dXTU|qs$xV26Nd+<|d0T+f%8skg9eDk)~`Kv4Gi33xSQM?gzWf7l8) z4YR@R-PwsD6<21v)8Ht1`$SgK}N3CS&J#b}WGnnwE>()I{CVQ;u`{wN+rb-q} z&M)n)n6OKyamGT6>C(3mZL%#q>Og&5j|)b8-$P6ZtNdQ=S3@7nG)NgBLxxZ)ks;+o z8*0V_?z+yhPG2BtLI>WIywcz}M2&ZyGNPif(nRwz za4wy*Sz=i1^pc`M34kfNNT=Ge=9YoJtLFkA(*rAUreyNLQUpLE!zM>eUHG|E`;-u* zZ6YRd?xJ#*%9uO$mnJJ=&o%mUp>Q4eq08B_TUfj;@m&$jI|_>&N|d(_tQQ5QD@X>; zt4+?J%ojaCm$b{}88&ahR397KRN%m*(z;W)uNkwAm8@pue9Gkb>8z6ZxF^{(BxNa_ zZu9HZ9=FO{M)J{DrHpKa(Gt#2N)X+v6)5iUlZ%^EZDtnEEw^`kQmXuE^X0FqxcfLB&uEI5x0|GJG$moJtjt8YJ`+SW8Vo2;VrBGO7-X1B9C-_B2%?%L6i zK=^eyZB$mtFZyETgE)yu6Z|XYr2}Cf3&$0|%;QU5zuoy!7@R91KqTaz{tBI?xmES! zf+{a6JYG1m`POS*DSu(GDetm|LaTtA>Nb$}BQ1oQb~F+HuY&_63D3vBtSGZ)W_^i% z?uYcz^nT8>!bh2tbX0{}SEi~~83#016Q-FownPl*wu%?o9nzeITqf$A_Kt5-Au*r7 z&aDd+#6HxQHS%H*(c65-c3FDBw89G;0|Iy{57p=`935I7((WYha{sd%Dq8Mcb4=(fsLCs>^z8`$SGSp`5tyxIBOok2D>|bofKp2e-XVq96osv{d{{#<41XpX ze>>4vdAILxBP#Wh*I~&@t>1rEVg!_Qy?&^Wzn*2VuR(@z!oq;&F>pByK;<7zNlZQcb zfvS|c{1(8N=|nC@D%xF7y%YgWGL{=jE_AJ*4%7V_((0x4ki?LmJQWt4CA(y3j^dIw zmxih##86al&u4G5udvZ+FWL_ey9CuVBYchUhT{2AP2MU@0b4q-4!>D=rB2kZehL$3 zABQK_CgV?U!7)sm|LD|Uw#s2Z{*~!5LCo$=h$H=|ge$rui|1*w&HfjMTLfKTKR-YExU>SbMk9?qd(YFBEtD^ePEWlfv50ceTsMaS+PBHc$;~(aI-lINBH?a-`JU%oJ@=QuS`y$?q4aMcn}{qw+1%ipJ|4)oLqufSwH~d z$!ki=sz_0>ef@S=Hl~u7N{bO)2A0wkIHX={uvL5kFTa;9kxarLo zl0T=b-i(tZl8cB-mTiQVIc*NEc;Eai!rG_wRGVvPYHC_rg0p`PVlzu5rwbDS4LrlY z{U;CoW zHM@r07dbtRjAWD3KHBX=ZH~=^hQJLTD)mv;2;D~NmxucxOL~vgAYRlZb~F}lzttz+ z2sc3uI}mUES#q=e9-FLZDxWwL6EmJSrA5))kENre^k!L}LM*v5S>Ll%wOGNa;GAh; z+bV@Bgc?da1i(BT9Ui_n8zoNXf>3&|tOG`B1ay2K*UNK>buVNB;aLFsGynj=Ww)rQ zrl!{HYMV;1y4n$FOxb9+^pT!k`aNlwXoKBST1EyrzUsZhj{4@tMnO@L_6XgqO^Nyf zNA}|iFnR{ynL3_P3?S2a)Dg&1!d%nW(`Y$IZP&P_{=y63G`W=p$_i)A_D* zJb8H9&Dl0Mer8>{K_&jZJcCAMi|5521On;q7I&0RT(nHcCuB= zC61ZjHegfQ46W^dH>b@(=P>~(Vse@fPlne=$<5DtonCMGq%7Ud@}JoY?lVl#q^CAM zv9Y$E|LDRIVv>>>OHhBS%^p%`lWj&!UK1^FsX5<(6@vYm|LUFvFp}D;Ow2`+GB0tRN2U zdMouOI=Uy`WC@ku!68~492`)QKoq}+3yme1i`g^+7n#*+xpg`Dy}(;%koVS#h(YDB zUUpUF{!0Cqj1Jn`$Y?tHVSzRJ;jkJDxP3h|%kS~V%tSZPi>``Zs2LKh(`YqWrY_4H z9o;reh-$L0fsN;%)lAi3HkMVdGFG;-ckteJOh({$M&;7j&g>y%6Fi;e_A?a_Z)NW) z*E}!b)D1f7ya8qB>LNUz{oIiKs1Ko$G#pB*=U#U2BL&sr+-f)4d7N#5`XS0t=k3v! zmX@zyk=Qe0V{44Mg5hxZ*^`OaO)B6MUtJz9%#^8HA1}9BT3W7&{;YotjG-&e$q`PV zKD{1lS`EOcbDFQW-mWHZ4?50vHj36ci@u-um0%vJty{h7=f-X6*O=j|8+mJV+75Fe zxf}`cJ6MK)v+F{U=G^!ide3#(Qt4Kub?w@$Iu>QeXdgn{tJro|yJDsh{^cPAM*#5i zMo(8*5x{*di9=KDAezEmzLdO*<+jYe6H2&Dv4PqjXT=Y+Aclvat@Ro zrg%uitnJR9^+bp+Ch8Q-#hN!zv7e&miRvCOF(t2)_#K6nBMVsZw}97WC{zdHWdk`) z=8u2jT6r}K9J8lhSFqP;Qnot0b&0pC9~7+SE$z5*0{lJn+TGvoSM?PlpC7SOK5To< zWwO|+OT1Sz6nZ-4l*|&mjm#|hQ=^k;+|T~{vAMCT(nY43fir!u0AY>2*hX7;g}3gC zv-Ni_Wi@C9@gp_07&eOYA;(scN}7K0VR44R`;V=;(zw_YPJQmW1_OrrRCSDve$$6XP|$ zOM~+KeYs-*{!s1uQ>Nt zoIsmf6&vnsAzXg#J{@4EZrV~ws3gU)VkxC$x~`(pa+?q>=)N_F?kZGHrH5v!bQ&U+ z2}OaKQ0?+|*kAB%H|s7-E@hYd&YJ-SzC4B1{=+8gq&qkxBv{D(cURktetv|uySb#y;I?2gb%1QO3y2bMx!+2$Ij|>J02c` z&*_1QllHawSeEa4q?<(-r+wS@FIxN1tBGj-`|rGi(%dG!%}+`+StJ?Fv#(L9OW$Bs zD3jQI`SQ7Z+6UeXxN1+q!`; zbOq_X3rLq<63AaEk=_X{iS!ymAP`7MvX9-J-PxJl51UWPo6IZs-gC~cocqonFD_jN zaeikqO}Xyn91#)Wvo`2FU1fH-HPzGB;OmUrW#&F7?K+*pYrhMmx9#~B>|mx;(~J96 z^cm4t5g>2}hnE99o>M379^?5^$tL@$Z!d~N2)lEc)=cJjxn}42sas|C?d;a$oi1yU zLEAE%$_-d4N!q^$gCh0x;GI}O`m^?v642`R(XZ42yIN-<%}4X()#7VmJ6G-}Bssq* z``&*zRXNa=zhF{xJKz(C+xB#)a>oqXhP}uK@ zkYJ<~mL%J5<$D03&!+W!aub;K`D|eyfztI_mNACSqk;He6qRVzk@fTMndQKDJX<>7izPrNgsU z{8kjAFLC1-NP8p77MG1ZP|!A`$~%jC)whaoULVOZKDVJB#~KrbVG%XX30lh}9bsG- zTI;SdR;UT#pdxu)E$;IIr7kfHejz)Ei34irX@utd)KxAT4480`y)-uzhH@^hQ0MmR z#Mh`>>&GhyY?Auc{o4GrMlKVYT%K<~ZFc-K!o+&I*ZGbG0J2o%19o?Cfws1`toKas zG(US4JLuxxHL73^nw09)@RO@ahIpcz4_)=ZM1DE0!JjdX0h|veIPIJ~nr()Up*f$L zWub!b$G97>Jt^L*-qjBD^N0FRWqiAmIzvv-I;HK)qO!1H7cJY-0c+QZ-CkK^F!^b+ z$H?SEr1RBwm#GRA3^o;+TF}t5M~ejq>Y^)~#tKjt+}w?H@th!)1^-uHe$8c-6CQN- zf1gd~jvk{ekS27HU^*ith!7DnwO)csAi}}6?usir<}+ee^E?3y6S;i zXpQ?^V>u8t0ALs#8PV6#Q7G2UmY+r+3$verQ)T&`YmaIDkba0h9@^O0Scjo3qvy}B zKOj~)BWjS&Ww`>HcbAl)(@je~83OLjYY)PY;`({1wI1^tyQk+Z;@vE*n;=NXyJy78 z61w-3E|RA4wi2r5njCHE$Lmcr_#`b^aC<}F5$1Eh*@fVhUx`#=df|z4s)!N(+(uQ^ zJ)Fl@de`eYSs0~}r>pvbjA2i2cTacoGfRsDY~A6uZ0E-G2-_(k@&n1=yrIdEhdDnQz<|jOTX||+?BTtzN^}{d z^ZsQXO@l{UAfktSas2564|3;Gr;izKAx%ANLg4VS78mevPnV1s7GS2O;CJ8f=qGV=_>oWoYnE6Yp-Cj4QFB1H+jQ2#FtvWCB{E_4glj23}rXacpPmvfba~6q(zS6NWk51ceL2 z{VJ@$t4Y_&^2m#9-ijF?vO7VfsmIp(UWD$xrYt`QX~Jv-6o}hvk`zwiq=T<=qB7<% zKa^ZyO09ls(}iN@!M3Tvsjf1vVY9!)4y<*nX7^L*cBjTUwW*{8B=}js4q7ZyNxjXA z798d@za-s|@8;i^ku^kr->EX!2*9awuSK0`%t56_G{Gm12_QwMN9TR0i#7TbsVef} zNFQUWFb%nXQZ{?CS~hHvxJ?S!@i9*R0QVQ8xUNg6lr znO|=nu$e*>^FDt3crcRAt%>a*p#FS!zK74tKhBMUFBl&m_urXeWM{9;-NfN=lv99t zasKty+b}tBXc3?Fn}Z}3Wn)^RL?$_Q{IV9777_bSX*1780>e~%1YS81O%-GQ)-yn! zlTIZwRzIB&@qu{ggCw7@HxcG?#1yVM-<6Q0}&WYT@OUQtR7h zQ1}h9bwaC#BX`vlv9Obk(zs8^rDdXvRa`HX>4cta)^-xiAC-J{jHFa*eR#QYb-L(9 z$G|%JUX-Evb-9Iabt=Sr4wD8Ccyt;nW(a7o1d3hO!xEr=n7217)3Uw3PW0G-JvY(C z`Kgat^SG3>8E%

    BgzKdfB-Dc|&qK8viFv<52u{$6aplsSR@&Yoo@fcQ?HBSqF3n zzk>t|xQ9!XtCME7%7R~-f5k|+yg(ZTx|#f-3}q_Fl;DF+9OwnK*A;*ue>HOb?X>NX zn)%I2-2|PcRj=c7PI7R11@2&H$3WfsVlgKgVzz|JLZc1&ae~PFv=&V}b;gX|U?e)h zOArWbcrRafTk?K0!qWRgTOGE0AoyCIRYPYR?4_evft{7M&U&DyThaI*=0W;1KbuPq``~>MwU1)YLQK0@_^V3;|<{i}J+*z-C70Z?#T`rj~ zouHqnz4J;*?8U$x$G>O{+=(7ME2p#dCG!{$0JJc3-{)Xv=0&x*&E8$d)y+Of6`dXj zmMmgsG($R$1`j8!J24Hy0i@!QN0y;Ezj&p#O;gPbpKlDQY>4y|R-{A)(;1G<0OMefQhuCE^WSP02^Y6wr!X+NM$#*YW;WN7hy0 zlG$&m!L#buYTE+4FHyH=D6oaR96&9~?0QFL2S02=9*V+luj(q6^hjeZ1F7X zZgWQ}c^zNMc8aFZtNdDsch8oUDLHapUpTG^^t*XnH)93_yW8Y$2n_+c|)cz_lwyO$3nJHxnYK;xWJG1JD_8 zFz5&}xH6cY5J~x+Xy%@JDt~8XeH{T%#jCF!9D3n!SF6|2FT`A`q-|=<8XN$MkcBkR z(~CEbKMstJi)#=O1n9<)hq2*C+sZJS6&#rN@UwWE&efcG*O}Y63V=-L>hDe#jl3UM zMZGhamCOo~Xi0m##q$Ez&J@hr1D4#2C~HUa3eFI1Fz3XG(DkRy)I&tuLAI|ZPLGHt6)1C`fR)NL?3D4f-0Zn9yquG>ZN)EMANE`$NxFZTVxG5RsphU01Hk%P9PGSdUeA(vbsd%3!tK z%TiG9q7|K^Vgr%D&9>{>=&M^(W{}+79SFh)=^WLF#jLB`Z7`2Mo;gz$wI89pD$+tJ zIDeD$s1HvvM_|}R@fwf{*}%ChAZN$A-YFzmZ(UZA`cu3H6PLyT&$__dQkw9zZ9fa_ zH0DS(bf3{S4nC@B44a=ga!0m%9;_*C%j{Zpb{H%I8a0w}pIluyQMRB!9#Ye{s`u}$Y#9t(CEi-DCHlJ6-jcu{`wpt}x-g`h zi7m)A22kfyC`|iy!f~997D7R&~fdcFoaTq%d$X_dR=Cax}&W2 zG%RbX+^|ynQIvI;h4sU|?F0?uO0co_)Wow6(F^v6-S$+zHNm5NCRL-Db;o2tqXS>c zRuU^E+SLNo;_~Iob58FPWQ4`V^+-c^m9ptqg$MPYLsr8Uhl2Dw_sPX0U^#r><_E4Y z>U5ze@?gd=QM@!((Z%|Fr6gS(v}U2JX6Hjq4zGGd|5kLCr&3yBhhpl&dX5nyHRbS6 zYHtE@OV^!M)b?|C`(NhfHeX&4-x1I z()Of+WnRusmxX^7vD1s~VAjcpCg-5lB#8dG{KEI!4E?3gU{!7QH4$rDOs}UV*2CH z;kXhLYD)E3uF#^N>h<-I&$p#-OS_~bC5?B6g<#UVOLenLo6P(nND=|7udmNW3r$07 zhlf*y%W}N8%FB$)4SEdYg}OoUze-nSg+=yQcfv_Y6bY+ws{Q@BHtbBq#4s7tawqq0 zgd66Y@JSluTE_yhK5A_^to(SJ5nVk)>KiJC!NP1wxAnjxN9$AC_)tnaGMm702 z$Ig`##u90A91XE*^YGH@t)m_`kYxy_$^40FNWkz(d`3Cbd7^r>zLDHl=K8@M{CV(j zI4>?GE=dn-LD;cS>T?Vwz-pzgapKkUW#PF&`j)x}*r7|YJO2pRz9cl*udUtkCbT+} zXBR>m(DdvKO4>gVQI1UEPxk0Mc@g&AJa@}6E=wBMA4DO8| z_Vr$LO-=M|YSNZqK^UIAnGwT8qC$_zvbnQjq|6YHhs$FYbN*0DME{UD@_TS6P~6&C zRQLsCw}O|m^?p_xy9f$NP~TEm#ubkio}+42~m2PNmd3yS&)^i;!4> z`wGi#V(Dm{U(oQ5H(V}Vd0~@CU11T1U0Ul-6m^vMbe-KCb+3!XV~t+30e=T+xLBp9G@0YDhDO!WP(FSH=I^9YKNNrsX{@ zAn@i~VvP=JQ&iO7v}WanCdl$mq~@|6@4tS{vKr-d4wLRDy!2{RvWWb$26%sHB9JyL-!@Q9MXv!u zl5=)cZ3^~RvQ-;emVc+onB0dV&aek_=NdUezFffSc zR4@j}XoXQ_tj>>E7SSh{&(kvG$Qzy5CHyjO0pxyZ*WR8UXP=AGo+xOsW&#Bu0@dbC z?EnW+cWAn+);|`G`Rnttb2{J*O62x05uC^zCHS-uyI(IxWh#!KJ`(9;F*vpl-5%i1 zV@rSDhS&@8fwwRUvqy&AwZ?3^&h%c~Z8D z6Jw0@Ra!=7qKijP)U_WXF#bKQRuSr6OJtQ1McfI*bNB>boUcM%=`iW_7-XOvL<&qT z%RPE zzV_JkKx8ZdeHSy|LdBek@&MtzDAw)pxDA?jp@}a3_EeIKajhjp!#g)i*w59Z+@#DL zX|7HCquk62h|Pz`2l@2|+9DELoJ&->e?8RY&sm z;DzS|rs^ZUSo{{lw@U8+0Yd$}Yf>}8IvO;qd1b!=Vj19BtB~)-VsGh1h~unjmsx`ILtsyu4b-?3^HNEcEgk;G)XUQbclcC~-h25YIbo9xAK=V|owQ^`Vct&G5v8c+9w)?Hh!j9+u z&NVI9;$d}v&g*g(<&u(;jf>OO79<6;PV&(_Is~iaWeD%?-kEQacnz`h8haSH_d5U` z))GSSXqm6h-Csf)>K$&Wg@?SHI2=}iWm2Zoxpj|TyHkmkSdo_e(34f3_IP^XdNJNp z$r@d36gWB#NZtG0A+=F3s=ehGk0o^(xz}Q_(d1?oJ3`{U2_3#zEycm=l@woe_f z2lO_XJKm<86LbhTaq6Cv=!S40VyaZtLakX>)`6rWC&gQAO}d&)GKzQU9!rxPm2lEpmmNS@1!n8u28U z;Mg9wCN6Hp>>9HvEvzls9L}R^e3v-N7yhuf#_26zp=$k(LQy5+FO-!Kr^ePUWpBap!ii z68xUSjS8d8_xZ0nrO-4^FBi&qB$+rhHFKp44j83?o^L+zw3Oa<`{Ar_wy5mtJZ3Od zX9ov7q~=M-ll@gQGc)fj?P2CmtZ$DhE!+0X%kt*_)KpA#A$vz_d0*nrre|SZj*pAW zrL0ZDd!a1&RX+%GPvMO}E1u~mBKWy{mX|E+ytu0A7;4LcZC~)4EG}9Fk;bohDy>)C z`jCem6T!>fY0jR@ef!8l7$*)76XxkzVd>>F@sEkU0JTj@w)1|B_xo+KJn4UEK{&x= z2XvfhT19L|n2}hALM!cCXhlnI1eDv9sAZ!%G;0{K-j@7Vs#52ChH34*rH)!-B^wyX zhg~81x#44E@A~r>Bdk4Nc)Yv)cK6LXn!_=GSGWJ1aZh%5Er5#rn#v4|)}h7E%_y`;9jn^E%ah zP47Y&{sOqA)9-uUJ0HC}Pa9ioo&!?|*mVOG@@GwVykkWja^?MutIhevd2J1KZeUx` z;ShiSQ=n`ft@^@3)L#?^tgSax<`B}1@Im;EF`so2D?x=DvuVQnfiSL+O*Z`ie-?W% z?wR9#jzDkfgXY62Dp3tO;N?p1DiCLa5lMA1(J}y~Hr|kv3$>|EAqV05qXkji2mKcv zn_z`u*?pjD6x7oqQMAne&;?CBS*}}nyg7T3PMPR1G!=UAFgCgXuUK3F>!o+j0z)0Lq0NaDwKZxI_bQy|Lezx&CN_Lqe?+zy&5AW{;-i! zcTw=+jR-_$5^I1zQy6QN%-pjkw4<2nJyaKfcXy%zA0GEk{L*_?A*LQ$@@84SINZ;z z-fg?)^IYEtsSG?zfChBtygvr11RhPazy||Eo)v3+4#scr zaDnFRak{I0=_yS+g zZpR4se;PotENc;Z4G-IwyXaNv7!_S($m=*WSa?_z1E+lXZCQ^{z_zWnf*9*HxSvA; z)@w`K&PwMRljH^r&laq^euiOJFpi ziLsI9rz9w)TDP@S0_@(%;YFfCvo>T#1Y>6~jBk01It*CcnhHwKMJ-RL*?B%}(X47v ziH!F1sLE;v&@e}s7!rj5LKL{zqvO7XC`=B5XoRc8F}i_M3?aMP1^b7mtUK=s|*C2%pVUp zRSlhcHHB>me<+kK>0^AF)w!~M9yW|R>2hR;ofZ^)|7HRqb_F*vVJ}8R+*SV?_xJbV ztk>;_TxzKFuNndZZjShAG`o~7uPg$4qS#n=Hb)S zE}rV{J$RW!HO@=r{%GK^1xRV$3fkz#5D~&DBy_#fdP60tr(7i7#(f;s0YrB2bBGBL ziQd!Yb_5gpL|ug;*Xb(ZnrvWZ%-em-pCbAhH}7@<`tHHO0cL=)A|MnJ9M$qcBcEKj z?tyG~7G_X?6R~r$5sYJ!Ca^jL$3kse;lRGNy{4~i`t|O1nN{nRqgwq_ zd;OBwr}P-l+Zz78EFS07rVIt~03@@_oMkne9~=7D%_3G^(D5s>zNqYa(7vm2HEA>F ze2b-TVTLa*h!e!^Ois^#rCk{uPWj?xI_AjEL)S=`*N)W9meJMH8jBp+@<;CGDj>Zs zYxN1^a52&qeD=G@M)#?r_osjDRKEN0lQNx}Y!+)kUitW?#v4&?{@nmPAneQ*`|a#X zpj9~7*bqSK2Le>=#Yn~APb=6BcWNuD$74@5x)oWm`*4s&#I5ZgP;5W4N{6 z=ZQaHmK%l_{w~u#ze~?9<9%zMgARQE-hSX&EV6dsamevLSC;EPk3fY z^?P43YL7J;tJ7>Dcn~PbUU+ifkiPa7sjtf_lumSaV^##2lx(aW+!k?v0*+POg%MhN(4}? zx5WcKDO=zJ{myOt{Q0vB$ma%towW&AFDEA_-dXN6?baQ^fcyXM=4jDiR+B3ND8&&# zT9?N{56)8i%Uo&tX}n@BE=nICOai6D4mVa)UsiAdn9jP-s3PVGj<^?ta?H23So1Fs zlJF#olFMN7fkYkIASLZ+u@VD=>@AGr)!@Z^D^jUpMU}nJBe%~0I_Br&i;i-qY72*% z2=F=Ora1{8Efg_$;f$~l-o4d6iEoCY-4*0x$2oU9<&MKm{czJFU*wx3mg0&BTaqML zGP~6q%>zB{?=vYpd@m{fCd!H4E{NLFj@je)3I+=E>iOr{R&c$6SLzizeRvkKo*I*t zx1+jzch%V*cpxR4kYB?9ONO;^@J5o36%g$%2Rsi4LEI94~Lb)3r}3 zCSP3_oikq-dXk9gEuQ#;EvwHi0535rsSB*ly{DmGl))#JdcN)AMS>;DeTlQB%934S zEmuh@Ji24|bRZI+1in~qHdK#I5xVu@1fdD1nn1hXrWHkeBL7(W^XkzfRwrBLFVf`( z4b~U|_ap3V{ucwW`}}e;$~D2M{j;>qyU2EpH6c;$Wk=9W`KpbE&r>2^Dw6s|?s0=vT^YpA7IGMJ#}3nrfOiAU)_@QlU zThz(f_}tXA6)=#cU8heE5g;J&%x!;lsn>r0<%0#YTB+f2%4g$1KFNkdif3o#> zfJ3278mi4AUEi6T^T{jEA%S&tS(9ip!}_J8^g;ujG)AY&l8@OQ<9k_k*8(mxtu|}R zwgWzgBHrmH`iBuIEKS1w;r-raJ+w7HX(U6VW0|Q^NX29=6?7c0s#nPLHr`7#OqH$I zxUauI_VZ_!5lvxXVe491Wo2bKxi%mR9EGW7TLzP0RsC&isL|C{pmD7|WWK$6KEMy- zU;b<&XnED9>2^-uM!(y9y)h=MFDNKNd;U*6G&dxkQzDE5+MkaGMiVdq|Rh2vDW9C4#T796(LTi)PEMM9TV z^i)Lg1irK8^8Md{6Tl&*!6s-Wx#_?^efq{L=b-oEY6fM}<3?o};rCf}>hvY_SeFxaJN1P7($z|d>9102 zZpwMD@Fv{s3^cFKDlFePgL)9*vDe3=lmytG+NZgO-FZ7~`|=MhR2MkVU@kbWp1C4d zgh^0Y>h;E+W2H%LiGys&W=T3%__2)~(_n7E%}%SicHQ)^U%vv?09Z)jh5NDiKeJXC|VWG9B3 zLgB4+%a*s6-VLnAi|zLYS>XWbuKdt9bpw3j3#?n<`qQ@sLKL|sTCj1kv5jTAi73E0 z5=7UqT#OYoy8k6NS8Q!R-LlQwzK(Ie+1;X}eUW`ZhF!$=pS}2hD$`(|w4QUqaY+)Z zPKftQKvtqAN>m8P`>nu;JTk@l=trI(YzKK->5ViN!gOrs_^T}+As#%0KsEC(My+SH z?r`g=7?(xvZ%QqbJe9K!rv#S;_ywMHT=Z@0@X&l-2QwC*f%tviZ`tnFKGb)eZ~Z($ z3H`}()~#PB(qP_y=Hg;&6XIMfjZOQOP*={VZ2I6irwEAxw^#Akwx#@nj#oAES>Z9d zI5V*y==B2Dqbb^gi)QAk*XKBdWd5pqwf;t`dOOc-zQ;4MngpZvBEvsM2dJmy3H`F3 z3Y)>xs>hf6nij-s5&YSTY(a`j!PY^2{9%n_syx7+t-P?KSs>dB=w_V)(ow32QH4dz zZnD0zaM{VntEzMjXvuV+Rb6Sbet&6xZX+rBA&vV;5Y60`b58%S$n+h1{R^?*Dnq?-!LvrlzJssB4_^Uj@!iA|wGYnAF@{tFxx1VWa|Zs9%=MS#?zvg52#0 zAxs1E<Ht!mnTXUecKJc`Ix^2@O@$mtW-=F$SJ65FhZpo{nL+ z?e}Pl$9v}`(l^%m<+}uJ3<0Ff)5*W1TWVjM57D=k+xL)VJoBGug1;i$~d=+ zG^*Wr*(rGX6z4s$v*~{m8m(XmtE#H%ued~iy9&q;BY8?^?Q@ggUYs>ry1Qy1xr2NbC<=$rlbc3V*M5(Twon2E(QBhH2W23`R zRw|TA?{%I`+^!v9%;$L=`4Q^JAYa_ux098`_J~H__CkT^h5tBTx2^$D@mJ5DP1~(2 zl74n}7ATIh_4aXyZCyP*R>C)+t(!5qyBYzoWnko|JHtq=tq;Y(rd+`rJY=QDR?qO0 z)%4Y9=?TkV2A%6qc)W#f3Px}!1yA01yQVS8Q@0s7E=&zJm-C zsgP&D_xL|XO;7=F*<@5I@7|)oWnlPj#3)PxoH@^b&KZzfw17JhzIE#sumsNN^Z3LB zqT0d)m=-7$3M}Zvq9G=6YDb_MDu|9BeCZAiXI;U$jhzK3TUlsxu-)7qq-J}jGxgb_ zu*g1#?nsqUaRrAa9_JPjYY(h9^MxQR3SFw3t$CIB`n#l<9Uh*oG;OsY&;tkXN4pkh zxIWA3qaer!zZ-9N{Rk=mJwU?0ogoL0?|;XR{(uX_hY>ct%!4NfITv?#i9HH6*&Gu2 z|Ckyv&3F#87LT(wRaS0pDhUfiRGCd+{MlGp9UL40J2b{(8c3~9!s_bkY@pD(ztMG; zaZR>u821rdK>RW| z=BIa``2oLO*L_~+c^v=ax-)o#(U|)7Y3#_WOK3-ujcQ6$>repci8%Aio^o7tv?aMK z54GB(=a*nGDEM60L&RCTa4W#!to+YVMeH0Od(jAKPIP;U^K*>tjO?G15J+RMo6v^Y4QImYz|1l?tJnX3K?5j}F8 z%6p%o&G%7io|_psiFgNuJ(&Mm-!B`J(dL7IRN=Xy^>DJ`xzyCd^tGW={0XSJnR_7C zB%?@ek3vL=p{@=*L~YxssT334QHVoRhKXhbd13q#SDNkXvC)tP zN?^B9#)0)pfceew_ZqN!0sVqW9F$jHu05k@fG{(@^93B+rK_zCoZ65HV~3uACr_|R zuo*rUFo@x#TaQWnr^D|`a%deU`KgS$fm$qnEvG8K2@Qtsm&zuO~!F7&lK6R zJc?q;s`C8wIw?$gH7b>xJz3dXnK5?l`NFldI1)eC19CSAiD;VDdD?W>o$$0cvR_ha@21s)z4j4^0CzHnrT^74ELJa)}{V| zfmr;q)XCq^OAWtq^FQUbT%}n2I4j6;H<8=zndrG4c}P6At}jsP<%}fX<-h{zZ}o)DrYbFZ8SqX_{CDqUHfsQ3yHjrjeM*5 zY|zlUgz@g!@wctO#?@fb0fo4QD+x?(hOlbU%vOqgr4zrlw>R4H!@K=@$FE;sP+iEV zVYZtlhbOqLAdAp|wZNJZ6b1U~=RJYK=1_+NvER(OYWr`;562qOKjLlD3Pp-ouTfDY zX3oP$2ErjJn5qR|RGdK)OBR2j!gNfrp%Al1esTUCdxc3(;aFIpXadJWca|}77Sh?w?cn&tFs$-5m z58*twy&O)F`i%REcEK;XB1>mB54IAsymvVx$9WhszXyA1J-LP+kGg$2vR@Q1pt;Ta zVgKb^a-xWFIeDDTkZ^!UDh?Z;Hb*stJD4ulEDMzqE*m^^7+SBcTq14CfQC<3adt zQQGr{3Qf2(@zf_%z$HGJm#*}NkL})CWM7*1_#zxgA6~PHGzXdZ^95p? ztbU#|>xU$5Xr9cUli24hfi{fyRLXZ#Par)xSw!@mir(6A+WBgnxU}W`ZU**y;BW6! zfkL(V-rqCU2P_`K9Y?3vbWa{g8&YUNzxdxepkB1;{E=(Z)`X83x+ZlhV?6532JgM8Bg|n}=w)j&YQrYnW6#=2&^)TS=YIjsaRhK~T9i2t zzuai?K_Sd9;58suy#N$Fz%K*ppRKKt=&E$Y0MYG;6_%K(>fTziRSP5hYCSRT8`awI z*Hn)mSvi}yodTEjTsLY9vOH`XOUwI1xlUb4tm;cjf}%E~l0SUDV^m{@nj-eB)EHooO(r$XR36J>Tbvwv9kR--}-dd)=@U5vpaR(}F?dL{p9XX$P?hl5ur4qNyN`2#HEoaXq=cTfWIV2BllE9& zImM2OH{PgjWvTf=A;D944QF3qKQ4+C8I(jxiPL$>F1P8Ad~8-7`F?!SA&Yx?vtnmD zegM%v!!o0sqwD5IMyWtcdrcwG%xtDP;G&Zl-=>K$685rrnAmQrwlXoQqNyG6dpS=* z;2!l-EAba|)f(|6)X*|d!+EBB@V$JOGpg*gP4(#+zuUJl#~-^nYFA9=saMXXsLiA; zS!VPZ0?H}}Z4Sm2J_*W2^=|ZDvD@7&ZvDpN;1fX~S%>L0{FcAia9`~jk;`QD1<$Lx zD@^&%vXZvyX8jNJ;ZWiF^JEM430L>AY`;GH!hQmzCRuEILZ)h!H_5m?TPlMtQ*-Rf z(SrO#DzXVJX~7Q?%6nvy81J|&>>itc<2PsNriv$(9LKqVoY+H#H>X^stZQx}0zDs6WC@||Vq(cuPZyeR1WR1#}tVI#f$)%WZ@ z)z^{B5}Hnb5&woBWCpJgl(Wu3>j|URrB6w4`T52*0lT(;QGZ}6*M}KDIv#(YLtL{G z3oPSQPUBKw8SX)CKKN9>3k zH@>36KiAj+wZIA{I52J~bB!asn9DC*>-159gofX|Rik316~`3Ruf1?~=TuV@=ow#% z*9D*KPfi*EEf26yQ&Ldba%8;Mc-b0eu|QZ=zR%!&R2{2O(o1_kcb$0UJ74fUED-Rt z@2urHvY99y{317S+;)%jL)YWP68)?V(UNrIkiXLn5KuCUr1(nVHGZ!dc24=!P0j;{ zA^^y*z=gNP?@YKVsB|=Qiz^{-SZHqNG&bXGb{JT92DU98f2oF}d#J6g@r*4?@QL@= zn=NbQ}y+_%-sC-BYslWYK598Rm03I>XV;DE}WRn>pCc;-tO&+SgFlTj4?+XYwZX89t5jyM^DJFa<~`; zx0JWt|H8_KH`$uzL<=UcSUxJemOjZnWtnc0nl8GIxEbmaODABBt`4w%w2S1d+^bSN za8O+O>ztD2-jO;*t=*VgE^_D;6^T@wNHPAja;;kIkw%z@K#~=BI*am2)$yb!%*&)) z@mPEcntW6-XKBUsEIjF!7z-vKk#<<^QlRJg?eMud-;P;nWpd2H_7|6~*iHP{?v_Gh zD*fd3!=7?G&&vsQCA79|4%-)#RS-emCM(c&cUad2b?iGEz8!Y>@#Ca8cc@HUNV)#f z$D?U*maig;nGC7rJwsjn69@hk113N3L~$A?NY0PV*EX2V*FdW4+XY88VA8rh-`A&N zu<_wn&WvStweS}@g$MwK)j;?-H~@h`o`Ayu-D4UQT3YiVCR(5QJR613sH%Y`UGEen zNj5Es!`<6*lr=TyV%re+Ir}EgSPLe~ELO(Z&o@Ggg*H;344)oXQMGf#1iUaXRreVC zq_vhIAZ4VYa6{V0ODu28d&_c1+@TvPml+9u%^>?*_)yZ)LikJW%FG_hB!$mp;z&I5 z>-r2KmYV{L9^IJ}a8KEywX__Pqvnm?L5Td7Z2QgtlKgPq{Go29Vqgog0I{|bHzfQ- ze$V5fi7czzeB-b2Ees)8yeT?C$T*)Nl_h>z=v%`F1#=2GS*OSNR|%7knmsIK$q4lR zJ~jBP(y@jPpfu83v(ooitLkI0EpQ~3_ z`y~4V4t}q&$O=KWTg<2H?s4+B%1$5lee{4J6f{5VdX!G69iPaOs@~X%{lrYLcAOwg zcI#;&B8cSK{2$G_%NA*3a}v)B`eu*ZSr;Xz+u+eprqNH8qUc23GZ=rzM`!sCWRXSm zI&kj&0iNW@0k=D3CBH+7wN6rh#LrDkE$wMEk@*H?wMJqNAIGZf_CE2)wYNCwu=EjW zCgiNacO?HDJu5Qz94kuJs|s8}3xC@hdtGeWq}C!azB%zGq}m{DQ=dfV>i4(D!ykV& zT{=ws%^$qCISm^WKR=hK&N>_493a%vG=Q89kvL+OEOVc9Vy1cd=JeHAa^}FDs;4V= zVgUF3^@#@|L#xf3yzLcu?R#ykMb$W-ll9;vwE%sCXKKZHq9lc}@_U;qRXb_=DZ!K# ze)AIWdGctd=&~7LrJIBUXv`SG+%&J+@%MM%t%<8wukP*bJ<;j&vmUK|m-Tu)o>~uO zKDQ8kw~d>Jrx8CPLxyZq$dfwnhD%FkCB-KRVXCq`8Y?4{2TW2dfMXo@w}54YtmU-E zx$go-7y0{@UQY{KqnS%xugB_F=R?=uMhp|FF01~(lm-TeHTd})2t!#zUgVg3Q?gJ^ zyO&N^>4X z5V4x({8gI7V@CC%_Gr|O_vZw&Oz?5N*HXt160sNMl`i6j=6$E~f~Oz(+f68m9L}8D zsKMl;A^e>Y+UNR5??8 zlN%nI5Z8WFIZKN=NrA@(t2oJ^ze1R=$!E9GAH?Tdvu%sb3oL9yLclzZ5lA z!Qy`Gw6ZFt6*5rbD+}{}`&MgZh)Y`1;*fN(*xpIG!oP;7MSBFfPVd4Rh%dqNOKxfW z!D>APP0gNPnx1%h+~3Dt=v=JNc3zVK8>lH(?N0YIq^Pj)QAsJH@o+?)nmTDPM#~?> zAU?X%EK=iQaALD!FOC)3!3(3z0_B#%b3)_GO82!-KcTM${sgO?8P|r==04SZ^9CL4 zg^}QWB|JTLdGIu-lXA$h95Tw7;$rQglW6HNKdOupP-9fqWPB(m58u;mO+DE9S|^j- z=Il+Kvt-#O#d;`n#!|6wMJW5arJU3wf_Mr~ck}TC`*{guP_&Q1c@d%Sg!k zw%3#Ot@~Y4LDAQnOB9qWx!fNWBQr6LAI0X`akR#t2bq^#@{4V}Id6Crek{FW8U&a# zXz&nJ*hK^wD;xe&_@0_)NAZd=)#M%;?1)Ad6URpuYF?NvxSz4{0%N{wrIUcsNQ+ZN z+uvLUJ+47A=%7;^#s9_7AU}>jwV+5%*TK(C?qwu{I@Z2o*Jg*C5*RDiVqY>W4c%74WlkQ{_@)UF=NEiA79VOP zDueSGsVysj)fr}PC0rv|RKS2SJou2CB@*oB(}Uu7xmcd*`33@?A<|-g*0*lS5^?iM zhwhsMNeAv+ljlaLq-y=f*f*{Uu_~RfcwcD+MRE0f(6_ceTjD3xDOQDpX1cg$O;A4@ z=_lT(2u5M4>uIPBlDw#(NBMIhY*ca|OIT*QLhx*HMU|xNICD0+Duns%it2mhQRk? zAK2%Y$Na<@8g-%>+cnJsLlU$y8~0n{A#;#st(C+Q<4&v<{(Q{6ba>FN98HHmY#4xs;19nToJ`lY;rEN6NL5542fL&YSYfoOm4OtwW9qz# zs=s4-EErFWKItd=HJ75ur6b!%!x=b)Yk4^>S%rKja($sEQvY>fVX{4b zY(b%@qLf|ua9S41xv=r&O262ir2MnqF)Ugu;&V^Ilt@QA-c^U_ne}J>^qBDbE{;Em zb{IGqn-*dRGvQ}`Sprv>HXD9DTGsuhw)I2&`FGbOgm0l$iOQFBqjIy4S;1jkQy<1J zhMv;}D6)Rp%@Qx~>LOdgp`o{zEM8C8BPDXJ@-j0g3?MoE* zfoh4`8M%Gf_WF3H1(h{zvT^^({d`H|QiBAmGWEFIpNw+<2slF3-_uiwYSc9wB);@F z4LUpC1GMC6k(C#zfP%Ms$wYH43{fmkfy`gHMTpXVy1D=QcEKU8z$)~UzAIgq=krgB znLm;JI|SrIl#GZCDzk;J&NPVF5)`X)9~s*ELKgY*MmN0^jZ-&J2wZDBmI6{g*C3a0Dd-K!q()_Am4n1|Vk;^5OK zXLf-&8|5=_jE@*9lt%2KsNmuz3K2a_tJDnCPd`VMjYOvPIr~h@_f`-K#GK3S7QRyj z{){J*$}J(6Yrbfp0##(pFdOgDr0~OKGy6nd}Xxcnz63sk*lHF!`hbQ^t&oQ#hMs*543ziN_4&f zesGD%kn39$GgEVkWFf7rCRk)S1r^~yAaRlo9~EkON=W?60J(9FO}qDC`LZw2NhMyl zc1WiF=b2{(u!C^)jtuusJ9Fz6R!)n=J@g>9_L=03Q6Dg8+ql&!+;&CXtnChJ#pQH^ zoMdTW5Hj}^6RrjA#bqhrpVzy!W&Dn!PN- zrEVT1oqdLX$!{(SkG>u(u=QRX57SXRGDqIoliE`0e#nwqQ@it8{3MECmM~#|WsBM1 z9&1FJB_`L7W-xUMT%PO;L!NQzpO!(ZagmkBmE{WpUGPK23Lc@4)#wrVz!x^x42 zPJvs#@v;<7g-*u70CP!AQ#1L0Ht3DF&ab{DCE4A2>HTywZqnyUc3<26v1`o%aci(1 zIZ(GTM8zDPd^NYkV!`^hGQw5#k;4`3n4~PIbE%|}vbm?;3vXq*kmRYugU=U&*@H3u z&BtO5(U%hAujV3xLJJvbX`>{TTE*`MtCx|pa}VCgeiHxh)0$fF(rlT&*P4CUi26hL zzg{v+n_lZV3s%x^(#=eV7jWRDviG!-4&RqpfT*Q{a6QXp#L`raW8>m z-)eR9iCwtVe-%l0{_{TuKBoJ)3dT5^TQ6^~cVlLo3@QG)Fr@9B|Kk1p=MrFbv;5PF zj$02SyYQ9ifOT>KzBfF@rI#l!{(FmK_Tv8hPpW@<{A%+6{IaYapvPZkm0oZu3hC1s*N| zgK@GdAF4O053mRKdb#-v3R4c7>||q$*)2fJ&z=YRh>Gh`-1`q<5GDp-tbjAQtm1Uw z-way+7zc$m`E0zY=v=PXQd0Vr6-wfqTdDtaezumB%scI~KI}V^XDH%fPzxji)C)9% z@FVI$fZ7Zm$-8M%+kGZgV1e%v>5VTs*&9d(6$Nw13ON1;F?crx;O-7XnJvL5Ak2d? z3P!PA0RI4*ALpAZ5AKHm$@R|y>#+`e)uBDXtezYPyAYPBW7J_+=T`hiY%G-cHRDgz zBoBar5mr(xEg(nZfT-QAm%`1cq2DJYZz#V0)<$rdSZ#>{NtMb_hSLYKi#H1DWJj?pQ^7zbu z_3z{dzJq*;xonaTc(>>4su*wXj;QlXpY67TI?z9(+7m(pH&`Ap-fvf~nys1;3EWPP zM?Yf+0vk+T2f6@+(A+HLH4kbh7rnR$%gM=Urv;x`|5;T{t+%(A3VIl?%p5Ot<#;{! zE-k;s3(r610P8nhR|tHAYed4lNs}L}zrWvUbgp5u#D%Zr5R^7P!M{_D_3Hw;`D2?f z-lG(_dJmu1`2{9l<61&b{=RF0As&W^BW&8>d=MX{sA(qZCER^l1656T?K-s<6Me}# zCl0oivze(CzoS<0#x`n@Iv0YS|2{|=!Jg^=9k_c&KtKR+l`f!oyOLN4Igm>)RXRz+ z13M9DJO@_j#R7fme&??BGO|9m{X#WRw|@Z|Jcd!PDc_iHSSw(VtbMSv$eQr)jYTzC z?W7CP4>dRbVoSENsD zS3*h(yZ3ePKHj=okI=zsk2U}u`JJaa8nnYypp+#v7vQjOmvRK6gU~js<$`nqR#?Mt z-)cdW%_5qKB*PWwLLV%6I*fB*`A&@RPM}p^B%f67^d}78MzCD$0pGUI>eaOuvT&W~ z+$#QU-!%t-_@03^wV;@?@Qq8O{J&_rn%V`u7CSUy61*nWDz1nmZo^(Zhw6226ZF`7 zvQed2zX))OOG)3j+u=);BP$gqU7~S%tT?w&lO`hmBGWV5A={&LmEz^ymc~#1kUHzp zs80FLCVwYRkRb3?3RYB2OZ(R{miluA61`rfN>5_2QUd#JLCUYiNwIxl7u_|rVqjon z*V0tAQvy13tj2$DQCCyk4uIoa!lvqf>#Y5qNs}uTN`YVH(ui6cG)MTh#-|vTJN`}= zd0;VlR2g}SYtkEVT>A!fU-yLUru0*CB2oIOSz9c8T;-1LZVQ{GNEx4XZGdC2vdWnV z1kW`G2s@7re;*PT7YEM6HXPc;&iyucW^d^9h#};7fzafKNe5bDU@?e;k{&Q$gC=fd zv&m}!!o>mr{;wD&Zd^>VY|-~8$kIPWq8=%we^TjMPftF~H{%M{b^;J((w5Ood=}RA zAkY92x_#@Wb6?oJ=-@d7Gc#{^R=pc*nM|tn9M}nUSDp5)o*P$}31}E%=RfkZD?6L- zYdOb{(4b<Xde|0%DjjVnJ?@{G~!s4mOZeaa83U5S-=U}RS4CEE`)qibd)!=!>w^}Aw z74cexk|DDA^qbqN!NJuu#Gt#82IT$M#kBseirK}>Uv(x2J)5s)0$ zt}L8kG(7wC-(VS!k{RKjV%^=s^u^wW2^PjAo&6HpXJHM(2uYH28p-q~1nr_-_ygY-Q3=xS zNC&1i8JEYKuRAAhOXOFc_&Qhi-$R5p?+-opnB%t43OU^A^*S;6K8-;K*#h3o4ka>F zll}}{rfSj{4IqRwzNibYa|rOHxwtOKKg+g|;NWID;Hd|W0gtv2;>9I3-loS#sH*_E zRe!qa0$}&*0zm+SG>feV0A3*Vw%WxKdIoH|H@do=6PZ#0l^KuefYd0oZaxXN+B?l2 zuBf)}RAaA6==HYMwaPKP6PiQ*z`y!zPet|H?JPAmY%;uXe`It!NTy=d4X-_Y)60#q>f>d#?QdoaIyw8aU~^h2 z9utqmi&LqlRGDg3V$zH?XcP-6T)1Nk2dK^3->B0X+%z9w`~aTFR?MMYd%Kj#-*~Ik zv?^nKd;vSRk2zF?u|@5gn~uRYvou)o&IdWS?ZUDI?S_jMmrQB4cfA9{uG~7vhDp0m zewVBIicF-zW^+BZ!^7%bz`-2XkuH;BwOkjvi}YT9LS|;G(ZV{6swA1?Q#n+N6<&C8V)Fk3!4>AsL=b_ zwc;8PHgcI=Pc2lFr0!a5JoK~6@t+;eDSsrZyjtsvb}A&Nf3XhSF%2Y;Kgj?E2+&6A zPgbErG6Yv3mT?B8;5CEocK)LZr@9}QefZa{uIVG%Q5K$_C;4fWk!A>a=Jj5IoxP)Ffo>mb4mUjbGS;zVsZ; z)_zB0q{uSW?$QsiaN7l%2}W2c)vdC($;aE(mM?WuMC-;}#gdi=Hn0XuLqxWT7V21aWz)ZBmSouHXIOtLMh{`u za5QCTf4*0gyf7Y-_0_OHUS60_%(U4h;&HvXz)y?#9)1q7xD<~AiEmk!>-DmZZZ6%E zRk2-56;lc!L(-zFb3rWHq4rbIq@;$6p13CA+qW?~pYgFVy?AzMX$bN3sBQ)nDWaa8 z)iuV=b6;3YA{5=WrrD}-CsKiT<=1Cstmvi&Z~l2+IdC&tNIaD>ttpyUq+We?TdmR` zWO#X4pyH;r*e{x zEL>3&lDY?+@_oQ5A93+o!k*Vflj(Pvgn>7`PhR4Eouf1;p^-`}SedVA4-u#t*y4H8 zC!_XJ)or|3Bv!O4t>g;5`G?a@Yi~8ZPGLLyJj(Srecr3TqID6)rry6B2SA7Z-i=M; zwC$DTRh(#s-tDv}bvY+h#Gem;-lSTUE497r7{`=-nMsd>J<&$AOg8H;c0S%yMuR)_ zz_=C-T;;Mo({ONhFoZNjX407hB^zM)71RJCj8^;Lps2dxGVdwL?%d^IpWp1{`qxT7 zcXPb=o2IUsJ9qE2$ZbU~b+c%OdSRj>s_!%Yw(Mb@OMyU0 z$D?^qX{9#_pjhp;8_I_~eF#h$XUu>mVSkS+|K3n;|(#k~(<)-`TP|iUTBbsxY7Rp z{+UXpdCR>m#F{6#RL=I{AMz+1`uF$oUo*Jt4p-P!{IA0+FBi=Gd`Q7H>MpXK`-AM4 zmS~TCUGLw%RhxJyQSZ|%vnWcLlXr5Z&+GB3lajM0fv5HrvMi=nwdRhd{n$R?{?27_ zB;#$fo4#fP%+8#}ZW5I5uif!-upS0>qUdc}9x>ozX@GSz2J(Y|1-5I2L|sHUcxPOn zu=Pw`*4sQ}Ip==56vysyp4AreX6%$S>0H>ySdtqnn-nrcwrCzRjmCARMj6|PggX28 zI4w+99CUYOHB_VU2Q%0A_d8sc5N4r^84Y}fI%WNCZon@`w&2ny%}fr(0fHOopiL|p zt(}3%jj+?!2Ff>&gBi;;5ei%{2V-R|hykyqwQ^8N+Fh`*$s{AwhcS8~Ih9O_!&RqWb>^3V zauzjBz0?D0u#ukoD8Et3?Z(}3_2%NNWsE=k97CKZNfanlk6)@weryIjr#`|=sUqOb znTAd{6!Lqm7)X3GNtZ*p-LUJ$e0$DlJ@@aGIy%4ww5@w>;l7ot1r2=g2A`Qf&Wq;F z9Yrel6Ko6OI;y-jpQmh(>S4(BAs}}dpM^5H&iI#@pgm}feNYQ~hIs@EwI&k319-*J9# zZ7u=!D?~8lYwdl$!&94NTXE}W3H@C7H_F;Ey|o30$2A&WK{}QvEKX4R)6HuWS8Y4P1sLbl-l>Bh zMLbm_~>vu6h}{liSLBsxEc+^EV(TCt+lsW>=IlBIL*}X(Pj3&AQq6Xn`V-%2P z;t~0&{$-{wxAIwLDvsBNn%$VcmfDAml$`!5MXSe5ziEdd!h6CEJIpvF0pc$=POAC;{mO@ag!fBS+>4K zZM)_GqTA7zL@>?YOd4#lQkkV^2Ak=FS5_BWREWlZcQ2n_9#(tmIN#*o*>%6O{?=^J zKUh1fsJNOe3L`%fECfx^5Foe(cLKrP9TME#H8=!!cc*c0++7-XcXxs_cYNky*3857 z8?4o`s&3tT>f2}UGIEnW(Zy0ErD5n98yJwpIJ4cv&P~Wd({gaD%Xhb{jT_M-7y82h zMdO}RFhBZg-)ALmjm#lrqZk&UAUxv`k3-{Ly{kYP;o&ia9v_<&itw)4S7Qh_^Nff| z-4uatwO2B%1d}j^glCNz{NU-NJFWia$YhObPEg`yAR_y>%5!()!@Bm9;mvAnHzMlc zFfmj19rDFS!Urp!Nn({m^LCTy;j~Y4V^*5Qr79$HjWqc<6#l1gI(pWMrf@|y@?Nww z4g#|!)dxysCKmNd=$J_nRUb_8DYmV!gOn~VtRA|T%&J}lfEl%7Ve%$QnN>xlOq8DyLDJ;O@;&9`Ly@sj=kI=a(x1MFVrCk$$YQ;bh!A^J1pYI%5^7IYS{(BsdcP)^j8=?76@O%tkX>=Ll`j zKm0-H6owUsZX7cjte8sEvuu}gNrC+AYNpw0VvV20gB-?(=?7SBJTPQei6SY4upIfiN^xS%ZzDX zQI_`xAjpa8u-9G>9Szpf_fE@On>$=hb9KKPtP7=1pGSOBGZ%|nn{K^<5NBN-AB?@o z89j)EqM>!mZ<8*c*S_P|$)$6y$cFl*)Q@(-7IyH+AHeZF&6H#!=FnyF1qEpnjN&cE zCDM740XTj#sYeo$ih+Ml9<*8S_!7Z~-2Z&%@a;%>E8X2{Qs)KB@_XOr&L(eI2D`%( zss#3?xb|m|n{396(-4;ao%+39HTTRKa?mNwj>Np&b4-P^)n0eFcX|^~N?n%-hNhXC49+5%nnP0dJ zC2r@?dvktx#^sX6M7T*^Hw%Oam_r+rzbv2q+LiEiOG{j5VC)!_AaYEFUfoFTq@;Q z0C)yu`Jb=J6SXeq^&=0w$rynq7{J?iJdqnDW<6J)E>#yF7YCdiEFvP}=Jv2yXHM+4 zpACeHWxM}A1x(dLgM)*kqtZYlySg9P>WSoHX!xelZi>&_eAkhIFacA7mXFEw^vJKE z)#9Kk!w`?-e5$CX_ry{RPsPulK%I3IJ4&4DBFO=j-dcir3}e53O^nq!b(~fV%@o7XtX5K*S@^#PkR#5~xxQF>!I%1Ei6q z0A-sgQ3hH9At^^__-v&>%L+0s{W9PdY=3>WrYme6UrSl=o_xotfOqO@@XKYz@ztD= zYb9xU+e>wYTf6RY#?oa~n7xg5^7Urg{UtH2vnyAq9Q8g%U2<@Li_oW>5qf_T_q^AN zl>CXuWVS0H_s?gO&PdH|zG(t4&Xwj4#OnV@{4oEd@J8nwWl#ODxMzuj9CM_)24w^i z6Gt}fxm+KKN|Nh1I*Za~ZK%(8pHUt>oe3XHO8Rv$t z;#N^#n8aYI$Dil-b$ssT%M&`bB8SI^P&Hg4{DBZ;@qK?WT1+OY5>3MqHwfn;OmSb< zX*m4Mra`2~D3Y81{jpubE)%f_XEr_V*XxW@*00V4eomFh(?ewoEEBliDyrHeS7lpk zrPs(uhj3|XrFx@1fGdtFO<$8MGSDfp`grOIWvO3PP%teS2YN4}A#sXDGsX1cwmQcH;a<`f;LTcd5Cq zaR~#_5R&^Z#n2zTl?0xXSuEv}c-3^}?tFZ|mky(Zy}-%AzIoYQI%JSH^^2}tQXxqK z9oh&b17n!4Y4wPhI?3$})afs{wMK8*9IvvEHB`mD+Q(%d^M{mlFU-QrxMSi|(o0Xxw99okltuW=VGErhbXzQq!>)F1*-l-O4WyP#d=s+$eGkh(pG>k+m z3Q<rN0s^q{8~W$<~Qf6kpU(p1cmqb^0y|w9>@yy< z@z6(e{Q->1PTJX(6f5}W&A5Cul~pa-04w?G9J>);S7;4h7+k7EtQ?NeI>bB!7S$Qb zfu|vnBPp6JO0{C`3shZ zP4X0*DI1LnXr%|ww0L8%043^=7|h1_bE*cQ86Qm-llBik|HXj5-tJfSUfbr6zLXF? zSZpZ+ZRt4gMeEpv#>h=O@dM2tLp5U$R#0ix2d)Hwecl8R1?>zC~b4#J_#=&aiFxQ z3|$WQ7ol-dfvIU7O0JV~t!nOBtZ?$4W~~7MDoqOz`~{L107p0=D(oQ2>DXrF2(Amz z31gQ6EeY6Ri}Y$i`^->(%`gc5?>7Gb^6xC)#cuu+!kIHPkciLJ&~;1N>fW=RW0UY=m1DJn!eSLa6>^C(oUI6xhF{7Oej<1w2YB z#?{WfrYb8hu_p}txG^+njOs_X7}o>kJ}ag3KD%hZPS9ab*T^(I61u1f{RL8 zDQF(eB#5`dY7l-Wf4a>)*(ohYb8dL}vE3}MK#Rvl zzwbu5wixYav~f#eSQiYL)*owEDfzf3`aTXOw|?z9$YGtN+I8jA^Nu#+z2hmO%m$-z z^53K)elzN2b#*~`ULqNVq5fQ&O+_M#=3OD&U!g6p%{fD!@r|_Dy150{wr_2uV^t|_ zDL(h17FIUiBrT{W7ijDDKFb4-x|Z@{)o;m~VB5o*KJU&e?@G1&RLVp&ZMJAxr5=|m zY}Si8rB?Dy1z3M!%R1vH7Wva3+I}MUXBid@hzW)K=*2$~Yw^5Q^gV_KI9BwlFRRcm z%XtwaG~>{AK8!nCu(jvtQe15{+O_9;4-nPS*F|nj@EgEqhgmfZVFA$_OqL6^B53jM z(JFQK5K{?6jk(MSJTJCyw=k66=5iUOzxX4kKW35`m2FQ(Qp<8~ZZ{zEElI@-KN2lX zBZ(3rIw&Z&0y^KXz#GHJe^FoPU-XOmzC@K8VPV2jg(4O57k~AOTfysGiREZ|l#&;$ z59IGvCw4%KTgewE`Xr-&-TBQ1DTp()iRPqS-N$$*Wagb2+(S``Slp5pSE?WEW~cCS z_uU;IdE6tyNmIUdPQeFyj)x_5#afO0*U-g;5ZE~Ws(T|7zS=u`$>-4Tw(mi|4LB2( zn|x40kIMbcYW|q&RZ+FizmOl~d;2q1t|J5!64vf@-n1lD%gV(ydKyQ1m zhF{^goKfw{!8(kxGO!Y&m?HiBOHTYBnidxE+yY116979v#J?t(q#EIJVUx`&69kZ$ z7j&=yt1>v(G!8vg())%YYrRidZe4e4O_#`&#nCO7cST!ouFd9@zMd?`#eu zk^mlT)U&;rBd>n71wLcE$1f^Gq)*Az2_WM7tq#QMn@bHzrbTBNc7TDpg zr`S%-7$~C(D9(+~W#I6hcg%9PdGwdB9P6@G%Ckj}#vp&KyNEUO_^#}cS(DK<{$L*y z9z4<~OXV=@D*w};U7|MaVilYd{d192`F2QA%t}Qv3s**RE1$E?TQEYV4sy7Qsxvjr zQ==DfGbZw6)|4X|LA{CYbQeBjS2Ej0VnUjrA@BaS2d+nU_CDQ?Rsglorc>F(_SvMe z7^41$&bN(lVu4_L>o>!j8xrGMXBSW1wGy9!ma;G0i^pjd-q;}3g=1_c?G(NRuX879 z)dN{agus~dqt62Q>{EO!&O+{L1@pG&?9uvjQ zcjT^2k}Ld{j-ClIl3-Iqt1nY2%ACAEEQHBnnL(5{%GdbvUU$hw)@Q-v8N_VGt=X66 zC7sNPo4q29pf-f8<y zRE&Y3kv&Flue7Fls=}$TdnP71AK@;*40?1rJ|~1?dxC>2NR7P})N@(|vWd@YboHDv z1lbM^gP+%&+BApNr4(bfiq(!F0dpZ2z1rV^X{l0nQ9hJhGBwVpRenjH7}BL7u2TbY z1|hT2AvB;8gf?&bDrLiwk+=Cc9y~oBR}LQHub*`8xk2c{)HsOh^0dT~Ac1n4{%Y>d z{`*Z=%^&P>!2;uQn{C=rv1T2o6-|Lb%o}@n1DIOtg*>7SvMu^3e7wAGw5F~MGl!wF zWOCrrF^-2{XS8-Wo}mx3{cs!X9 zZgV~o<@ER9ajX3Z@^8iGc2Bt;W3!H=ap#s!sjXz4;R6x~VAV=HFby87U2HY?UK|hO zwh8Rw;e<50djS5MKfJdHrCd8;_!G^4VJSo^#^e;FvZ`N|6&Dc9N9mBdG& z*B!C5ao=_I9wj@UeVlh=z1)N=?GaV)Gznr~@ux(<;EqwV3irL*~G=Hi8T0$Kq zwh=1w<0U7!>dTI3;pNPs=7cKTwW1#e`>t^|mk-+Jb=Ue5QaeXhFWPjNu6^_Hz7)@M zMkG0|T@xbXlb1p(8o1!`0+|siF0?JNXEdn{RTypj;H?~p45q9W7gBgrSb zJ~(y{=4YRs@B9VAZ_Y8r2^XclAeva|buo~Mc28W=jWNfq{&k8a8$op&%M)8G9@hQw z_=1;=mNnk4W{4giCUW4hsrwc)AXc;NI7%YYnN)8dcNP@Aq(;0X^!#(SuZt`AdK)mj zhDt8c+l zcs>bt5~&w~>oFK*ff*=+dC6mtg{rst{S-RCXh*~=Sxgbf?jBB$pVas5F1hW;K@jSe z#!y@ElA z5sD%kt?_2tKi+xD+VKxZid;7S92`yZ##;L8EItwCmac)1|Y-L<^3b!95qp20v?*w$`!SG_o6^Xep^MeSd*Xsfi zQ{_3xmCdPQ&Oa$i4)^7}OSb#Hf~jJ3cf$KBcgSU@T_MB0a^w+yTi zoI$^(c1uS6=%n;EHR}Fb%kC zEwYTv`2!he9~Pg?kc`YqD6?G8bjD-qPt9@BCj{L4GJ=oEAZG`?7dLR@zSyuk{5kPs zT&$aVoCj)&;&18-xW)p|{wBr4XiRmx1gwC#OYQjGgyN+RI!__LfOcs=nRhNN-}>x$ zrrahYmu2VJ^HGtyDpEh)bP&G(kycw>6;Uo88LX2+&;^fasv%xIpTQneF7-xyV%!7+eeo~-2#FZ6Hymg;C za?}6$jy?BX`_{=EQtw->Y&#MPP+d>_mjFe*IvKF9ZRMxO4BZthZYK|1+c+3cl8cYA zt&ib%FuD4L;yw+A-?$T^Fax}WaJ-QVO-PvA?8bDAU<3TKp3OJ{LM!xWE%sUsW?r%7 zgyO+*cHpEY^N3fs)Cpd(x9qHK3waYIKO4-~x|-Rr;>To!xiFFYG9^n@k}|gIgu2IA z`P9MTJN(Y(4Rsz8Qrz68E60SDZP_kxo@Px6=5B1Zbi{p5HJpPo&`_BCAc8e;1RK^V zGR%amiRchiK*-iuOA(DIX==XCZFmLLP36jbEa$21vLNBz#uk^^b@HK)Sbw2y+AeLB zddiljSWoI?VSzcgKsLYRe_RfcNA_>->UKzL~gAGZf8^${f^c6?=qv+h%ej=w8|;9bp7Wc#OzJN$rH-7=#h zY1fS&@1GZag(AI|v#sP+@Uk<bQU!xK)9peVjAkqBh{zV6?0G=tHDoj| zWk#M>4%7@PglYpioI3<|$&Q=tQ}|H<#gES2fI$S%!yG1Wy?5BY80XS55!_zryHD3&Yd4a<)~QY zDGu=9{yZu$+vQ~^`@6Mq66jkQRub@WIJEvOEKJnf&c!;@!xY=z6FFxTr z6OxTRddnvnNe!3z1!eVLc^hpoN!QDYG%x0T>_SpE&NyqctJgK^9?X>@@{1Mn9I_gi z>L#9{b3(EYP(%Nta{6Z!6f)=o^rsZe)f9YSyhN4<<7_hl;t`dL z2fd%SwwG72XQu~gvBh*Zix|{VS|;3feI!!Aqz3t68>f6h5oC@Nbq#NS&CMY&#QqpN z^V4@z_IP2QhIjGkt8j89ncE&4rc!-BJ>Wkewhc7CFdtd_qR zo#z3^A5Eg{eX?P{a7q(hJPK6OJ7fB** zfQF4lVhnll=CqzRPKZ!p0yXk(kp$;(3Nah$u}f6VP_xN7!F@$Twpw!1bA{^xGLEyDEFMLOe!Bwn`OO9#(@lO zS?-fsAPAlB^?p1tR^#QA5Gv)kdF}Z$ROk8=Ck&*-CQFbUKzs6b2%6zIkOej7oN*}Z zZg=#gz>2U?enJ!LCKP6ZItxc+*2hC#@j-X>*m zm0=opt1X4>r<&jp^9$Y-iSPkSRMUh6)I&`&1$R`KB3ws#Y~^)5q`!PfRFMcS0YKNT ze>Gl;a^;@JGzlXBHX{^=PG~4;Kis}-jDP;P(7$p+f%_EnpL{m!KM4?iCZ8mad+Y*D zWz?cj8rWz`MSl-0VV@bK@ipF{slCgwx>c8(!pIBl7E!T({pvbMuIxFpWOe{_mKVoC7OQ-Z`2lP5&if7}y}7~sxsm1z zFRP=){giy4_ApwlX5~^c&wT>UTvj7Ou10PRDrd17zT*&TG|Q$RWE!se z1a;{(hfQ_J&bszjVfPymXWqOeD=-f?)-Dr-nVzoK9ZrAVY!#(t=ZdN|7YECdFyaVK ztJf#pIefrbCpWeEhB6{t7Frd+1C7wH#cDXd=)pPc(biO-YUWF(J;)Q`nL11+)IuXw zH=@2614b=5tySoi0sroCOnTgX9~5Sf$wFF*!i*p(nb10~7@s_P{FS(x^sA#;?<|Vi z*WyYGc)HYWWb9$Yq#|@W!=h>7cx;XaXtTP#7h;d|z;TcBA^zwsCbj_S3L1F8goggh z3wwi(t)X0-k^)*PU1+J_NtA{`Yzb4;KH-`+Or&0!4`x)h4$RrEOtg5tYMxWaK5PF) zg%!#ZSfTCi$Lf*^E!%zLysw+=o_>GXzVdk86zEMwHHklJJPOaix^xE6S98 zgP9JyWjC^&G8}VCupiSu)$^SNqOPm-ksox>$-T&((E$G0WlARz=xSQ8rUMIdzbqf! zTJZx-nGfG}z#n-@p_LIQ5KHT81~xY@ys0FwgwjeK=#K;&RB#O6%R`aRSGp;_Jvb)$ zQsu4H+QK}P-&MY=IPcvn7iRhX{TZQjyBW2!%4~6Ve>aM-ZlwHZA&)>*h1UuG@mkIJ z!%W^_jS2c_0h#@?OKRPF@BGYya}f*D#C*(yA0j9Aj9&L^^^Cd-M}!?|F)Nf%5Z8C@ zAL;pN3bii}8@Ev4k~F6M`77c01-9h*u|<-c#w7QICw#1lW7t`CwFg<65)|%Se-F_d zaT8yNB7#gWJ9O@gcV<#%B3`7ie04Gd{ao(ULyrw1)~LCy6X(@rzk2*UG)7Vq6hx^6 zHqppkcZc$}AQSob*^hJMH|3F$WAozk&b5_t$iHTq8Oy_~b=);tO|2+4GTURt^%u_a1?`t%#1qxky`VcLoeU5g6&t_qWMIF`l#; z9k}NnZDIz5hn$OD#G*lc58Qah8g(z`h2aKP>hZ4rcHlNb`>+U3`HDuoIaR>y0xrxe zbj;wbIbGMd_#SCpi5XN%lULhq?Y<8}{p!WeU$z+4KH=3N771F2C1ttZ+SV+5l@dIL zS8DRV*9(?A!T|0kPiBU7APkMMN*T=_$?m$V@WgniUGASiNhv2PK+6syhaeZ`UrZ9L z@so%aYM3})!B-qj=Q{KvnSV^iIo7H2%{W7~MQk>9-IqlfF4jN}$_hU>7e3)d$3^E? z-*XzYdpkht<6ohN{9eu0=MT8 z>@}N9lwDk5u%jm#cTS%x?4tP{=NU11onOW*yg?F)UzHuob7SF(UdKMoQ_bzdoI$5H z>aQ!gTHPa>u|-yl%F6e10aYi#>ZWuAh$g85=W0jqN9RY4083Tz8Iz0@>DYqvUFYuM z>ktd+Di-oi#p%l|=@8Ml?Os~P*V>sIbqV^Nf_U(tl)1{zwSN_MJjzIE&a^6OSP)Pi z!kunX#@rp7Qj46Ru8gAc+EeLR_&0OyIu=7$`P$W#Y)KQ2q@F0!Y%@(Ria`KjQ>87R`?m7*OoZCocA6(1*bJ*;4m`#`+iBXa6SUpDM zTa0r*bV0%-1IkxiMmc#bUm`HztOI6|?n#ROg&gRA(HQ?i_l3rGENEZ4I*-Y@cIz;I z$3GK<|I_QJP(+92sBnom*z3&o)mdoG^q+WpM=#O|D8!FrVt>C55KC~ApqX$PW1W8Zd*f0*{O&OLo zMXLY!mDeon^#N;;I&xrc+D(}bC|UDK$%<8(G$V~%&)s%cxDk(To$2jwTr7H#)j}ex zeJ9YYe~teaNJyh05?VyfI)G~NVTq(EGU^QZkM)bamVFZe5}KPy>sA)dp#|q;)XtcE zqK)|7UM$(aazfU1EVfDlIQW6OnlHWMpN?i?c8ffnDQdb(Mqa|ZU3cANK4^L!>ng)x zP^fHs%?0ceBqJVr&(|PZqxq%y$;41V-L1tcNc-~1( z@YfnD@iT%`9LTg`p$ShczR3DBDZRAYMp5oo7z_|Z^AksC&IWGvhtCk#o)G&O{)a(e z3Io07);yySvLsKW@_-G*@ftRkBHt_ctbA4MBnzmczUO)vef-cBN=)S%^wyTcU(n~% zIjNw8_`c#1k+NsP_IS7{W1g|T4ZpTjkL>Bl+8{8;M*Z&L>Q*sbq7Y}1z zM_I+&9rg_+(r9*-e29FEu$Q?9jQV^Gu26rq9N*&~!A@_mR=9CKI*&i|&wsg=nYe;~ zO!UMF&+66Uzo*`ttwR>2pIUoXf*_YnZ?F;%)z*QQ}Q< z80VV!+gzll#&d;#Ly0D3e?^IJX;PChuJ733776%^lDJjKU;wMgur6sW(qB;S?Qp5G z^KxmNm&Ez0$+$?H)C5T6;EBXb+ew|8c4;Q2pNdXY?t6T(qyhb0Ik>IFVTXd0;T`kU zJ#P5JUFfG@pZ|p=68R)hKxsC*zX)4caz=Vp%gIt&-{NVrL8^O%<)UKo1S~I0CGfrt zUubPIT>9T0jl4ESD%Mv(9sXX(nHTxh%~;BT5gt zTvDsmoah2uG=w!^CS9M+;Fw|2ooa(7U^K2vY=QE#H%jUq@#%bB>a%9n9;)zUR$L{5 zG-vYB0>>gNPiepK{>ozgSRO8#+o)PjWwwcf=+GNz)=#60_d_K=1-W~>$K}tO(tDe5 zvz+|u8{bEsR7=oIDt-<5<u*^~q0Kn_j=v@}i`oC%Gd3#4J0#LWV-@dpHsmemZ3lu^iouA3iNrqJT(c_D z!{}Qu;#5hnI*jus)Pc7Xx+#D6pyHvhx=zeprwv$a|A zSep<|eR_l@d8!)KDmza>fA}V(cQlWk>y;65YT8m1#2PUF_k^%DQ{+)?Q^G>{@r~l< zl_`FcV&cC8gc$~u1Tz;myE!xEG(`idSf`{ykJx4#p7230LVy{jV#=yMs7scif8@IkAX=y2NTwmmJS@C$vxWyJnI!r$?FPU9V92 z(_AVKJuhfdrx+FcNfd}uVe}*~oP$KcW8&z_Cb`!wLjkkl!3@>r^ z(--Q&fpVC__)EWdfX#-lckapLi8_UI!OgID__^aj4r>;$lBX?iksqT9c#~3q zBb?|hALB7v=J5K^)26-AiG*q!CrlJW19^C1302(jCjO95f2(Al??7>RSr!UZO(Nj3?)xPBU)iU?eIJW@=7#5ffX!D{%fktM2c3vVtN%V=VL z^c8CXF4ob1Xy)f zE%3QN^c1+aAfg;MyEdyTRK$8w^xbt6e!ysP4d6-==wD~$;ho6c3ltE%QC&32{oweb zB+i@x;-ppZPFr5LpdU^AjjlX6;6x*vU05;&mgA5;2+z@yv;@=Oq8xZDqVTLd5u0u#$BGfIaBdf zI4SI`dNj2>HbRhcFyc|gjVy)txfEolx^NebB z3#-8T-e)Z$di?s_b`MOsf0mY^p!2lZIT4d#-t^L_mNDDuo7f83MS#b)=GABkM@KTM zL1s5(t6o zhYldN$W0ZXjuxW_+9b4k*Fs~6Oa+l2+*2swYTj)a?sLivF*d`uqQfxw_hl)c%}5B-n*ZBz*D z!iDd6uAz^7j{MKh-B|O{77@v)Oz74g0g|O1fz!9DXGa{Yc0in6PTs1z|BN8-c1v?W zs45H1R6HLc-iEDQz>6ugOwfkbYWdjDc6>}}g3l2MCK!7G9f z6*{!LyHfG0xD5hH!t`ny8uQWf6u0?_|H$8%P0;V3h#^_V^`&>s&F@xp1SAPpO`+&W zF?%~KjgwszFLYL4QYvOkt=9x{$V1T2n4ji1qa#m*G~@*{d|*ZU{U9%U4o9An z@8C4aszBMr41}AgA%)+t%;SAoMvn0t`q5Te3@aVH|I<7pIwO3P5k&tb^CrYB)5&>MiCKQK0{ofg zp?LX}lXgS)wCd$`GV*M4UJ?^MD@VMcb)W+inTWwl+(r0+KUuAwr?Ju`v6$4jH3xHo~jvogAK zj}xfrRP8VrGAUIhct!L~iMrzWxl3g%UT>*=%#F8H**Sdbdedph|7X~_$#ReYMNHawYN|ft!aGJD_K;(B7)d=h6O>E3 zflAlDK614}hdbwX>Oi_jS<3x`&tXx5)UfciY)i@6vrtoA3YZ;7kl zbQ7ICASZX8j25(kZ7{*$yL0vhn2|2DFrIU}H&HmpC2uF$EUe@=x$+vuv!m}z)l+a6dq&62ekLgXv+X5xzshjVI z>%PsZ7dJ}0=G)slqb61qu!aoFL*Kc>bib)=gB^qEODapgtLd{ahZbz$XGP7QzH?Vi zgXi)B-~!T5E%0D4RPelrR^HHQZ7T(IoY>NS2S6nQ;8%WhJhhDu?NV02ajU$ZJf*;u zM%G3W^wnDDZOADa)2H22Fw80CnX3Kf^FhrghIQ%rvwhNSTXrt#`DsI19@c(J01iRi zHu`LSto%@!kMXU@+??O+5ol}jxkXN#V21SdFL4MZo2X{<{<)pG;cedB9YD8P9=7XM2&DC$7ml(Ew@G>~b*R17vV!UMH zu3@2yC*eKoqxL-JfsyVmLYlUFPmGyfaHz~lczFNJcRND&`Nj{eN#2n{3Q@oG+ zQkO5ofqk_^g5^OhG{%c}N^Y&Wy%K3~Q?(mK{u)vEhEG*3DUcVb_;YeG;@9?=x3hb- zGAcF6D=Kw}LXp5p*|@ttXd%RZPT@yPMgKd)zOoeLeaBu9t}$alESu$H2Z4}9a`o&k zpb!E6Hf7Rd;2OarGjQj@7VjakNX@Y|otvd9dtI9OAd~cN=6kxHpyhd>k2p^Y$PW~l zlLr^Eb3G0_wlHmXW}Eb3(Bwu^G!QoO(mQQK)jzyEp=flg1kJWd%}Q{|zj-hzRSGU+ ziPl^l+44<2XjiPC{`e$5R9x&ddtLH1nL~7MVo#!gbLEyn@}beXdG!O&l`0Oygkl(& zRBy4Vz0eI5GVBST=^pw@|ywvh8X-4=QleO0|>gv|Sg{jx!Xw^aL z&NWXcJt%frL$I)#ioE)gUH@GWb^yp3MMTV_ZET3klS}o$)RSw@o)lHdxVt)tj|Gnu za$!<)GfVrH{H0c;|pmpHd-q#@Wk3hHkRZoVM#mXy4&$iW1&eiL zq9(}|GWlv4L4_)d_}+aDY*BB>Bq5Sqxl8ZM zn$;)i_WF{?NWg*d*BW_gb)B?-#hZ&( z<#`72St%3O=?0xzRH!@>YQ7ijXpCuaBHd0Y zhc;PGDc1@=zFmUd9R{|H&-_Aywl5NCiTk@+Y=T>Mmc3=awA7wJRVzqY&X@3Shk96a zPBe4Z>5OfNyd*8%bx+7JzkN=X1Na*PfuFiz0~oI{_KOsbD|s{_=GZ6~3sH$C zr4p>fyK!hiM=XbwhkvUy+zPt1vbhao5;q|J@}O0=5V?dJ+)fE@4E(aVVxfe+;B?bH zP#3`%D4aPxv1m-)f=_J;P3P38sJQINyNgbQXP4Zm2WikCCEqssne=Z7Uo1|N#JRPS;=uG(r}GcLGQz!o`1x)-SChad8e9AOHa5P#iW6u>TgUYzHPj`BE!e+Yv#`#pgdDv-Y6p&f@nwm0}^ke3>_NlCl zO>hTqX-vuQiw~-ILyYaozR1?rY?tsR#`R<<`FZ|j9ptPy#zNs4|8y&uS2ImIO&9F~ zuOj}~`Kd!w_RU*xZ1Wy9s!HT^)9%I|bkJy_8nlO>v4wlia?M048d5KrEiBu!H;vi2 zeywt!K+w7sHuaGe2?@i)tE;7dELB}z3)+<~R2NwF&?l7pz-C)X?_v#Lvh(*RW4x}!ahLTADH9?D0G-J|XmX1L8oz6P$aQb> zyQiqlXcx6JaxZ!jw9mD9kpFV2h`~q!pOFhVweZZBSjoP6mz@NmeU1tRK|s%n6_DUbe)Y6(B?IM#Ff z?m5!mY(=7Od*8KoPlXw zQv6^5e~8ez@RM}f24)-4K?>-JzW&hKMQK0g#-L#)1l^pcy04PK>M?TC%*g~_@>6vFG-d~LXHjJm5e<~!%P{X|mu z!DO3fP_7y$%1DNGXkw`jeV|$J<%eH|7*G^J2fAN-n2+q2AAx|@%n1a2)E@e&+T|Af zB{g%&l|RIlMTA@HH?bXCRQFB6lGAwE6rZZO^bevZWTSYS*r)#b0F#m3W%@-+k-(zE z*LiDNJeEqrcaYUBcv^PlFpaTwUEv=!&x!lult3>1)V0WsIz1w9o`M~znIS_k8f-kv zM(Ng7Sg7pVMoDcB9HJnTM~!&)5A;%1tUy@PxgV=x(>Gb z8l<`_p*XmC=leyZ63vpT^$#y)UvGe>%Cb`55qt6v3N+8UjmdSNZ@JEl1;SkIRG+_H zCSS3uKGV*7*V|{!?3k^v60K9LUSgRUfbvTLbun=J4Ca;dwb#2$_Pf2JFnaIO#Oi%y zheN?`{2B{HN$>5YQTLt1h}VLp(pOAuB%9G^3M1gMITkT54aGW-EmrLfu{v<@*vNss z0psgf zlvXl4TOZrS(%#*OYzqJ^p22pC(2zpiVq6Z4q=7N%6H#ssIl>Iorvz?vE31!9AvRXb zAp*e7rzOUK3Xi46ZLGq728@YYrbc>uFg@$hReAnGItb z(Ih9uev0?2@qTq^ZEj}+gU<@c#;=t>GMdKheV69iIT}a`*}2KZzr0N z1(=Pb6*8EQtcXtd^fJa`zI1VEDuW_vosKm}wZ*op1I~!!%TBkKJOW|@*!Zuk9Yw=o2 z-oX4i94~OGJuo!5E|n!1M@bQn`3=N~Q*6c}YsoCk@JK#%u_WZ$E&VC*kTZRa0)t0H z^^xG|_ZyC`4_N-n5b`|Su`DkR$NM~}vsir2weOrpABAneFNA!|P2tV5^SLQgBbr|^ z1s^ouz_(P}|7Qa=yUHi*_*M8)cd{+ZJRio3vkQ2+&{`}>fu39On-yG?`)lG?x}W9p zgZNaTGj!3K@G#Y*FdZyJq7A$lMW$fW>GkP2db0Yb01~@|I8=$YR_dHb`3{?EY-tzI zrm;7~cER<#3h5NrM8?~Wc?RIoG+H+d`g||#;ATdMWZyc@TIykvfwr(MeO+Rb1 zMU20%l{$~8Kv{(FsFs?`VJXok9X3saZsx!J77@4RaQZZNAmgcM@&p)5Ws)^^-%}^} zl@1|SJ$&-T{+NqEs$*+zUUd9W;_6WK6xB{{V0HXkpwuzXJyRKdRaR2^>vcG*+^~P7 zA3=gSTU0Js@rx=OBxa1OXv=S1d9*TWpx1sbDFdLXOdDk($`qYUe<5S5AC^~Pvz9eHN=}>{@c!s(ptABIjOqBnx+*?9cis>O-rJ0!oY3)@qyPc zCmU0dReW7M&&^sc3GRcFO0i^K9h#tVe(}&xXEhB^-LWoB8E~oL__!^kE zaFNy%BF{Z}0@CwHM#`e0vz#YV%wCxfv&FHupV9)$?DmAuX^(~PVZ!_S`+MRx4G26W z)jB*&k2Erur=Mk6Wp&%kHC(mGnm4^ZvWl?!KUj+NZMV%e{TTf~sRu!HlikQ|NJdP% zmJX-;K%tUz_2I>IDW03Si}Za@$uWI5kisdWdd}hPjA6H zsH8{?W=@vnQ-Fe-%(84?pFUrVDz?!@=}k>zKw=#cG&6tV>%!D`bF10yZKwoDQD+DC zEKO-5-$lbWg#M4C^D{^h6Yxd4mR$vqkm8OLM$mc?4S_aze*cd#UeL?!Z&cS23=Sj? zTu-I|xi()c1pcj-ApD8?Hz1h-|*(73hnE#F6VQD3DkbFzwl+yJlKrHA~h3v_tM#;VG9dR?cH7c05F!xq2 zyZT4b0&4hvUB%WrTy9H3Jdun06#=e==B+l0#;e&@M0C4uif<5@pBjo(%RQ&aUpudrq~`RcwzO{ z{VCOOrx>`ms~z{`1KEa15AtiSSlK{#?KtcB$|_oCGL1#6?BHal!=RsUF9uohNVZ;C zO1&pB$BT(!@+!||U{9R&Z)poF1BV>A%`nIX0N5@2UKr(BYKce(SkjAUzbPnctH)I- zM4U&?+R21q?Tq&lVLdYhT+I=zme!vT%Y%Jj-5{|ib7@1)HpDMw^oZ#2VA`lMLyQ}|@(rYS`mZkpK zdARjb5&Hg*6lb=D#}lF4t-gMR-bkb6(RQ)4-E$KoPdOTYE~ESSpKwN)-N?E#sV!!C8QpafP+S8S>aLQx>6}@xQ zlKSCPuslnbnr#ryrcO=|(TJ|!G_U3ab5LNiMVq5&%UY%lIF=~)2{sk?6nI)Y?yA`a zatQQ?*p+sNDj0l$zFqrNiVDPla-@srpUqWKq>P?)NFtphLra6s^V8x$0 z05n1o2Nq2mTqFCv?KfMR2^z3BiYJfrVO!?+I}Vy=gofZ28?Eyq+reo)8_o360*3S) zBKIdxNp~Se^Vf6QTu3u)mz`vop|_!zbLecG3|XFY?i*Zi~0NhY@bC(ekW z$xcrQYPnD6lg{h|vKM~A;gd_2h`w5*1F2g9dUhsh1OWD?gs_mwTO`Z_;NiLR_*sN8 z`-(nc-(oT17=}9d_jESokFRCh-FD%_Y3RulVWDHqv2%3A4Y*@D_&z-|oWnl%5c{wl zd)^jUdYs6`@`FO2Lp^X3MCEf7Me&}aKTN2u5-`~_q!Jc2q&xK4Ua03n`DmCuuJ)=4 zZRSJ(gECxr`dnUGOA~cu;tW=uEBQ#E>@180T5iMr8*(U`Rj!Mv*qs(&@MCKQ`KR{W zH(+pYpqsB}hJ3>ri(i-2eu5Bfp+Rv75R5n>!tW&iQeHpHXXKndIY`!I%_3H;lkWW_ z+p_(DkZ~Kn^!Q6zK8eoEU;Ntdo|4(cXqSC@M~S1LD}6%UfC9Gr>N>1s@W_j!7cV&m z5s8eKfA(q-*Z~osW8LBA3b_Pb%n{5fCwEU9kW)Mz7M-iSSRY~VEPQDg3#IFZmchx+ zjhxAZf6OT{y>wHcAVUuO*!_`6E$rImTRRR6!jR40= zCOzQ#mj?_XEvWc6vG^8bdY%k@Dkfhsi#NU$FF)O2?vPIyzAqB zilt|2&bWa!syjMjUMa2+KRIirjt|pGh+L+(_87_Oq>(!@iD>}M?Orj_#yXAnFPPbSg0+=!P)beL}z>ew*X>}hojHhMVm zV}*Q@)Om1oyt)CRr1~?ym@%Aymp%6B_gI_Y)99B~sC_;!J%B70P)*-S!5RP$%(Gwe zDyq8eZ&|M)@7vy&_J#hBC?j$6=RL4y^J1ybLGy5XW(!tD*|1!bVsT=_*PJ)Ir3lum zg{HNlN%HjR^pKox!3}#RxK&HYy4*a3ExniqUt3G_k@x*OlfwSEcq%#OOZTtv&7I50 zJISUKpcZwo2Giq;3>~2uE#G(AVE~|CIIIg+<3~)LE*n`hJX?~w$egxAHq^uiD^)P? z^tPDi7|Z6u74P{1Iu8j+#yY9pZ42eQRNJh|nmh!-UG04sFP~;9Pr6g!nm^oHp>Qe+ zO!h2M)wnz#Z3Mal(;`!u=x&mVcc${V+z`ltJ-Tm1em zWCm;3E_+K2yh9SE)~`43!ohs_TEvBE!UxI-Qk!y&|FCmX$3Qv6NyLYd?;dom{VoB%&S zz`s~SiT6n#rvo%=FSFUlS5O|kw84Fc;JRmt!tMHAy=3NhCF(km8N5;2uii$_ky_!s z|E5&`mLU9(Xx9)wh6dK&C(6&Le#2B@$ZQq1A9~ovPzhT5kW!zb-W@}At*z-Rfn~&j z1tXUH2BsJ01D9$+gIgHVQc0uhScS1CF9Rf6Yf9E} zS~HnW(?>@NSi;VF?sZHpQTBl`&K^0k$P5^U`K?gRe~)qJF@}KXaA(ud!}0u`!b6Nd z%eP0(R8-*u^iGG~fUbHs>cVZMngS|%@7B)^4ki} z?mjQoo23R*9!hnNlrF_?c3;g(P!}I0kY&Vo%0`R8hy^0yB9&MN6lUyexmZh) zYH(u)7B9;_G+bDMc5~8gBRr(>Jp7~BX%iyVohnIV$y)2SDm^pW#vVs?+us4a8h0D; zX{IkZjTXf0FJ*G`cn@@A{%C{6Zh#*)iP$q$NN(bL>Ppl3ttp9VSjAb@9KSSspVgt z6Rs4xlMXfJ<(=i+Bern@7w#;Dypaz8H0qu3WN$pgDq?dD8bHibp4JAJ z+?XNwiMh~yhAI_ERbuo3=d>2eCgxUfy=I%k^7?;3x%-zvb^>`LeJhbL4f)nC%$CE> zg;4Y1V~!OQXbr=3urFpXv>W1CfLeA$313O-u^xpPXiv-Hj${4<&}A4#x~neW;r2Ig zNU5bm^c-$UDcT@sJbBNqxS^F=i^M1)e3Zv55&t<mHGx z4KN*LS@~1JzGfmw*P{XYxOP&G+|Zn{E`~mhtd4_)NpOxRE08}qBX$PW#;=NCT%V2)%K@Ubu`NG-M*m#6!F-ovVNTZKi!}vaf;<81? z#W8Byjzp9N?^AhF39sW+@!4#~X6s|6sHZp4GATZAM&(tS4*RMzd49qE@@v%NF_rT# zQwZEkW3VLEH5=RV*krRWxgzzQYTua-)yMOfbVT2`L#Ql-I3h24FR*#FV9J6l!|`es z{f5;`=;CW5gUxD-tJ(GIeR2|K+cDo#^2cbpe=T|?yfb>J;0>9Y2hC7hireXX%ZG?E zCMJs*mIlS@o^}f&&{;ip+2jVf`(A$ZVeO~@+mV*6W<1e|wRe4uPNimf?W2<=65CFG zxnfwDVNj_w+5v%ZYS$V_+LzKEQQYsaxnuHpk}7don39zH&E_>R{NL5~yXYT0WOR;3 zS-gWeICx!<9ivJ0kab`{^+s6n-7=20B7W2|1z^V?gPqUW$iBARoO$KO5S-es{ma6B zp7uu-SFP^V3~5GEbSJO=!Q5?h3M!1b$+x=ayHXTv_sR*{DoIt&O?aUjy5=B}&Ar3~ zSSt6l)y)zZ_u{s;jTtmIb;3K&+LMm8avcOj)R7#$%u@nfYeO6kklJsgTa0?kt&==Y zr?F4fhlibWCgLl?abBoaOa?tx1kREHD6OTedj*4OYKVQ1A^3{}@L3@sK`NwT$| zC=%f2Q5U7#rAE9?u1(r`LyDWmYjNg*U3RuX;cnYHOBjEbr)53+;n;tb^`JL`=0vnC zV9^DR#oBvJdc?ADxuZ?imsZN1KysfNXLICOJ!$SYRWbAyzwgcVJI&;XJ}(hIj`n&+ zUiAugb>77DVrzZgc5RL6b^bIa1#GkFjY8f?f+|0m*{BfRP4kljMc*yRLV?8vFLNPB z2JL%AwTi8P(g>v?`8EYneW55IXJt(_{KhsVOTnpNPhoyl@BHMXl$rcRrKB8nd|K$s zZ?2b?wKdNb$0}_5o~D-A$?D1}iado>?&~;Zjp7gW@3CdtEmeGqXdbA0Gt>-VVXGj6 zZ3#OZx>UIw{SdojV1mq{oO2F*)05Mbu{hGSMKjme*5_&b#Mi|?U9Spda#k{YA+>1* z+pKy%wZGlCwWyo&=`yL$AJnzCpkOaC=f5)=5#M%M`(s4zJo59@N#;q}#LRv}odYq0 z;{|19GC3|cEg4!I+n<2%_CyDepss4bmk*a?$46zMaHz^boji|L4l&sA>DnH=pbPMu z`_?|XIm9Wz1jB@q`3FB;1n#;+86etPyaPq(MA2hcyxoZco@Bs^X4{_#HyFBgd+0RP zb$=HiOO&o=ouM?r&4mTfY2GD=J`h;bpm7NGtvJW&zJ`;HSvYLH^@w`E_@JyN zq^Y;t00T4I*iM`oi@mAX2?J#CUZB;&ze(HbpBfDW80y%B-Au1CS!DOSR!3(ic&s(% zFko-w%USpYlRv89^JgK|a2tBH;>6!?8?B#CH*sqWUu)_9OVf9?RK#paO|_!7jR2bFu~%c{(#>nuho6rA*6#J8hoR0) z-ontYy1ImvADwTljn+PQQE4#B#$+%P-}DAXJJTQ19iu2}F&_QUb5=Q>^k#mu9+|Cz z9k#Dl@lrEMujrTz`pf7YreEt^x;4BI1ElpTtO(DbzMnparT&4n z>kNmh+rmPG1o4F+QKLmCdM}AiMsHCQy$hrF5=0ke^v>u+&!`c-j?Sow-Wk0N?vU^H zdw<;Lx%1C+%$c*-*=L>ozWZJ8x=Fp-3l>Fu@bG9z9P_trHq0B|13EuKsphGtjQE?> zw}ZU5fJgY+%K-cv z7n`+5vr_urU72Ey^z7|Fa0|^@#H*{oQLHdt#1R60k~r}9fnYeksN6G z(mj;#;gg>Thk|h_KudQNWU2AVHVk>fyZ`eWLdQU|uKLe{|Hir^5B&poiuL~`UEj+g zDc4(N?icJE-Mb?;f6}hL8yKSJ87_#uai1DD7LxfYx1FGhmUzz4%pv=k#VlF=O%AvB zc4NXVs*y8U?%2Eb#ql`^y>UB$ORt1~ye%__ z-E^KRezwoQRpCxHKIS()fTD*XsiXt^TU*yLapbi#yEY^}YT430Mxez7Yg0^2W0s{m z-Fr{W2Om>a?1`FQ6N?q!3eK5tZQV8ByLS_RA170OvI^cFl6HkTjfNzS~H zejQV0Oy1QzU=l+)PXN|lWwz;=eW325U1*p;>#-=%&sjqko4ElR8^Kw1$eY#Xzz~0# zl7#%-Cr+iaD-kN(byG3ulUiyloFD7%nbzXdWz$h0hkss3m;N*Z4e+>>_}L!0?wn{j zQ{BU(_G|bq0g)TAn8zyWE#X~U{1HVUM9}WyKzeML*%IXiQkg2PyjMUfXm4l~rJL(O z|MU++`(y`hlNvMX@o}VpO!Au8Y_DJ>8Ci+*W`dS?ntKRlY8_d-0C5YfoHZ{`jn7_J zS^NHtloPUAnJb7~YL6qJDwRGQ)Jc(ShVa@!g9TxLJKbZwI`F%6J(TY>p zCVvtH_rsaE`Z@4}!Khb;|Yr_FkH*p=QHePVCL$9Id32 zQ+QADU-SLM7V)^P-#1`)4brRV{Nwzc`mwdKpg{9^*?w1m^{?u$*2jvsc9U?kym$>4 z-kB&CP>w%aw`tMTuUhLw)Z%G7qurbrx@ao4^Xf9>IJGL+>igDt9ZOb#3VfjU7E;FT z!ju+=GDKhHv+^9R+(Q@JPV1=MsO1cuBprTafLPh`X5X);gY9=}ik`PGiN?wc77*!g zMrzri0!}r16+Onb#WoDvL^bK$*Z77eYZ<3$h&0Ofo+@*DdynN*qDI9twMX?Jdr7&Q z`IB93O#w7KBS^Qlau?V))|BB+5I6N1(27Hv?XiBiw~7hSWOrkx1M-k32lygJbVvdF ze!p)Zy99B5Oehm!=djUn$?{Pg))A`(om7nm(Ux0aq}g*BRn9gkN0xFoTh%eAtu z{a#SZXlHlk&Azo*;zzDQF(s#-3h7wDa|u)I4K>j9;;^o^(NV^a&hQmUJ+|$k`)yqm zJ|hbhj88NgrekY=6*=#v z-SvfT&D-F;G%*D;*jB{$LF%w?^RL`+E=n~fm)+D?%8=JpP-HtbWDC5$!8E~+xHqN) z?t`mYgRwq*@IW@N%Lt$ANT2hO*C$DUFI8>I0lr$Zcw%o=r=|BbzB=gYwR+Y>un~=# zL53Ku8{~?l4#%vM8`UvuMxW_}6^*Sz^B5kcXM-?o?1rTqX? z?JCB6y71Bh<8O`xd4m~72W`+#wW5F=L>;)fjLkpmuiYHtj018_9s*#h=~4vP6*n^qHdbFkE#w@8 z2&|kS=24T}^v<;^Zh7*Tiv8Ok>=cIOxYNnmazUD4nX#nK4^XLiNK(LLh3OC8g%;a2 zgsnv8J#b4GxzE8Al;RLu)N>n7mwtqvd0t-9YeRC}n$_VUIZ4WXp%RYl4F`FSuzh_M zq7D(ogM1G7xqTqDpbIM(uhruE=FZ*F973w{c-wAvg=VVCJz9^N_oy_Rum`?F4UGbk z-k^rU+2~D>O5nz)0~+@yLWE#6M()X}8kEg^hzTPj%W$fcm&du^XO>Pv zPuF8+Bx}L05Ga}AI1XFb!h_uVux4ic*$IeGngH!XQNDlT9$|AX=4VM+4Vzl2{=$z{ z8y?K25cL#U_r-`XA#X2TzV-&D?52AEV0*W&tMH)+#V6$UN5VUIA?GFZ5+T~(9soZW z{>=lx)p!Lrce*OewSI!a&n<51+*dCuGY+j+wb0*tOTAk;x0%Tj6U6LvU3Q;(T{$U( z;mz*3%D%NpPx0`sKp7>1>!bc|_)@H%eL$2Vi0ra1Xv*{=xn^bTFgLY<)$UuuCuWrQ z_3ryw6y7Hp)a;0@CYvsDk8qq*pS87~cAJ@;^}^Vdk#~)wT*m?ftSn0wRm=V5*^cp% zcXxhu&OdzpU{6SdZ6L6*v8SA(o^0`XcDb?ed{gT%0+#XO*Io!Vu1nz@4;*0*TkDY# z`c~F|Z2QJLgLSkyssz6#QCM;G4DYSH?4V2BT?&*%ra)5{rDDx;!i)vPDsR|2P*D*# zh4tm?^tIxg!F8~v_c?`+RTr`~-RT7Ik~NG~|9XEABT{!iH~|6hS=&QgjCvnYYi~#D zHJmR}8e_6GOODms=6nwL{469|1@B_4{yGEsT9GB$ zbl5c)?>^q%VubYSQ;17*<)SWp?W3J{Y;FfbeVSfiUt7k^z@xa`b=1*Te*I(#b$maB?9g}&h zG#xbD%YE&}yHl&?#n$*fIWUFMybjd(!TO)v28Qwe>Nc>kzR+X4xb%k#V0?@jsbPfz zZ#Ar@2Gh9he={8Du^tky=2a+_aE)3jm8uD5-Py0rv)dS-OuIpNu|ohx89Ez?@BJ5QtPoLGY!WP~fx( zmZAu9MK3D2zifp271x>%zFd({?(x~n6x|kXc?;T8RVLqI^p^cKBW1H1uk<6&Z=n${vVzoFgYnMr80i% zer|8vsaRGow8(RWp49obqd?&Fvb04QNr}06$*k9DaJ(BYY2!wM`E!t0*%Ab5r>(tA zAA_noSU@?ZbreeMOEt-?x0gq??AAnzUQX$x*GA%ETRZX&7iARZlEbm3rn4pN4C@n| zglBuuUB2BmKlWLvPZ{Nmnr2hq6VY6-!3(5wT|5^1<>oVrXG+?Fqb@zG1B0v3aJtv- zK>23r?iTox@X%g;0S;D_O5Z^iVvDzA7Z83-D{2OQVz?zyr6rNvgF{_2sxdElknm?j ziG59{Mt6lzXH^S!s`i(cT0VOpC>_P_RUl((k9dEC>D6pBxx4W0VA{p|Y{>!Q&%uVt z7{PijzcKga;ITVGA&ZIUuJ(HV4A%_#!|Z zVLOkx317op3$j6+p7Fmcr4&hINyRI6>V=yXpg!96@ODx~qcQ+e%K4>BZ`>Qc{#fk1 zp(?W*YZ$>m#G(kEBH+Gr7C3`#Mobbl1R-;U-7MstVlOu-0g95v&Eb`F%lY`)*I%tS z?wztWyWSZ_j``LN;QbUr`;Fzf%kGRHwalUw?#<46aOn6jQRc~9U%9d@S51zOS+WL6 z%?tJx?+B5s&aNvvdKiB0DubogyN727h;~u&5k>E@JfMmYY;|~Eh;C!w*qE_4gbI!M z;rT$%Xs+m|R(L}Hh*?tVpD*<)v>|SfgOL2}E((758TA<@vC{N@dB-BSfv(qk>$yKms^=5|M<=phf2)c z#}Wq$n(TqNwLi*t=nW549y2SJr&8fSvIXFu%NuG$p@qEn4c4t!x@r>~N-h=e2d+41 zF2a+#1&=)$FfwXC%cJx^t4hB_q+D-~PM%&1lU!eu@itx^Yj!`k9n7dcgWC51$c`-~ zrtXVmmn~-$XLHrKrB^>IMSqx)qwplG9@&PHhThv;P2+7WxcvT(w5X3Qdf&@u=Roiu z<;H1=;OMkB)rOe#;;5pO2M76{cdi$c(b>;KVU7TTukPUO8 zg`^MK&E5U|yU$=ui9RpqTrh0V)4eNsBHm5#91f@|)%D~TEIB+8X5lvTZ069}&If%8 z5M60J$W`{z>*F#aqjgKBHe07PTbb5MmMG^)fU*-oM>y7?pY+qLCB0;g0$`s;?blWY zwIYXOK2$Ej>n#QRc>>E5%bwfyeEA^7-|R5S-TMIL08t>s%7LJq+08}CjL4Mz7RG8X z%iQd6((_U@+95hk` z`9u%&Piju06Fgq)##0m{=Vk{6Y`$GWq29Ef=CkQ}CsWfu#$m?%0+_=R!|P$tvW`8~V z7eNu&6pn!kF)i>`YTCv61Zcu7dJ&RYUR**)G;$(Qiltzn(-)nN4h&6Z20%-G$s{e8 z$mb-5qx!~TlPCD)1)(^06c}KlL3K(S&v>6yWmI&%bvBrppJyfK*BLbu zy~>~?zhSuCuQp3Psm{NtOvFSPf9-SpQci#+RSLWlIiQQo@Peo1R`26S9>lQ<75i5< zxpjQHKH))eB^CA7^)8yR$WL=VS|45$IfXbhK62UPB-_Q!ggmAY5%M^({ugu9B#}%- zuZhF-D<(EmG^9sre0u|9dXSHr9>QkiXIV_vqk?>6myA(PQ2vrN3QBjkV>$M%D}|Bz zOB5Uw0uKIa*9zk194WE3`4$`))w&|g%;M6}JWF&!Rp?N)@Ck&4WdP}67%(hmhTI9| zON%&mdMrV}7kuwGu{f>j+=G!bgSmYalvJ+ z{^qR{6NpN$-1a9gv{HrTITci{oG%zp*xV$k>$ug=L~6I~DU0-#r3vCbk|$wE1Vmy^ z+RsfpsiRG270zbhJq~$bKA`&!P>1T6>L%1$?80?%305Nz2>osN+LH9lH~p9iI!Lyh z?Tj^P+hj0Z&r@%@QT-^`7#{qs?{Tgm%c;ONWH%K{Lu$C2r|HvU8;Th+$%d|4D+bbw z6F+)ww^n|KvEX!ntb~h58){^y!G2?~oU;KC$jPbL(dbx0S9*SFXI#U-v;FNnd5*~r z5q``&wA3KnJ z-eSM9YXu4tk~_dW^0V8@S`BDmc-nZGDG)E6rIQK2to!_Sw5B;9NYDRcTpa zodazj!UW*qosSo$F<(HIwdPsSfjhN$=2vl2%HQHK=FlC;kbDrQ2Xxl;nlPc>R{7XM zSdOL53i;caaa$nnSyU}PyhO0a{K4s$B z`B3ZJ@Q-v_9CxkUeV)AZ0YISccdVv&l;%az8&QwL<25xHrPygFNzZ{23WD~ST{%XR zl6y_o#;4r!b$TCLp1_cLL7;{nMCA%J#ul@x`+L%&aI&LZU1Z&KBWD6-+^e*0TIFg} ze2J21Xms2EHLh71Ey+k8ZWsqqOftA;5}UTJ+BaE9GBhpCFfmKlY;~<) zuYg6Su&nVtf#h%;CKmv(2<5=1vJ&EztzB;$vC>M4(goXfH{>8)h)ga^t%#Bpp&a(K z=+yVVJPEO5?}=)kRDZb-N1|y7iB0&?cJ0$R50_bk1^Qv6z^#|CotfKXV>A2o>7E^S zUtRCxx$E(WR z@X3ihW8sHbR7k{NI9+OYqVgZI@#gnKX$*{K&<_ja1FF;twQ_27>X3eM6YPILKY@~Y zXk8LYAu(1VPqJA%OwA90yuVoJ7lZ=p)uB=r8h)Ig>HJXDG{EmbsKy4<8+FF3RD}Zr zN}PoWD*6C8Hw>Ev-Ko{}p4?l!s&Vc(g0VM0x7|1st>E!-5A9iLxB)gszw^l(ilLL& zti--8YDEuBr%&tg|sfDbKq^Q3l-B84?9OP z1A{$-PYKG?=(QyYhBZHXQfgC9Yzkd5up7$V>;|9^^hm||-n11cTx$o$HjTUIx0aw| zc#_;}%gZX};$M;;XL?%QoL5#FOqw&UN3JuU%HY9$lT01C*H{+HV4LGisHk~wX^35} zUym(oHi1m#rxKhzyW>Ds_7ZBiF$6x<=iKX62d?LeDCy)scs{82xR1b~_dMdonS9Ob z$@^VWR)PVZsUEyJkD`6#I~QOVk}<=p$)x$l9|09%QZdTf0TKBt;>6w%rc*+B@4J{M z!iO-by^u*|+WuJOa4&&Hw}G1+S@xPU*8p3}6`}Qtk%j+ZQU5}?9FjhC)J1*rs@h>^ z`p90Xnr*dMdt_PBH)Iz5(a?qecvUy`kUhR=XnId=ckdg-bLeNM;Fdi_KT-`G`vL@iE(#l6|6~pqCH=8Gg7m}be>TW;zjp|rAQjdqG4kSB!#SSz2Z~~jD+%;e@)3A za%Uc{GdL#GgwU=QF-*!X%SLxOs8X(!GY-*8`r*&o$(8Y^o?I$*Mi#S?d?@V5>)+Sr zja1t)hZdXLPi?qT_r|SNiieUi4vKT}W(57r`7H43kHaZC6VXkTeE~2Q6XDuRVrRhn zRP}c}Pv5`27P8i*G3umnmRU}XIUhm&N!J;%3IoUafBRN*!U96vzjLWt%EC3jd_h#B z`h%+Rb=>vS97&6UFCU#l^LGC50n1X@UY#v{c^gpr?c;7t!eAH$otvj-wc1!)8LFK# zX`fyuz2##XEGaAWc6@^8xiY}U0Y_15q@m{tsBn8)YRTG2wDgI2>5H)mSRAMnpsvNT zyaHGNOx8M5u__yB4h2Rj&a2zt1w|gN&Xiw779;S0<4#oCPgm8x2o_L^SKSbEakbfAU%T9(%GjJ-UWD|an6$^3c{l?{XI^o(7f6&F*O;His zC3!8Qh;(roHa3Uwph&}_JcWH&j%yHU+`o?F!(DM?L!9K_hgMpd1cKXm`;pl zYQO2MPoK#}r4wHL3ftSrl=Q-Sfy74u`hP9yjqq78hz+j!h zIYv5LMomJZk))kQ8jIs$uV@at;5Z+8RorPWU&*6q4Sw zX+H;b2^c`kdm$Q{y?L+i5mFkcJLu9x=<{#?Q0)1nAE|3iy=udRDSSbC_$TM{XXtk{ zn^9xF)0P|>%{xFm*T$M?eCJvlPy1%50cnq`{C&B+*`&BCnoN^qFX@nijIhj$i46et zUZK#O_atOwkJn`f;+^9?RSx8{cR4qs)_hJWXu{u$+=|3@0hPqa`{@(ODu-eotC*Cn zKxr*4%ht8Nn{@fvP5W%f6AYMTRZaN|uzysOAft1YDSJd956aKnd<$a&KFC4|tI+j# z6<;_j)^3sEnAVNBiNmg+C=_H+q2I65pEHI9>F>%lcA(yc%=YDj%ozm)6>=fSgWojk zu_SlmOQT2VMsl^EpM@l$nA=}|y|M7q1%X}PX}Q`trVY~??V@6vSZ__E$wA{5vs652 zR(ue`3Tr_S9nQk`b54qBh8N$TTK|&pdQr6|GM(spVw9wY6%|izmkRL7osX|258YQD z75?g6eBf+v&N6jix;77zJb`Nz2P0p~#zqbbfVkOL2Gy>3Og@naza5v=&c z(9(j^=NS^a_ZeuiuR9o>C`%EX!MYl|3hxdHV;lnbs+Pt2?DR-N8s!oq+A%Iu)$6u^ zEIzEmKg$wcohOjd)moV7UFNYVb7gF1L(D2d3{wWTJ_!F){JQu8lzb&k*j|sl5;`a3 zWQ)1bO+$tcGEv%Szcov8w%Kn&&1A=1jEkq?tNn{-(R?I=6@t+0_!BC&b>8zX6$)dPVTT>TL7XWHU@WKn(#m@H`M zTD*)uD#%w1OXDp}Z7t|mtX2V4mmzM4t7J%k8aakk)F=qLAFTs3E_L}u(01qVWkw^t z=Ah}qI*};VjDNzhxY^dhcEX{bZ3Zm0&AP=otC1ts?%JP{f~ITUHSlAYHzOMuP{H~D zR+v{(<^=TL>*3@))td2RVaCp^zl#z@?q}*ecQQ#*FGx^pL3XnkR>=WtQzKuslMbb7 z_lScoMk2?&rOhgX41nM-L2={AP%Hk@K^^@`at~dLZqu2c1DL8yQwn4%{*@r;EYz*| zJNxL*Ae(daUf&woIkvLn!!`BeTkxvC5?spoZunBMv%ru_oA&((CAz2Y$y|Q{%31jy z+a#ZQP%t!MJw7QXjoO>Xr4V86x`T|`J=?IVSV65n5v1J2XOYaRd*=M8D4gW~SRvU% z#*FM}{9o~?A=t6??gT?`Z&f|X57@%R|B8&MZV&zK6A}1N!1zAu(BJ z*ko{IS1r=cFy3{0>0FIVpik;K(SmLjrx3xJ$Vo&`g~q61eu$eG*ZSv=f%e)BWtL)s zT=AExKPZP$N|Tt1H#B@BIiu*Ncvl73bW{Q(v$em@0e49koUpbY8GhJd%=Ot?Hpm>? z2~7A_ui;EmllSm$X+qtPya-^1m*p;UeX>QK%13!;)Tc@uX7S1$yfxcM1^b0hC*`ri zEK(k+S64bnv4E_l!qNhLJj+RCYa8wUTRrAj+2ErCOj(Ge0=~BxwqrzZNwkHV1lK#H zb=>(w%i(W8V9?N`uV&PGhCI(!p8ttdd*3YV-uAU%F3$1EZ+t_yt}@q9)*{aOCA&VJ zBCjXwSlJ;yW%*+NYBs&@eX&bvQF~vDcA89TdaINJq3vifljx! zeUU+vlShfI8FkLupsP2LR`ti`YBAwRq#u$ z$z;tzDv0GQ8aItsoWO;LQ;lob9XJ)swxwPS)odWQ~>@_q=(oyDbqLdfRvbqz6sr)ns!X(1Vhg1b4bcQ zVVqt1>$xJc9IoQ;&)Z|g?lCfrGRxm{9^6xCq2?fxwXqFKmTihVunaBlF*Ro>!0NoEJ>{I%5D}Yq^w7_dzK(L70ze1=VtdNO8nMBDsa4RjaC@&j9&5lBC z)%C3tCZ|~E$`JA3>Fs>$pg#QA0V#qw=WvQHD1BO&WUQEd1smsFDNs!zKId8P{n~y~ zhg2!0;U6jx$6^f3RvsMY_J1WU4dsEmnFdp>Ixo4q&~-CvxmALX)lR~;+kC-X2O7}9AzEP;f?J1wi zCW(Gn(V9N4rfxqzQj!}|%M19u_>6LpjwJmOh0FP!PU?o~E^#l#A54y)jcOd^c4nx@ zLma$K<%C*~`J-x?NjAugNg{!-Iakc&lidk{M1P!dDWtXLgB1&(TP_~Kv?jEK>9`lR zxAmtuQvnk1ILqlPpDX1r=atZwvRK1d;WRQ;aopxXpz=@LI5uxgLoyp-6P(YiHc3{k ztTqnLlNjLlC)Y?JN!9rvhI=d#Z?jETQ+4@!XfjRdW1mykxhpebxgJ`)uF~T#QG7`U zOLN$*a-_A1M5JVolH)j5fm z9&!#429kbVeqKu$v-s#Tac@_mNlXC9W+q6@vl-%>jA|e@^U-vYL(ujzRayrW!F5q4 z_LX^C{2@9^nXy*uA+nYtgH~I1->$8)sDci@%5uKKBriw2%LTjfQ6mQtH|P0?FjwQkp?-1ggf6NMD&z@JgycJ)na9uuPR8V~G$T^~^WdF25@7XCFI zlY?ID(E13cv1u%herz@3Fe*~S_m&v{1O6Kyk2@tlRi??n5e(fN$<^iFO@1}5$;t}X9hy(a&hz}SM zmV4M}yT}03Qgzl;;>l~zbT)4hc%BE6? zb&^PIl&9`;tzh0=b@=TL1XKOm>SH9X?rA*D5Et3O?odod{E8K}n$Nr5puN^Ff8v`X zV@u_756hhgd(m^=pifNhgoi6B?wU$ar_P94QxLhJ=ZYOk#ly|1&o@UO zZfXKFb8>!c><^s|V~&inNbju=rfs>8J{UwKa(H`cMk2c~I$+zIBf%7VqSR@v z*z4`k@wVymH)h`9%aT4litdj4DAld-F0#irj-)M(ws`sT$QBiY+>@+bwbfN8PHmuM zS7`c6hGvUB$|Cw?#Z%>{LAS8^)9JHAtRD3&!=8huYH17}CW9}YzGnx?{}FZCfunXD zMw2rzex}%yX_ZzVON9>Qrb%U<8S2xE-F-Cm7t*c*D$1q{BZ#O7d?KAD9Um<$r3fe> zA=0su3)0;zh=6nnNG_ptNH+`84br*v(%s9l{|mo=$N7VEIA_nk@6O!0b7$s0^W3@P z{Ijl@)qjm!kXu?*Og^7)$v_+7{G=Itt})bBQXB?2O6t*1#B73gcz{fC5|8mJP6D(A zhnA!aIcYC={}|y9xNk7W&JMseDveuty*i+K#Ky=TRLh=qlD_2pRam|F)&^8FiXOn+ z`?kRI5BMcXA~`|a1VE~w76i?T!o}3vpUO>#5d(j zL`h2~=5N%AqJaE%`+L^LlTTEBj9}=px6oa zQjc%(s{HeE_x^~z%cbc(KBKo!b{BxmLHfkq<_G7b(MMQ1fdFE9NZ13eve50#V!GWn zAMbtJ5F;c!{oKr?YM}_1Q(qSVze;y4byKzT%D8*F*$KW0_p4;594y zjGC5luR_5H=GR}m(lYyUHN#HI?8KBig!gM6aAAP_736;Chn;uNp_MvLP@W@lq$+xN zr%Q(?%s*S?SE+G8N}+Bk&W0SQZFUVQDDeyT!Qyn}C5L;5yhtb&YrO&A%GIIKdm+{Q z-!sRrZ;E%_y>uxJnEyh>qrAvO)&sNuh=SvrJ!=>K^X=70HNYAS%r zCdi0hcXDB6;r2fI^(ZR`U_3of!J&)5G;L~RYr^$G{Tb6lCX=plZ5HWZ(a z1R?KzQs_@b08rSc53+7g2%u?=^V+>6)x4L3Eq1Y?re+~Wgq(vpEimJDvT4a?WESIv zd=bK><+=9y?Tacb#n%N)JZXJb2%r6On;~$k>Jp@xU0t0>`0eo<3Zjp4nf;PUEnjq! zq}yBFq|4r<=~Hjg0{5Q;a>@f~k1i3j{?_=@O>C*s1mGS?w-vifbn8Eghqt2ABYKz0 z@wQwKr4B=23g}_3-$Pjr*-&C`tLf%|kX?0YOh)6D4N`%8??oVapN5d}6}lCW340BV zuhKf$Isp=jRNH@~(Kaqx%+tDWgq0O@b@9X1NG~wf$2u!UB)|YTug8!oRVQ;@M(=vD zFvAhv^<@^TORQ^(-y3@2P`8k2x6(N{5$9@XOcIeyw4Exf1Iz4c5aqD6nX1qmK2cm=jc3;|~ zTfal2Lc9}8QRIE|pM+|?6iOv`yBpwqh2CFlqi!JJOb>lJ=v1>xy87kfC%+Xh`9c@y zUdL>9@%a0-iTPdZPN`;d2LdBpP5G|mnBthyAAdo9#^865p@(|-hTKN!1&_)lmDyTW zrXE#MM)c38KImE_q4@boF)(?lE`rL?!QxX)*DV#4OgjL73I7@V4IGZs6IHlAkzAR6 zgU|gnzl7|Ak~Z@XS!(j#s-udkiuj*PknE3U(v9GZ@PC&66km{L6|6bl&hXIVQ@}Sn<#B^~IB*!_#T?&6{j$H8+Cabk{PSJY~Pv zmLSMS3yycOGwm)}u;2V$)v=u{2s*v<`C7{J8+dq2nNPR!q+r8USA%j8=ZcO{(&>{L zKg(CMzsI8a?e!ZtLBs~{7bhAPiAN-iO0M@}M6ONVvjOsU0LN#VV;9$pY@Y1>_v$LU^TOKH6d`YH0d63fTa_ggS*%wd-W+78z9kr?(UA6% zE7U^KRpuMvyD|@Y`V|t%vJ$vhjS!K46^`+HWf_E@vw>;(6X~bnn;~eETTCKi3Y~Yl zlx%4zX#>AZhJ;-Qh}X^)>W#tb%(f7obF9|?AO5k__|ZOlzo*`uuuuSZ6c+HJ5qF5!``#;H<+XS+sV3*6Ef zFf6Wdic+r?o=f$}$^MZZ+ozu$<>vgF8N~;ATA!>W zY{Vm_QxB~pkS5vr*2MLns{ltpxW9mm^ERQ(FJm3qXP*)a-`Y!2k4fk8t(EBzILs7h z&R7w)-C!s~TD)``!$#1S!EOzzgBh2)$WxC}U@k8(-9u^Wg5{=gh8xF$ToILhGpH4#Bh?&bt085w!Ea5|Ok?{-ItY4b0a?{+N{f>qnT&&sXcmz$Rz9QLm_y3_o4|%k=Ye za_G@pk2k<2CFVVj(^sTEKU{SaPTM+KWnWO{jDnp%}SFfl-U zd@M%qw#UGAx`wY$zft0|YIy4}Zf83&(2A0*n|b-~{1g*3o_~FJ;iluP-(@Nm8hZ8U z);?Nk*;|)P<>Swh!__R`Y;GrGfBW)b--N|6szS!G1r{}HH{Da{#vkfPKtw$US+kXJ z>GSqC8{`nAdVyIj}EB(le~4mK@aL;g1SVLjkWzY9w9?!C!drW1TzI_Br>PcDP6-8b+i^QZFBW0UI* zi8j5itVXVJYx`NRR@$h{&Rz02e?O5+3Y-k(Dhqc;^i4VF07dC7^iDgl>O$hogf5>@}i_~qk4p69QzOOnC|;!>Yl zwn~_qJ8iweP|-?`cI$ktw0P*`E!+|~KuO|o*W;1dG`{QvJx^Er_-`#q*TF?dGWqg3 zgLvz?+pjBC51y>t3|!shrM;~tW0r_L^Mj~OU}9)LYZ)h<@H4p4D^Anfmwy1BLHQAg|X{)Vg2QU(UFL#l9)M zq?cVZ>0pE4=+3Hf!fHS4mmum;z+%7ims8t7w3H4f9rpcK6!+tPv_u_dOKm(zc(cwYaExDT_mRHq$% z+7&3vucrmxO4VS?mb<$s$5m0Voyv~S%tv1TgXpDX&xe;I+OMW5*poUct-QPW*=pi+ zq*7MT3^hl~6~>4e85AVB zQ;@(zj-?s@E25Pb%lW=GcC^=DLWB8_=-sl=yJ66&%V1XPR7n6aZvi(WvF8WPj=Y%u zA(dYrRm<`s7Qe2io0YV8rZHe-T|Dj*%V-eu76UPiwt_tJ-fws}gn#A$&T*ii=XvG% z+X{dy+*}z*ho5)B+1hN539+jG1y?AVlIpA2memR)FndOe1}!NF+-$ZPDzl!_a`Y~+ zO;w_Dq$`>TxuLd@g7?b{kAHwAvIIEVY-Cy&B)aK*!i<;q{tp3H2U#D_GR)YQJ9J*# zyX0GfZwR4UThD-;!WzEAYMsxXmLZio0PIq(i{t($*PPhCaiBUw4};?#`$COO+lkeY zbKp5s@fZM7csqE7ab>*sZ(^l9{I|JLJ7j`Ic~<_I43(vg&Wqz%>U6fz=PGQq)UV18 z*{Oh~NLzr#yESulq2{b$*69#P{ot=dUkPk}-jWZ!c2%A%@$u$|#OqhE=0|fKtLA^h z@BK9~Xd!mmp)iJ_b6JcyIywR}BLro8;^5%yDU%Qo5_T$3;t|n(hF!uOzV0NDnkTl` z@7@*l1P&9XnY1FV2ZDVrp)_sNpvzkCIuqtdTO2p7(VEYZ_2*mT6JFIovqoF!%BW2W zK-0^faUFt+X|rL4pwzCMQ_~!3pVq72V+|GdqUHd+GzG`LoMyYGHpmaF{vfmGI}=TjyuooFqKD~o8&mU&0+w0$Mg z&9Z4Cf5%4e8ucp~I&z3T$gGdA#9hic^{i~5f6%OR6+Y7~HykL6|EtL2Av-bc`&d1* z9AsBPs_`sRFx;uSOT~+$*J|lG$h?fL$?>m5ly*q(!~P{b-64Xg0=>v6riXD`jF6s~ zoD8EE!$br%JvQ%MZwNL zq6_arrKzvJS6xFEL|5`Y1JEmU*LxdMTE6YbL{8GnA z#!O=;)?tcWtCZroPN$6altNy6Ye7QQG=)Z=*Ubb^#zhVD}ruuOM=WKv6 zx#c2B*g0I``d^-8Nw!T@DVTvcFgNEOg$e(-I9`eB6LsF1ovN}s{Y&Zj^9M+&ntD&` z0oJ=!?;Y~ue|vX*8BqE@C>grf!C2DAjfKW+VP>YlC_Yj0KLdJSn)7Xp)Ik*s(~Xed zAMFet3G}*NLs{=ll$niV=q?%+pi63=zI}hL$K-+7`5Y1WJPp}#*Tljs3`+?2b<*F7iVudN`{ zaC!gyJemFhmJaQ&LI<#g^cG{1%1!<;1W01hd$9Ek**$DCRN@y9u&@F65DaC;E$liOWi0RX_jD%Q%Do1{!$XrHMeG{qA(M znl2@sR{_smSuEGyILMyHpXFj-?Drvhh^0e%*)hhxlswSuJHZ+X1{hD|*g`8(bLc?r z<|uf2JAk$j)gMl?s~^y=z<>1OV5)eK>@Sv-g>^lJwfUxa;n^73(e^6~3;0u;4`{c& zR~DIxwtLKsumf4fq!*ZE_n*v}-}`u%7NaI-O7x4=bE|uwCP^pKFAqSL?0E7qUILEi zqk7j?h@8{Mt_7%L_e1JWTHICFI4>@G!KF#f1}ltX{jCOL7Uy>752((9qIpR(?hb*R zXLqu0550{_ZCKx*g>bHFqt`KxCpgIVTkJ%9qB^O@7LIw)#%+&%D@M`%wrH#T4`)d; zitt(QCIeUJomBr|tOM#9sFr2V%;}uK;Lz%Fe~$>Ki`J+JBR^ZjJr~%4rbHn}hDCbO`#*L7uY7 zJLNHCn8((I!iC1YWYS#EQLUnLAW;gAzqHC*c!u>--fKyPkTu*Co50sRERDb49A0v-NW@*xA z0`c4mGUN@|v$FhQ6Uh0A^5r=hP|>bH!VE+84f@j*0W9=0EiBF0>nT8TsqTQ4k6fim zLq{c6Vmm$^c!bdPe(yT}Blm^=lTjiIl$d}0@17=xZK=@nP9O7Y2GOl|;IjjEM}=H< zGv2g8C7h@JO>wJ6L?NAU!4pdS8oVLY0nK@^?{rhCm~e*Y4iA|l(Qsk5u}TrF=)2pO zqf9BE!bEtAwm@q2_$-8NgU&jTlq!C=XZ`ZCVo7tg3ym_u*x(R>eN@v*kc z9QcSG9aK?w)F}qSlqnRbsu|+I%T^}3w^&c|Tk4?Wr;HUM@7SVfZx=2>*tFYzFW0kc z#@T2+7@=`~Ekud01?&<|V4t;=K!RQcU{F;meIgh?X?mzk=z6lF%%nm&e4%3I`>Rm3 zekV(mj~aB20AquKB|TuodRFJtcBwN0V5rP>YQQ8az_uf6V9cn$sC7YN{~n;IH>p;- zLwP-Q>yuE7)+hqHPVZm3#!WtRIH~~N?NKOuxtZ>npV3ptRUg!dlZiRl>7Q!?E?Z@X zRX?sUjs@G)(7;sVC$NPA_<|@(h1PCMY@eMyo0d z!nG?yP~0B0yE2!-i=8iLf9&gw=XhdQor_=Fs3w2fk0DO$@Cs4^7Kli1|> zdsU9xW!2A2QQe}9b1xMRG!)mjn04LygyZ}$f@eF3smi4(R?!x}awh!}`FRnFin0N? zf|A&=GlS{R9($nc@!HpMKz1+eM z9tgVu!f&OX@u}?k%c~sQNz{mFYmR}JxHin{$mdqZ{j=>>*7svb8RiGV+*W5+_dkMxQ8KQ z7hG@Yz%C=Wtnb>P8Q~Gn+l-AF@MMQ>-<4gkfZ?TILXJ0?Re2g_J*M!d$rot63(8ATi}{l=4{5)d@^AvA_AWF3(ki2LCi;#2doBC5SLPijg)jH?M&ShU0>qr6 z>r*QT!s0tY_g;&%oZNjWoo&V52DCmpvvolUfhs%?M+4$z?=@9o*Y|-QP>AHd0P62dd z0=RN+w4O{s50OV-t)`P~r0DLsQZDv%KkSAZMuY8ir8kUIk&MUBKHo6q)kf2X3g*Q+ za8Fg09^wVQb~sM7=L|jntgM zqK;~j?WsO)8l4WP1#`s&RmRza4LT4K91R!PU@HK)(HJiPH{oHMJu zSa|&pffXwNtO%J>NcxlIJ?d7OCaXL?RtKl!2FeiWWBkNOw&ee zatmP#-k9ELd>OcAZfa9)>S5TT+bCvWwu&AzGGU3)JUcKZ;IxE8ni_V*AzE5m$cB@h z;ueXpGO=m(3|xPB_1QvlqxzW8PWAmxt7qnEqQXapGjZKy?RkiMl>cH(qo?RKxX395W$0am$qN6?5AWs6>hW{To~}Ne!LczwyS6jS&D7~WaCMhF}1ef`g$WStwzJ-H2#JQ%~J||H$PzJIvi%3^fi>U zi{_cJ4Jne=ZwO%fPQ;hkeh1~n3gIhAgj{UVYyal4W*N8dU(a3bk#Zcka)I|EHx3Vj z4w~#m`|Lvo*-D;+(Vpm_VeN*ao`gGDHr^gtrz8t7i_r=*U3Mw7%5Oye^kdY(;896z z&qcuUI7WiS1dPK~R^G8~P%4%jJ^Lhv++cnkFoVj0^t#OPAkPO?pu^GL^?Lk#&$j1rP1M`yll|0$LKH<;XgoOPfp1kq zVnygGe%9?p#cJ-s8No@0iRalhjLB(O2SB2WE z9(q4Zc_`rgH`L?39P4OX?g-c8OYR-LnjNWa>;aNWaz z3OB>bp<4(Zk%6Jo68Y92$=42hZ;X=RybmXtzFhO3?rc7#1Uevxp3Y$;uNr?`Y-k2VgsKD&{*2ay+b`65~qFPS(>?m;s8Fma=d zz}@GvEvaXRtg0%RH*MdBezVKR+1&``lU=h==|L=asb*HDk#+cbA;N&4sDim3+4ITUJJ(A1U8$998h>ykn@Bc9B6dyT$n1 z^>);-olUE0T8EycT_CWL(_`Fs?_N}mSB@efCEuBx2qzQz86zxzsM;-2KoSa|E;@{F zUYm6Nem~TGQ_M4STiN_Jb@GYi!DD(lsLVEwCfjDRZEM2CMfDRO0e9z~2`9->4_=p5 z8Ld_>N$N#+JOjP1ccCDE3F%&SPvq?RBQc%~lwbFC;7f(+cfl>S>?tnf>~w&u#7>pA zlE<@vSo$1r)b~JnzK`g&IqOJ}c5RwnAXhx)h8FM0?HMrSVgYw3b)|O?Y?K)6D}u9@ zL;x&X!zpKihJj~-?lO(f=Bg`H1KptF|-se4R0^Ykk_jEyW&guk7| z=5p)~uD&45Npc1pA($D5HIl@D7nEo-Q~YF7%1M}MV&EVd6VKy$On@wIOZHDQL5}_I z#xTdOzd@-?+@~W>tGLjCtbQ--=7C@E!Cu|I2M2@nvlDZ80Dt@jL}FpNwRT8Qe4F-C z#`hzlSzXS@2cQaci(ADp;vx=M#54*u+@zrg+4zM@LUj3h;iRiq6Arw$QN0@uzlf?k zxzGBu@v_4!&dTJur1E{7oDwwx$(eR6wyN%xFMAV7cD?vxTlHLN=(5K1QsNzcE1LeP zG&c6h!cFnI=JiC$bC*{_dMF+Gpr+<3Q?dz@A{v&0#fX)uN;{eCnl@+r6|my4w5%sY zsgG6nWP->e8D1nu@=1<1_2pDh6emEP@bEL!gfmz0xw`xfucvptiw{rf@X0( z!Y4GrzU)4Nx@+Na?v#En`6&<`?9L^^wyLj2|Xa4>Lt%~SimZ$(o(ldG5=2jt|9e@3t--dPoQiKKyKm#WDvqqpwXiwJdf!WPGvC$mPE3fVRX zR)@SBA^FsHCCY&u;I4*2Yi^+PRK$d3@-#G!Iv6o%kl1NCzqv-LQ->OpoB8ad{pAbM zViBf0g(l{bgiJezr}~mgy#mWYeeN3e+p+bwCp&6e6EjfV7Y6;UKxIAPYV;c1#=s@2QM7vi*ne&bMAe4Sgzn4ZW~+1?XyMc0U)`AzkT zdhhaCV~HL$eXFTo0Nvr(0A!_=421yKKW@c3w0ye}2qq^1-|vB~WA)2@?}JFiL(qfhMA;~S~jzeqgqNse~xe|V$klM;E^ zRx{@{l8>QjYHUx@Ibs+v<|v?R+xcH z;N>L$WP~lh7`;DaC?5BP_O?-Bvz}&R`<{g2W;4!h;ZyC}hV?qzV()t13i=bL@~tKE zJ&tF6iTm8;J_&>#Jk=ZLqo0hNTiwBV&k(h{UQ`OAZ%UJ^g-EoNqnl{7~%qHG~{JHQ%g`3xz3)t!ia@ zU>Y$&)&`TrrmtCF_Hi4uBq61%tXb(4NTAxz( zolK9y(&;r@z0paNGpA~ksKQEzE(j;$NNs!kAnALV4E<2J+3H{Qm|(LzdkXkC1Fl=T z*drTLH^}!LH&~@vyu+g!G7K@2^>2ddTx2Ln$JU`0z+X9jgUV-QrMm~%e{O9?ZXH(W z&`nqByX=*;&h-^ITr7&Zz3QtnpDU|rUYXMxDVT|2AWd=}NIV^=gJE(o2m5`#|n|jrEia3HoWbvorx62MykX46!O-Czeh> z+R@sxO;9ho85YRe@K#M^ZB)pxaHllV4VuIVS`(l%k#kQD+}77@Dgni?72%d9%*5CC zL<6HaAiGVx(V#w0FFx^tr{37*2Cv%rl3$S85xN6bHwyH`Vwwg$2*?&nSuA32*XKeX zG=tW~z~=FrFrq1u{Ic#2d*dHIw7G4|&G*IJGXDu$QFvT$=s?4}43$#!T(%`2tFO+_ zf8EOw-=vxCaNHbafvLSX*Sa_>>(~i%SCnpnE1W;y#&JD@>B{@7y32(Y4ilPtX4jhU zpCRb4R%fu05e%2zA*da!VReLEBmTYvotsq}Gdo+wDW{_L`A*w(`K;F<1YEMfYy-z%cGFyfoo=*}& zJ--={Ut-i?mU19AFxd3%b}u_wPUC9ZQ{p@z3?ZG5FpStNhSoG}%F)Hv#<{n!&Q-Qg zOZO3k1(*}qq`s*GG3!!6L!WaLH&Yt!Nd~4RvO-AemTS8zHdERt1nC^W&f|5Hj)|b{ z7Td%Qv_8Sv^6Qk=drPE}MJ%5-75LF+tVduJedjAG*K;|MbmDxVQiHRRyp9?GpV~Pi z$_7BXj|7S~TDzn%D4yKjaJ$SeO3@=g&cK97LqD8RA zz_`O!i}b{T&Ym$*WrhpvW%Kw-)b+#*U^yQI(u_?3W$bRb$=4ohahfjZ?v<}(;K`f6 z#I8ToD4uJ^5swZ^G&I{DfseD_XbN416)iWVyY)l|l2j zy$iPF{UqIbw=Ncwz?BD_^*fB64N}9*^Cc&01@{d6RbAzB5Fmenx~1XmF`H8p_lLF1 z3If{S4Guq;wV5_osTxoyjoRW>5pWtrGt(IQaZdn@>D?nZ#tCz*yYpeN-o9~c{RqAAWS&K2^H|`w&TGKd_*>lfIUS0#-oaKgYdMx7%A|QN z<2rbwxFR2Vg?TcKAX2P~$p`=tnb!VqtiU@l;dfhykndGJ*6F9PegiCg$z z>+Sl+>IO9IaxU%w!SafCPnL17=)^XZ*H%1;ZvaWjWQv*m^vtrUOWo);UR>&(Z$vA^ z(FvN#O)wAi6gkG$SiM5FmuOzzu&pfCQiv^9-%%U2=CrYb`soH{Z+m5TT;cFK*VVsR zWoPG0s-p61Kh{ji1_3Jvm1B~iZ8DpQiJruGi>>7Hz&OX{-crqicjzT9JO{d3>VyY7--*J-Lq_$NI*=L9q9`GNZcQ&!=%(<3-=sV7&GDR zG|VZHW@R%-cxx?r?yIUfm?f%pcGdHqirP2o@!7q1G}bLMo`?etzITb=-0l{BMV;x; zd5=$)&hvz#de%CHP+&+51RMZX9y#^}1C^v@lPt#sHehA)x+TU0 zC`6Ok$tn-*^bXgpKa-RW!e=Xey1zKbzoQ2;F>57b{^j(TleP`08l`> zrAz8f(endkq1nvp27(tWWRL>u&wpzbK#L@?gf>4cv~ar47=(!&y-ik@7xc}%zd^0B zUjZ9;+Uo+N-@KPknjeJc@sNWY``TXv+q>j~u|1x1Q?bd(-N)Y=_Oc;3n%x2d9H)zn z^{5X^g*NDpK_H)8aoEg$uB_*}oS<%dL=tfFYDdg-{%ljra=hLMd8}|cJcvv>l@nAL zb3tld*zX?;v9HpfZV*6s$(<-mN&|?tD$k(kg^VOdbT56cOK2kfv{Mh>Xe|`OjD)|R zF|`epZvWvPx2efbOZR(47VF-JpG2v@S0N?0;&6W{Bi!cvWVcP`=g0^{Q?o8WEq2a55+ecPK32kh z<4||8Sj)+cN$$y@opzlRX=^s81J`@5C#P@9a@MU)KcI-ujt zKzZoGH#mnhdore)T5POBJ(T3|M+@>``lM0oVwHAV+trn~=(zXTV}7mA6WrTnw>U{8 ztu&f@@EX1&cgD30B4P=swU43lb)S5@iSH}`51+I)ssEsxp=c8bh zeIXWHx>FzulQ&R7Z-0?woQh%$P2=j-EGIbXi?peTtkGqP73Hwq$~!z`h3Ttk7cIZ$z*nPTSp3dAOPNPx zq-MK~Q?U*5lD5)Rz~#%I+mQ@g>{8oa@6n*wa-s815haQN_fkCvjpqX7ramC??ao=2^(5>sle-WaEP5THngR zuKQ~_we^er%N&yVGNaoZRNbD$nG-BL-6IPL7LV>1`=sWE&ep4r>Z<_23Cj~?2*#_?2$^@c6!;K{Z8H< z5iW1Z!jpO;qxLff?cKBck*QJ8nt;9m)>=qyRJ#1LJ~uPHg(N}VcH=LOA7rx!pbjIa z(5G}Be>9Hd>7r{wC?ix^90T9EeSfZ6+j=*xBdTs7yAf^$X@ch6!#8jyD>j(+Hw+3LzLkA{t|$g=Je8kv8I9}O43%`s z+VMVXeyD@q)ZzWmQ|#^lGW+n_4+DQZ4}K(eH>U64txxrTCFkr-NgPe}rOL3{>@gS* zkqpM=+ay;{R*>{=r3pFR8Ww*#U;lOMNp3nWOLEqt6QQiN;9eijl}z2-!KB_CY0Rae zj&pidjC0bwwlL@GJ4p)R;mLzIwe`rIta#%rIdCE##|4<~$LB#DgN@;W-y7xKaX1wj zOyGJ;9TzyzwseuV-gH-Nerm$iBIiMP#t3w0$7>yc3A10DK%lHwGhQ1w!yl81P#%*1 zev{F@X~`{tPDN`zhWDj-4g_H?pp92=HTYn^8cwgL&iT!!VeYn6fo-Cp7mDJgPqf?8 z<#R_hn7aN;E=Vt#dNPmCNbH24oDoYegi75APwT+nI#?e3R~SXOx(3lk-e<}|t`L;n zTq=)N@<;8jS<)O$qe+yOlvfui#ab`m&{*6;S#DFNhEm^`%6o5d6?r1%%78_jrT0gA zfPQuxkzpx;gs*uzz4q@JEeS*T`1mV1Wti*JMPMl;_UK2VGuPbWpC}^-rX~L*|F@)< zH=os)2f~A;nf?~p^OVe-X&|dJo%HVyb{y4(EiR^CYP#K~!6?Y*m=L`gOlr(oc=utP zCWwWjG+Fs+YtP$4;FcRjkfCitkJ)w1NtgW9OZ5l;G;^LpcLY^eybsGpDG9m=b;75~ zxgPH1%els5@@Njr-c~`Po$7vBXsX2rfM539)a*!Xw*mQh=-Gnfu14pa>u7o6thaSj zihf3jm%qZIKk2)7L^t~vUnaZSX5F312Jg15mccFw1aEhOV)#yU^mmFc9kC(pp@`2N zHa9C=G0n1*ktGm!&&Y(q5KK4vS7wf{{jGc4ot+9J&DBjS1qAi{bSv8|@A6*} zw9>Ba*DF{R$N-8K|Vv4|SO z^f@EW>TJ!feeltZ?{PFU^|pcF16LAId#FMb<9GFJ>|rPGI$n?(ignx8FSD=CGYx+x5uH|5jdm=EfTQ_{Ge zMZE5sHa!s#ofI<}NaNPG7Gez=pP=wd+u{rDaWW*gFiaXb{A!){C)Gxczm6_m;fm*I zP;Aa$o^9yk3=-AGRe^mswI)u%)r&47c`Um*JTGL1%PC!~OYKNAB>#xFb*_Y1PQ2LR zp`r3`jGTYcZBBVWIt{?EB(5l(*O;c!no38c}v34@_-bwLhp8)ERNuaG*md!t5;WmAcCugS5IH$ zo!H=4K59Ru(&HE<-8%#rVQwCEv-=b5{kK1vSLKC^~%_=sU zg}U#+F)XyWaW3iN%GV77sR(r;EIitepMU&B7dKQ5yt`i|XBoXLC6bu(KtIdvFa*j*h4Dc1V%a9!#f=!uq~kLN2qNl=9&B!$)#GCgQa8Ie_L4ZKE|D!vZ8Cc9amtY-U0bFZ0vj z#CAgoT2G!kt-YdoH*>ipIlM|#`I@u`^=-ZQ^yEd_XkWPT?|I1pc||4DRu~Ml=I3sA zz0;+ebSzr=KtG(kuU;+a`G!ZajSMuPEd316a=gtiX}uft-rRGb@KQEncsqtGH1PFw z?vus3g9lHCCh>b@YpI;R;K-aZGB6H$lT6ywT8dD-ao-nJ$-6QKG^KEH2lFz;2gO|? z=|1g=*4G>PSwztJo-e&aJqrOS*fFn?+|@_DVyMWdVEQyLfPHKAI3gc(sI-e4U!Aj) zp!3*=lg2az!}^csiKRROSoj0yhseYb?Tim4dWkyHw_?GVgurlG^V1i^dOK4!&ZaJ3 zP0fx8c0F`%*!ag)PiECB@-;zxUzoXKxFX^mZg)hP_@IdcA5(}m-8&IB?D~|sKC+}B zjHKizsRNow`1Rq|7{SENqvK^l!FtWH?QxDNdKW>44L@Nmo=w3K@}u>^Q5858vqZ*< z-OwANZaYT+YCZmIWLt!((zb!eu?i-BtYg%U)?OMas?K8Az+__-FVwEHp~V7pjJ({$ z`Ul$L^Kz^&2nb7RUD%%&j5Vqg78OI1ry2J&KfTkZeFgM>ML^f7G3`r9mGH6Q22e78 z_k~&DJN0dc>Z&vw_Ldr0z-6+VxK#2nd6U7;)*NH6{p032_%>sZD=uSUzFYzfwm8*q z_}z2RtTz<~SzDpHlZ2Kr!hE%|TRVdnw_IS@NF+*a^!sWn${&&$4XF`$kuNwCiMrJ()&twUz z;1_w-d_+9HLRx!Dl>MJJB4m=GxHU`dZ(e>cJ+jg0gN8~?X#JseaV?aH)N(?!ZPCak zfTNbGE_lnvnfMC4ZoR%2+2K^k5bHVzz=zexvYr!?(Ubm`lLHMPJi29nN&4-A9>6C$6Xc&Ui}}fOLDp_kTutkuay0n z4YsY}Cx;DRM~+!oJLT>|db4?U*yutvttE$Y zxV5MBdA%6`?qqiUUF~ULm0LHxqsNsL;m-X!RECqmbl^lsyNQ7+I|3%tHWf4xI%l!X z!#!KATv~sC8h+X>2=(SFDG|S-dv;i`_{1oV*FqP~7q8*q2#0#(FlLa&QzQRhs6RL$ z3zdR^hJNZS`vn^}SPijbNE@D_Y76BQ2D{gg<|x6~!{13NshIg@KsBdqZDynMhs}Xd z`S~A?DQIbtV&^IU#xpG0IrbIHs4kYwP3;)Gt$Ag-r{>$;iFWe`H3?+Bb2s*hM7j+O zSWhsg81*c=ZlS*{w*t!Z8|#D=qVFu-a-+t*GRkdas2=R@TJqE%=l?N5g!O(#p*N*%2)TX+a@TL^ znM=sm7*NDIsU$K! zHz(FZ$z8_I=NgC4%v-9qiAimaDkorI*3%K`BJO%tnggd_fZdu>9*FP$==lalpfE+b zV)Zdd@RKOmEo;!q!aA|Cn}pCFyT^*Ar=+|r!C!WuU=Q|@wON~VJ6J+j0vs7Yv_M2> zx<@w(B7WI5Z+b=5{Ni1Vb+Q9OutacqtP4Aw!8|*7XOnHpOkI6{6%dm zi(0xpF>K7weLq*MVs@wz*7k)=%pH?7-t^(hB#RCDd+L2Q*MFqBjNJYIlNtUqUqCMT zoHqEsEab*y!?&5LT@kMe4BkVo51H^Q?b7NwZ_{0fSa7=8El8M5otoIWKEu>V93~n7 z06!#vcGA9YSNGf(P3z(ToF+v5?VUf#NEg+`k((;<;JVimC!-j*UQK%R$9jQEe@V=< zx(1U3CKi$cB8e~(2w7w>HWs-z<+Xjngjo5TlTFiziz|J3tsmnlLiPs%=W08LaNt&M zPD&N;Ew<5)!)u9*!`>Mf!`f{XN0Q+aP|Gf4m5l3eYv!a?f_MC}IBVC^#A~b)xy~hQ z^g90~Vv`r%*QY<|T6JmVx|3$_ow2b)^nld{u}NS<#&QMn3X9;VpPelBGg>~ zgz6d3Oq==}8JuixNd<}2p1=iKzTW1~u}GZ&jSZL2cy>Z<#|?SB77mUlKdeFjeS_9W z6PC*s8wo$jTxMrFJtFN> zlXj}fa%CWM|G^q`Xv)Y6b^EV-Rk{8sv5*J}A5A|-(?X;WWLUocT90vdFb`ecp9B7l zVk%@fgPjq(w7*Z*yLlw}rKzRJk$lV!85V8b$JknnCC>fB6ApZCCwyeec zE`<>b4PVSKi56$2opfXx5*WVG+-gd!9qd~4wNWjcER#Y^#h;caO+OP;7e)-*j+ked zo!vHSJh6(h3i;z!`S&=C8F36lasbH9qv#2YQ>GTL(>^ObHF21&H~Mi5LI^Ln8bbS>HWG&vPw{i2-^k$y$Z>V)@7w z3b&&GI#u_6cNL$Z=Kw4PJce*fTGT{_2+xmivL;*gi}Y>Bx1B-tv&q4G z2&;8C7ZKVAwl>kfw)}u6$M_&FZ2{~t@|%Rmqbeocdr^2lY5CXgdi`XB zl*_x7XoJi^kl%^H4%gdw40#W4O4=b-I(bAmLiXtOky))y78RFKSwp+%`vlMS5nH>K zTsh{Z>&Dy@_15gPic#t`yYpv5)%J6WMZOdE^DOHQ4V%z-Xl%Ljt{0$^D0{5^^W;x^ zBQ&#P`Laj}?d$AqPiiosJu0RA%cEbA``UNn3(3l(7}&dKmEuaNRQqxW1`Mf(GJfpAdNT+h)vIk&{jN)AYuzAx-U3pqX z#d|iPGM$6AcfbfszqfuFo$s=JS(3WE5Y2b1_RQq7n}SiVaU%Vf6j;l1`fPvw3dDh| z=`H7GAWvkKpH{_T-5H>o)9^BBaq^k-d7N0T!577GV$eB7`SSaN9cPoXv}&t*$`z6A zN}%`iB(zA0?#0qX>|CXcQF7N@zeTJp*{ys(1-H4Q&G`W#7ufeRq{(#bv7+C8PJ5fX zS|+M!KP3KpyMqWLB}332ttUE(Kac{<9n*q|)cC1ZG{tM8I1|7couqSlh!_ZQL$}&n z-MALp%HQ$Q7aD(8Pado>!;Hr~;XwBkza=VJOWYNPch1 zUCC|JaXT&7ck_Y>hsu9Tq(TKX)?EFiX)=<9Cs=ljqXMAQCDt#zUAa!NPk27)&bkRI z@#tqRqq-BPIZ>v=?X~$pa9`S6eBk}N^$n!mHWJ7|ZqZ*0+Q>%G%yw0zDX;8VjP!iJ ziKkU!v=2f+BxS;z13x0aKE(*SZHYux6((l%v!(;30ZE`^{Jiq@JfxPbus0O^PUU#( z>`qJS4t_y*kjM3n$BK=QEvZ~wwohyW815^)?iVdV=Vw_~!~9Yw3jb+K$XS}?qrzKe z@zU{9XShUNjQbG&#be(H_9HU_L#cvX7=8?S7F%z9^jKmCmdq_33-q2xxM2c3Mb zT}PcB&560s%OHWHWUq?HIOfYQqUk{k!^ImYE_%JjmI->9{-mE@;Hws8_q?0u8l2bb z%Nj#}Bfr+YUk&0h@pQPS?8ktV8YcXn=(Ch)xmiE{7mN*~^hb4;_(T)C?*KwTy}x_D zzeF*i*PDjK7MzzjOyG4Um%pi;+^~tXdm10UD6S1b7qw&>02O61&eL(jMpvjB$`Ze% z_ISrF$rpn;H^J0>Mp%zRDAOu0eYXXH4dNrV2OP%E-AGyb?N{yi_|&9JGF~u*qX(A!(!m4aZkSP zR061m3YfzUI+M5T_q^%560T&s@d6&`OesIKmnxw%7oyljPVd&ur1LRSt3DY0>*9~0OC`?d8ZpOy3~Z_NBv8)*lKdfh09>-^jV{gx z8g7E#2Ek~jfyiof4hW6jFo4^!0pmxb-V}POD2+c6g&?DyVvbL%bj$7iWtHT?^;EeO zS*}zTqQ#921!PvB3wl9K_D>DxsX8bg%VYXag|)U4fu!^kW4d1}mC0v%XTgZU&2XAm z#8$1*8M*BzAn**_-SL?^0%R+w1i6rlcSr4j=0+>Jg}Akd_}5W|S~u?mX_(u%I|$gX z|A-dN?1S(77!>`>+PnRg*?)d!#ufs&3wL_Uprz z$(4yWdjtFHP_5gC!2&b*!fjzVmAdJ3eKOu1iz{+$W%Tv+lL z_69lafnFlpGxZxT#xljwTOcw%<|;0`xtlW@)Q661Xgx@PLY}i}Rfmo8y_wzzm%h|3 z;afo^l5jG$#9Ep*!2P6gpo8!8cpyC$ExJ{{H;a zmuD|w{|SU24MKzTIyJ<$e;kd?q2K6OJp7l`G3h|}w3U z)xdh1T~?12ErP>-y~G7Rq5&Tk#A+)L%28=1R}mlkg*aGEr~XDe*mbg<^X%u81HVk< z&F_N=6LaoghR&kb!60TTB6VLLQ$Q%iPUn*0vK>MZjyFU4np%Z z7E~p4*Xv(uw>DX-;Vyy3!f<;&73{LCnbBCPacF^D*mZ=)-a4P5+E_E@@xOtbw@p$C zw-a`h3VN;ko7q>Gfj#X>3z3(!8ufNFy%n~Db+oa)rMvG~g>2{r>Z83_xATpJ>U74a zYA)<68k}UdnfQO{G@`wy(Puoi#1GumdEsV~h8!{lb&WlMbTj?da7a0f*au(UtYlr|FG;11Z}A% zwOE8cdsr!H*9hzRSeV5jPpa4`bfJLWS-5m&-7Mb|Lm!Q2ozo-df9O-_Ev?WS)y_jz z$C}yGP^gfEaj4JDlX8J+<2C>N*1Hax0C6Nz2+hfRfv{1Y>+X1S20{O>&C(062?xqO ziDw6(EKOZJ>&F$op1lIy?I?S8m|du)zWOt|C36REV$+C*4!EBJ>9GF!G1{`ZaqMSy z<9KPp>n^{4vA`YB__Kf6Pne;zh56%)p3Q*{fv6WVKHI63<+<1!vpV$1m7>N`)P{Nx z^A+T(?Ig4ce%-!-&5xgv5D_S2Cc~zuIdgqASG|&qF87adhgC&p z;A2t}$e6q=gFs`FPA`RPe@|feOts_)z@g9!_uEKLiy!Q54{cth()=WFs{e67Cig?y zWMj47=By$+ADN=7M^fkerUkrL;dK+%!pMT|i;MO#8=u)y85>6dGn5BASkFj_Vl*l2 zCl$wLd9k06ydFIJ1=upastxiSe*0=v61*Psw1}BTq=D~hGZkpr=Z1^9N4d~FiPHL{ z?rLgmBb!-6wfPs^7O&vzP#t`M_~(qN6F5VG_Zu5*QZmNV4JUOCD8OHX-rYD3Cc{k^ zx_^H4Mx<@5M=PdYGH9UtB!Tgv%G11}OyeUyNy< z$gZ}?Z^f}8)TS*6k8?R#%x_*(Sz!(fcOxn4c2YF$_-(J@<&%7Kqr3{E-nhA?k&H(Q z#y>`)Qc4FWgT84geeQ5+_!YajGc0gR3itYMe;g}xpNujiDXF6qd%1RKI#J$5yOMFA zY=Z6!Ioym|c?;KPTB?u}+~A@y|7qG_xmD?{EvM^g%a1*kmx9bKCFWX(NRt9edi3zg z9G~^4&j83&y6`UyDueay!V3t!86?S0t(d<7&iHp3@NF2==4NJQ^i6K9X|EM$k7-{| zWlZ(ednR3R$!s5X5%Mkp$jv7$JS z&T!<9K!2l|Wo9;#tZ1OO#&Cs7Pp1Y3BJ{VW&d+P~ZF*Oo=6)gCojcLqzMh0k>Gh`g z%>nGb;}@1Iqo2lJ;y=%{%7~IQ@K`NwlVQf}>MKSkGz#~h2Zs66Ihx)$?%9FQAH_^x zJ61ps;G~1XN!rDaNBU$5uWm5EF}Tr~7pf?&+}p2=sd3aH^V0N+K^CnT{X4Lf+DeLe z@IKiPU#;1Y99H;;goF^wa&H+y$?sKHYbmTx_?I&XSNbpSD>Wg`HM=!Q-Ic=K%`*G0 ztItJms<6Tv$vdOaC-$!&;gMK0K_j15+I!8`=R@aw3I+M$Ytl!lXB`8Z{b6Va{_gpZ z?!n_%uhDtqK}rDRLhJXS6*eVj52t28Op;isY}{XMkoht}+g(`@_?ei;6&u(HFdI0|i<)qzLu z#_k{~J%4|iG_={XoUtkT<YnmIvMPK z>z-AHwKGM+;LfS;;5J8v*M$F!~kww%E;FSyQreHwFV|7`?{%fsbi!=GrTJFnz%* z_n0g?wF(@yG4?aAd?CkVtlYbhkJp#~Tnh6I*XxtIMK~eNfH+m7m*+mbpw}`@mA0^o zuBQ~LqT;vTzD8VOdi1LI+*4ofNBK5y`Rt57m_lu9HW2r|bag`?wr#AGdmP}*VcYNZ zhy~C637|{9tVAQpW&xuYCHpyC9Y$RbDw&nLjPeVK<=_HXUk{ZDGgMS}u+rz{w~Y$+ zTS{*=I-u*VeiSbu$R!wQi8kC$W3@Myk}p4S2Easkd#8{6HgGbtcv&1{0EMTK@;QoODfFD-hf&PU6gWa}Fm zoHVFTBG=Z6s~#->wa~amv5N;m%dzijyfHd~&>^xbzB)XrP9EiBS~i_wI9Y>CWb0J3 z#&*f{(C8NxM)LhajoF(p=ikxG=CG5vQ>`cCrKRaO=yX;c#)afN-1(tT6E+^N=ZIdO z)Gd;8axfn-WSG*YVw_N=l8MoYGxJVXzge+bJm#L8Q1@s+RU$xK!DL%jQ~vU^DT5j= zlQ1N0*NVSp7x9!78gld~yNnY4{7VW%aL4CKn!OGP0xd~#T+mvZ54+-XtaY!%fI)fo za@|C!pAHeyk%Y;xf=X+=c9&1pM{pTy1G^`{&_X@t(Xx4$q6Za2I96}BTr<;Qwq^J( z)gfSD6`{o{o&AyCFNHh%Mdm*rPTX;0Ij>XU((2Y*PueWxe!tyY*j3c`<<>*_%^)s4 z%U?7~G_DL!%o#M_62iLlMACH86*g~t4AD(#As)1!23S6vuM~65=5EcsRrHs zTN3@;6IwXcOB=ok`hw2~3m~g)Zkm>w>%OqSB zqeF>!ZcpG`tOu47T7!}uu9~~LHBWzPc+uH$oI`y(Btr9vewR<vXO9VszAFq)}6Ql1he zTBZ_;XOC->p3Y2QFN#8}-&LnHAnQeys>-6y1 zi6}q;<1ntGez@9fnZlTQ|M#!dnLEdC-3}zX4%dtpWB;{41XDojWtOq&Ch8?e+Q6Aa zb^B>)y~p|{5){S#uDbK&<#+RgX{gy2V9nYB?^n6GJoYm3c;ybwo-wD;@Nv+N#`A0l z`jE>;B!}7TX%KG+##<|PWQ@TFEXGhhq|maOKnAuD&Iw{v5%b^?i#}}q73t>5v|gC# zu&-%AjaJ8_)s#L+k%%X4)&3{OPW|n8#?R6!?uQBRi=O*xpk#*mD&i~rdEas1uDn!y zZ{VoDd_ZTc&r~6&8|%6bEQwP1p*CU;11HNY6wK3FdKhe!{jsAqZHm?JO}4yHa(1RN zwKfAjdl)Ti!GVbY#xCH{d4f2h?EXr9X<%a5f{lze%b;=8AuX-P3|{3&T8F*Wp`)3{ zVV3Pgm8M^ck%Ri9A5l`Qv@lEaBRz0wX~OG{;^XogL0+08V+wlV?;oy1Pxn8)sl)!G zhw^IFwwGlHNL?CDM40Lv_&lbsaD%^@StIJCb@D0e{fPhDSu@~q)a47wZiZROkokzvGO#CoyF=uBT57Hi}$~Q zr}mBjqNDE``{r5qv8-ofG`9dpKIbjj;7h2TTfJaa^^~6)L}6> z*b=w3IX=vRikfW{2zpz*sk}RFlwAbhF61L^d^g(rw7Lred{&h}0$Wc`+)kEV+i%9@ z3+d0xtF>fAZqa9@{8kyiP$j!3I)w6l(J9BzDG$)$c94nq7{^pHMrp9CqBaMt|GHL^ zqPF#J)3kSD=!#5I1hq8S^$XP4;cu;kM9=TuA2rwR7;;GL6r+lMwlEuFe!%_t%M$co zGnWqXyTSkdsWMjy)J?bO>=DhVdH%}-$qAcIF3Re?P<1jTV6{rfOEobsw|euMe}jk{ zgHno5l2681+{I$>ofA!?WRwjOVHX`wd?ZEq((-8VKIgE7ez+0OSt-_MNBgh4Tq3Y& ztjugYRpRC)Rz7S#;x1Q@tI?0w)n+l)2kbB_%g6amv{wWa?Kk`dwbXF0&oJ+B+58nW zaEIYPf$G)Y_#giYS$=x=#-MOT$fhnEKTAN=^U7;Ld=Q3&Pc)8$E;}3HC*4#L`+Ivd z1~c#fLE2TvHQDWP6kbF^L=12$3J40)-KdC2N)ARz!-yd%jrt-D(jAKA7(HO5L5HJ8 zjFJus>4y6to7Y>PTkoH*FwS$HbI$KuzcZ8$^a(4VU6rk-hXbqFcNm)X?rpq&JA5i& z*K{hl2g0Nu-Z~;Vxt?7x>Uv&xO?CEw*OAbi>7P;H$4&pp3?vSQy>dC6`A#1bnDDi= zK=@907@cz-@HcWlpet0wiz{MTviNlA6kjs1d8mFs7t3k833r*{$bf_cwd56>KpjnT zixBD4P;KfF8N*L)ynmwJUYJPRK*KNlo7cfDcC-t1lY6ex{NM3G`*=LaO!WV zZbre~iJ3J_Jjljt+r17RB|fNj)&ZS~=Xwjpd9t?KUsmE8T-&d&y54(i>sA%7fgRC+ zdkFo3rzb}amn210Tkd@Yg*W#|zf;kDI74M%@5!e=tif*e!N&gyncQH8sbpEe6D_<8 z{n7L4GXh=JaC>ql_@(4y+FD@mi41?rkr&UzNK^s-jkmJkU+JEOBry1fSly?xjFVEY z(%T?>uQt()?@#4}5f&rf@m2+S>}POe`u6eaKU5!AJR#+oy6MVIguFdcIN06fxx}*6%W_`h$%1TQs>n~Gw7Cw>WK_CEZm$$u5;Qc}T zeucIc(%AxPeiZhkPffzo+$~^qWcboB0Yt8`AwwXhv6Fupy`H zP)kDx<0*$r61_3LoTss@88q^-U1ntYH6rmc_hP%v@LS_kABJT1AY&_ns>56<$XhQ? zcT_uB1%!L-wAqeOZ{p3?mMG(R7m`!Bxp+Vj{KaB^T;*xEoqcyrVPWCZa2nhTq^TM0 zkLbB-YyS5vlascYhavU3IY8QrwRYmoCa9tKKQeafZ$v2k^11o%`RDot$r!S1V>?ez zag?%#b`I%X54WV_%^0~|5-D$eah_6zT@%EcNF>-4(EQZ=UbKeg@azG}p4{?L?4vsu z{(r&JSq9O%EFTD0{y#sf~C~LjzW##~jwZ?~q4uz{bZ!9^_-cCwR-!bXQ zd+%Ah@CwU3z+Yfu&&=9qfhx93E0;Bbb$^d)bhKs8X@uSkx#`S{YMQ1jT6!*0bLHG_ z$3$?KP!;KSRx{{$R>X_cZ}TaAv6YKu3|yDSL|{C|1YD#0Cp)?^yp%Eumr4TU52)ehE3LBYb&P0gdQc ziV|#9w-@i%6Xu^z;P(zip#{re0MKesje7m=|Q)-S+o*j2<~R4$bg^E+1pqP)b4n@h2=MIJX8#* z`SPtK*ty`-KNqDjaLVp6GmJ>`7M`cv6N9Rn zktT3^iqmbvWw48sDWNZpn&SUSGTxR7V>22ql#g!PQX;4*E-xbKY=lsM9DX|NDo5XJsR*ZtD2`@1y$buGzCZbcgdgkF^|D29fmk=wsoqefx3a?&9osDs zCK+h1xNMtgkdaG2JV-K>ZK6eQ@F;Tb`U1`KR!t|}Rxj9{45K3H*BktC{rs~dQu|$2 zYuFpXRM}MN!qs~pIbG%M#I`CkyjU$)MpiYUY)Q_o#?Ay0qV$g-q@?h4x9p0WQ;EU?pPnX z5s2135*%Qsu0TA zU*l&N+-77c+~%)6mrJRDtWs`Q%YP8O2m92N#JV7oU0dnq_I@9@+~x$4kl*p%MAH~smNa`3sz)ZJ5J7XAp`C^=0bUoSI~7%5 zl1)^Svo!>+b}AC4)vi7_GXg(LT%WaUWn{&2VHPE1e>k)?->~R!E3O^KsW{y+e8tSX znLApyk4ZdP7wVKCZv|R^29&6RLYhCn#!EWKOZ2_jwi!nMfz}l^Bh?sGK$r!&*{H?c zP|;9w${G~s?OT=RQ?3qxT#2VjnuVQwSrko`L6Emo<(GzQuS{)@K1_oqck z9qI_c4N%AEFXnV-U68)@>2m~JtG03>3GIMd5mZ*}|1kg{UiDZ}t?vmpLiC57qXS|)cVl_fo7fmk0qY^p4%J5#Nv|gl}ke)-cW+B@6SV?RKQQlFPtJz$Kjthdk4lgxzT4vBSM<^JtFTK)GYbjC z=IfOJ%u;xH$`jw0NuD$J%AT;!3#f_*9l)KQF@8g#$PgDy2Z_a~xA+8{rz#+b9LA1j z_EobTVVE9@Gls`bgEm(Ws+5FXH*&}ROcJlDVUPaU{pu5VCfK1)pevKzOlV@08^sOf{xr|~8cAGHUypHr zvIYqdj1dUORNIwJ2gky#A_a_%5mBq~oFtWm=JPbV3Gd|#&@|_B*Z6|;da_sIi-?Qg z2|H*q$zx?rLSe3X>|*>SLa)fv*B`bu>o$CF7>_ko6dsU1vXs9sQfN2re zmEI>D6tTD+F|A`1MiV88p5ssjPo&h}V&!=Eq5~CG0hTbU>Jr{SlCWE=!*vrdZHdz+tc^NrC0>~I>kPUp2VHJa=`w!O5JSBRvDX-$vb3>`r$&jNUs0UoQUcYY%C zwOj_lPo!&0w79U4m7W|N8VXM@)nV^Ts?^^f;Ww+TSM z*Ay_&8bk^E=Y^j0iUxt=G}7-VznJy}8vNin@qefQ4rH6a=7xJ8gtCpc7Tp8`=`b{eV#@UErVdYk=yp8 zaDoTF0njX8el+WRLX-dy_Hci~?uN66@Beg+bM~rVQX`37B@~7Uq+4J2qj~}|{y^78 zi>>{M<+lorxH6iw2ld*+@dM?8;^MSuSAKEvylAW)O2>K0b7etd=kcx`m?5=w>H&+; zPnU&u$99GkFf3&&a#^Q%;DOn%Ak?H~;PyQb=$Aza5jf>AR_d2r|90A(F}0L$EST|f zoBWp)vb$X3kfUGN6{)O2;gBrpST-WL(6^evi1*8FpZ;_Br;k95ZTg}gS3%~A+o7iy zDbcaAcI96(2c?ETlEk~q%8gc0g>R%bvX97krj>s0T2>?F^;)~h6v!8v%{4#oI-_by7&xxrnDr*7V@}iD>fS{;xH?W<39VrHGzOT= z_cr1y$2K%WzHPqXLzGk_G!QL5J&3C5;KWrp#m6RX)b7$c*7U394%FUeNz9%Y(JHpj z$R7jQY0(_i({dBoBs0?LuG!(`jfvmW+Sp57R@fPFN$r(Nb=SS7vHnQ#JZoQmo5k+<@I**!gfmEP)Wen!q< ziw{K@XCM)_C$}n0?Tn^QyFlFBd79^+)_Ao0IF{LxNCS|IC=ilJYkOcifFD)k0Juk% za!P>|tjJ#b_D}?E*^lhZBrY_xEkyO*^Lx6S*Bya_BCG4B3tA9ikqtJFF@LjKHUS!n8kCnVx%K9~10{~; zYHVE~2k7j^bYG5lLtR{P>+Yv1y~5oy5z-AFN0ul(dkOx`q6I|5x>hXY>(Zi0OlA|V z%cjGNkTmsx2f8VFE9|ZPrD$$T4AFo@gdcI0q2c{z(9<*$UmRE+<+m!VI^byrFSK zHT`_$iok;_tdHIYN22cAEN%vD-z~DbV2Wef!#KCz{NUOv0NhlCb8ys|eZGNUT%DON zzFKiG_TqtQ$Ml8kAH$+NXLLs~?L*-9zzpyoM^A%;^70Q);XdXI&Zo}+zJkCh;{%XG zQ<UE#a)Nbe26e2pycP_bcE}<{@^wm!tYa#Q`+`sSG zzaL-Q9ICAjvq@CzFjlb-B=lU9RDksN1e*1k{4qa-t;`T2hXa0df4}CP=#uD6oZhhe zYynXC@2wsmX#bTA;}ig;u1pUarqBkcBP}XqVy3Cn?Lhx z_>EhV)6>Bd@2wmHRn4&r^{uTO^AdE-905h0pVsnC(4q!V36$r-LZoKa9j1phLN4zI zHmXfp*>RFH@jpt==)(xF4;+*RL?vK(u2>*Pby?5DnKw+6GZVcL#86^=I*5ELZY|gA+OiL43menH-)_+Idl` zT3+~NoXF$({Uq$f+rd%qu=;sjM-fomO(w2OP2%DKH0KV0uu)o5*5Ly6T=8X{3Ta$8 z$Ge8Xn>eK8nXQvY;3xE7Rhw^q@qT7o0Bs+b%0Am=_CESAwNWsWh1qBRGL9g>b}?@JDj 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

    pPu?^^atKvSQ184V8q17 z_J>L1bWhEf6OK@enZ}ADQ0|{`_pTZo-_HG<@@lBia^9v@`jg!1;zyza;jY%cdE|*C&ic z@{8wT7=&invx%#SQX0d}8sD3!F`W1HSZ_@QZ)-N+!|%ggH!abjn#q6!MU!QJ@mr0Q z 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

    r@OWvu}#jE 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

    77G-tD; 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 z�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%0D^C*ThRE~mg;89MPm>*`|PZL`T#gV^+6 z&li(AlBQ#H|LSP*k4-<$_&i+LIauu85r)2)b5&Ps1Ufa|_W+$PTdg5uqaIsxVy~M- zEkPZKB{PxCHdF8gXMR@MU^pkv3v6vCllpL-*>lc5H7eff&Q6^ImQs^25s)xBY(YUD)=^ z23b8T4L3EIwOv+W~Xo>awVk8iZ-G9q=H`}dBJ`IH#ys4{=%fX2!uKx<8@y>?((4?mMcw#J*mJp^Y2=PQSNn@_hCD2xb3hpUwngLJMuO^f2`-v-0yW>8)cX|RN`wb z)8fE+C#U3{ay4@~Puw-t0D0O9;MVDx6y912W-|v2X@&3nZ!?rT#Aj#{m_2oPx+I^4 z;BVF9!bz9m%r#Xkvm4B=0P}~Dn1!sM#VkW8HPI`i(+avi0;A0X>e_@%i-#8vfLQMu zk#H!VJw=vKhK$t`!5i-vnI~jo9CO;G{3HBM%YEY3Sjn zh_D3_=$tAXMnx-`S$H)rR@Ga}_fw0dA))WSeONXdOuhJZxSeEqB`|_BtPnIbj{J-F zI(9j8qYYNG)o}vvw?M#f~U=h(?Uo1dbkIW&_r?5oUuL>dfa7PU59GB+HE*ku^64T2%F!D?q!Izb!Z1U`?< z#h5+VYEUF(%OUEfhV|09b40M3Vp8T>pMtqrS#ElelQAQLvk`Lv&?IBfzPqy9*N

    kOn(WVM$7SX8Uz%KpNC7BDhLfs8MvX*;{rn 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

    whgUuiSQg*k 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≀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 Ilz~|P3uVNui2wiq diff --git a/docs/ota_feature_scripts/leo2p0OTA_VVCM_debug.txt b/docs/ota_feature_scripts/leo2p0OTA_VVCM_debug.txt deleted file mode 100644 index 8d3fde0..0000000 --- a/docs/ota_feature_scripts/leo2p0OTA_VVCM_debug.txt +++ /dev/null @@ -1,248 +0,0 @@ -/* - * Simple script to write to (program) Leo2p0/Hera silicon. - * Polling to determine if eeprom is not busy is simple repeat of read - * without 'while' - * Write to even addresses first and write as a pair. - * - * First write to BUCK1_VOUT2 - * Second write to the CRC registers - * - * CRC data retreival - * power up device with enable pulled low - * account for 'wait for enable sequence' - * record CRC 1-14 - * change BUCK1_VOUT2 - * record change to CRC1-14 - * - */ -function main() { - invoke('setUpdateInterval',[-1]); - // Enable EEPROM program - write('USER_EE_CTRL_1', 0x00); - write('USER_EE_CTRL_1', 0x98); - write('USER_EE_CTRL_1', 0xB8); - write('USER_EE_CTRL_1', 0x13); - write('USER_EE_CTRL_1', 0x7D); - // check mission state - read('TEST_FFSM_1'); - read('TEST_PFSM_0'); - write('GENERAL_REG_1', 0x05); // 0x49, 0x18 - // - write('EEPROM_CONTROL_2', 0x2E); // updated 04_24_2020 - // check OTA state - read('TEST_FFSM_1'); - read('TEST_PFSM_0'); - read('USER_EE_CTRL_2'); - write('USER_EE_CTRL_2', 0xC1); - read('USER_EE_CTRL_2'); - - // check OTA state - read('TEST_FFSM_1'); - read('TEST_PFSM_0'); - - /*************************************************************************/ - // Read data - /* - * Write “0x2f†to ... address 0xe1, EEPROM_CONTROL_2 - * Set TM_EE_CFG_SINGLE - * LEO has 4 banks - * BANK 0 is the PAGE0-2 information - * BANK 1 is the PAGE3 SRAM address space 0-0xFF - * BANK 2 is the PAGE3 SRAM address space 0x100 to 0x1FF - * BANK 3 is the PAGE 3SRAM address space 0x200 to 0x2FF - * Disable banks '1110b' defined in LEO - * - * Write “0x1c†to ... address 0xe2, EEPROM_CONTROL_3 - * Address for program and read - * - * Write “0x01†to ... address 0xef, EEPROM_CONTROL_16 - * TM_EE_CMD_READ - */ - //write('EEPROM_CONTROL_2', 0x2E); - // address - write('EEPROM_CONTROL_3', 0x1C); - // read - write('EEPROM_CONTROL_16', 0x01); - - // check OTA state - read('TEST_FFSM_1'); - read('TEST_PFSM_0'); - - let dummy = read('EEPROM_CONTROL_20'); - while(dummy & 0x02) - { - dummy = read('EEPROM_CONTROL_20'); - } - - let byteRead1 = read('EEPROM_CONTROL_15'); - let byteRead2 = read('EEPROM_CONTROL_14'); - let byteRead3 = read('EEPROM_CONTROL_13'); - let byteRead4 = read('EEPROM_CONTROL_12'); - - // check OTA state - read('TEST_FFSM_1'); - read('TEST_PFSM_0'); - - /* - * Change address to 0x1D - */ - write('EEPROM_CONTROL_3', 0x1D); - write('EEPROM_CONTROL_16', 0x01); - - dummy = read('EEPROM_CONTROL_20'); - while(dummy & 0x02) - { - dummy = read('EEPROM_CONTROL_20'); - } - - let byteRead5 = read('EEPROM_CONTROL_15'); - let byteRead6 = read('EEPROM_CONTROL_14'); - let byteRead7 = read('EEPROM_CONTROL_13'); - let byteRead8 = read('EEPROM_CONTROL_12'); - - // check OTA state - read('TEST_FFSM_1'); - read('TEST_PFSM_0'); - - // Read out CRC content at registes 0xF0 (REGMAP_USER_INCLUDE_PERSIST_CRC16_Low) - // and 0xF2 (REGMAP_USER_EXCLUDE_PERSIST_CRC16_Low) 0x3C (no change) and 0x3D (bytes 0 and 2) - // - // byte0 -> 0x6D - // byte2 -> 0x1D - - /* - * Change address to 0x3C - */ - write('EEPROM_CONTROL_3', 0x3C); - write('EEPROM_CONTROL_16', 0x01); - - dummy = read('EEPROM_CONTROL_20'); - while(dummy & 0x02) - { - dummy = read('EEPROM_CONTROL_20'); - } - - let byteRead9 = read('EEPROM_CONTROL_15'); - let byteReadA = read('EEPROM_CONTROL_14'); - let byteReadB = read('EEPROM_CONTROL_13'); - let byteReadC = read('EEPROM_CONTROL_12'); - - // check OTA state - read('TEST_FFSM_1'); - read('TEST_PFSM_0'); - - - /* - * Change address to 0x3D - */ - write('EEPROM_CONTROL_3', 0x3D); - write('EEPROM_CONTROL_16', 0x01); - - dummy = read('EEPROM_CONTROL_20'); - while(dummy & 0x02) - { - dummy = read('EEPROM_CONTROL_20'); - } - - let byteReadD = read('EEPROM_CONTROL_15'); - let byteReadE = read('EEPROM_CONTROL_14'); - let byteReadF = read('EEPROM_CONTROL_13'); - let byteRead10 = read('EEPROM_CONTROL_12'); - - // check OTA state - read('TEST_FFSM_1'); - read('TEST_PFSM_0'); - - // BUCK2_VSET2 cannot be '0' - while(!byteRead5); - - /*************************************************************************/ - // Write data - // change byteRead3 to new BUCK1_VSET2 voltage 0.79V, 0x35 - // - - // Bits 0-7 - write('EEPROM_CONTROL_11', byteRead1); - write('EEPROM_CONTROL_10', byteRead2); - byteRead3 = 0x35; - write('EEPROM_CONTROL_9', byteRead3); - write('EEPROM_CONTROL_8', byteRead4); - - write('EEPROM_CONTROL_3', 0x1C); - write('EEPROM_CONTROL_16', 0x02); - - dummy = read('EEPROM_CONTROL_20'); - while(dummy & 0x02) - { - dummy = read('EEPROM_CONTROL_20'); - } - - // check OTA state - read('TEST_FFSM_1'); - read('TEST_PFSM_0'); - - write('EEPROM_CONTROL_11', byteRead5); - write('EEPROM_CONTROL_10', byteRead6); - write('EEPROM_CONTROL_9', byteRead7); - write('EEPROM_CONTROL_8', byteRead8); - - write('EEPROM_CONTROL_3', 0x1D); - write('EEPROM_CONTROL_16', 0x02); - - dummy = read('EEPROM_CONTROL_20'); - while(dummy & 0x02) - { - dummy = read('EEPROM_CONTROL_20'); - } - - // check OTA state - read('TEST_FFSM_1'); - read('TEST_PFSM_0'); - - // Update CRC - - write('EEPROM_CONTROL_11', byteRead9); - write('EEPROM_CONTROL_10', byteReadA); - write('EEPROM_CONTROL_9', byteReadB); - write('EEPROM_CONTROL_8', byteReadC); - - write('EEPROM_CONTROL_3', 0x3C); - write('EEPROM_CONTROL_16', 0x02); - - dummy = read('EEPROM_CONTROL_20'); - while(dummy & 0x02) - { - dummy = read('EEPROM_CONTROL_20'); - } - - // check OTA state - read('TEST_FFSM_1'); - read('TEST_PFSM_0'); - - byteReadD = 0x6D; - write('EEPROM_CONTROL_11', byteReadD); - write('EEPROM_CONTROL_10', byteReadE); - byteReadF = 0x1D; - write('EEPROM_CONTROL_9', byteReadF); - write('EEPROM_CONTROL_8', byteRead10); - - write('EEPROM_CONTROL_3', 0x3D); - write('EEPROM_CONTROL_16', 0x02); - - dummy = read('EEPROM_CONTROL_20'); - while(dummy & 0x02) - { - dummy = read('EEPROM_CONTROL_20'); - } - - // check OTA state - read('TEST_FFSM_1'); - read('TEST_PFSM_0'); - - // exit programming mode - write('USER_EE_CTRL_1', 0x00); - - // send command to invoke EEPROM update? - - invoke('setUpdateInterval',[100]); -} \ No newline at end of file diff --git a/docs/ota_feature_scripts/readme.txt b/docs/ota_feature_scripts/readme.txt deleted file mode 100644 index 162d3c8..0000000 --- a/docs/ota_feature_scripts/readme.txt +++ /dev/null @@ -1,15 +0,0 @@ -OTA feature to reconfigure NVM bits -===================================== -1. This feature is validated by PMIC Apps team -2. Point of contact for any queries related to this feature - Sterzik, Chris -3. Please find the steps shared by PMIC Apps team to test the OTA feature to reconfigure NVM bits - -The GUI is located at https://dev.ti.com/gallery/view/PMIC/Scalable-PMICs-GUI/ver/2.0.0/ and a description for launching the scripting tool is found at https://www.ti.com/lit/ug/slvubt8a/slvubt8a.pdf#page=58. PMIC Apps team used the GUI to also determine the CRC value changes in the process below. - -a. Power up PMIC with enable pulled low to prevent device going to active state. Active state performs several register writes and changes the CRC so pulling enable low keeps the number of changes limited to those performed in the wait for enable sequence. -b. ‘Undo’ all register writes performed in wait4enable sequence – return registers to their default settings. -c. Perform CRC update and record -d. Make user register changes -e. Perform CRC update and record – in this example script(leo2p0OTA_VVCM_debug.txt) only the BUCK1_VOUT2 was changed so only the lower bytes of the crc was impacted (REGMAP_USER_INCLUDE/EXCLUDE_PRESIST_CRC16_LOW). -f. Construct OTA based upon values. - diff --git a/docs/pmic_lld-arch.rst b/docs/pmic_lld-arch.rst deleted file mode 100644 index 110cc40..0000000 --- a/docs/pmic_lld-arch.rst +++ /dev/null @@ -1,508 +0,0 @@ -######################################################## -PMIC LLD Software Architecture Document -######################################################## -.. table:: Revision History - :class: longtable - :widths: 10 20 20 40 10 - - +--------+-------------+--------------+------------------------+-------------+ - |Version | Date | Author | Change History | Status | - +========+=============+==============+========================+=============+ - |0.1 | 08 Nov 2021 |Deepa Gopinath| Initial draft | Released | - +--------+-------------+--------------+------------------------+-------------+ - |0.2 | 08 Nov 2021 |Deepa Gopinath| Addressed review | Released | - | | | | comments | | - +--------+-------------+--------------+------------------------+-------------+ - -.. table:: Terms and Abbreviations - :class: longtable - :widths: 10 20 20 40 10 - - +------------------------+-------------------------------------------+ - | Term/Abbreviation | Meaning / Explanation | - +------------------------+-------------------------------------------+ - | PMIC | Power Management Integrated Circuit | - +------------------------+-------------------------------------------+ - | CSP | Compliance Support Package | - +------------------------+-------------------------------------------+ - | FSQ | Functional Safety Quality | - +------------------------+-------------------------------------------+ - | SoC | System on a Chip | - +------------------------+-------------------------------------------+ - | ASIL | Automotive Safety Integrity Level | - +------------------------+-------------------------------------------+ - | MCU | Micro Controller Unit | - +------------------------+-------------------------------------------+ - | LLD | Low Level Driver | - +------------------------+-------------------------------------------+ - - -Introduction -============ - -Overview --------- - -This is the architecture document for the PMIC Low Level Driver (PMIC LLD) -software for the J7ES family of devices. The J7ES family of devices are targeted -for use in functional safety applications. Each DRA829/TDA4VM product was -developed as a functional Safety Element Out Of Context (SEooC) and was -developed according to the relevant requirements of ISO 26262:2018 and IEC 61508 - -The PMIC Low Level Driver provides a software module that interfaces with -TPS6594x (Leo) PMIC and LP8764x (Hera) PMIC. - -Purpose and Scope ------------------ -The PMIC Low Level Driver provides a software module that interfaces with -TPS6594x (Leo) PMIC and LP8764x (Hera) PMIC. It is scalable for future PMIC -chips and SoCs, easing porting across devices. This document captures the -overall software architecture to be used for the PMIC Low Level Driver. This -document is to be used as a reference for designing and implementing the -software module used for realizing the features of the PMIC. - -Note that more detailed design and implementation details will be captured in -the design documents. - -PMIC LLD component is released with CSP (Compliance Support Package). PMIC LLD -will be assessed to ensure it meets the ISO26262 requirements for a functional -safety SW components. - -Stakeholders -------------- -.. table:: Stakeholders - :class: longtable - :widths: 10 20 20 40 10 - - +-------------------------------+-------------------------------------------+ - | Name | Role | - +-------------------------------+-------------------------------------------+ - | Gagan Maur | Program/Safety Manager | - +-------------------------------+-------------------------------------------+ - | Vivek Dhande | SW Technical Lead /Application Manager | - +-------------------------------+-------------------------------------------+ - | Jacco van Oevelen | PMIC Technical Lead / Marketing Manager | - +-------------------------------+-------------------------------------------+ - | Chris Sterzik | PMIC Applications Manager | - +-------------------------------+-------------------------------------------+ - | Anand Balagopalakrishnan | Test Lead | - +-------------------------------+-------------------------------------------+ - | Krishna Gopalakrishnan | SQA Lead /Software Quality Assurance | - +-------------------------------+-------------------------------------------+ - | Deepa Gopinath | Project Lead | - +-------------------------------+-------------------------------------------+ - | Abhishek Kumar | Development Engineer | - +-------------------------------+-------------------------------------------+ - -References ------------ -- PMIC LLD Functional Requirements -- DRA829/TDA4VM/AM752x Technical Reference Manual (Rev. A) -- SPS Document - https://confluence.itg.ti.com/display/ProcSW/PMIC+LLD%3A+SW+Prod.+Spec -- TPS6594x TRM - http://www.ti.com/lit/ug/slvubs7a/slvubs7a.pdf -- LP8764x TRM - http://www.ti.com/lit/ug/snvu700/snvu700.pdf - -Software Architecture Overview -============================== - -PMIC LLD Software Architecture ------------------------------- - -J721E/J7200 family of devices (DRA829, TDA4VM, DRA821) from TI are targeted -towards automotive and industrial application . This software product enables -customers to program the hardware and safety mechanisms; the companion quality -evidence (CSP) assists the customer in their pursuit of safety certification. -The specific end equipment system may utilize portions of the software relevant -to the particular use case, and may even append with additional functionalities. - -| Architecture Id: (aid_pmic_tps6594x_lp8764x_support) -| Requirement: REQ_TAG(PDK-5811), REQ_TAG(PDK-5853) - -PMIC LLD is designed to meet the power management requirements of the J721E and -J7200 platforms. TPS6594x(Leo) and LP8764x(Hera) PMIC is an integrated -power-management device for automotive and industrial applications. - -PMIC Low Level Driver (LLD) runs on J7ES/J7200 SoC and provides a software -module that interfaces with TPS6594x (Leo) and LP8764x(Hera) PMIC. There is -a well-defined API that abstracts low-level details of SoC . The API follows a -consistent, uniform style across different processor architectures and are -independent of the Operating System. - -Following figure shows the Software Block Diagram - -.. figure:: pmic_lld_arch_diagram/Software_Block_Diagram.png - :width: 80% - :align: center - -Figure Software Block Diagram - -Design Considerations -====================== -PMIC Low Level Driver (LLD) provides well-defined API that abstracts low-level -details of SoC allowing user to configure, control, and have read/write access -to peripherals. - -Variants, Configuration and System family concepts --------------------------------------------------- -The PMIC Low Level Driver provides a software module that interfaces with -TPS6594x (Leo) PMIC on J721E and J7200 device and LP8764x (Hera) PMIC J7200 -device. Note, however, that care is taken to abstract the device-specific -aspects to folders in order to more easily add new devices in the future. - -The PMIC LLD functions shall be designed to be executed on R5 core. - -Reusability, modularity and expandability ------------------------------------------ -| Architecture Id: (aid_pmic_multiple_pmic_support) -| Requirement: REQ_TAG(PDK-5825) - -PMIC LLD is designed to meet the power management requirements of the J721E and -J7200 platforms. It is scalable for future PMIC chips and SoCs, easing porting -across devices. The PMIC LLD is designed and implemented in a modular fashion to -be able to support the reduced feature set of LP8764x (Hera) PMIC. There shall -be a common API for different devices and functionality tuned to the device. - -| Architecture Id: (aid_pmic_standalone_support) -| Requirement: REQ_TAG(PDK-5816) - -PMIC LLD is designed such that it is independent on TI Processor SDK for -standalone use case so that PMIC LLD can be integrated to non TI SDK - -| Architecture Id: (aid_pmic_stateless_reentrant_support) -| Requirement: REQ_TAG(PDK-5820) - -PMIC LLD shall be designed and implemented such that it is reentrant and does -not contain any state information. - -| Architecture Id: (aid_pmic_pre_emption_support) -| Requirement: REQ_TAG(PDK-5822) - -PMIC LLD shall be designed and implemented such that a lock mechanism to ensure -that any sequence of transactions that needs to be atomic is protected -(e.g., by a semaphore) to disallow pre-emption. This can be a sequence of -read/write to PMIC - -Software High Level Design -========================== -The PMIC LLD software consist of different blocks for Error Capture and Safety -Mechanisms. Error response is managed by the Application based on the device -Safety Manual requirements. The interface for the Application will be in the -form of software APIs. - -The following figure shows software architecture of PMIC driver along with -application and hardware layers - -.. figure:: pmic_lld_arch_diagram/PMIC_Driver_Software_Architecture.png - :width: 80% - :align: center - -Figure PMIC Driver Software Architecture - -Please refer the design document for further details - -| Architecture Id: (aid_pmic_generic_support) -| Requirement: REQ_TAG(PDK-5817), REQ_TAG(PDK-5818), REQ_TAG(PDK-5819), - REQ_TAG(PDK-5823), REQ_TAG(PDK-5856), REQ_TAG(PDK-5857), - REQ_TAG(PDK-9159), REQ_TAG(PDK-9149) - -The PMIC LLD will be delivered as driver along with Processor SDK and shall -follow TI Coding Guidelines “OneMCU Coding Standard†while coding for APIs, -Datatypes, etc., - -Additionally, a CSP package that can be used for requalification efforts will be -provided through mySecureSW. It will include the following documents: - -- Software FMEA -- Architecture and design documents -- Requirements, test plan and reports -- Traceability data -- Dynamic code coverage analysis report -- Static code analysis report -- His Metrics report -- User Guide -- Release notes - -PMIC module documentation template shall follow TI Processor SDK style and shall -integrate customer deliverables in Processor SDK RTOS. PMIC module shall support -customer deliverables independent of Processor SDK. - -PMIC LLD shall follow the Functional Safety process and supports customer -deliverables for functional safety - -Data structures and resources ------------------------------ -Global data structure to store the Register address and Register Bit field Shift -values of PMIC Power resource configuration, GPIO Configuration and Interrupt -configuration. This global structure will be internal to PMIC Module - -Operating System Details ------------------------- -| Architecture Id: (aid_pmic_baremetal_support) -| Requirement: REQ_TAG(PDK-5811), REQ_TAG(PDK-5853) - -PMIC LLD is OS-agnostic, and can be run on bare-metal environments as well as OS -(freeRTOS, safeRTOS, etc.) This is accomplished by defining an OSAL interface -which must be provided by the application. - -The PMIC LLD does not depend on any operating system and supports execution with -baremetal application - -Task Details ------------- -PMIC LLD will not create any tasks - -Data Flow Diagram ------------------ -The PMIC LLD APIs takes input configuration parameters and then configures PMIC -hardware registers for all the sub modules except for WDG module - -For WDG module, PMIC LLD computes answer based on question and WDG configuration -when the application sends request to write answer to PMIC Module - -Control Flow Diagram ---------------------- -| Architecture Id: (aid_pmic_comm_intf_i2c_spi_cfg) -| Requirement: REQ_TAG(PDK-5814), REQ_TAG(PDK-5810), REQ_TAG(PDK-5813), - REQ_TAG(PDK-5824), REQ_TAG(PDK-5843), REQ_TAG(PDK-5858) - -PMIC LLD shall have a configuration option to enable the interface type -supported, either I2C(I2C1,I2C2) or SPI. PMIC LLD supports either single -I2C(I2C1) interface or Dual I2C(I2C1,I2C2) or SPI interface. I2C1,I2C2 and SPI -interfaces are used to configure, monitor and control various components in -PMIC module - -PMIC LLD will provide ability to use the I2C/SPI interface to communicate with -PMIC. The API will be the TI Processor SDK LLD for I2C/SPI. - -The application has responsibility to implement the transport logic. The -application's transport logic is registered with the PMIC driver when the driver -is initialized. The application's transport logic functions will be placed into -the driver call tables. - -Memory Assignment ------------------- -| Architecture Id: (aid_pmic_dynamic_alloc_mem_not_supported) -| Requirement: REQ_TAG(PDK-5811), REQ_TAG(PDK-5853) - -PMIC LLD is a library and memory placement of code and data is done by -application. It is expected that the application places PMIC LLD in RAM. PMIC -LLD shall not do any dynamic allocation of memory - -Build Configuration --------------------- -| Architecture Id: (aid_pmic_build_infra_cfg) -| Requirement: REQ_TAG(PDK-5821) - -PMIC LLD shall compile and link via make on Linux and XDC-provided gmake on -Window. The build infrastructure shall be standalone to integrate with non TI -SDKs - -Debugability/traceability/Visibility ------------------------------------- -| Architecture Id: (aid_pmic_debug_release_profile_support) -| Requirement: REQ_TAG(PDK-5811), REQ_TAG(PDK-5853) - -The code shall be buildable in debug mode so that it may be stepped -through using a debugger and a program such as Code Composer Studio -(CCS). - -For testing, display of results of the test code will need access to -UART port - -Dynamic Behavior ----------------- -The J7ES architecture has a separate processor that is the Device Management -Security Controller (DMSC). The DMSC processor is the first to come up on -boot-up and expected to bring the MCU core out of reset. As part of the -power-up, the HW POST (Power-on Self Test) is executed for DMSC and/or MCU -depending on device settings and version. Once the R5F is booted, it executes -the Boot ROM and loads the Secondary Boot Loader (SBL). The SBL then performs -device configurations, and then loads the applications to the cores -(including loading the MCU R5F application to the same core). - -DMSC firmware Boots up R5F R5F runs the Boot ROM R5F loads Secondary boot loader -loads the actual application. - -The following diagram shows the boot sequence. The green box shows the point -where the Application which will execute the PMIC APIs begins. The rest of the -diagram is to illustrate the sequence which is used to start the application - -.. figure:: pmic_lld_arch_diagram/Boot_Sequence.png - :width: 80% - :align: center - -Figure Boot Sequence - -PMIC Core Functionality components ----------------------------------- -| Architecture Id: (aid_pmic_gpio_cfg) -| Requirement: REQ_TAG(PDK-5808), REQ_TAG(PDK-5844), REQ_TAG(PDK-9157) - -PMIC LLD has APIs that supports set/get GPIO configuration and supports Ultra -Low Power Standby with CAN Wake-Up for PMIC - -| Architecture Id: (aid_pmic_rtc_cfg) -| Requirement: REQ_TAG(PDK-5831), REQ_TAG(PDK-9141), REQ_TAG(PDK-9142), - REQ_TAG(PDK-9145), REQ_TAG(PDK-9155), REQ_TAG(PDK-5855) - -PMIC LLD has APIs that supports set/get RTC configuration, supports Ultra Low -Power Standby with RTC Wake-Up, read and clear RTC Power-up/Reset status and -read status of RTC is started or not - -| Architecture Id: (aid_pmic_power_cfg) -| Requirement: REQ_TAG(PDK-5829), REQ_TAG(PDK-5840), REQ_TAG(PDK-5841), - REQ_TAG(PDK-5847), REQ_TAG(PDK-5848), REQ_TAG(PDK-9117), - REQ_TAG(PDK-9163), REQ_TAG(PDK-5850) - -PMIC LLD has APIs that supports set/get configuration and voltages of -Power regulators (BUCK, LDO, VCCA, VMON), configures thermal monitoring/shutdown -of the PMIC, configures power good monitor, current monitor and short circuit -protection - -PMIC LLD supports configuration of LDO slow ramp and VMON deglitch time only on -TPS6594x (Leo) PMIC PG2.0 Silicon revision - -| Architecture Id: (aid_pmic_irq_cfg) -| Requirement: REQ_TAG(PDK-5805), REQ_TAG(PDK-5806), REQ_TAG(PDK-5812), - REQ_TAG(PDK-5830), REQ_TAG(PDK-5832), REQ_TAG(PDK-5834), - REQ_TAG(PDK-5835), REQ_TAG(PDK-5836), REQ_TAG(PDK-5842), - REQ_TAG(PDK-5845), REQ_TAG(PDK-5846), REQ_TAG(PDK-5852), - REQ_TAG(PDK-9122), REQ_TAG(PDK-9147), REQ_TAG(PDK-9148), - REQ_TAG(PDK-9152), REQ_TAG(PDK-5838), REQ_TAG(PDK-9153), - REQ_TAG(PDK-5807), REQ_TAG(PDK-5828), REQ_TAG(PDK-9120), - REQ_TAG(PDK-9113) - -PMIC LLD supports to decipher error events and call out to application with -error code. PMIC LLD supports to read PMIC registers to decipher a startup -source, Watchdog Error, GPIO detection, Catastrophic Error, LDO Error, Warning, -Runtime BIST Error, FSM error, Severe Error, Buck Error, Boot BIST Error, ESM -Error, Moderate Error, Soft Reboot Error - -PMIC LLD shall read mask status of GPIO Rise or Fall Interrupt and PMIC -Interrupts - -PMIC LLD shall support NRSTOUT_READBACK_INT and NINT_READBACK_INT as part of -INT_READBACK_ERR register, RECOV_CNT_INT as part of INT_MODERATE_ERR and -supports write protection to clear the Interrupt registers only on -TPS6594x (Leo) PMIC and LP8764x (Hera) PMIC PG1.0 Silicon revision - -| Architecture Id: (aid_pmic_wdg_cfg) -| Requirement: REQ_TAG(PDK-5839), REQ_TAG(PDK-5854), REQ_TAG(PDK-9115), - REQ_TAG(PDK-9116) - -PMIC LLD has APIs that supports set/get WDG configuration and computes answer -based on question and WDG configuration when the application sends request to -write answer to PMIC Module. PMIC LLD supports watchdog in Q&A mode and trigger -mode. - -PMIC LLD shall support to configure Watchdog Long Window step size for a faster -WDOG error detection only on TPS6594x (Leo) PMIC PG2.0 Silicon revision - -| Architecture Id: (aid_pmic_esm_cfg) -| Requirement: REQ_TAG(PDK-5833), REQ_TAG(PDK-9150), REQ_TAG(PDK-5829) - -PMIC LLD has APIs that supports set/get ESM configuration, configures and -enable the ESM_MCU and ESC_SoC error monitors. - -| Architecture Id: (aid_pmic_fsm_cfg) -| Requirement: REQ_TAG(PDK-5837), REQ_TAG(PDK-5849), REQ_TAG(PDK-9123) - REQ_TAG(PDK-9128), REQ_TAG(PDK-9144), REQ_TAG(PDK-9146), - REQ_TAG(PDK-9151), REQ_TAG(PDK-9330), REQ_TAG(PDK-9563), - REQ_TAG(PDK-9564), REQ_TAG(PDK-5851) - -PMIC LLD has APIs that supports set/get FSM configuration and configures PFSM -states. PMIC LLD configures NSLEEP registers for Processor low power, read mask -status of Nsleep signal - -PMIC LLD supports SOC Power Error handing, supports DDR and GPIO Retention mode -and execute runtime-BIST only on TPS6594x (Leo) PMIC PG2.0 Silicon revision - -| Architecture Id: (aid_pmic_core_misc_cfg) -| Requirement: REQ_TAG(PDK-5809), REQ_TAG(PDK-9109), REQ_TAG(PDK-9110), - REQ_TAG(PDK-9111), REQ_TAG(PDK-9114), REQ_TAG(PDK-9119), - REQ_TAG(PDK-9124), REQ_TAG(PDK-9125), REQ_TAG(PDK-9126), - REQ_TAG(PDK-9129), REQ_TAG(PDK-9130), REQ_TAG(PDK-9131), - REQ_TAG(PDK-9132), REQ_TAG(PDK-9133), REQ_TAG(PDK-9134), - REQ_TAG(PDK-9135), REQ_TAG(PDK-9136), REQ_TAG(PDK-9137), - REQ_TAG(PDK-9138), REQ_TAG(PDK-9139), REQ_TAG(PDK-9143), - REQ_TAG(PDK-9149), REQ_TAG(PDK-9329), REQ_TAG(PDK-9162), - REQ_TAG(PDK-9112), REQ_TAG(PDK-9127) - -PMIC LLD has APIs that supports to query the error recovery count, to read TI -Device and NVM information, to configure and read the status of Register lock -and other miscellaneous configuration and read the status of miscellaneous -configuration parameters - -PMIC LLD support Register Write Protection for control and configuration registers -only on TPS6594x (Leo) PMIC PG2.0 Silicon revision. - -PMIC LLD shall enable CRC using TRIGER_I2C_2 and to read Customer NVM -information only on TPS6594x (Leo) PMIC PG2.0 Silicon revision. - -Please refer PMIC design document for more details - -Performance Objectives -====================== -Resource Consumption Objectives ---------------------------------- -PMIC LLD will not allocate any memory at runtime. The PMIC LLD is expected to be -run with code and data loaded in RAM. There is no specific requirement for -memory and CPU usage, , but the implementation need to quantify, measure and -document the memory foot prints used in PMIC LLD code. - -Critical timing and Performance -------------------------------- -| Architecture Id: (aid_pmic_performance_support) -| Requirement: REQ_TAG(PDK-5859) - -There is no specific requirement for performance, but the implementation needs -to also quantify, measure and document the performance for PMIC Initialization -and WDG Answer Computation - -Testing -======== -| Architecture Id: (aid_pmic_test_support) -| Requirement: REQ_TAG(PDK-5826), REQ_TAG(PDK-5827), REQ_TAG(PDK-5860) - -The unit test application that runs on TI EVM shall be part of Processor SDK. -There will be glue code in the test application connecting the generic PMIC -Driver to the rest of Processor SDK dependent components and tools. - -A unit test application will be created using the Unity test framework to test -all requirements in Processor SDK environement. - -The SDK components that are dependencies include compiler, build infrastructure -and software components (LLD, OSAL, SBL, etc.)., - -- Test application shall support booting using SBL using UART interface. -- Test application shall accept user inputs from UART interface. -- Test application shall display information on UART interface. -- Test application shall run on R5 core. - -Stub functional shall be implemented for any functionality not testable on EVM - -Testing will be performed for Unit (Design), Integration (Architecture) and -Qualification (Requirements). Each method of testing will consider positive, -negative, and boundary testing. - -Static and Dynamic analysis will also be employed. Testing will be performed on -J721E and J7200 EVM. Tests will cover bare metal tests. For more information, -please refer the Test Plan document. - -PMIC LLD tests should adhere to guidelines to enable test automation to the -extent possible. - -PMIC Unit test applications for showing the usage of the PMIC LLD software -module in the application context will also be provided to ease customer -integration and understanding of the PMIC LLD software module. - - - - - - - - - - - diff --git a/docs/pmic_lld-design.rst b/docs/pmic_lld-design.rst deleted file mode 100644 index f6e9aac..0000000 --- a/docs/pmic_lld-design.rst +++ /dev/null @@ -1,8529 +0,0 @@ -######################################################## -PMIC LLD Software Design Document -######################################################## - -**Revision History** - -.. table:: Revision History - :class: longtable - :widths: 10 20 20 40 10 - - +--------+-------------+--------------+------------------------+-------------+ - |Version | Date | Author | Change History | Status | - +========+=============+==============+========================+=============+ - |1.0 | 23 Dec 2019 | Amit Agarwal | Initial draft | Released | - +--------+-------------+--------------+------------------------+-------------+ - |2.0 | 07 Jan 2020 | Amit Agarwal | Design and requirement | Released | - | | | | handling updated as | | - | | | | per initial review and | | - | | | | feature support | | - | | | | clarifications | | - +--------+-------------+--------------+------------------------+-------------+ - |2.1 | 11 Jan 2020 | Amit Agarwal | - Updated Watchdog QA | Released | - | | | | API description | | - | | | | - Details in Figure 2 | | - | | | | - Added DAR section | | - | | | | 'Watchdog QA Window | | - | | | | Timing’ | | - | | | | - Updated API | | - | | | | description for | | - | | | | Regulator Voltage | | - | | | | configuration API | | - +--------+-------------+--------------+------------------------+-------------+ - |2.2 | 21-Jan-2020 | Amit Agarwal | - Updated as per | Released | - | | | | review comments for | | - | | | | document template, | | - | | | | Design IDs and | | - | | | | content correction | | - +--------+-------------+--------------+------------------------+-------------+ - |2.3 | 23-Jan-2020 | Amit Agarwal | - Updated DAR for | Released | - | | | | Critical Section | | - | | | | - Corrected few API | | - | | | | descriptions | | - | | | | - Updated Design ID | | - | | | | maps for API Data | | - | | | | Types | | - +--------+-------------+--------------+------------------------+-------------+ - |2.4 | 04-Feb-2020 | Amit Agarwal | - Updated Design | Released | - | | | | document based on | | - | | | | review feedback. | | - | | | | - Updated API details | | - +--------+-------------+--------------+------------------------+-------------+ - |2.5 | 07-Feb-2020 | Amit Agarwal | - Fixed Review | Released | - | | | | comments | | - | | | | - Updated | | - | | | | Non-supported | | - | | | | requirement | | - | | | | section. | | - | | | | - Details added | | - | | | | related to multiple | | - | | | | instance of PMIC | | - | | | | driver. | | - +--------+-------------+--------------+------------------------+-------------+ - |2.6 | 18-Feb-2020 | Amit Agarwal | - Fixed Review | Released | - | | | | comments | | - | | | | - Updated Low power | | - | | | | standby mode | | - | | | | - Updated error | | - | | | | recovery words. | | - +--------+-------------+--------------+------------------------+-------------+ - |2.7 | 16-Mar-2020 | Amit Agarwal | - Added new design ID | Released | - | | | | to accommodate | | - | | | | newly added | | - | | | | requirements. | | - | | | | - API table updated | | - +--------+-------------+--------------+------------------------+-------------+ - |2.8 | 20-Oct-2020 | Rahul Rawat | Updated the following | Released | - | | | | sections: | | - | | | | Design Requirements, | | - | | | | Design Description, | | - | | | | PMIC Core Functionality| | - | | | | Components, PMIC Driver| | - | | | | Setup and Instance | | - | | | | Management, PMIC CRC | | - | | | | Validation Feature, | | - | | | | API Definitions, API | | - | | | | Function Descriptions | | - +--------+-------------+--------------+------------------------+-------------+ - |2.9 | 25-Mar-2020 | Akshay | Adressed SQA Review | Released | - | | | Manikantan | comments: | | - | | | | Updated the directory | | - | | | | structure. | | - | | | | Added references to | | - | | | | error codes in | | - | | | | Error handling and API | | - | | | | Functions Descriptions | | - | | | | sections. | | - | | | | Updated Assumptions | | - | | | | and Constraints section| | - +--------+-------------+--------------+------------------------+-------------+ - |2.10 | 09-Aug-2021 | Abhishek | Updated the following | Released | - | | | Kumar | sections: | | - | | | | Design Requirements, | | - | | | | Design Description, | | - | | | | PMIC Core Functionality| | - | | | | Components, PMIC Driver| | - | | | | Setup and Instance | | - | | | | Management, PMIC CRC | | - | | | | Validation Feature, API| | - | | | | Definitions, API | | - | | | | Function Descriptions | | - +--------+-------------+--------------+------------------------+-------------+ - |2.11 | 20-Sep-2021 | Deepa | Updated the following | Released | - | | | Gopinath | sections: | | - | | | | Design Requirements, | | - | | | | Design Description, API| | - | | | | Function Descriptions | | - +--------+-------------+--------------+------------------------+-------------+ - |2.12 | 08-Nov-2021 | Abhishek | Updated the following | Released | - | | | Kumar | sections: | | - | | | | Design Requirements, | | - | | | | API Function | | - | | | | Descriptions and Added | | - | | | | New Test Ids | | - +--------+-------------+--------------+------------------------+-------------+ - |2.13 | 08-Nov-2021 | Abhishek | Fixed formatting issues| Released | - | | | Kumar | at sections: | | - | | | | Design Requirements | | - +--------+-------------+--------------+------------------------+-------------+ - -.. raw:: latex - - \newpage - -Introduction -============ - -Overview --------- - -The purpose of this document is to define the software design for *PMIC* -LLD development for TPS6594x Leo and LP8764x Hera (from Texas Instruments). -The document shall be a reference for software developers who use TI’s Leo -or LP8764x Hera PMIC module on their Hardware to understand the various LLD -aspects like: - -- LLD architecture -- LLD Features -- PMIC Communication interfaces and modes -- Functional Safety Compliance and other related details - -Assumptions and Constraints ---------------------------- - -Based on requirements, the following list is a brief of the Assumptions - -1. The design and development of PMIC shall be done to have no state - management; LLD shall not expect any IO sequence for any PMIC - functionality. Application shall take care of this -2. TI Coding Guidelines “https://confluence.itg.ti.com/display/SWRD/OneMCU+Coding+Standard†- shall be used while coding for APIs, Datatypes, etc. -3. LLD software shall be stateless and shall not have any event/error - handling functionality, it shall just provide API to read and - decipher events/errors -4. LLD shall be independent of any platform, i.e., no platform/OS - specific routines/symbols shall be referenced in the LLD software -5. No platform specific I2C/SPI LLD code is present inside PMIC LLD; it - is application’s responsibility to provide platform specific I2C/SPI - API for the PMIC LLD before building the LLD -6. No platform specific Locking/Critical Section code required for - I2C/SPI IO is present inside PMIC LLD; it is application’s - responsibility to provide platform specific Locking/Critical Section - API for the PMIC LLD before building the LLD -7. The design and development of PMIC shall be done to have no state management; - LLD shall not expect any IO sequence for any PMIC functionality. - Application shall take care of this - -Based on requirements, Constraints are None - -Stakeholders ---------------------------- - -This document is meant for software developers who will use the design information as reference -for software implementation. - -Notational Conventions ---------------------------- - -See `Directory`_. - -Glossary ---------------------------- - -See `Directory`_. - - -References ---------------------------- - -See `Directory`_. - - -Design Requirements -~~~~~~~~~~~~~~~~~~~~ - -Some of the designs IDs drawn from requirement IDs are redundant as -different requirements categorize/classify in different manner and same -configuration/event/interrupt/status item could be part of 2 or more -requirements, in which case the redundant design IDs are marked as -Redundant and moved to Unsupported Design Requirements Table - -Following table lists all the Design Requirements IDs supported by PMIC -LLD. - -.. table:: PMIC Design Requirements - :widths: 40 20 20 20 - - +------------------------------------+----------------+----------------+----------------+ - | Design ID | Requirements | Requirement | Description | - | | ID | Type | | - +====================================+================+================+================+ - | did_pmic_tps6594x_j721e_support | PDK-5811 | Safety | LLD shall | - | | PDK-9329 | Functional | support | - | | | | TPS6594x | - | | | | (Leo). Testing | - | | | | will be on | - | | | | J721E EVM with | - | | | | TPS6594x PMIC | - | | | | and Driver | - | | | | shall read CRC | - | | | | status | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_lp8764x_j7200_support | PDK-5853 | Safety | LLD design & | - | | PDK-9329 | Functional | implementation | - | | | | shall be | - | | | | modular to | - | | | | support | - | | | | reduced | - | | | | feature set of | - | | | | LP8764x (Hera) | - | | | | Testing will | - | | | | be on J7200 | - | | | | EVM with Hera | - | | | | LP8764x PMIC | - | | | | and Driver | - | | | | shall read | - | | | | CRC status | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_power_cfg_readback | PDK-5850 | Safety | LLD API to | - | | | Functional | take human | - | | | | readable | - | | | | value, convert | - | | | | and configure | - | | | | the target | - | | | | Buck/LDO | - | | | | Voltage | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_power_cfg_readback | PDK-5841 | Safety | Driver shall | - | | | Functional | implement an | - | | | | API to | - | | | | configure buck | - | | | | and LDO | - | | | | regulator | - | | | | outputvoltages | - | | | | | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_power_cfg_readback | PDK-5829 | Safety | Driver shall | - | | | Functional | configure for | - | | | | voltage monitor| - | | | | for over/under | - | | | | voltage | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_power_cfg_readback | PDK-5848 | Safety | Driver shall | - | | | Functional | configure for | - | | | | current | - | | | | monitor and | - | | | | short circuit | - | | | | protection | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_power_thermal_cfg_readback| PDK-5840 | Safety | Driver shall | - | | PDK-9111 | Functional | configure | - | | | | thermal | - | | | | monit | - | | | | oring/shutdown | - | | | | of the PMIC and| - | | | | support | - | | | | Register Write | - | | | | Protection for | - | | | | control and | - | | | | configuration | - | | | | registers | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_power_pgood_cfg_readback | PDK-5847 | Safety | Driver shall | - | | PDK-9111 | Functional | read back | - | | | | Power Good | - | | | | Monitor | - | | | | Configuration | - | | | | of Buck/LDO and| - | | | | support | - | | | | Register Write | - | | | | Protection for | - | | | | control and | - | | | | configuration | - | | | | registers | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_comm_intf_cfg | PDK-5814 | Safety | Driver shall | - | | | Functional | have a runtime | - | | | | configuration | - | | PDK-5858 | Other | option to | - | | PDK-5824 | | enable the | - | | | | interface type | - | | | | supported, | - | | | | either I2C or | - | | | | SPI | - | | | | Driver shall | - | | | | support an | - | | | | application | - | | | | registered | - | | | | call table | - | | | | for the PMIC | - | | | | I2C/SPI | - | | | | interface | - | | | | using TI | - | | | | I2C/SPI LLD API| - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_comm_single_i2c_cfg | PDK-5810 | Safety | Driver shall | - | | PDK-9129 | Functional | support single | - | | | | I2C interface | - | | | | in which only | - | | | | I2C1 will be | - | | | | used to | - | | | | configure and | - | | | | monitor the | - | | | | PMIC and | - | | | | configure I2C1 | - | | | | and I2C2 | - | | | | interface as | - | | | | Standard or HS | - | | | | mode | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_comm_dual_i2c_cfg | PDK-5813 | Safety | Driver shall | - | | | Functional | support dual | - | | | | I2C interface | - | | | | in which | - | | | | I2C1 will | - | | | | help to do | - | | | | PMIC | - | | | | configuration | - | | | | and monitor | - | | | | except WDG | - | | | | QA,I2C2 will | - | | | | help to do | - | | | | WDG QA | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_comm_spi_cfg | PDK-5843 | Safety | Driver shall | - | | | Functional | support SPI | - | | | | interface | - | | | | which will be | - | | | | used to | - | | | | configure and | - | | | | monitor the | - | | | | PMIC | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_gpio_cfg_readback | PDK-5808 | Safety | Driver shall | - | | | Functional | configure PMIC | - | | | | GPIO pins as: | - | | | | NSLEEP | - | | | | Triggers, | - | | | | Reset pin | - | | | | for SOC, | - | | | | WKUP | - | | | | sources, | - | | | | General | - | | | | Input/output | - | | | | pins, | - | | | | I2C2 SCLK | - | | | | and SDA | - | | | | lines, | - | | | | SPI CS or | - | | | | SDO lines, | - | | | | Watchdog | - | | | | Trigger | - | | | | line, | - | | | | ESM Error | - | | | | Pins for | - | | | | SOC/MCU, | - | | | | SPMI, | - | | | | SCLK/SDATA, | - | | | | SYNCCLKOUT, | - | | | | SYNCLKIN | - | | | | and | - | | | | CLK32KOUT, | - | | | | Watchdog | - | | | | Disable | - | | | | Pin, | - | | | | Power Good | - | | | | Indication | - | | | | Line | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_gpio_cfg_readback | PDK-5808 | Safety | Driver shall | - | | | Functional | configure PMIC | - | | | | GPIO pin | - | | | | functionality | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_irq_cfg_readback | PDK-5805 | Safety | PMIC: Driver | - | | | Functional | shall decipher | - | | | | error events | - | | | | and call out | - | | | | to application | - | | | | with error code| - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_irq_cfg_readback | PDK-9113 | Safety | Driver shall | - | | | Functional | not support | - | | | | write | - | | | | protection to | - | | | | clear the | - | | | | interrupt | - | | | | register in | - | | | | PG2.0 | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_irq_cfg_readback | PDK-9120 | Safety | Driver shall | - | | | Functional | support write | - | | | | protection to | - | | | | clear the | - | | | | interrupt | - | | | | register in | - | | | | PG1.0 | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_irq_cfg_readback | PDK-5838 | Safety | Driver shall | - | | | Functional | read PMIC | - | | | | registers to | - | | | | decipher a | - | | | | Severe Error | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_irq_cfg_readback | PDK-5842 | Safety | Driver shall | - | | | Functional | read PMIC | - | | | | registers to | - | | | | decipher a Buck| - | | | | Error | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_irq_cfg_readback | PDK-5832 | Safety | Driver shall | - | | | Safety | read PMIC | - | | | | registers to | - | | | | decipher a LDO | - | | | | Error | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_irq_cfg_readback | PDK-5852 | Safety | Driver shall | - | | | Functional | read PMIC | - | | | | registers to | - | | | | decipher a | - | | | | Moderate Error | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_irq_cfg_readback | PDK-5834 | Safety | Driver shall | - | | | Functional | read PMIC | - | | | | registers to | - | | | | decipher a | - | | | | Warning | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_irq_cfg_readback | PDK-5806 | Safety | Driver shall | - | | | Functional | read PMIC | - | | | | registers to | - | | | | decipher a | - | | | | startup source | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_irq_cfg_readback | PDK-5828 | Safety | Driver shall | - | | | Functional | read PMIC | - | | | | registers to | - | | | | decipher a | - | | | | FSM ERROR | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_irq_cfg_readback | PDK-5807 | Safety | Driver shall | - | | | Functional | read PMIC | - | | | | registers to | - | | | | decipher a | - | | | | Watchdog error | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_irq_cfg_readback | PDK-5846 | Safety | Driver shall | - | | | Functional | read PMIC | - | | | | registers to | - | | | | decipher a | - | | | | ESM error | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_esm_cfg_readback | PDK-5833 | Safety | Driver API to | - | | | Functional | configure ESM | - | | | | MCU by | - | | | | resetting | - | | | | ESM_MCU_START | - | | | | to 0, update | - | | | | ESM MCU | - | | | | Configuration | - | | | | registers and | - | | | | setting | - | | | | ESM_MCU_START | - | | | | to 1 | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_esm_cfg_readback | PDK-5833 | Safety | Driver API to | - | | | Functional | configure ESM | - | | | | SOC by | - | | | | resetting | - | | | | ESM_SOC_START | - | | | | to 0, update | - | | | | ESM SOC | - | | | | Configuration | - | | | | registers and | - | | | | setting | - | | | | ESM_SOC_START | - | | | | to 1 | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_esm_cfg_readback | PDK-5833 | Safety | Driver API to | - | | | Functional | Stop ESM MCU | - | | | | Monitor by | - | | | | resetting | - | | | | ESM_MCU_START | - | | | | to 0 | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_esm_cfg_readback | PDK-5833 | Safety | Driver API to | - | | | Functional | Stop ESM SOC | - | | | | Monitor by | - | | | | resetting | - | | | | ESM_SOC_START | - | | | | to 0 | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_esm_cfg_readback | PDK-5833 | Safety | Driver API to | - | | | Functional | read ESM MCU | - | | | | Configuration | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_esm_cfg_readback | PDK-5833 | Safety | Driver API to | - | | | Functional | read ESM SOC | - | | | | Configuration | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_wdg_cfg_readback | PDK-5854 | Safety | Driver API to | - | | | Functional | configure | - | | | | Watchdog in | - | | | | Trigger mode | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_wdg_cfg_readback | PDK-5854 | Safety | Driver API to | - | | PDK-5839 | Functional | read back | - | | | | Watchdog | - | | | | configuration | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_wdg_cfg_readback | PDK-5839 | Safety | Driver API to | - | | | Functional | configure | - | | | | Watchdog in QA | - | | | | mode | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_wdg_cfg_readback | PDK-5839 | Safety | Driver API to | - | | | Functional | perform | - | | | | Watchdog QA | - | | | | with PMIC | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_wdg_cfg_readback | PDK-5854 | Safety | Driver API to | - | | | Functional | perform | - | | PDK-5839 | | Watchdog | - | | | | Enable/Disable | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_wdg_cfg_readback | PDK-9115 | Safety | Driver shall | - | | | Functional | support to | - | | | | configure | - | | | | Watchdog Long | - | | | | Window step | - | | | | size for a | - | | | | faster WDOG | - | | | | error detection| - | | | | in PG2.0 | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_wdg_cfg_readback | PDK-9116 | Safety | Driver shall | - | | | Functional | support to | - | | | | configure | - | | | | Watchdog Long | - | | | | Window step | - | | | | size for a | - | | | | WDOG error | - | | | | detection | - | | | | in PG1.0 | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_fsm_cfg_readback | PDK-5837 | Safety | Driver shall | - | | | Functional | support | - | | | | configuring | - | | | | NSLEEP | - | | | | registers for | - | | | | Processor low | - | | | | power. | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_fsm_cfg_readback | PDK-5837 | Safety | Driver shall | - | | | Functional | readback | - | | | | NSLEEP | - | | | | registers to | - | | | | get wake or | - | | | | sleep status. | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_rtc_cfg_readback | PDK-5855 | Safety | Driver shall | - | | | Functional | configure RTC | - | | | | Alarm | - | | | | Interrupts and | - | | | | enable RTC | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_rtc_cfg_readback | PDK-5855 | Safety | Driver shall | - | | | Functional | readback RTC | - | | | | Alarm | - | | | | configuration | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_rtc_cfg_readback | PDK-5855 | Safety | Driver shall | - | | | Functional | configure RTC | - | | | | Timer | - | | | | Interrupts and | - | | | | enable RTC | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_rtc_cfg_readback | PDK-5855 | Safety | Driver shall | - | | | Functional | readback RTC | - | | | | Timer | - | | | | Configuration | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_rtc_cfg_readback | PDK-5855 | Safety | Driver shall | - | | | Functional | disable RTC | - | | | | module | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_rtc_cfg_readback | PDK-5855 | Safety | Driver shall | - | | | Functional | enable RTC | - | | | | module | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_rtc_cfg_readback | PDK-5855 | Safety | Driver shall | - | | | Functional | configure RTC | - | | | | time calendar | - | | | | registers | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_rtc_cfg_readback | PDK-5855 | Safety | Driver shall | - | | | Functional | readback RTC | - | | | | time calendar | - | | | | registers. | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_rtc_cfg_readback | PDK-5855 | Safety | Driver shall | - | | | Functional | enable RTC | - | | | | Frequency | - | | | | compensation. | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_rtc_cfg_readback | PDK-5855 | Safety | Driver shall | - | | | Functional | configure RTC | - | | | | Frequency | - | | | | compensation | - | | | | readback. | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_rtc_cfg_readback | PDK-5855 | Safety | Driver API | - | | | Functional | shall read the | - | | | | current status | - | | | | of RTC | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_rtc_cfg_readback | PDK-5855 | Safety | Driver API to | - | | | Functional | support | - | | | | Enable/Disable | - | | | | of RTC Alarm | - | | | | Interrupt | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_rtc_cfg_readback | PDK-5855 | Safety | Driver API to | - | | | Functional | support | - | | | | Enable/Disable | - | | | | of RTC Timer | - | | | | Interrupt | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_lpstandby_wkup_cfg | PDK-5844 | Safety | Driver shall | - | | | Functional | support Ultra | - | | | | Low Power | - | | | | Standby with | - | | | | CAN WakeUp for | - | | | | PMIC | - | | | | | - | | | | Note: | - | | | | Ultra-Low | - | | | | Power Mode is | - | | | | synonymous to | - | | | | LP_STANDBY | - | | | | state in the | - | | | | TRM. | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_lpstandby_wkup_cfg | PDK-5831 | Safety | Driver shall | - | | | Functional | support Ultra | - | | | | Low Power | - | | | | Standby with | - | | | | RTC WakeUp for | - | | | | PMIC | - | | | | | - | | | | Note: | - | | | | Ultra-Low | - | | | | Power Mode is | - | | | | synonymous to | - | | | | LP_STANDBY | - | | | | state in the | - | | | | TRM. | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_lpstandby_cfg | PDK-5851 | Safety | Driver must | - | | | Functional | allow | - | | | | configuration | - | | | | of the PMIC | - | | | | low power LP | - | | | | STANDBY state | - | | | | by writing to | - | | | | I2C_TRIGGER_0. | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_err_recov_cnt_cfg_readback| PDK-5809 | Safety | Driver shall | - | | | Functional | provide an API | - | | | | to query the | - | | | | error recovery | - | | | | count. | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_i2c_speed_readback | PDK-9129 | Safety | Driver shall | - | | | Functional | configure I2C1 | - | | | | or I2C2 Speed | - | | | | in HS or | - | | | | Standard mode. | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_dev_info_readback | PDK-9109 | Interface | Driver shall | - | | PDK-9110 | | read TI Device,| - | | | | NVM Information| - | | | | and customer | - | | | | NVM Information| - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_crc_status | PDK-9329 | Safety | Driver shall | - | | | Functional | read CRC Status| - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_crc_enable | PDK-9119 | Safety | Driver shall | - | | | Functional | enable CRC | - +------------------------------------+----------------+----------------+----------------+ - |did_pmic_common_ctrl_status_readback| PDK-9126 | Safety | Driver shall | - | | PDK-9124 | Functional | read readback | - | | PDK-9125 | | status error, | - | | PDK-9130 | | nPWRON/Enable | - | | PDK-9139 | | pin status, | - | | PDK-9138 | | external clock | - | | | | validity status| - | | | | Driver shall | - | | | | read status | - | | | | of backup | - | | | | battery | - | | | | parameters, | - | | | | force EN_DRV | - | | | | bit and | - | | | | enable status | - | | | | of SPMI low | - | | | | power mode | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_pin_readback | PDK-9131 | Safety | Driver shall | - | | PDK-9137 | Functional | read EN_DRV | - | | | | value, | - | | | | NRSTOUT_SOC and| - | | | | NRSTOUT pin | - | | | | status | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_battery_ctrl_cfg_readback | PDK-9130 | Safety | Driver shall | - | | | Functional | configure | - | | | | backup battery | - | | | | control | - | | | | parameters | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_misc_ctrl_cfg_readback | PDK-9132 | Safety | Driver shall | - | | PDK-9127 | Functional | configure | - | | | | miscellaneous | - | | | | control | - | | | | parameters and | - | | | | frequency of | - | | | | the external | - | | | | clock | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_common_ctrl_cfg_readback | PDK-9112 | Safety | Driver shall | - | | PDK-9131 | Functional | configure and | - | | | | read the status| - | | | | of register | - | | | | lock, EN_DRV | - | | | | pin value | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_common_ctrl_cfg_readback | PDK-9114 | Safety | Driver shall | - | | PDK-9143 | Functional | support to | - | | PDK-9111 | | enable the | - | | | | spread spectrum| - | | | | modulation, | - | | | | configure the | - | | | | percentage of | - | | | | modulation | - | | | | depth and | - | | | | enable or | - | | | | disable to load| - | | | | EEPROM defaults| - | | | | when device | - | | | | transition from| - | | | | LpStandby/ | - | | | | SafeRecovery to| - | | | | INIT state and | - | | | | support | - | | | | Register Write | - | | | | Protection for | - | | | | control and | - | | | | configuration | - | | | | registers | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_user_spare_cfg_readback | PDK-9133 | Safety | Driver shall | - | | | Functional | configure and | - | | | | read User Spare| - | | | | Registers | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_rtc_cfg_readback | PDK-9141 | Safety | Driver shall | - | | PDK-9135 | Functional | configure RTC | - | | PDK-9111 | | control | - | | | | parameters, | - | | | | enable crystal | - | | | | oscillator and | - | | | | its type and | - | | | | support | - | | | | Register Write | - | | | | Protection for | - | | | | control and | - | | | | configuration | - | | | | registers | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_rtc_clr_rst_status | PDK-9142 | Safety | Driver shall | - | | | Functional | read and clear | - | | | | RTC POWER_UP | - | | | | status | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_rtc_status | PDK-9155 | Safety | Driver shall | - | | | Functional | read status of | - | | | | RTC is started | - | | | | or not | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_irq_cfg_readback | PDK-9147 | Safety | Driver shall | - | | PDK-9148 | Functional | support | - | | | | RECOV_CNT_INT, | - | | | | NRSTOUT | - | | | | READBACK_INT, | - | | | | and NINT | - | | | | READBACK_INT | - | | | | as part of | - | | | | INT_READBACK | - | | | | ERR register in| - | | | | PG1.0 | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_irq_cfg_readback | PDK-9149 | Safety | Driver shall | - | | | Functional | not support | - | | | | few features in| - | | | | PG1.0 | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_irq_mask_status | PDK-9153 | Safety | Driver shall | - | | | Functional | read status of | - | | | | PMIC interrupt | - | | | | is masked or | - | | | | not | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_irq_mask_status | PDK-9152 | Safety | Driver shall | - | | | Functional | read status of | - | | | | GPIO rise or | - | | | | fall interrupt | - | | | | is masked or | - | | | | not | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_fsm_cfg_readback | PDK-9151 | Safety | Driver shall | - | | | Functional | read status of | - | | | | NSLEEP signal | - | | | | is masked or | - | | | | not | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_fsm_cfg_readback | PDK-9144 | Safety | Driver shall | - | | PDK-9134 | Functional | configure FSM | - | | PDK-9128 | | startup | - | | | | destination, | - | | | | enable fast | - | | | | BIST and ILIM | - | | | | interrupts | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_pfsm_cfg_readback | PDK-9136 | Safety | Driver shall | - | | | Functional | configure and | - | | | | read PFSM delay| - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_fsm_cfg_readback | PDK-9146 | Safety | Driver shall | - | | | Functional | support FSM | - | | | | transition | - | | | | using NSLEEP | - | | | | signal | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_fsm_recover_soc_pwr_err | PDK-9123 | Safety | Driver shall | - | | | Functional | support | - | | | | switching the | - | | | | PMIC state from| - | | | | Active to MCU | - | | | | and MCU to | - | | | | Active using | - | | | | nsleep signals | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_fsm_i2c_trigger | PDK-9330 | Safety | Driver shall | - | | | Functional | configure | - | | | | TRIGER_I2C_X | - | | | | to triger for | - | | | | PFSM | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_ddr_gpio_retention_cfg | PDK-9563 | Safety | Driver shall | - | | PDK-9564 | Functional | support DDR and| - | | | | GPIO Retention | - | | | | mode | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_esm_cfg_readback | PDK-9150 | Safety | Driver shall | - | | | Functional | read status of | - | | | | ESM MCU/SOC is | - | | | | started or not | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_rtc_rst_status | PDK-9145 | Safety | Driver shall | - | | | Functional | read and clear | - | | | | RTC Reset | - | | | | status | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_wdg_cfg_readback | PDK-5839 | Safety | Driver shall | - | | | Functional | configure | - | | | | Watchdog Qa | - | | | | sequence write | - | | | | answer | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_wdg_cfg_readback | PDK-5839 | Safety | Driver shall | - | | PDK-5854 | Functional | configure | - | | | | Watchdog clear | - | | | | Error status | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_lp8764x_j7200_support | PDK-9159 | Safety | PMIC: Driver | - | | | Functional | shall implement| - | | | | all TPS6594x | - | | | | Leo PMIC | - | | | | PG1.0 and PG2.0| - | | | | new Features | - | | | | for Hera | - | | | | LP8764x PMIC | - | | | | PG1.0 | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_gpio_cfg_readback | PDK-9157 | Safety | To validate | - | | | Functional | GPIO 9 | - | | | | configuration | - | | | | functionality | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_power_cfg_readback | PDK-9163 | Safety | PMIC: Driver | - | | | Functional | shall support | - | | | | to configure | - | | | | and readback | - | | | | LDO slow ramp | - | | | | configuration | - | | | | for LDO | - | | | | regulators on | - | | | | TPS6594x PMIC | - | | | | PG 2.0 | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_power_thermal_cfg_readback| PDK-9117 | Safety | PMIC: Driver | - | | | Functional | shall support | - | | | | to configure | - | | | | and readback | - | | | | thermal | - | | | | monitoring | - | | | | levels to | - | | | | support higher | - | | | | ambient | - | | | | temperature on | - | | | | TPS6594x PMIC | - | | | | PG 2.0 | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_irq_cfg_readback | PDK-9122 | Safety | Driver shall | - | | | Functional | read PMIC | - | | | | registers to | - | | | | decipher a Soft| - | | | | Reboot Error | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_generic_feature_support | PDK-5817 | Other | Driver shall | - | | PDK-5818 | | use TI | - | | PDK-5819 | | Processor SDK, | - | | PDK-5826 | | Coding style | - | | PDK-5823 | | shall follow | - | | | | TI Processor | - | | | | SDK coding | - | | | | guidelines, | - | | | | Documentation | - | | | | template shall | - | | | | follow TI | - | | | | Processor SDK | - | | | | style, Customer| - | | | | deliverables | - | | | | independent of | - | | | | Processor SDK | - | | | | and integrated | - | | | | in Processor | - | | | | SDK RTOS | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_validation_feature_support| PDK-5827 | Testing | Processor SDK | - | | PDK-5860 | | shall contain | - | | | | automated PMIC | - | | | | driver unit | - | | | | test, | - | | | | implemented | - | | | | using Unity | - | | | | test framework,| - | | | | Stub functional| - | | | | shall be | - | | | | implemented for| - | | | | any | - | | | | functionality | - | | | | not testable | - | | | | on EVM | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_validation_feature_support| PDK-5859 | Performance and| Processor SDK | - | | | Resources | shall contain a| - | | | | PMIC driver | - | | | | benchmark | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_safety_feature_support | PDK-5856 | Other | Driver shall | - | | PDK-5857 | | follow the | - | | | | Functional | - | | | | Safety process,| - | | | | shall support | - | | | | Customer | - | | | | deliverables | - | | | | for functional | - | | | | safety | - +------------------------------------+----------------+----------------+----------------+ - |did_pmic_stateless_reentrant_support| PDK-5820 | Other | Driver shall | - | | | | stateless and | - | | | | reentrant | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_multiple_pmic_support | PDK-5825 | Other | Driver source | - | | | | code | - | | | | architecture | - | | | | shall support | - | | | | multiple PMICs | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_standalone_support | PDK-5816 | Other | Driver shall be| - | | | | independent | - | | | | architecture | - | | | | of TI Processor| - | | | | SDK for | - | | | | standalone use | - | | | | case | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_pre_emption_support | PDK-5822 | Other | Driver shall | - | | | | support | - | | | | multiple | - | | | | applications | - | | | | and protect for| - | | | | pre-emption | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_baremetal_support | PDK-5811 | Safety | Driver is | - | | PDK-5853 | Functional | OS-agnostic, | - | | | | and can be run | - | | | | on bare-metal | - | | | | environments | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_performance_support | PDK-5859 | Performance | Processor | - | | | and Resources | SDK shall | - | | | | contain a PMIC | - | | | | driver | - | | | | benchmark for | - | | | | Pmic | - | | | | Initialization | - | | | | and WDG QA | - | | | | Answer | - | | | | computation | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_dynamic_alloc_mem_not | PDK-5811 | Safety | Driver shall | - | _supported | PDK-5853 | Functional | not do any | - | | | | dynamic | - | | | | allocation of | - | | | | memory | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_build_infra_cfg | PDK-5821 | Other | Driver shall | - | | | | shall compile | - | | | | via make(Linux)| - | | | | and XDC gmake | - | | | | (Windows) | - +------------------------------------+----------------+----------------+----------------+ - | did_pmic_debug_release_profile | PDK-5811 | Safety | Driver code | - | _support | PDK-5853 | Functional | shall be | - | | | | buildable in | - | | | | debug mode so | - | | | | that it stepped| - | | | | using debugger | - | | | | and program | - | | | | as CCS | - +------------------------------------+----------------+----------------+----------------+ - -Design Description -================== - -Architecture ------------- - -It is required that HW Interface Drivers (I2C, SPI and GPIO) and -Critical Section/Locking Mechanisms are not designed or implemented -inside the PMIC Driver. Instead the Platform-OS/SDK is holding the -Driver implementation. The PMIC Driver just takes a Platform API Hooks -for these features. - -Following figure shows the Software architecture of PMIC driver along -with application and hardware layers. - -.. figure:: pmic_lld_design_diagram/PMIC_Driver_Software_Architecture.png - :width: 80% - :align: center - -Figure PMIC Driver Software Architecture - -| Design Id: (did_pmic_generic_feature_support) -| Architecture: aid_pmic_generic_support -| Requirement: REQ_TAG(PDK-5817) REQ_TAG(PDK-5818) REQ_TAG(PDK-5819) - REQ_TAG(PDK-5823) REQ_TAG(PDK-5826) - -| Design Id: (did_pmic_stateless_reentrant_support) -| Architecture: aid_pmic_stateless_reentrant_support -| Requirement: REQ_TAG(PDK-5820) - -Driver shall be stateless and reentrant - -| Design Id: (did_pmic_multiple_pmic_support) -| Architecture: aid_pmic_multiple_pmic_support -| Requirement: REQ_TAG(PDK-5825) - -Driver source code architecture shall support multiple PMICs. - -| Design Id: (did_pmic_standalone_support) -| Architecture: aid_pmic_standalone_support -| Requirement: REQ_TAG(PDK-5816) - -Driver shall be independent of TI Processor SDK for standalone use case - -| Design Id: (did_pmic_pre_emption_support) -| Architecture: aid_pmic_pre_emption_support -| Requirement: REQ_TAG(PDK-5822) - -Driver shall support multiple applications and protect for pre-emption - -| Design Id: (did_pmic_baremetal_support) -| Architecture: aid_pmic_baremetal_support -| Requirement: REQ_TAG(PDK-5811), REQ_TAG(PDK-5853) - -Driver is OS-agnostic, and can be run on bare-metal environments as well as OS -(freeRTOS, safeRTOS, etc.) This is accomplished by defining an OSAL interface -which must be provided by the application. - -The PMIC Driver does not depend on any operating system and supports execution -with baremetal application - -Coding style shall follow TI Processor SDK coding guidelines and -Documentation template shall follow TI Processor SDK style - -Customer deliverables independent of Processor SDK and integrated in Processor -SDK RTOS - -| Design Id: (did_pmic_validation_feature_support) -| Architecture: aid_pmic_test_support -| Requirement: REQ_TAG(PDK-5827) REQ_TAG(PDK-5860) - -Processor SDK shall contain automated PMIC driver unit test, implemented using -Unity test framework, Stub functional shall be implemented for any functionality -not testable on EVM. Driver validation on TI EVM shall use TI Processor SDK - -| Design Id: (did_pmic_performance_support) -| Architecture: aid_pmic_performance_support -| Requirement: REQ_TAG(PDK-5859) - -Processor SDK shall contain a PMIC driver benchmark for Pmic Initialization and -PMIC WDG QA Answer computation - -| Design Id: (did_pmic_safety_feature_support) -| Architecture: aid_pmic_generic_support -| Requirement: REQ_TAG(PDK-5856) REQ_TAG(PDK-5857) - -Driver shall follow the Functional Safety process and shall support customer -deliverables for functional safety - -| Design Id: (did_pmic_dynamic_alloc_mem_not_supported) -| Architecture: aid_pmic_dynamic_alloc_mem_not_supported -| Requirement: REQ_TAG(PDK-5811), REQ_TAG(PDK-5853) - -PMIC LLD is a library and memory placement of code and data is done by -application. It is expected that the application places PMIC LLD in RAM. PMIC -LLD shall not do any dynamic allocation of memory - -| Design Id: (did_pmic_build_infra_cfg) -| Architecture: aid_pmic_build_infra_cfg -| Requirement: REQ_TAG(PDK-5821) - -PMIC LLD shall compile and link via make on Linux and XDC-provided gmake on -Window. The build infrastructure shall be standalone to integrate with non TI -SDKs - -| Design Id: (did_pmic_debug_release_profile_support) -| Architecture: aid_pmic_debug_release_profile_support -| Requirement: REQ_TAG(PDK-5811), REQ_TAG(PDK-5853) - -The code shall be buildable in debug mode so that it may be stepped -through using a debugger and a program such as Code Composer Studio -(CCS). - -For testing, display of results of the test code will need access to -UART port - -Platform Integration --------------------- - -During Integration on non-TI platform, integrator shall take care to -properly define API Hooks to fulfill proper integration aspects as given -below: - -1. I2C LLD API Hooks -2. SPI LLD API Hooks -3. Critical Section/Locking API Hooks - -Following illustrates the integration specific details for any -platform/SDK. - -.. figure:: pmic_lld_design_diagram/Platform_Integration.png - :width: 80% - :align: center - -Figure Platform Integration - TI / non-TI SDK platform - - -Interrupt Service Routines --------------------------- - -PMIC Driver Requirement specifies that PMIC Driver software shall not -provide any Interrupt Service Routines, demanding the Application layer -provide and maintain the ISRs without driver intervention. - -Driver shall provide API to read error/status information from PMIC -registers and return a corresponding deciphered code. The API also gives -a feature to clear the Interrupts from within the same function call -using a control flag. This API can be invoked by application layer after -receiving an event/error Interrupt. - -Error Handling --------------- - -Driver shall provide API just to read error information from PMIC -registers and return a corresponding deciphered error code. This API can -be invoked by application layer depending on info taken from error ISR. - -PMIC driver API shall be able to decode various errors detected in PMIC -hardware and provide the relevant error code to Application. -See section `API Function Return Status`_. - -Components ----------- - -This section gives an overview of all components in PMIC module which -are divided into two categories: - -1. PMIC Communication Interface -2. PMIC Core Functionality - -PMIC Communication Interface Components -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -| Design Id: (did_pmic_comm_intf_cfg) -| Architecture: aid_pmic_comm_intf_i2c_spi_cfg -| Requirement: REQ_TAG(PDK-5814) REQ_TAG(PDK-5824) REQ_TAG(PDK-5858) - - -PMIC contains I2C1,I2C2 and SPI interfaces to configure, monitor and -control various components in PMIC module. - -**LLD for Communication Interface Components** - -PMIC Driver software doesn’t provide driver code for I2C and SPI IO -operations as it is designed to be platform independent.Application has -to provide all necessary LLD API for I2C and SPI API prototypes as given -in PSDK and Those API will be used by PMIC driver to drive I2C or SPI -interface. - -Driver shall support an application registered call table for the PMIC I2C/SPI -interface using TI I2C/SPI LLD API - -I2C Interface -^^^^^^^^^^^^^^ - -PMIC supports two I2C interfaces for PMIC communication. - -The I2C-compatible synchronous serial interface provides access to the -configurable functions and registers on the device. This protocol uses a -two-wire interface for bidirectional communications between the devices -connected to the bus. The two interface lines are the serial data line -(SDA), and the serial clock line (SCL). - -User application can configure the type of I2C interface to be used, -whether to use Single Mode or Dual Interface mode thus enabling or -disabling I2C2 interface. - -I2C1 is always enabled in case I2C interface is selected for PMIC -communication. - -**I2C Single Interface mode** -''''''''''''''''''''''''''''' - -| Design Id: (did_pmic_comm_single_i2c_cfg) -| Architecture: aid_pmic_comm_intf_i2c_spi_cfg -| Requirement: REQ_TAG(PDK-5810) REQ_TAG(PDK-9129) - -This mode is used when only one I2C interface is enough to communicate -with PMIC module. I2C2 lines shall be configured to function as GPIO -only for this mode. - -PMIC registers are fully accessible by I2C1. I2C1 is used by the PMIC to -accept IO requests to help MCU configure and monitor PMIC components and -states. - -PMIC Driver configure I2C1 and I2C2 interface as Standard or HS mode and -read the I2C1 and i2C2 interface mode. - -**I2C Dual Interface mode** -''''''''''''''''''''''''''' - -| Design Id: (did_pmic_comm_dual_i2c_cfg) -| Architecture: aid_pmic_comm_intf_i2c_spi_cfg -| Requirement: REQ_TAG(PDK-5813) - -This mode is used when both I2C interfaces are required to communicate -with PMIC module. Corresponding GPIO lines shall be configured by the application -to function as I2C Clock and Data lines for this mode. - -I2C2 interface will become the dedicated interface for the Q/A watchdog -communication, while I2C1 interface will no longer have access to the -watchdog registers. This will isolate the watchdog messages from the -control messages, to ensure real-time performance for watchdog. - -PMIC register access is distributed between I2C1 and I2C2. In Dual -Interface mode: - -- I2C1: Used to accept IO requests to help MCU configure and monitor - PMIC components and states as listed below: - -- Power Sequencer control -- State/Output control of Power Rails (including DVFS) -- Device Operating State control -- RTC - -- I2C2: Used to accept IO requests to help MCU do watchdog Trigger and - Q/A communication with PMIC - -| Design Id: (did_pmic_i2c_speed_readback) -| Architecture: aid_pmic_core_misc_cfg -| Requirement: REQ_TAG(PDK-9129) - -This mode is used to configure I2C1 and I2C2 interface as Standard or HS mode. - -I2C Master before switching the I2C speed to HS/Standard Mode, -I2C Master has to configure I2C1/I2C2 speed accordingly then only -I2C Master can communicate with PMIC in HS/Standard Mode - -SPI Interface -^^^^^^^^^^^^^ - -| Design Id: (did_pmic_comm_spi_cfg) -| Architecture: aid_pmic_comm_intf_i2c_spi_cfg -| Requirement: REQ_TAG(PDK-5843) - -The device supports SPI serial-bus interface and it operates as a slave. -A single read and write transmissions consist of 24-bit write and read -cycles (32-bit if CRC is enabled). - -PMIC gives one SPI interface for configuration and monitor from SOC/MCU. -The SPI has full access to all PMIC configurations and monitor -registers. When SPI is selected as the PMIC Interface, I2C2 lines are -configured to function as GPIO lines only and further communication is -done via SPI only. - -Communication Interface call- graph -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. figure:: pmic_lld_design_diagram/Communication_Interface_call_graph.png - :width: 100% - :align: center - -.. raw:: latex - - \newpage - -PMIC Core Functionality Components -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -GPIO -^^^^ - -| Design Id: (did_pmic_gpio_cfg_readback) -| Architecture: aid_pmic_gpio_cfg -| Requirement: REQ_TAG(PDK-5808), REQ_TAG(PDK-9111), REQ_TAG(PDK-9157), -| REQ_TAG(PDK-9159), REQ_TAG(PDK-9329), REQ_TAG(PDK-9162) - -PMIC GPIO Driver has APIs that supports all GPIO features Like, set/get -gpio pin functions, pull up/down, drive strength, output drain, pin -value, enable/disable gpio interrupt, configure nPWRON or ENABLE pin -features, support register write protection for control and configuration -registers and configure GPIO 9 functionality. - -.. figure:: pmic_lld_design_diagram/gpio_control_operation_flow.png - :width: 80% - :align: center - -Figure 4 gpio control/operation flow - -For more details please refer PMIC API Guide - -RTC -^^^ - -| Design Id: (did_pmic_rtc_cfg_readback) -| Architecture: aid_pmic_rtc_cfg -| Requirement: REQ_TAG(PDK-5855), REQ_TAG(PDK-9141), REQ_TAG(PDK-9135), -| REQ_TAG(PDK-9111) - -PMIC RTC Driver has APIs to supports all PMIC RTC features.like, set/get RTC time, -Alarm time, RTC frequncy compensation, timer interrupt period and enable or -disable RTC , RTC/Alarm interrupts, RTC timer interrupts, Set/Get RTC -Configuration and support register write protection for configuration registers. - -It is used to configure RTC control Parameters by - -a) To read RTC date / time register selection either from dynamic registers or - from static shadowed registers -b) To set or reset 32KHz counter when RTC is frozen -c) Time is rounded to the closest minute or not -Also provide an read API to read these configuration registers - -It is used to enable or disable Crystal oscillator and to configure Crystal -oscillator type. Also provide an API to read the status of Crystal oscillator -is enable or disabled and to read the Crystal oscillator type - -| Design Id: (did_pmic_rtc_clr_rst_status) -| Architecture: aid_pmic_rtc_cfg -| Requirement: REQ_TAG(PDK-9142), REQ_TAG(PDK-9145) - -PMIC RTC Driver shall read and clear RTC POWER_UP status. RTC POWER_UP status -indicates that a reset occurred and that RTC data are not valid anymore - -| Design Id: (did_pmic_rtc_status) -| Architecture: aid_pmic_rtc_cfg -| Requirement: REQ_TAG(PDK-9155) - -PMIC RTC Driver shall read status of whether RTC is started or not - -| Design Id: (did_pmic_rtc_rst_status) -| Architecture: aid_pmic_rtc_cfg -| Requirement: REQ_TAG(PDK-9145), REQ_TAG(PDK-9142) - -PMIC RTC Driver shall read RTC Reset status. RTC Reset status bit can only be -set to one and is cleared when a manual reset or a POR (case of VOUT_LDO_RTC -below the LDO_RTC POR level) occur. If this bit is reset it means that the RTC -has lost its configuration. - -For more details please refer PMIC API Guide - -Watchdog -^^^^^^^^ - -| Design Id: (did_pmic_wdg_cfg_readback) -| Architecture: aid_pmic_wdg_cfg -| Requirement: REQ_TAG(PDK-5854), REQ_TAG(PDK-5839), REQ_TAG(PDK-9115), -| REQ_TAG(PDK-9116) - -PMIC WatchDog Driver has APIs that supports all WatchDog features Like, -set/get watchdog configuration, Enable or disable watchdog, -Get watchdog error status, Get watchdog fail-count status, Start watchdog QA -sequence, Start watchdog trigger mode, Watchdog QA Sequence Write Answer -and Watchdog clear error status - -Watchdog Trigger Mode -''''''''''''''''''''' - -For Watchdog Trigger Mode, User has to ensure, configure all Watchdog -trigger parameters properly using Pmic_wdgSetCfg() API, before starting -watchdog trigger mode using this API. User can use Pmic_wdgSetCfg() API -to stop watchdog trigger mode. - -Watchdog QA Mode -'''''''''''''''' - -To start watchdog sequence and continues till the given -num_of_sequences. User has to ensure, configure all Watchdog QA -parameters properly using Pmic_wdgSetCfg() API, before starting QA -sequence using this API. - -Watchdog QA Sequence Write Answer -''''''''''''''''''''''''''''''''' - -Application will trigger PMIC Driver to Write WDG QA Answers either in -Long Window/Window-1/Window-2 interval. So User has to ensure, configure all -Watchdog QA parameters properly using Pmic_wdgSetCfg() API, before writing Answer -using this API for the QA Sequence - -Watchdog Clear Error Status -''''''''''''''''''''''''''' - -Watchdog Clear Error Status is used to clear the watchdog error status from the -PMIC for trigger mode or Q&A(question and answer) mode,User has to clear the WDG -Error status only when Error status bit is set for the corresponding wdgErrType - -For more details please refer PMIC API Guide - - -Runtime BIST -^^^^^^^^^^^^ - -| Design Id: (did_pmic_runtime_bist_cfg) -| Architecture: aid_pmic_fsm_cfg -| Requirement: REQ_TAG(PDK-5849) - -PMIC Driver has API that initiates a request to exrecise runtime BIST. - -For more details please refer PMIC API Guide - -Power Management -^^^^^^^^^^^^^^^^ - -| Design Id: (did_pmic_power_cfg_readback) -| Architecture: aid_pmic_power_cfg -| Requirement: REQ_TAG(PDK-5850), REQ_TAG(PDK-5848), REQ_TAG(PDK-5841), -| REQ_TAG(PDK-5829), REQ_TAG(PDK-9111), REQ_TAG(PDK-9163), -| REQ_TAG(PDK-9149), REQ_TAG(PDK-9159), REQ_TAG(PDK-9329) - -PMIC Power supports all power resources feature APIs, -which includes set/get BUCK and LDO regulator output voltage -configurations, set/get volatge monitor, current monitor, -short circuit protection configuration for external power -sources of the PMIC module - -PMIC Power supports to configure regulator and VMON -interrupts to notify the application when PMIC power related -errors are found on the power Rails and also support register write -protection for configuration registers. - -PMIC Power supports to set/get LDO slow ramp configuration for LDO regulators on -TPS6594x PG2.0 - -Power-Good -^^^^^^^^^^ - -| Design Id: (did_pmic_power_pgood_cfg_readback) -| Architecture: aid_pmic_power_cfg -| Requirement: REQ_TAG(PDK-5847), REQ_TAG(PDK-9111) - -PMIC Power supports power resources feature APIs, -which includes power good monitor of the PMIC module and -support register write protection for configuration registers. - -For more details please refer PMIC API Guide - -Thermal Monitoring -^^^^^^^^^^^^^^^^^^ - -| Design Id: (did_pmic_power_thermal_cfg_readback) -| Architecture: aid_pmic_power_cfg -| Requirement: REQ_TAG(PDK-5840), REQ_TAG(PDK-9111), REQ_TAG(PDK-9117) - -PMIC Power supports all power resources feature APIs, -which includes set/get thermal monitoring/shutdown of the PMIC module -and support register write protection for registers. - -PMIC Power supports to set/get thermal monitoring levels to support -higher ambient temperature on TPS6594x PMIC PG2.0 - -For more details please refer PMIC API Guide - -Interrupts -^^^^^^^^^^ - -| Design Id: (did_pmic_irq_cfg_readback) -| Architecture: aid_pmic_irq_cfg -| Requirement: REQ_TAG(PDK-5805), REQ_TAG(PDK-5842), REQ_TAG(PDK-5832), -| REQ_TAG(PDK-5838), REQ_TAG(PDK-5852), REQ_TAG(PDK-5834), -| REQ_TAG(PDK-5806), REQ_TAG(PDK-5828), REQ_TAG(PDK-5807), -| REQ_TAG(PDK-5846), REQ_TAG(PDK-5830), REQ_TAG(PDK-5812), -| REQ_TAG(PDK-5845), REQ_TAG(PDK-5835), REQ_TAG(PDK-5836), -| REQ_TAG(PDK-9147), REQ_TAG(PDK-9148), REQ_TAG(PDK-9149), -| REQ_TAG(PDK-9113), REQ_TAG(PDK-9120), REQ_TAG(PDK-9122), -| REQ_TAG(PDK-9159), REQ_TAG(PDK-9329) - -PMIC Interrupt Driver module supports all Interrupt feature APIs, which -includes Get/clear Interrupt status, extract the Interrupt status as per -Interrupt hierarchy, masking/unmasking of all Interrupts , a separate -API for GPIO Interrupt masking/unmasking and a separate API for clear -interrupt error status. - -.. figure:: pmic_lld_design_diagram/Interrupt_Handling.png - :width: 80% - :align: center - -Figure Interrupt Handling - -In PG1.0, the API shall support RECOV_CNT_INT as bit 6 of INT_MODERATE_ERR -register and NRSTOUT_READBACK_INT and NINT_READBACK_INT as bit 2 and bit 1 -of INT_READBACK_ERR register - -PMIC LLD shall not support these features in PG1.0 -a) Configuration of LDO slow ramp and VMON deglitch time -b) CRC Feature for I2C and SPI Interface -c) RUNTIME BIST -d) Customer NVM ID - -It shall not support write protection to clear the Interrupt registers - -In PG1.0, The API shall support write protection for clearing the interrupt -registers - -| Design Id: (did_pmic_irq_mask_status) -| Architecture: aid_pmic_irq_cfg -| Requirement: REQ_TAG(PDK-9153), REQ_TAG(PDK-9152) - -PMIC Interrupt Driver module supports all Interrupt feature APIs, which -includes Get GPIO mask interrupt and Get mask interrupt status - -The API shall read the status of Interrupt is masked or unmasked - -The API shall read the status of GPIO Rise or Fall Interrupt is masked or unmasked. -Also provide a API to read the status of FSM trigger masking Polarity and FSM -trigger is masked or unmasked - -For more details please refer PMIC API Guide - - -Error Signal Monitor (ESM) -^^^^^^^^^^^^^^^^^^^^^^^^^^ - -| Design Id: (did_pmic_esm_cfg_readback) -| Architecture: aid_pmic_esm_cfg -| Requirement: REQ_TAG(PDK-5833), REQ_TAG(PDK-9150) - -PMIC ESM Driver module supports all ESM feature APIs which includes -Start/stop ESM, Enable/Disable ESM mode, set/get ESM configurations, -enable/diable ESM interrupts and reading current ESM error count. - -PMIC ESM Driver read the status of ESM MCU/SOC is started or not - -For more details please refer PMIC API Guide - - -Finite State Machine (FSM) -^^^^^^^^^^^^^^^^^^^^^^^^^^ - -| Design Id: (did_pmic_fsm_cfg_readback) -| Architecture: aid_pmic_fsm_cfg -| Requirement: REQ_TAG(PDK-5837), REQ_TAG(PDK-9151), REQ_TAG(PDK-9144), -| REQ_TAG(PDK-9134), REQ_TAG(PDK-9128), REQ_TAG(PDK-9136), -| REQ_TAG(PDK-9146) - -PMIC FSM Driver module supports all FSM features APIs. Like, set/get FSM -states, enable FSM I2C Triggers, Mask and UnMask Nsleep Signals and -trigger Runtime BIST - -PMIC FSM Driver shall read the status of Nsleep signal is masked or unmasked - -PMIC FSM Driver shall configure FSM startup destination as Active, MCU only -and STANDBY/LP_STANDBY state. Also provide a API to read the configured FSM -startup destination - -PMIC FSM Driver shall enable Fast BIST. Also provide an API to read status of FAST -BIST is enabled or disabled - -PMIC FSM Driver shall configure to enable Buck/LDO regulators ILIM interrupts to -control FSM triggers - -PMIC FSM Driver is used to configure and read all 4 PFSM Delay. PFSM Delay will -affect the total power up sequence time before the system is released from reset. - -Consider If the PFSM_Delay value is 'x' then Delay will calculated as - Delay = x*(50ns * 2^PFSM_DELAY_STEP) - -PMIC FSM Driver module shall support set/get Nsleep signal value - -It shall support FSM transitions using Nsleep1/NSleep2 and NSleep1B/NSleep2B Signals. - -| Design Id: (did_pmic_fsm_recover_soc_pwr_err) -| Architecture: aid_pmic_fsm_cfg -| Requirement: REQ_TAG(PDK-9123), REQ_TAG(PDK-9159), REQ_TAG(PDK-9329) - -The API shall configure switching the PMIC state from Active to MCU and MCU to -Active using nsleep signals and configure Nsleep2 pin and NSLEEP1 pin from ‘11’ -to ‘10’ then back to ‘11’. - -During SOC Power Error, the API shall configure NSLEEP1 pin from ‘1’ to ‘0’ then -back to ‘1’. The time delay between the NSLEEP1 signal changes need to be greater -than 8us due to the input deglitch time. If customer uses a redefined GPIO pins -for the NSLEEP1 signal, but there is no maximum time limit. - -This helps to re-attempt powering up the SOC and return to ACTIVE state without -rebooting the system during SOC Power Error - -When a SOC power rail failed, the PMIC will return to MCU_ONLY state. Driver shall -re-attempt powering up the SOC and return to ACTIVE state without rebooting the -system. For the system to return to the ACTIVE state after a SOC power error, -software will change the NSLEEP1 pin from ‘1’ to ‘0’ then back to ‘1’ on the -primary PMIC. The time delay between the NSLEEP1 signal changes need to be -greater than 8us due to the input deglitch time if customer uses a redefined -GPIO pins for the NSLEEP1 signal, but there is no maximum time limit. - -| Design Id: (did_pmic_fsm_i2c_trigger) -| Architecture: aid_pmic_fsm_cfg -| Requirement: REQ_TAG(PDK-9330) - -The PMIC FSM Driver shall configure enable i2c trigger and get i2c trigger value - -a) The API shall configure TRIGER_I2C_x to trigger for PFSM Where x varies from - 0 to 7 i.e TRIGER_I2C_0 to TRIGER_I2C_7 except for x= 3 i.e TRIGER_I2C_3 - Configuration of TRIGER_I2C_3 is not supported. -b) The API shall configure TRIGER_I2C_4/ TRIGER_I2C_5/ TRIGER_I2C_6/ TRIGER_I2C_7 - to trigger PFSM based on Custom configuration. Supports Trigger value as either - 0 or 1 -c) The API shall configure TRIGER_I2C_0/ TRIGER_I2C_1/ TRIGER_I2C_2 bits are - automatically cleared . Supports Trigger value as 1 - -For J721E and J7200 EVMs, It shall configure - -a) TRIGER_I2C_0 to configure PFSM state as LPStandby or Standby state -b) TRIGER_I2C_1 to exercise Runtime BIST and supported only for PG2.0 -c) TRIGER_I2C_2 to enable CRC and supported only for PG2.0 - -| Design Id: (did_pmic_ddr_gpio_retention_cfg) -| Architecture: aid_pmic_fsm_cfg -| Requirement: REQ_TAG(PDK-9563) REQ_TAG(PDK-9564) - -PMIC FSM Driver shall initiates a request to exercise DDR/GPIO Retention Mode. -Retention Mode is valid only for J7200 SOC - -For more details please refer PMIC API Guide - - -LP Standby State -^^^^^^^^^^^^^^^^ - -| Design Id: (did_pmic_lpstandby_cfg) -| Architecture: aid_pmic_fsm_cfg -| Requirement: REQ_TAG(PDK-5851), REQ_TAG(PDK-9159), REQ_TAG(PDK-9329) - -PMIC FSM Driver module supports FSM features APIs. Like, set/get FSM -states, enable FSM I2C Triggers, Mask and UnMask Nsleep Signals. - -For more details please refer PMIC API Guide - - -LP Standby WAKE UP -^^^^^^^^^^^^^^^^^^^ - -| Design Id: (did_pmic_lpstandby_wkup_cfg) -| Architecture: aid_pmic_fsm_cfg -| Requirement: REQ_TAG(PDK-5831), REQ_TAG(PDK-5844) - -PMIC FSM Driver module supports LP standby APIs.using set FSM -states, enable FSM I2C Triggers, Mask Nsleep Signals. - -PMIC RTC Driver has APIs that supports wakeup functionalities using timer -interrupt and Alarm interrupts. -For more details please refer PMIC API Guide - -Core -^^^^ - -| Design Id: (did_pmic_common_ctrl_status_readback) -| Architecture: aid_pmic_core_misc_cfg -| Requirement: REQ_TAG(PDK-9126), REQ_TAG(PDK-9124), REQ_TAG(PDK-9125), -| REQ_TAG(PDK-9130), REQ_TAG(PDK-9138), REQ_TAG(PDK-9139), -| REQ_TAG(PDK-9112) - -PMIC Driver has APIs that supports get common control status. - -The API shall read the Readback Status Error as defined below - -a) NRSTOUT_SOC_READBACK_STAT - Status bit indicating that NRSTOUT_SOC pin output - is high and device is driving it low -b) NRSTOUT_READBACK_STAT - Status bit indicating that NRSTOUT pin output is high - and device is driving it low -c) NINT_READBACK_STAT - Status bit indicating that NINT pin output is high and - device is driving it low -d) EN_DRV_READBACK_STAT - Status bit indicating that EN_DRV pin output is - different than driven - -It shall read the nPWRON/Enable pin status and external clock validity status - -It is used to configure Backup Battery control parameters by -a) Enable or disable Backup battery charging -b) Configure Backup battery charging current -c) Configure End of charge voltage for backup battery charger - -And also provide an API to read Backup Battery control parameters and Backup -end of charge indication - -It shall read enable status of SPMI low power mode and status of force EN_DRV bit - -| Design Id: (did_pmic_battery_ctrl_cfg_readback) -| Architecture: aid_pmic_core_misc_cfg -| Requirement: REQ_TAG(PDK-9130) - -PMIC Driver has APIs that supports set/get battery control configuration - -It is used to configure backup battery charging current, enable or -disable backup battery charging and to configure end of charge voltage -for backup battery charger. - -| Design Id: (did_pmic_misc_ctrl_cfg_readback) -| Architecture: aid_pmic_core_misc_cfg -| Requirement: REQ_TAG(PDK-9132), REQ_TAG(PDK-9127) - -PMIC Driver has APIs that supports set/get miscellaneous control configuration - -The API shall configure Miscellaneous control Parameters as defined here -a) Selection of external clock - SYNCCLKIN -b) SYNCCLKOUT enable/frequency select - SYNCCLKOUT_FREQ_SEL -c) Selection of external clock- SEL_EXT_CLK -d) To enable or disable bandgap voltage to AMUXOUT pin(TPS6594x Leo PMIC)/ - REFOUT_EN pin(LP8764x Hera PMIC) -e) To enable or disable internal clock monitoring - -Also Provide API to read the Miscellaneous control Parameters configuration - -| Design Id: (did_pmic_common_ctrl_cfg_readback) -| Architecture: aid_pmic_core_misc_cfg -| Requirement: REQ_TAG(PDK-9112), REQ_TAG(PDK-9131), REQ_TAG(PDK-9114), -| REQ_TAG(PDK-9143), REQ_TAG(PDK-9111) - -PMIC Driver has APIs that supports set/get common control configuration and -support register write protection for control and configuration registers. - -Driver shall used to configure and read the status of register lock and EN_DRV -pin value - -Driver enable/disable the spread spectrum modulation and the percentage of -modulation depth and also read the status of spread spectrum modulation and -percentage of modulation depth. - -For TPS6594x Leo device it is used to enable/disable to load EEPROM defaults -on RTC domain regsiters when the device transitions from LPStandby/SafeRecovery -state to INIT state. - -For LP8764x Hera device it is used to load EEPROM defaults on conf registers -when the device transitions from LPStandby/SafeRecovery state to INIT state. - -| Design Id: (did_pmic_user_spare_cfg_readback) -| Architecture: aid_pmic_core_misc_cfg -| Requirement: REQ_TAG(PDK-9133) - -PMIC Driver has APIs that supports set/get user spare value. It is used to -configure and read user space register - -| Design Id: (did_pmic_pin_readback) -| Architecture: aid_pmic_core_misc_cfg -| Requirement: REQ_TAG(PDK-9137), REQ_TAG(PDK-9131) - -PMIC driver shall configure EN_DRV Pin and read the status of NRSTOUT_SOC/ -NRSTOUT/ EN_DRV Pin. - -For more details please refer PMIC API Guide - -Common -~~~~~~ - -This section explains design w.r.t the common driver and non-driver -features such as device support, build infrastructure and test -application. For test, unit test applications have been developed w.r.t -different modules. These unit-tests covers all possible test-cases, -such as functional, boundary value analysis, fault injection, stress, -performance and requirement analysis. - -The driver build infrastructure has been provided in such a way that it -supports TI processor SDK build as well as standalone build on windows -and Linux platform. For standalone setup, a separate makefile has been -provided. - -For functionalities which cannot be tested due to hardware limitation -such as SPI, stub implementation has been created to meet functional -safety code coverage requirement. - -PMIC Driver Setup and Instance Management ------------------------------------------ - -LP8764x Hera Support --------------------- - -| Design Id: (did_pmic_lp8764x_j7200_support) -| Architecture: aid_pmic_tps6594x_lp8764x_support -| Requirement: REQ_TAG(PDK-5853), REQ_TAG(PDK-9329), REQ_TAG(PDK-9159) - -This section explains design w.r.t the multiple Driver instance support -to handle a system with two or more PMIC devices of different kinds -(e.g. TPS6594x Leo and LP8764x Hera) which could be configured and monitored -using the same driver software, although device specific feature sets control -the internal functionality of the driver software. - -All PMIC module Configuration API functions are properly described along -with prototypes and relevant parameter information in later sections of -document. - -PMIC LLD shall implement and validate all TPS6594x Leo PMIC PG1.0 and PG2.0 -new Features for LP8764x Hera PMIC PG1.0 and PG2.0 which ever is applicable. - -.. figure:: pmic_lld_design_diagram/PMIC_Driver_Instance_Management.png - :width: 80% - :align: center - -Figure 7 PMIC Driver Instance Management - -TPS6594x LEO Support --------------------- - -| Design Id: (did_pmic_tps6594x_j721e_support) -| Architecture: aid_pmic_tps6594x_lp8764x_support -| Requirement: REQ_TAG(PDK-5811), REQ_TAG(PDK-9329) - -This section explains design w.r.t the multiple Driver instance support -to handle a system with two or more PMIC devices of different kinds -(e.g. TPS6594x Leo ) which could be configured and monitored using the -same driver software, although device specific feature sets control the -internal functionality of the driver software and read CRC status of the -PMIC on I2C or SPI Interface for TPS6594x Leo or LP8764x Hera devices - - -PMIC CRC Validation Feature ---------------------------- - -This feature is controlled by NVM register bits EN_I2C_CRC or -I2C1_SPI_CRC_EN. The CRC is factory defaulted to ENABLED or DISABLED -as per customer requirement. - -It is user responsibility to enable or disable the CRC as per NVM -configuration at the application during PMIC Handle creation. - -| Design Id: (did_pmic_crc_status) -| Architecture: aid_pmic_tps6594x_lp8764x_support -| Requirement: REQ_TAG(PDK-9329) - -PMIC driver API shall read CRC status of the primary or secondary PMIC on -I2C1 and I2C2 or SPI interface for TPS6594x Leo or LP8764x Hera devices - -| Design Id: (did_pmic_crc_enable) -| Architecture: aid_pmic_core_misc_cfg -| Requirement: REQ_TAG(PDK-9119) - -It is used to configure TRIGER_I2C_2 to '1' from the primary PMIC to enable -CRC feature on I2C1 and I2C2 or SPI interface for TPS6594x Leo or LP8764x Hera -device connected through SPMI after the system is powered up. - -Application shall not do reads and writes of the any PMIC registers for at least -2ms inorder to enable CRC features. - -After writing, SW has to wait for 2ms to enable CRC -Till this 2ms application shall not do communication with PMIC device through -I2C/SPI interface - -PMIC Recovery Count -------------------- - -| Design Id: (did_pmic_err_recov_cnt_cfg_readback) -| Architecture: aid_pmic_core_misc_cfg -| Requirement: REQ_TAG(PDK-5809) - -PMIC common Driver API contains miscellaneous APIs like pmic recovery count API. - - -PMIC Device Information ------------------------ - -| Design Id: (did_pmic_dev_info_readback) -| Architecture: aid_pmic_core_misc_cfg -| Requirement: REQ_TAG(PDK-9109), REQ_TAG(PDK-9110), REQ_TAG(PDK-9149), -| REQ_TAG(PDK-9159), REQ_TAG(PDK-9329) - -PMIC driver shall implement an API to read TI device ID, NVM ID, NVM Revision, -and Silicon Revision and customer NVM ID - -For more details please refer PMIC API Guide - -Decision Analysis & Resolution (DAR) -==================================== - -I2C/SPI LLD and Critical-Section-locks Transport Layer ------------------------------------------------------- - -DAR Criteria -~~~~~~~~~~~~ - -PMIC driver design w.r.t LLD and Locking Transport Layer should be such -that minimal effort is required for TI and non-TI SDKs/platform -integration. - -Available Alternatives -~~~~~~~~~~~~~~~~~~~~~~ - -Using TI’s Processor SDK Prototypes -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Use existing I2C/SPI LLD API, Critical-Section-locking and relevant data -types from TI’s Processor-SDK, use the prototypes for LLD API to be -called from within PMIC driver. - -This requires non-TI platform developer to use Processor-SDK defined -prototypes and data types for LLD, adding more effort in integration as -platform APIs are to be called in another set of wrapper functions and -new TI-Processor SDK specified data structures are to be used for the -LLDs. - -Defining generic LLD API Prototypes -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Prototypes for the APIs for I2C and SPI communication and -Critical-Section-locking are declared by the driver and allow TI or -non-TI integrators to define custom functions using these prototypes -with platform code and structures for platform LLD API. - -This makes it easier for non-TI platform developer to easily add -platform API code and data types and it makes driver truly platform -independent. - -Final Decision -~~~~~~~~~~~~~~ - -‘Defining LLD Read/Write Interface’ is opted for driver design as it -removes dependency on platform completely. - -Timing requirements for Watchdog-QA ------------------------------------ - -.. _dar-criteria-1: - -DAR Criteria -~~~~~~~~~~~~ - -PMIC driver/application software shall ensure Timing of operations, as -in Watchdog-QA session so it is properly executed as specified in TRM. - -**Watchdog-QA:** Timing for QA Windows 1 and 2 shall be followed -properly while sending out ANSWER bytes in respective Windows for -Successful Watchdog QA. - -.. _available-alternatives-1: - -Available Alternatives -~~~~~~~~~~~~~~~~~~~~~~ - -.. _using-tis-processor-sdk-prototypes-1: - -Using TI’s Processor SDK Prototypes -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Use existing API and relevant data types from TI’s Processor-SDK and -invoke Timer operations from within driver API functions. - -This requires non-TI platform developer to use Processor-SDK defined -prototypes and data types for LLD, adding more effort in integration as -platform APIs are to be called in another set of wrapper functions and -new TI-Processor SDK specified data structures are to be used for the -LLDs. Moreover, with this approach the timing is not under application -control. - -Timing in Application -^^^^^^^^^^^^^^^^^^^^^ - -In this case, application takes care of using delay logic and the values -will be known to application: - -**Watchdog QA**: Since application decides the Watchdog QA Window 1 and -2 registers, it already knows the timing values for QA. - -Once the application knows the delay values, platform Timer API can be -used to start a delay as required. - -This makes it easier for PMIC driver as no timing operation is required -to be done. And application has more control and it has relevant timing -details already to do this. - -.. _final-decision-1: - -Final Decision -~~~~~~~~~~~~~~ - -‘Timing in Application’ is better since driver shall not include Timer -API calls and application can easily do the delay (as it already has -enough data and control and integrated with Platform API). - -Watchdog QA Window Timing -------------------------- - -This is related to section above - ‘Timing requirements for -Watchdog-QA’. - -.. _dar-criteria-2: - -DAR Criteria -~~~~~~~~~~~~ - -PMIC driver design w.r.t Watchdog QA, Long window, Windows 1 and 2 time -interval should be provided properly while triggering WDG QA Sequence - -.. _available-alternatives-2: - -Available Alternatives -~~~~~~~~~~~~~~~~~~~~~~ - -Using Platform Timers -^^^^^^^^^^^^^^^^^^^^^ - -WDOG-QA driver API will need WINDOW1 and WINDOW2 values as function -parameters, and platform specific timers can be used inside Driver -function to measure the time as per given WINDOW parameter values to -make sure relevant ANSWER bytes are transferred in WINDOWS 1 and 2. - -This requires Platform API Hooks (as done for I2C/SPI LLD) so that -Driver can do timing operations correctly. This adds some effort in -Driver implementation as Timer API is included. Driver will need to -store the PMIC WDG configuration parameters internally. Application need -not do Window timing in this case. - -Running simple QA Sequence -^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Configure WDG long window, Windows 1 and 2 time intervals and other QA -parameters using WDG Configuration API. QA Start sequence API reads the -question, feedback values of WDG QA. Depending upon the question, driver -API has to evaluate and compute the Answers. For each Answer, driver API -has to check for WDG good or bad Events. If it is finds the good event -continue with the sequence else returns an error. Depending upon the -error, user has to tune the long window, Windows 1 and 2 time intervals -at the Application - -.. _final-decision-2: - -Final Decision -~~~~~~~~~~~~~~ - -Running simple QA Sequence is better for PMIC driver -design/implementation as it makes driver independent on platform API. -Since application knows the Window 1 and 2 timing values, it would be -easier for application developer to add code for timing while using -Watchdog-QA API. - -PMIC Critical Sections ----------------------- - -.. _dar-criteria-3: - -DAR Criteria -~~~~~~~~~~~~ - -Critical Sections for PMIC Driver - -.. _available-alternatives-3: - -Available Alternatives -~~~~~~~~~~~~~~~~~~~~~~ - -Application Level Critical Sections -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - - Here, the driver design and implementation doesn’t consider Critical - section making it easier, no code for the same is required for this. - Application software shall ensure each driver call will be done from - within a Critical Section. - - Platform developer needs to implement all necessary code for this in - application software. - -Driver Level Critical Sections -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -The application defined functions to Start/End Critical Section can be -updated with platform specific code by the platform developer to have -platform specific code. - -.. _final-decision-3: - -Final Decision -~~~~~~~~~~~~~~ - -Driver Level Critical Sections approach is chosen due to the following -merits: - -- Covers Application Level Critical Section approach - No platform code - needs to be added in Critical Section Dummy functions given by driver - and then platform developer can call driver API within platform - specific Critical Sections and this requires Critical Section coding - at application level. -- Easier application software design/development - Platform developer - shall add platform code inside the Critical Section Dummy functions - given by driver and application will not have burden of Critical - Sections. -- Choice - it helps platform developers during integration to choose - Critical Section code handling in driver or application software. - -Risks -===== - -- All the register and bit fields referred from TRM are assumed to be - correct. If any register mapping found not correct may lead to - implementation change. -- Few PMIC requirements are not possible to test on J721E and J7200 EVM - due to HW connections - -Requirements Traceability -========================= - -- All requirements are traceable starting from the Requirements - Document to the test specification. -- Each functional requirement ID shall have at least one Design ID and - one Test ID mapped to it. - -.. raw:: latex - - \newpage - -PMIC LLD Directory Structure -============================ - -The below diagram shows the file structure for PMIC LLD. -The cfg/tps6594x contains LEO PMIC specific header and source files and -cfg/lp8764x contains HERA PMIC specific header and source files. - -.. figure:: pmic_lld_design_diagram/PMIC_LLD_Directory_Structure.png - :width: 80% - :align: center - -.. raw:: latex - - \newpage - -API Definitions -=============== - -This section describes the API exposed by PMIC driver, necessary API -specific data types and LLD requirements. - -The driver API design and development are controlled/limited by -following factors: - -- **Platform LLD for SPI, I2C:** Driver API shall be platform - independent and hence driver shall use existing platform specific LLD - API for communicating with PMIC via SPI/I2C -- **Critical Sections:** Since Driver API is platform independent, any - critical section implementation using Locks, semaphores, etc. shall - be taken care by application developer on which the driver is ported - and built. Driver shall simply use the defined prototypes required - for these functions. - -LLD Requirements ----------------- - -It is IMPORTANT for API users to ensure the following are taken care -before invoking Driver API. - -PMIC handle ------------ - -Few callbacks need to be intialized by the application before calling -the driver API - -Interface handle -~~~~~~~~~~~~~~~~ - -This is required to identify IO interface used (SPI/I2C). This is -generally a pointer to a platform structure which is used further by -the LLD driver APIs for SPI/I2C interfaces. - -Application provides handles to relevant interfaces - SPI, I2C1, I2C2 -(optional) as per hardware configuration to the PMIC handle. -This requires all API functions need PMIC handle as primary parameter -to perform IO on application with chosen interface handle. -Driver API shall not need to maintain an internal structure and it is -up to application to carefully call the API functions with correct interface. -E.g. If SPI is chosen for PMIC IO, caller MUST give platform interface -handle only for SPI, not I2C, otherwise API will fail. - -I2C based IO: Slave Address is used to direct the I2C INTERFACE with proper -I2C Slave address -SPI based IO: Slave Address is not required and hence may -be omitted when SPI LLD API is used - -TI’s PMIC devices support different Slave Addresses with default Slave -address as 0x48 but supporting 0x58. This is because of the possibility -that other Slave devices could have same address as PMIC and it is all -dependent on Hardware configuration. Since the Driver API doesn’t -initially know what address is targeted, it is up to the platform and -application caller to give the slave address details each time PMIC -Driver services are required. - -A structure is defined for Interface handle to contain all Interface -information that could be used internally and invoke relevant LLD API -with required parameters extracted from Interface Handle structure. - -The interface should be properly set before using any other PMIC -API functions since all other functions are dependent on interface -ontext, so this interface setup is expected during INIT before -calling other driver API functions. - - -Critical Sections ------------------ -Multiple Asynchronous calls: There may be different tasks in the application -software which can call specific driver API at the same time. - -E.g. System Monitor task calls Watchdog-Session and Pmic gpio configuration -task may try to change PMIC GPIO2 functionality from I2C2 to GPIO at the same -instant (this has indirect effect on Watchdog-sessions). This may result in -undefined behavior of software and PMIC hardware. -Multiple Register accesses in API: Multiple I2C/SPI transfers may be involved -for each API to complete the desired configuration/monitor operation. If two -API functions are invoked and trying to access to same set of registers, -there may be stale/bad data. So, the critical section cannot be inside -Transport Layer (I2C/SPI LLD). -Task Prioritization calls: When a high priority task like System monitor -(that uses WDOG-triggers) pre-empts a lower priority task -(like the one that deals with RTC configuration), Critical sections should be -able to handle it. Disabling preemption (scheduling) may help, but higher -priority task gets delayed. - -For more details refer "PMIC Critical Sections" DAR section. - - -Driver API Data Types ---------------------- - -This section gives the definitions of various data types used by driver -API as inputs or outputs based on required functionality. - -API Function Return Status -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -#define PMIC_ST_SUCCESS (0) - -#define PMIC_ST_ERR_INV_HANDLE (-((int32_t)1)) - -#define PMIC_ST_ERR_NULL_PARAM (-((int32_t)2)) - -#define PMIC_ST_ERR_INV_PARAM (-((int32_t)3)) - -#define PMIC_ST_ERR_INV_DEVICE (-((int32_t)4)) - -#define PMIC_ST_ERR_NULL_FPTR (-((int32_t)5)) - -#define PMIC_ST_ERR_INV_SUBSYSTEM (-((int32_t)6)) - -#define PMIC_ST_ERR_INSUFFICIENT_CFG (-((int32_t)7)) - -#define PMIC_ST_ERR_I2C_COMM_FAIL (-((int32_t)8)) - -#define PMIC_ST_ERR_SPI_COMM_FAIL (-((int32_t)9)) - -#define PMIC_ST_ERR_DATA_IO_CRC (-((int32_t)10)) - -#define PMIC_ST_ERR_INTF_SETUP_FAILED (-((int32_t)11)) - -#define PMIC_ST_ERR_COMM_INTF_INIT_FAIL (-((int32_t)12)) - -#define PMIC_ST_ERR_UNINIT (-((int32_t)13)) - -#define PMIC_ST_ERR_INV_VOLTAGE (-((int32_t)14)) - -#define PMIC_ST_ERR_INV_REGULATOR (-((int32_t)15)) - -#define PMIC_ST_ERR_INV_PGOOD_LEVEL (-((int32_t)16)) - -#define PMIC_ST_ERR_INV_TEMP_THRESHOLD (-((int32_t)17)) - -#define PMIC_ST_ERR_INV_GPIO (-((int32_t)18)) - -#define PMIC_ST_ERR_INV_GPIO_FUNC (-((int32_t)19)) - -#define PMIC_ST_ERR_INV_GPIO_LINE_PARAMS (-((int32_t)20)) - -#define PMIC_ST_ERR_PIN_NOT_GPIO (-((int32_t)21)) - -#define PMIC_ST_ERR_INV_WDG_WINDOW (-((int32_t)22)) - -#define PMIC_ST_ERR_INV_WDG_ANSWER (-((int32_t)23)) - -#define PMIC_ST_ERR_WDG_EARLY_ANSWER (-((int32_t)24)) - -#define PMIC_ST_ERR_INV_ESM_TARGET (-((int32_t)25)) - -#define PMIC_ST_ERR_INV_ESM_MODE (-((int32_t)26)) - -#define PMIC_ST_ERR_INV_INT (-((int32_t)27)) - -#define PMIC_ST_ERR_CLEAR_INT_FAILED (-((int32_t)28)) - -#define PMIC_ST_ERR_INV_TIME (-((int32_t)29)) - -#define PMIC_ST_ERR_INV_DATE (-((int32_t)30)) - -#define PMIC_ST_ERR_RTC_STOP_FAIL (-((int32_t)31)) - -#define PMIC_ST_ERR_FAIL (-((int32_t)32)) - -#define PMIC_ST_ERR_ESM_STARTED (-((int32_t)33)) - -#define PMIC_ST_ERR_INV_ESM_VAL (-((int32_t)34)) - -#define PMIC_ST_WARN_INV_DEVICE_ID (-((int32_t)35)) - -#define PMIC_ST_ERR_INV_EN_DRV_PIN_CFG (-((int32_t)36)) - -#define PMIC_ST_ERR_INV_COMM_MODE (-((int32_t)37)) - -#define PMIC_ST_ERR_CRC_STATUS_FAIL (-((int32_t)38)) - -#define PMIC_ST_ERR_REG_LOCKED_WR_FAIL (-((int32_t)39)) - -PMIC Device Type -~~~~~~~~~~~~~~~~ - -#define PMIC_DEV_LEO_TPS6594X (0U) - -#define PMIC_DEV_HERA_LP8764X (1U) - -PMIC Interface Configuration -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -#define PMIC_INTF_SINGLE_I2C (0U) - -#define PMIC_INTF_DUAL_I2C (1U) - -#define PMIC_INTF_SPI (2U) - -PMIC I2C Speed Type -~~~~~~~~~~~~~~~~~~~ - -#define PMIC_I2C_STANDARD_MODE (0U) - -#define PMIC_I2C_FORCED_HS_MODE (1U) - -PMIC Instance Type -~~~~~~~~~~~~~~~~~~ - -#define PMIC_MAIN_INST (1U << 0U) - -#define PMIC_QA_INST (1U << 1U) - -#define PMIC_NVM_INST (1U << 2U) - - -Driver Configuration -~~~~~~~~~~~~~~~~~~~~ - -All the application defined functions for Transport Layer and Critical -Section API are expected to be shared by application to PMIC driver -during driver Initialization. - - -PMIC Driver Handle -^^^^^^^^^^^^^^^^^^ - -Following is the main structure that encapsulates all PMIC driver setup -time configuration for target PMIC device selection, LLD API and -Critical Section API list and relevant LLD handles. - -.. code-block:: ruby - - /*! - * \brief PMIC configuration structure. - * Contains various parameters which are needed to prepare - * PMIC driver handle using Valid params. - * like, PMIC device type, PMIC interface mode, Slave address, - * various application defined API function pointers for - * LLD and Critical sections. - * Application has to set the corresponding bit in validParams - * structure member to update the driver with Pmic_CoreCfg_t - * structure fields. - * For Example, If the Application needs to configure the PMIC driver - * pmicDeviceType member of the structure then application has - * to set PMIC_CFG_DEVICE_TYPE_VALID bit of validParams struct - * and then call pmic_init(). - * - * \param validParams Validate params Bits. - * Selection of structure parameters to - * be set, from the combination of - * \ref Pmic_ValidParamCfg and the - * corresponding member value must be - * updated. - * \param instType Instance type. - * For Valid Values: \ref Pmic_InstType. - * \param pmicDeviceType PMIC device type. - * For Valid Values: \ref Pmic_DeviceType. - * Valid only when - * PMIC_CFG_DEVICE_TYPE_VALID bit of - * validParams is set. - * \param commMode Interface mode - Single I2C, Dual - * I2C or SPI. - * For Valid Values: \ref Pmic_CommMode. - * Valid only when - * PMIC_CFG_COMM_MODE_VALID bit of - * validParams is set. - * \param slaveAddr Main Interface Slave Address. - * Valid only when - * PMIC_CFG_SLAVEADDR_VALID bit of - * validParams is set. - * \param qaSlaveAddr WDOG QA Interface Slave Address. - * Valid only when - * PMIC_CFG_QASLAVEADDR_VALID bit - * of validParams is set. - * \param nvmSlaveAddr NVM Slave Address which provides only - * read access to CRC status of Page-1 - * Application shall use this slave - * address to read only CRC status. - * Application shall not do - * any write operations using this slave - * address - * Valid only when - * PMIC_CFG_NVMSLAVEADDR_VALID bit - * of validParams is set. - * \param i2c1Speed Configures I2C1 Speed when commMode is - * Single or Dual I2C - * For Valid Values: \ref Pmic_I2CSpeedSel - * Valid only when - * PMIC_CFG_I2C1_SPEED_VALID bit is set - * \param i2c2Speed Configures I2C2 Speed when commMode is - * Dual I2C - * For Valid Values: \ref Pmic_I2CSpeedSel - * Valid only when - * PMIC_CFG_I2C2_SPEED_VALID bit is set - * \param pFnPmicCommIoRead Pointer to I2C/SPI Comm LLD Read - * Function. Valid only when - * PMIC_CFG_COMM_IO_RD_VALID bit - * of validParams is set. - * \param pFnPmicCommIoWrite Pointer to I2C/SPI Comm LLD Write - * Function. Valid only when - * PMIC_CFG_COMM_IO_WR_VALID bit - * of validParams is set. - * \param pCommHandle Pointer to Handle for I2C1/SPI - * Main Interface. Valid only when - * PMIC_CFG_COMM_HANDLE_VALID bit - * of validParams is set. - * \param pQACommHandle Pointer to Handle for I2C2-QA - * Interface. Valid only when - * PMIC_CFG_QACOMM_HANDLE_VALID bit - * of validParams is set. - * \param pFnPmicCritSecStart Pointer to Pmic Critical-Section - * Start Function. Valid only when - * PMIC_CFG_CRITSEC_START_VALID bit - * of validParams is set. - * \param pFnPmicCritSecStop Pointer to Pmic Critical-Section - * Stop Function. Valid only when - * PMIC_CFG_CRITSECSTOP_VALID bit of - * validParams is set. - */ - typedef struct Pmic_CoreCfg_s { - uint32_t validParams; - uint32_t instType; - uint8_t pmicDeviceType; - uint8_t commMode; - uint8_t slaveAddr; - uint8_t qaSlaveAddr; - uint8_t nvmSlaveAddr; - uint8_t i2c1Speed; - uint8_t i2c2Speed; - void *pCommHandle; - void *pQACommHandle; - int32_t (*pFnPmicCommIoRead)(struct Pmic_CoreHandle_s *pmicCorehandle, - uint8_t instType, - uint16_t regAddr, - uint8_t *pRxBuf, - uint8_t bufLen); - int32_t (*pFnPmicCommIoWrite)(struct Pmic_CoreHandle_s *pmicCorehandle, - uint8_t instType, - uint16_t regAddr, - uint8_t *pTxBuf, - uint8_t bufLen); - void (*pFnPmicCritSecStart)(void); - void (*pFnPmicCritSecStop)(void); - } Pmic_CoreCfg_t; - -PMIC Device Subsystem Structure -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.. code-block:: ruby - - /*! - * \brief PMIC Subsystems - * - * \param gpioEnable PMIC GPIO SubSystem - * \param rtcEnable PMIC RTC SubSystem - * \param wdgEnable PMIC Watchdog SubSystem - * \param buckEnable PMIC BUCK SubSystem - * \param ldoEnable PMIC LDO SubSystem - * \param esmEnable PMIC ESM SubSystem - */ - typedef struct Pmic_DevSubSysInfo_s - { - bool gpioEnable; - bool rtcEnable; - bool wdgEnable; - bool buckEnable; - bool ldoEnable; - bool esmEnable; - } Pmic_DevSubSysInfo_t; - -PMIC Interface Handle Structure -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.. code-block:: ruby - - /*! - * \brief PMIC Interface Handle. - * Contains various PMIC driver instance specific information. like, - * the PMIC device type, PMIC interface mode, Slave addresses, - * various application defined API function pointers for - * LLD and Critical sections. - * - * Note: Pmic_init() configures the Pmic Handle information and provide - * pmic core handle to user application. User should ensure that - * application shall not modify the PMIC Handle information. - * - * \param pPmic_SubSysInfo PMIC driver subsystem information - * \param drvInitStatus PMIC Driver initialization status. - * Valid driver status: - * For Main instance: - * DRV_INIT_STATUS | PMIC_MAIN_INST. - * For QA instance: - * DRV_INIT_STATUS | PMIC_QA_INST. - * \param pmicDeviceType PMIC device type - * \param pmicDevRev PMIC device revision ID - * \param pmicDevSiliconRev PMIC device silicon revision ID - * \param commMode Interface mode - Single I2C, Dual - * I2C or SPI. - * \param slaveAddr Main Interface Slave Address - * \param qaSlaveAddr WDOG QA Interface Slave Address - * \param nvmSlaveAddr NVM Slave Address which provides only - * read access to CRC status of Page-1 - * Application shall use this slave - * address to read only CRC status. - * Application shall not do - * any write operations using this slave - * address - * \param i2c1Speed I2C1 Speed when commMode is Single or - * Dual I2C - * \param i2c2Speed I2C2 Speed when commMode is Dual I2C - * \param crcEnable Parameter to enable/disable CRC - * For Valid Values: - * \ref Pmic_CrcEnableCfg - * \param pFnPmicCommIoRead Pointer to I2C/SPI Comm LLD Read - * Function - * \param pFnPmicCommIoWrite Pointer to I2C/SPI Comm LLD Write - * Function - * \param pCommHandle Pointer to Handle for I2C1/SPI - * Main Interface - * \param pQACommHandle Pointer to Handle for I2C2-QA - * Interface - * \param pFnPmicCritSecStart Pointer to Pmic Critical-Section - * Start Function - * \param pFnPmicCritSecStop Pointer to Pmic Critical-Section - * Stop Function - */ - typedef struct Pmic_CoreHandle_s { - const Pmic_DevSubSysInfo_t *pPmic_SubSysInfo; - uint32_t drvInitStatus; - uint8_t pmicDeviceType; - uint8_t pmicDevRev; - uint8_t pmicDevSiliconRev; - uint8_t commMode; - uint8_t slaveAddr; - uint8_t qaSlaveAddr; - uint8_t nvmSlaveAddr; - uint8_t i2c1Speed; - uint8_t i2c2Speed; - bool crcEnable; - void *pCommHandle; - void *pQACommHandle; - int32_t (*pFnPmicCommIoRead)(struct Pmic_CoreHandle_s *pmicCorehandle, - uint8_t instType, - uint16_t regAddr, - uint8_t *pRxBuf, - uint8_t bufLen); - int32_t (*pFnPmicCommIoWrite)(struct Pmic_CoreHandle_s *pmicCorehandle, - uint8_t instType, - uint16_t regAddr, - uint8_t *pTxBuf, - uint8_t bufLen); - void (*pFnPmicCritSecStart)(void); - void (*pFnPmicCritSecStop)(void); -} Pmic_CoreHandle_t; - - -GPIO Configuration -~~~~~~~~~~~~~~~~~~ - -.. code-block:: ruby - - /*! - * \brief PMIC GPIO/NPWRON/ENABLE pin configuration structure. - * Note: validParams is input param for all Set and Get APIs. other - * params except validParams is input param for Set APIs and output - * param for Get APIs - * - * \param validParams Selection of structure parameters to be set, - * from the combination of \ref Pmic_GpioCflag - * and the corresponding member value must be - * updated. - * Valid values \ref Pmic_GpioCflag. - * \param pinDir gpio pin Direction. Valid only for GPIO pins. - * Valid values \ref Pmic_Gpio_SignalDir. - * Valid only when PMIC_GPIO_CFG_DIR_VALID - * bit is set. - * \param outputSignalType output signal type. - * Valid values \ref Pmic_Gpio_SignalType. - * Valid only when PMIC_GPIO_CFG_OD_VALID - * bit is set. - * Valid only for GPIO Pins. - * \param pullCtrl pullup/pull down control. - * Valid values \ref Pmic_GpioPinPullCtrl. - * Valid only when PMIC_GPIO_CFG_PULL_VALID - * bit is set. - * \param deglitchEnable Signal deglitch time enable/disable. - * Valid values \ref Pmic_Gpio_DeglitchTimeCfg. - * Valid only when PMIC_GPIO_CFG_DEGLITCH_VALID - * bit is set. - * \param pinFunc pin mux function. - * Valid values for TPS6594x Leo Device - * \ref Pmic_Tps6594xLeo_GpioPinFunc. - * Valid values for LP8764x HERA Device - * \ref Pmic_Lp8764xHera_GpioPinFunc. - * Valid only when PMIC_GPIO_CFG_PINFUNC_VALID - * bit is set. - * \param pinPolarity Configure pin polarity. - * Valid only for Enable pin. - * Valid only when PMIC_ENABLE_CFG_POLARITY_VALID - * bit is set. - */ - typedef struct Pmic_GpioCfg_s - { - uint8_t validParams; - uint8_t pinDir; - uint8_t outputSignalType; - uint8_t pullCtrl; - uint8_t deglitchEnable; - uint8_t pinFunc; - uint8_t pinPolarity; - } Pmic_GpioCfg_t - -Watchdog Configuration -~~~~~~~~~~~~~~~~~~~~~~ - -.. code-block:: ruby - - /*! - * \brief PMIC Watchdog configuration structure - * Note: validParams is input param for all Set and Get APIs. other - * params except validParams is input param for Set APIs and output - * param for Get APIs - * - * \param validParams Selection of structure parameters to be - * set from the combination of the - * \ref Pmic_WdgCfgValidParamBitPos - * and the corresponding member value will be - * updated. - * \param longWinDuration_ms Long Window duration in milli seconds. - * To get more effective results user has to - * program long window with multiples of 3000. - * For PG1.0, the valid range is (100, 3000, 6000, - * 9000,....12000, ..., 765000). - * For PG2.0, the valid range is (80, 125, 250, - * 375,....8000, 12000, 16000, 20000 ..., 772000). - * \param win1Duration_us Window-1 duration in Micro Seconds. - * To get more effective results user has to - * program window1 with multiples of 550. - * The valid range is (550, 1100, 1650, 2200, - * 2750, ..., 70400). - * \param win2Duration_us Window-2 duration in Micro Seconds. - * To get more effective results user has to - * program window1 with multiples of 550. - * The valid range is (550, 1100, 1650, 2200, - * 2750, ..., 70400). - * \param failThreshold Fail threshold value. - * For valid Values: - * \ref Pmic_WdgFailThresholdCount. - * \param rstThreshold Reset threshold Value. - * For valid Values: - * \ref Pmic_WdgResetThresholdCount. - * \param wdgMode Value to set watchdog mode. - * For valid Values: - * \ref Pmic_WdgTriggerQAMode. - * \param pwrHold Value to Enable or disable watchdog pwrHold. - * For valid Values: - * \ref Pmic_WdgPwrHoldEnDisable. - * \param rstEnable To enable or diable warm reset on fail. - * For valid Values: - * \ref Pmic_WdgResetEnDisable. - * \param retLongWin To enable or disable return to long window - * after completion of the curent sequence. - * For valid Values: - * \ref Pmic_WdgReturnLongWinEnDisable. - * \param qaFdbk Configure QA feed back value. - * For valid Values: - * \ref Pmic_WdgQaFdbkVal. - * \param qaLfsr Configure QA LFSR value. - * For valid Values: - * \ref Pmic_WdgQaLfsrVal. - * \param qaQuesSeed Configure QA question seed value. - * For valid Values: - * \ref Pmic_WdgQaQuestionSeedVal. - */ - typedef struct Pmic_WdgCfg_s - { - uint32_t validParams; - - uint32_t longWinDuration_ms; - uint32_t win1Duration_us; - uint32_t win2Duration_us; - - uint8_t failThreshold; - uint8_t rstThreshold; - - bool wdgMode; - bool pwrHold; - bool rstEnable; - bool retLongWin; - - uint8_t qaFdbk; - uint8_t qaLfsr; - uint8_t qaQuesSeed; - - } Pmic_WdgCfg_t; - - -.. code-block:: ruby - - - /*! - * \brief PMIC Watchdog error status structure - * Note: validParams is input param for all Get APIs. other - * params except validParams is output param for Get APIs - * - * \param validParams Selection of structure parameters to be - * set from the combination of the - * \ref Pmic_WdgErrStatCfgValidParamBitPos - * and the corresponding member value will be - * updated. - * \param wdLongWinTimeout To get Long Window timeout error status. - * \param wdTimeout To get Window1 and window2 timeout error status. - * \param wdTrigEarly To get Watchdog trigger mode error status. - * \param wdAnswearly To get Watchdog early answer error status. - * \param wdSeqErr To get Watchdog QA sequence error status. - * \param wdAnswErr To get Watchdog QA wrong Answer error status. - * \param wdFailInt To get Watchdog fail error status. - * \param wdRstInt To get Watchdog reset error status. - */ - typedef struct Pmic_WdgErrStatus_s - { - uint32_t validParams; - bool wdLongWinTimeout; - bool wdTimeout; - bool wdTrigEarly; - bool wdAnswearly; - bool wdSeqErr; - bool wdAnswErr; - bool wdFailInt; - bool wdRstInt; - } Pmic_WdgErrStatus_t; - - -.. code-block:: ruby - - - /*! - * \brief PMIC Watchdog Fail Count status structure - * Note: validParams is input param for all Get APIs. other params - * except validParams is output param for Get APIs - * - * \param validParams Selection of structure parameters to be - * set from the combination of the - * \ref Pmic_WdgFailCntStatCfgValidParamBitPos - * and the corresponding member value will be - * updated. - * \param wdBadEvent To get status of Bad Event is detected or not - * \param wdGudEvent To get status of Good Event is detected or not - * \param wdFailCnt To get Watchdog Fail Count value. - */ - typedef struct Pmic_WdgFailCntStat_s - { - uint32_t validParams; - bool wdBadEvent; - bool wdGudEvent; - uint32_t wdFailCnt; - } Pmic_WdgFailCntStat_t; - - - -RTC Configuration -~~~~~~~~~~~~~~~~~ -.. code-block:: ruby - - /*! - * \brief RTC time configuration. - * The Pmic_RtcTime_s structure contains set of time parameters to - * set/get the RTC time. - * - * \param validParams Validate params Bits. - * Depending on the parameters want to get/set, - * corresponding bits should be set in validParam. - * For valid values: - * \ref Pmic_RtcTimeValidParamBits - * \param seconds Value to represent Seconds. - * Valid only when PMIC_RTC_TIME_CFG_SEC_VALID - * bit of validParams is set. - * \param minutes Value to represent Minutes. - * Valid only when PMIC_RTC_TIME_CFG_MIN_VALID - * bit of validParams is set. - * \param hour Value to represent Hours. - * Valid only when PMIC_RTC_TIME_CFG_HRS_VALID - * bit of validParams is set. - * \param timeMode Value to represent Time Mode. - * For valid values: \ref Pmic_RtcTimeMode. - * Valid only when - * PMIC_RTC_TIME_CFG_TIMEMODE_VALID bit of - * validParams is set. - * \param meridianMode Value to represent Maridian Mode. - * For valid values: \ref Pmic_RtcMeridienMode. - * Valid only when - * PMIC_RTC_TIME_CFG_MERIDIAN_VALID bit of - * validParams is set. - */ - typedef struct Pmic_RtcTime_s - { - uint32_t validParams; - uint8_t seconds; - uint8_t minutes; - uint8_t hour; - uint8_t timeMode; - uint8_t meridianMode; - } Pmic_RtcTime_t; - - /*! - * \brief RTC Date configuration. - * The Pmic_RtcDate_s structure contains set of date parameters to - * set/get the RTC Date. - * - * \param validParams Validate params Bits. - * Depending on the parameters want to get/set, - * corresponding bits should be set in validParam. - * \param day Value to represent the day. - * Valid only when PMIC_RTC_DATE_CFG_DAY_VALID - * bit of validParams is set. - * \param month Value to represent the Month. - * For valid values \ref Pmic_RtcMonth. - * Valid only when PMIC_RTC_DATE_CFG_MONTH_VALID - * bit of validParams is set. - * \param year Value to represent the Year. - * Valid only when PMIC_RTC_DATE_CFG_YEAR_VALID - * bit of validParams is set. - * \param weekday Value to represent the weekday of the week. - * For Valid Values: \ref Pmic_RtcWeekDay. - * Valid only when - * PMIC_RTC_DATE_CFG_WEEKDAY_VALID - * bit of validParams is set. - * - */ - typedef struct Pmic_RtcDate_s - { - uint32_t validParams; - uint8_t day; - uint8_t month; - uint16_t year; - uint8_t weekday; - } Pmic_RtcDate_t; - - /*! - * \brief RTC Reset Status - * The Pmic_RtcRstStatus_s structure contains status of RTC Reset and - * power-up status. - * Note: validParams is input param for all Get APIs. other params - * except validParams is output param for Get APIs - * - * \param validParams Validate params Bits. - * Depending on the parameters want to get, - * corresponding bits should be set in validParam. - * For valid values - * \ref Pmic_RtcRstStatusValidParam - * \param rtcRstStatus Value of reset status of RTC. - * Valid only when PMIC_RTC_RESET_STATUS_VALID - * bit of validParams is set. - * For valid values - * \ref Pmic_RtcResetStatus - * \param powerupStatus Value of power-up status of RTC. - * Valid only when PMIC_RTC_POWERUP_STATUS_VALID - * bit of validParams is set. - * For valid values - * \ref Pmic_RtcPowerUpStatus - */ - typedef struct Pmic_RtcRstStatus_s - { - uint32_t validParams; - bool rtcRstStatus; - bool powerupStatus; - } Pmic_RtcRstStatus_t; - - /*! - * \brief RTC configuration - * The Pmic_RtcCfg_t structure contains RTC configuration - * Note: validParams is input param for all Set and Get APIs. other - * params except validParams is input param for Set APIs and output - * param for Get APIs - * - * \param validParams Validate params Bits. - * Depending on the parameters want to get, - * corresponding bits should be set in validParam - * For Valid values - * \ref Pmic_RtcConfigValidParamCfg - * \param crystalOScEn Enable/Disable Crystal Oscillator - * Valid only when - * PMIC_RTC_CFG_CRYSTAL_OSC_EN_VALID - * bit of validParams is set. - * For valid values - * \ref Pmic_RtcCrystalOscCfg - * \param set32KCounterCompVal Set 32K counter with compensation values. - * Application can configure this only when - * RTC is frozen - * Valid only when - * PMIC_RTC_CFG_32K_COUNTER_COMP_VAL_SET_VALID - * bit of validParams is set. - * For valid values - * \ref Pmic_Rtc32KCounterCfg - * \param setRtcTimeRound30s Set RTC time config to Round the time to - * closest minute - * Valid only when - * PMIC_RTC_CFG_RTC_TIME_ROUND_30S_SET_VALID - * bit of validParams is set. - * For valid values - * \ref Pmic_RtcRoundTime - * \param timeDateRegSel Select RTC Time and Date Register read from - * Dynamic or Static Shadowed Registers. - * Valid only when - * PMIC_RTC_CFG_TIME_DATE_REG_SEL_VALID - * bit of validParams is set. - * For valid values - * \ref Pmic_RtcTimeDateRegSel - * \param crystalOScType Select Crystal Oscillator Type - * Valid only when - * PMIC_RTC_CFG_CRYSTAL_OSC_TYPE_VALID - * bit of validParams is set. - * For valid values - * \ref Pmic_RtcCrystalOscType - */ - typedef struct Pmic_RtcCfg_s - { - uint32_t validParams; - bool crystalOScEn; - uint8_t set32KCounterCompVal; - uint8_t setRtcTimeRound30s; - uint8_t timeDateRegSel; - uint8_t crystalOScType; - }Pmic_RtcCfg_t; - - -Power Configuration -~~~~~~~~~~~~~~~~~~~~ -.. code-block:: ruby - - /*! - * \anchor Pmic_PowerResourceCfg_s - * \brief Pmic Power resources control and configuration structure. - * Note: validParams is input param for all Set and Get APIs other - * params except validParams is input param for Set APIs and output - * param for Get APIs - * - * \param validParams Selection of structure parameters to be set, - * from the combination of - * \ref Pmic_PowerResourcesValidParamCfg - * and the corresponding member value must be - * updated. - * \param rvCheckEn Enable/Disable residual voltage checking for - * regulator/VMON pin. - * Valid values for TPS6594x Leo Device - * \ref Pmic_TPS6594x_Regulator_RV_Check. - * Valid values for LP8764x HERA Device - * \ref Pmic_LP8764x_Regulator_Vmon_RV_Check. - * Valid only when - * PMIC_CFG_REGULATOR_VMON_RV_SEL_VALID bit is - * set. - * \param buckPullDownEn Enable/Disable output pull-down resistor when - * BUCK is disabled. - * Valid values for TPS6594x Leo Device - * \ref Pmic_TPS6594x_Buck_Pull_Down_Resistor. - * Valid values for LP8764x HERA Device - * \ref Pmic_LP8764x_Buck_Pull_Down_Resistor. - * Valid only when - * PMIC_CFG_REGULATOR_BUCK_PLDN_EN_VALID bit is - * set. - * \param vmonEn Enable /Disable the Voltage monitor feature. - * For LDO, VCCA, VMON1 and VMON2: - * Enable/Disable OV and UV comparators. - * For BUCK: - * Enable/Disable OV, UV, SC and ILIM - * comparators. - * Note: For VMON1 and VMON2, Need to configure - * respective GPIO pin functionality before - * enabling VMON feature - * Valid values for TPS6594x Leo Device - * \ref Pmic_TPS6594x_Vmon_Enable. - * Valid values for LP8764x HERA Device - * \ref Pmic_LP8764x_Vmon_Enable. - * Valid only when PMIC_CFG_VMON_EN_VALID bit is - * set. - * \param buckVoutSel Select output voltage register for BUCK. - * Valid values for TPS6594x Leo Device - * \ref Pmic_TPS6594x_Regulator_Buck_Vout_Sel. - * Valid values for LP8764x HERA Device - * \ref Pmic_LP8764x_Regulator_Buck_Vout_Sel. - * Valid only when - * PMIC_CFG_REGULATOR_BUCK_VOUT_SEL_VALID bit is - * set. - * \param buckFpwmMode Select PWM or Auto Mode for BUCK. - * Valid values for TPS6594x Leo Device - * \ref Pmic_TPS6594x_Regulator_Pwm_Pfm_Mode. - * Valid values for LP8764x HERA Device - * \ref Pmic_LP8764x_Regulator_Pwm_Pfm_Mode. - * Valid only when - * PMIC_CFG_REGULATOR_BUCK_FPWM_VALID bit is set. - * \param buckFpwmMpMode Select between Multi phase with PWM OR AUTO - * mode with Automatic phase adding and shedding - * for BUCK. - * Valid values for TPS6594x Leo Device - * \ref Pmic_TPS6594x_Regulator_Pwm_Mp_Mode. - * Valid values for LP8764x HERA Device - * \ref PMIC_LP8764X_Regulator_Pwm_Mp_Mode. - * Valid only when - * PMIC_CFG_REGULATOR_BUCK_PWM_MP_VALID bit - * is set. - * \param regulatorEn Enable/Disable the power regulators. - * Valid values for TPS6594x Leo Device - * \ref Pmic_TPS6594x_Power_Regulator_enable. - * Valid values for LP8764x HERA Device - * \ref Pmic_LP8764x_Buck_Regulator_enable. - * Valid only when PMIC_CFG_REGULATOR_EN_VALID - * bit is set. - * \param ldoSlowRampEn Enable/Disable Slow Ramp for LDO - * Valid only for TPS6594X Leo. For Valid Values - * \ref Pmic_TPS6594x_Regulator_Ldo_Slow_Ramp. - * Valid only when - * PMIC_CFG_REGULATOR_LDO_SLOW_RAMP_EN_VALID - * bit is set. - * Valid only for TPS6594x Leo PMIC PG2.0 - * \param ldoBypassModeEn Selects Bypass/Linear Regulator LDO mode. - * Valid only for TPS6594X Leo. For Valid Values - * \ref Pmic_TPS6594x_Regulator_Ldo_Mode. - * Valid only when - * PMIC_CFG_REGULATOR_LDO_BYPASS_MODE_EN_VALID - * bit is set. - * \param vccaPwrGudLvl Powergood level for VCCA pin. - * Valid values for TPS6594x Leo Device - * \ref Pmic_TPS6594x_VccaPowerGoodLimit. - * Valid values for LP8764x HERA Device - * \ref Pmic_LP8764x_VccaPowerGoodLimit. - * Valid only when - * PMIC_CFG_VCCA_PWR_GOOD_LVL_VALID bit is set. - * \param vmonRange Select OV/UV voltage monitoring range for - * VMON - * Valid only for LP8764X Hera. For Valid Values - * \ref Pmic_LP8764x_Power_Vmon_Range. - * Valid only when - * PMIC_CFG_VMON_RANGE_VALID bit is set - * \param buckCurrentLimit Switch peak current limit for BUCK regulator. - * Valid values for TPS6594x Leo Device - * \ref Pmic_TPS6594x_Buck_Current_Limit. - * Valid values for LP8764x HERA Device - * \ref Pmic_LP8764x_Buck_Current_Limit. - * Valid only when - * PMIC_CFG_REGULATOR_BUCK_ILIM_VALID bit is set. - * \param buckVmonSlewRate Output voltage slew rate for BUCK/VMON - * Valid values for TPS6594x Leo Device - * \ref Pmic_TPS6594x_Buck_Slew_Rate. - * Valid values for LP8764x HERA Device - * \ref Pmic_LP8764x_Buck_Vmon_Slew_Rate. - * Valid only when - * PMIC_CFG_REGULATOR_BUCK_VMON_SLEW_RATE_VALID - * bit is set - * \param ldoPullDownSel Selects the resistor value for output - * pull-down resistor for LDO regulator - * Valid only for TPS6594X Leo. For Valid Values - * \ref Pmic_TPS6594x_Ldo_Pldn_Resistor_Val. - * Valid only when - * PMIC_CFG_REGULATOR_LDO_PLDN_SEL_VALID bit is - * set. - * \param ldoRvTimeoutSel LDO residual voltage check timeout select. - * Valid only for TPS6594X Leo. For Valid Values - * \ref Pmic_TPS6594x_Ldo_RV_Timeout. - * Valid only when - * PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID - * bit is set. - * \param pgUvThresholdLvl Power good low threshold level for the power - * resources. - * Valid values for TPS6594x Leo Device - * \ref Pmic_TPS6594x_Pg_Ov_Uv_Threshold_lvl. - * Valid values for LP8764x HERA Device - * \ref Pmic_LP8764x_Pg_Ov_Uv_Threshold_lvl. - * Valid only when - * PMIC_CFG_PWR_RESOURCE_PG_UV_THRESHOLD_LVL_VALID - * bit is set. - * \param pgOvThresholdLvl Power good high threshold level for the power - * resources. - * Valid values for TPS6594x Leo Device - * \ref Pmic_TPS6594x_Pg_Ov_Uv_Threshold_lvl. - * Valid values for LP8764x HERA Device - * \ref Pmic_LP8764x_Pg_Ov_Uv_Threshold_lvl. - * PMIC_CFG_PWR_RESOURCE_PG_OV_THRESHOLD_LVL_VALID - * bit is set. - * \param railGrpSel Rail group selection for the power resources - * Valid values for TPS6594x Leo Device - * \ref Pmic_TPS6594x_Power_Rail_Sel. - * Valid values for LP8764x HERA Device - * \ref Pmic_LP8764x_Power_Rail_Sel. - * Valid only when - * PMIC_CFG_PWR_RESOURCE_RAIL_GRP_SEL_VALID bit is - * set - * \param voltage_mV For LDO/BUCK: Voltage level in mv. - * For VMON1/VMON2: Powergood voltage level in mv - * Valid only when - * PMIC_CFG_REGULATOR_VMON_VOLTAGE_SET_VALID - * bit is set - */ - typedef struct Pmic_PowerResourceCfg_s - { - uint32_t validParams; - bool rvCheckEn; - bool buckPullDownEn; - bool vmonEn; - bool buckVoutSel; - bool buckFpwmMode; - bool buckFpwmMpMode; - bool regulatorEn; - bool ldoSlowRampEn; - bool ldoBypassModeEn; - bool vccaPwrGudLvl; - bool vmonRange; - uint8_t buckCurrentLimit; - uint8_t buckVmonSlewRate; - uint8_t ldoPullDownSel; - uint8_t ldoRvTimeoutSel; - uint8_t pgUvThresholdLvl; - uint8_t pgOvThresholdLvl; - uint8_t railGrpSel; - uint16_t voltage_mV; - } Pmic_PowerResourceCfg_t; - -.. code-block:: ruby - - /*! - * \anchor Pmic_PowerCommonCfg_s - * \brief Power configuration - * The power control and config structure - * Note: validParams is input param for all Set and Get APIs. other - * params except validParams is input param for Set APIs and output - * param for Get APIs - * - * \param validParams Selection of structure parameters to be set, - * from the combination of - * \ref Pmic_PowerCommonParamCfg - * and the corresponding member value must be - * updated - * - * \param pgoodWindow Select the type of voltage monitoring for PGOOD - * signal - * For valid values - * \ref Pmic_Power_Good_Window - * Valid only when - * PMIC_POWER_PGOOD_WINDOW_VALID bit set. - * - * \param pgoodPolarity Select the PGOOD signal polarity - * For valid values - * Valid values - * \ref Pmic_Power_Good_Polarity - * Valid only when - * PMIC_POWER_PGOOD_POL_VALID bit is set. - * - * \param deglitchTimeSel Deglitch time select for all power resources - * Valid values for TPS6594x Leo Device - * Valid only for TPS6594x Leo PMIC PG2.0 - * \ref Pmic_TPS6594x_Vmon_DeglitchTime_Sel. - * Valid values for LP8764x HERA Device - * Valid for both LP8764x Hera PMIC PG1.0 and - * PG2.0 - * \ref Pmic_LP8764x_Vmon_DeglitchTime_Sel. - * Valid only when - * PMIC_CFG_DEGLITCH_TIME_SEL_VALID bit is set. - * - * \param severeErrorTrig Select the trigger selection for severe Error - * For valid values - * \ref Pmic_Power_Trigger_Sel - * Valid only when - * PMIC_SEVERE_ERR_TRIG_VALID bit set. - * - * \param otherRailTrig Select the trigger selection for other - * rail group - * For valid values - * \ref Pmic_Power_Trigger_Sel - * Valid only when - * PMIC_OTHER_RAIL_TRIG_VALID bit set. - * - * \param socRailTrig Select the trigger selection for soc rail group - * For valid values - * \ref Pmic_Power_Trigger_Sel - * Valid only when - * PMIC_SOC_RAIL_TRIG_VALID bit set. - * - * \param mcuRailTrig Select the trigger selection for mcu rail group - * For valid values - * \ref Pmic_Power_Trigger_Sel - * Valid only when - * PMIC_MCU_RAIL_TRIG_VALID bit set. - * - * \param moderateRailTrig Select the trigger selection for Moderate Error - * For valid values - * \ref Pmic_Power_Trigger_Sel - * Valid only when - * PMIC_MODERATE_ERR_TRIG_VALID bit set - * - */ - typedef struct Pmic_PowerCommonCfg_s - { - uint32_t validParams; - bool pgoodWindow; - bool pgoodPolarity; - bool deglitchTimeSel; - uint8_t severeErrorTrig; - uint8_t otherRailTrig; - uint8_t socRailTrig; - uint8_t mcuRailTrig; - uint8_t moderateRailTrig; - } Pmic_PowerCommonCfg_t; - - -Thermal Configuration -~~~~~~~~~~~~~~~~~~~~~~ -.. code-block:: ruby - - /*! - * \anchor Pmic_PowerResourceStat_s - * \brief PMIC power status. - * The PMIC power and thermal status structure. - * Note: validParams is input param for all Get APIs. other params - * except validParams is output param for Get APIs - * - * \param validParams Selection of structure parameters to be set, - * from the combination of - * \ref Pmic_PowerStatusValidParamCfg - * and the corresponding member value must be - * updated - * - * \param currentLimitLvlStat - * Used to read the output current limit status - * for LDO and buck regulators. - * This checks if output current is above current - * limit level. - * For valid values - * Valid values for TPS6594x Leo Device - * \ref Pmic_TPS6594x_Power_Current_Status - * Valid values for LP8764x HERA Device - * \ref Pmic_LP8764x_Power_Current_Status - * Valid only when - * PMIC_POWER_REGULATOR_ILIM_STAT_VALID bit set. - * - * \param underVoltageTholdStat - * Used to read the output under voltage status - * for LDO/BUCK and input under voltage status for - * VCCA/VMON. - * This is used to read if output/input voltage - * is below under-voltage threshold/level - * VCCA/VMON. - * For valid values - * Valid values for TPS6594x Leo Device - * For Power Regulator(BUCK/LDO) - * \ref Pmic_TPS6594x_Regulator_Under_Voltage_Status - * For VCCA - * \ref Pmic_TPS6594x_Vcca_Under_Voltage_Status - * Valid values for LP8764x HERA Device - * For Power Regulator(BUCK/LDO) - * \ref Pmic_LP8764x_Regulator_Under_Voltage_Status - * For VCCA/VMON - * \ref Pmic_LP8764x_Vcca_Vmon_Under_Voltage_Status - * Valid only when - * PMIC_POWER_RESOURCE_UV_STAT_VALID bit set. - * - * \param overVoltageTholdStat - * Used to read the output over voltage status - * LDO/BUCK and input over voltage status for - * VCCA/VMON. - * This is used to read if output/input voltage - * is above over-voltage threshold/level - * - * For valid values - * Valid values for TPS6594x Leo Device - * For Power Regulator(BUCK/LDO) - * \ref Pmic_TPS6594x_Regulator_Over_Voltage_Status - * For VCCA/VMON - * \ref Pmic_TPS6594x_Vcca_Over_Voltage_Status - * Valid values for LP8764x HERA Device - * For Power Regulator(BUCK/LDO) - * \ref Pmic_LP8764x_Regulator_Over_Voltage_Status - * For VCCA/VMON - * \ref Pmic_LP8764x_Vcca_Vmon_Over_Voltage_Status - * Valid only when - * PMIC_POWER_RESOURCE_OV_STAT_VALID bit set. - * - * \param overVoltageProtectionLvlStat - * Used to read the voltage level status for - * VCCA. - * This is used to read if voltage is above - * overvoltage protection level. - * For valid values - * Valid values for TPS6594x Leo Device - * \ref Pmic_TPS6594x_Vcca_Voltage_Status - * Valid values for LP8764x HERA Device - * \ref Pmic_LP8764x_Vcca_Voltage_Status - * Valid only when - * PMIC_POWER_VCCA_OV_LVL_STAT_VALID bit set. - */ - typedef struct Pmic_PowerResourceStat_s - { - uint32_t validParams; - bool currentLimitLvlStat; - bool underVoltageTholdStat; - bool overVoltageTholdStat; - bool overVoltageProtectionLvlStat; - } Pmic_PowerResourceStat_t; - -.. code-block:: ruby - - /*! - * \anchor Pmic_PowerThermalCfg_s - * \brief PMIC Power Thermal configuration structure - * Note: validParams is input param for all Set and Get APIs. other - * params except validParams is input param for Set APIs and output - * param for Get APIs - * - * \param validParams Selection of structure parameters to be set, - * from the combination of - * \ref Pmic_PowerThermalThresholdValidParamCfg - * and the corresponding member value must be - * updated. - * \param thermalWarnThold - * Set/Get the thermal Warning Threshold - * temperature value for PMIC. - * For valid values - * Valid values for TPS6594x Leo Device PG 1.0 - * \ref Pmic_TPS6594x_Pwr_Thermal_Warn_Lvl_PG_1_0 - * Valid values for TPS6594x Leo Device PG 2.0 - * \ref Pmic_TPS6594x_Pwr_Thermal_Warn_Lvl_PG_2_0 - * Valid values for LP8764x HERA Device - * \ref Pmic_LP8764x_Pwr_Thermal_Warn_Lvl - * Valid only when - * PMIC_THERMAL_WARN_VALID bit is set - * - * \param thermalShutdownThold - * Set/Get the Thermal Shutdown Threshold - * temperature value for PMIC. - * Only supported by TPS6594x Leo PMIC PG2.0 - * and LP8764x Hera PMIC PG1.0 and PG2.0 - * For valid values - * Valid values for TPS6594x Leo Device PG2.0 - * \ref Pmic_TPS6594x_Power_Thermal_Shutdown_Level - * Valid values for LP8764x Leo Device PG2.0 and - * PG1.0 - * \ref Pmic_LP8764x_Power_Thermal_Shutdown_Level - * Valid only when - * PMIC_THERMAL_SHTDWN_VALID bit of - * validParams is set. - * - */ - typedef struct Pmic_PowerThermalCfg_s - { - uint32_t validParams; - bool thermalWarnThold; - bool thermalShutdownThold; - } Pmic_PowerThermalCfg_t; - -.. code-block:: ruby - - /*! - * \anchor Pmic_PowerThermalStat_t - * \brief PMIC Power Thermal status structure - * Note: validParams is input param for all Get APIs. other params - * except validParams is output param for Get APIs - * - * \param validParams Selection of structure parameters to be set, - * from the combination of - * \ref Pmic_PowerThermalStatValidParamCfg - * and the corresponding member value must be - * updated. - * \param thermalStateWarning - * Set/Get the Thermal warning status - * Status bit indicating that die junction - * temperature is above the thermal warning level. - * Valid only when - * PMIC_THERMAL_STAT_WARN_VALID bit is set - * - * \param thermalStateOderlyShtDwn - * Set/Get the Orderly Shutdown status - * Status bit indicating that the die junction - * temperature is above the thermal level causing - * a sequenced shutdown. - * Valid only when - * PMIC_THERMAL_STAT_ORD_SHTDWN_VALID bit is set - * - * \param thermalStateImmShtDwn - * Set/Get the Immediate Shutdown status - * Status bit indicating that the die junction - * temperature is above the thermal level causing - * an immediate shutdown - * Valid only when - * PMIC_THERMAL_STAT_IMM_SHTDWN_VALID bit is set - * - */ - typedef struct Pmic_PowerThermalStat_s - { - uint16_t validParams; - bool thermalStateWarning; - bool thermalStateOderlyShtDwn; - bool thermalStateImmShtDwn; - } Pmic_PowerThermalStat_t; - -ESM Configuration -~~~~~~~~~~~~~~~~~ -.. code-block:: ruby - - /*! - * \brief PMIC ESM Configuration structure - * Note: validParams is input param for all Set and Get APIs. other - * params except validParams is input param for Set APIs and output - * param for Get APIs - * - * \param validParams Selection of structure parameters to be set, - * from the combination of \ref Pmic_EsmCflag - * and the corresponding member value must be - * updated. - * \param esmDelay1_us ESM delay-1 time interval in micro seconds. - * To get more effective results, user has to - * program esmDelay1 with multiples of 2048. - * The valid range is (0, 2048, 4096, 6144, - * 8192, ......., 522240). - * Valid only when PMIC_ESM_CFG_DELAY1_VALID - * bit is set - * \param esmDelay2_us ESM delay-2 time interval in micro seconds. - * To get more effective results, user has to - * program esmDelay2 with multiples of 2048. - * The valid range is (0, 2048, 4096, 6144, - * 8192, ......., 522240). - * Valid only when PMIC_ESM_CFG_DELAY2_VALID - * bit is set - * \param esmHmax_us ESM Maximum high-pulse time-threshold value in - * micro seconds. - * To get more effective results, user has to - * program esmHmax with multiples of 15. - * The valid range is (15, 30, 45, 60, 75 - * ....., 3840). - * Valid only when PMIC_ESM_CFG_HMAX_VALID - * bit is set - * \param esmHmin_us ESM Minimum high-pulse time-threshold value in - * micro seconds. - * To get more effective results, user has to - * program esmHmin with multiples of 15. - * The valid range is (15, 30, 45, 60, 75 - * ....., 3840). - * Valid only when PMIC_ESM_CFG_HMIN_VALID - * bit is set - * \param esmLmax_us ESM Maximum low-pulse time-threshold value in - * micro seconds. - * To get more effective results, user has to - * program esmLmax with multiples of 15. - * The valid range is (15, 30, 45, 60, 75 - * ....., 3840). - * Valid only when PMIC_ESM_CFG_LMAX_VALID - * bit is set - * \param esmLmin_us ESM Minimum low-pulse time-threshold value in - * micro seconds. - * To get more effective results, user has to - * program esmLmin with multiples of 15. - * The valid range is (15, 30, 45, 60, 75 - * ....., 3840). - * Valid only when PMIC_ESM_CFG_LMIN_VALID - * bit is set - * \param esmErrCntThr ESM Error count Threshold value. - * Valid only when PMIC_ESM_CFG_ERR_CNT_THR_VALID - * bit is set - * \param esmEnDrv ESM ENABLE_DRV clear configuration. - * Valid values: \ref Pmic_EsmEnDrvSel. - * Valid only when PMIC_ESM_CFG_EN_DRV_VALID - * bit is set - * \param esmMode ESM mode select. - * Valid values: \ref Pmic_EsmMode. - * Valid only when PMIC_ESM_CFG_MODE_VALID - * bit is set - */ - typedef struct Pmic_EsmCfg_s - { - uint32_t validParams; - uint32_t esmDelay1_us; - uint32_t esmDelay2_us; - uint16_t esmHmax_us; - uint16_t esmHmin_us; - uint16_t esmLmax_us; - uint16_t esmLmin_us; - uint8_t esmErrCntThr; - bool esmEnDrv; - bool esmMode; - } Pmic_EsmCfg_t; - -.. code-block:: ruby - - /*! - * \brief PMIC ESM Interrupt Configuration Structure. - * - * \param esmPinIntr ESM Pin Interrupt configuration. - * Valid values: \ref Pmic_EsmIntr. - * \param esmFailIntr ESM Fail Interrupt configuration. - * Valid values: \ref Pmic_EsmIntr. - * \param esmRstIntr ESM Reset Interrupt configuration. - * Valid values: \ref Pmic_EsmIntr. - */ - typedef struct Pmic_EsmIntrCfg_s - { - bool esmPinIntr; - bool esmFailIntr; - bool esmRstIntr; - } Pmic_EsmIntrCfg_t; - -FSM Configuration -~~~~~~~~~~~~~~~~~ - -.. code-block:: ruby - - /*! - * \brief PMIC FSM configuration structure. - * Note: validParams is input param for all Set and Get APIs. other - * params except validParams is input param for Set APIs and output - * param for Get APIs - * - * \param validParams Selection of structure parameters to be set, - * from the combination of - * \ref Pmic_FsmValidParamCfg and the corresponding - * member value must be updated - * Valid values \ref Pmic_FsmValidParamCfg - * \param fastBistEn Enable/Disable Fast BIST - * Valid values \ref Pmic_Fsm_FastBist_Enable - * Valid only when PMIC_FSM_CFG_FAST_BIST_EN_VALID - * bit is set - * \param lpStandbySel Low Power Standby State Selection - * Valid values \ref Pmic_Fsm_LpStandby_Sel - * Valid only when PMIC_FSM_CFG_LP_STANDBYSEL_VALID - * bit is set - * \param ilimIntfsmCtrlEn Enable/Disable Buck/LDO regulators ILIM - * interrupts affect FSM triggers - * Valid values \ref Pmic_Fsm_IlimInt_FsmCtrl_En - * Valid only when - * PMIC_FSM_CFG_ILIM_INT_FSMCTRL_EN_VALID - * bit is set - * \param fsmStarupDestSel Select FSM Startup Destination - * Valid values \ref Pmic_FSM_StartupDest_Select - * Valid only when - * PMIC_FSM_CFG_FSM_STARTUP_DEST_SEL_VALID - * bit is set - */ - typedef struct Pmic_FsmCfg_s - { - uint8_t validParams; - bool fastBistEn; - bool lpStandbySel; - bool ilimIntfsmCtrlEn; - uint8_t fsmStarupDestSel; - } Pmic_FsmCfg_t;; - -Core Configuration -~~~~~~~~~~~~~~~~~~ -.. code-block:: ruby - - /*! - * \brief PMIC Recovery Counter Configuration - * Note: validParams is input param for all Set and Get APIs. other - * params except validParams is input param for Set APIS and output - * param for Get APIs - * - * \param validParams Selection of structure parameters to be set, - * from the combination of \ref Pmic_RecoveryCntCfgType - * and the corresponding member value must be updated. - * Valid values \ref Pmic_RecoveryCntCfgType - * \param thrVal Recovery Counter Threshold Value. - * Valid only when PMIC_CFG_RECOV_CNT_THR_VAL_VALID - * bit is set. - * \param clrCnt Clear Recovery Counter Value and value should be 1U. - * Valid only when PMIC_CFG_RECOV_CNT_CLR_VAL_VALID - * bit is set. - */ - typedef struct Pmic_RecovCntCfg_s - { - uint8_t validParams; - uint8_t thrVal; - bool clrCnt; - } Pmic_RecovCntCfg_t; - -.. code-block:: ruby - - /*! - * \brief PMIC common control param configuration - * Note: validParams is input param for all Set and Get APIs. other - * params except validParams is input param for Set APIs and output - * param for Get APIs - * - * \param validParams Selection of structure parameters to be set, - * from the combination of - * \ref Pmic_CommonCtrlValidParamCfg - * and the corresponding member value must be - * updated - * Valid values - * \ref Pmic_CommonCtrlValidParamCfg - * \param sreadSpectrumEn Spread Spectrum Enable Value - * Valid only when - * PMIC_CFG_SPREAD_SPECTRUM_EN_VALID bit is set - * Valid values \ref Pmic_SpreadSpectrum_Cfg - * \param skipEepromLoadEn Enable/Disable to skip EEPROM defaults load - * on conf registers when device transition - * from Lpstandby to INIT state - * Valid only for LP8764x Hera Device - * Valid only when - * PMIC_CFG_SKIP_EEPROM_LOAD_VALID - * bit is set. - * Valid values - * \ref Pmic_Lp8764xHera_Skip_EepromDef_LdCfg - * \param eepromDefaultLoad Load/Not Loaded from EEPROM defaults on - * RTC domain Registers (for TPS6594x Leo - * Device) when device transition from - * Lpstandby/SafeRecovery to INIT state - * Enable/Disable load from EEPROM defaults on - * conf registers when skipEepromLoadEn = 0 - * when device transition from Lpstandby to - * INIT state - * Load/Not Loaded load from EEPROM defaults on - * conf registers when device transition from - * SafeRecovery to INIT state.Doesn't depends - * on skipEepromLoadEn Value - * (for LP8764x Hera Device) - * Valid only when - * PMIC_CFG_EEPROM_DEFAULT_VALID bit is set. - * Valid values - * \ref Pmic_Tps6594xLeo_EepromDef_LdCfg - * (for TPS6594x Leo Device) - * \ref Pmic_Lp8764xHera_EepromDef_LdCfg - * (for LP8764x Hera Device) - * \param enDrv Control of ENABLE_DRV pin. Can be configured - * only When forceEnDrvLow set to 0 else - * ENABLE_DRV pin is set to - * PMIC_PIN_SIGNAL_LEVEL_LOW. - * Valid values \ref Pmic_SignalLvl - * Valid only when PMIC_CFG_ENABLE_DRV_VALID - * bit is set. - * \param regLock Register Lock configuration - * Valid values \ref Pmic_RegisterLock_Config - * Valid only when PMIC_CFG_REG_LOCK_VALID - * bit is set - * Valid only for Pmic_setCommonCtrlConfig API - * \param spreadSpectrumDepth Spread Spectrum modulation Depth Value - * Valid values - * \ref Pmic_SpreadSpectrum_Mod_Depth_Sel - * Valid only when - * PMIC_CFG_SPREAD_SPECTRUM_DEPTH_VALID - * bit is set. - */ - typedef struct Pmic_CommonCtrlCfg_s - { - uint8_t validParams; - bool sreadSpectrumEn; - bool skipEepromDefaultLoadEn; - uint8_t eepromDefaultLoad; - uint8_t enDrv; - uint8_t regLock; - uint8_t spreadSpectrumDepth; - } Pmic_CommonCtrlCfg_t; - -.. code-block:: ruby - - /*! - * \brief PMIC Miscellaneous control param Configuration - * Note: validParams is input param for all Set and Get APIs. other - * params except validParams is input param for Set APIs and output - * param for Get APIs - * - * \param validParams Selection of structure parameters to be set, - * from the combination of - * \ref Pmic_MiscCtrlValidParamCfg and the - * corresponding member value must be updated. - * Valid values \ref Pmic_MiscCtrlValidParamCfg - * \param amuxOutRefOutEn Enable/Disable Band gap Voltage to AMUX OUT Pin - * (for TPS6594x Leo Device) or RFF OUT Pin - * (for LP8764x Leo Device) - * Valid only when - * PMIC_CFG_AMUX_OUT_REF_OUT_EN_VALID bit is set - * Valid values - * \ref Pmic_Tps6594xLeo_AMuxOutPinCtrl_Cfg - * (for TPS6594x Leo Device) - * \ref Pmic_Lp8764xHera_RefOutPinCtrl_Cfg - * (for LP8764x Hera Device) - * \param clkMonEn Enable or Disable internal Clock Monitoring - * Valid only when PMIC_CFG_CLK_MON_EN_VALID - * bit is set. - * Valid values \ref Pmic_InternalClkMonitor_Cfg - * \param syncClkOutFreqSel Selects SYNCCLKOUT Frequency - * Valid values \ref Pmic_SyncClkOut_Freq_Sel - * Valid only when - * PMIC_CFG_SYNC_CLK_OUT_FREQ_SEL_VALID bit is set - * \param extClkSel External clock Selection - * Valid values \ref Pmic_ExtClk_Sel - * Valid only when PMIC_CFG_EXT_CLK_SEL_VALID - * bit is set. - * \param syncClkInFreq Selects External clock Frequency - * Valid only when PMIC_CFG_SYNC_CLK_IN_FREQ_VALID - * bit is set. - * Valid values - * \ref Pmic_Tps6594xLeo_ExtClk_Freq_Sel - * (for TPS6594x Leo Device) - * \ref Pmic_Lp8764xHera_ExtClk_Freq_Sel - * (for LP8764x Hera Device) - * \param nRstOutSocSignal Configure NRSTOUT_SOC Signal - * Note: When Application configures - * nRstOutSocSignal as PMIC_PIN_SIGNAL_LEVEL_LOW - * then SOC will be in reset - * Valid only when PMIC_CFG_NRSTOUT_SOC_VALID - * bit is set. - * Valid values \ref Pmic_SignalLvl - * \param nRstOutSignal Configure NRSTOUT Signal - * Note: When Application configures - * nRstOutSignal as PMIC_PIN_SIGNAL_LEVEL_LOW - * then MCU will be in reset - * Valid only when PMIC_CFG_NRSTOUT_VALID - * bit is set. - * Valid values \ref Pmic_SignalLvl - */ - typedef struct Pmic_MiscCtrlCfg_s - { - uint8_t validParams; - bool amuxOutRefOutEn; - bool clkMonEn; - uint8_t syncClkOutFreqSel; - uint8_t extClkSel; - uint8_t syncClkInFreq; - uint8_t nRstOutSocSignal; - uint8_t nRstOutSignal; - } Pmic_MiscCtrlCfg_t; - -.. code-block:: ruby - - /*! - * \brief PMIC Backup Battery control param Configuration - * Note: validParams is input param for all Set and Get APIs. other - * params except validParams is input param for Set APIs and output - * param for Get APIs - * - * \param validParams Selection of structure parameters to be set, - * from the combination of - * \ref Pmic_BatteryCtrlValidParamCfg and the - * corresponding member value must be updated. - * \param chargingEn Enable/Disable Backup Battery Charging - * Valid only when PMIC_CFG_CHARGING_EN_VALID - * bit is set. - * Valid only for TPS6594x Leo Device - * Valid values - * \ref Pmic_Tps6594xLeo_BatteryCharging_Cfg - * \param endOfChargeVoltage Backup Battery configuration for End of charge - * Voltage - * Valid only when - * PMIC_CFG_END_OF_CHARGE_VOLTAGE_VALID bit is set. - * Valid only for TPS6594x Leo Device - * Valid values - * \ref Pmic_Tps6594xLeo_EndOfChargeVoltage_Sel - * \param chargeCurrent Backup Battery charging current value - * Valid only when PMIC_CFG_CHARGE_CURRENT_VALID - * bit is set. - * Valid only for TPS6594x Leo Device - * Valid values - * \ref Pmic_Tps6594xLeo_Charging_Current_Sel - */ - typedef struct Pmic_BatteryCtrlCfg_s - { - uint8_t validParams; - bool chargingEn; - uint8_t endOfChargeVoltage; - uint8_t chargeCurrent; - } Pmic_BatteryCtrlCfg_t; - -.. code-block:: ruby - - /*! - * \brief PMIC common control param status - * Note: validParams is input param for all Get APIs. other params - * except validParams is output param for Get APIs - * - * \param validParams Selection of structure parameters to be set, from - * the combination of - * \ref Pmic_CommonCtrlStatValidParamCfg - * and the corresponding member value must be - * updated - * Valid values - * \ref Pmic_CommonCtrlStatValidParamCfg - * \param spmiLpmStat SPMI Low Power Mode Control Status. - * Valid only when PMIC_CFG_SPMI_LPM_STAT_VALID - * bit is set. - * Valid values \ref Pmic_SpmiLpmModeCtrl_Stat - * \param forceEnDrvLowStat Status of ENABLE_DRV Configuration by I2C/SPI - * Valid only when - * PMIC_CFG_FORCE_ENABLE_DRV_LOW_STAT_VALID - * bit is set. - * Valid values \ref Pmic_EnableDrvI2CSPICfg_Stat - * \param bbEocIndication Backup Battery End of charge Indication Status - * Valid only when - * PMIC_CFG_BB_EOC_INDICATION_STAT_VALID - * bit is set - * Valid only for TPS6594x Leo Device - * Valid values - * \ref Pmic_Tps6594xLeo_BBEoCIndicationStat - * \param regLockStat Register lock status - * Valid only when PMIC_CFG_REGISTER_LOCK_STAT_VALID - * bit is set - * Valid values \ref Pmic_RegisterLock_Stat - * \param extClkValidity External clock validity status. The status value - * is valid only when External clock is connected - * Ignore the status value when External clock is not - * connected - * Valid only when - * PMIC_CFG_EXT_CLK_VALIDITY_STAT_VALID bit is set - * Valid values \ref Pmic_ExtClkValidStat - * \param startupPin Startup(nPWRON/Enable) pin status - * Valid only when PMIC_CFG_STARTUP_PIN_STAT_VALID - * bit is set - * Valid values \ref Pmic_SignalLvl - * \param enDrvPin EN_DRV Pin status - * Valid only when PMIC_CFG_EN_DRV_PIN_STAT_VALID - * bit is set. - * Valid values \ref Pmic_SignalLvl - * \param nRstOutSocPin nRSTOUT_SOC Pin status - * Valid only when - * PMIC_CFG_NRSTOUTSOC_PIN_STAT_VALID bit is set. - * Valid values \ref Pmic_SignalLvl - * \param nRstOutPin nRSTOUT Pin status - * Valid only when PMIC_CFG_NRSTOUT_PIN_STAT_VALID - * bit is set. - * Valid values \ref Pmic_SignalLvl - * \param nIntPin nINT Pin status - * Valid only when PMIC_CFG_NINT_PIN_STAT_VALID - * bit is set. - * Valid values \ref Pmic_SignalLvl - */ - typedef struct Pmic_CommonCtrlStat_s - { - uint32_t validParams; - bool spmiLpmStat; - uint8_t forceEnDrvLowStat; - uint8_t bbEndOfChargeIndication; - uint8_t regLockStat; - uint8_t extClkValidity; - uint8_t startupPin; - uint8_t enDrvPin; - uint8_t nRstOutSocPin; - uint8_t nRstOutPin; - uint8_t nIntPin; - } Pmic_CommonCtrlStat_t; - -.. code-block:: ruby - - /*! - * \brief PMIC Device Information - * - * \param deviceID TI Device ID Value - * \param nvmID TI NVM ID Value - * \param nvmRev TI NVM Revision - * \param siliconRev TI Silicon Revision - * \param customNvmID Customer configured NVM ID Value - */ - typedef struct Pmic_DeviceInfo_s - { - uint8_t deviceID; - uint8_t nvmID; - uint8_t nvmRev; - uint8_t siliconRev; - uint8_t customNvmID; - } Pmic_DeviceInfo_t; - - -API Function Descriptions -------------------------- - -.. _pmic-core-handle-initialization-1: - -PMIC Core Handle Initialization -------------------------------- - -.. table:: PMIC Init - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t Pmic_init(const Pmic_CoreCfg_t | - | | \*pPmicConfigData, Pmic_CoreHandle_t | - | | \*pPmicCoreHandle); | - +========================+============================================+ - | Design IDs | (did_pmic_comm_intf_cfg), | - | | (did_pmic_comm_single_i2c_cfg), | - | | (did_pmic_comm_dual_i2c_cfg), | - | | (did_pmic_comm_spi_cfg), | - | | (did_pmic_tps6594x_j721e_support), | - | | (did_pmic_lp8764x_j7200_support), | - | | (did_pmic_generic_feature_support), | - | | (did_pmic_validation_feature_support), | - | | (did_pmic_safety_feature_support), | - | | (did_pmic_stateless_reentrant_support), | - | | (did_pmic_multiple_pmic_support), | - | | (did_pmic_standalone_support), | - | | (did_pmic_pre_emption_support), | - | | (did_pmic_baremetal_support), | - | | (did_pmic_performance_support), | - | | (did_pmic_dynamic_alloc_mem_not_supported),| - | | (did_pmic_build_infra_cfg), | - | | (did_pmic_debug_release_profile_support) | - +------------------------+--------------------------------------------+ - | Requirements ID | (PDK-5814), (PDK-5810), (PDK-5813), | - | | (PDK-5843), (PDK-5853), (PDK-5811), | - | | (PDK-9129), (PDK-9329), (PDK-9159), | - | | (PDK-5824), (PDK-5858), (PDK-5816), | - | | (PDK-5817), (PDK-5818), (PDK-5819), | - | | (PDK-5820), (PDK-5821), (PDK-5822), | - | | (PDK-5823), (PDK-5825), (PDK-5826), | - | | (PDK-5827), (PDK-5859), (PDK-5860), | - | | (PDK-5856), (PDK-5857) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-6187, PDK-5990, PDK-6109, PDK-6185, | - | | PDK-6186, PDK-6191, PDK-6774, PDK-6189, | - | | PDK-6190, PDK-6773, PDK-6772, PDK-8233 | - | | PDK-8234, PDK-8240, PDK-10575, PDK-10577, | - | | PDK-10578, PDK-10579, PDK-10580, PDK-10581,| - | | PDK-10582, PDK-10583, PDK-10584, PDK-10585,| - | | PDK-10588, PDK-10589, PDK-10604, PDK-8933, | - | | PDK-10586, PDK-10597, PDK-10598, PDK-9004, | - | | PDK-10600, PDK-10601, PDK-10637, PDK-10697,| - | | PDK-10750, PDK-10766, PDK-10769, PDK-8933, | - | | PDK-10791 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreCfg_t \*pPmicConfigData | - | | –Handle to driver instance | - | | 2. Pmic_CoreHandle_t \*pPmicCoreHandle | - | | –Pointer to hold pmic device subsystem | - | | info | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function gets device configuration | - | | from pCoreCfgData and initializes device | - | | specific information in pPmicCoreHandle | - | | after validation of given params depends | - | | on validParams bitfileds and does some | - | | basic validation on PMIC interface | - | | I2C/SPI, confirming that PMIC is | - | | accessible for PMIC configuration and | - | | monitor features. | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -De-Initialize PMIC Core Handle ------------------------------- - -.. table:: PMIC Deinit - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t Pmic_deinit(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle); | - +========================+============================================+ - | Design IDs | (did_pmic_comm_intf_cfg), | - | | | - +------------------------+--------------------------------------------+ - | Requirements ID | (PDK-5814) | - | | | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-5990, PDK-10586 | - +------------------------+--------------------------------------------+ - | Parameter | Pmic_CoreHandle_t \*pPmicCoreHandle – | - | | PMIC Interface Handle. | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function takes an existing Instance | - | | pPmicCoreHandle and closes the LLD being | - | | used for this Instance. It should be | - | | called only once per valid | - | | pPmicCoreHandle. Should not be called if | - | | Pmic_init() is not called | - +------------------------+--------------------------------------------+ - | Limitations | It should be called only once per valid | - | | pPmicCoreHandle. Should not be called | - | | | - | | if Pmic_init() is not called | - +------------------------+--------------------------------------------+ - -Start/Stop ESM Monitor ----------------------- - -.. table:: PMIC Esm Start - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t Pmic_esmStart(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, const bool esmType, | - | | const bool esmState); | - +========================+============================================+ - | Design IDs | (did_pmic_esm_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirements ID | (PDK-5833) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-7769, PDK-7770, PDK-7771, PDK-7853 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle – Interface | - | | Handle structure pointer | - | | 2. const bool esmType – PMIC ESM Type | - | | 3. const bool esmState – To start or stop | - | | PMIC ESM | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to Start/Stop the | - | | PMIC ESM_MCU/ESM_SOC | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -ESM Monitor Enable/Disable --------------------------- - -.. table:: PMIC Esm Enable - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t Pmic_esmEnable(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, const bool esmType, | - | | const bool esmToggle); | - +========================+============================================+ - | Design IDs | (did_pmic_esm_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirements ID | (PDK-5833) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-7772, PDK-7773, PDK-7774, PDK-7854 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle – Interface | - | | Handle structure pointer | - | | 2. const bool esmType – PMIC ESM Type | - | | 3. const bool esmToggle – To | - | | Enable/Disable PMIC ESM_MCU/ESM_SOC | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to Enable/Disable | - | | the PMIC ESM_MCU/ESM_SOC | - +------------------------+--------------------------------------------+ - | Limitations | This API must be called only when ESM is | - | | in STOP state. | - +------------------------+--------------------------------------------+ - -ESM Monitor Enable/Disable Readback ------------------------------------ - -.. table:: PMIC ESM State - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_esmGetEnableState(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, const bool esmType, | - | | bool*pEsmState); | - +========================+============================================+ - | Design IDs | (did_pmic_esm_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirements ID | (PDK-5833) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-7775, PDK-7776, PDK-7777, PDK-7778, | - | | PDK-7859 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle – Interface | - | | Handle structure pointer | - | | 2. const bool esmType – PMIC ESM Type | - | | 3. bool \*pEsmState – Pointer to store ESM | - | | Enable State. | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to read the | - | | Enable/Disable state of PMIC | - | | ESM_MCU/ESM_SOC. | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -.. _esm-configuration-1: - -ESM Configuration ------------------ - -.. table:: PMIC SET ESM CFG - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_esmSetConfiguration(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle,const bool esmType, | - | | const Pmic_EsmCfg_t esmCfg); | - +========================+============================================+ - | Design IDs | (did_pmic_esm_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirements ID | (PDK-5833) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-7779, PDK-7780, PDK-7781, PDK-7782, | - | | PDK-7783, PDK-7784, PDK-7785, PDK-7786, | - | | PDK-7787, PDK-7789, PDK-7790, PDK-7791, | - | | PDK-7855, PDK-10551, PDK-10552, PDK-10553, | - | | PDK-10554, PDK-10555, PDK-10556, PDK-9004 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle – Interface | - | | Handle structure pointer | - | | 2. const bool esmType – PMIC ESM Type | - | | 3. const Pmic_EsmCfg_t esmCfg – PMIC ESM | - | | Configuration | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to set the ESM mode, | - | | delay-1 and delay-2 time time intervals, | - | | Error Count Threshold value, HMAX, HMIN, | - | | LMAX, LMIN and select EN DRV clear for | - | | ESM_MCU and ESM_SOC. | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -ESM Configuration Readback --------------------------- - -.. table:: PMIC ESM GET CFG - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_esmGetConfiguration(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, const bool esmType, | - | | Pmic_EsmCfg_t \*pEsmCfg); | - +========================+============================================+ - | Design IDs | (did_pmic_esm_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirements ID | (PDK-5833) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-7792, PDK-7793, PDK-7794, PDK-7795, | - | | PDK-7856, PDK-10557 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle – Interface | - | | Handle structure pointer | - | | 2. const bool esmType – PMIC ESM Type | - | | 3. Pmic_EsmCfg_t \*pEsmCfg – Pointer to | - | | store the ESM configuration. | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to get the | - | | configured ESM mode, delay-1 and delay-2 | - | | time intervals, Error Count Threshold | - | | value, HMAX, HMIN, LMAX, LMIN and select | - | | EN DRV clear for ESM_MCU and ESM_SOC. | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -ESM Interrupt Masking/Unmasking -------------------------------- - -.. table:: PMIC ESM Interrupt - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_esmSetInterrupt(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, const bool esmType, | - | | const Pmic_EsmIntrCfg_t esmIntrCfg); | - +========================+============================================+ - | Design IDs | (did_pmic_esm_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirements ID | (PDK-5833) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-7836, PDK-7837, PDK-7838, PDK-7839, | - | | PDK-7840, PDK-7841, PDK-7850, PDK-7852, | - | | PDK-7858, PDK-10550 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle – Interface | - | | Handle structure | - | | 2. const bool esmType – PMIC ESM Type | - | | 3. const Pmic_EsmIntrCfg_t esmIntrCfg – | - | | PMIC ESM interrupts mask/ | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to mask/unmask the | - | | ESM RST, FAIL and PIN Interrupts for both | - | | ESM MCU and ESM SOC. | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -ESM Error Count ---------------- - -.. table:: PMIC ESM Error Count - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_esmGetErrCnt(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, const bool esmType, | - | | uint8_t \*pEsmErrCnt); | - +========================+============================================+ - | Design IDs | (did_pmic_esm_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirements ID | (PDK-5833) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-7796, PDK-7797, PDK-7798, PDK-7799 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle – Interface | - | | Handle structure pointer | - | | 2. const bool esmType – PMIC ESM Type | - | | 3. uint8_t \*pEsmErrCnt – Pointer to store | - | | the Error Count. | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to get the current | - | | Error count for ESM MCU ESM SOC. | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -Get PMIC Error Status ---------------------- - -.. table:: PMIC Get IRQ Status - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_irqGetErrStatus(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, Pmic_IrqStatus_t | - | | \*pErrStat, const bool clearIRQ) | - +========================+============================================+ - | Design Id: | (did_pmic_irq_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-5805), (PDK-5842), (PDK-5832), | - | | (PDK-5838), (PDK-5852), (PDK-5834), | - | | (PDK-5806), (PDK-5828), (PDK-5807), | - | | (PDK-5846), (PDK-5812), (PDK-5830), | - | | (PDK-5835), (PDK-5836), (PDK-5845), | - | | (PDK-9147), (PDK-9148), (PDK-9149), | - | | (PDK-9159), (PDK-9329), (PDK-9113), | - | | (PDK-9120), (PDK-9122) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-6234, PDK-6235, PDK-6236, PDK-6237, | - | | PDK-6240, PDK-6241, PDK-6242, PDK-6243, | - | | PDK-6244, PDK-6245, PDK-6246, PDK-6247, | - | | PDK-6248, PDK-6249, PDK-6252, PDK-6253, | - | | PDK-6256, PDK-6257, PDK-6258, PDK-6259, | - | | PDK-6266, PDK-6267, PDK-7712, PDK-7713, | - | | PDK-7714, PDK-7715, PDK-7358, PDK-7359, | - | | PDK-7374, PDK-7375, PDK-7768, PDK-9887, | - | | PDK-9888, PDK-8041, PDK-10756, PDK- 10757, | - | | PDK-10477, PDK-10478 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle – PMIC | - | | Interface Handle. | - | | 2. Pmic_IrqStatus_t \*pErrStat – Pointer | - | | to store Error Status | - | | 3. const bool clearIRQ – Flag to clear | - | | Interrupt status after | - | | | - | | deciphering the interrupt status. | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function does the following: | - | | | - | | 1. This function gets the interrupt status | - | | by reading pmic IRQ register as per IRQ | - | | hierarchy defined in device TRM. | - | | | - | | 2. Decipher error from top register to | - | | actual error code. | - | | | - | | 3. Store the status of all Interrupts. | - | | | - | | 4. Support clearing interrupts depends on | - | | clearIRQ flag. | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -Clear PMIC Interrupt Status ---------------------------- - -.. table:: PMIC IRQ Clear Error Status - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_irqClrErrStatus(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, const uint8_t irqNum); | - +========================+============================================+ - | Design Id: | (did_pmic_irq_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-5805), (PDK-9113), (PDK-9120) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-6234, PDK-6235, PDK-6236, PDK-6237, | - | | PDK-6240, PDK-6241, PDK-6242, PDK-6243, | - | | PDK-6244, PDK-6245, PDK-6246, PDK-6247, | - | | PDK-6248, PDK-6249, PDK-6252, PDK-6253, | - | | PDK-6256, PDK-6257, PDK-6258, PDK-6259, | - | | PDK-6266, PDK-6267, PDK-7358, PDK-7359, | - | | PDK-7374, PDK-7375, PDK-9994, PDK-9995, | - | | PDK-10754, PDK-10755 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*pPmicCoreHandle – | - | | PMIC Interface Handle. | - | | 2. const uint8_t irqNum – Interrupt Number | - | | to clear the status. | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function does the following: | - | | | - | | 1. This function clears the IRQ status in | - | | PMIC register for a given IRQ Number. | - | | | - | | 2. Validates given IRQ Number and find the | - | | IRQ register that is to be cleared. | - | | | - | | 3. Expected to be called after an IRQ | - | | status is deciphered by | - | | Pmic_irqGetErrStatus(). | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -Mask/Unmask PMIC Interrupts ---------------------------- - -.. table:: PMIC MASK Interrutps - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t Pmic_irqMaskIntr(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, const uint8_t irqNum, | - | | const bool mask) | - +========================+============================================+ - | Design Id: | (did_pmic_irq_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-5805) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-7358, PDK-7359, PDK-10758, PDK-10763, | - | | PDK-10764, PDK-10765, PDK-10770 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*pPmicCoreHandle – | - | | PMIC Interface Handle. | - | | 2. const uint8_t irqNum – Interrupt | - | | Number to be masked | - | | 3. const bool mask – Parameter to | - | | Mask/Unmask Interrupts | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function does the following: | - | | | - | | 1. This function mask/unmask the given IRQ | - | | Number. | - | | | - | | 2. Validates given IRQ Number and find the | - | | IRQ register that is to be | - | | masked/unmasked. | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -Extract PMIC Interrupt ----------------------- - -.. table:: PMIC Extract Error - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t Pmic_getNextErrorStatus(const | - | | Pmic_CoreHandle_t \*pPmicCoreHandle, | - | | Pmic_IrqStatus_t \*pErrStat, uint8_t | - | | \*pIrqNum) | - +========================+============================================+ - | Design Id: | (did_pmic_irq_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-5805) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-6234, PDK-6235, PDK-6236, PDK-6237, | - | | PDK-6240, PDK-6241, PDK-6242, PDK-6243, | - | | PDK-6244, PDK-6245, PDK-6246, PDK-6247, | - | | PDK-6248, PDK-6249, PDK-6252, PDK-6253, | - | | PDK-6256, PDK-6257, PDK-6258, PDK-6259, | - | | PDK-6266, PDK-6267, PDK-7358, PDK-7359, | - | | PDK-7374, PDK-7375, PDK-10759, PDK-10760, | - | | PDK-10761, PDK-10762 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*phandle – PMIC | - | | Interface Handle. | - | | 2. Pmic_irqStatus_t \*pErrStat – Pointer | - | | containing Error status | - | | 3. uint8_t \*pIrqNum – Pointer to store | - | | IRQ Number extracted | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to extract each | - | | Error status from pErrStat as per the | - | | hierarchy given in the TRM. This function | - | | clears the Error status after the status | - | | is extracted. | - +------------------------+--------------------------------------------+ - | Limitations | This API is expected to be | - | | called after Pmic_irqGetErrStatus. | - +------------------------+--------------------------------------------+ - -Masking GPIO Interrupts ------------------------ - -.. table:: PMIC GPIO MASK Interrupt - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_irqGpioMaskIntr(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, const uint8_t | - | | irqGpioNum, const bool mask, const uint8_t | - | | gpioIntrType) | - +========================+============================================+ - | Design Id: | (did_pmic_irq_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-5812) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-6234, PDK-6235, PDK-6236, PDK-6237, | - | | PDK-6240, PDK-6241, PDK-6242, PDK-6243, | - | | PDK-6244, PDK-6245, PDK-6246, PDK-6247, | - | | PDK-6248, PDK-6249, PDK-6252, PDK-6253, | - | | PDK-6256, PDK-6257, PDK-6258, PDK-6259, | - | | PDK-6266, PDK-6267, PDK-7374, PDK-7375 | - | | PDK-10763, PDK-10764, PDK-10765, PDK-10766,| - | | PDK-10770 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*phandle – PMIC | - | | Interface Handle. | - | | 2. const uint8_t irqGpioNum – GPIO | - | | Interrupt to be masked/unmasked | - | | 3. const bool mask – Parameter to | - | | mask/unmask interrupt | - | | 4. const uint8_t gpioIntrType – Parameter | - | | to mask GPIO RISE and FALL Interrupt | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to Mask or Unmask | - | | GPIO Rise and Fall Interrupts based on the | - | | GPIO IRQ Number. | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -GPIO Set Configuration ----------------------- - -.. table:: PMIC GPIO Set Configuration - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_gpioSetConfiguration(Pmic_CoreHandle_t| - | | \*pPmicCoreHandle, const uint8_t pin, | - | | const Pmic_GpioCfg_t gpioCfg); | - +========================+============================================+ - | Design Id: | (did_pmic_gpio_cfg_readback) | - | | (did_pmic_lpstandby_wkup_cfg) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-5808), (PDK-5844), (PDK-9111), | - | | (PDK-9157) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-6185, PDK-6186, PDK-6187, PDK-6189, | - | | PDK-6190, PDK-6191, PDK-6192, PDK-6193, | - | | PDK-6195, PDK-6196, PDK-6197, PDK-6199, | - | | PDK-6197, PDK-6199, PDK-6200, PDK-6201, | - | | PDK-6202, PDK-6204, PDK-6205, PDK-6206, | - | | PDK-6207, PDK-6209, PDK-6210, PDK-6211, | - | | PDK-6213, PDK-6214, PDK-6215, PDK-6216, | - | | PDK-6217, PDK-6218, PDK-8012, PDK-9994, | - | | PDK-9995, PDK-10561, PDK-10562, PDK-10564, | - | | PDK-10571, PDK-8852, PDK-10788, PDK-10789 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*pPmicCoreHandle – | - | | PMIC Interface Handle | - | | 2. const uint8_t pin – PMIC GPIO Pin | - | | number | - | | 3. const Pmic_GpioCfg_t gpioCfg – Set | - | | required configuration for the | - | | specified GPIO pin | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - | | | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to set the required | - | | configuration for the specified GPIO pin | - | | when corresponding validParam bit field is | - | | set in the Pmic_GpioCfg_t | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -Read GPIO configuration ------------------------ - -.. table:: PMIC GPIO Get Configuration - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_gpioGetConfiguration(Pmic_CoreHandle_t| - | | \*pPmicCoreHandle, const uint8_t pin, | - | | Pmic_GpioCfg_t \*pGpioCfg); | - +========================+============================================+ - | Design Id: | (did_pmic_gpio_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-5808) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-6219, PDK-6220, PDK-6221, PDK-6222 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*pPmicCoreHandle – | - | | PMIC Interface Handle | - | | 2. const uint8_t pin – PMIC GPIO Pin | - | | number | - | | 3. Pmic_GpioCfg_t \*pGpioCfg – Pointer to | - | | store specified GPIO pin configuration | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - | | | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to read the | - | | configuration for the specified GPIO pin | - | | when corresponding validParam bit field is | - | | set in the Pmic_GpioCfg_t | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -Set GPIO pin value ------------------- - -.. table:: PMIC GPIO Set Pin value - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_gpioSetValue(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, const uint8_t pin, | - | | const uint8_t pinValue); | - +========================+============================================+ - | Design Id: | (did_pmic_gpio_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-5808), (PDK-9111) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-6227, PDK-6228, PDK-6229, PDK-6230, | - | | PDK-6231 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*pPmicCoreHandle – | - | | PMIC Interface Handle | - | | 2. const uint8_t pin – PMIC GPIO pin | - | | number | - | | 3. const uint8_t pinValue – PMIC GPIO | - | | signal level | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - | | | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to configure the | - | | signal level of the specified GPIO pin. | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -Read GPIO pin value -------------------- - -.. table:: PMIC GPIO Get Pin Value - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_gpioGetValue(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, const uint8_t pin, | - | | uint8_t \*pPinValue); | - +========================+============================================+ - | Design Id: | (did_pmic_gpio_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-5808) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-6223, PDK-6224, PDK-6225, PDK-6226 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*pPmicCoreHandle – | - | | PMIC Interface Handle | - | | 2. const uint8_t pin – PMIC GPIO pin | - | | number | - | | 3. uint8_t \*pPinValue – To store PMIC | - | | GPIO pin signal level High/Low | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to read the signal | - | | level of the gpio pin | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -GPIO Interrupt Configuration ----------------------------- - -.. table:: PMIC GPIO Interrupt - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t Pmic_gpioSetIntr(Pmic_CoreHandle_t | - | | \* phandle, const uint8_t pin, const | - | | uint8_t intrType, const uint8_t maskPol) | - +========================+============================================+ - | Design Id: | (did_pmic_gpio_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-5808),(PDK-9159),(PDK-9329) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-6234, PDK-6235, PDK-6236, PDK-6237, | - | | PDK-6240, PDK-6241, PDK-6242, PDK-6243, | - | | PDK-6244, PDK-6245, PDK-6246, PDK-6247, | - | | PDK-6248, PDK-6249, PDK-6252, PDK-6253, | - | | PDK-6256, PDK-6257, PDK-6258, PDK-6259, | - | | PDK-7950, PDK-7951, PDK-10563 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*phandle - PMIC | - | | Interface Handle | - | | 2. uint8_t pin – PMIC GPIO Pin Number | - | | 3. uint8_t intrType – To configure GPIO | - | | Rise Interrupt, Fall | - | | 4. uint8_t maskPol – FSM Trigger masking | - | | polarity select | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to enable/disable | - | | GPIO pin Interrupts | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -Set NPWRON/Enable Pin Configuration ------------------------------------ - -.. table:: PMIC GPIO Set NPWRON Enable Pin Cfg - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_gpioSetNPwronEnablePinConfiguration | - | | (Pmic_CoreHandle_t \*pPmicCoreHandle, | - | | const Pmic_GpioCfg_t gpioCfg); | - +========================+============================================+ - | Design Id: | (did_pmic_gpio_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-5808), (PDK-9162), (PDK-9111) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-6217, PDK-6218, PDK-10340, PDK-10559 | - | | PDK-10560, PDK-10565, PDK-10566, PDK-10568 | - | | PDK-10569, PDK-10570, PDK-10572 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*pPmicCoreHandle | - | | -PMIC Interface Handle | - | | 2. const Pmic_GpioCfg_t gpioCfg – Set | - | | NPWRON or ENABLE GPIO pin configuration| - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to set the required | - | | configuration for the NPWRON or ENABLE pin | - | | when the corresponding validParam bit field| - | | is set in the Pmic_GpioCfg_t. NPWRON is | - | | valid only for TPS6594x Leo Device | - +------------------------+--------------------------------------------+ - | Limitations | NPWRON is valid only for TPS6594x Leo | - | | Device | - +------------------------+--------------------------------------------+ - -Read NPWRON/Enable Pin Configuration ------------------------------------- - -.. table:: PMIC GPIO Get NPWRON Enable Pin Cfg - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_gpioGetNPwronEnablePinConfiguration( | - | | Pmic_CoreHandle_t \*pPmicCoreHandle, | - | | Pmic_GpioCfg_t \*pGpioCfg) | - +========================+============================================+ - | Design Id: | (did_pmic_gpio_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-5808) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-7880, PDK-7904, PDK-7905, PDK-7906, | - | | PDK-10558, PDK-10567 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*pPmicCoreHandle | - | | -PMIC Interface Handle | - | | 2. const Pmic_GpioCfg_t \*pGpioCfg – | - | | Pointer to store NPWRON or ENABLE | - | | GPIO pin configuration | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to read the | - | | configuration for the NPWRON or ENABLE pin | - | | when the corresponding validParam bit field| - | | is set in the Pmic_GpioCfg_t. NPWRON is | - | | valid only for TPS6594x Leo Device | - +------------------------+--------------------------------------------+ - | Limitations | NPWRON is valid only for TPS6594x Leo | - | | Device | - +------------------------+--------------------------------------------+ - -Read GPIO NPWRON Pin Value for TPS6594x Leo Device --------------------------------------------------- - -.. table:: PMIC GPIO TPS6594x Pin Get Value - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_gpioTps6594xNPwronPinGetValue( | - | | Pmic_CoreHandle_t \*pPmicCoreHandle, | - | | uint8_t \*pPinValue) | - +========================+============================================+ - | Design Id: | (did_pmic_gpio_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-5808) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-7880, PDK-7904, PDK-7905, PDK-7906 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*pPmicCoreHandle | - | | -PMIC Interface Handle | - | | 2. uint8_t \*pPinValue – Pointer to store | - | | PMIC GPIO Signal Level | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to read signal level | - | | of NPWRON pin. | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -Watchdog Enable ---------------- - -.. table:: PMIC WDG Enable - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t Pmic_wdgEnable(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle) | - +========================+============================================+ - | Design IDs | did_pmic_wdg_cfg_readback | - +------------------------+--------------------------------------------+ - | Requirements ID | (PDK-5854), (PDK-5839) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-7343 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*pPmicCoreHandle | - | | -PMIC Interface Handle | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | API to Enable Watchdog timer. | - | | | - | | This function is used to Enable the PMIC | - | | watchdog. | - +------------------------+--------------------------------------------+ - | Limitations | Application has to ensure relevant GPIO(s) | - | | got configured for Watchdog Trigger or QA | - | | mode n case of dual I2C interface mode | - | | User ensure that, this function needs to | - | | be called to enable watchdog timer before | - | | configuring or starting watchdog trigger | - | | or QA mode | - +------------------------+--------------------------------------------+ - -Watchdog Disable ----------------- - -.. table:: PMIC WDG Disable - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t Pmic_wdgDisable(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle); | - +========================+============================================+ - | Design IDs | did_pmic_wdg_cfg_readback | - +------------------------+--------------------------------------------+ - | Requirements ID | (PDK-5854), (PDK-5839) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-7344 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*pPmicCoreHandle | - | | -PMIC Interface Handle | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 1. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | API to Disable Watchdog timer. | - | | This function is used to Disable the PMIC | - | | watchdog. User ensures that, after using | - | | this function, complete watchdog | - | | functionality and configuration will be | - | | deactivated. | - +------------------------+--------------------------------------------+ - | Limitations | Application has to ensure relevant GPIO(s) | - | | got configured for Watchdog Trigger or QA | - | | mode n case of dual I2C interface mode | - +------------------------+--------------------------------------------+ - -.. _watchdog-configuration-1: - -Watchdog Configuration ----------------------- - -.. table:: PMIC WDG Set Cfg - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t Pmic_wdgSetCfg(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, | - | | | - | | const Pmic_WdgCfg_t wdgCfg); | - +========================+============================================+ - | Design IDs | did_pmic_wdg_cfg_readback | - +------------------------+--------------------------------------------+ - | Requirements ID | (PDK-5854), (PDK-5839), (PDK-9115), | - | | (PDK-9116) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-7327, PDK-7328, PDK-7329, PDK-7330, | - | | PDK-7331, PDK-7332, PDK-7333 ,PDK-7334, | - | | PDK-7335, PDK-7336, PDK-7337, PDK-7338, | - | | PDK-7339, PDK-7340, PDK-7341, PDK-7342, | - | | PDK-10780, PDK-10781, PDK-8917, PDK-10479 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*pPmicCoreHandle – | - | | PMIC Interface Handle | - | | 2. Pmic_WdgCfg_t wdgCfg – Watchdog | - | | configuration | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 1. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | API to set PMIC watchdog configurations. | - | | | - | | This function is used to configure the | - | | watchdog parameters in the PMIC for | - | | trigger mode or Q&A(question and answer) | - | | mode, when corresponding validParam bit | - | | fields are set in Pmic_WdgCfg_t structure. | - +------------------------+--------------------------------------------+ - | Limitations | Application has to ensure relevant GPIO(s) | - | | got configured for Watchdog Trigger or QA | - | | mode n case of dual I2C interface mode. | - | | User has to call Pmic_wdgEnable() before | - | | set the configuration. | - +------------------------+--------------------------------------------+ - -Watchdog Configuration Readback -------------------------------- - -.. table:: PMIC WDG Get Cfg - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t Pmic_wdgGetCfg(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, | - | | | - | | Pmic_WdgCfg_t \*pWdgCfg); | - +========================+============================================+ - | Design IDs | did_pmic_wdg_cfg_readback | - +------------------------+--------------------------------------------+ - | Requirements ID | (PDK-5854), (PDK-5839), (PDK-9115), | - | | (PDK-9116) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-7327, PDK-7328, PDK-7329, PDK-7330, | - | | PDK-7331, PDK-7332, PDK-7333 ,PDK-7334, | - | | PDK-7335, PDK-7336, PDK-7337, PDK-7338, | - | | PDK-7339, PDK-7340, PDK-7341, PDK-7342 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*pPmicCoreHandle – | - | | PMIC Interface Handle | - | | 2. Pmic_WdgCfg_t \*pWdgCfg – Watchdog | - | | configuration pointer | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | API to get PMIC watchdog configurations. | - | | | - | | This function is used to get configuration | - | | of the watchdog from the PMIC for trigger | - | | mode or Q&A(question and answer) mode, | - | | when corresponding validParam bit fields | - | | are set in Pmic_WdgCfg_t structure. | - +------------------------+--------------------------------------------+ - | Limitations | User has to call Pmic_wdgEnable() before | - | | get the configuration. | - +------------------------+--------------------------------------------+ - -Watchdog Error Status ---------------------- - -.. table:: PMIC WDG Get Error Status - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_wdgGetErrorStatus(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, Pmic_WdgErrStatus_t | - | | \*pErrStatus); | - +========================+============================================+ - | Design IDs | did_pmic_wdg_cfg_readback | - +------------------------+--------------------------------------------+ - | Requirements ID | (PDK-5854), (PDK-5839) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-7353, PDK-7354, PDK-7355 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*pPmicCoreHandle – | - | | PMIC Interface Handle | - | | 2. Pmic_WdgErrStatus_t \*pErrStatus – | - | | Watchdog error status pointer | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 1. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | API to get PMIC watchdog error status. | - | | | - | | This function is used to get the watchdog | - | | error status from the PMIC for trigger | - | | mode or Q&A(question and answer) mode. | - +------------------------+--------------------------------------------+ - | Limitations | User has to call Pmic_wdgEnable() before | - | | get the configuration. | - +------------------------+--------------------------------------------+ - -Watchdog Fail Count Status --------------------------- - -.. table:: PMIC WDG Get Fail Count Status - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_wdgGetFailCntStat(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, Pmic_WdgFailCntStat_t | - | | \*pFailCount); | - +========================+============================================+ - | Design IDs | did_pmic_wdg_cfg_readback | - +------------------------+--------------------------------------------+ - | Requirements ID | (PDK-5854), (PDK-5839) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-7350, PDK-7351, PDK-7352 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle – Interface | - | | Handle structure pointer | - | | 2. uint8_t \*pFailCount – Watchdog fail | - | | count pointer | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | API to get PMIC watchdog fail count status.| - | | | - | | This function is used to get the watchdog | - | | fail count status from the PMIC for trigger| - | | mode or Q&A (question and answer) mode. | - +------------------------+--------------------------------------------+ - | Limitations | User has to call Pmic_wdgEnable() before | - | | get the configuration. | - +------------------------+--------------------------------------------+ - -.. _watchdog-qa-mode-1: - -Watchdog QA Mode ----------------- - -.. table:: PMIC WDG Start QA Sequence - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_wdgStartQaSequence(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, uint32_t | - | | num_of_sequences , uint32_t maxCnt); | - +========================+============================================+ - | Design IDs | did_pmic_wdg_cfg_readback | - +------------------------+--------------------------------------------+ - | Requirements ID | (PDK-5839) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-7345, PDK-7346, PDK-7347, PDK-7348, | - | | PDK-7349, PDK-7958, PDK-10785 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle – Interface | - | | Handle structure pointer | - | | 2. uint32_t num_of_sequences – number of | - | | QA sequences | - | | 3. uint32_t maxCnt – Number of iterations | - | | to wait for an Good/Bad event. | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | API to Start watchdog QA mode. | - | | | - | | This function is used to start watchdog | - | | sequence and continues till the given | - | | num_of_sequences | - +------------------------+--------------------------------------------+ - | Limitations | Note: To perform QA sequences, user has to | - | | adjust Long window time interval, Window1 | - | | time interval and Window2 time intervals | - | | depends on errors given by API. If user | - | | gets PMIC_ST_ERR_INV_WDG_WINDOW, then user | - | | has to increase the Long window or window1 | - | | time interval. If user gets | - | | PMIC_ST_ERR_WDG_EARLY_ANSWER, then user | - | | has to reduce the Window1 time interval. | - | | User has to ensure, | - | | configure all Watchdog QA parameters | - | | properly using Pmic_wdgSetCfg() API, | - | | before starting QA sequence using this | - | | API. | - +------------------------+--------------------------------------------+ - -.. _watchdog-trigger-mode-1: - -Watchdog Trigger Mode ---------------------- - -.. table:: PMIC WDG Start Trigger Sequence - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t Pmic | - | | \ | - | | _wdgStartTriggerSequence(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle); | - +========================+============================================+ - | Design IDs | did_pmic_wdg_cfg_readback | - +------------------------+--------------------------------------------+ - | Requirements ID | (PDK-5854) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-7343, PDK-10782 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle – Interface | - | | Handle structure pointer | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | API to Start watchdog Trigger mode. | - | | | - | | This function is used to start watchdog | - | | trigger mode. | - | | | - +------------------------+--------------------------------------------+ - | Limitations | Note: To perform watchdog trigger mode, | - | | user has to adjust Long window time | - | | interval, Window1 time interval and | - | | Window2 time intervals as below, depends | - | | on the time-period of the trigger pulse | - | | provided by other device. | - | | | - | | 1. Longwindow time interval must be | - | | greater than Trigger pulse time period. | - | | 2. Window1 time interval must be less than | - | | T-off time of the Trigger pulse time | - | | period. | - | | 3. Window2 time interval must be greater | - | | than T-on time of the Trigger pulse | - | | time period. | - | | 4. (Window1 time interval + Window2 time | - | | interval) approximately equal to the | - | | Trigger pulse time period. | - | | | - | | User has to ensure, configure all Watchdog | - | | trigger parameters properly using | - | | Pmic_wdgSetCfg() API, before starting | - | | watchdog trigger mode using this API. User | - | | can use Pmic_wdgSetCfg() API to stop | - | | watchdog trigger mode. | - +------------------------+--------------------------------------------+ - -Runtime BIST Invocation ------------------------ - -.. table:: PMIC FSM Runtime Bist - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t Pmic_fsmRequestRuntimeBist | - | | (Pmic_CoreHandle_t \*handle); | - +========================+============================================+ - | Design IDs | (did_pmic_runtime_bist_cfg) | - +------------------------+--------------------------------------------+ - | Requirements ID | (PDK-5849) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-7706, PDK-10740 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle – Interface | - | | Handle structure pointer | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function initiates a request to | - | | exercise runtime BIST on the device | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -Power Resource Voltage Configuration ------------------------------------- - -.. table:: PMIC POWER Set Resource Cfg - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t Pmic_powerSetPwrResourceCfg( | - | | Pmic_CoreHandle_t \*pPmicCoreHandle, const | - | | uint16_t pwrResource, const | - | | Pmic_PowerResourceCfg_t pwrResourceCfg); | - +========================+============================================+ - | Design IDs | did_pmic_power_cfg_readback | - +------------------------+--------------------------------------------+ - | Requirements ID | (PDK-5848), (PDK-5841), (PDK-5829), | - | | (PDK-9111), (PDK-9163), (PDK-9149), | - | | (PDK-9159), (PDK-9329) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-7130, PDK-7131, PDK-7132, PDK-7133, | - | | PDK-7134, PDK-7135, PDK-7136, PDK-7137, | - | | PDK-7138, PDK-7139, PDK-7143, PDK-7144, | - | | PDK-7145, PDK-7146, PDK-7147, PDK-7148, | - | | PDK-7149, PDK-7150, PDK-7151, PDK-7152, | - | | PDK-7153, PDK-7154, PDK-7155, PDK-7156, | - | | PDK-7157, PDK-7158, PDK-7159, PDK-7160, | - | | PDK-7161, PDK-7162, PDK-7163, PDK-7164, | - | | PDK-7165, PDK-7166, PDK-7167, PDK-7168, | - | | PDK-7169, PDK-7170, PDK-7171, PDK-7172, | - | | PDK-7173, PDK-7174, PDK-7175, PDK-7177, | - | | PDK-7178, PDK-7179, PDK-7180, PDK-7181, | - | | PDK-7182, PDK-7183, PDK-7184, PDK-7185, | - | | PDK-7186, PDK-7187, PDK-7191, PDK-7192, | - | | PDK-7200, PDK-7201, PDK-7202, PDK-7203, | - | | PDK-7204, PDK-7205, PDK-7206, PDK-7207, | - | | PDK-7208, PDK-7209, PDK-7210, PDK-7211, | - | | PDK-7212, PDK-7213, PDK-7214, PDK-7215, | - | | PDK-7216, PDK-7217, PDK-7218, PDK-7219, | - | | PDK-7176, PDK-10626, PDK-10627, PDK-10628, | - | | PDK-10630, PDK-10631, PDK-10632, PDK-10633,| - | | PDK-10643, PDK-10652, PDK-10656, PDK-10657,| - | | PDK-10658, PDK-10659, PDK-10663, PDK-10664,| - | | PDK-10665, PDK-10666, PDK-10667, PDK-10668,| - | | PDK-10669, PDK-10688, PDK-10689, PDK-10690,| - | | PDK-10691, PDK-10692, PDK-10693, PDK-10694,| - | | PDK-10696, PDK-10697, PDK-10792 | - +------------------------+--------------------------------------------+ - | Parameter | 1. pPmicCoreHandle \*pPmicCoreHandle – | - | | PMIC Interface Handle. | - | | 2. uint16_t pwrResource – PMIC Power | - | | resource | - | | 3. Pmic_PowerResourceCfg_t pwrResourceCfg | - | | – Power Resource configuration for | - | | BUCK/LDO/VMON/VCCA | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 1. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | API to set power resources configurations. | - | | | - | | This function can be used to configure the | - | | various control and configuration | - | | parameters for BUCK/LDO/VCCA/VMON power | - | | resources and also used to set the various | - | | control and configuration of voltage | - | | monitor parameters for BUCK/LDO/VCCA/VMON | - | | power resources. | - +------------------------+--------------------------------------------+ - | Limitations | The actual VOUT on regulator Output lines | - | | may not be immediately updated since some | - | | delay is required to reach the new value. | - | | Application can call a delay routine with | - | | the value given by driver via | - | | \*microSeconds. | - +------------------------+--------------------------------------------+ - -LDORTC Config -------------- - -.. table:: PMIC POWER Set LDORTC - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_powerSetLdoRtc(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, bool ldortcEnable); | - +========================+============================================+ - | Design IDs | did_pmic_power_cfg_readback | - +------------------------+--------------------------------------------+ - | Requirements ID | (PDK-5841) | - | | | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-7297, PDK-7298, PDK-7876, PDK-10660 | - +------------------------+--------------------------------------------+ - | Parameter | 1. pPmicCoreHandle \*pPmicCoreHandle – | - | | PMIC Interface Handle. | - | | 2. bool ldortcEnable – Enable/Disable the | - | | LDORTC | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 1. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | API to enable/disable LODRTC regulator | - | | This function is used to enable/disable | - | | LDO RTC. | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -LDORTC Config Readback ----------------------- - -.. table:: PMIC POWER Get LDORTC - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t Pmic\_ Pmic_powerGetLdoRtc | - | | (Pmic_CoreHandle_t \*pPmicCoreHandle, | - | | bool \*pLdortcEnable); | - +========================+============================================+ - | Design IDs | did_pmic_power_cfg_readback | - +------------------------+--------------------------------------------+ - | Requirements ID | (PDK-5841) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-7297, PDK-7298, PDK-7876, PDK-10661, | - | | PDK-10662, PDK-10676 | - +------------------------+--------------------------------------------+ - | Parameter | 1. pPmicCoreHandle \*pPmicCoreHandle – | - | | PMIC Interface Handle. | - | | 2. bool \*pLdortcEnable – Pointer to hold | - | | Enable/Disable | - | | | - | | status. | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2.Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | API to enable/disable LODRTC regulator | - | | This function is used to enable/disable | - | | LDO RTC. | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -Power Resource Voltage Readback -------------------------------- - -.. table:: PMIC POWER Get Resource Cfg - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t Pmic_powerGetPwrResourceCfg | - | | (Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, const uint16_t | - | | pwrResource, Pmic_PowerResourceCfg_t | - | | \*pPwrResourceCfg); | - +========================+============================================+ - | Design IDs | did_pmic_power_cfg_readback | - +------------------------+--------------------------------------------+ - | Requirements ID | (PDK-5850), (PDK-5848), (PDK-5829), | - | | (PDK-9163) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-7130, PDK-7131, PDK-7132, PDK-7133, | - | | PDK-7134, PDK-7135, PDK-7136, PDK-7137, | - | | PDK-7138, PDK-7139, PDK-7143, PDK-7144, | - | | PDK-7145, PDK-7146, PDK-7147, PDK-7148, | - | | PDK-7149, PDK-7150, PDK-7151, PDK-7152, | - | | PDK-7153, PDK-7154, PDK-7155, PDK-7156, | - | | PDK-7157, PDK-7158, PDK-7159, PDK-7160, | - | | PDK-7161, PDK-7162, PDK-7163, PDK-7164, | - | | PDK-7165, PDK-7166, PDK-7167, PDK-7168, | - | | PDK-7169, PDK-7170, PDK-7171, PDK-7172, | - | | PDK-7173, PDK-7174, PDK-7175, PDK-7177, | - | | PDK-7178, PDK-7179, PDK-7180, PDK-7181, | - | | PDK-7182, PDK-7183, PDK-7184, PDK-7185, | - | | PDK-7186, PDK-7187, PDK-7191, PDK-7192, | - | | PDK-7200, PDK-7201, PDK-7202, PDK-7203, | - | | PDK-7204, PDK-7205, PDK-7206, PDK-7207, | - | | PDK-7208, PDK-7209, PDK-7210, PDK-7211, | - | | PDK-7212, PDK-7213, PDK-7214, PDK-7215, | - | | PDK-7216, PDK-7217, PDK-7218, PDK-7219, | - | | PDK-7176, PDK-10639, PDK-10640, PDk-10641, | - | | PDK-10642, PDK-10644, PDK-10646, PDK-10647,| - | | PDK-10648, PDK-10649, PDK-10650, PDK-10651,| - | | PDK-10653, PDK-10654, PDK-10655, PDK-10695,| - | | PDK-10643 | - +------------------------+--------------------------------------------+ - | Parameter | 1. pPmicCoreHandle \*pPmicCoreHandle – | - | | PMIC Interface Handle. | - | | 2. uint16_t pwrResource – PMIC Power | - | | resource | - | | 3. Pmic_PowerResourceCfg_t | - | | \*pPwrResourceCfg – Pointer to store | - | | Power Resource configuration for | - | | BUCK/LDO/VMON/VCCA | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2 .Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | API to get power resources configurations. | - | | | - | | This function can be used to get the | - | | various control and configuration | - | | parameters for BUCK/LDO/VCCA/VMON power | - | | resources and also used to get the various | - | | control and configuration of voltage | - | | monitor parameters for BUCK/LDO/VCCA/VMON | - | | power resources. | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -Power Resource Common Configuration ------------------------------------ - -.. table:: PMIC POWER Set Common Cfg - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t Pmic_powerSetCommonConfig( | - | | Pmic_CoreHandle_t \*pPmicCoreHandle, const | - | | Pmic_PowerCommonCfg_t powerCommonCfg); | - +========================+============================================+ - | Design IDs | did_pmic_power_cfg_readback | - | | did_pmic_power_pgood_cfg_readback | - +------------------------+--------------------------------------------+ - | Requirements ID | (PDK-5847), (PDK-5848), (PDK-5829), | - | | (PDK-9111), (PDK-9149), (PDK-9159), | - | | (PDK-9329) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-7220, PDK-7221, PDK-7222, PDK-7223, | - | | PDK-7224, PDK-7225, PDK-7227, PDK-7228, | - | | PDK-7229, PDK-7230, PDK-7231, PDK-7232, | - | | PDK-7233, PDK-7234, PDK-7235, PDK-7236, | - | | PDK-7237, PDK-7238, PDK-7239, PDK-7240, | - | | PDK-7241, PDK-7242, PDK-7243, PDK-7244, | - | | PDK-7245, PDK-7246, PDK-7247, PDK-7248, | - | | PDK-7249, PDK-7250, PDK-7251, PDK-9994, | - | | PDK-9995, PDK-10638 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*pPmicCoreHandle – | - | | PMIC Interface Handle. | - | | 2. const Pmic_PowerCommonCfg_t | - | | powerCommonCfg – Power configuration | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 1. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | API to Set Power configuration | - | | | - | | This function is used to set the power | - | | configuration parameters such as selection | - | | of type of voltage monitoring, and | - | | polarity of the power-good signal, | - | | deglitch time select for all power | - | | resources. | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -Power Resource Common Configuration Readback --------------------------------------------- - -.. table:: PMIC POWER Get Common Cfg - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t Pmic_powerGetCommonConfig ( | - | | Pmic_CoreHandle_t \*pPmicCoreHandle, | - | | Pmic_PowerCommonCfg_t \*pPowerCommonCfg); | - +========================+============================================+ - | Design IDs | did_pmic_power_cfg_readback | - | | did_pmic_power_pgood_cfg_readback | - +------------------------+--------------------------------------------+ - | Requirements ID | (PDK-5847), (PDK-5848), (PDK-5829) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-7220, PDK-7221, PDK-7222, PDK-7223, | - | | PDK-7224, PDK-7225, PDK-7227, PDK-7228, | - | | PDK-7229, PDK-7230, PDK-7231, PDK-7232, | - | | PDK-7233, PDK-7234, PDK-7235, PDK-7236, | - | | PDK-7237, PDK-7238, PDK-7239, PDK-7240, | - | | PDK-7241, PDK-7242, PDK-7243, PDK-7244, | - | | PDK-7245, PDK-7246, PDK-7247, PDK-7248, | - | | PDK-7249, PDK-7250, PDK-7251, PDK-10625, | - | | PDK-10637 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*pPmicCoreHandle – | - | | PMIC Interface Handle. | - | | 2. Pmic_PowerCommonCfg_t \*pPowerCommonCfg | - | | – Power configuration | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 1. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | API to Get Power configuration | - | | | - | | This function is used to get the power | - | | configuration parameters such as selection | - | | of type of voltage monitoring, and | - | | polarity of the power-good signal, | - | | deglitch time select for all power | - | | resources. | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -Power Good Configuration ------------------------- - -.. table:: PMIC POWER Set PGOOD Cfg - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t Pmic_powerSetConfigPowerGood( | - | | Pmic_CoreHandle_t \*pPmicCoreHandle, | - | | const uint16_t pgoodSrcSel, | - | | const uint8_t pgoodSelType); | - +========================+============================================+ - | Design IDs | did_pmic_power_pgood_cfg_readback | - +------------------------+--------------------------------------------+ - | Requirements ID | (PDK-5847), (PDK-9111) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-7252, PDK-7253, PDK-7254, PDK-7255, | - | | PDK-7256, PDK-7257, PDK-7258, PDK-7259, | - | | PDK-7260, PDK-10671, PDK-10672, PDK-10673, | - | | PDK-10674, PDK-10675, PDK-10677, PDK-10678,| - | | PDK-10679, PDK-10680, PDK-10681, PDK-10682,| - | | PDK-10683, PDK-10684, PDK-10685, PDK-10686,| - | | PDK-10687 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*pPmicCoreHandle – | - | | PMIC Interface Handle. | - | | 2. const uint16_t pgoodSrcSel – Power Good | - | | Source. | - | | 3. const uint8_t pgoodSelType – Power Good | - | | configuration. | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 1. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | API to Set Power good configuration | - | | | - | | This function is used to control and | - | | configure the power good source control. | - | | | - | | For the following, power good signal | - | | control can be selected: | - | | | - | | All supported Bucks and Ldo by the PMIC, | - | | VCCA , thermal warning, nRSTOUT pin and | - | | nRSTOUT_SOC pin. | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -Power Good Configuration Readback ---------------------------------- - -.. table:: PMIC POWER Get PGOOD Cfg - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t Pmic_powerGetConfigPowerGood( | - | | Pmic_CoreHandle_t \*pPmicCoreHandle, | - | | const uint16_t pgoodSrcSel, uint8_t | - | | \*pPgoodSelType); | - +========================+============================================+ - | Design IDs | did_pmic_power_pgood_cfg_readback | - +------------------------+--------------------------------------------+ - | Requirements ID | (PDK-5847) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-7252, PDK-7253, PDK-7254, PDK-7255, | - | | PDK-7256, PDK-7257, PDK-7258, PDK-7259, | - | | PDK-7260, PDK-10624 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*pPmicCoreHandle – | - | | PMIC Interface Handle. | - | | 2. const uint16_t pgoodSrcSel – Power Good | - | | Source. | - | | 3. uint8_t pgoodSelType – Power Good | - | | configuration. | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 1. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | Get Power good configuration | - | | | - | | This function is used to get various power | - | | good config. This function also provides | - | | the pgood source control for different | - | | power resources and pins. | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -Power Resource Status ---------------------- - -.. table:: PMIC POWER Get Resource Status - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t Pmic_powerGetPwrRsrcStat( | - | | Pmic_CoreHandle_t \*pPmicCoreHandle, const | - | | uint16_t pwrResource, | - | | Pmic_PowerResourceStat_t | - | | \*pPwrRsrcStatCfg); | - +========================+============================================+ - | Design IDs | did_pmic_power_cfg_readback | - +------------------------+--------------------------------------------+ - | Requirements ID | (PDK-5850), (PDK-5848), (PDK-5829) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-7261, PDK-7262, PDK-7263, PDK-7264, | - | | PDK-7265, PDK-10623, PDK-10635, PDK-10636 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*pPmicCoreHandle – | - | | PMIC Interface Handle. | - | | 2. const uint16_t pwrResource – PMIC Power | - | | resource | - | | 3. Pmic_PowerResourceStat_t | - | | \*pPwrRsrcStatCfg – Pointer to store | - | | Power Resource configuration for | - | | BUCK/LDO/VMON/VCCA | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function can be used to get the status| - | | related to current limit voltage over and | - | | under limit for BUCK/LDO/VCCA/VMON power | - | | resources | - +------------------------+--------------------------------------------+ - -Die Thermal Status Readback ---------------------------- - -.. table:: PMIC POWER Get Thermal Stat - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t Pmic_powerGetPwrThermalStat | - | | (Pmic_CoreHandle_t \*pPmicCoreHandle, | - | | Pmic_PowerThermalStat_t | - | | \*pPwrThermalStatCfg); | - +========================+============================================+ - | Design IDs | did_pmic_power_thermal_cfg_readback | - +------------------------+--------------------------------------------+ - | Requirements ID | (PDK-5840) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-7726, PDK-7727, PDK-7728, PDK-7729, | - | | PDK-7730, PDK-10622 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*pPmicCoreHandle | - | | –PMIC Interface Handle. | - | | | - | | 2. Pmic_PowerThermalStat_t | - | | \*pPwrThermalStatCfg – Pointer to store | - | | Thermal configuration for PMIC | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | API to get PMIC die temperature thermal | - | | status. | - | | | - | | This function is used to get the thermal | - | | status of the PMIC (die temperature) | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -Thermal Monitoring/Shutdown Configuration ------------------------------------------ - -.. table:: PMIC POWER Set Thermal Cfg - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t Pmic_powerSetThermalConfig( | - | | Pmic_CoreHandle_t \*pPmicCoreHandle, | - | | const Pmic_PowerThermalCfg_t | - | | thermalThreshold); | - +========================+============================================+ - | Design IDs | did_pmic_power_thermal_cfg_readback | - +------------------------+--------------------------------------------+ - | Requirements ID | (PDK-5840), (PDK-9111), (PDK-9117) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-7266, PDK-7267, PDK-7268, PDK-7269, | - | | PDK-7270, PDK-9994, PDK-9995 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*pPmicCoreHandle – | - | | PMIC Interface Handle. | - | | 2. const Pmic_PowerThermalCfg_t | - | | thermalThreshold – Thermal Configuration| - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 1. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to set the thermal | - | | threshold level for PMIC (die temperature) | - | | when corresponding validParam bit field is | - | | set in the Pmic_PowerThermalCfg_t | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -Thermal Monitoring/Shutdown Configuration Readback --------------------------------------------------- - -.. table:: PMIC POWER Get Thermal Cfg - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t Pmic_powerGetThermalConfig( | - | | Pmic_CoreHandle_t \*pPmicCoreHandle, | - | | Pmic_PowerThermalCfg_t | - | | \*pThermalThreshold); | - +========================+============================================+ - | Design IDs | did_pmic_power_thermal_cfg_readback | - +------------------------+--------------------------------------------+ - | Requirements ID | (PDK-5840), (PDK-9117) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-7266, PDK-7267, PDK-7268, PDK-7270, | - | | PDK-10622 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*pPmicCoreHandle – | - | | PMIC Interface Handle. | - | | 2. Pmic_PowerThermalCfg_t | - | | \*pThermalThreshold – Structure to hold | - | | Thermal Cfg | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 1. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | Get the PMIC thermal threshold value | - | | function. | - | | | - | | This function is used to get the thermal | - | | temperature threshold value for the PMIC. | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -Power Resources Interrupt -------------------------- - -.. table:: PMIC POWER Set Resource Interrupt - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_powerSetPwrRsrcIntr(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, const uint16_t | - | | pwrResource, const uint8_t intrType, const | - | | bool intrEnable); | - +========================+============================================+ - | Design IDs | did_pmic_power_cfg_readback | - +------------------------+--------------------------------------------+ - | Requirements ID | (PDK-5829), (PDK-5848) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-7271, PDK-7272, PDK-7273, PDK-7274, | - | | PDK-7275, PDK-7276, PDK-7277, PDK-7278, | - | | PDK-7279, PDK-10670 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*pPmicCoreHandle – | - | | PMIC Interface Handle. | - | | 2. const uint16_t pwrResource – PMIC Power | - | | resource | - | | 3. const uint8_t intrType – Interrupt type | - | | 4. const bool intrEnable – Enable/Disable | - | | the interrupt | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 1. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | API to enable/disable Power Resources | - | | and thermal interrupts. | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -Power Interrupt ---------------- - -.. table:: PMIC POWER Set Power Interrupts - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t Pmic_powerSetIntr | - | | (Pmic_CoreHandle_t \*pPmicCoreHandle, | - | | const uint8_t intrType, const bool | - | | intrEnable); | - +========================+============================================+ - | Design IDs | did_pmic_power_cfg_readback | - | | did_pmic_power_thermal_cfg_readback | - +------------------------+--------------------------------------------+ - | Requirements ID | (PDK-5841), (PDK-5840) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-7280, PDK-7281, PDK-7282, PDK-7283, | - | | PDK-7284, PDK-7285, PDK-7286, PDK-7287, | - | | PDK-7288, PDK-7289, PDK-7290, PDK-7291, | - | | PDK-7292, PDK-7293, PDK-7294, PDK-7295, | - | | PDK-7296, PDK-10629 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*pPmicCoreHandle – | - | | PMIC Interface Handle. | - | | 2. const uint8_t intrType – Interrupt type | - | | 3. const bool intrEnable – Enable/Disable | - | | the interrupt. | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 1. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | API to enable/disable Power interrupts. | - | | | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -RTC Alarm Configuration ------------------------ - -.. table:: PMIC RTC Set Alarm Info - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_rtcSetAlarmInfo(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, const Pmic_RtcTime_t | - | | timeCfg, const Pmic_RtcDate_t dateCfg) | - +========================+============================================+ - | Design Id: | (did_pmic_rtc_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-5855) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-5990, PDK-5991, PDK-6090, PDK-6091, | - | | PDK-6092, PDK-6093, PDK-6094, PDK-6095, | - | | PDK-6096, PDK-6099, PDK-6100, PDK-6101, | - | | PDK-6102, PDK-6103, PDK-6104, PDK-6107, | - | | PDK-6108, PDK-8814, PDK-10605, PDK-10606, | - | | PDK-10607, PDK-10608, PDK-10609, PDK-10610,| - | | PDK-10611, PDK-10612, PDK-10613, PDK-10614 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*pPmicCoreHandle – | - | | PMIC Interface handle | - | | 2. const Pmic_RtcTime_t timeCfg – PMIC RTC | - | | Time configuration | - | | 3. const Pmic_RtcDate_t dateCfg – PMIC RTC | - | | Date configuration | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 1. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to set the alarm | - | | Date and Time parameters depending upon | - | | the bit fields set in validParams of Time | - | | and Date structures in RTC of PMIC Device. | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -RTC Alarm Configuration Readback --------------------------------- - -.. table:: PMIC RTC Get Alarm Info - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_rtcGetAlarmInfo(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, Pmic_RtcTime_t | - | | \*pTimeCfg, Pmic_RtcDate_t \*pDateCfg) | - +========================+============================================+ - | Design Id: | (did_pmic_rtc_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-5855) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-6109, PDK-6110, PDK-6111, PDK-6112, | - | | PDK-8814, PDK-10616 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*pPmicCoreHandle – | - | | PMIC Interface Handle | - | | 2. Pmic_RtcTime_t \*pTimeCfg – PMIC RTC | - | | Time Configuration | - | | 3. Pmic_RtcDate_t \*pDateCfg – PMIC RTC | - | | Date Configuration | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 1. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to Get the alarm | - | | date and time parameters depending upon | - | | the bit fields set in validParams of Time | - | | and Date structures in RTC of the PMIC | - | | Device. | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -RTC Timer Configuration ------------------------ - -.. table:: PMIC RTC Set Timer Period - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_rtcSetTimerPeriod(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, const uint8_t | - | | timerPeriod) | - +========================+============================================+ - | Design Id: | (did_pmic_rtc_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-5855) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-6113, PDK-6114, PDK-6115, PDK-8814 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*pPmicCoreHandle – | - | | PMIC Interface Handle | - | | 2. const uint8_t timerPeriod – timer | - | | interrupt period | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 1. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to set the timer | - | | interrupt Period to the RTC present in the | - | | PMIC. | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -RTC Timer Configuration Readback --------------------------------- - -.. table:: PMIC RTC Get Timer Period - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_rtcGetTimerPeriod(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, uint8_t \*pTimerPeriod) | - +========================+============================================+ - | Design Id: | (did_pmic_rtc_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-5855) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-6116, PDK-6117, PDK-6118 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*pPmicCoreHandle – | - | | PMIC Interface Handle | - | | 2. uint8_t \*pTimerPeriod – Timer | - | | Interrupt periods | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 1. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to get the timer | - | | interrupt period from RTC present in the | - | | PMIC. | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -Enable/Disable RTC ------------------- - -.. table:: PMIC RTC Enable - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t Pmic_rtcEnable(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, const bool enableRtc); | - +========================+============================================+ - | Design Id: | (did_pmic_rtc_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-5855) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-6119, PDK-6120, PDK-6121, PDK-6122 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*pPmicCoreHandle – | - | | PMIC Interface Handle. | - | | 2. const bool enableRtc – Parameter to | - | | start/stop RTC | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 1. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to Start/Stop the | - | | RTC present in PMIC. | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -Set RTC time calendar ---------------------- - -.. table:: PMIC RTC Set Time Date Info - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_rtcSetTimeDateInfo(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, const Pmic_RtcTime_t | - | | timeCfg, const Pmic_RtcDate_t dateCfg) | - +========================+============================================+ - | Design Id: | (did_pmic_rtc_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-5855) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-6158, PDK-6159, PDK-6162, PDK-6163, | - | | PDK-6164, PDK-6165, PDK-6166, PDK-6167, | - | | PDK-6168, PDK-6169, PDK-6290, PDK-6170, | - | | PDK-6171, PDK-6172, PDK-6173, PDK-6174, | - | | PDK-6175, PDK-10615, PDK-10619, PDK-10793 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*pPmicCoreHandle – | - | | PMICInterface Handle | - | | 2. const Pmic_RtcTime_t timeCfg – PMIC RTC | - | | Time Configuration | - | | 3. const Pmic_RtcDate_t dateCfg – PMIC RTC | - | | Date Configuration | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 1. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to set the RTC Date | - | | and Time parameters depending upon the bit | - | | fields set in validParams of Time and Date | - | | structures in RTC of PMIC Device. | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -Readback RTC time calendar --------------------------- - -.. table:: PMIC RTC Get Time Date Info - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_rtcGetTimeDateInfo(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, Pmic_RtcTime_t | - | | \*pTimeCfg, Pmic_RtcDate_t \*pDateCfg) | - +========================+============================================+ - | Design Id: | (did_pmic_rtc_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-5855) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-6176, PDK-6177, PDK-6178, PDK-6179, | - | | PDK-10617, PDK-10620 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*pPmicCoreHandle – | - | | PMICInterface Handle | - | | 2. Pmic_RtcTime_t \*pTimeCfg – PMIC RTC | - | | Time Configuration | - | | 3. Pmic_RtcDate_t \*pDateCfg – PMIC RTC | - | | Date Configuration | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 1. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to Get the RTC date | - | | and time parameters depending upon the bit | - | | fields set in validParams of Time and Date | - | | structures in RTC of the PMIC Device. | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -RTC Frequency compensation --------------------------- - -.. table:: PMIC RTC Set Frequency Compensation - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_rtcSetFreqComp(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, const uint16_t | - | | compensation) | - +========================+============================================+ - | Design Id: | (did_pmic_rtc_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-5855) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-6180, PDK-6181 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*pPmicCoreHandle – | - | | PMIC Interface Handle | - | | 2. const uint16_t compensation – PMIC RTC | - | | frequency compensation | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 1. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to set the frequency | - | | compensation value in the RTC of the PMIC | - | | Device. | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -RTC Frequency compensation Readback ------------------------------------ - -.. table:: PMIC RTC Get Frequency Compensation - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_rtcGetFreqComp(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, uint16_t | - | | \*pCompensation); | - +========================+============================================+ - | Design Id: | (did_pmic_rtc_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-5855) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-6182, PDK-6183, PDK-6287 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*pPmicCoreHandle – | - | | PMIC Interface Handle | - | | 2. uint16_t \*pCompensation – PMIC RTC | - | | Frequency compensation | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 1. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to get the frequency | - | | compensation value from the RTC of the | - | | PMIC Device | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -RTC Enable Timer Interrupt --------------------------- - -.. table:: PMIC RTC Enable Timer Interrupt - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_rtcEnableTimerIntr(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, const bool enableIntr) | - +========================+============================================+ - | Design Id: | (did_pmic_rtc_cfg_readback) | - | | (did_pmic_lpstandby_wkup_cfg) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-5855), (PDK-5831) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-6266, PDK-6268 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*pPmicCoreHandle – | - | | PMIC Interface Handle | - | | 2. const bool enableIntr – Parameter to | - | | enable/disable Timer Interrupt | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 1. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to enable/disable | - | | the RTC timer interrupt. | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -RTC Enable Alarm Interrupt --------------------------- - -.. table:: PMIC RTC Enable Alarm Interrupt - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_rtcEnableAlarmIntr(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, const bool enableIntr) | - +========================+============================================+ - | Design Id: | (did_pmic_rtc_cfg_readback) | - | | (did_pmic_lpstandby_wkup_cfg) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-5855), (PDK-5831) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-6267, PDK-6269 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*pPmicCoreHandle – | - | | PMIC Interface Handle | - | | 2. const bool enableIntr – Parameter to | - | | enable/disable Alarm Interrupt | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 1. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to enable/disable | - | | the RTC alarm interrupt. | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -RTC reset status readback ---------------------------- - -.. table:: PMIC RTC Get Reset Status - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_rtcGetRstStatus(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, Pmic_RtcRstStatus_t | - | | \*pRtcRstStatus) | - +========================+============================================+ - | Design Id: | (did_pmic_rtc_rst_status) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-9145), (PDK-9142) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-7869, PDK-7465, PDK-7466, PDK-7467, | - | | PDK-9900, PDK-10618 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*pPmicCoreHandle – | - | | PMIC Interface Handle | - | | 2. Pmic_RtcRstStatus_t \*pRtcRstStatus - | - | | Pointer to hold RTC Reset status | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 1. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to get the Reset | - | | state of the RTC depending on the bit | - | | fields set in validParams of struct | - | | Pmic_RtcRstStatus_t structures. | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -Configure FSM off Request -------------------------- - -.. table:: PMIC FSM Device Off Request Cfg - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t Pmi | - | | c_fsmDeviceOffRequestCfg(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, uint8_t eventType, | - | | uint8_t fsmState); | - +========================+============================================+ - | Design IDs | (did_pmic_lpstandby_cfg) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-5851), (PDK-9159), (PDK-9329) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-7360, PDK-7361, PDK-7705, PDK-7358, | - | | PDK-7359, PDK-10741 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle – Interface | - | | Handle structure pointer | - | | 2. uint8_t eventType – Event Type used to | - | | initiate OFF Request | - | | 3. uint8_t fsmState – FSM state. | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function initiate OFF Request FSM | - | | transition from any other mission state to | - | | the STANDBY state or the LP_STANDBY state | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -Configure FSM On Request ------------------------- - -.. table:: PMIC FSM Device On Request - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t Pmic_fsmDeviceOnRequest | - | | (Pmic_CoreHandle_t \*pPmicCoreHandle) | - +========================+============================================+ - | Design Id: | (did_pmic_fsm_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-5837) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-7364 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle – Interface | - | | Handle structure pointer | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function setup nSLEEP signal bits | - | | with STARTUP_DEST, Which is common for all | - | | supported PMICs. | - +------------------------+--------------------------------------------+ - | Limitations | This API needs to be called at PMIC init | - | | before clearing Enable and Start-Up | - | | interrupts. Enable and Start-Up interrupts | - +------------------------+--------------------------------------------+ - -FSM Mission State ------------------ - -.. table:: PMIC FSM Set Mission State - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_fsmSetMissionState(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, const uint8_t | - | | pmicState); | - +========================+============================================+ - | Design Id: | (did_pmic_fsm_cfg_readback) | - | | (did_pmic_lpstandby_cfg) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-5837), (PDK-5851) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-7697, PDK-7698, PDK-7699, PDK-7700, | - | | PDK-7701, PDK-7702, PDK-7703 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle – Interface | - | | Handle structure pointer. | - | | 2. const uint8_t pmicState – PMIC FSM | - | | mission state | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used for set/change the | - | | FSM mission states for PMIC using Nsleep1B | - | | and Nsleep2B signals in absence of GPIO | - | | pins | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -NSLEEP Signal Masking Unmasking -------------------------------- - -.. table:: PMIC FSM Set NSLEEP Signal Mask - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t Pmic_fsmSetNsleepSignalMask | - | | (Pmic_CoreHandle_t \*pPmicCoreHandle, const| - | | bool nsleepType, const bool maskEnable); | - +========================+============================================+ - | Design Id: | (did_pmic_fsm_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-5837) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-7693, PDK-7694, PDK-7695, PDK-7696, | - | | PDK-7704 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle –Interface | - | | Handle structure pointer. | - | | 2. const bool nsleepType – NSLEEP signal | - | | 3. const bool maskEnable – Parameter to | - | | select masking/unmasking | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used for | - | | Masking/Unmasking for NSLEEP2B or NSLEEP1B | - | | signal. | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -To set value to scratchpad register ------------------------------------ - -.. table:: PMIC Set Scratchpad Value - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_setScratchPadValue(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, const uint8_t | - | | scratchPadRegNum, const uint8_t data); | - +========================+============================================+ - | Design Id: | (did_pmic_comm_single_i2c_cfg), | - | | (did_pmic_comm_dual_i2c_cfg), | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-5810), (PDK-5843) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-8321, PDK-8322, PDK-8323, PDK-10587 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle – Interface | - | | Handle structure pointer. | - | | 2. const uint8_t scratchPadRegNum – | - | | Scratchpad register Number. | - | | 3. const uint8_t data – Data/value to be | - | | written to scratchpad. | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used write data to | - | | scratchpad register of PMIC | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -To Read value from scratchpad register --------------------------------------- - -.. table:: PMIC Get Scratchpad Value - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_getScratchPadValue(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, const uint8_t | - | | scratchPadRegNum, uint8_t \*pData); | - +========================+============================================+ - | Design Id: | (did_pmic_comm_single_i2c_cfg), | - | | (did_pmic_comm_dual_i2c_cfg) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-5810), (PDK-5843) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-8323, PDK-8324, PDK-8325, PDK-8326 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle – Interface | - | | Handle structure pointer. | - | | 2. const uint8_t scratchPadRegNum – | - | | Scratchpad register Number. | - | | 3. uint8_t \*pData – Parameter to hold | - | | Data/value read from scratchpad. | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used read data to | - | | scratchpad register of PMIC | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -Recovery Count Cfg ------------------- - -.. table:: PMIC Set Recovery Count Cfg - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_setRecoveryCntCfg(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, const Pmic_RecovCntCfg_t| - | | recovCntCfg); | - +========================+============================================+ - | Design Id: | (did_pmic_err_recov_cnt_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-5809) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-7628, PDK-7629, PDK-7630, PDK-7631, | - | | PDK-7632 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle – Interface | - | | Handle structure pointer | - | | 2. const Pmic_RecovCntCfg_t recovCntCfg– | - | | Set configuration value for Recovery | - | | counter | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function configures PMIC Recovery | - | | Counter register, controlling recovery | - | | count Threshold and Clear. | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -Recovery Count Cfg Readback ---------------------------- - -.. table:: PMIC Get Recovery Count Cfg - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_getRecoveryCntCfg(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, Pmic_RecovCntCfg_t | - | | \*pRecovCntCfg); | - +========================+============================================+ - | Design Id: | (did_pmic_err_recov_cnt_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-5809) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-7633, PDK-7634 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle – Interface | - | | Handle structure pointer | - | | 2. Pmic_RecovCntCfg_t \*pRecovCntCfg – | - | | Pointer to store recovery counter | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function gets PMIC Recovery Counter | - | | configuration values | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -Recovery Count Readback ------------------------ - -.. table:: PMIC Get Recovery Count - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_getRecoveryCnt(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, uint8_t | - | | \*pRecovCntVal); | - +========================+============================================+ - | Design Id: | (did_pmic_err_recov_cnt_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-5809) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-7635, PDK-7636, PDK-7637, PDK-10573, | - | | PDK-10574 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle – Interface | - | | Handle structure pointer | - | | 2. uint8_t \*pRecovCntVal – Pointer to | - | | store recovery count value | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function reads out the recovery count | - | | value. | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -I2C Speed ---------- - -.. table:: PMIC Set I2CSpeed Config - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_setI2CSpeedCfg(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle); | - +========================+============================================+ - | Design Id: | (did_pmic_i2c_speed_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-9129) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-6187, PDK-5990, PDK-6109, PDK-6185, | - | | PDK-6186, PDK-6191, PDK-10591 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle – Interface | - | | Handle structure pointer | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to configure I2C1 | - | | speed for Single or Dual I2C Interface and | - | | I2C2 Speed for Dual I2C Interface based on | - | | commMode. | - | | | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -I2C Speed Readback ------------------- - -.. table:: PMIC Get I2CSpeed - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_getI2CSpeed(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, uint8_t \*pI2C1Speed, | - | | uint8_t \*pI2C2Speed); | - +========================+============================================+ - | Design Id: | (did_pmic_i2c_speed_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-9129) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-9963, PDK-9964, PDK-9965, PDK-9966 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle – Interface | - | | Handle structure pointer | - | | 2. uint8_t \*pI2C1Speed - Pointer to store | - | | I2C1 Speed for both PMIC_INTF_SINGLE_I2C| - | | interface.and PMIC_INTF_DUAL_I2C | - | | 3. uint8_t \*pI2C2Speed - Pointer to store | - | | I2C2 Speed for PMIC_INTF_DUAL_I2C | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to get the configured| - | | value for I2C1 or I2C2 Speed based on | - | | commMode | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -Device Information Readback ---------------------------- - -.. table:: PMIC Get Device Information - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_getDeviceInfo(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, Pmic_DeviceInfo_t | - | | \*pDeviceInfo); | - +========================+============================================+ - | Design Id: | (did_pmic_dev_info_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-9109), (PDK-9110), (PDK-9149), | - | | (PDK-9159), (PDK-9329) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-9967, PDK-9968, PDK-9969 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle – Interface | - | | Handle structure pointer | - | | 2. Pmic_DeviceInfo_t \*pDeviceInfo - | - | | Pointer to store device information | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to get PMIC Device | - | | information such as TI DeviceID, TI NVM ID,| - | | TI NVM Revision, TI Silicon Revision, | - | | Custom NVM ID. | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -CRC Status ----------- - -.. table:: PMIC Get CRC Status - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_getCrcStatus(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, uint8_t | - | | \*pI2c1SpiCrcStatus, uint8_t | - | | \*pI2c2CrcStatus); | - +========================+============================================+ - | Design Id: | (did_pmic_crc_status) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-9329) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-6187, PDK-5990, PDK-6109, PDK-6185, | - | | PDK-6186, PDK-6191, PDK-10592, PDK-10593, | - | | PDK-10594, PDK-10595 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle – Interface | - | | Handle structure pointer | - | | 2. uint8_t \*pI2c1SpiCrcStatus - Pointer to| - | | store CRC Status for I2C1/SPI interface | - | | 3. uint8_t \*pI2c2CrcStatus - Pointer to | - | | store CRC Status for I2C2 interface | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to get the CRC Status| - | | based on commMode. | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -Enable CRC ----------- - -.. table:: PMIC Get CRC Enable - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t Pmic_enableCRC(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle); | - +========================+============================================+ - | Design Id: | (did_pmic_crc_enable) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-9119) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-9876, PDK-9887, PDK-9984, PDK-9914, | - | | PDK-10596 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle – Interface | - | | Handle structure pointer | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to enable CRC on | - | | Primary PMIC which enables CRC for I2C1, | - | | I2C2, SPI interface of both Primary and | - | | Secondary PMIC | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -Common Cntrl Status Readback ----------------------------- - -.. table:: PMIC Get Common Control Status - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_getCommonCtrlStat(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, Pmic_CommonCtrlStat_t | - | | \*pCommonCtrlStat); | - +========================+============================================+ - | Design Id: | (did_pmic_common_ctrl_status_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-9126), (PDK-9124), (PDK-9130), | - | | (PDK-9125), (PDK-9139), (PDK-9138), | - | | (PDK-9112) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-9951, PDK-9952, PDK-9953, PDK-9954, | - | | PDK-9955, PDK-9956, PDK-9957, PDK-9958, | - | | PDK-9959, PDK-9960, PDK-9961, PDK-9962 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle – Interface | - | | Handle structure pointer | - | | 2. Pmic_CommonCtrlStat_t | - | | \*pCommonCtrlStat - Pointer to store | - | | PMIC required common control parameter | - | | status | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to get the required | - | | common control parameter status when | - | | corresponding validParam bit field is set | - | | in the Pmic_CommonCtrlStat_t. | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -GPIO Pin Value --------------- - -.. table:: PMIC Get Pin Value - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t Pmic_getPinValue(Pmic_CoreHandle_t,| - | | const uint8_t pinType, uint8_t | - | | \*pPinValue); | - +========================+============================================+ - | Design Id: | (did_pmic_pin_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-9137), (PDK-9131) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-9970, PDK-9971, PDK-9972, PDK-9972, | - | | PDK-9973, PDK-9974, PDK-9975 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle – Interface | - | | Handle structure pointer | - | | 2. const uint8_t pinType - PMIC pin type | - | | 3. uint8_t \*pPinValue - Pointer to store | - | | the status of pin type | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to read the signal | - | | level of the NRSTOUT_SOC/NRSTOUT/EN_DRV Pin| - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -Battery Backup Control Parameters ---------------------------------- - -.. table:: PMIC Set Battery Control Config - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_setBatteryCtrlConfig(Pmic_CoreHandle_t| - | | \*pPmicCoreHandle, const | - | | Pmic_BatteryCtrlCfg_t batteryCtrlCfg); | - +========================+============================================+ - | Design Id: | (did_pmic_battery_ctrl_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-9130), (PDK-9111) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-9942, PDK-9943, PDK-9944, PDK-9945, | - | | PDK-9946, PDK-9948, PDK-9994, PDK-9995, | - | | PDK-10597 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle – Interface | - | | Handle structure pointer | - | | 2. const Pmic_BatteryCtrlCfg_t | - | | batteryCtrlCfg - Set PMIC required | - | | Battery Backup control parameter | - | | configuration. | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to set the required | - | | Battery Backup control parameter | - | | configuration | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -Battery Control Config Readback ---------------------------------- - -.. table:: PMIC Get Battery Control Config - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_getBatteryCtrlConfig(Pmic_CoreHandle_t| - | | \*pPmicCoreHandle, Pmic_BatteryCtrlCfg_t | - | | \*pBatteryCtrlCfg); | - +========================+============================================+ - | Design Id: | (did_pmic_battery_ctrl_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-9130) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-9949, PDK-9950, PDK-10598 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle – Interface | - | | Handle structure pointer | - | | 2. Pmic_BatteryCtrlCfg_t | - | | \*pBatteryCtrlCfg - Pointer to store | - | | PMIC required Battery Backup control | - | | parameter configuration. | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to get the required | - | | Battery Backup control parameter | - | | configuration | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -Miscellaneous control parameters --------------------------------- - -.. table:: PMIC Set Miscellaneous Control Config - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_setMiscCtrlConfig(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, const Pmic_MiscCtrlCfg_t| - | | miscCtrlCfg); | - +========================+============================================+ - | Design Id: | (did_pmic_misc_ctrl_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-9132), (PDK-9127), (PDK-9111) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-9931, PDK-9932, PDK-9933, PDK-9934, | - | | PDK-9935, PDK-9936, PDK-9937, PDK-9938, | - | | PDK-9939, PDK-9978, PDK-9979, PDK-9980, | - | | PDK-9981, PDK-9994, PDK-9995, PDK-10602, | - | | PDK-10603, PDK-8933 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle – Interface | - | | Handle structure pointer | - | | 2. const Pmic_MiscCtrlCfg_t miscCtrlCfg - | - | | Set PMIC required miscellaneous control | - | | parameter configuration. | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to set the required | - | | miscellaneous control parameter | - | | configuration when corresponding validParam| - | | bit field is set in the Pmic_MiscCtrlCfg_t | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -Miscellaneous control parameters Readback ------------------------------------------ - -.. table:: PMIC Get Miscellaneous Control Config - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_GetMiscCtrlConfig(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, Pmic_MiscCtrlCfg_t | - | | \*pMiscCtrlCfg); | - +========================+============================================+ - | Design Id: | (did_pmic_misc_ctrl_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-9132), (PDK-9127) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-9940, PDK-9941, PDK-9982, PDK-9983 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle – Interface | - | | Handle structure pointer | - | | 2. Pmic_MiscCtrlCfg_t \*pMiscCtrlCfg - | - | | pointer to store PMIC required | - | | miscellaneous control parameter | - | | configuration. | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to get the required | - | | miscellaneous control parameter | - | | configuration | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -Common control configuration ----------------------------- - -.. table:: PMIC Set Common Control Config - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_setCommonCtrlConfig(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, const | - | | Pmic_CommonCtrlCfg_t commonCtrlCfg); | - +========================+============================================+ - | Design Id: | (did_pmic_common_ctrl_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-9112), (PDK-9114), (PDK-9131), | - | | (PDK-9143), (PDK-9111) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-9922, PDK-9923, PDK-9924, PDK-9927, | - | | PDK-9928, PDK-9929, PDK-9930, PDK-9984, | - | | PDK-9985, PDK-9988, PDK-9989, PDK-9991, | - | | PDK-9993, PDK-9990, PDK-9994, PDK-9995, | - | | PDK-10590, PDK-10599, PDK-10600, PDK-10751,| - | | PDK-10786, PDK-10752, PDK-8933 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle – Interface | - | | Handle structure pointer | - | | 2. const Pmic_CommonCtrlCfg_t | - | | commonCtrlCfg - Set PMIC required | - | | common control | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to set the required | - | | common control parameter configuration | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -Common control configuration Readback -------------------------------------- - -.. table:: PMIC Get Common Control Config - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_getCommonCtrlConfig(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, Pmic_CommonCtrlCfg_t | - | | \*pCommonCtrlCfg); | - +========================+============================================+ - | Design Id: | (did_pmic_common_ctrl_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-9112), (PDK-9114), (PDK-9131), | - | | (PDK-9143) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-9925, PDK-9926, PDK-10601, PDK-8933 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle – Interface | - | | Handle structure pointer | - | | 2. Pmic_CommonCtrlCfg_t \*pCommonCtrlCfg - | - | | Pointer to store PMIC required common | - | | control parameter configuration | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to get the required | - | | common control parameter configuration | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - - -Set User Space Regsiter ------------------------ - -.. table:: PMIC Set User Space Value - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_setUserSpareValue(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, const uint8_t | - | | userSpareRegNum, const uint8_t data); | - +========================+============================================+ - | Design Id: | (did_pmic_user_spare_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-9133) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-9915, PDK-9916, PDK-9917, PDK-9918 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle – Interface | - | | Handle structure pointer | - | | 2. const uint8_t userSpareRegNum - | - | | UserSpare register number | - | | 3. const uint8_t data - Data/Value to be | - | | written to UserSpare | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to write data to | - | | User Spare register of PMIC | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -Read User Space Regsiter ------------------------ - -.. table:: PMIC Get User Space Value - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_getUserSpareValue(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, const uint8_t | - | | userSpareRegNum, uint8_t \*pData); | - +========================+============================================+ - | Design Id: | (did_pmic_user_spare_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-9133) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-9919, PDK-9920, PDK-9921 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle – Interface | - | | Handle structure pointer | - | | 2. const uint8_t userSpareRegNum - | - | | UserSpare register number | - | | 3. uint8_t \*pData - Parameter to hold the | - | | Data/Value read from User Spare register| - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to read data from | - | | User Spare register of PMIC | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -To Set RTC Configuration ------------------------- - -.. table:: PMIC Set RTC Configuration - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_rtcSetConfiguration(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, const Pmic_RtcCfg_t | - | | rtcCfg); | - +========================+============================================+ - | Design Id: | (did_pmic_rtc_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-9141), (PDK-9135), (PDK-9111) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-9903, PDK-9904, PDK-9905, PDK-9907, | - | | PDK-9908, PDK-9909, PDK-9910, PDK-9911, | - | | PDK-9912, PDK-9913, PDK-9914, PDK-9994, | - | | PDK-9995, PDK-10621 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle – Interface | - | | Handle structure pointer | - | | 2. const Pmic_RtcCfg_t rtcCfg - Set | - | | required RTC configuration | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to set RTC | - | | configuration depending upon the bit | - | | fields set in validParams of Pmic_RtcCfg_t | - | | structure | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -To Get RTC Configuration ------------------------- - -.. table:: PMIC Get RTC Configuration - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_rtcGetConfiguration(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, Pmic_RtcCfg_t | - | | \*pRtcCfg); | - +========================+============================================+ - | Design Id: | (did_pmic_rtc_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-9141), (PDK-9135) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-9897, PDK-9898, PDK-10620 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle – Interface | - | | Handle structure pointer | - | | 2. Pmic_RtcCfg_t \*pRtcCfg - Pointer to | - | | store required RTC configuration | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to Get RTC | - | | configuration depending upon the bit | - | | fields set in validParams of Pmic_RtcCfg_t | - | | structure | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -To Clear Reset Status RTC -------------------------- - -.. table:: PMIC RTC Clear Reset Status - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_rtcClrRstStatus(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, const uint8_t | - | | rtcRstStatType); | - +========================+============================================+ - | Design Id: | (did_pmic_rtc_clr_rst_status) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-9142), (PDK-9145) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-9899, PDK-9900, PDK-9901, PDK-9902 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle – Interface | - | | Handle structure pointer | - | | 2. const uint8_t rtcRstStatType - RTC Reset| - | | Status Type | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to clear the Reset | - | | status of the RTC depending on the | - | | Pmic_RtcRstStatusType | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -To Read RTC Status ------------------- - -.. table:: PMIC RTC Get Status - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_rtcGetStatus(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, bool \*pRtcstatus); | - +========================+============================================+ - | Design Id: | (did_pmic_rtc_status) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-9155) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-9895, PDK-9896 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle – Interface | - | | Handle structure pointer | - | | 2. bool \*pRtcstatus - Pointer to store the| - | | RTC status which defines RTC is started | - | | or not | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is read RTC status which | - | | defines RTC is started or not | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -To Read Status of Interrupt Request ------------------------------------ - -.. table:: PMIC Interupt Get Masked - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_irqGetMaskIntrStatus(Pmic_CoreHandle_t| - | | \*pPmicCoreHandle, const uint8_t irqNum, | - | | bool \*pMaskStatus); | - +========================+============================================+ - | Design Id: | (did_pmic_irq_mask_status) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-9153) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-9892, PDK-9893, PDK-10753 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle – Interface | - | | Handle structure pointer | - | | 2. const uint8_t irqNum - Interrupt number | - | | to be masked | - | | 3. bool \*pMaskStatus - Pointer to hold | - | | the status of interrupt is masked or not| - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function does the following: | - | | 1. This function reads the status of | - | | interrupt is masked or not for | - | | the given IRQ Number. | - | | 2. Validates given IRQ Number and find the | - | | IRQ register to check the status of | - | | interrupt is masked or not | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -To Read Status of GPIO Interrupt --------------------------------- - -.. table:: PMIC Interupt Get GPIO Masked - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_irqGetGpioMaskIntr(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, const uint8_t | - | | irqGpioNum, const uint8_t gpioIntrType, | - | | bool \*pRiseIntrMaskStat, bool | - | | \*pFallIntrMaskStat); | - +========================+============================================+ - | Design Id: | (did_pmic_irq_mask_status) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-9152) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-9887, PDK-9888, PDK-9889, PDK-9890, | - | | PDK-9891, PDK-10767, PDK-10768, PDK-10769, | - | | PDK-8852 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle – Interface | - | | Handle structure pointer | - | | 2. const uint8_t irqGpioNum - GPIO | - | | Interrupt to be masked/unmasked | - | | 3. const uint8_t gpioIntrType - Parameter | - | | to mask GPIO RISE and FALL | - | | 4. bool \*pRiseIntrMaskStat - Pointer to | - | | hold the status of GPIO rise interrupt | - | | is masked or not | - | | 5. bool \*pRiseIntrMaskStat - Pointer to | - | | hold the status of GPIO fall interrupt | - | | is masked or not | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure: | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function reads the status of GPIO Rise| - | | and Fall interrupt is masked or not for the| - | | given GPIO IRQ Number | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - - -To Read the Status of NSLEEP Signal ------------------------------------ - -.. table:: PMIC FSM Get NSLEEP Signal Mask Status - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t Pmic_fsmGetNsleepSignalMaskStat | - | | (Pmic_CoreHandle_t \*pPmicCoreHandle, | - | | const bool nsleepType, bool | - | | \*pNsleepStat); | - +========================+============================================+ - | Design Id: | (did_pmic_fsm_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-9151) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-10078, PDK-10079 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle –Interface | - | | Handle structure pointer. | - | | 2. const bool nsleepType – NSLEEP signal | - | | 3. bool \*pNsleepStat – Pointer to store | - | | Nsleep Signal is masked or not | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to read the status | - | | of the NSLEEP1B/2B Signal is masked or not | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -To Set FSM Configuartion ------------------------- - -.. table:: PMIC FSM Set Configuration - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_fsmSetConfiguration(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, const Pmic_FsmCfg_t | - | | fsmCfg); | - +========================+============================================+ - | Design Id: | (did_pmic_fsm_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-9144), (PDK-9134), (PDK-9128) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-10080, PDK-10081, PDK-10082, PDK-10083,| - | | PDK-10084, PDK-10085, PDK-10086, PDK-10087,| - | | PDK-10088, PDK-10089, PDK-10125, PDK-10750 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle –Interface | - | | Handle structure pointer. | - | | 2. const Pmic_FsmCfg_t fsmCfg – Set | - | | required FSM configuration | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to set the required | - | | FSM configuration when corresponding bit | - | | field is set. | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -To Get FSM Configuartion ------------------------- - -.. table:: PMIC FSM Get Configuration - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_fsmGetConfiguration(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, Pmic_FsmCfg_t \*fsmCfg);| - +========================+============================================+ - | Design Id: | (did_pmic_fsm_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-9144), (PDK-9134), (PDK-9128) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-10090, PDK-10091 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle –Interface | - | | Handle structure pointer. | - | | 2. Pmic_FsmCfg_t \*fsmCfg – Pointer to | - | | store FSM configuration | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to get the required | - | | FSM configuration when corresponding | - | | validParam bit field is set in | - | | Pmic_FsmCfg_t structure | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -To Configure PFSM Delay ------------------------ - -.. table:: PMIC FSM Set PFSM Delay - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_fsmSetPfsmDelay(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, const uint8_t | - | | pFsmDelayType, const uint8_t pfsmDelay); | - +========================+============================================+ - | Design Id: | (did_pmic_pfsm_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-9136) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-10092, PDK-10093, PDK-10094 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle –Interface | - | | Handle structure pointer. | - | | 2. const uint8_t pFsmDelayType – PFSM Delay| - | | Type | - | | 3. const uint8_t pfsmDelay – Delay for PFSM| - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to configure PFSM | - | | Delay. | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -To Read PFSM Delay ------------------- - -.. table:: PMIC FSM Get PFSM Delay - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_fsmGetPfsmDelay(Pmic_CoreHandle_t | - | | \*pPmicCoreHandle, const uint8_t | - | | pFsmDelayType, uint8_t \*pPfsmDelay); | - +========================+============================================+ - | Design Id: | (did_pmic_pfsm_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-9136) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-10095, PDK-10096, PDK-10097 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle –Interface | - | | Handle structure pointer. | - | | 2. const uint8_t pFsmDelayType – PFSM Delay| - | | Type | - | | 3. uint8_t \*pPfsmDelay – Pointer to store | - | | the Delay for PFSM | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to read PFSM Delay | - | | | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -To Configure NSLEEP1B/2B Signal -------------------------------- - -.. table:: PMIC FSM Set NSLEEP Value - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_fsmSetNsleepSignalVal( | - | | Pmic_CoreHandle_t \*pPmicCoreHandle, const | - | | bool nsleepType, const uint8_t nsleepVal); | - +========================+============================================+ - | Design Id: | (did_pmic_fsm_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-9146) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-10098, PDK-10101, PDK-10102, | - | | PDK-10103, PDK-10104, PDK-10099 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle –Interface | - | | Handle structure pointer. | - | | 2. const bool nsleepType – NSLEEP signal | - | | 3. const uint8_t nsleepVal – PMIC NSLEEP | - | | signal level High/Low to be configured | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to configure the | - | | NSLEEP1B/2B signal level | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -To Get NSLEEP1B/2B Signal -------------------------------- - -.. table:: PMIC FSM Get NSLEEP Value - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_fsmGetNsleepSignalVal( | - | | Pmic_CoreHandle_t \*pPmicCoreHandle, const | - | | bool nsleepType, uint8_t \*pNsleepVal); | - +========================+============================================+ - | Design Id: | (did_pmic_fsm_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-9146) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-10105, PDK-10106 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle –Interface | - | | Handle structure pointer. | - | | 2. const bool nsleepType – NSLEEP signal | - | | 3. uint8_t \*pNsleepVal – Pointer to store | - | | PMIC Nsleep signal level High/Low. | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to read the signal | - | | level of the NSLEEP1B/2B signal level | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -To Recover from SOC Power Error -------------------------------- - -.. table:: PMIC FSM Recover SOC Power Error - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t Pmic_fsmRecoverSocPwrErr( | - | | \*pPmic_CoreHandle_t, const uint8_t | - | | nsleepVal); | - +========================+============================================+ - | Design Id: | (did_pmic_fsm_recover_soc_pwr_err) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-9123) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-10109, PDK-10110, PDK-10111, PDK-10112,| - | | PDK-10384, PDK-10749 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle –Interface | - | | Handle structure pointer. | - | | 2. const uint8_t nsleepVal - PMIC Nsleep | - | | signal level High/Low to be configured. | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to recover from SOC | - | | Power Error without rebooting the system | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - - -To Initiate FSM I2C Trigger ---------------------------- - -.. table:: PMIC FSM Enable I2C Trigger - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t Pmic_fsmEnableI2cTrigger( | - | | \*pPmic_CoreHandle_t, const uint8_t | - | | i2cTriggerType, const uint8_t | - | | i2cTriggerVal); | - +========================+============================================+ - | Design Id: | (did_pmic_fsm_i2c_trigger) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-9330) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-10113, PDK-10114, PDK-10115, PDK-10116,| - | | PDK-10117, PDK-10118, PDK-10119, PDK-10742,| - | | PDK-10743, PDK-10744 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle –Interface | - | | Handle structure pointer. | - | | 2. const uint8_t i2cTriggerType - FSM I2C | - | | Trigger Type | - | | 3. const uint8_t i2cTriggerVal - FSM I2C | - | | Trigger Value | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to initiate FSM I2C | - | | trigger for given FSM I2C trigger type | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -To Read FSM I2C Trigger ---------------------------- - -.. table:: PMIC FSM Get I2C Trigger Value - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t Pmic_fsmGetI2cTriggerVal( | - | | \*pPmic_CoreHandle_t, const uint8_t | - | | i2cTriggerType, uint8_t \*pI2cTriggerVal); | - +========================+============================================+ - | Design Id: | (did_pmic_fsm_i2c_trigger) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-9330) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-10120, PDK-10745, PDK-10746, PDK-10747 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle –Interface | - | | Handle structure pointer. | - | | 2. const uint8_t i2cTriggerType - FSM I2C | - | | Trigger Type | - | | 3. uint8_t \*pI2cTriggerVal - Pointer to | - | | store FSM I2C Trigger Value | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to read FSM I2C | - | | trigger for given FSM I2C trigger type | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -To Initiate DDR/GPIO Retention Mode ------------------------------------ - -.. table:: PMIC FSM Request Retention Mode - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t | - | | Pmic_fsmRequestDdrGpioRetentionMode( | - | | Pmic_CoreHandle_t \*pPmicCoreHandle, const | - | | uint8_t retentionMode, const uint8_t | - | | i2cTriggerVal); | - +========================+============================================+ - | Design Id: | (did_pmic_ddr_gpio_retention_cfg) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-9563), (PDK-9564) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-10122, PDK-10123, PDK-10124, PDK-10748 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle –Interface | - | | Handle structure pointer. | - | | 2. const uint8_t retentionMode – Retention | - | | Mode | - | | 3. const uint8_t i2cTriggerVal – FSM I2C | - | | Trigger Value | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function initiates a request to | - | | exercise DDR/GPIO Retention Mode on the | - | | device based on the Retention Mode | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -To Read Status of PMIC ESM ---------------------------- - -.. table:: PMIC ESM Get Status - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t Pmic_esmGetStatus( | - | | \*pPmic_CoreHandle_t, const bool esmType, | - | | bool \*pEsmState); | - +========================+============================================+ - | Design Id: | (did_pmic_esm_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-9150) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-9876, PDK-9877, PDK-9878, PDK-9879, | - | | PDK-9880 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle –Interface | - | | Handle structure pointer. | - | | 2. const bool esmType - PMIC ESM Type | - | | 3. bool \*pEsmState - Pointer to store the | - | | status of PMIC ESM is started or not | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to read status of | - | | PMIC ESM_MCU/ESM_SOC is started or not | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -Write Answer in Long Window/Window1/Window2 Interval ------------------------------------- - -.. table:: PMIC WdgQa Sequence Write Answer - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t Pmic_wdgQaSequenceWriteAnswer( | - | | \*pPmic_CoreHandle_t); | - +========================+============================================+ - | Design Id: | (did_pmic_wdg_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-5839), (PDK-9115), (PDK-9116) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-10071, PDK-10072, PDK-10073, PDK-10074,| - | | PDK-10415, PDK-10784 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle –Interface | - | | Handle structure pointer. | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to write Answers in | - | | Long Window/ Window1/ Window2 Interval | - | | for the WDG QA Sequence | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - -To Clear PMIC Watchdog Error Status ------------------------------------- - -.. table:: PMIC Wdg Clear Error Status - :widths: 30 70 - - +------------------------+--------------------------------------------+ - | Prototype | int32_t Pmic_wdgClrErrStatus( | - | | \*pPmic_CoreHandle_t, const uint8_t | - | | wdgErrType); | - +========================+============================================+ - | Design Id: | (did_pmic_wdg_cfg_readback) | - +------------------------+--------------------------------------------+ - | Requirement: | (PDK-5839), (PDK-5854) | - +------------------------+--------------------------------------------+ - | Test IDs | PDK-10075, PDK-10076, PDK-10077, PDK-10783 | - +------------------------+--------------------------------------------+ - | Parameter | 1. Pmic_CoreHandle_t \*handle –Interface | - | | Handle structure pointer. | - | | 2. const uint8_t wdgErrType - Watchdog | - | | error type to clear the status. | - +------------------------+--------------------------------------------+ - | Return Code | On Success: | - | | | - | | 1. PMIC_ST_SUCCESS | - | | | - | | On Failure | - | | | - | | 2. Appropriate error code | - | | See section `API Function Return Status`_. | - +------------------------+--------------------------------------------+ - | Functional Description | This function is used to clear the watchdog| - | | error status from the PMIC for trigger | - | | mode or Q&A(question and answer) mode | - +------------------------+--------------------------------------------+ - | Limitations | | - +------------------------+--------------------------------------------+ - - -.. - - -Note ----- -For all Structure and Function parameters the valid macro values references are defined -in the API guide - -Such as -For Pmic Power resources control and configuration structure (Pmic_PowerResourceCfg_s) member -like rvCheckEn which Enable/Disable residual voltage checking for regulator/VMON pin. - -Its Valid values - - for TPS6594x Leo Device \ref Pmic_TPS6594x_Regulator_RV_Check. - - for LP8764x HERA Device \ref Pmic_LP8764x_Regulator_Vmon_RV_Check. - -Directory -============ - -Index -------------- -None - -Glossary -------------- -None - -Acronym List --------------- - -+------------+-------------------------------+ -| Acronym | Definition | -+============+===============================+ -| PMIC | Power Management IC | -+------------+-------------------------------+ -| SOC | System-On-Chip | -+------------+-------------------------------+ -| MCU | Micro Controller Unit | -+------------+-------------------------------+ -| I2C | Inter IC | -+------------+-------------------------------+ -| SPI | Serial Peripheral Interface | -+------------+-------------------------------+ -| GPIO | General Purpose Input/output | -+------------+-------------------------------+ -| RTC | Real Time Clock | -+------------+-------------------------------+ -| WDG | Watchdog | -+------------+-------------------------------+ -| LDO | Low dropout regulator | -+------------+-------------------------------+ -| ESM | Error Signal Monitor | -+------------+-------------------------------+ -| BIST | Built-In Self-Test | -+------------+-------------------------------+ -| ISR | Interrupt Service Routine | -+------------+-------------------------------+ -| LP Mode | Low Power Mode | -+------------+-------------------------------+ -| FSM | Finite State Machine | -+------------+-------------------------------+ -| WKUP | Wake Up | -+------------+-------------------------------+ -| LP-standby | Low Power Standby | -+------------+-------------------------------+ -| VMON | Voltage Monitor | -+------------+-------------------------------+ - -References -=========== - -Following are referred to help design and development of PMIC LLD: - -#. Technical Reference Manual: - `ti.com/lit/slvubs7 `__ -#. AP216 Process. -#. Coding Guidelines: - https://confluence.itg.ti.com/display/SWRD/OneMCU+Coding+Standard - - - -.. raw:: latex - - \newpage - -**Template Revision** - -+---------------+----------------------+-----------------+--------------------------------------------------------------------------------------------------------------------------+ -| **Version** | **Date** | **Author** | **Description** | -+===============+======================+=================+==========================================================================================================================+ -| 0.01 | November 2017 | Jon Nafziger | Initial version | -+---------------+----------------------+-----------------+--------------------------------------------------------------------------------------------------------------------------+ -| 0.02 | July 12, 2018 | Krishna Allam | Updates to synchronize this SDD template with the methodology described in the Software Architecture document template | -+---------------+----------------------+-----------------+--------------------------------------------------------------------------------------------------------------------------+ -| 1.0 | September 19, 2018 | Frank Fruth | Updates: | -| | | | | -| | | | - Added a separate section/table for template revision (this table). | -| | | | | -| | | | - Cleared revision history at start of document to be reserved for document revision | -| | | | | -| | | | - Minor cosmetic changes to title page, e.g., removed literature number reference; | -+---------------+----------------------+-----------------+--------------------------------------------------------------------------------------------------------------------------+ -| 1.0A | November 19, 2018 | Sam Nelson | Updates: | -| | | Siluvaimani | | -| | | | - Converted to RST format | -+---------------+----------------------+-----------------+--------------------------------------------------------------------------------------------------------------------------+ -| 1.0B | January 15, 2019 | Sam Nelson | Updates: | -| | | Siluvaimani | | -| | | | - Some formatting changes and handling of references updated | -+---------------+----------------------+-----------------+--------------------------------------------------------------------------------------------------------------------------+ - - diff --git a/docs/pmic_lld_arch_diagram/Boot_Sequence.png b/docs/pmic_lld_arch_diagram/Boot_Sequence.png deleted file mode 100644 index 61d480472b05a7e969e466f69e4de3f0da1bf3cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41869 zcmcG$2UJsGn=KqcMMXdb1wlYXKt%+^(2EtMcMw8RX_62?dXI>Lg`yz6OAR3)C7}}# z0Vx3~AriVukQ$@~0wni@Z)U!4%|CP3{P(WwTCRkgob&eQ-Ot|p%^O2~O^##y$3P$u zht`98#vl-DI`CiM$YJ1<3v8+7z{>$IW6e9D(%y4(z#j*lZ|mI#fy!gqcOM@D{yysQ zz|so@IwQ*be?ZIl(h3Nadr|A&ZBu{S#c}pvQ|B-S!<{t10(Y4QmuF|du@h&Ie_6P( z%l!HC<_MhV+Oe*Ke(0j?&u1)$7^&}Ydt+FoiDAwz0_I_pa?0>DiUug_V{H&I_XV8aZ0SVYXihO zFi=NO^F8mxozu*B&yDU+9b~@YIT*&xd^J3AP@nmF>-GtS1I#yvZvP*DA$@~Xf%^_q z-?a<;v0oZUnqPa9Iv(%6U_TF*3PD3ynI-7nyNP6W-M`d9RI3%ee@z-%H2r^DKcl#t zW3%kzt zlyEk#;!mHxzz;NkQ(0+dt@|CPGj;|P)dREJv8t8}j`y+p_~MYhfEzdF3X}%pH#r2Mkfh;Xf)u(Dn=R&_XY6_WB zS~UZbK+Tu=2Aj8cJL72+eO$$;S$W#rIJG#45<2cfRh_4|jnhV?sKpDsJKl&%k>#hL zZ|+3Z$n{*iUGw_QT~dS2<{a-%&(81Jpa#FrQdQhQY$zS(cM0^H+M$^>#1;C?P&tTB zY|vcpcUw#Ojo4gVn-Eb4XK975uZ0BuL>7+sgPwojA8ZcTO>y?_UF(}yr6ia6G4OT^ z8SE3qsL2gE!nFn~NivaB3ZTK z`!x%j4LL#mOJg5E?=yJz6SE?x|>FTp9J`ug&*=y5!&bqB9q(ui}?x8e2EGM(u@KdO24-4t)Iypvg#wdvPl*b4Y-+B*3_B_` z%19pbJ0X@B7cb5nj6d?!WuhN$9Lb>R7m`M+k$dXcc|XREfM}MuM+{~Rw`Q4j^4iY! z1v9dm4iCBV*7DBzPuNyB-sg`6fFU)1b92LWu3ud(Zq&-h!fV}Mvg~EJ&+Fq*ah+~$L)pdak;IpQJyPZVP=xWu+OAD< za*xE(ntmq>P)fM25n%J4sDHZ@{;H^7`!2HfUqBrNr4` zgg(M+WAe||Gu!1~HX}cyLm#>x9eO%ET-3hH{lOzlHq<#>g55)SbC)Z}@vU2>)OO&j zrKa&TQ=*&tkvcfc$y9Jt_yuO}l2HG3&V5B z!o{MvOTACb?df!s>IGaO+}b9(^qQkCy*HBQ2IcCK&KBh=<=togS571j-D6~2p>w8U zDUOb+o@d{b?VMFB>_gDKXp0+Jghj>5jWMsjT2>>EZF+AShUVYXATeL%Qq7Skc98V5 znHG~Gnj4W#kv@!Yt~oBQU84{#K|*e<(BM(q zW$s%kcPjBxb6oM}`B&jb8V8$(#v{95ois^}+>XpwsZL4fC?e0;>A_jke|6}ruk?%i z{K?Vm3Htr|RAe9_=y!5VGPTQONSg;Yk|0I`7j=i$kj5Q{p*)t!0U}ZO$$+((8^Ru7 zWrqnXGV9|nJ6+wVwiUJA{=g?+f|m2V7vKDv57{!>%b~{BQNq*&=R@vssjiC)DsR3V zF_6zH|H;VcTYJ^l^PW269lL$&$o?C=eIuYzO^7(Ah0dP)@tW~Dqnb9B~Xt`aw-{rs>%NZl? z$Bo0>WarOWUJcZDM+;GUHE6h5S*^aG$!AAi>2hH2NcWsD%}`ysvqzzD!59=FY2j1C z!!50dA;ttXdzrEmpXtB(vLFM|q|DE)`GCN_q<+xmZGCD_m*Ka`gd4KO(VN2TvD=X? z!Be@hVuwBZ-*x*iST)yC;gLQoO=^47IUVb$$+5y6y+2iU4mRswcnes=r`uNp)ehfPE3 zl^V{le~@TYr8~bbk@}MV<3*Ur%#{GUxI?{J)i({gOJ5g{_r>iUvU*4mdsqN5e<=4n zRr;J2jMe3H1aGoJ`%RBbd)qO@-_-8)pYQsJ-QBh&NhyxxZre|mNe!m5cp6N?HiunD zXS_f8!JP^9gR1j&1iHw39Qg~Z!n265BR4o7Rhk{Iwi>trqgzXb<^;qxtiP)J+NfhI zgX)1GURjbGr=`X|T-LvU6aCtB9bR#p@)2`1_Z#8CkJN*xf{O{BHnMb6bY}y!Ol;<( zu&2zjUj51)Gi%>BUA78$E60Mq?x?I*Bn6I^A(paW^XqfVPkC$&>K61;cjA=R{4luS zo!!vslr!wu2pP(TW-}wswFpny`S`;bv4ML~-Dm6wGi+ReO(>%pl_12r?!`Xjt3zUM zWjNBMYX1Z`{xvK6K00f0I8i=zMsI?)D`ATy+R%*sZnle4J<(v{%X=(Y)B~j^9MRY_ z7o6?hFBHyzqn}NhM)3aNt$>BH@olOask-Y=sXj@no%5LxY3thw8lT9H*rW^dMXvg( znSP)_p<7>Idj$c(NN}x9XeayWOq-Mbkw4l(h03#Zu5OTtFV|Oj?S98-T-Zj;%G#^u z1%#mBs3KEVQqJE=E-+Np0mfmX6Zt7T;+_So3&dgj(B46qG23k2*%WzwC+SP|HK{!T z8*ZauUbz;pLy{8G2coyLZzoR~3on_9F=E zWA@E`s!fYh-^U)^oxp@IxIMpQUo*|m#~UZ&O&#~E$LucG&Sw5TZDBo)mA)Vd)k}?a z^;P&@B6`MeCw^ROji#H5xE9ywgsMi1eV$x`&0_^JmkYv5e|3)wtMGCYds1ZM)pthv z#?G{3{CjrlA%o<`lW}C$f{~b%>f26sE0n!Qh*=ZL$Mv5R;JppRq{A|0Ib}_4E$bwA zTZLnHT>sM{c+NwPO+U5D$p-nc$&vL*!kFLdQGH>`+qFg*&5IJ%92XM2N$*jk+I9x; zIyRzS?0Bkc{;e(eW8**ls1sK{o-QJcZ49D9d(#!&P&fd5!#d+c zNtMpA5(l17r-5OKP1|_);^N{iCOW=m*JK^5POq_oKx~+3JL;^gHvotAGL#4j$NQL% z{G=tx#QfRkj{s>NkPf{#@4>=+bL>U)QReIA*DpBu*IR|@hLjLWkeP{nWG3754=(QR z7LJbj*XtK=Sg?Rv*K&pT9?WJ2l}@ZCR@a;Y@imRQ<7{w1MNF-%=Cvc7D>(U0zZ*fz znrKioq`H?`wUDh=Ve^~(1jr=KeE%5~2Awi78^<9a$9#gC^3RP{F7=+vnAWdVmqBk+ z_s%>6Hg+qlYYMZW<-(`@7JuZhvT^Qzx#0fUv$X$I@gpqa%m)1TE&G4^g*RcUJ0PU{aX1fv(c*}9{RrZzH@)OuMbL2ZbjJcE>_ZtjwUhSZ-v*WfkN`#vG|IvmwoTD zLapSn)eA^=o zDFLzGJ4fMY%f#BwA(-bkgi(09qW2c8)tl`=COwEUro z5%Q1A=U8Sht^aP1rtOy7yDhATEdMbQtpBS~y`MU(vCKNGk5i!a5J8R%rxeZ696Od6$*}!yITq$sQM>h|acX;Zy!}tW2aa+wiCM(^J5%Ydw%gkH;N8DQ zjBrL}Vb*3T2lL7mpd-oYUf!;~=Nen#F%jENiqASl2j1EK=4D=f4s_hh>-2A$RjZ%g zjSbK3{MnvG4O#E!sV{)O=wF=)>{gupBQ;K*OSVsZaKpuTR&#HEd3peshYrb)WkYmy z40hC?BXCtJ@%m)6xKb8Kq zV8T283p+2guZ?%Xtkm`Lb#Ql|w$28&8fU}nIzIo8QR4(UU4CyE;?w3soXf228|Lj* z)VyGk*(d6>ofLO!Z}=Q!gRzIG`<&Z4$$T;>;Do}3klkNOJM^86zp){@RBQhn&X0-E zZlG=bFS{{LRPfOuZqdCh#xD`C9uPW0;H$0`CE0mX!}biK;bi%;3QkLJv0jyGB#ea`m}K9 zA^4W0b7_vc=J)1~-$S1YvT_XI?^d&9KkhI)oEvD_p&=&xD@GpKhCoD$NyK7X$bx^7 z+1o@^K=sID7KggAVU6X{Y;5c1aqdMY0&;+0?kf*2>XM7juqd0r@*|OuPR!$=sq+zA z=MJz6+uwCe2qXpWkxVMf3i=TfO=t;I`B9a4s+TwFMqMZSx4X5%K*`c4PXZ0(|B{m0 z5Ethu_1x#$b=e^6Kahu#_4z4AXqULaQ?-~7AhB97^e(U*AJ0GBW~$mZ$=%fcvVQaB zjg612%8j!M1ewk4xMeF}y9Wt$tC-L8@f&1BB+ZMt;<&lOxLK7wZqddmW9{GbcJxW9 z>T3uz(Sdl&SEGCI_UGb$*HNcZY`f><$S#`z-}u49X0@wvmOk^Qv8Qa8W|7f<6g`jo z_bijW1GKaf0`Az2{N(gOU2T+l_)hVky?3^HTx@A{RxZk-$+&LuM)l({1a2KuRvUf0 zCkkqxW-2ccG(=o%3GVrs`jzyVoV0PZLiPLaDmlWC9HxfUm%~r?Iyj>)R!a7``^c{P z34Jy;+q* z5;>=}8|LQKvNKIPd1Z)kb*FD#JT`(R&fc#q24}&F88)-2z2?ZA zPKw3cp)VoGf})xEhc*3#ClO|dA~V%eb*BJR01ximPldg@8VS~3GRzctI%WUGisZzS z7gTWC%KnRMA+blkVVINWBUB0ESdkwzd|`|Ws6g^-?Ko`6pfZGY7lqEB0L&(}-KlM24A6le-{OH})N)P?4a5ahd?pPz4q3vEo4gpmK8 zz!OyV{qtNf4FuA7+8%XQ$@BN?0{sjoj`+NL)5xgxjq5g45x!KgRIgY<(gP|0iWdyy z9$A!^lY4l0$1`+JCv@bU-6E6220ijPsK4&Fgb9^&w#!=oVL#-?43B&#S;T2N1kYuX z=(rCr1}F(A>t*wsU02Cj_fY#Fd6Rl3`gwHkNP6zn@6LE`_mms=#mj0n#FMV|ck(uz zXUO~tX0ATNhq~`>9K*VfeBwfEwYstYYT?Cg-A7y34#0DgWh9S1A8Z5Aiw5i9r>NuL z^xVACQvE))oon3+57lV>v32VEZ1k&pQ~$RV@Be_KJ}2_mNA#*CuOFm$TJFAf>S>EC z(wT&!fNF_qUwKsCCA$<=wacYWUg@fGH3$3FmNQJq&!|V#Eara%6aUVPxf`Vg(1KUh zEpU_JL$WoZ6<{i~mZ-J2OQ%?_jIH08l4bS>pU%PFPlg5GU6JA+-e`rq5h4r?7ftu- z-l}wj7MuTov$g%y5{-9L94gNA@O{|Rn0Ojj*&<<3{+Xo!()Q$w?BfNBH_H1C4!$C!e0D0WEYOfx4kE4}xTlh7&UlPRs7LPo0fr*!Nd0pLtnk zBBdasN%GkoX5ZL9B1zh#>2lTBD%WR`aaxd8KL6fywIthz=OQ9Jre=Nc_6CAy_N)xE zU~&Snjy8n|9H0|{Ky9y^6%$kI218EDhH#ne@@tHa4QU$s;i<|}cDH8hVXDm%pR zUkqx1=>3JNQbmXSx=6;j!~F;iT%V)I`K(9kgE`-pTT@ImvlW-$<57LqtqT_Xf78a8 zYxXkqVDH5ztT~*%0ekX;kH5=dz!zkMj^x~(=8!fOF#ZM)a^*JjDT2Y8$R)ndGsjMP z*vLWz{7n|-LJQ9Ne$IJJR0`C4jjvp1j|t`5q`^riUA;6hK6uwXr*>xT-<}PtOzt_3 z^t6k7^Rh+y>0SFfHf$1RszaggB1fw(l8`^<$NH_{UIcx@eSy{Ww&SQeexWm%_^eH{p|L^n41s+p8%~g{}rZ659t5nwZ6siSHU;YMnm*nxsP&A8kmj6 ziM+ba9I7J|_IQv_D7<@nG(_x#lY9mS{7x16Bgq7kB7!RWU7}>xzQ$Ezui0wW`>pJX z@AGW8Lpv$7kn6JeM{uuEH#1V$t1+3Ger+G|a1lIb2GMya4_~~#*F`A*Oyn?j*ruAS zII~lWHVh+$A23%a4<;^eiBFy-h`LNjSM(Y)N9<53#5hr%D(5~SiyP12BNg|R{g#Kw z_%xfNZ%2yFP^LykISCRLb*FeL2L_DMb~xMaL`g5ESks*(MT`+t_MU1!z)a!f?c0wF zDtg{CDb)87ZIyi(np*U~5wFBS%Eqo9r9IQ-gE@I*OjYjJm`88pFMKvB-0FKuX;Dc9 zD%~QL2q{@eYt#GVl{!hrA8c;NSgz=&7y^8cyv7Wj(&Z-DjKE=m- zt6f;0UQ)$BaEj5vMU?B|ks%YoX>JobKE-Z{XrCVBvJod6<9KY<3=!8I& zWQ)O-3sp!E7zsQL^p-8m%laJ(B~vi(9qnL^ubj^VSo9IMx-@>%(?`NH`Z-^5isGBx z+W1krd{y97CmV188GG)xRrCPANv6tBajGw`5d78#xwDG;ptu^X!6CT~yRj6U&EZ#Y z@fuLT^Ebd!$rRKtDwNB6Ke~?93%351N{lEgfBgBb4U!(G2eU3Z4nuN;7aj`^w?&bx z+mbEO56~7r3D&-sWLq%TOy|me%gW}ZhP-Kb%mX~I`76*-eY%$yy-}HCaPIjRAIb_Y z3hJ@Re}RpVv2$XW>BAPx{qWI^iykq~*u?MXK+oz%tFEZt@T1jYqMS}`o%F-C=C<`| zW&}QyYB&^@IeA>v5nZxw* z5cT{YEM-Qnq2V?#!w@J;@jgc(`gVq3*KuFw@I3l*!6OFt*bKm&5~?KF!;MI*{HL|V zJOTZUO$XRTZ+M4wC(rbn9%bP{-{@RlW6JvBoz9d< zujjB=#7*@{b#Wg_zs7*gU`9iU7iYCgYm>R88Ur zqQaShq4~#okC?dOVROAKwU9fK9J3jP3-~zqNq<|nx;ZgwAybskey<%D0TE98uSubn znzdI_4>V)7@%T~@U(kO8wwl9OnQE!~e}%UGK?D7tv}8XK{SPAP|H%_Bj^@VJC8*G7 zWBX|DcueyfSH=q00Ec`{^m71j#s+_d1APQ)o;s5L&36g2%{rUZbO~)WBgg!d2@V~C z2GjCzyWNZ5U10K3ji$w=zWdaGv;qJTyU{aM3;zZg#r^{_E{#jPy7OsmvwuKfmZ z_|!oY+K@@$a!KX-SEl0q(|;VGhM3V;@_!tCHMd6mnLzoZf@T;;Iy08rkwRlH2jXai zG9Z@Uo;oKE%vXKhFz)83!1OvE=Eal8GW*YXe?}9^pce&$nV5f1VEfd0%RvT<3a!?izV+8w1PFVvGqM0fE|Cf!utmXJ?$U?ynb} z8N7k=frT_C(*I}{(^`esyEKK2X2Q9ke;K>6YSfXw`Oil`#hROIGxjEz?*Tx)2Wazi z*#&^fSOxer=W2Iilyhc3TUMa9V8NDcrOMO9$&?v3CnSO%fDc@hL622xBCKl+#nra8 zOn|uspaX7TpRTI<6J~~5C&!C#C{}Ja*ad3CooW~Vc3>6~A?sV8?uT9gfQmNYAZbo1 zho{9@`(+fz2%5x7@E3RBSFs&JgEs2BIr=4*zW{dS`KP-8?vGOCK9fcJ9%;I>^@|oR z!T;tJSxFPO37*qb_Y?(IcQVt4V!!;g&WGgr^JVBytY+7+w=L|>LhkzPK~VPPlM3&w z{=r9Brux;7&zp>1gq$%NeQfc29Ukr9p@H43J>`Y*VYTTP8BfQk`@1E!!rvZ@(UDsC zx%~X&&{}??(;By9UZ!*N>>oc>P}{so7VRTMAT?foJa3~<>~;A)C@caHhS%gVb}dg!5Y2|mu9A)8}e}W{TwwpGL^u}C#<$NXRy#N z;6B9kj)bhGO?u}Su7nFeWz^2jt5qxVy9Mn&Q)OgOY9xVyy#~xzd{2=aHs$^BfYX!w zGSA2NND~PY!_(J&E`R#wS`FX4w3*^j{n^T~^sBA2UcB{>1rx}-qXBS%(;0J=M8zAV zfvflB9SPc;*GiyXjhQbQJRuPIq8ubd@ZF%_M=}9btyf$R_PD>cSl(XRtom~v8g-@O zJDlZm-~zFX=$K?v5JYLT0Kky2ivNU9Qj_0e@+hC6dH_8@uzpRS$xpt$uQgz<8r}TA zTm8Km%9wyPCyN_au9A-vwndS&fYNUjdRES&RbsWKZ|=`%mn_Q#xQE|~RBC8`nl@Pa zT?4K7u$1F;qwSwc$C-Zp&X>)stY*>c1+mpD9?B?5 z8cs-_T`+eDG9y2%XY@ih%v}w)Tflo+K0MYzOBf(p*?xkR*0v{PCpXTUl^Nf?8%|Zb z{kLv!bF?wFw?inXXY{(HB%#}O^G3*OeAW<~+RA~lYcp@CO%@VZ_~4mpRsK6pBM|cf z_Mo6Wmh;V_CoAkbI0Y3vn)kgr$uf5}W6t#tAx&&LSB@uUiCtxxy{xbnCX1X`hWl4e z8;dQX-&-m1)PcxKX z{Q6X>m&$5>9;*hIkNb|oJDGh2k1kkt=-EBl_R~#PR7gi#rm|Xo#A;!4v;z2i)eu(E zKI+`-W<2on7Ud&-*Q;@FLJ{0KeAkWm$TQYJ-9US))^jFE4PrhD?X6G;h#P>9W6WN8 z4l8Sv3-}c+4+Q@Dch~DK2dv@c>m_+m0&X=I0_fYbqf*lGWZ@_7mUZ4P1HsLHnhq*| z=~QubhnUKanBi6JN)xEG160;i3Ld?l%+{)3~ufG;u6!^%2OU67az2YQvnTY-jFza9XzCAs`}BX5%jjJ&S$~<=hveY$Yfoe5(P3=hS*!UA-p<%^6YG1 zO0ME;#w=E&1BG7=zW)jb#Fn>*!@L?4#|lpO>$jO}%Cdq2bU|piVa9m%`RcR9g5Nt1 zekpO$_(^hzK_fqxV|4ooGCmp>2Q}Vf@J~=f-=!MJytbq0hd~)~wMNkHGi84@(0KkC zU%$$(T;m0Bt;IEyr@n;&n-Pm)(V!@HlsS5!KUZ^uPQ@`k-j+odYg5wY@bIV@oD5N- zkp|sgxQD{L&OJTCMy^OVE9@Fm%Miku8@)x=O{xhTiJvz&BP)rT&1+F>Z;}ZTXUj~- zONQv41bnY-^Y`apte~2G9EH$(t;K#O06FJ!osiL^E^Xw0yJy!u`l7`t`LMs_2m!b6 zOy;O1+(}!ZBq{m%mJ<-)CY&c^XrnkEK*7jF8j2`!(3)o*TYq&ld;!){=c2n8o3TqXGH}^t_z!k7i{S%eGi1`pY4F%`Yq@FerX+o>5b{w z$bWk*g!1X#x|oGZvRei^123-y>@pH(MI%Rf&OTBq+NvAMhPH^F;u{Y-?>j^}1+F)0 zH~>o4{l}iI=WaabjzIa@`elTgnisI<=hKM53I;n7?^HIlDnB5>yRuT0%=$uif6eca z>P@NK0yFIoO{y0k1|jo-*bT`@4d(+y4*<}B-nJH-rS^}ax+yhxQBP#XYy8XILS~gW zI*G|4h>&P99mgnKW2$Tbi+DAN_=Hd;{&A&moxH6_RJwlbVDqB@b9}ztLNaNVsMbzU zLFs2e4GADjdTm!})bS<77Y$ZJLyc^q1ykFW7*va5LZm0a{q&v(x;DF}Crb*5no2md z9xtG!rqb0+%=aFbZKJi!CoTYPiy=#Z#c=xp;$1dcxBw(vfM$RkV|Nt0RnQHGJH*Pl zZirY0XQaV?44bywLywFWls_g2L(QU}%d75RGql8%nKjzh)-E@3gvw4_80P}u&^tiny&M{CmXfMc`B77X&?s4aqq3VT zS z0d%J=er^vN4i|s)(HNMC4Dsa;tLoG?Yd=WjC$iApz1jmHCiw(<{xfM=c?9+)$8->T zv;J^Jqy7x?JfEBNsNB~P{_fXGPPMD)Vuc)!Eo_ZT>wJ;oGB1ndKFxk}Ok1q8ZxCxx z4gGXw1tt0nkZ zb03q!c{iURYy8j8g-rT>E3GMjkkXW*F**FYf{oMD*Ik?F5!m6dfiE$7N8P{l@c(Hdwa(O`x^c#A?w{;J0CIT8OlA?hIXa+!DPkhD&h= z+;Az*l2+lJh5*Nd z^--||zeXLaN{ztLQR@TJ!T&Rsh(`+2y8Szzsh3B|0|5HgU*>X^Ec z0zk&raDlmqiR*Ji%&Rf`SKo;NGDs8*X!tSX+@VabUd2*}CpAApz6A}1PNhAvrPdK; zw3ifGE@R@yX4RzxmBreg0LieL2J(5X6U*2Z-jS*pl_vKkU9azfD=@aR+yH>cqs)vD z{=2`$_fuDurd>yuQMqd7o(M=AAVU>%bX@3G>!MZfc>#?j8K5JqnMRGb9UrfRX7^Zh z1G(!gK7L}?$pVPv|G35aaPdr@FE{Apv4kw8BB$a+5(8Wbn4eZPQ6 zV~Qy4qRbj>r3aM?OE2xF?Q9wW5=gTG(;d$vK3d|-2%Vb<+P^n_|K51?OfV%VpV$zw ze>XBNZ+bY=kuuSkD(f6GI`7V)?^#tiyxCkF`K2wr96Zeq?6t;Tl@g$KTNfAPaG711 zV|QZhso$~)da&yH_q$B(1b_!Hy>iw|(M+kL*tj|l)>`Vov*c#}rq@{^g(}Vg>Yo^Jcdb%h9n5bA+|=q^%9j=Nf` zYHTvK3*=5c#U_Q8(creB?+>O98a5nB7r848oEY#3boIFTSeBU>Et;X`O`EQ}`K|+o zTBee!S3BZYWCo5F81ns*>F}cHXqx9vvFryPkaQR`yKA0POgD6fqY`^71sva&#%M*` zh#9ADz_om?Z7wK*W%INVc;!M(8T7NAFT`Z&dBDXlb_y6Rkb)$juvC+iAEj`{Vv%sI zHxL#*82o_`3LqGnp&g{JV|m%eeNHE`vnF*=556>jPPTA6c=rmx$T0`;`JjEPJ%E;$ zumS*S=kh+ac!z^NSnYGSAi~QDa}mQq`i$utjhdY25;_PF(4#;6C>A{j{1Y~| z)U#%qDg_arB_%8}tOyIy_XLIqu>2ObpH5rl4wLjn8*Ybp@xWaGAMr#J$7ys5$pF;+ za$l&rd&)Kq$}jNH*d)CN)%P*K@SaS$=QGW^2K#3}1nw102v~pnd>h;-RZL^ieFIp! zE14yO{>_{ueS4Qi#0>+WEriKc+iiDQcmp_j9>^6_Nu#41m05ebAt9j%EnrR`1J=&- zXT>O#PS$ph^Lk=+!~MZR0}D7DO<$U%>#5WK#%`od?rH!|v8>Pyl%31Y=F-G7cmGy_ z_0=TYm~wAKKht6)aR6k<2h18!`-c#~aTA}ln`is?t;L@#VD&a;pMBT1{!JwIPiD|^ zzo6e(j$WGF923_ul|ZTISPUlM!g?5+&^_a3H0nh&D%=u!)E4pCxu?Gx99OF!*omMcH)n0dL!>AHFJ{S#1c9{J-SDjkX!RQxJ)RoVNhD0j^GfuPyIz|tAL|u$sJL@ zjAMjKU1|cz9dFHap&&dyO@3jjCA@Cx1-p0KX$$|BwH7vEZ_VRwe-INh#c6_Ddww|F z-j}PuQeZ|>npga)U;c~chDuQ9b)KY>p>;eL6htZJ2)<`Z`*T*ZVszF%dkne+tzq1(| zJ6WlPvf?EyATds0(VvgKVJ1~#WblQ+Ar@$Aa?;rUwr&R7USMAnkhrA_YWGzqOXeBk znyt{#YL{Mf;-)^~T1l@W?pjc0``~X?dvw5=%4I^$Mt#=wD`Omam>vu*>4K6L@FHiE zEj+L7_5u7Ev3h`W*Nf6fg#yQG+zh5|y!-Fdc4yTo8{1WQUpTkz&bdOl0d;rkPTJ`^ z2SD6Mfn_F!)+gY*mJKWje|*n6=4e|~I=8;qEvQ^89t2xr<)pEXva?UDvcQVTT@j7J z9p(`litQL8Qe|b$A8*gb{!Yxpyv_`dvbZs_K&U7v^HS0a)@+Uuf~D1l{<$kWz}P`B z`WCzb#CF^4c3;VZ`kB7Lve+UU;U6oEhDzE%%wLKO=+Pn&Pah2w8!hCR+9@IC+&t^A z30!X^7i}_(^_<~)=CP+D0spQ=u3;0oN`EBbBwh6V~?q)$~ZAzy}on4rTAv z-&$o?7EpG3(CR{kA9E&6)J94`*cO}mR+t1{=8L*Jpa?P1D!2F8K)TjIz-xZ)DyxM_`@>s;PPIUHX>gy4 z_|6zW2@c&lAX5@3FR5Xk)$J|&aI^|zf!-;;5wiD16{|e~QO=o4D{3%WU z0%7){ZF?rbL`%7n<}}+)epK0RRwNPTrf4uPJxFhK*Ky>o_7q8hM+Ex_G_(j?B> zl>)@n9+s?));brZNBk?ai90Ys}gG+jv?#) znx|tsHZ}o&At2E(40pkik=(SU{4(lcRqg0yc2M&zW}QALj}>t2SYd9SQ2DuFY-0QI za$KtYAVC^CLeh1&y9bZd+g^4`&{WQEzls}{DU4V%B|SX2*6egSN3!l=E@R&Q=_zswKFx+-VB*aP{y{9tDMqIpT9 ze%dO*p|`~Rp5S~%4)ypIDJehL0KiJ3Edc8ESY&Hphw{Xg$rbSNW!6$c3&V?~jNe*N_gwAB5xp z0;M6dV^8XwTQqgNEbE9HFLi;;%fHDuOW+qcOwm0Q!;i8371;%(oVt7}K2rjVRv#qx zb|QGcHrSz8thk*9TEKaRXvk6_GjM39w=}z?4cP|&ZJTIt1B1b~KX(7dB1&RnI2!@S zx3A`DUghe|M9R3NSwm~W!-QjaZ&W1re2E^xKj}&xX?NtNZ$3;4W^AY5b38@8C3*N7 z7P8s*GM=xm~f6SVz){cs;nhn)}B~Iub27iGC;Nd3to84x_<*s+{(bFoS zyEQ~VuTdSz9lkbWdE@Yy6hLhY|ZxPiVRq3-M}rlyY*{6G#^o znF~kcBSe;fE9e?Fc3O9U@^Fdw3?q;GqJwEe*gAdaS{jL_2OclI2za;qo&u*%X+SLb z1Fx>C^7rzhFZ&2+nK!78sB33B!N3l7LiIYkz%#`(X+@h@WFcdj874R!`Z{fbK8B^ zZF~r3fm_p&jVGK(Lerw7qnVcXY8zcOYHi=#ay?}jFF(1cefSaV=HQ;w&d~6{d9WF; z@6cn=Eh8W$1!}m{sCFu?^P~?-itqE^ipoL zB{-z31Q-(tgg|QjB-#J~wx#PmuiKuGnnLP%6(p`+wVvCm4Bqx!`cZzDjq@DyNO7?5 z`)U!*nB(-BQPAOT1MbsIB6RSS?I@h?d=8&mQ*UWDuV(+)OWODCM@b0w>0p5#4Tz%4 z+8vo_N6dvK<;m^d8qTzTW6Kou9uv6Cy+O58_ST}|3(CwD3LQXK zPt0p~v?0#i7FfjvCOOU|_y@kwfO&y_Lcwdn z8F|b#s7~yiv1;&u`_0EdzW9pyln?a)XdW6KCU2mtFquG<4+Qjv@re)Hz;05In#%9K zY*6ny(O@YRNRDKt!;UIflwUX6)Hwri?t~JsH8F82=-1Z{b^5b$uRc{J|CQ|PjqAoX zh`o)#sW7&&i55Zi&@uK>W-7EX&4qZ#e&(8?fkEt<>(+mSJrr{E+e`)dTI7TEP*9Tc z&_)I`+*i)(j*q8Tiw)^3b6fKK?Gk~&U99oQUyG-TL^q&%jjOLyiH^i<(n4PE-!fJZ zpF0rpKv5z|HohtHo=erZJ$PBl(t<5jiMhZg(o?VjB^-I!vFpD2uF5CA&#E&50M{xV zeZ6Vx38uPwAzXMjn|PB79Be77FP1GMeZ?O(OIacM{zwQAIqr9vhL|Uenu~yac5-(~ zwPvjxZv!wnjZm|UF4o88CMP$<;^!Y;!$=l0EiHDiz;6eCv~$om@L=cD0;La;)^}95#TmM=7%@*V0w1i@t<1hQpLj9M4G=oAcZ=7FL)ECe8G10D43}y^wqQjU8rX~~ zn^k@$;UbPU!cy}x4`R|m(i0~X!i{{_w_MPY$+ zy7I~e4_DIYpQea6hS+FM2X4KGx05LEM9Wg(v8NO<>5e(3s`pWbZ*py?5He z_MOu$uSs^~bJafz8UStpnD9{*TN&hV!izw_pY-(ZR5-+!<8d*zpAN+>Q2<5fRwd>h zB+%+b2^XS}Kil5M%jqhsyWKLz3#tHTpj3!m$EP0iGEy3vOtHQftTID|4zGd4GJ%6@ z#@_eIHV*6X@kbLP3C9BPwydtvP5|2yK;c;nbz!nC;D?vi%VsO7I@H;lE#C2hAHSIt z%)bIdpK3Lx?cR>`CxV){Oya8S&c^(cl+6+>YTgtq#|QjtP;H)CjQn)nOnl)qHp~rE z1ssH32zOv5MZC2o#&$;FJVnh%`89)j55MB{xvVrORc3+;TndnT6cIE8rFL4on@3)3 z`Q@||?)L*`0d614s4GhwK0k@snUq~|&Cw%=u9p4Etkq5l%FCQQ{C#!lB;#!5vNM89 z!vbLPi03@^MX2qbEOk5Jl@x*bqdaOlhPc6NpWw(Lr#d511d3)(~ ze2eoUW7_lPNrgyq)6TLNjJvxBM~7`-Fmts@jXepv=aQ^FwVoaBl@+7z$p-?l=D(GS zUp<>!%Q6sCUpreJmh;CgZjVJAh6F6m6dkm9d}HUZm8ku*`iYDvq}WK{--8C~OV|i^rX>jY5ez;_z|ERd-i{ZaJ>$My zqc^YaZ+Pd8Z?)1ntd`|GY2s&UEr$uNMJ*jT^|4ECSf)*+2eCeq<^mPMZB;2JLCJuV zs`>I?ay%-!NJ-&yg#4s+c-`17)r`^l-y8wu^%AO2+YKGLN~h)RIXE|EuT4A>7Mwq3 zi<-Q7z2$()3%(xaiHN&^^F`x+@1+?Rz!ccY?wo@ee+!TSV=;??&JWO-f+EdGw9R#>kk+JtqqEDKhFO$Oy=o{x1jLDdY-3G8(Sm+(d&`w4n$893GY8v zX48CR0}1b6Dc~$ONjQ!uKB;_Pi{9@B{E9@wNtepRsj91hMA|92w$*2Qs=tR!{{oYa5{~?;bca4 zPv4y4n4`99t$iz*X)R`Jis49Ox`zuX1j$!NGx#n-x)nnL3laxIkNPg48zKR2GV)0J zA1Sl$?a@hXF0}_s1>$DiNhZ0ogmo|~z=ocx0@0Zh#%Ue37&b76=h(e_$_g>d9ayu? zq|r~_ZwO)JAuLVv4|6=$HxOSWA0Gc0O4h!AMq9A{#>pyoi^wYJCz}e9++KYUC&_-GTrkQvW z-cE>l?v5`BFd_C0d#bHPt#_zv3o~jY(i^_O^s*so#bxYQOc%^m!D8>XWv(`yC+|T; zIek-`Ylg~ZWW!vekNSpJZz`Zb=nz^0iu5Kep>y7eYn|WP zYp=EUzW3Za#>p7|gDEpJbH49WzTeOD$_r!0mjOr4C$F^@tfMWK@Q0!uL`S12=Yn0s zy!S#UoV~$^I9@g4EA>D{1?{)z4Z`vEsEa9~+w9&e{`)!XzVon+(Yxm>KZH)a<}K*@ zcwKvx@ucn6>f~^-`Aa%hiE&^c+O%qqO#|`14U$dG_xNGJ4+M^2QM@aTca0qR?5U}* ze<-L#H6B-tJI}bc_;pU3yd(FFoqq{!NICvL4%ei@^=uvE9>2pmjr8zhzf zVPBwHi^zhtErTY(eG`|abB^{;suwXMA8wUN^E}YBy9C;2x^bB!?_=1XCJ+-j5A5)2c@r;P z4o2t6*D?JT$=G7jy%_Ss$z<`p-Nt$Eos#7r#?rr8D@XRXw*2-Rp_=aZ1gE+o_~VNJ zp7b4G?E&OP(rb^edF^hxlm{yUMXJH-Y8$@?j7&fX$f+K$&gP`J!@h_^y8f9jR5VCP zf8+G^QDObhq<%txTw|d7YP`NvcxljlEW+yASz8s28)wXvolx!T!DVU>jZLwdcf&4Z z>3ylFUmWv#{m^b?UT0~eaymc8qJ-3g2vPh=z^77n0(%20b?Np2S zu3?1;?-B3a6g&*sH$ia=2#XtjDMSuGG)w4P8m-h$5O;FF#%%=zJz96~HVMS{{ZviA zzt}a%iT)4OITkg$mQ!kWN8VDz_k}}x81VSdhIgP-7SLNLyEv=hdbF*oVgz@i6p~r1 zf(DS8YCkYi^r$O;G+4+jbN_{F;4TFJ)o|z5`0>{YMIi`}(g%!pcZa*~!mG?d0|z$J z$C`V3afHQ1G;@EQi-190-}qW`F1$#6^aVa*iVhMvKC3RgI(~3+K9S5@)gbbY>SR_hl`jo^FwUii}O5g z5^2f9EZ?!cLoqWCv7hat;>Kq?V`g!mvOCmfb?($=k9I^co9Y)-4dMN09YE*qH`$su zq|wd+hu{2>%BxgJ^krUr%RbM!_*p$vwq1SYV*9%x?Ti8Y-RAPNlMFZbU<5+i%?l^h z#y=U=Dh(4X3-G{r%2{J#z=_QlKO)rYAnxnfy6~?3p%OsgXgLH*KZW%B?mUNGzXpNR z5`ltIy)O~4zTg^G^rhfYq^|bq(N?ZcbDZ*Lo0k^^ANMDx{5~j@J!evy@I6{tx>i{G z>2miebv78J1ZnAyg%0;N=t*5@R+N~TT;>W<*?uc&M{l)zdHI))>fT*D-# z)9`5VY#V3avq1QpYmrnP?^|#e?nN2LtaBvAr3|b{?WiM6NFcSUK{a06k&X6IwXi=Z z4<&U_u|^thhkaO3(opA!^w#jwLUa)QBeDxpmI)xjSqBQ^@U7Ioo{UG4eZ~3TEH4J8yH|HAKM(60LCmwSHl+hm5=CI?AnVeHEvBq2 z+?~vs>~_jeqlS&HaC69r)0an~OHSnKK_5Sc6UeOp;em6cTUfJWXqRnWGztrw3Q9!D ze#`qoGjPYkj=FuVLda>wj_ql(;8^DeDLG%?`jB)lV>44d+UA-2Gj7(nB!*+ zzfi2D*<~D{>XRDA`UM699-%w?Sz{4r`RGNo?KMHESh~dl9gBce$EfB)^gWH*AAPqz*jv%~aoR_zC8V=x@3&3igumGh`r~aOzLyTz-8=3r z8#=adpP;}-M>ERqt@lbzCn6wh)d1U(ao0hTfi?WzrD_+6$Cop_IIyjIPi;@Qd&G(B zWO3-hZ5$%9rem<&+TV_U50O4*sv4|_bXeAm@o~x|6cX0JqAB?B$#aFC|HjVnzXi=& zVnsmKJ1S1XOf7fV$uA6kl`2wg(&jG$m<1$w;hNW|JPYvXD@nj&-z?kYu%`+mcad`-3&2hWAkkV!di zx>FLjiQAZLk#iEgJG%|G@&W@sqRbf=B=|ugYdNT;yl#Up$!);En>b`$>x&6NfbypI ztcvLze4_o$oy*(fl=8Xxg>}Oq%z}!G+rzjzcdKJLT1R^5KYERwzD}sVeD0QTO&60V zmxU?rn{NyGFY3e%AyTpFC^-Sa(sSM_`0h9>40Q7#k&~jBbNE-F99SG!tp;+c5Bf$f z!6Wg5jv&ucIRJ|lJ?kZ`ql*`b}M;VRAM zOBIJvP;mt>Jp6}^x1iuBJPap zbzMZ`IGt)%l$>PW-@A&Xe4n}16(h4;vsTmOnBi&kFCrdPF>ZNpa!;0HJjr}=AMa5@ zfU_Uee()NjS-(jgO^I9FDz>m6H;z8o6UDT@jQRy#M~o-`8%?!!_pAK;?mH;*p|PQt zJa&C??CY2Nb9%$eVn=>C2v{Ob9!-$2>zKVpUnMEgTSUYbt~Cjh>NHQW_BAM$Sxe2w zE|uP2;FPE?DZi5YBh+YsLRUZFgP4i8FX#qgW+7;@-j$V=T{=N_1!9T8<2=GqzU?%- zlLy9y#e4n6-y1$7BU->G-$8*W&Ao4U^hkHBZjK(`BCcE*80>=P(v$WGAb3greIl{x z^M$h+2e+8^xg$8=vAJ^)KD#%Bo$L7=EB#p@4b_v##tJg=k|wsfWaFHt(q_u{qgdjr zDB)UqjL7!4S{L5=@JVZG?$s1UXQvc{2w4e*PTK$W;h1bj(&eUv)rMrSFfCwbdqo+w z8hgdcz1v`f^wtM!h+`6bmTz#}Rs>UC3~_6jM%oSRMZb5P=qm5e*JMo@KOu1Bk=`Yx z&uZRbE8X=7Gp?~J&&%F2*ySH_AidZ>Mtg)TKrw@UnwzOsAxMDHfurN~>ywc69;m&d zqNBZ!$^0#U*jk(R$>2-LlS^b`-*yh?1Ee4(+Vvl-%yyt11RnnfgjcAc^#AQU+_~T5 zJpZM{W7z~7C)@(xDEB|`<1;9^<3n64dc zU*sRbz_(ns%KZ_%lHm69p1B0+GY@TPsh%<$AIlt*%KYnjPgMM%nDsxv!NESc5&-%s z-0ZzMDmat*mu(ke)m~eZJ*In6yx>bt908G?rV&tf*6l4W7^+{m1(yV2sy@`K{rSXR z5?-O&|I`uxV389%_bl|>XIkjQmI#%eSBdYUJuxzWeHdp&*&)B%xU8{3e=tsW9K?3eHRE7w+wBF+9}hI!KmRBK z4sxY&)+>M8LVzmMVrRiR>(1wtwVO;52P+&|h|Z{jdIH;tx3ov6yMR@3v=RYX(?MGh zpbUV@1|sb!hsY&*zSqhE!ygd zsX8>LGO-3S>Ec{$yWbgKS5IcD=sQG^J=Ncvb!{-1Oeg-{FEje#Kj#- z#G5YF)>s;kf5T(<+GL0Z3oCK+M0l8mF;@w?bMgMH_DFjB{&*$y>CNItrzOmenf2G{ zfj#}f@T6wG_vgkg12Q%Ier-(_lp2*Bvx0}&u~e6Q`2i$$gHM6?+RCd;3qLy#m_ml^ zCz8Y*qVpZy$4#c5>%IU=OENRXi_VO-a@UCWMXB?3ryhs^i@uuHmn4ta2E8l_VCL6D zMhok<%|z?mD?@*HbNTgP$=!o=|9D;N4m+kN6}&+F-+#QFHZWcXfy$yNw@1yP% zOSPiZO4%EdV$7L<05JhBU@@liyu@ewJd4(;QZ&Y(Rh5kP1v>7M?zX*pmZC6zj{Af$ z^LLSaG}adJWunG=ZS=4gsolwTBIU552Hgm;Hek_KdbBZH_s%b+b^q9Jro1D*HBDmW zw7ImlzgBLh-Kjq0a`@C3YQSJ|@-o|(B>I(0eK1rhfkmT$QZ)eHgiKWg5MHczET)L1 zu2_eiU{Qoag+j3>&p6-=Wc+egltq5eyM*q%bXZ%I-38zd!fwpxo%UwkLujpW&erA;RZTOvjug^C4IWq=BL=xlLozmM@ zg@R6bhV}?Q3?9o9!NXM(o&-S&CnqQWh{pxC9R_LE#l=;eU>Y44tuRjBscv`bNf*Hi zOb^ae0Nb4$Sm1ubQc(PuJ`^#5=7Rs(!H^>V(UT~_z?(j)DI$gb)7OE5f_R?KMLXuW za->?E{$hW+RapA`U|mivwY1Ql_>OUlSh<^aL1s7=sp81H(M#rEDX`)-KWJYoWq2820}-JnG}6($RM<&VCE`okr)ZuJU+%Kz6 zfFB_Eoq^|&VAOa7jha*Q?Vem**8D|N7Q(~_GM6=iY>j<$^WV0hDixrB{}+)9i@NFq z%+?Z69!&4Ww?(H&xIE9g$G9`u@I8`iZOQ!mjVrrLzuQ-{)t{m+(4moBtgI)vtLd$u zx+zW`bA#@byKh)J9^Rsz-h5&YX-dkTPCkH-)fwZAJ(3`qapCe5`FW#p(Y(F&9QnoY z<~Th=L*&Lh&i=1PD5yJ5WB^f*1HmAv_bVaX!MNb-T;`nhRDNUGFu3LFHq)5lMnPE+6w*3bD`J}fdlt8V$@b1=blALdjmx_8tDC`*Ka85?zsn@oD} zk-09>$Bx9=kDgYqJzG?*LW^Ye1U55ZJnx`N(+Kq~*c!q_%$nx~J{PbM^Cb9^@Fwt$ zt?87)vArb^NBV$nYswRIV)YgLt*hahi}XAnYvm=r8FctfP5yC|x5(Br8yfrAeO0br zw3ER9nmJv%s21;-P|Rni4MU3cMU!(rif~w5OQ?!7-_4`kwfCBg_V_e^+cHAMzpJe; zcQ}6FTl&2z?}8g{M%#vWTPZX~bbg`>eNnteG@0_=muRb8bnwnFrXh7<(*hd zg9}VQ1XXf)^hfB;3#?LW)kDeMN0NI}kp@(#Vvd2I!0Rb~-7%pG4IFtL==y=+9!F-e}r=%32d?lC=s?=CHId%=(P-}WlPd(w+C-c9n(r@#vWx)sLnus_!ATw13*QIfzJ zfHZz>H2ZU^CTl<7wu$i2xt=+_{!B`iRy_<*k(Gi%JsT`5B-_zR;1cwC3><+7#iA?y z*-E*zpL~LLj!&TypstrqRkTpe0LT4-NW>?6jP15v4*v;t$?>r-PM7Ulr!70MRoN59 zZ>Gw?TQp=s^aJqt|6}mRUuhZZHIO1nff4{`->SxRVun)buMzR&m;}eF?|XUBz0RHa zUpbdJ3jmCz3LTnd@r5Evh8UY{3h1?}H$aGnf!!A51zz~=jd`@gkdXfKXH%Uig`n7m zO_Iie3>3IP)PPf|7c{AisQzt}>d#nSvFD0NV&?)voMQo-$wVO1nL^;r;QiJ{B;_F);-)+zt5C@X}XN zc{A0KG!Me~Y_){!zp_ifvlC$XyD;+OF&mCAfav^bKe}422~Z#O2MgF8wJr1%?X^a} zxJXUYsQ_Sz?o>?X+;nC7=@oyDGx>{d3!>uOu77&oOyGU^{+_vmVo5{h_~)qw$Dw8B z+G{s;qeK#zKpJysh>E3gchWNUQN`OIb9=Wo*N^W@rG@PnDM0q62M>0yeL#;5oX93l z(&rN@-wdmM#THjf`l?lnEEC@>uDo}{zRo0CCfNs-@S5T#TT8sADU*wx?7ytgC`*0Ppc9rogK=!qF;8w2%iHj;OBP$(&9k;09jAPVK%IM7Ic<7H)O|Zf zpvGFYpS1;8xN|;(IskAVHC%nDefp_=PPD{eUOXntPXZ{j<2f1DmqZj6onxei&5`bV zTy2aV+|0RxYJ;iBCBGvB<^{d)+t(v+Q0s2h4b6SCIU1v6F*)^*~8F%J|+w|^;=Xm7o_eoJh^b|*pX2q@r{p={d}mbS=RrN zikca*so(N*$$4kKWoGFp$Q(5ebf^tiyP*_7y@}pSA?@V(0*8P#+^UV{%ge8mE_ab9 z%tpT`o#$D5`Qycz*(2fVjnsL5-`0ZCI81iV$nNi-y`YMp3n+=-8=k_*UHGh#btzG* zh2tZDMB+Wq1KIRzP$r2CfV;;Rx_64DV3#sLPtT!zF7wO4^NjAl?w$@840`2-W6&WwA7SpIkRc! zp6>D1D!4wS_<0>xqg1R@-*RLl4|UDdsom)2z3gpo?_(TZ(%aXoh0^1jdHDOX<9D~! z;M#i%c-ggebGCbbK&=Pcc`3XgebI5H1++kIxAH2`z;`Np5g0^9b`PA?W_rKh#~{*5 z4yFSI9!MT=p+vs#nfu76zmV(a%49XN*jGzP*Z z%@1X8ezj@OV%b%7#i#XZ|N8 zCp!tj>yY<_C>M(x7?^{6S_~R8X`sRPnKNLwgo0r;MbQLrMjK+O-94zP)aA3Zv~`E)W$e+~$aQQ;i&1k$?AT6|UsMC#<#}}KP(#}`S7xeO#k18I* zy8gqW50XglsP<#RN#cbM3_SNS(d*dFz#}#UKC;2^;)0w(nB5Y>BcLY#G#=loq zeI*2KhvJ1tVh|I}VT2QCV$fKN98s|R{H=#id&38(TCk>0OX7S$d%%73xVox$-uPA% zzu!YJ8_LJ%dO*6XL|R9-W8w9udoSmr7XCbs^SF9Lv08x*hUzRtHPGj^1+$WLk}{J_ zu8OYOhXNec6Y0wf=~kjSq#;QmW3LJYyHBh3Vzm=mqKPh|)$<=e2~THtfFR8Ju)6t( zlPTIMB3C?4M`#GuI&+errWqHNua5Hb0$K&d98ndp7SE&AUEa80}4h^kqI*_r1F7*odu%DtKUVrBLuOKl50H8fij>H8{~mOQU4~^PV@&!xg#}&U zg@%)@Kxp0sA5-_}5eUY)^I9nvisB5@PWXZsai4*{bz?AY__Xz2mbnX(u~fAi9{2Qu zqO7~fa07RlSP>^~``A&-#Wtx9I;CF)91n68qE3bh)BqoN_aTW4F|_6t{Q_)+xr95K zz|o!!(G@0)+|_J*65N{>LELrtLxCXbUx^X^p9b^)RaN>A5AW{{IZTe>AuMejWj=d`OnCZI2Ci_pp zZw3f_p_}SF2$LbX^M6nm{lkKF=C7L$N-_TLYA}IzMkL`%gv`$YvR`f$YVSXsiL&53 zjb?M-3EQk1-LnFOXrHhe+&9VW6yT^k$v*Z;n@#rY?6eUmO*9!*dzFuX?*yohq4(!w z>UXmkZ#+sZuU&+D&*kNSg<=;dC%N-1dLU0Xwv{f)4mi3sh)6e6UG>!VN~IE5aWnFW zVhRwQ0uOdYcBM|gZEy#u@>W_85(Rx7U|>SnD2VBx3rtlCvP^Li zF9Q-Levw?@>S45*R|TVd?Qi)SQ-;iTx$Vx4J)`Fq*%vv37&%fco>w57y@Yb+scHzIVeMPE87t>3BZ@`sr%Z{=m5bIk{-}7NleVyedM`q z=_q~WFdl_pw#ED&&Xi&tnV7Ik)&*=CZ*+>-D?M_>Cpnc%EHGa0Z!ZW$Dflq_=x>Y( zdf-8^rz1AIQm>+sw_LO|&36hC;OKme_0RoJmAHSq315J{@!DA|pO3RncDdFAnj|8K zDOFuPJ;3kH=;%;iHb#Iw4uCfpB3jV!5wXK`_3dR?q(uJh_qW+zceq+cqs}={<$1t# zLjO=W8d>h^=f^&RA0?>zgaKx>>~&F2f$bwg38<`5&G-H(Ek4;VsG>IfxM^j~X9mVg zk0(DSkj=O5vJ&t|<#A*l@^IoF;_n8oe<_AAQK|d~|LYaH#Gp&g>9GLuXxb01F-zIa z@gOPh^<3U40vPo;-Pzxo`ZY=4?e$-PazAQvHsdc! z8%-t>$y4b=ax52Zr9*St>qI)p{=y_JabD~1!#m0Hd732KdrtRZIDPQ$(Vp$QY+=_B z1+fe8{QCoCal$q8r^0!*iCHzw01xws&YW(<7mGL$xqA0D!X1XM7H{j?U)o|765H3#bhlW=jmIo_vz6O z;!&m&JQiv9>EXQSvA$cw@lE}1a}I`)cpCAGH5iy+p??p>&&tL8rX|bplGhP5kd0%&Z;<4-!cJq)O`j-Iwn@#&uF|USysW5Lf z)g@@_WCd?`3JOjf6l#$PLRZYa7ZSm0^pWR&Khv;jK1)`IjaMqMSOuGx?bB%3^oi3q z?ubrJd>gcA5qurg?4wv}6pVHaI~G{fVLL+yh6F@*n@XR9@~?HJy@hp3pZl^JzbhIJ z=czys}NIGTUDNkDBL|7Vqp34Qt`D`(w2;zSV(~BM_y19nXfQGBh@EGAb?)O36OTB4dOxZ(9ZvCdtCqP+}p+l2fvDr7e1Vi z+Qf;ibcYzUQ4GfuU!2*u+DA}4tx#cGjI;N;5-@x*PFT^#Ah*Z#dv|&M6@i#EDonn4 zPaWh%12rQs)RmdRff#GB%fg=m=Zu3*-52$u>66I{$9k}tcI>GS=?IaARJW}Ec07uXeELC1t@<%YSjc|OD3xt9QHGAIy>iQPPy7t9 zrxF+4c<9;B)6|1cY!Eml(ODF0zdghE(y*VQgYJzeTGXyWSUP#=w|Sek!@J)hD;&S2 z#BS;3<)FlU3kkt&Je?P$)>!QmEW`Egt=kP##3Kst#l5RZ>lQP0tFL!o;Y=L+NFrTz zaZdf_aS|OUFYh!fZ~Eh1JI(bqQ>BI_EB`0EeH#-wv4aG$LacYR3vn8p(tvb@@f)0+ zZ{eyND8yYurti$>`j=Ih3}(cz??Zh#V{d-ypqX&`hq(o+sY6UmO=S)%N`?M}?9uqH zFH{?`-_BGDc`mSk0i6YX#a@(AD>*cwH(q;AVof{Q?{OKI#=*YK!lzBz=)3cLEYwJ+ zYe-D}AFafN-BgS6Y4(%La^eSvnWh%@ zT#sYRuHswu*4M5XpBz%~OwiJA0oqd&d&?Dyij3nFl-Xm*q@yJs!8i%8y7I6x!IOvVS=!UFqyh z<`w4p?V}c^jr%5&!?wvvn*J4zmAW}^m^U6TMMx6n?$q>52<{O%k?ytcyHV*XHu#5OS zRZ>@*Ravh<@7J)vJm{Tns`#)K5^tu{>F+3MYk>DotpLK|x930G-EL)x5fP_NmEvCSZ}A$ZQBv%W$`B7wGuL%Lg@?NRe%QGpil~+6NH2`@fmH*$bh=$? zN{$E0jjEo?#e4kfgoZ+{<^4!cX7 zDZY+5FeyK}Cyp=UjH~mpC!{c&{`YK z#%%*1oF~~(o?1;<1ao=vMh*o#jonz%AXN z-FYR(yGN(3#&|ttM-B$~BXZ&Pr9N~Ao9!-`WqUJ=$IHyxIO_EvEDtGyv_smyLZ0Hi z4{}g23C{*#{lLGvw`KQHwBfpQ?pLOUZ|Ph5-ADRmQ^8B;uHu{qq&tYpc*ZDIPZd%O z`o~RYqmZ#ajHCP9uq3JE3T4iAcdJRp?bC%CC}|C%N&lSCd}x23Tmx}SjQbbcc~8Ak z{SGx4rliwyP44e&)5uP|= z!Mi%#^`p~|FFcB3zS>G%2aHuWbuZ5+(tz?2;`_CjnXjP?Al&TOH;@IR)Q@)v0_^Ia zj!LAVS#C*u3fRQ(Q9eAiw&o=p*NZz*bPAT-(xaA20>tJ1NM|g}`XvR^xlJ9Go{XL0 z?swAt8DD=0-7P0qzS@!0d2Zr+R*VS}s3Gt>FW+Tt##kqNg&YAD$w+`WVfrA4MiCRf z3@aV^Zc%7xk1sefw55%oD*|GdceNT;_i>Fmkla7b8{Dru}HR4xd2!J z_)}%qMT<05f;{d$_>#0Q3Du)#QOs+|b1Et3M6Vz^0Dl=-5ECeRCz?L24L;zaJaBVd z1++ZOkK$1$KW}SvRl-rM5v5Qefpt2*wBrGHkKTlPqM;`!n~-#~5*mi%bqiA_fl=?L zAZ`?66gnh$aD3+(9|~!^-f58bN(-o7+Ha%gT-2=F04(^@NJ{U=7G7QPHh$8!SCzsW z#dD%>wLoz!pci13LRw$6xJK$Qw12iY7S_LTRQuTKBVt8gs$7U{hkT()cN3cz#m{2j z>j=uFl{PI>n-te?)(vW-xJg;%xy{_UUaVCq$uho|r7`9DZ{d$|)9Zz|eIcEfQaGrC zg9p^=6G)!y%Z6^SrWgP4$E8VTxI1@Ew^N)C)XWP0haM`^IZSl78vmJ3qOJ&=spuA5 z6nDwDj+eH68`str5@)82&e*H=37_qa8 zuq15lPMPBhvTib^(}4^U#xJY;y4khS3Cg_*U!I~uodG^ZFwik9p-t#n7?me9!92Kr z=#qGq!ylK?8{f5PBpRa~s<3S_yh9_BV_o&k3XGGB*Ur9_521gQ;b*vO=u=PO zpS!S@S?93Q$=?o&d;!Ja#!`==icWGARdMuE-^|ZDQ7LMATcV!^W8}7|rE!@QcG>}+z@)-}A2-Z@YkKAA? z!f(!l-&mE8kmkZKOCn1Y0P2Zs8^CIEuwrg--3a?LFm{wq`JVG!>msEaY{~Z&sdb0C zP?W=jq`QUYbWBb23thLKSbRMIF3GValJw3vs3e1 zs!+~3+*00oWP&M+v2ynm<5}c4kyG?yXg;c(xvrg*NK?hoPw|~lnYmwv=l0gY&0Ii6 zZnU-$$GKI5agSYVw5u|ed&wFuretJYKrv1BF2nys89F8zkBze`bq~#%W7A+`6?O=# zfo;%;=1$o>?LCnd(^x0LJhK(DCG({YTrH6o{;K|E4zgf7W;p9BH-3o0PpIP~2XZjc zs{B8GA06ow+DY8s9gmqKnnr(JM1_L-3O>gF3Z)^B3iCC3uqXKDsT zrp36H?x>hg@AO8tER9Qhyfy+6XI__0vegeQmpV|67Pok1@Z@a2pxC+M^K!~M0olTf zb=hA_M*6$HBMD>GMMF_q5j$}de#xv?YM?J>aK8sb#S-|hr{MgvTD%gmdZz zDzTjAW+h+XV{`F&=%X`IujIvey)|{!g4hd!nRvR8*WTo8~hqY3W)IESNMg_28X` z3_A`3AIbf}$_4(xKorJA+xKUT3z#A{264^~(V{{0a=97G5mj2VfZ9|Fjnn}C-VA_E z-6K5h*VP9VKm;Dlbd82Ng1!}y4HN@g<)0X1oR$1|$I1i%qh`wyiz8-%@0S=o+nY0Q zEx!{7QRY03zozw-cnKueP|@50vwHRBWXHVCx&lA|sHHI)dWv z1I$=9D)<2O>@+%@cb3wLAk#ym4Cgu`3c|gb^u`M4pb1*Cy^fW>J7?ky)pLOQSBf#F z5_moZq9F^wXQb$n9uysSS34#%6KqC)E~e=%rp)(zl3KN=gDU2u>vk%olqZpSOl9HcfMSabEI!U5 zTYLNfDelKGD4pMrzq)bN;r3wB+ypRq!q)~ty-t-wy^vAZBu@(Gia`oyF98&C+-evI zA)cziA$<9JIZ(z)JPo>54cyf2UnC1n?q4{%$3_^xHGAY)ja6X*)hF4T{Wsj<5<3;^ zbztHeRHvJrw@iwuihfLa@<9yc5L8uAe3-km5E8Z1m4X zfy(4A#L)te|KTjEfbV>9AKAU`fH6S&hhU{&^X?x>X0V%MT~A)v8vzE+wt)u2s$C<+wHq zcg_TN%H~!#?h8IVl5e>dAfLU`P<#Ua5TKQf12sy_x5KH3jUS*FQ+E```J7o>Sj+1`Z=90P%GD zH^uu%04tyA0*gozrww8Lb;#TotI8kgZ$$QTCFDDSYT>5=+1FP%VW0@wc}k*ct!!S6NwT4ooVahR9H8U zQJx#i(ZKx#z_Dq9a}aN%1!%ATnHz8R6Bt9*C%95%7K?26CbTv3EGCp@11XKD{?Inb z1a6K#Tf!X6*VbCXD^a~`uMGC_V!;Q^;=4!5f}o`Uu+=vq9O8UIwR))) zwg)KVjApOz?vuQiz$kSM{FKe$_Ij_k>%3k$xtRdevt2>vz5}@U@*`#?JFWV4=^s9v zf$(hrA=e@b#_4KPcFOwnA&5hc=B^83ZR7wsyH63IAPB~S0Cvqv6CL|wh%`qiy*Ygogz8&=h&KoP zM^5vV)5&X?9F3F$FfQkj{{hM0$>jW$?`eRj8{Yh`VK-UYS@pcz#bH>)*haC?oTE2!UmQ?JQ=_USdIPRGi5{q5fgrqh@ZU^snO zP}Ad=?n>SO@T8ahcPBUikqzueZ>=E=H%W4B=+>*Uw6)Ith0ZdkF**I8Wo5aO2RjGr z5kRT&yn6+jlD-bWIwq@UpkshQ?tgl?JiNTMwhzJHI0Y1mv5b~a9vhxbqyhtai))DJ z!v0zkVIE})Cg6DY=bL0@XJ_y7J$9^C8#AiZTD~yp^;#nl5#HgoZTo%q^>-k=KLqxZ zHB^|@-@u3_irLi7syVG0s(S8Pg#vo{Y1sRDQ<*TmSPUob|^{dTIM=(3_h*eY6*9 z{L;um4l~aHs=~5-m2UBR1CRDt!B10Ycj7=Y_06snb}Y29fzp> z%@*%z0QcR=QSXqNXv?$i>~YjV(k+cT9(@{#fnIWm${oQzYOC zAteHtKqdGcr4BG7t^{q3S>3U{0!II>w(U%+bPh0-bQyS;*UvEAEDGFq=hXXCJlmUlB3f@}#$8St~H>QnM@tHZ? zFs(C^c39d3V3bwCy!I@-FP}7akcj@nQW6SQS8D4Se|k2ChuN zyP*i^hDPv^k)25VyQ~&~LO{11{0Y=t4#m_0R!nJ(x4ONTBscavY9Bm!u+4|9#tUZf zfH?-QhUu!Y0d=VNr{$F)#yo6il+k$#oL*qWAsq>}e8xxCaSHauD}2kwXaq^H&~l%; z_y1u^I3q-m8Dum0D0%Aq=Hzrb+m9@8`A zN6qxS+_70GH&x%fUpP4kU?0WOmse%5WiPn{=Aj%<`Wd@m*w-Mu;7Iq8etqrqGeOtG zZ_z-V=q1Opyd>0Eq?H!u4u&rnxFO%}n4WP1<3sHpCWJWIVszqV19o63($+$#@CBe>L zF(k}}P0;ywU_=j8O#&wnSUULL56|l)7kn3fbG~8j9HzxHjUUK_2+Suuv01lCtLqW&-pUCaxBe6+h?f0N=qCMc`5&IXiy9mqzlWjGv?a>E zShjYqIJ-0UpAC_qIA<2w`v{o_w_CB3f9dGid0L=B&=;nks~+cD3kUi&z*@^}J@20T zEa^=L7<%*W4|wEWm{vm5i*KH)5X&|!i>)FDkc&sxukJTUW5k3B{;wm4E=9#1+O4Q-JYE#P;Ry`=>7k%zNKZRKO^CB7{L!Vv? z0o(UO+8dt>KB4-KpWLV54esE0J`9gw=HI z^qQ}hecgHH>L<8zsi7?QYn_54J<|)%mOQWA5=)tVBBT9c$n(H`)N9?jMvj={KD%(G zUhZt6c(U8IwZ@-SbCdC#JVw>-e85GOU`UOxaJdrBF3X}{Xrd-dmNZgqt_*m#Lfbn# z+VmuCztfK<3*E%XnQ@rtxc7xnmalqpx4+l}9TXR`N8m=wj``j0zXh5`GW^ zht18lKi#s;FZm2Ml*yCRT=H=&4c^dN=~)yNMSigF@s&&Ny;Q&k2uzA{XM1;8t|ga7 z_~zvF+OS9NA*Sc&hR>JgI7E;%vXd)^J8PC*%Wm2mm44fzo-+KI+`zc;#`F%W+~}^+ z{{4?bkJm=V!aYg&KC%I@0-4!Hy^pnX@Hb`EzH&N9cIdXX4p;ozIb}p^Wm@Uu^=CKE zT$(^P8tU*w^_jF%#Sr9abb@x?mHMT?v|J^=DOCfu(D$u2G@bM>Bd5*FPJFxVn^*hd z`#z!BOWT^5lbpS0J?G+;Dvb`{E6nHp8GQb-iNCMoxQrXmPfGb$o-=7y7alPLG6d+x zhxhJOJyE|lXW_rXRv?d(!!#%GzQ*?S-__%l#z@nx>!yqOr5TIC;$`GnqUw%yM-IP9 zc>A*~myY&@4HcLYT!}b6N!M&SUgIhFv(rC(lR)aBYA~cqB>U99KFf6T%Wx?|pCU$h zSei9LBdes}j*sHNXKJr?Qbg}c2FqH`f?U`6s9{ed8+`7HL)46Pk?PyTeHEjK2Qq#K zIwxhg0o~VXW_PGFKCsjXFXJaedvqRT1!lJB#u;0bI&t)E+GUZB{5!^aZa<%v@#vD| zM{>W1?J!P;6SMof3TD_)&3E=xZ^V}D+*;SQ6HGocy&k-htNU_zjqKASW(og|{8#>a zygv!GQy~fsRp4TI1a6Jgyk?)s+ERCatkpoa!ba0)tJ@wlG`eqOb`4b-HC!LpU`nEJ zOZZ~zed)A@pharaSDQ;7Z=9N%a8L3Rik7Ng`={Z0r^ElJS9-z8f>qr1(a991S?1+8 zd2O@4EwjDFh1LQ@)iOQFHV+Y>pHp3*bURnsItcgjKeUDM>+I)!XkIE-xslPq#y>{O z=ctEjo|$Qvot7u<`rH(6@$d28-;H%y7%Z-Eoz)uU8S6DyliQxj*xVUANH&DEaP4p7 zHrp!^EB--2dDiw@V7yDBTruNFxl=^7$8s|W8nra6quVrKQ4LfMHbOnz@*JDCt0575W_y1YfH1}XXDAnF9=WmmZT{HS@Zaw3dm?GSiLPtt zyO+ft^?qB&PFz*zjU>;;d-v%(wTA5m9k9&0?XP|JYPI&A%pH(&TA|+PAsaiRF&0ys zbi+~W4srw^lj(06>J*<9AF&kF*63_SXAMWp#_pD2MtyyK9dNaPBU!>%>mPs_9w~+n zu0W2gzIS14Q^~GaFJ*7RdLH@@?R-SrWDctJBv(}{&=>c;1? zAkEf0TNBY_;g2BffA2d&<^a8#n#QO=xt1WqiM*@qmX0qlWq-9aWt%THRKH3l>E$Pa z?EiU5sq^JGDzXGn*lB1M^_2=y&Rv$j-d^kBYj>3grQ6q}dT_1aeCLLzhFxd* zs03M20a%fxVp?I8rm)9wyUvNb?FrM{rqL#Oi834+g87LU%l9S2-GsP{|Es;L4N5YL z!e;H(YGK*;nA)t(Rw|aG28ti8nPneZYGQ?Ki?d?sh)8OfE>2b=U~W^ICTeaGx-6(5 zCJUG*V2R@7`jz;Rm>EjAM5KwtzOS=0JG-;(Z2$M)ojLc+ymRNg=XvgP@3}{bT0gv2 zh&2rtO~{sHgPqT!Du))Z&cPgJS)B5~;1Adj5WZhd9kx$+(@2WuL_&hYyc-_7@h3({ zXfkcR-YcEOUe(k$GRO3BUk8ggi*r9pJ5p9c7)}{){z_*=Qq7KzlscPm1P_68pm30! zdwuOOM1~7QOx(@~RHWe5=lH$;2O}H{}b}uR^ADS}5m~`DG zMxkH`PlfX^yX*4cW_kWnyV0^u#wQh+xd}3F#)?o|0!DCRq9cmN!|!O)FI19S0}4t~ z+rA{fOO>*4*QAw^$Dg8OT#-RW8AekWM?&_qc%0ISoRS2kOO=#gu*H9)E}S85e-^Ey zlhC)#$G#zGq)5pA2?m*v>v-0`4KsUn`C^Zbt7((NyftRS5l!aXUDc7Xs3QEsuE{%i0BlpOPig^tiQ{XMoU`iY{oT&x;gRK5`c`=hIk#$ zxK$;By22odkaU%*#tGsl<~_}rnr?M}s~CEomaIV>mpmc|Z}o$*G->c_0k=38Kjg#b zx}{R2_i4(VXDf>Jg(kz=PH!vWFVx*W@)m83`qwPiRNR0HB&2&dT>3jU0sn$p?P;j4 zBokY7PhvWc37Q|INlka3E8xCpm+p9$CN+<%jPz0ZGFc~+5OS5i=Iux=AHdYpN2aZ> z$Lj5y1Cieow}opyWVg>cX58y#My8V8m9BbcRL82>fL57Bvq@?jDjs+fNsk{E z9=u%GRHt$y3={QN;I=qPu38iYfJN=IX^`Wb;znjgZxqKQ@~(P0rj#RL>0$c!?VMgq5KoPAyebGP?Gp;CA7ErFJ9mVb&v+na-g%OW)VaQ=QJK>1D$5#F=oRUNG*C>gX@NJB{%rFdAo!4>rcI z6EBa+-1x#G5zP1C;sW0%mKy5)GT@57Y5b4tgC3&G`+v5LpY_sEW@t>SOS)ESjoY4= z@h3KS+-CKTuE^sZij@=E>tv?(SlH<%>!GQ*3)z3B?%EJ2>f6MGnm|i) z2#`B0EdDjEe>xES-6O^jI6rhfp`Rli5nqf*sI-G6Nr3if<5Rt?>g9I`z>b>?)Zzw{ zNTjJHuR4ITN>w-GFn+p^-P3vw>@A}kh%JzUqFGOC@E$)uduC`E1vpMY7-~O?^4n{p zEGOr8E}aApO?rDU9!w?5LMtFCgeF2pCGq0f){3qRt<#Ib`$lSh2qs>hr`4fYBmke`pXV@XV#( E0Z&H=i2wiq diff --git a/docs/pmic_lld_arch_diagram/PMIC_Driver_Software_Architecture.png b/docs/pmic_lld_arch_diagram/PMIC_Driver_Software_Architecture.png deleted file mode 100644 index d44958196401044dafe3dfde39627544908ea444..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 97230 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 diff --git a/docs/pmic_lld_arch_diagram/Software_Block_Diagram.png b/docs/pmic_lld_arch_diagram/Software_Block_Diagram.png deleted file mode 100644 index 65a22bf16e212c1813a20f1049de73ce1031177f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 197664 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%0Dn(XMpo%0edmvn*LMPndisELULd2^bZ|U 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%0AIlfP@h7So@@H&!IJ*>nK?^>y${mT+(34vR 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 diff --git a/docs/pmic_lld_design_diagram/Interrupt_Handling.png b/docs/pmic_lld_design_diagram/Interrupt_Handling.png deleted file mode 100644 index 5953dc190e15a32176340cd362819053dc91515a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90236 zcmeFZgHL*1V7N6RHVfrh@OY5;1^6YF?lfvq$C3W;x!id9oJq)%LxJ@c1Hb&HvNXi9Rj(| zl9d!wbJyRP!uqPFPT9IE;U*jJhxM6R=0Ol14i2lUzdwgjReJiX`?<8Y0{od>jqkh< zcoa~K!wi$ncV4bP_dQBBz5m9|%+>7tc+n{#;kn!LbdA&Yul=w4U&Yht3Bi4DUbNzW zW{Lmviy=Qf82aCrsM`Pk9yJsHpP2{IN=hE{$hz&u^8g)4NMjWw#M6vzqo#Om$gu@wLTGR}*@U z?F_D-3vE%&13dxO#;xHM-#y;qky=kT98a$=btjtni*gjtmQ&Avu|haVQ+s6U)Hr5w z#HVz9;qAP<*zeuy6}fg6x!92a6Y0L3lH>$J5hUXJgF->P8=^Yt9!mx{nM7; zdaQ3cNBHtUwT{ZR=c~Y02wk}SRIQ6sfksj3u}IP&CBLon{&KHdhE$kilAw!Yitkm; zIS-spJPMnkT*e$o~!v)-*|o=Vrxdp=pWsUjFfqKfyFxwvDH6@F%jQ zIoyXGtHc6t9l2SKpI;u&=tKk=_+AcAc^^+TN1sZUz3HAza+_W~J6Qc>DYrZcTWpMZ z48PcI4HQV&@8oKFWt5kCG8;%_WGk@keYzO$nn!k`@55H7QR{5sNux9{oB2th)Fifp zf7SbR(y6y%`hJw!i0sgF#s+=4wf-I8MmhqyT}p~~4x{@V3aI~COBl|QBiC$zAI2o( zaOhN)A9HZf^;c4biV>sT_@7B$kxrF%!JtNwww9F}{GVTD=SQ0(Filetg=c?)47avO ztX0P&-C6FqEhU&uxK#Y;u`BQ0YP$Aeb4e#w@CfaA+_2k1so}_acL*almHzGsLT{b3 ze&uJY#Og`R@3z!kC}{P`jm|3 z>-T%gg3PpIXu)_8v9HBP+B9V`uNi_uLs>i-QA3sK1y1m~XqpDT^3OR{nkb^fn7R7H znDuo1I5F;oFYET*Fw3iga%HJp{o35jkdeR(X{Z983Ku3;DXCw0e8&QbWF;QGNs?wGUHRnDu=H7Rcq6pQ~5rZlY2c$Q>90nQ>Ct(*4i#e8$RF5TxDD2 z#(1*4Q`3_-Yu^c)hFv8HavVvrfN2fvI9bbP9pz8!? zukot&VqX?ne!9Lo-_~%n0RB>`!ZNKS4OBW^ zob2*lM~GZ~YaJ4jhkvAo!Z#}Am%loN$9nc(wmx+Fco~-S1n=N@u_Lz3X6O}ZukiT> zbyFDcR?u376|$TlAL`K39p7z4}A&YAEN34U( z6RglXJ{#F18M3XxFTe1xWO*rN{`nbR z-pPDK&ZI%T`>s-NGF0LoYxP{E=BusMoD{;Pjja|+yYllyUMsS$Q2D`Z`OWQG z=T+i-ohsX0iD1IChNB6#gSCRo}NvuTIT!6_Nzgz*r{sNA0@R3pC!gM9|O(&V|s4180)>X2M+VygJY~?YT{r5Axy) zNS!z~W8ePadDHb-DGL^BeTh%bc{}c<>yWbaxNA5iKj-I98{d8smYr5jx#~PNbL$n_ zf0+wHY8usZS4=1IG;C`3?^jDd@VRbt$ek%PnzTpvVUg<^?%UR`W*g=yt$;jEM9QJf z<9xQ7gXCTxDJnZ$7m%`*wrsrElk=Pe9*^l1y~=xxM0h*>Ce;iA(d??vWmJ!xRTD8u zjZAl07qGnQ=AW^y;ypEHO1?bpm!=t?f9O8zpC%>S#1<~J*QNxnDsjG5S3FhRI(!Kd zCm|JZhqRV3%3wjaE$jWOt8+UYsn!p+5!BEL+u#Ddy2>eju8pb=kY6qLK~-bgYjv{o zCkBcam{XxGpa>m@#MW>gABazSM{h8aB3y1vmTCSqyBamH@ zyHg-S_I(v_64$A;#+6SIo(dQ1_T^mV*R2Ll+I5ARkTl~6DBn<>+jd{YsD7fOEh(q& zGv|{(!AQ@gtayEjwZR<46+aBZZ|BbJHq-S2?wJRus_6_IZOv zy1hi3v)E1_KnQE_w;BlDXmWr2K>5b6d-DnpGx<0y z2k6T=SEVVIxgd}>JiG&zZvt*xlT(d$k&+=j*FEp!B>Q|+9<^}IGhx-xfZ_FlnGR$) zj?o|%^B04@+oIvKe)X82Pq;5H72!)oYNGjFxr+4F$R+TS4^zu5k8@A|h?!ue^Kwl% z(FnQk*vevJ?Nn@}iUkG;wBNdY-*CUUb}ipfp>!x3hpT=kpu1S3=nIx79k1*e;-XK2 z2&+mwt?BBllNbZ|0Flj9E$`>V11j(RH^|mnMKq7q;evSR(Z+b$W+lJ+lDIYl=BL*bjjK7`VIYXFsJfI!`^G7)bu@=XxqdzVgv>248(&sPtD~RT!MrN{(CwW*Nq|Qq$t3Ug# z5HqW+!Xd=+X~L>-d7$3Ism^YtFRgjfWFovHmJR7Ga&=<-nBUui;Vx&*0&$&Ud)m$= zvv4S_AW?;G0=KC+$Qvad)4*$JSam838SojN%3}IHWEKma{HOPDS7u@PuGi)w!&{VNg`lmSQkcTVwnRLu&`|-!xw2`l4)jLsRQB zFxRQ2x9bC0A7X2xHj!0277vsya_plb5~&F$^U<`fPnT(qd!BD&I(?E);QrlV|CVS) z&~k`br|GDvqtBfcnjseHlES4mzrHIS{yOb41Ffa(J&a4%-6N^o#M#%fNgbg(jwlf7 zZ>90I9)(g7333W;J~xPFi&8U^Ue`R$*eR9LVyRd@ny@M!KVe{fowcX_r@To`1-6_N zCl}GNS8g@hgE((ahC&U(lxaVZb5(YJ9M~PtQKUJZ`@mJZx7exUkzWo&*Yi1DJi1Wl zTp!jnAXs7?^la#f$0KFMbmF${{=(~;SNf)nYEO;08Jo#FRi#<3VH~YZKoC1tawin? zpC}0Z$XYOs>jw({$|nTT3f~NEjcj0NC1oq$F{U~iz4goovkf^xx4CpW%S}8#W*kv* zw&HtzS>*|mx$0UO+x^_ywe|FmytAmThHO%;PbVI)OEHnJ8zfREvO6!?-0!nN5dl#k zfK(wXtVSz4?I~!)yi$?azOmLJ8WDOfv%H7^b8B=0p8}h(+c0TiTew=?W%>us()Fmo z->kX$LGOHDhAs=7O8OI%!jm)#U%jp>`$DAOO2H*Jbfq?RUCtar-RVxbJ5aLmN$u*e z-S(>H^a&o}vsp;pN9R5t5P@%^fOI4zbl%(+SpnlUv9zh2pyUJ-$WaPa4fY{13j9ugrBwL{pwQq$h$_s9TlI z3QOZsv^3e^7&KvZNI0*>H`Cqqk=cHjSD{|r2!c(tnEEze`4VI3bc#ST4gdA!af;p& ziSNUl5n=w>K}R_R!)2hu!fz8p3EGzGA}n za?$egqO4%3IE4WpR&Z{OtVBpA^6{xxFOnr1cyGMYNj3~`1k`-Z% z=doI<>`o-_0s%tQHtTz_b}iduW)Niy^rTc9;4Y)N%5;fp8abdMA=6a0@~DvN#ha>g zQ#>uYFYqF+y??vo6^jz(<`drEgR^R4im}ebGn8VB7DwY|G^4dHR&`XXAaaJ(>dU)L zd*pCrj4pzSE2Dp}?P2Aqz9$WpJvgb6Pd_qK*lCq7*JmG>4JGdv{?O8U+_^|nv8Ne< zPBmXbzx60jSF1?7VxzVv0Slk(mB8bM9QyYn$8#+G?+RnhqH(Sy_w5YffqjYhfkBzA zKK%HQT7Kw@4>?R?_dvJ9EnG|Cx6Px^gk-= zP+a95+BOS&9i?OP`>M;f5jz0Byg<*e`fGGQVxhHtr*lyq7J0Zeg+w%ggtc{qw5yta z8TxR29#y%^g`GZjSyQV^P6lig5<^qZGbKiWE6iulp(5y3UrE2x-1g<0SvU!SJ z-~FGg-!43ODsuBJVVm4!E^9+2`nS2ASClBN{!!-XD`U=$*WYNtrcpOCbs2E$E8hTB z8(*Bik8g{%jxcoXciQv=7;WytU{~gL+gj4yc99%VC^T~p&UMziPrQlsQpUF>h$)Dc ztr64M=sh^0#t02rU45daA+5455Ur<;+0dZQ$V@RKCxdoeuON%baIgGYI{ab64!sGo z(#9ql4dd3BDO|0CBS%hq(aeK2G?l-6r=5uyvhXk|SlIuLFk0JZQcc}ImEFk=X6R|| z4w{QeZn}&ANa#kvV&`BFGh3)LOk_2mtOlzTZ8y2SrPJA>FER)XT7<$Mk8wj5RM$s~ zXKc_TJ@Y2}#!8F>b?QKMmvFw45usb-xTqVExox|vlt)F-#*Tu5pc;?Lt;YwVN#J%M zu1E*e^z+(G3}vJ8C);JYkE-S4S0ZhD0CR}{HnOj&=Mt-zFVu-Dk}-Ov1{#Om%wu1l zfdvk%>4%=JWO&9H^^f7>rCQCd4rIw;JCy|!V-Y80w&!0akQv}H-Ic|U?N{ED#>Et| zFUdUeDvKsoq}Vyx?-iLb7B$4GYW?`Y7(+~2PHB;sLRZ(=D+Cr`ArvI(d3iW$1BHiS z6Ht(Jh1r6NIWA~u_hVs{ndhSumLhf`ze4f^Nl2uFRdnP1B1&PeUQF?Uh>vS2-b)?y z-ZjVVfnAJugsxxxPULZ@Xgu#B4YRI^E2n~4UL+p8hxeKi!cj+bp0%ICTy(SFNQmi;XKUke-R7|#BG>hZZ zvvfHIY0PXnt;544v!wjvo27tgEH3u%d-uDN^-Z>G*Wya3UDimn$7WEXry+ zSZpA&{v>@*HuOxGhHd79cu|YGzAUn6mx7+{$V?k_ZAS5+N-wWF7?87}VhznOc}KG% zF!3bU8#J7{=MM*5!k(mg=S9Dqxc+mozd6&?L6 z3BTB6(|mU&e6cfCC8j#yTI4eqYA6f&b8$SBNyB}lRsE*>OCPXa30V=1&9jLLs{~>p zQ?>F|qmHqgUiJwn6`GK{gue>B&yQG|7V*#Qf>FIH3NS%+p(;LRq+I$!&O6Q6!P6eg zR60^9-xJ0|<>@p4j=cpXI1Ovk!BmN4C~+F_EPm&9hWH?#^G$vozDd(~Ju=IoT;+~N z6kMIFRrV$gK(p9#8{9^}LShcrce!d;(r1&Qm%FVrY2j4QC(bG^z*oryH_HdbKag?Y z#f_QnEwrbh;8`_bd`kW4FE%|YZIFBi8)dx{%WtZGe;^M=)NR!&{d`9t0V<5!v22>0 z&H$c%2Wr~-J^*=;v&U`#`y|wJ_)VJTeKg)$DRDl(let~uHt8VUaXtW^hQboSo*k}h z9-!NU@&FU56B*zg)xBp4KmdC-7dq+i@(r3IYrVVA`(}xNHty#FC?Hp_&NXd!z7^?B+?;-AWqI~XZo$IvRlZI-cTr~};c?K0QpOC&XG4r!CLLO9z{zddoQI7fL8KOguYgOtozn1y_n<~a6c%`UVcCQ36 z4zoGQ1%p3;3kdT)iD=ChR+Dk^{j-vB2q^i=&mksFd8#?uikMjPE1?jRt~t8!u~L`Ldpg zpm_7pgK-7nsK2}I@D>(#+t#$}AhXqGrm+FVEObO{y;=?S%EG2`eoGgPbsz;XlE5H` z$gnd!yvRheM1zPP{Syl6VnS{2?S^*foge7oS%9zrsjx)UM@r|h)nw`i&e}E~bGC%Y zyD%fQ>eHoJ4O)xmql8pzuIzdgU7)OLgEx-Gr$9(<7uWB-N7>Ql+1&3BQvl4`w5{Kj zsw1F1kCX&8X0Ubg<9{r5fkDm4kjFMx^L zU5@xsHG34~S*b2bs{KnmJb}?RQlb8rP7f(QW1$d&F zkfWHXg-H4N*6k4tF_`O$VZ$A6%kffE1n{pdK-%ChnS{gXVzvjFs!0Ld&&cqEk87jn9AdaVTc@zGD!T6HA4r zZ!(XkzeNCu&*tL7X*~+eMC9G8bA`egk2yVR2!x*S=F8v17dtcJxLKX{+M6rJPN%U! z1^T)}G!VFGt{$U!d!>yYz%&DO+G9k=gghMW@xgV#Q)r_2pfOeZE<>1!9DpyPI#U77YGop>i2g##N-1*=0snI-Ty#Qb1BuaiWBPE`Zry<`H;&4A)#z-=Igl zmYAb+sFGr|(c4oKkdN%Lv>`S+zvgWdMN$m^vh)AB)eyb-ui4)vd!d1aGSu$<#1Efq z7Q1RyN!^SmlJdrIu*cld?{ahJI=Zr`m1a6Iz%Z+#S-=CLUVHpEi|*IA)ZJX6S6a#> z_QnE*GL_W*>j!2Jxa<0?>MX57Qm) z;>EH*xVim^(1pD{-Lj4QwRe@v*}?1xC#$LCU-HlIB7z=Rn1JM>Ux$IKmc3Pcg+%b1 zT7Gd5%%S!sDb?1N7A>Q3+V-r#Ew-idQum zJxTdbz54Z1x9y?#F%~~}w#k5TC7|E4>B65qlE9!X_Fd?$N~<4}3L6m(y<iB2!(~I%cGv(f1k+>6S^b?lYvRx+C?C2l|&n zJtxX_?1Jc#X5Ef*5zl)zbsGeA(D|?Ryh?QVy-ui2KfVWRpU>KV*G!B4=Dv|tH)~AZ z_ZbW1f)Yb-lT@GeOxZY@zGqlku`)__!HY~u3nL8|rB2V?ZaIC*8&aw0&(KTbHVqKC zxjCvrJc)6nud_dfi&@v6X_*o7&^lo2<-SPas&zl^o~* zA`Fo8U37932$r@G0~kcrr44W`MckWl{Ckaf7N@yT#E9EW%@0zxttc6#yfk^xvXN0a zN9wqoZ`!UGYB@07QzNrD{7F>TbUZa$?C<=v-EGF!5r1vkVD6*c+$@=Q1~3rZDhc>~LNc$EAaazFZqAqSOWXO4JACSbn;NGTmPgBfmls zYi&`kP)lyHfS`aB@dAySB)Rx4KCX&i{<&UJEh4#>gNg{r!R%(;zw_I7V<=T@x?`~d z`!6+@t7de6>)6UdqawxN8@0YytE|(miEL`wFCYJ%JU^84dIZ4mNfB!8>hK*gO}pQC znv09^dI_ou?e^kn?w=TKi(6^jT&~YL)jj74G&5Z{gP52=LQ$*_JOu-$-M)!``o#42 zI*v9h0%?MoNMN8Ho@bV1#CSiH`v-))b(q^)O!Tw9)NazVBbOJ)v=e8h~yhJJU@!D*naUrH>|kHby(!oM01XI)lL>< zVes-hxUtD%Rc=vPH2D|rB~vag{}qghK18`TU^^ub=Mz5f4TAgl1q7oW7mWEQAlJ4* zk^}dqLxmm)^Ulx@ZT~*dA=Lrge{hXL25T9_roX`u0>O$?B=Z7=HNtMDaSNynoB*wu zh(cA7wJrt78Yd>)n?Qy|fqEPWiHxuS3hCl^-!ZImT!bZFgWjNq(yqRr-~sn94!zo; z&9M?XQ>|#+@5%pr-NBv06>*rwQWyN;4}(;>f{27qzU#RRt8W2X)*h7e8JegE@Iw#1 zc@Vsq9n64iz+=^Y;kBxL^x{3H+(zk}ZVI4QdAy$R*kXXb3N*>ppK#&2jM_BJ4dW$JMX^=2%2dJW@tf z>_-W}xBognMAZKeMyl}6_9vV#nJ()iTkj}s?EyaO`1?I+nMV|#?c~Zde4T@m>vh-X zC$31Qn+QnT#1eBb&!Wh~uq$$KfT76ISZO_O#A`8HY_LrMbXI$TcSMiA2)g7KC}+H5 zQ_qiKQ%(qM*h;X>g7K*F;cjV+V6_8ag4YyF4u z<>y%qgl>YR9ftQ(lKl_d8?+Qj!T%ZnBlLG8%}|yN5w*OzD(F$Q_C!Mif#xcQo=}Ds z*zE`RMl)6iS^&N$CUTp;f4-XeNrmGB<^tnc7%BcGVS!dzwjL8|wUiz|W<>XUxr-~z zh|e=HaV-Ywvl z+9FR-fR8Wyn+-}^_176b4OOHCqY z+X-v_-<(%fjsfAOwVGbuQKtrspu%#vV;EorDE$LtEQjSNB5A64A&~g)fuyMZT`NV* z%UdW~U+)-t_dxHP?Nluv5g6Dh5r`rQd!R?E11!JR?5}tpl-sr8UmVNHQ}S8cqvUiY zw-2CCc>(C;*qzAl7DmDA2owaBy(03g7MZf4Sf@ZwHd&}uCi9547nS-UenVgtBU$jO z)c^&lZTRk3>W-eHEjq-J&0Fepmq_a4{XZyqTosTz&Q4FQ?r);h6Mhz;!`ghR_-WgJ zmaF39OTgh>?sangU)D(yYn7{Akw5IOf!_rT6iI&|1FS>p$}>ZemU;FXNX*8MJIpC~ z%xA*^n5hZI9JAoR?G0kw_S@7`0H!ouc6TK_g$)#n)`e4JHpf zzGC;z(7iu7DL$o+QfER|Q?(UV{poKR@DKQ}_Bn*Wl<+Dx5FFIxOyh9_9E|_<4@|j7 z<^r@;sD$|66OQWpw}4c|Ip?e6`*olb=*Dm?d-VzDj9|%g^2Rrr z??>auV~8@I1o_ht{lmlvZ2ZpVQ`%&fi+xt1@uGFf)KphG#f;Uv?s~f77Ro@EFO0R2m`o2Eab@i?YS0QZhk7wGM^N))ME!QraZ>k z_DE&X-lJ{6`~f&QbC8buUjo@m1puj9=5Vit`ZIe|QHs_20_?LiSDpA&;wX zCQ8eCb$MPlA0aY5jL<_0iyVID1(aJDCBG|R5#6e0eCmL>Mtg_6jRl|>Neyvu`OEcU z*%>S6+m+`1KlGRX3U^U))0O?5?{@$9vyw3YY!I|;Un{h}0G!ZfBT7-%k^w{$)*Y7< zgh}@RW)#nHkCOy%yv80B9CaX4_W_xx{?SyS(eL+_-T)GJZSXvH1xTgZ4tbv3`s85d zwl_$_PV!%P9O40QR>c35KmrKnmOA3OwyA;Q$WUP#1z*m8q!wBTAGX`a3WYSrdwtU&abPfUugfQ7?fddB~z>;5rN z+tvc;^VN>)9H?o5Z=sML8C)aQoik7yY26t~9>-l25fh$mWIk!@K7EU!TM9W!wqV%J6o2w0?X#KYcD8`JLEv~?)K#6sa^=u>F;6OEiP*DEo zPu4&e>^f;h36j_%N))Ywnt)0hZAC!Ou;)%y+0D!rtHe*#@04S1R^DxgPj zRWNU;MQnD50GhcKEN~AH`RO!&tzQLFEjPRR-FMFcJRKn5Aq`;PjS8Xd`uzZbkQ@98 zBr##!)bHn1(ruE08EB3HT=si+&!C=e25d?mX=k8bpbdworm@fKC!!5tp2R1)01d zBDExDyblBcc`T4C>ISTaU8Xp50B{%q3~sxvU!re=R9>-e;Q?Z{9x&xVod+2U8E{$i zl=_po53Vm=RtJ6)M>R49z)2^;R9AkKL>?WiOb%Z4ow@-aU3*Re>Ks$3H1Hab+FQ99 z;T?URL*R4EJ%a1(NE%W7-^ElQDAD4dB;!N;^hnG#tjw@hNpyu4A|(o6)WP26Vx7Mr z*CS!a9S1TNJ)r*FsO1tMk@Yt?Js4D+3c$kOfLq=od}z*KK;qS%ixSA8$cv-C_Ua37V1%O8;&zIDwgl7pPr)hxTro# zFCsG)am#Y#d;5dK8Q<%ykH1qjR!fxDcXno-Ehnn%>=<0t7?n(mogWGTUS~vS5tJfC zagG|A*YDX7-AjhaZ41~KjPVk z_78YyODe_o)wdW`gpm6{ZKcKaFjhfrmFbYDe|B*Cf!WvB#-t(e74xJoUZMtQ))gD0 zPD(W|isUfx3P_Y61vRzixYp~rj+<7d@K84cdN`n_PL*59__q0sX$#<&%;H&jNvx=R z!fK*PO&NLPf+{60o)OwLo@O5^;fU}JVMr8bL}vqLs?=BlBgN{0NN)Kg_*$G{zZVrh zYiwo-ix9z5AzG))SM!=32U#P5C7{uci)qzNS8jNE0JoszA(UrVgTZ9!ny78$0G(%J zxMn^iAt5UjMw8~4CfMVmpA%O&=rgp7*c@_u(-6P9>!Kiebkz6k$(QZc!G0%=2b>}; zQuK$`gQ9=dF0+qGlg{DP@Q9aT#2?^PY9nf$>z_RVC3U)W@1}Z$n4n$WPp`NK`6bn? z&n1)wS-v`%C#ri{Fx-UxKHWbo11m;-NoHT2k?H9Vxk=`4$ugEMJ|MVGxL`de{jN%@ z-K;2*9T1QMlR_m}vfFBM?pR9|U)Sb>iF%6YgKnvM17T^=?eJS4HMAZ=vBL!J0s)`v zR-#>FiJ>ulh3IkfhRm*Y#H}^;POsRX{qD4Id9_x9W+S_?Z?CuV3lOF2pqnToXep5O zw@jjg3xm?mA;oJibV>uF-aLWYJaNTXc2UBZM`ec>XQg{jwkR{o^4jVFgB`a7)QrBr zRa=Vreleu%#6KrCWN-fQ1qhN`LH88CJrU)z9*Z21lQ>@i)kM|$A0SwzJ_g0un2Wc; zkX63JeIcwiUZryMT?!d(G>6c`&w~!d{y{HVKN4f(g{*t2pff`$>h(-NJ9}9^c1=>$ zK1OXoXg-ly!_A^?BK{2*QF)|LoYGSRg5j3y*ALO2@NmCPu}e?2TTQoj+$ zgc6{%p8Zlr)~xlS)gRr%(!20`EqZnO_l#&Xyhb*|g4Cvf0K96pw!H6oZtF!=6RFj# zfll*b{MsO@PR3@!)Y4g#H%-obtA!=>F={LQ8PeZ^7QX}f3N5bN44BSBnbKm;hpfs<1`T$P^0FGKHJfd?l8t**i(^6GseMPU z{njBN?1T37F=*|H)djB=poc>-#>&WodH!fc6V(18GWXF^!SDm0Ow6A)Ra0c_tL$j0 z)cAto(qR;)P{;Bxn9^!Jfp5cbq6EX((7q^CWT-%PIVAccjL#fOu>uu(o#UN}HUnhz zR_6>2P6oIb3@+vR4D`-`#Fv-5QUkhq;!s#BiStca>&KpoH~{Zx`5I&M1H|k{qE7>f zgul_Ib=$^1fVArqMAEJFLI! zN92ia0`p*Ono+PB_xv4o7M;tP4hQPiSq%!+cv zUB%|zgJ|`$2HHm~c^Pr1tVMLY)K1CKw|pSZSX15t*+a~KQcXh8S7FY-ex%q% zA+z*FU?D8I+ZekPpY_yOWfw*0z*Yq=hJ@@^^+zwDIx#pnIm=m&GH{NIvx-8RGI5Nf zR`KH4qoQOhcP^s_Y!-ona}~BkwaCA%MX8^Um)Q$>eOe}E^7~q1rcc!>B^U&a2+kHX z@v2!2^F>p%a|;l)uxMt{C7t;kDc=5JON}2Gb(Zo4aTP#z00_dbMCtF*5652=MXFm$ zb5tIVQ#|-u1n>yG{Nd7@4R4#OA1o>yd+jyn$@1Sv$ohC{Sp6lA%T zKOvt>OC}KPA>mQ)B_fC^Oht6;o9p_QuLztke55vOk7jVy>s4&ke+2(0L}a>j|CJo@ z>GauBMaL{Dv@LVAJsApT-DZcwwVj4=$<}Zf_S*<-;_WB#6iJE}sD4+^awGE9sROZ> z9f2Y;|M`&% zwSU)-UHm(#$J_AXSB$j%YDjHU_|V=3s5Zk`R^n1DCeg8))xJoaOZh(;J_vssP1KlO zt39{2JsjW)GzJT~1N z%3Ala#7S{RM91(JSS_*#cuJIro8$A9E$E?f9jb4MS}2JQ9hG;~nynh*z6=>NOw9K8 zGoKV;28BO4G`w?YsI)UmbdaQV<=(kv%)xtAt%83ksZ4~%0AUb1&6$5O4+&ywo`WuN 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 gctQT_I^4ftdWWFl9IIimiC&(^b diff --git a/docs/pmic_lld_design_diagram/PMIC_Driver_Instance_Management.png b/docs/pmic_lld_design_diagram/PMIC_Driver_Instance_Management.png deleted file mode 100644 index f526ab70be9f7727f18d7b2524f8e3d2110ba902..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52563 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 SUd|v#zjpchrR)p0{QnOLG0Xq} diff --git a/docs/pmic_lld_design_diagram/PMIC_Driver_Software_Architecture.png b/docs/pmic_lld_design_diagram/PMIC_Driver_Software_Architecture.png deleted file mode 100644 index d44958196401044dafe3dfde39627544908ea444..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 97230 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 diff --git a/docs/pmic_lld_design_diagram/PMIC_LLD_Directory_Structure.png b/docs/pmic_lld_design_diagram/PMIC_LLD_Directory_Structure.png deleted file mode 100644 index d99f1ef56fac12fd1d5f27133c031624acab3634..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 155083 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 diff --git a/docs/pmic_lld_design_diagram/Platform_Integration.png b/docs/pmic_lld_design_diagram/Platform_Integration.png deleted file mode 100644 index 8f25ba03929d6809b30253a7f9552c71ac2bd504..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35355 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 S&?^M+PexKvqC(6#@c#hqFq}#N diff --git a/docs/pmic_lld_design_diagram/gpio_control_operation_flow.png b/docs/pmic_lld_design_diagram/gpio_control_operation_flow.png deleted file mode 100644 index ba067925a2167b562853f587ae1e174bf6dc1bb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47464 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 VxNP~??olfE)73K6ysvH-{9oEM%dY?c diff --git a/include/cfg/lp8764x/pmic_core_lp8764x.h b/include/cfg/lp8764x/pmic_core_lp8764x.h deleted file mode 100644 index bc7414f..0000000 --- a/include/cfg/lp8764x/pmic_core_lp8764x.h +++ /dev/null @@ -1,127 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ - -/** - * \file pmic_core_lp8764x.h - * - * \brief The macro definitions for LP8764x HERA PMIC driver specific - * PMIC common configuration - */ - -#ifndef PMIC_CORE_LP8764X_H_ -#define PMIC_CORE_LP8764X_H_ - -/* ========================================================================== */ -/* Include Files */ -/* ========================================================================== */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* ========================================================================== */ -/* Macros & Typedefs */ -/* ========================================================================== */ - -/* On J7200 1.0 EVM, PMIC_LP8764X_DEV_REV_ID is 0x03 */ -#define PMIC_LP8764X_DEV_REV_ID_PG_1_0 (0x03U) - -/* On J7200 2.0 EVM, PMIC_LP8764X_DEV_REV_ID is 0x43U */ -#define PMIC_LP8764X_DEV_REV_ID_PG_2_0 (0x43U) - -/** - * \anchor Pmic_Lp8764xHera_EepromDef_LdCfg - * \name PMIC EEPROM Defaults Load to Conf register Configuration - * - * @{ - */ - /** \brief EEPROM defaults are loaded to Conf registers */ -#define PMIC_LP8764X_EEPROM_DEFAULTS_LOAD_TO_CONF_OTHER_REGS (0U) -/** \brief EEPROM defaults are not loaded to Conf registers */ -#define PMIC_LP8764X_EEPROM_DEFAULTS_NOT_LOADED_TO_CONF_OTHER_REGS (1U) - -/** - * \anchor Pmic_Lp8764xHera_Skip_EepromDef_LdCfg - * \name PMIC Skip EEPROM Defaults Load to Conf register Configuration - * - * @{ - */ - /** \brief Skip EEPROM defaults are loaded to Conf and Other registers is - * disabled */ -#define PMIC_LP8764X_SKIP_EEPROM_DEF_LD_TO_CONF_OTHER_REGS_DISABLED 0U - /** \brief Skip EEPROM defaults are loaded to Conf and Other registers is - * enabled */ -#define PMIC_LP8764X_SKIP_EEPROM_DEF_LD_TO_CONF_OTHER_REGS_ENABLED 1U - -/** - * \anchor Pmic_Lp8764xHera_RefOutPinCtrl_Cfg - * \name PMIC REF OUT Pin Control Configuration - * - * @{ - */ - /** \brief Disable Bandgap voltage to REFOUT pin */ -#define PMIC_LP8764X_REF_OUT_PIN_CFG_DISABLE 0U -/** \brief Enable Bandgap voltage to REFOUT pin */ -#define PMIC_LP8764X_REF_OUT_PIN_CFG_ENABLE 1U -/* @} */ - -/** - * \anchor Pmic_Lp8764xHera_ExtClk_Freq_Sel - * \name PMIC External Clock (SYNCCLKIN) Frequency selection - * - * @{ - */ -/** \brief SYNCCLKIN Frequency as 1.1 MHz */ -#define PMIC_LP8764X_SYNCCLKIN_1_1_MHZ (0U) -/** \brief SYNCCLKIN Frequency as 2.2 MHz */ -#define PMIC_LP8764X_SYNCCLKIN_2_2_MHZ (1U) -/** \brief SYNCCLKIN Frequency as 4.4 MHz */ -#define PMIC_LP8764X_SYNCCLKIN_4_4_MHZ (2U) -/** \brief SYNCCLKIN Frequency as 8.8 MHz */ -#define PMIC_LP8764X_SYNCCLKIN_8_8_MHZ (3U) -/* @} */ - - -/*==========================================================================*/ -/* Structures and Enums */ -/*==========================================================================*/ - -/*==========================================================================*/ -/* Function Declarations */ -/*==========================================================================*/ - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* PMIC_CORE_LP8764X_H_ */ diff --git a/include/cfg/lp8764x/pmic_gpio_lp8764x.h b/include/cfg/lp8764x/pmic_gpio_lp8764x.h deleted file mode 100644 index ac44b0f..0000000 --- a/include/cfg/lp8764x/pmic_gpio_lp8764x.h +++ /dev/null @@ -1,177 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ -/** - * \addtogroup DRV_PMIC_GPIO_MODULE - * - * @{ - */ - -/** - * \file pmic_gpio_lp8764x.h - * - * \brief PMIC LP8764x Hera PMIC GPIO API/interface file. - * - */ - -#ifndef PMIC_GPIO_LP8764X_H_ -#define PMIC_GPIO_LP8764X_H_ - -/* ========================================================================== */ -/* Include Files */ -/* ========================================================================== */ -#ifdef __cplusplus -extern "C" { -#endif - -/* ========================================================================== */ -/* Macros & Typedefs */ -/* ========================================================================== */ - -/** - * \anchor Pmic_Lp8764xHera_GpioPin - * \name PMIC GPIO supported pins for LP8764x HERA Device - * - * @{ - */ -#define PMIC_LP8764X_GPIO1_PIN (1U) -#define PMIC_LP8764X_GPIO2_PIN (2U) -#define PMIC_LP8764X_GPIO3_PIN (3U) -#define PMIC_LP8764X_GPIO4_PIN (4U) -#define PMIC_LP8764X_GPIO5_PIN (5U) -#define PMIC_LP8764X_GPIO6_PIN (6U) -#define PMIC_LP8764X_GPIO7_PIN (7U) -#define PMIC_LP8764X_GPIO8_PIN (8U) -#define PMIC_LP8764X_GPIO9_PIN (9U) -#define PMIC_LP8764X_GPIO10_PIN (10U) -/* @} */ - -/** - * \anchor Pmic_Lp8764xHera_GpioPinFunc - * \name PMIC GPIO pin functions supported by LP8764x HERA PMIC - * - * @{ - */ -/** \brief Used to configure GPIO Pin Function. - * Valid for all GPIO Pins */ -#define PMIC_LP8764X_GPIO_PINFUNC_GPIO (0U) -/** \brief Used to configure EN_DRV Pin Function. - * Valid only for GPIO1 Pin */ -#define PMIC_LP8764X_GPIO_PINFUNC_GPIO1_EN_DRV (1U) -/** \brief Used to configure SCL_I2C2 Pin Function. - * Valid only for GPIO2 Pin */ -#define PMIC_LP8764X_GPIO_PINFUNC_GPIO2_SCL_I2C2 (1U) -/** \brief Used to configure SDA_I2C2 Pin Function. - * Valid only for GPIO3 Pin */ -#define PMIC_LP8764X_GPIO_PINFUNC_GPIO3_SDA_I2C2 (1U) -/** \brief Used to configure ENABLE Pin Function. - * Valid only for GPIO4 Pin */ -#define PMIC_LP8764X_GPIO_PINFUNC_GPIO4_ENABLE (1U) -/** \brief Used to configure SYNCCLKIN Pin Function. - * Valid only for GPIO5 Pin */ -#define PMIC_LP8764X_GPIO_PINFUNC_GPIO5_SYNCCLKIN (1U) -/** \brief Used to configure nERR_MCU Pin Function. - * Valid only for GPIO7 Pin */ -#define PMIC_LP8764X_GPIO_PINFUNC_GPIO6_GPIO7_NERR_MCU (1U) -/** \brief Used to configure SCLK_SPMI Pin Function. - * Valid only for GPIO8 Pin */ -#define PMIC_LP8764X_GPIO_PINFUNC_GPIO8_SCLK_SPMI (1U) -/** \brief Used to configure SDATA_SPMI Pin Function. - * Valid only for GPIO9 Pin */ -#define PMIC_LP8764X_GPIO_PINFUNC_GPIO9_SDATA_SPMI (1U) -/** \brief Used to configure nRSTOUT Pin Function. - * Valid only for GPIO10 Pin */ -#define PMIC_LP8764X_GPIO_PINFUNC_GPIO10_NRSTOUT (1U) -/** \brief Used to configure nRSTOUT_SOC Pin Function. - * Valid only for GPIO1 and GPIO10 Pins */ -#define PMIC_LP8764X_GPIO_PINFUNC_GPIO1_GPIO10_NRSTOUT_SOC (2U) -/** \brief Used to configure CS_SPI Pin Function. - * Valid only for GPIO2 Pin */ -#define PMIC_LP8764X_GPIO_PINFUNC_GPIO2_CS_SPI (2U) -/** \brief Used to configure SDO_SPI Pin Function. - * Valid only for GPIO3 Pin */ -#define PMIC_LP8764X_GPIO_PINFUNC_GPIO3_SDO_SPI (2U) -/** \brief Used to configure TRIG_WDOG Pin Function. - * Valid only for GPIO4 Pin */ -#define PMIC_LP8764X_GPIO_PINFUNC_GPIO4_TRIG_WDOG (2U) -/** \brief Used to configure SYNCCLKOUT Pin Function. - * Valid only for GPIO5 and GPIO6 Pins */ -#define PMIC_LP8764X_GPIO_PINFUNC_GPIO5_GPIO6_SYNCCLKOUT (2U) -/** \brief Used to configure REFOUT Pin Function. - * Valid only for GPIO7 Pins */ -#define PMIC_LP8764X_GPIO_PINFUNC_GPIO7_REFOUT (2U) -/** \brief Used to configure VMON2 Pin Function. - * Valid only for GPIO8 Pin */ -#define PMIC_LP8764X_GPIO_PINFUNC_GPIO8_VMON2 (2U) -/** \brief Used to configure PGOOD Pin Function. - * Valid only for GPIO9 Pin */ -#define PMIC_LP8764X_GPIO_PINFUNC_GPIO9_PGOOD (2U) -/** \brief Used to configure PGOOD Pin Function. - * Valid only for GPIO1 and GPIO6 Pins */ -#define PMIC_LP8764X_GPIO_PINFUNC_GPIO1_GPIO6_PGOOD (3U) -/** \brief Used to configure TRIG_WDOG Pin Function. - * Valid only for GPIO2 Pin */ -#define PMIC_LP8764X_GPIO_PINFUNC_GPIO2_TRIG_WDOG (3U) -/** \brief Used to configure BUCK1_VMON Pin Function. - * Valid only for GPIO4 Pin */ -#define PMIC_LP8764X_GPIO_PINFUNC_GPIO4_BUCK1_VMON (3U) -/** \brief Used to configure nRSTOUT_SOC Pin Function. - * Valid only for GPIO5 Pins */ -#define PMIC_LP8764X_GPIO_PINFUNC_GPIO5_NRSTOUT_SOC (3U) -/** \brief Used to configure VMON1 Pin Function. - * Valid only for GPIO7 Pin */ -#define PMIC_LP8764X_GPIO_PINFUNC_GPIO7_VMON1 (3U) -/** \brief Used to configure SYNCCLKIN Pin Function. - * Valid only for GPIO9 Pin */ -#define PMIC_LP8764X_GPIO_PINFUNC_GPIO9_SYNCCLKIN (3U) -/** \brief Used to configure NSLEEP1 Pin Function. - * Valid only for GPIO1 to GPIO10 Pins */ -#define PMIC_LP8764X_GPIO_PINFUNC_NSLEEP1 (4U) -/** \brief Used to configure NSLEEP2 Pin Function. - * Valid only for GPIO1 to GPIO10 Pins */ -#define PMIC_LP8764X_GPIO_PINFUNC_NSLEEP2 (5U) -/** \brief Used to configure WKUP1 Pin Function. - * Valid only for GPIO1 to GPIO10 Pins */ -#define PMIC_LP8764X_GPIO_PINFUNC_WKUP1 (6U) -/** \brief Used to configure WKUP2 Pin Function. - * Valid only for GPIO1 to GPIO10 Pins */ -#define PMIC_LP8764X_GPIO_PINFUNC_WKUP2 (7U) -/* @} */ - - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif/* PMIC_GPIO_LP8764X_H_ */ - -/* @} */ diff --git a/include/cfg/lp8764x/pmic_irq_lp8764x.h b/include/cfg/lp8764x/pmic_irq_lp8764x.h deleted file mode 100644 index fd20e9d..0000000 --- a/include/cfg/lp8764x/pmic_irq_lp8764x.h +++ /dev/null @@ -1,248 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ -/** - * \addtogroup DRV_PMIC_IRQ_MODULE - * - * @{ - */ - -/** - * \file pmic_irq_lp8764x.h - * - * \brief LP8764x Hera PMIC IRQ Driver API/interface file. - * - */ - -#ifndef PMIC_IRQ_LP8764X_H_ -#define PMIC_IRQ_LP8764X_H_ - -/* ========================================================================== */ -/* Include Files */ -/* ========================================================================== */ -#ifdef __cplusplus -extern "C" { -#endif - -/* ========================================================================== */ -/* Macros & Typedefs */ -/* ========================================================================== */ - -/** - * \anchor Pmic_lp8764x_IrqNum - * \name PMIC IRQ Interrupt values for LP8764x HERA PMIC Device. - * - * @{ - */ -/*! PMIC WDG RESET Interrupt */ -#define PMIC_LP8764X_WD_RST_INT (0U) -/*! PMIC WDG FAIL Interrupt */ -#define PMIC_LP8764X_WD_FAIL_INT (1U) -/*! PMIC WDG LONG WINDOW TIMEOUT Interrupt */ -#define PMIC_LP8764X_WD_LONGWIN_TIMEOUT_INT (2U) - -/*! PMIC ESM MCU RESET Interrupt */ -#define PMIC_LP8764X_ESM_MCU_RST_INT (3U) -/*! PMIC ESM MCU FAIL Interrupt */ -#define PMIC_LP8764X_ESM_MCU_FAIL_INT (4U) -/*! PMIC ESM MCU PIN Interrupt */ -#define PMIC_LP8764X_ESM_MCU_PIN_INT (5U) - -/*! PMIC NRSTOUT SOC READBACK Interrupt */ -#define PMIC_LP8764X_NRSTOUT_SOC_READBACK_INT (6U) -/*! PMIC EN DRV READBACK Interrupt */ -#define PMIC_LP8764X_EN_DRV_READBACK_INT (7U) - -/*! PMIC I2C2 ADDRESS ERROR Interrupt */ -#define PMIC_LP8764X_I2C2_ADR_ERR_INT (8U) -/*! PMIC I2C2 CRC ERROR Interrupt */ -#define PMIC_LP8764X_I2C2_CRC_ERR_INT (9U) -/*! PMIC I2C1/SPI COMM ADDRESS ERROR Interrupt */ -#define PMIC_LP8764X_COMM_ADR_ERR_INT (10U) -/*! PMIC I2C1/SPI COMM CRC ERROR Interrupt */ -#define PMIC_LP8764X_COMM_CRC_ERR_INT (11U) -/*! PMIC SPI COMM FRAME ERROR Interrupt */ -#define PMIC_LP8764X_COMM_FRM_ERR_INT (12U) - -/*! PMIC SOC POWER ERR Interrupt */ -#define PMIC_LP8764X_SOC_PWR_ERR_INT (13U) -/*! PMIC MCU POWER ERR Interrupt */ -#define PMIC_LP8764X_MCU_PWR_ERR_INT (14U) -/*! PMIC ORDERLY SHUTDOWN Interrupt */ -#define PMIC_LP8764X_ORD_SHUTDOWN_INT (15U) -/*! PMIC IMMEDIATE SHUTDOWN Interrupt */ -#define PMIC_LP8764X_IMM_SHUTOWN_INT (16U) - -/*! PMIC PFSM ERROR Interrupt */ -#define PMIC_LP8764X_PFSM_ERR_INT (17U) -/*! PMIC VCCA Over-Voltage Interrupt */ -#define PMIC_LP8764X_VCCA_OVP_INT (18U) -/*! PMIC Thermal Threshold Immediate Shutdown Interrupt */ -#define PMIC_LP8764X_TSD_IMM_INT (19U) - -/*! PMIC NRSTOUT Readback Error Interrupt */ -#define PMIC_LP8764X_NRSTOUT_READBACK_INT (20U) -/*! PMIC NINT Readback Error Interrupt */ -#define PMIC_LP8764X_NINT_READBACK_INT (21U) -/*! PMIC SPMI Interface Error Interrupt */ -#define PMIC_LP8764X_SPMI_ERR_INT (22U) -/*! PMIC RECOV_CNT Threshold Interrupt */ -#define PMIC_LP8764X_RECOV_CNT_INT (23U) -/*! PMIC Register CRC Error Interrupt */ -#define PMIC_LP8764X_REG_CRC_ERR_INT (24U) -/*! PMIC LBIST/ABIST Error Interrupt */ -#define PMIC_LP8764X_BIST_FAIL_INT (25U) -/*! PMIC Thermal Shutdown Orderly Interrupt */ -#define PMIC_LP8764X_TSD_ORD_INT (26U) - -/*! PMIC Thermal Warning Interrupt */ -#define PMIC_LP8764X_TWARN_INT (27U) -/*! PMIC External Clock Interrupt */ -#define PMIC_LP8764X_EXT_CLK_INT (28U) -/*! PMIC BIST PASS Interrupt */ -#define PMIC_LP8764X_BIST_PASS_INT (29U) - -/*! PMIC First Supply Detection Interrupt */ -#define PMIC_LP8764X_FSD_INT (30U) -/*! PMIC ENABLE Interrupt */ -#define PMIC_LP8764X_ENABLE_INT (31U) - -/*! PMIC GPIO PIN 8 Interrupt */ -#define PMIC_LP8764X_GPIO8_INT (32U) -/*! PMIC GPIO PIN 7 Interrupt */ -#define PMIC_LP8764X_GPIO7_INT (33U) -/*! PMIC GPIO PIN 6 Interrupt */ -#define PMIC_LP8764X_GPIO6_INT (34U) -/*! PMIC GPIO PIN 5 Interrupt */ -#define PMIC_LP8764X_GPIO5_INT (35U) -/*! PMIC GPIO PIN 4 Interrupt */ -#define PMIC_LP8764X_GPIO4_INT (36U) -/*! PMIC GPIO PIN 3 Interrupt */ -#define PMIC_LP8764X_GPIO3_INT (37U) -/*! PMIC GPIO PIN 2 Interrupt */ -#define PMIC_LP8764X_GPIO2_INT (38U) -/*! PMIC GPIO PIN 1 Interrupt */ -#define PMIC_LP8764X_GPIO1_INT (39U) -/*! PMIC GPIO PIN 10 Interrupt */ -#define PMIC_LP8764X_GPIO10_INT (40U) -/*! PMIC GPIO PIN 9 Interrupt */ -#define PMIC_LP8764X_GPIO9_INT (41U) - -/*! PMIC VMON2 Residual Voltage Threshold Interrupt */ -#define PMIC_LP8764X_VMON2_RV_INT (42U) -/*! PMIC VMON2 Under-Voltage Interrupt */ -#define PMIC_LP8764X_VMON2_UV_INT (43U) -/*! PMIC VMON2 Over-Voltage Interrupt */ -#define PMIC_LP8764X_VMON2_OV_INT (44U) -/*! PMIC VMON1 Residual Voltage Threshold Interrupt */ -#define PMIC_LP8764X_VMON1_RV_INT (45U) -/*! PMIC VMON1 Under-Voltage Interrupt */ -#define PMIC_LP8764X_VMON1_UV_INT (46U) -/*! PMIC VMON1 Over-Voltage Interrupt */ -#define PMIC_LP8764X_VMON1_OV_INT (47U) -/*! PMIC VCCA Under-Voltage Interrupt */ -#define PMIC_LP8764X_VCCA_UV_INT (48U) -/*! PMIC VCCA Over-Voltage Interrupt */ -#define PMIC_LP8764X_VCCA_OV_INT (49U) - -/*! PMIC BUCK4 Current Limit Interrupt */ -#define PMIC_LP8764X_BUCK4_ILIM_INT (50U) -/*! PMIC BUCK4 SC Interrupt */ -#define PMIC_LP8764X_BUCK4_SC_INT (51U) -/*! PMIC BUCK4 Under-Voltage Interrupt */ -#define PMIC_LP8764X_BUCK4_UV_INT (52U) -/*! PMIC BUCK4 Over-Voltage Interrupt */ -#define PMIC_LP8764X_BUCK4_OV_INT (53U) - -/*! PMIC BUCK3 Current Limit Interrupt */ -#define PMIC_LP8764X_BUCK3_ILIM_INT (54U) -/*! PMIC BUCK3 SC Interrupt */ -#define PMIC_LP8764X_BUCK3_SC_INT (55U) -/*! PMIC BUCK3 Under-Voltage Interrupt */ -#define PMIC_LP8764X_BUCK3_UV_INT (56U) -/*! PMIC BUCK4 Over-Voltage Interrupt */ -#define PMIC_LP8764X_BUCK3_OV_INT (57U) - -/*! PMIC BUCK2 Current Limit Interrupt */ -#define PMIC_LP8764X_BUCK2_ILIM_INT (58U) -/*! PMIC BUCK2 SC Interrupt */ -#define PMIC_LP8764X_BUCK2_SC_INT (59U) -/*! PMIC BUCK2 Under-Voltage Interrupt */ -#define PMIC_LP8764X_BUCK2_UV_INT (60U) -/*! PMIC BUCK2 Over-Voltage Interrupt */ -#define PMIC_LP8764X_BUCK2_OV_INT (61U) - -/*! PMIC BUCK1 Current Limit Interrupt */ -#define PMIC_LP8764X_BUCK1_ILIM_INT (62U) -/*! PMIC BUCK1 SC Interrupt */ -#define PMIC_LP8764X_BUCK1_SC_INT (63U) -/*! PMIC BUCK1 Under-Voltage Interrupt */ -#define PMIC_LP8764X_BUCK1_UV_INT (64U) -/*! PMIC BUCK1 Over-Voltage Interrupt */ -#define PMIC_LP8764X_BUCK1_OV_INT (65U) - -/*! PMIC SOFT REBOOT Startup Interrupt */ -#define PMIC_LP8764X_SOFT_REBOOT_INT (66U) - -/*! PMIC Max Interrupt Number on PG1.0 */ -#define PMIC_LP8764X_IRQ_MAX_NUM_PG_1_0 (66U) -/*! PMIC Max Interrupt Number on PG2.0*/ -#define PMIC_LP8764X_IRQ_MAX_NUM_PG_2_0 (67U) - -/* @} */ - -/** - * \anchor Pmic_lp8764x_IrqGpioNum - * \name PMIC GPIO Interrupt Mask values for tps6594x. - * - * @{ - */ -#define PMIC_LP8764X_IRQ_GPIO_1_INT_MASK_NUM (0U) -#define PMIC_LP8764X_IRQ_GPIO_2_INT_MASK_NUM (1U) -#define PMIC_LP8764X_IRQ_GPIO_3_INT_MASK_NUM (2U) -#define PMIC_LP8764X_IRQ_GPIO_4_INT_MASK_NUM (3U) -#define PMIC_LP8764X_IRQ_GPIO_5_INT_MASK_NUM (4U) -#define PMIC_LP8764X_IRQ_GPIO_6_INT_MASK_NUM (5U) -#define PMIC_LP8764X_IRQ_GPIO_7_INT_MASK_NUM (6U) -#define PMIC_LP8764X_IRQ_GPIO_8_INT_MASK_NUM (7U) -#define PMIC_LP8764X_IRQ_GPIO_9_INT_MASK_NUM (8U) -#define PMIC_LP8764X_IRQ_GPIO_10_INT_MASK_NUM (9U) - -/* @} */ - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif/* PMIC_IRQ_LP8764X_H_ */ - -/* @} */ diff --git a/include/cfg/lp8764x/pmic_power_lp8764x.h b/include/cfg/lp8764x/pmic_power_lp8764x.h deleted file mode 100644 index 941df85..0000000 --- a/include/cfg/lp8764x/pmic_power_lp8764x.h +++ /dev/null @@ -1,619 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ -/** - * \addtogroup DRV_PMIC_POWER_MODULE - * - * @{ - */ - -/** - * \file pmic_power_lp8764x.h - * - * \brief PMIC LP8764x Leo PMIC Power Resources Driver API/interface file - * - */ - -#ifndef PMIC_POWER_LP8764X_H_ -#define PMIC_POWER_LP8764X_H_ - -/* ========================================================================== */ -/* Include Files */ -/* ========================================================================== */ -#ifdef __cplusplus -extern "C" { -#endif - -/* ========================================================================== */ -/* Macros & Typedefs */ -/* ========================================================================== */ - -/** - * \anchor Pmic_Lp8764xHera_Power_ResourceType - * \name PMIC Power Resource Type for LEO TPS6594x - * - * @{ - */ -#define PMIC_LP8764X_POWER_RESOURCE_TYPE_VCCA (0U) -#define PMIC_LP8764X_POWER_RESOURCE_TYPE_BUCK (1U) -#define PMIC_LP8764X_POWER_RESOURCE_TYPE_LDO (2U) -#define PMIC_LP8764X_POWER_RESOURCE_TYPE_VMON (3U) -/* @} */ - -/** - * \anchor Pmic_Lp8764xHera_Power_Resource - * \name PMIC Power Resources for HERA lp8764x - * - * @{ - */ -#define PMIC_LP8764X_POWER_SOURCE_VCCA \ - ((((uint16_t)PMIC_LP8764X_POWER_RESOURCE_TYPE_VCCA << 8U) | 0x0U)) -#define PMIC_LP8764X_REGULATOR_BUCK1 \ - ((((uint16_t)PMIC_LP8764X_POWER_RESOURCE_TYPE_BUCK << 8U) | 0x1U)) -#define PMIC_LP8764X_REGULATOR_BUCK2 \ - ((((uint16_t)PMIC_LP8764X_POWER_RESOURCE_TYPE_BUCK << 8U) | 0x2U)) -#define PMIC_LP8764X_REGULATOR_BUCK3 \ - ((((uint16_t)PMIC_LP8764X_POWER_RESOURCE_TYPE_BUCK << 8U) | 0x3U)) -#define PMIC_LP8764X_REGULATOR_BUCK4 \ - ((((uint16_t)PMIC_LP8764X_POWER_RESOURCE_TYPE_BUCK << 8U) | 0x4U)) -#define PMIC_LP8764X_POWER_SOURCE_VMON1 \ - ((((uint16_t)PMIC_LP8764X_POWER_RESOURCE_TYPE_VMON << 8U) | 0x5U)) -#define PMIC_LP8764X_POWER_SOURCE_VMON2 \ - ((((uint16_t)PMIC_LP8764X_POWER_RESOURCE_TYPE_VMON << 8U) | 0x6U)) -/* @} */ - -/** - * \anchor Pmic_LP8764x_Regulator_Vmon_RV_Check - * \name PMIC Residual voltage check Enable/Disable - * - * Valid only for VMON1, VMON2, LDO, BUCK - * - * @{ - */ -/** \brief Used to enable the residual voltage check */ -#define PMIC_LP8764X_REGULATOR_VMON_RV_SEL_ENABLE (0x1U) -/** \brief Used to disable the residual voltage check */ -#define PMIC_LP8764X_REGULATOR_VMON_RV_SEL_DISABLE (0x0U) -/* @} */ - -/** - * \anchor Pmic_LP8764x_Buck_Pull_Down_Resistor - * \name PMIC Pull-down resistor Enable/Disable for BUCK Regulator. - * - * @{ - */ -/** \brief Used to enable the pull down resistor for BUCK regulator */ -#define PMIC_LP8764X_REGULATOR_BUCK_PLDN_ENABLE (0x1U) -/** \brief Used to disable the pull down resistor for BUCK regulator */ -#define PMIC_LP8764X_REGULATOR_BUCK_PLDN_DISABLE (0x0U) -/* @} */ - -/** - * \anchor Pmic_LP8764x_Vmon_Enable - * \name PMIC Voltage monitor Enable/Disable for BUCK/VMON1/VMON2/VCCA. \ - * Enable/Disable OV and UV comparators for VMON1/VMON2/VCCA. \ - * Enable/Disable OV, UV, SC and ILIM for BUCK \ - * - * @{ - */ -/** \brief Used to disable the voltage monitor */ -#define PMIC_LP8764X_VMON_DISABLE (0x0U) -/** \brief Used to enable the voltage monitor */ -#define PMIC_LP8764X_VMON_ENABLE (0x1U) -/* @} */ - -/** - * \anchor Pmic_LP8764x_Regulator_Buck_Vout_Sel - * \name PMIC Select output voltage register for BUCK. - * - * Valid only for BUCK Regulator - * - * @{ - */ -/** \brief Used to select VOUT2 register for voltage selection */ -#define PMIC_LP8764X_REGULATOR_BUCK_VOUT_SEL_VOUT2 (bool)true -/** \brief Used to select VOUT1 register for voltage selection */ -#define PMIC_LP8764X_REGULATOR_BUCK_VOUT_SEL_VOUT1 (bool)false -/* @} */ - -/** - * \anchor Pmic_LP8764x_Regulator_Pwm_Pfm_Mode - * \name PMIC Select between Automatic transitions between PFM and PWM \ - * modes OR Forced to PWM operation - * - * Valid only for BUCK regulators. - * - * @{ - */ -/** \brief Used to select PWM mode */ -#define PMIC_LP8764X_REGULATOR_PWM_MODE (0x1U) -/** \brief Used to select Automatic transition between PFM and PWM modes */ -#define PMIC_LP8764X_REGULATOR_AUTO_PWM_PFM_MODE (0x0U) -/* @} */ - -/** - * \anchor PMIC_LP8764X_Regulator_Pwm_Mp_Mode - * \name PMIC Select btetween multi-phase operation OR \ - * AUTO mode with Automatic phase adding and shedding. - * - * Valid only for BUCK regulators. - * - * @{ - */ -/** \brief Used to select multi-phase operation */ -#define PMIC_LP8764X_REGULATOR_PWM_MP_MODE (0x1U) -/** \brief Used to select Automatic phase adding and shedding mode */ -#define PMIC_LP8764X_REGULATOR_AUTO_PHASE_MODE (0x0U) -/* @} */ - -/** - * \anchor Pmic_LP8764x_Buck_Regulator_enable - * \name PMIC Enable/Disable BUCK Regulator. - * - * @{ - */ -/** \brief Used to enable the BUCK regulator */ -#define PMIC_LP8764X_BUCK_REGULATOR_ENABLE (0x1U) -/** \brief Used to disable the BUCK regulator */ -#define PMIC_LP8764X_BUCK_REGULATOR_DISABLE (0x0U) -/* @} */ - -/** - * \anchor Pmic_LP8764x_Vmon_DeglitchTime_Sel - * \name PMIC Deglitch time select for BUCKx_VMON/VCCA_VMON/VMONx - * - * @{ - */ -/** \brief Used to select the degitch time as 4 usec */ -#define PMIC_LP8764X_POWER_RESOURCE_DEGLITCH_SEL_4US (0x0U) -/** \brief Used to select the degitch time as 20 usec */ -#define PMIC_LP8764X_POWER_RESOURCE_DEGLITCH_SEL_20US (0x1U) -/* @} */ - -/** - * \anchor Pmic_LP8764x_VccaPowerGoodLimit - * \name PMIC Powergood level for VCCA - * - * @{ - */ -/** \brief Used to select the powergood level for VCCA to be 3.3v */ -#define PMIC_LP8764X_VCCA_PG_3V3_LEVEL (0x0U) -/** \brief Used to select the powergood level for VCCA to be 5v */ -#define PMIC_LP8764X_VCCA_PG_5V_LEVEL (0x1U) -/* @} */ - -/** - * \anchor Pmic_LP8764x_Power_Vmon_Range - * \name OV/UV voltage monitoring range selection for VMON1/VMON2 - * - * @{ - */ -/** \brief Used to select range 0.3 -3.34V */ -#define PMIC_LP8764X_VMON_RANGE_0V3_3V34 (bool)false -/** \brief Used to select range 3.5 -5V */ -#define PMIC_LP8764X_VMON_RANGE_3V35_5V (bool)true -/* @} */ - -/** - * \anchor Pmic_LP8764x_Buck_Current_Limit - * \name PMIC Switch Peak Current limit for BUCK Regulator - * - * @{ - */ -/** \brief Used to configure BUCK current limit as 2.5 Ampere */ -#define PMIC_LP8764X_REGULATOR_BUCK_CURRENT_LIMIT_2A5 (0x2U) -/** \brief Used to configure BUCK current limit as 3.5 Ampere */ -#define PMIC_LP8764X_REGULATOR_BUCK_CURRENT_LIMIT_3A5 (0x3U) -/** \brief Used to configure BUCK current limit as 4.5 Ampere */ -#define PMIC_LP8764X_REGULATOR_BUCK_CURRENT_LIMIT_4A5 (0x4U) -/** \brief Used to configure BUCK current limit as 5.5 Ampere */ -#define PMIC_LP8764X_REGULATOR_BUCK_CURRENT_LIMIT_5A5 (0x5U) -/** \brief Used to configure BUCK current limit as 6.5 Ampere */ -#define PMIC_LP8764X_REGULATOR_BUCK_CURRENT_LIMIT_6A5 (0x6U) -/* @} */ - -/** - * \anchor Pmic_LP8764x_Buck_Vmon_Slew_Rate - * \name PMIC Output voltage slew rate for BUCKx/VMONx - * - * @{ - */ -/** \brief Used to configure BUCK current limit as 30mv */ -#define PMIC_LP8764X_REGULATOR_BUCK_VMON_SLEW_RATE_33MV (0x0U) -/** \brief Used to configure BUCK current limit as 20mv */ -#define PMIC_LP8764X_REGULATOR_BUCK_VMON_SLEW_RATE_20MV (0x1U) -/** \brief Used to configure BUCK current limit as 10mv */ -#define PMIC_LP8764X_REGULATOR_BUCK_VMON_SLEW_RATE_10MV (0x2U) -/** \brief Used to configure BUCK current limit as 5mv */ -#define PMIC_LP8764X_REGULATOR_BUCK_VMON_SLEW_RATE_05MV (0x3U) -/** \brief Used to configure BUCK current limit as 2.5mv */ -#define PMIC_LP8764X_REGULATOR_BUCK_VMON_SLEW_RATE_2MV5 (0x4U) -/** \brief Used to configure BUCK current limit as 1.3mv */ -#define PMIC_LP8764X_REGULATOR_BUCK_VMON_SLEW_RATE_1MV3 (0x5U) -/** \brief Used to configure BUCK current limit as 0.63mv */ -#define PMIC_LP8764X_REGULATOR_BUCK_VMON_SLEW_RATE_0MV63 (0x6U) -/** \brief Used to configure BUCK current limit as 0.31mv */ -#define PMIC_LP8764X_REGULATOR_BUCK_VMON_SLEW_RATE_0MV31 (0x7U) -/* @} */ - -/** - * \anchor Pmic_LP8764x_Pg_Ov_Uv_Threshold_lvl - * \name PMIC Power Good Over/Under voltage threshold level for BUCK/LDO/VCCA - * - * For LDO/BUCK - Over/Under Volatge thershold level are +x1 mv/ +x2 % - * or -x1 mv/ -x2 % respectively. For VCCA only perc - * For VCCA - Over/Under Volatge thershold level are +x2 % or -x2 % - * respectively. - * @{ - */ -/** \brief Used to select over/under voltage threshold level as +/-30mv or - * +/-3% - */ -#define PMIC_LP8764X_PG_OV_UV_THRESHOLD_LVL_30_OR_3 (0U) -/** \brief Used to select over/under voltage threshold level as +/-35mv or - * +/-3.5% - */ -#define PMIC_LP8764X_PG_OV_UV_THRESHOLD_LVL_35_OR_3P5 (1U) -/** \brief Used to select over/under voltage threshold level as +/-40mv or - * +/-4% - */ -#define PMIC_LP8764X_PG_OV_UV_THRESHOLD_LVL_40_OR_4 (2U) -/** \brief Used to select over/under voltage threshold level as +/-50mv or - * +/-5% - */ -#define PMIC_LP8764X_PG_OV_UV_THRESHOLD_LVL_50_OR_5 (3U) -/** \brief Used to select over/under voltage threshold level as +/-60mv or - * +/-6% - */ -#define PMIC_LP8764X_PG_OV_UV_THRESHOLD_LVL_60_OR_6 (4U) -/** \brief Used to select over/under voltage threshold level as +/-70mv or - * +/-7% - */ -#define PMIC_LP8764X_PG_OV_UV_THRESHOLD_LVL_70_OR_7 (5U) -/** \brief Used to select over/under voltage threshold level as +/-80mv or - * +/-8% - */ -#define PMIC_LP8764X_PG_OV_UV_THRESHOLD_LVL_80_OR_8 (6U) -/** \brief Used to select over/under voltage threshold level as +/-100mv or - * +/-10% - */ -#define PMIC_LP8764X_PG_OV_UV_THRESHOLD_LVL_100_OR_10 (7U) -/* @} */ - -/** - * \anchor Pmic_LP8764x_Power_Rail_Sel - * \name PMIC Rail group selection for all power resources. - * - * @{ - */ -/** \brief Used to select rail group as no group - * Note: Software can prevent the SoC/MCU Power Error Handling, which - * normally shuts down the SOC/MCU power rails, by setting the relevent - * regulators to PMIC_LP8764X_POWER_RAIL_SEL_NONE - */ -#define PMIC_LP8764X_POWER_RAIL_SEL_NONE (0x0U) -/** \brief Used to select rail group as MCU rail group */ -#define PMIC_LP8764X_POWER_RAIL_SEL_MCU (0x1U) -/** \brief Used to select rail group as SOC rail group */ -#define PMIC_LP8764X_POWER_RAIL_SEL_SOC (0x2U) -/** \brief Used to select rail group as other rail group */ -#define PMIC_LP8764X_POWER_RAIL_SEL_OTHER (0x3U) -/* @} */ - -/** - * \anchor Pmic_Lp8764xHera_Pgood_SourceType - * \name PMIC Power-Good source Type for HERA LP8764x - * - * @{ - */ -#define PMIC_LP8764X_PGOOD_SOURCE_TYPE_VCCA (0U) -#define PMIC_LP8764X_PGOOD_SOURCE_TYPE_BUCK (1U) -#define PMIC_LP8764X_PGOOD_SOURCE_TYPE_NRSTOUT (2U) -#define PMIC_LP8764X_PGOOD_SOURCE_TYPE_NRSTOUT_SOC (3U) -#define PMIC_LP8764X_PGOOD_SOURCE_TYPE_TDIE (4U) -/* LDO type is not supported by HERA LP8764X PMIC */ -#define PMIC_LP8764X_PGOOD_SOURCE_TYPE_VMON (6U) -/* @} */ - -/** - * \anchor Pmic_Lp8764xHera_Pgood_Source - * \name PMIC Power-Good sources for HERA LP8764x - * - * @{ - */ -#define PMIC_LP8764X_PGOOD_SOURCE_VCCA \ - ((((uint16_t)PMIC_LP8764X_PGOOD_SOURCE_TYPE_VCCA << 8U) | 0U)) -#define PMIC_LP8764X_PGOOD_SOURCE_BUCK1 \ - ((((uint16_t)PMIC_LP8764X_PGOOD_SOURCE_TYPE_BUCK << 8U) | 1U)) -#define PMIC_LP8764X_PGOOD_SOURCE_BUCK2 \ - ((((uint16_t)PMIC_LP8764X_PGOOD_SOURCE_TYPE_BUCK << 8U) | 2U)) -#define PMIC_LP8764X_PGOOD_SOURCE_BUCK3 \ - ((((uint16_t)PMIC_LP8764X_PGOOD_SOURCE_TYPE_BUCK << 8U) | 3U)) -#define PMIC_LP8764X_PGOOD_SOURCE_BUCK4 \ - ((((uint16_t)PMIC_LP8764X_PGOOD_SOURCE_TYPE_BUCK << 8U) | 4U)) -#define PMIC_LP8764X_PGOOD_SOURCE_NRSTOUT \ - ((((uint16_t)PMIC_LP8764X_PGOOD_SOURCE_TYPE_NRSTOUT << 8U) | 5U)) -#define PMIC_LP8764X_PGOOD_SOURCE_NRSTOUT_SOC \ - ((((uint16_t)PMIC_LP8764X_PGOOD_SOURCE_TYPE_NRSTOUT_SOC << 8U) | 6U)) -#define PMIC_LP8764X_PGOOD_SOURCE_TDIE \ - ((((uint16_t)PMIC_LP8764X_PGOOD_SOURCE_TYPE_TDIE << 8U) | 7U)) -#define PMIC_LP8764X_PGOOD_SOURCE_VMON1 \ - ((((uint16_t)PMIC_LP8764X_PGOOD_SOURCE_TYPE_VMON << 8U) | 8U)) -#define PMIC_LP8764X_PGOOD_SOURCE_VMON2 \ - ((((uint16_t)PMIC_LP8764X_PGOOD_SOURCE_TYPE_VMON << 8U) | 9U)) -/* @} */ - -/** - * \anchor Pmic_LP8764x_Power_Good_Window - * \name Type of voltage monitoring for PGOOD signal: - * - * @{ - */ -/** \brief Only undervoltage is monitored */ -#define PMIC_LP8764X_POWER_GOOD_UV_MONITOR_ENABLE (0x0U) -/** \brief Both undervoltage and overvoltage are monitored */ -#define PMIC_LP8764X_POWER_GOOD_UV_OV_MONITOR_ENABLE (0x1U) -/* @} */ - -/** - * \anchor Pmic_LP8764x_Power_Good_Polarity - * \name PGOOD signal polarity - * - * @{ - */ -/** \brief PGOOD signal is high when monitored inputs are valid */ -#define PMIC_LP8764X_POWER_PGOOD_POL_HIGH (0x0U) -/** \brief PGOOD signal is low when monitored inputs are valid */ -#define PMIC_LP8764X_POWER_PGOOD_POL_LOW (0x1U) -/* @} */ - -/** - * \anchor Pmic_LP8764x_Power_Good_Nrstout_Soc - * \name PGOOD signal source control from nRSTOUT_SOC pin - * - * @{ - */ -/** \brief Signal is Masked */ -#define PMIC_LP8764X_POWER_PGOOD_SEL_NRSTOUT_SOC_MASKED (0x0U) -/** \brief nRSTOUT_SOC pin low state forces PGOOD signal to low */ -#define PMIC_LP8764X_POWER_PGOOD_SEL_NRSTOUT_SOC (0x1U) -/* @} */ - -/** - * \anchor Pmic_LP8764x_Power_Good_Nrstout - * \name PGOOD signal source control from nRSTOUT pin - * - * @{ - */ -/** \brief Signal is Masked */ -#define PMIC_LP8764X_POWER_PGOOD_SEL_NRSTOUT_MASKED (0x0U) -/** \brief nRSTOUT pin low state forces PGOOD signal to low */ -#define PMIC_LP8764X_POWER_PGOOD_SEL_NRSTOUT (0x1U) -/* @} */ - -/** - * \anchor Pmic_LP8764x_Power_Good_Thermal_Warn - * \name PGOOD signal source control from thermal warning - * - * @{ - */ -/** \brief Signal is Masked */ -#define PMIC_LP8764X_POWER_PGOOD_SEL_TDIE_WARN_MASKED (0x0U) -/** \brief Thermal warning affecting to PGOOD signal */ -#define PMIC_LP8764X_POWER_PGOOD_SEL_TDIE_WARN (0x1U) -/* @} */ - -/** - * \anchor Pmic_LP8764x_Power_Good_Vcca_Vmon - * \name PGOOD signal source control from VCCA monitoring - * - * @{ - */ -/** \brief Signal is Masked */ -#define PMIC_LP8764X_POWER_PGOOD_SEL_VCCA_VMON_DISABLE (0x0U) -/** \brief VCCA/VMON OV/UV threshold affecting PGOOD signal */ -#define PMIC_LP8764X_POWER_PGOOD_SEL_VCCA_VMON_ENABLE (0x1U) -/* @} */ - -/** - * \anchor Pmic_LP8764x_Power_Good_Buck_Signal - * \name PGOOD signal source control for BUCK and LDO monitoring - * - * @{ - */ -/** \brief Signal is Masked */ -#define PMIC_LP8764X_POWER_PGOOD_SEL_SRC_MASKED (0x0U) -/** \brief Powergood threshold voltage */ -#define PMIC_LP8764X_POWER_PGOOD_SEL_SRC_VOLTAGE (0x1U) -/** \brief Powergood threshold voltage AND current limit */ -#define PMIC_LP8764X_POWER_PGOOD_SEL_SRC_VOLTAGE_CURRENT (0x2U) -/* @} */ - -/** - * \anchor Pmic_LP8764x_Power_Current_Status - * \name Status whether the output current is above/below current limit level - * - * @{ - */ -/** \brief Status indicating that output current is above current limit - level. */ -#define PMIC_LP8764X_POWER_CURRENT_LIMIT_STATUS_ABOVE_LIMIT (0x0U) -/** \brief Status indicating that output current is below current limit - level. */ -#define PMIC_LP8764X_POWER_CURRENT_LIMIT_STATUS_BELOW_LIMIT (0x1U) -/* @} */ - -/** - * \anchor Pmic_LP8764x_Regulator_Under_Voltage_Status - * \name Status whether the output voltage is above/below voltage threshold \ - * for LDO and BUCK - * - * @{ - */ -/** \brief Status indicating that output voltage is above under-voltage - threshold -*/ -#define PMIC_LP8764X_REGULATOR_OUTPUT_UNDER_VOLTAGE_STATUS_ABOVE_UV (0x0U) -/** \brief Status indicating that output voltage is below under-voltage - threshold -*/ -#define PMIC_LP8764X_REGULATOR_OUTPUT_UNDER_VOLTAGE_STATUS_BELOW_UV (0x1U) -/* @} */ - -/** - * \anchor Pmic_LP8764x_Vcca_Vmon_Under_Voltage_Status - * \name Status whether the input voltage is above/below under-voltage level \ - * for VCCA/VMON - * - * @{ - */ -/** \brief Status indicating that input voltage is above under-voltage -level */ -#define PMIC_LP8764X_VCCA_VMON_INPUT_UNDER_VOLTAGE_STATUS_ABOVE_UV (0x0U) -/** \brief Status indicating that input voltage is below under-voltage -level */ -#define PMIC_LP8764X_VCCA_VMON_INPUT_UNDER_VOLTAGE_STATUS_BELOW_UV (0x1U) -/* @} */ - -/** - * \anchor Pmic_LP8764x_Regulator_Over_Voltage_Status - * \name Status whether the output voltage is above/below voltage threshold \ - * for LDO and BUCK - * - * @{ - */ -/** \brief Status indicating that output voltage is above over-voltage - threshold -*/ -#define PMIC_LP8764X_REGULATOR_OUTPUT_OVER_VOLTAGE_STATUS_ABOVE_OV (0x0U) -/** \brief Status indicating that output voltage is below over-voltage - threshold -*/ -#define PMIC_LP8764X_REGULATOR_OUTPUT_OVER_VOLTAGE_STATUS_BELOW_OV (0x1U) -/* @} */ - -/** - * \anchor Pmic_LP8764x_Vcca_Vmon_Over_Voltage_Status - * \name Status whether the input voltage is above/below over-voltage level \ - * for VCCA/VMON - * - * @{ - */ -/** \brief Status indicating that input voltage is above over-voltage -level */ -#define PMIC_LP8764X_VCCA_VMON_INPUT_OVER_VOLTAGE_STATUS_ABOVE_OV (0x0U) -/** \brief Status indicating that input voltage is below over-voltage -level */ -#define PMIC_LP8764X_VCCA_VMON_INPUT_OVER_VOLTAGE_STATUS_BELOW_OV (0x1U) -/* @} */ - -/** - * \anchor Pmic_LP8764x_Vcca_Voltage_Status - * \name Status whether the voltage is above/below over-voltage protection \ - * level for VCCA - * - * @{ - */ -/** \brief Status indicating that voltage is above over-voltage protection -level */ -#define PMIC_LP8764X_VCCA_OVER_VOLTAGE_LVL_STATUS_ABOVE_OV (0x0U) -/** \brief Status indicating that voltage is below over-voltage protection -level */ -#define PMIC_LP8764X_VCCA_OVER_VOLTAGE_LVL_STATUS_BELOW_OV (0x1U) -/* @} */ - -/** - * \anchor Pmic_LP8764x_Power_Thermal_Shutdown_Level - * \name PMIC Thermal shutdown threshold level. - * - * @{ - */ -/** \brief Used to set the Thermal shutdown threshold level to 140 Celsius */ -#define PMIC_LP8764X_THERMAL_TEMP_TSD_ORD_140C (0U) -/** \brief Used to set the Thermal shutdown threshold level to 145 Celsius */ -#define PMIC_LP8764X_THERMAL_TEMP_TSD_ORD_145C (1U) -/* @} */ - -/** - * \anchor Pmic_LP8764x_Pwr_Thermal_Warn_Lvl - * \name PMIC Thermal warning threshold level. - * - * @{ - */ -/** \brief Used to set the Thermal warning threshold level to 120 Celsius */ -#define PMIC_LP8764X_THERMAL_TEMP_WARN_120C (0U) -/** \brief Used to set the Thermal warning threshold level to 130 Celsius */ -#define PMIC_LP8764X_THERMAL_TEMP_WARN_130C (1U) -/* @} */ - -/** - * \anchor Pmic_LP8764x_PowerInterruptType - * \name PMIC Power Interrupt selection - * - * @{ - */ -#define PMIC_LP8764X_POWER_OV_INT (0U) -#define PMIC_LP8764X_POWER_UV_INT (1U) -#define PMIC_LP8764X_POWER_ILIM_INT (3U) -/* @} */ - -/** - * \anchor Pmic_LP8764x_PowerInterruptCommonType - * \name PMIC Power Interrupt selection - * - * @{ - */ -#define PMIC_LP8764X_POWER_INTERRUPT_TWARN (0U) -#define PMIC_LP8764X_POWER_INTERRUPT_NRSTOUT_READBACK (1U) -#define PMIC_LP8764X_POWER_INTERRUPT_SOC_PWR_ERR (2U) -#define PMIC_LP8764X_POWER_INTERRUPT_MCU_PWR_ERR (3U) -#define PMIC_LP8764X_POWER_INTERRUPT_ORD_SHUTDOWN (4U) -#define PMIC_LP8764X_POWER_INTERRUPT_IMM_SHUTDOWN (5U) -#define PMIC_LP8764X_POWER_INTERRUPT_NRSTOUT_SOC_READBACK (6U) -#define PMIC_LP8764X_POWER_INTERRUPT_EN_DRV_READBACK (7U) -/* @} */ - -/*==========================================================================*/ -/* Structures and Enums */ -/*==========================================================================*/ - -/*==========================================================================*/ -/* Function Declarations */ -/*==========================================================================*/ - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif/* PMIC_POWER_LP8764X_H_ */ - -/* @} */ diff --git a/include/cfg/tps6594x/pmic_core_tps6594x.h b/include/cfg/tps6594x/pmic_core_tps6594x.h deleted file mode 100644 index d0b3212..0000000 --- a/include/cfg/tps6594x/pmic_core_tps6594x.h +++ /dev/null @@ -1,164 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ - -/** - * \file pmic_core_tps6594x.h - * - * \brief The macro definitions for TPS6594x Leo PMIC driver specific - * PMIC common configuration - */ - -#ifndef PMIC_CORE_TPS6594X_H_ -#define PMIC_CORE_TPS6594X_H_ - -/* ========================================================================== */ -/* Include Files */ -/* ========================================================================== */ - - -#ifdef __cplusplus -extern "C" { -#endif - -/* ========================================================================== */ -/* Macros & Typedefs */ -/* ========================================================================== */ - -/* On J721E 1.0 EVM, PMIC_TPS6594X_DEV_REV_ID is 0x04 */ -#define PMIC_TPS6594X_DEV_REV_ID_PG_1_0 (0x04U) - -/* On J721E 2.0 EVM, PMIC_TPS6594X_DEV_REV_ID is 0x41 */ -#define PMIC_TPS6594X_DEV_REV_ID_PG_2_0 (0x41U) - -/** - * \anchor Pmic_Tps6594xLeo_EepromDef_LdCfg - * \name PMIC EEPROM Defaults Load to RTC Domain Bits Configuration - * - * @{ - */ - /** \brief EEPROM defaults are loaded to RTC domain bits */ -#define PMIC_TPS6594X_EEPROM_DEFAULTS_LOAD_TO_RTC_DOMAIN_BITS (0U) -/** \brief EEPROM defaults are not loaded to RTC domain bits */ -#define PMIC_TPS6594X_EEPROM_DEFAULTS_NOT_LOADED_TO_RTC_DOMAIN_BITS (1U) - -/** - * \anchor Pmic_Tps6594xLeo_AMuxOutPinCtrl_Cfg - * \name PMIC AMUX OUT Pin Control Configuration - * - * @{ - */ - /** \brief Enable Bandgap voltage to AMUXOUT pin */ -#define PMIC_TPS6594X_AMUX_OUT_PIN_CFG_DISABLE 0U -/** \brief Disable Bandgap voltage to AMUXOUT pin */ -#define PMIC_TPS6594X_AMUX_OUT_PIN_CFG_ENABLE 1U -/* @} */ - -/** - * \anchor Pmic_Tps6594xLeo_ExtClk_Freq_Sel - * \name PMIC External Clock (SYNCCLKIN) Frequency selection - * - * @{ - */ -/** \brief SYNCCLKIN Frequency as 1.1 MHz */ -#define PMIC_TPS6594X_SYNCCLKIN_1_1_MHZ (0U) -/** \brief SYNCCLKIN Frequency as 2.2 MHz */ -#define PMIC_TPS6594X_SYNCCLKIN_2_2_MHZ (1U) -/** \brief SYNCCLKIN Frequency as 4.4 MHz */ -#define PMIC_TPS6594X_SYNCCLKIN_4_4_MHZ (2U) -/* @} */ - -/** - * \anchor Pmic_Tps6594xLeo_Charging_Current_Sel - * \name PMIC Selects Backup Battery charging current - * - * @{ - */ -/** \brief Backup Battery charging current as 100 Micro Ampere */ -#define PMIC_TPS6594X_BB_CHARGING_CURRENT_100 (0U) -/** \brief Backup Battery charging current as 500 Micro Ampere */ -#define PMIC_TPS6594X_BB_CHARGING_CURRENT_500 (1U) -/* @} */ - -/** - * \anchor Pmic_Tps6594xLeo_EndOfChargeVoltage_Sel - * \name PMIC Backup Battery charger End of Charge Volatge selection - * - * @{ - */ -/** \brief Backup Battery charger End of Charge Volatge as 2.5V */ -#define PMIC_TPS6594X_BB_ENDOF_CHARGE_VOLATGE_2_5_V (0U) -/** \brief Backup Battery charger End of Charge Volatge as 2.8V */ -#define PMIC_TPS6594X_BB_ENDOF_CHARGE_VOLATGE_2_8_V (1U) -/** \brief Backup Battery charger End of Charge Volatge as 3.0V */ -#define PMIC_TPS6594X_BB_ENDOF_CHARGE_VOLATGE_3_0_V (2U) -/** \brief Backup Battery charger End of Charge Volatge as 3.3V */ -#define PMIC_TPS6594X_BB_ENDOF_CHARGE_VOLATGE_3_3_V (3U) -/* @} */ - -/** - * \anchor Pmic_Tps6594xLeo_BatteryCharging_Cfg - * \name PMIC Backup Battery Charging Configuration - * - * @{ - */ - /** \brief Disable Backup Battery Charging */ -#define PMIC_TPS6594X_BB_CHARGINGING_CFG_DISABLE 0U -/** \brief Enable Backup Battery Charging */ -#define PMIC_TPS6594X_BB_CHARGINGING_CFG_ENABLE 1U -/* @} */ - -/** - * \anchor Pmic_Tps6594xLeo_BBEoCIndicationStat - * \name PMIC Backup Battery End of Charge Indication Status - * - * @{ - */ - /** \brief Backup Battery Charging active or not enabled */ -#define PMIC_TPS6594X_BB_EOC_STATUS_NOT_ENABLED (0U) - /** \brief Backup Battery Charger reached termination voltage set by BB_VEOC */ -#define PMIC_TPS6594X_BB_EOC_STATUS_READY (1U) -/* @} */ - -/*==========================================================================*/ -/* Structures and Enums */ -/*==========================================================================*/ - -/*==========================================================================*/ -/* Function Declarations */ -/*==========================================================================*/ - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* PMIC_CORE_TPS6594X_H_ */ diff --git a/include/cfg/tps6594x/pmic_gpio_tps6594x.h b/include/cfg/tps6594x/pmic_gpio_tps6594x.h deleted file mode 100644 index 34fbac9..0000000 --- a/include/cfg/tps6594x/pmic_gpio_tps6594x.h +++ /dev/null @@ -1,207 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ -/** - * \addtogroup DRV_PMIC_GPIO_MODULE - * - * @{ - */ - -/** - * \file pmic_gpio_tps6594x.h - * - * \brief PMIC TPS6594x Leo PMIC GPIO API/interface file. - * - */ - -#ifndef PMIC_GPIO_TPS6594X_H_ -#define PMIC_GPIO_TPS6594X_H_ - -/* ========================================================================== */ -/* Include Files */ -/* ========================================================================== */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* ========================================================================== */ -/* Macros & Typedefs */ -/* ========================================================================== */ - -/** - * \anchor Pmic_Tps6594xLeo_GpioPin - * \name PMIC GPIO supported pins for TPS6594x Leo Device - * - * @{ - */ -#define PMIC_TPS6594X_GPIO1_PIN (1U) -#define PMIC_TPS6594X_GPIO2_PIN (2U) -#define PMIC_TPS6594X_GPIO3_PIN (3U) -#define PMIC_TPS6594X_GPIO4_PIN (4U) -#define PMIC_TPS6594X_GPIO5_PIN (5U) -#define PMIC_TPS6594X_GPIO6_PIN (6U) -#define PMIC_TPS6594X_GPIO7_PIN (7U) -#define PMIC_TPS6594X_GPIO8_PIN (8U) -#define PMIC_TPS6594X_GPIO9_PIN (9U) -#define PMIC_TPS6594X_GPIO10_PIN (10U) -#define PMIC_TPS6594X_GPIO11_PIN (11U) -/* @} */ - -/** - * \anchor Pmic_Tps6594xLeo_GpioPinFunc - * \name PMIC GPIO pin functions supported for TPS6594x Leo Device - * - * @{ - */ -/** \brief Used to configure GPIO Pin Function. - * Valid for all GPIO Pins */ -#define PMIC_TPS6594X_GPIO_PINFUNC_GPIO (0U) -/** \brief Used to configure SCL_I2C2/CS_SPI Pin Function. - * Valid only for GPIO1 pin */ -#define PMIC_TPS6594X_GPIO_PINFUNC_GPIO1_SCL_I2C2_CS_SPI (1U) -/** \brief Used to configure TRIG_WDOG Pin Function. - * Valid only for GPIO2 and GPIO11 pins */ -#define PMIC_TPS6594X_GPIO_PINFUNC_GPIO2_GPIO11_TRIG_WDOG (1U) -/** \brief Used to configure CLK32KOUT Pin Function. - * Valid only for GPIO3, GPIO4 and GPIO8 pins */ -#define PMIC_TPS6594X_GPIO_PINFUNC_GPIO3_GPIO4_GPIO8_CLK32KOUT (1U) -/** \brief Used to configure SCLK_SPMI Pin Function. - * Valid only for GPIO5 pin */ -#define PMIC_TPS6594X_GPIO_PINFUNC_GPIO5_SCLK_SPMI (1U) -/** \brief Used to configure SDATA_SPMI Pin Function. - * Valid only for GPIO6 pin */ -#define PMIC_TPS6594X_GPIO_PINFUNC_GPIO6_SDATA_SPMI (1U) -/** \brief Used to configure NERR_MCU Pin Function. - * Valid only for GPIO7 pin */ -#define PMIC_TPS6594X_GPIO_PINFUNC_GPIO7_NERR_MCU (1U) -/** \brief Used to configure PGOOD Pin Function. - * Valid only for GPIO9 pin */ -#define PMIC_TPS6594X_GPIO_PINFUNC_GPIO9_PGOOD (1U) -/** \brief Used to configure SYNCCLKIN Pin Function. - * Valid only for GPIO10 pin */ -#define PMIC_TPS6594X_GPIO_PINFUNC_GPIO10_SYNCCLKIN (1U) -/** \brief Used to configure NRSTOUT_SOC Pin Function. - * Valid only for GPIO1 and GPIO11 pin */ -#define PMIC_TPS6594X_GPIO_PINFUNC_GPIO1_GPIO11_NRSTOUT_SOC (2U) -/** \brief Used to configure SDA_I2C2/SDO_SPI Pin Function. - * Valid only for GPIO2 pin */ -#define PMIC_TPS6594X_GPIO_PINFUNC_GPIO2_SDA_I2C2_SDO_SPI (2U) -/** \brief Used to configure NERR_SOC Pin Function. - * Valid only for GPIO3 pin */ -#define PMIC_TPS6594X_GPIO_PINFUNC_GPIO3_NERR_SOC (2U) -/** \brief Used to configure SYNCCLKOUT Pin Function. - * Valid only for GPIO8 and GPIO10 pin */ -#define PMIC_TPS6594X_GPIO_PINFUNC_GPIO8_GPIO10_SYNCCLKOUT (2U) -/** \brief Used to configure DISABLE_WDOG Pin Function. - * Valid only for GPIO9 pin */ -#define PMIC_TPS6594X_GPIO_PINFUNC_GPIO9_DISABLE_WDOG (2U) -/** \brief Used to configure DISABLE_WDOG Pin Function. - * Valid only for GPIO8 pin */ -#define PMIC_TPS6594X_GPIO_PINFUNC_GPIO8_DISABLE_WDOG (3U) -/** \brief Used to configure SYNCCLKOUT Pin Function. - * Valid only for GPIO9 pin */ -#define PMIC_TPS6594X_GPIO_PINFUNC_GPIO9_SYNCCLKOUT (3U) -/** \brief Used to configure CLK32KOUT Pin Function. - * Valid only for GPIO10 pin */ -#define PMIC_TPS6594X_GPIO_PINFUNC_GPIO10_CLK32KOUT (3U) -/** \brief Used to configure NSLEEP1 Pin Function. - * Valid for all GPIO Pins */ -#define PMIC_TPS6594X_GPIO_PINFUNC_NSLEEP1 (4U) -/** \brief Used to configure NSLEEP2 Pin Function. - * Valid for all GPIO Pins */ -#define PMIC_TPS6594X_GPIO_PINFUNC_NSLEEP2 (5U) -/** \brief Used to configure WKUP1 Pin Function. - * Valid for all GPIO Pins except GPIO3 and GPIO4 pins */ -#define PMIC_TPS6594X_GPIO_PINFUNC_WKUP1 (6U) -/** \brief Used to configure LP_WKUP1 Pin Function. - * Valid only for GPIO3 and GPIO4 pins */ -#define PMIC_TPS6594X_GPIO_PINFUNC_GPIO3_GPIO4_LP_WKUP1 (6U) -/** \brief Used to configure WKUP2 Pin Function. - * Valid for all GPIO Pins except GPIO3 and GPIO4 pins */ -#define PMIC_TPS6594X_GPIO_PINFUNC_WKUP2 (7U) -/** \brief Used to configure LP_WKUP2 Pin Function. - * Valid only for GPIO3 and GPIO4 pins */ -#define PMIC_TPS6594X_GPIO_PINFUNC_GPIO3_GPIO4_LP_WKUP2 (7U) -/* @} */ - -/** - * \anchor Pmic_GpioNPWRONPinFunc - * \name PMIC GPIO NPWRON pin functions supported for TPS6594x Leo Device - * - * @{ - */ -/** \brief Enable Signal Function for NPWRON/ENABLE pin */ -#define PMIC_TPS6594X_NPWRON_PINFUNC_ENABLE (0U) -/** \brief NPWRON Signal Function for NPWRON/ENABLE pin */ -#define PMIC_TPS6594X_NPWRON_PINFUNC_NPWRON (1U) -/** \brief None Function for NPWRON/ENABLE pin */ -#define PMIC_TPS6594X_NPWRON_PINFUNC_NONE (2U) -/* @} */ - -/*==========================================================================*/ -/* Structures and Enums */ -/*==========================================================================*/ - -/*==========================================================================*/ -/* Function Declarations */ -/*==========================================================================*/ - -/*! - * \brief API to get PMIC GPIO NPWRON/Enable pin value. - * - * Requirement: REQ_TAG(PDK-9124) - * Design: did_pmic_gpio_cfg_readback - * Architecture: aid_pmic_gpio_cfg - * - * This function is used to read the signal level of the NPWRON/Enable - * pin. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param pPinValue [OUT] Pointer to store PMIC GPIO signal level - * High/Low. - * Valid values \ref Pmic_Gpio_SignalLvl - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_gpioTps6594xNPwronPinGetValue(Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t *pPinValue); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* PMIC_GPIO_TPS6594X_H_ */ - -/* @} */ diff --git a/include/cfg/tps6594x/pmic_irq_tps6594x.h b/include/cfg/tps6594x/pmic_irq_tps6594x.h deleted file mode 100644 index 1cdb78b..0000000 --- a/include/cfg/tps6594x/pmic_irq_tps6594x.h +++ /dev/null @@ -1,298 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ -/** - * \addtogroup DRV_PMIC_IRQ_MODULE - * - * @{ - */ - -/** - * \file pmic_irq_tps6594x.h - * - * \brief TPS6594x LEO PMIC IRQ Driver API/interface file. - * - */ - -#ifndef PMIC_IRQ_TPS6594X_H_ -#define PMIC_IRQ_TPS6594X_H_ - -/* ========================================================================== */ -/* Include Files */ -/* ========================================================================== */ -#ifdef __cplusplus -extern "C" { -#endif - -/* ========================================================================== */ -/* Macros & Typedefs */ -/* ========================================================================== */ -/** - * \anchor Pmic_tps6594x_IrqNum - * \name PMIC IRQ Interrupt values for tps6594x LEO PMIC device - * - * @{ - */ - -/*! PMIC WDG RESET Interrupt */ -#define PMIC_TPS6594X_WD_RST_INT (0U) -/*! PMIC WDG FAIL Interrupt */ -#define PMIC_TPS6594X_WD_FAIL_INT (1U) -/*! PMIC WDG LONG WINDOW TIMEOUT Interrupt */ -#define PMIC_TPS6594X_WD_LONGWIN_TIMEOUT_INT (2U) - -/*! PMIC ESM MCU RESET Interrupt */ -#define PMIC_TPS6594X_ESM_MCU_RST_INT (3U) -/*! PMIC ESM MCU FAIL Interrupt */ -#define PMIC_TPS6594X_ESM_MCU_FAIL_INT (4U) -/*! PMIC ESM MCU PIN Interrupt */ -#define PMIC_TPS6594X_ESM_MCU_PIN_INT (5U) -/*! PMIC ESM SOC RESET Interrupt */ -#define PMIC_TPS6594X_ESM_SOC_RST_INT (6U) -/*! PMIC ESM SOC FAIL Interrupt */ -#define PMIC_TPS6594X_ESM_SOC_FAIL_INT (7U) -/*! PMIC ESM SOC PIN Interrupt */ -#define PMIC_TPS6594X_ESM_SOC_PIN_INT (8U) - -/*! PMIC NRSTOUT SOC READBACK Interrupt */ -#define PMIC_TPS6594X_NRSTOUT_SOC_READBACK_INT (9U) -/*! PMIC EN DRV READBACK Interrupt */ -#define PMIC_TPS6594X_EN_DRV_READBACK_INT (10U) - -/*! PMIC I2C2 ADDRESS ERROR Interrupt */ -#define PMIC_TPS6594X_I2C2_ADR_ERR_INT (11U) -/*! PMIC I2C2 CRC ERROR Interrupt */ -#define PMIC_TPS6594X_I2C2_CRC_ERR_INT (12U) -/*! PMIC I2C1/SPI COMM ADDRESS ERROR Interrupt */ -#define PMIC_TPS6594X_COMM_ADR_ERR_INT (13U) -/*! PMIC I2C1/SPI COMM CRC ERROR Interrupt */ -#define PMIC_TPS6594X_COMM_CRC_ERR_INT (14U) -/*! PMIC SPI COMM FRAME ERROR Interrupt */ -#define PMIC_TPS6594X_COMM_FRM_ERR_INT (15U) - -/*! PMIC SOC POWER ERR Interrupt */ -#define PMIC_TPS6594X_SOC_PWR_ERR_INT (16U) -/*! PMIC MCU POWER ERR Interrupt */ -#define PMIC_TPS6594X_MCU_PWR_ERR_INT (17U) -/*! PMIC ORDERLY SHUTDOWN Interrupt */ -#define PMIC_TPS6594X_ORD_SHUTDOWN_INT (18U) -/*! PMIC IMMEDIATE SHUTDOWN Interrupt */ -#define PMIC_TPS6594X_IMM_SHUTOWN_INT (19U) - -/*! PMIC PFSM ERROR Interrupt */ -#define PMIC_TPS6594X_PFSM_ERR_INT (20U) -/*! PMIC VCCA Over-Voltage Interrupt */ -#define PMIC_TPS6594X_VCCA_OVP_INT (21U) -/*! PMIC Thermal Threshold Immediate Shutdown Interrupt */ -#define PMIC_TPS6594X_TSD_IMM_INT (22U) - -/*! PMIC NRSTOUT Readback Error Interrupt */ -#define PMIC_TPS6594X_NRSTOUT_READBACK_INT (23U) -/*! PMIC NINT Readback Error Interrupt */ -#define PMIC_TPS6594X_NINT_READBACK_INT (24U) -/*! PMIC NPWRON Long Press Error Interrupt */ -#define PMIC_TPS6594X_NPWRON_LONG_INT (25U) -/*! PMIC SPMI Interface Error Interrupt */ -#define PMIC_TPS6594X_SPMI_ERR_INT (26U) -/*! PMIC RECOV_CNT Threshold Interrupt */ -#define PMIC_TPS6594X_RECOV_CNT_INT (27U) -/*! PMIC Register CRC Error Interrupt */ -#define PMIC_TPS6594X_REG_CRC_ERR_INT (28U) -/*! PMIC LBIST/ABIST Error Interrupt */ -#define PMIC_TPS6594X_BIST_FAIL_INT (29U) -/*! PMIC Thermal Shutdown Orderly Interrupt */ -#define PMIC_TPS6594X_TSD_ORD_INT (30U) - -/*! PMIC Thermal Warning Interrupt */ -#define PMIC_TPS6594X_TWARN_INT (31U) -/*! PMIC External Clock Interrupt */ -#define PMIC_TPS6594X_EXT_CLK_INT (32U) -/*! PMIC BIST PASS Interrupt */ -#define PMIC_TPS6594X_BIST_PASS_INT (33U) - -/*! PMIC First Supply Detection Interrupt */ -#define PMIC_TPS6594X_FSD_INT (34U) -/*! PMIC RTC ALARM Interrupt */ -#define PMIC_TPS6594X_RTC_ALARM_INT (35U) -/*! PMIC RTC TIMER Interrupt */ -#define PMIC_TPS6594X_RTC_TIMER_INT (36U) -/*! PMIC ENABLE Interrupt */ -#define PMIC_TPS6594X_ENABLE_INT (37U) -/*! PMIC NPWRON Startup Interrupt */ -#define PMIC_TPS6594X_NPWRON_START_INT (38U) - -/*! PMIC GPIO PIN 8 Interrupt */ -#define PMIC_TPS6594X_GPIO8_INT (39U) -/*! PMIC GPIO PIN 7 Interrupt */ -#define PMIC_TPS6594X_GPIO7_INT (40U) -/*! PMIC GPIO PIN 6 Interrupt */ -#define PMIC_TPS6594X_GPIO6_INT (41U) -/*! PMIC GPIO PIN 5 Interrupt */ -#define PMIC_TPS6594X_GPIO5_INT (42U) -/*! PMIC GPIO PIN 4 Interrupt */ -#define PMIC_TPS6594X_GPIO4_INT (43U) -/*! PMIC GPIO PIN 3 Interrupt */ -#define PMIC_TPS6594X_GPIO3_INT (44U) -/*! PMIC GPIO PIN 2 Interrupt */ -#define PMIC_TPS6594X_GPIO2_INT (45U) -/*! PMIC GPIO PIN 1 Interrupt */ -#define PMIC_TPS6594X_GPIO1_INT (46U) -/*! PMIC GPIO PIN 11 Interrupt */ -#define PMIC_TPS6594X_GPIO11_INT (47U) -/*! PMIC GPIO PIN 10 Interrupt */ -#define PMIC_TPS6594X_GPIO10_INT (48U) -/*! PMIC GPIO PIN 9 Interrupt */ -#define PMIC_TPS6594X_GPIO9_INT (49U) - -/*! PMIC VCCA Under-Voltage Interrupt */ -#define PMIC_TPS6594X_VCCA_UV_INT (50U) -/*! PMIC VCCA Over-Voltage Interrupt */ -#define PMIC_TPS6594X_VCCA_OV_INT (51U) - -/*! PMIC LDO4 Current Limit Interrupt */ -#define PMIC_TPS6594X_LDO4_ILIM_INT (52U) -/*! PMIC LDO4 SC Interrupt */ -#define PMIC_TPS6594X_LDO4_SC_INT (53U) -/*! PMIC LDO4 Under-Voltage Interrupt */ -#define PMIC_TPS6594X_LDO4_UV_INT (54U) -/*! PMIC LDO4 Over-Voltage Interrupt */ -#define PMIC_TPS6594X_LDO4_OV_INT (55U) - -/*! PMIC LDO3 Current Limit Interrupt */ -#define PMIC_TPS6594X_LDO3_ILIM_INT (56U) -/*! PMIC LDO3 SC Interrupt */ -#define PMIC_TPS6594X_LDO3_SC_INT (57U) -/*! PMIC LDO3 Under-Voltage Interrupt */ -#define PMIC_TPS6594X_LDO3_UV_INT (58U) -/*! PMIC LDO3 Over-Voltage Interrupt */ -#define PMIC_TPS6594X_LDO3_OV_INT (59U) - -/*! PMIC LDO2 Current Limit Interrupt */ -#define PMIC_TPS6594X_LDO2_ILIM_INT (60U) -/*! PMIC LDO2 SC Interrupt */ -#define PMIC_TPS6594X_LDO2_SC_INT (61U) -/*! PMIC LDO2 Under-Voltage Interrupt */ -#define PMIC_TPS6594X_LDO2_UV_INT (62U) -/*! PMIC LDO2 Over-Voltage Interrupt */ -#define PMIC_TPS6594X_LDO2_OV_INT (63U) - -/*! PMIC LDO1 Current Limit Interrupt */ -#define PMIC_TPS6594X_LDO1_ILIM_INT (64U) -/*! PMIC LDO1 SC Interrupt */ -#define PMIC_TPS6594X_LDO1_SC_INT (65U) -/*! PMIC LDO1 Under-Voltage Interrupt */ -#define PMIC_TPS6594X_LDO1_UV_INT (66U) -/*! PMIC LDO1 Over-Voltage Interrupt */ -#define PMIC_TPS6594X_LDO1_OV_INT (67U) - -/*! PMIC BUCK5 Current Limit Interrupt */ -#define PMIC_TPS6594X_BUCK5_ILIM_INT (68U) -/*! PMIC BUCK5 SC Interrupt */ -#define PMIC_TPS6594X_BUCK5_SC_INT (69U) -/*! PMIC BUCK5 Under-Voltage Interrupt */ -#define PMIC_TPS6594X_BUCK5_UV_INT (70U) -/*! PMIC BUCK5 Over-Voltage Interrupt */ -#define PMIC_TPS6594X_BUCK5_OV_INT (71U) - -/*! PMIC BUCK4 Current Limit Interrupt */ -#define PMIC_TPS6594X_BUCK4_ILIM_INT (72U) -/*! PMIC BUCK4 SC Interrupt */ -#define PMIC_TPS6594X_BUCK4_SC_INT (73U) -/*! PMIC BUCK4 Under-Voltage Interrupt */ -#define PMIC_TPS6594X_BUCK4_UV_INT (74U) -/*! PMIC BUCK4 Over-Voltage Interrupt */ -#define PMIC_TPS6594X_BUCK4_OV_INT (75U) - -/*! PMIC BUCK3 Current Limit Interrupt */ -#define PMIC_TPS6594X_BUCK3_ILIM_INT (76U) -/*! PMIC BUCK3 SC Interrupt */ -#define PMIC_TPS6594X_BUCK3_SC_INT (77U) -/*! PMIC BUCK3 Under-Voltage Interrupt */ -#define PMIC_TPS6594X_BUCK3_UV_INT (78U) -/*! PMIC BUCK3 Over-Voltage Interrupt */ -#define PMIC_TPS6594X_BUCK3_OV_INT (79U) - -/*! PMIC BUCK2 Current Limit Interrupt */ -#define PMIC_TPS6594X_BUCK2_ILIM_INT (80U) -/*! PMIC BUCK2 SC Interrupt */ -#define PMIC_TPS6594X_BUCK2_SC_INT (81U) -/*! PMIC BUCK2 Under-Voltage Interrupt */ -#define PMIC_TPS6594X_BUCK2_UV_INT (82U) -/*! PMIC BUCK2 Over-Voltage Interrupt */ -#define PMIC_TPS6594X_BUCK2_OV_INT (83U) - -/*! PMIC BUCK1 Current Limit Interrupt */ -#define PMIC_TPS6594X_BUCK1_ILIM_INT (84U) -/*! PMIC BUCK1 SC Interrupt */ -#define PMIC_TPS6594X_BUCK1_SC_INT (85U) -/*! PMIC BUCK1 Under-Voltage Interrupt */ -#define PMIC_TPS6594X_BUCK1_UV_INT (86U) -/*! PMIC BUCK1 Over-Voltage Interrupt */ -#define PMIC_TPS6594X_BUCK1_OV_INT (87U) - -/*! PMIC SOFT REBOOT Startup Interrupt */ -#define PMIC_TPS6594X_SOFT_REBOOT_INT (88U) - -/*! PMIC Max Interrupt Number on PG1.0 */ -#define PMIC_TPS6594X_IRQ_MAX_NUM_PG_1_0 (88U) -/*! PMIC Max Interrupt Number on PG2.0 */ -#define PMIC_TPS6594X_IRQ_MAX_NUM_PG_2_0 (89U) - -/* @} */ - -/** - * \anchor Pmic_tps6594x_IrqGpioNum - * \name PMIC GPIO Interrupt Mask values for tps6594x - * - * @{ - */ -#define PMIC_TPS6594X_IRQ_GPIO_1_INT_MASK_NUM (0U) -#define PMIC_TPS6594X_IRQ_GPIO_2_INT_MASK_NUM (1U) -#define PMIC_TPS6594X_IRQ_GPIO_3_INT_MASK_NUM (2U) -#define PMIC_TPS6594X_IRQ_GPIO_4_INT_MASK_NUM (3U) -#define PMIC_TPS6594X_IRQ_GPIO_5_INT_MASK_NUM (4U) -#define PMIC_TPS6594X_IRQ_GPIO_6_INT_MASK_NUM (5U) -#define PMIC_TPS6594X_IRQ_GPIO_7_INT_MASK_NUM (6U) -#define PMIC_TPS6594X_IRQ_GPIO_8_INT_MASK_NUM (7U) -#define PMIC_TPS6594X_IRQ_GPIO_9_INT_MASK_NUM (8U) -#define PMIC_TPS6594X_IRQ_GPIO_10_INT_MASK_NUM (9U) -#define PMIC_TPS6594X_IRQ_GPIO_11_INT_MASK_NUM (10U) - -/* @} */ - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif/* PMIC_IRQ_TPS6594X_H_ */ - -/* @} */ diff --git a/include/cfg/tps6594x/pmic_power_tps6594x.h b/include/cfg/tps6594x/pmic_power_tps6594x.h deleted file mode 100644 index b21cf3a..0000000 --- a/include/cfg/tps6594x/pmic_power_tps6594x.h +++ /dev/null @@ -1,763 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ -/** - * \addtogroup DRV_PMIC_POWER_MODULE - * - * @{ - */ - -/** - * \file pmic_power_tps6594x.h - * - * \brief PMIC TPS6594x Leo PMIC Power Resources Driver API/interface file. - * - */ - -#ifndef PMIC_POWER_TPS6594X_H_ -#define PMIC_POWER_TPS6594X_H_ - -/* ========================================================================== */ -/* Include Files */ -/* ========================================================================== */ -#ifdef __cplusplus -extern "C" { -#endif - -/* ========================================================================== */ -/* Macros & Typedefs */ -/* ========================================================================== */ - -/** - * \anchor Pmic_Tps6594xLeo_Power_ResourceType - * \name PMIC Power Resource Type for LEO TPS6594x - * - * @{ - */ -#define PMIC_TPS6594X_POWER_RESOURCE_TYPE_VCCA (0U) -#define PMIC_TPS6594X_POWER_RESOURCE_TYPE_BUCK (1U) -#define PMIC_TPS6594X_POWER_RESOURCE_TYPE_LDO (2U) -/* @} */ - -/** - * \anchor Pmic_Tps6594xLeo_Power_Resource - * \name PMIC Power Resources for LEO TPS6594x - * - * @{ - */ -#define PMIC_TPS6594X_POWER_SOURCE_VCCA \ - ((((uint16_t)PMIC_TPS6594X_POWER_RESOURCE_TYPE_VCCA << 8U) | 0x0U)) -#define PMIC_TPS6594X_REGULATOR_BUCK1 \ - ((((uint16_t)PMIC_TPS6594X_POWER_RESOURCE_TYPE_BUCK << 8U) | 0x1U)) -#define PMIC_TPS6594X_REGULATOR_BUCK2 \ - ((((uint16_t)PMIC_TPS6594X_POWER_RESOURCE_TYPE_BUCK << 8U) | 0x2U)) -#define PMIC_TPS6594X_REGULATOR_BUCK3 \ - ((((uint16_t)PMIC_TPS6594X_POWER_RESOURCE_TYPE_BUCK << 8U) | 0x3U)) -#define PMIC_TPS6594X_REGULATOR_BUCK4 \ - ((((uint16_t)PMIC_TPS6594X_POWER_RESOURCE_TYPE_BUCK << 8U) | 0x4U)) -#define PMIC_TPS6594X_REGULATOR_BUCK5 \ - ((((uint16_t)PMIC_TPS6594X_POWER_RESOURCE_TYPE_BUCK << 8U) | 0x5U)) -#define PMIC_TPS6594X_REGULATOR_LDO1 \ - ((((uint16_t)PMIC_TPS6594X_POWER_RESOURCE_TYPE_LDO << 8U) | 0x6U)) -#define PMIC_TPS6594X_REGULATOR_LDO2 \ - ((((uint16_t)PMIC_TPS6594X_POWER_RESOURCE_TYPE_LDO << 8U) | 0x7U)) -#define PMIC_TPS6594X_REGULATOR_LDO3 \ - ((((uint16_t)PMIC_TPS6594X_POWER_RESOURCE_TYPE_LDO << 8U) | 0x8U)) -#define PMIC_TPS6594X_REGULATOR_LDO4 \ - ((((uint16_t)PMIC_TPS6594X_POWER_RESOURCE_TYPE_LDO << 8U) | 0x9U)) -/* @} */ - -/** - * \anchor Pmic_TPS6594x_Regulator_RV_Check - * \name PMIC Residual voltage check Enable/Disable - * - * Valid only for BUCK and LDO regulators - * - * @{ - */ -/** \brief Used to enable the residual voltage check */ -#define PMIC_TPS6594X_REGULATOR_RV_SEL_ENABLE (0x1U) -/** \brief Used to disable the residual voltage check */ -#define PMIC_TPS6594X_REGULATOR_RV_SEL_DISABLE (0x0U) -/* @} */ - -/** - * \anchor Pmic_TPS6594x_Buck_Pull_Down_Resistor - * \name PMIC Pull-down resistor Enable/Disable for BUCK Regulator. - * - * @{ - */ -/** \brief Used to enable the pull down resistor for BUCK regulator */ -#define PMIC_TPS6594X_REGULATOR_BUCK_PLDN_ENABLE (0x1U) -/** \brief Used to disable the pull down resistor for BUCK regulator */ -#define PMIC_TPS6594X_REGULATOR_BUCK_PLDN_DISABLE (0x0U) -/* @} */ - -/** - * \anchor Pmic_TPS6594x_Vmon_Enable - * \name PMIC Voltage monitor Enable/Disable for BUCK/LDO/VCCA.\ - * Enable/Disable OV and UV comparators for LDO/VCCA. \ - * Enable/Disable OV, UV, SC and ILIM for BUCK - * - * @{ - */ -/** \brief Used to disable the voltage monitor */ -#define PMIC_TPS6594X_VMON_DISABLE (0x0U) -/** \brief Used to enable the voltage monitor */ -#define PMIC_TPS6594X_VMON_ENABLE (0x1U) -/* @} */ - -/** - * \anchor Pmic_TPS6594x_Regulator_Buck_Vout_Sel - * \name PMIC Select output voltage register for BUCK. - * - * Valid only for BUCK Regulator - * - * @{ - */ -/** \brief Used to select VOUT2 register for voltage selection */ -#define PMIC_TPS6594X_REGULATOR_BUCK_VOUT_SEL_VOUT2 (bool)true -/** \brief Used to select VOUT1 register for voltage selection */ -#define PMIC_TPS6594X_REGULATOR_BUCK_VOUT_SEL_VOUT1 (bool)false -/* @} */ - -/** - * \anchor Pmic_TPS6594x_Regulator_Pwm_Pfm_Mode - * \name PMIC Select between Automatic transitions between PFM and PWM \ - * modes OR Forced to PWM operation. - * - * Valid only for BUCK regulators. - * - * @{ - */ -/** \brief Used to select PWM mode */ -#define PMIC_TPS6594X_REGULATOR_PWM_MODE (0x1U) -/** \brief Used to select Automatic transition between PFM and PWM modes */ -#define PMIC_TPS6594X_REGULATOR_AUTO_PWM_PFM_MODE (0x0U) -/* @} */ - -/** - * \anchor Pmic_TPS6594x_Regulator_Pwm_Mp_Mode - * \name PMIC Select between multi-phase operation OR \ - * AUTO mode with Automatic phase adding and shedding. - * - * Valid only for BUCK regulators. - * - * @{ - */ -/** \brief Used to select multi-phase operation */ -#define PMIC_TPS6594X_REGULATOR_PWM_MP_MODE (0x1U) -/** \brief Used to select Automatic phase adding and shedding mode */ -#define PMIC_TPS6594X_REGULATOR_AUTO_PHASE_MODE (0x0U) -/* @} */ - -/** - * \anchor Pmic_TPS6594x_Power_Regulator_enable - * \name PMIC Enable/Disable BUCK/LDO Regulators. - * - * @{ - */ -/** \brief Used to enable the BUCK or LDO regulator */ -#define PMIC_TPS6594X_REGULATOR_ENABLE (0x1U) -/** \brief Used to disable the BUCK or LDO regulator */ -#define PMIC_TPS6594X_REGULATOR_DISABLE (0x0U) -/* @} */ - -/** - * \anchor Pmic_TPS6594x_Regulator_Ldo_Slow_Ramp - * \name PMIC Enable/Disable Slow Ramp for LDO regulator - * - * Valid only for LDO regulators. - * - * @{ - */ -/** \brief Used to enable slow ramp for LDO */ -#define PMIC_TPS6594X_REGULATOR_LDO_SLOW_RAMP_ENABLE (0x1U) -/** \brief Used to disable slow ramp for LDO */ -#define PMIC_TPS6594X_REGULATOR_LDO_SLOW_RAMP_DISABLE (0x0U) -/* @} */ - -/** - * \anchor Pmic_TPS6594x_Regulator_Ldo_Mode - * \name PMIC Selects the LDO Bypass or Linear Regulator mode - * Valid only for LDO1/LDO2/LDO3 regulators - * - * @{ - */ -/** \brief Used to set to bypass mode */ -#define PMIC_TPS6594X_REGULATOR_LDO_BYPASS_MODE (0x1U) -/** \brief Used to set to linear regulator mode */ -#define PMIC_TPS6594X_REGULATOR_LDO_LINEAR_REGULATOR_MODE (0x0U) -/* @} */ - -/** - * \anchor Pmic_TPS6594x_Vmon_DeglitchTime_Sel - * \name PMIC Deglitch time select for BUCKx_VMON/LDOx_VMON/VCCA_VMON - * - * @{ - */ -/** \brief Used to select the degitch time as 4 usec */ -#define PMIC_TPS6594X_POWER_RESOURCE_DEGLITCH_SEL_4US (0x0U) -/** \brief Used to select the degitch time as 20 usec */ -#define PMIC_TPS6594X_POWER_RESOURCE_DEGLITCH_SEL_20US (0x1U) -/* @} */ - -/** - * \anchor Pmic_TPS6594x_VccaPowerGoodLimit - * \name PMIC Powergood level for VCCA - * - * @{ - */ -/** \brief Used to select the powergood level for VCCA to be 3.3v */ -#define PMIC_TPS6594X_VCCA_PG_3V3_LEVEL (0x0U) -/** \brief Used to select the powergood level for VCCA to be 5v */ -#define PMIC_TPS6594X_VCCA_PG_5V_LEVEL (0x1U) -/* @} */ - -/** - * \anchor Pmic_TPS6594x_Buck_Current_Limit - * \name PMIC Switch Peak Current limit for BUCK Regulator - * - * @{ - */ -/** \brief Used to configure BUCK current limit as 2.5 Ampere */ -#define PMIC_TPS6594X_REGULATOR_BUCK_CURRENT_LIMIT_2A5 (0x2U) -/** \brief Used to configure BUCK current limit as 3.5 Ampere */ -#define PMIC_TPS6594X_REGULATOR_BUCK_CURRENT_LIMIT_3A5 (0x3U) -/** \brief Used to configure BUCK current limit as 4.5 Ampere */ -#define PMIC_TPS6594X_REGULATOR_BUCK_CURRENT_LIMIT_4A5 (0x4U) -/** \brief Used to configure BUCK current limit as 5.5 Ampere */ -#define PMIC_TPS6594X_REGULATOR_BUCK_CURRENT_LIMIT_5A5 (0x5U) -/* @} */ - -/** - * \anchor Pmic_TPS6594x_Buck_Slew_Rate - * \name PMIC Output voltage slew rate for BUCK Regulator - * - * @{ - */ -/** \brief Used to configure BUCK current limit as 30mv */ -#define PMIC_TPS6594X_REGULATOR_BUCK_SLEW_RATE_33MV (0x0U) -/** \brief Used to configure BUCK current limit as 20mv */ -#define PMIC_TPS6594X_REGULATOR_BUCK_SLEW_RATE_20MV (0x1U) -/** \brief Used to configure BUCK current limit as 10mv */ -#define PMIC_TPS6594X_REGULATOR_BUCK_SLEW_RATE_10MV (0x2U) -/** \brief Used to configure BUCK current limit as 5mv */ -#define PMIC_TPS6594X_REGULATOR_BUCK_SLEW_RATE_05MV (0x3U) -/** \brief Used to configure BUCK current limit as 2.5mv */ -#define PMIC_TPS6594X_REGULATOR_BUCK_SLEW_RATE_2MV5 (0x4U) -/** \brief Used to configure BUCK current limit as 1.3mv */ -#define PMIC_TPS6594X_REGULATOR_BUCK_SLEW_RATE_1MV3 (0x5U) -/** \brief Used to configure BUCK current limit as 0.63mv */ -#define PMIC_TPS6594X_REGULATOR_BUCK_SLEW_RATE_0MV63 (0x6U) -/** \brief Used to configure BUCK current limit as 0.31mv */ -#define PMIC_TPS6594X_REGULATOR_BUCK_SLEW_RATE_0MV31 (0x7U) -/* @} */ - -/** - * \anchor Pmic_TPS6594x_Ldo_Pldn_Resistor_Val - * \name PMIC Output pull-down resistor value for LDO Regulator. - * - * @{ - */ -/** \brief Used to select the pull down resistor value as 50KOhm */ -#define PMIC_TPS6594X_REGULATOR_LDO_PLDN_VAL_50KOHM (0x0U) -/** \brief Used to select the pull down resistor value as 125Ohm */ -#define PMIC_TPS6594X_REGULATOR_LDO_PLDN_VAL_125OHM (0x1U) -/** \brief Used to select the pull down resistor value as 250Ohm */ -#define PMIC_TPS6594X_REGULATOR_LDO_PLDN_VAL_250OHM (0x2U) -/** \brief Used to select the pull down resistor value as 500Ohm */ -#define PMIC_TPS6594X_REGULATOR_LDO_PLDN_VAL_500OHM (0x3U) -/* @} */ - -/** - * \anchor Pmic_TPS6594x_Ldo_RV_Timeout - * \name PMIC Selects the LDO Residual voltage check Timeout value. - * - * Valid only for LDO regulators (LDO1, 2 and 3 only). - * - * @{ - */ -/** \brief Used to set timeout to 0.5ms */ -#define PMIC_TPS6594X_REGULATOR_LDO_RV_TIMEOUT_0MS5 (0U) -/** \brief Used to set timeout to 1ms */ -#define PMIC_TPS6594X_REGULATOR_LDO_RV_TIMEOUT_1MS (1U) -/** \brief Used to set timeout to 1.5ms */ -#define PMIC_TPS6594X_REGULATOR_LDO_RV_TIMEOUT_1MS5 (2U) -/** \brief Used to set timeout to 2ms */ -#define PMIC_TPS6594X_REGULATOR_LDO_RV_TIMEOUT_2MS (3U) -/** \brief Used to set timeout to 2.5ms */ -#define PMIC_TPS6594X_REGULATOR_LDO_RV_TIMEOUT_2MS5 (4U) -/** \brief Used to set timeout to 3ms */ -#define PMIC_TPS6594X_REGULATOR_LDO_RV_TIMEOUT_3MS (5U) -/** \brief Used to set timeout to 3.5ms */ -#define PMIC_TPS6594X_REGULATOR_LDO_RV_TIMEOUT_3MS5 (6U) -/** \brief Used to set timeout to 4ms */ -#define PMIC_TPS6594X_REGULATOR_LDO_RV_TIMEOUT_4MS (7U) -/** \brief Used to set timeout to 2ms */ -#define PMIC_TPS6594X_REGULATOR_LDO_RV_TIMEOUT_2MS0 (8U) -/** \brief Used to set timeout to 4ms */ -#define PMIC_TPS6594X_REGULATOR_LDO_RV_TIMEOUT_4MS0 (9U) -/** \brief Used to set timeout to 6ms */ -#define PMIC_TPS6594X_REGULATOR_LDO_RV_TIMEOUT_6MS (10U) -/** \brief Used to set timeout to 8ms */ -#define PMIC_TPS6594X_REGULATOR_LDO_RV_TIMEOUT_8MS (11U) -/** \brief Used to set timeout to 10ms */ -#define PMIC_TPS6594X_REGULATOR_LDO_RV_TIMEOUT_10MS (12U) -/** \brief Used to set timeout to 12ms */ -#define PMIC_TPS6594X_REGULATOR_LDO_RV_TIMEOUT_12MS (13U) -/** \brief Used to set timeout to 14ms */ -#define PMIC_TPS6594X_REGULATOR_LDO_RV_TIMEOUT_14MS (14U) -/** \brief Used to set timeout to 16ms */ -#define PMIC_TPS6594X_REGULATOR_LDO_RV_TIMEOUT_16MS (15U) -/* @} */ - -/** - * \anchor Pmic_TPS6594x_Pg_Ov_Uv_Threshold_lvl - * \name PMIC Power Good Over/Under voltage threshold level for BUCK/LDO/VCCA - * - * For LDO/BUCK - Over/Under Volatge thershold level are +x1 mv/ +x2 % - * or -x1 mv/ -x2 % respectively. - * For VCCA - Over/Under Volatge thershold level are +x2 % or -x2 % - * respectively. - * @{ - */ -/** \brief Used to select over/under voltage threshold level as +/-30mv or - * +/-3% - */ -#define PMIC_TPS6594X_PG_OV_UV_THRESHOLD_LVL_30_OR_3 (0U) -/** \brief Used to select over/under voltage threshold level as +/-35mv or - * +/-3.5% - */ -#define PMIC_TPS6594X_PG_OV_UV_THRESHOLD_LVL_35_OR_3P5 (1U) -/** \brief Used to select over/under voltage threshold level as +/-40mv or - * +/-4% - */ -#define PMIC_TPS6594X_PG_OV_UV_THRESHOLD_LVL_40_OR_4 (2U) -/** \brief Used to select over/under voltage threshold level as +/-50mv or - * +/-5% - */ -#define PMIC_TPS6594X_PG_OV_UV_THRESHOLD_LVL_50_OR_5 (3U) -/** \brief Used to select over/under voltage threshold level as +/-60mv or - * +/-6% - */ -#define PMIC_TPS6594X_PG_OV_UV_THRESHOLD_LVL_60_OR_6 (4U) -/** \brief Used to select over/under voltage threshold level as +/-70mv or - * +/-7% - */ -#define PMIC_TPS6594X_PG_OV_UV_THRESHOLD_LVL_70_OR_7 (5U) -/** \brief Used to select over/under voltage threshold level as +/-80mv or - * +/-8% - */ -#define PMIC_TPS6594X_PG_OV_UV_THRESHOLD_LVL_80_OR_8 (6U) -/** \brief Used to select over/under voltage threshold level as +/-100mv or - * +/-10% - */ -#define PMIC_TPS6594X_PG_OV_UV_THRESHOLD_LVL_100_OR_10 (7U) -/* @} */ - -/** - * \anchor Pmic_TPS6594x_Power_Rail_Sel - * \name PMIC Rail group selection for all power resources. - * - * @{ - */ -/** \brief Used to select rail group as no group - * Note: Software can prevent the SoC/MCU Power Error Handling, which - * normally shuts down the SOC/MCU power rails, by setting the relevent - * regulators to PMIC_TPS6594X_POWER_RAIL_SEL_NONE - */ -#define PMIC_TPS6594X_POWER_RAIL_SEL_NONE (0x0U) -/** \brief Used to select rail group as MCU rail group */ -#define PMIC_TPS6594X_POWER_RAIL_SEL_MCU (0x1U) -/** \brief Used to select rail group as SOC rail group */ -#define PMIC_TPS6594X_POWER_RAIL_SEL_SOC (0x2U) -/** \brief Used to select rail group as other rail group */ -#define PMIC_TPS6594X_POWER_RAIL_SEL_OTHER (0x3U) -/* @} */ - -/** - * \anchor Pmic_Tps6594xLeo_Pgood_SourceType - * \name PMIC Power-Good source Type for LEO TPS6594x - * - * @{ - */ -#define PMIC_TPS6594X_PGOOD_SOURCE_TYPE_VCCA (0U) -#define PMIC_TPS6594X_PGOOD_SOURCE_TYPE_BUCK (1U) -#define PMIC_TPS6594X_PGOOD_SOURCE_TYPE_NRSTOUT (2U) -#define PMIC_TPS6594X_PGOOD_SOURCE_TYPE_NRSTOUT_SOC (3U) -#define PMIC_TPS6594X_PGOOD_SOURCE_TYPE_TDIE (4U) -#define PMIC_TPS6594X_PGOOD_SOURCE_TYPE_LDO (5U) -/* VMON type is not supported by TPS6594x Leo PMIC */ -/* @} */ - -/** - * \anchor Pmic_Tps6594xLeo_Pgood_Source - * \name PMIC Power-Good sources for LEO TPS6594x - * - * @{ - */ -#define PMIC_TPS6594X_PGOOD_SOURCE_VCCA \ - ((((uint16_t)PMIC_TPS6594X_PGOOD_SOURCE_TYPE_VCCA << 8U) | 0U)) -#define PMIC_TPS6594X_PGOOD_SOURCE_BUCK1 \ - ((((uint16_t)PMIC_TPS6594X_PGOOD_SOURCE_TYPE_BUCK << 8U) | 1U)) -#define PMIC_TPS6594X_PGOOD_SOURCE_BUCK2 \ - ((((uint16_t)PMIC_TPS6594X_PGOOD_SOURCE_TYPE_BUCK << 8U) | 2U)) -#define PMIC_TPS6594X_PGOOD_SOURCE_BUCK3 \ - ((((uint16_t)PMIC_TPS6594X_PGOOD_SOURCE_TYPE_BUCK << 8U) | 3U)) -#define PMIC_TPS6594X_PGOOD_SOURCE_BUCK4 \ - ((((uint16_t)PMIC_TPS6594X_PGOOD_SOURCE_TYPE_BUCK << 8U) | 4U)) -#define PMIC_TPS6594X_PGOOD_SOURCE_BUCK5 \ - ((((uint16_t)PMIC_TPS6594X_PGOOD_SOURCE_TYPE_BUCK << 8U) | 5U)) -#define PMIC_TPS6594X_PGOOD_SOURCE_NRSTOUT \ - ((((uint16_t)PMIC_TPS6594X_PGOOD_SOURCE_TYPE_NRSTOUT << 8U) | 6U)) -#define PMIC_TPS6594X_PGOOD_SOURCE_NRSTOUT_SOC \ - ((((uint16_t)PMIC_TPS6594X_PGOOD_SOURCE_TYPE_NRSTOUT_SOC << 8U) | 7U)) -#define PMIC_TPS6594X_PGOOD_SOURCE_TDIE \ - ((((uint16_t)PMIC_TPS6594X_PGOOD_SOURCE_TYPE_TDIE << 8U) | 8U)) -#define PMIC_TPS6594X_PGOOD_SOURCE_LDO1 \ - ((((uint16_t)PMIC_TPS6594X_PGOOD_SOURCE_TYPE_LDO << 8U) | 9U)) -#define PMIC_TPS6594X_PGOOD_SOURCE_LDO2 \ - ((((uint16_t)PMIC_TPS6594X_PGOOD_SOURCE_TYPE_LDO << 8U) | 10U)) -#define PMIC_TPS6594X_PGOOD_SOURCE_LDO3 \ - ((((uint16_t)PMIC_TPS6594X_PGOOD_SOURCE_TYPE_LDO << 8U) | 11U)) -#define PMIC_TPS6594X_PGOOD_SOURCE_LDO4 \ - ((((uint16_t)PMIC_TPS6594X_PGOOD_SOURCE_TYPE_LDO << 8U) | 12U)) -/* @} */ - -/** - * \anchor Pmic_TPS6594x_Power_Good_Window - * \name Type of voltage monitoring for PGOOD signal: - * - * @{ - */ -/** \brief Only undervoltage is monitored */ -#define PMIC_TPS6594X_POWER_GOOD_UV_MONITOR_ENABLE (0x0U) -/** \brief Both undervoltage and overvoltage are monitored */ -#define PMIC_TPS6594X_POWER_GOOD_UV_OV_MONITOR_ENABLE (0x1U) -/* @} */ - -/** - * \anchor Pmic_TPS6594x_Power_Good_Polarity - * \name PGOOD signal polarity - * - * @{ - */ -/** \brief PGOOD signal is high when monitored inputs are valid */ -#define PMIC_TPS6594X_POWER_PGOOD_POL_HIGH (0x0U) -/** \brief PGOOD signal is low when monitored inputs are valid */ -#define PMIC_TPS6594X_POWER_PGOOD_POL_LOW (0x1U) -/* @} */ - -/** - * \anchor Pmic_TPS6594x_Power_Good_Nrstout_Soc - * \name PGOOD signal source control from nRSTOUT_SOC pin - * - * @{ - */ -/** \brief Signal is Masked */ -#define PMIC_TPS6594X_POWER_PGOOD_SEL_NRSTOUT_SOC_MASKED (0x0U) -/** \brief nRSTOUT_SOC pin low state forces PGOOD signal to low */ -#define PMIC_TPS6594X_POWER_PGOOD_SEL_NRSTOUT_SOC (0x1U) -/* @} */ - -/** - * \anchor Pmic_TPS6594x_Power_Good_Nrstout - * \name PGOOD signal source control from nRSTOUT pin - * - * @{ - */ -/** \brief Signal is Masked */ -#define PMIC_TPS6594X_POWER_PGOOD_SEL_NRSTOUT_MASKED (0x0U) -/** \brief nRSTOUT pin low state forces PGOOD signal to low */ -#define PMIC_TPS6594X_POWER_PGOOD_SEL_NRSTOUT (0x1U) -/* @} */ - -/** - * \anchor Pmic_TPS6594x_Power_Good_Thermal_Warn - * \name PGOOD signal source control from thermal warning - * - * @{ - */ -/** \brief Signal is Masked */ -#define PMIC_TPS6594X_POWER_PGOOD_SEL_TDIE_WARN_MASKED (0x0U) -/** \brief Thermal warning affecting to PGOOD signal */ -#define PMIC_TPS6594X_POWER_PGOOD_SEL_TDIE_WARN (0x1U) -/* @} */ - -/** - * \anchor Pmic_TPS6594x_Power_Good_Vcca - * \name PGOOD signal source control from VCCA monitoring - * - * @{ - */ -/** \brief Signal is Masked */ -#define PMIC_TPS6594X_POWER_PGOOD_SEL_VCCA_DISABLE (0x0U) -/** \brief VCCA OV/UV threshold affecting PGOOD signal */ -#define PMIC_TPS6594X_POWER_PGOOD_SEL_VCCA_ENABLE (0x1U) -/* @} */ - -/** - * \anchor Pmic_TPS6594x_Power_Good_Regulator_Signal - * \name PGOOD signal source control for BUCK and LDO monitoring - * - * @{ - */ -/** \brief Signal is Masked */ -#define PMIC_TPS6594X_POWER_PGOOD_SEL_SRC_MASKED (0x0U) -/** \brief Powergood threshold voltage */ -#define PMIC_TPS6594X_POWER_PGOOD_SEL_SRC_VOLTAGE (0x1U) -/** \brief Powergood threshold voltage AND current limit */ -#define PMIC_TPS6594X_POWER_PGOOD_SEL_SRC_VOLTAGE_CURRENT (0x2U) -/* @} */ - -/** - * \anchor Pmic_TPS6594x_Power_Current_Status - * \name Status whether the output current is above/below current limit level - * - * @{ - */ -/** \brief Status indicating that output current is above current limit - level. */ -#define PMIC_TPS6594X_POWER_CURRENT_LIMIT_STATUS_ABOVE_LIMIT (0x0U) -/** \brief Status indicating that output current is below current limit - level. */ -#define PMIC_TPS6594X_POWER_CURRENT_LIMIT_STATUS_BELOW_LIMIT (0x1U) -/* @} */ - -/** - * \anchor Pmic_TPS6594x_Regulator_Under_Voltage_Status - * \name Status whether the output voltage is above/below voltage threshold \ - * for LDO and BUCK - * - * @{ - */ -/** \brief Status indicating that output voltage is above under-voltage - threshold -*/ -#define PMIC_TPS6594X_REGULATOR_OUTPUT_UNDER_VOLTAGE_STATUS_ABOVE_UV (0x0U) -/** \brief Status indicating that output voltage is below under-voltage - threshold -*/ -#define PMIC_TPS6594X_REGULATOR_OUTPUT_UNDER_VOLTAGE_STATUS_BELOW_UV (0x1U) -/* @} */ - -/** - * \anchor Pmic_TPS6594x_Vcca_Under_Voltage_Status - * \name Status whether the input voltage is above/below under-voltage level \ - * for VCCA/VMON - * - * @{ - */ -/** \brief Status indicating that input voltage is above under-voltage -level */ -#define PMIC_TPS6594X_VCCA_INPUT_UNDER_VOLTAGE_STATUS_ABOVE_UV (0x0U) -/** \brief Status indicating that input voltage is below under-voltage -level */ -#define PMIC_TPS6594X_VCCA_INPUT_UNDER_VOLTAGE_STATUS_BELOW_UV (0x1U) -/* @} */ - -/** - * \anchor Pmic_TPS6594x_Regulator_Over_Voltage_Status - * \name Status whether the output voltage is above/below voltage threshold \ - * for LDO and BUCK - * - * @{ - */ -/** \brief Status indicating that output voltage is above over-voltage - threshold -*/ -#define PMIC_TPS6594X_REGULATOR_OUTPUT_OVER_VOLTAGE_STATUS_ABOVE_OV (0x0U) -/** \brief Status indicating that output voltage is below over-voltage - threshold -*/ -#define PMIC_TPS6594X_REGULATOR_OUTPUT_OVER_VOLTAGE_STATUS_BELOW_OV (0x1U) -/* @} */ - -/** - * \anchor Pmic_TPS6594x_Vcca_Over_Voltage_Status - * \name Status whether the input voltage is above/below over-voltage level \ - * for VCCA/VMON - * - * @{ - */ -/** \brief Status indicating that input voltage is above over-voltage -level */ -#define PMIC_TPS6594X_VCCA_INPUT_OVER_VOLTAGE_STATUS_ABOVE_OV (0x0U) -/** \brief Status indicating that input voltage is below over-voltage -level */ -#define PMIC_TPS6594X_VCCA_INPUT_OVER_VOLTAGE_STATUS_BELOW_OV (0x1U) -/* @} */ - -/** - * \anchor Pmic_TPS6594x_Vcca_Voltage_Status - * \name Status whether the voltage is above/below over-voltage protection \ - * level for VCCA - * - * @{ - */ -/** \brief Status indicating that voltage is above over-voltage protection -level */ -#define PMIC_TPS6594X_VCCA_OVER_VOLTAGE_LVL_STATUS_ABOVE_OV (0x0U) -/** \brief Status indicating that voltage is below over-voltage protection -level */ -#define PMIC_TPS6594X_VCCA_OVER_VOLTAGE_LVL_STATUS_BELOW_OV (0x1U) -/* @} */ - -/** - * \anchor Pmic_TPS6594x_Power_Thermal_Shutdown_Level - * \name PMIC Thermal shutdown threshold level. - * - * @{ - */ -/** \brief Used to set the Thermal shutdown threshold level to 140 Celsius */ -#define PMIC_TPS6594X_THERMAL_TEMP_TSD_ORD_140C (0U) -/** \brief Used to set the Thermal shutdown threshold level to 145 Celsius */ -#define PMIC_TPS6594X_THERMAL_TEMP_TSD_ORD_145C (1U) -/* @} */ - -/** - * \anchor Pmic_TPS6594x_Pwr_Thermal_Warn_Lvl_PG_2_0 - * \name PMIC Thermal warning threshold level for TPS6594x Leo PMIC PG2.0 - * - * @{ - */ -/** \brief Used to set the Thermal warning threshold level to 140 Celsius */ -#define PMIC_TPS6594X_PG_2_0_THERMAL_TEMP_WARN_140C (1U) -/** \brief Used to set the Thermal warning threshold level to 130 Celsius */ -#define PMIC_TPS6594X_PG_2_0_THERMAL_TEMP_WARN_130C (0U) -/* @} */ - -/** - * \anchor Pmic_TPS6594x_Pwr_Thermal_Warn_Lvl_PG_1_0 - * \name PMIC Thermal warning threshold level for TPS6594x Leo PMIC PG1.0 - * - * @{ - */ -/** \brief Used to set the Thermal warning threshold level to 140 Celsius */ -#define PMIC_TPS6594X_THERMAL_TEMP_WARN_130C (1U) -/** \brief Used to set the Thermal warning threshold level to 130 Celsius */ -#define PMIC_TPS6594X_THERMAL_TEMP_WARN_120C (0U) -/* @} */ - -/** - * \anchor Pmic_Tps6594x_PowerInterruptType - * \name PMIC Power Interrupt selection - * - * @{ - */ -#define PMIC_TPS6594X_POWER_OV_INT (0U) -#define PMIC_TPS6594X_POWER_UV_INT (1U) -#define PMIC_TPS6594X_POWER_ILIM_INT (3U) -/* @} */ - -/** - * \anchor Pmic_Tps6594x_PowerInterruptCommonType - * \name PMIC Power Interrupt selection - * - * @{ - */ -#define PMIC_TPS6594X_POWER_INTERRUPT_TWARN (0U) -#define PMIC_TPS6594X_POWER_INTERRUPT_NRSTOUT_READBACK (1U) -#define PMIC_TPS6594X_POWER_INTERRUPT_SOC_PWR_ERR (2U) -#define PMIC_TPS6594X_POWER_INTERRUPT_MCU_PWR_ERR (3U) -#define PMIC_TPS6594X_POWER_INTERRUPT_ORD_SHUTDOWN (4U) -#define PMIC_TPS6594X_POWER_INTERRUPT_IMM_SHUTDOWN (5U) -#define PMIC_TPS6594X_POWER_INTERRUPT_NRSTOUT_SOC_READBACK (6U) -#define PMIC_TPS6594X_POWER_INTERRUPT_EN_DRV_READBACK (7U) -/* @} */ - -/** - * \anchor Pmic_Tps6594x_PowerLdoRtcCfg - * \name PMIC Power LDORTC enable/disable - * - * @{ - */ -#define PMIC_TPS6594X_REGULATOR_LDORTC_ENABLE (0U) -#define PMIC_TPS6594X_REGULATOR_LDORTC_DISABLE (1U) -/* @} */ - -/*==========================================================================*/ -/* Structures and Enums */ -/*==========================================================================*/ - -/*==========================================================================*/ -/* Function Declarations */ -/*==========================================================================*/ - -/*! - * \brief API to enable/disable LDORTC regulator - * - * Requirement: REQ_TAG(PDK-5841) - * Design: did_pmic_power_cfg_readback - * Architecture: aid_pmic_power_cfg - * - * This function is used to enable/disable LDORTC regulator. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param ldortcEnable [IN] Enable/Disable the LDORTC. - * Valid values: - * \ref Pmic_Tps6594x_PowerLdoRtcCfg - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_powerSetLdoRtc(Pmic_CoreHandle_t *pPmicCoreHandle, - bool ldortcEnable); - -/*! - * \brief API to get enable/disable status for LDORTC regulator - * - * Requirement: REQ_TAG(PDK-5841) - * Design: did_pmic_power_cfg_readback - * - * This function is used to get enable/disable status for LDORTC - * regulator. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pLdortcEnable [IN] Pointer to hold Enable/Disable status. - * Valid values: - * \ref Pmic_Tps6594x_PowerLdoRtcCfg - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_powerGetLdoRtc(Pmic_CoreHandle_t *pPmicCoreHandle, - bool *pLdortcEnable); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif/* PMIC_POWER_TPS6594X_H_ */ - -/* @} */ diff --git a/include/pmic_core.h b/include/pmic_core.h deleted file mode 100644 index 40e2535..0000000 --- a/include/pmic_core.h +++ /dev/null @@ -1,1282 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ - -/** - * \ingroup DRV_PMIC_MODULE - * \defgroup DRV_PMIC_COMMON_MODULE PMIC Common Driver API - * - * PMIC common Driver contains Miscellaneous APIs supported by all supported - * PMIC Devices. - * Like, PMIC recovery count APIs, Read/Write Scratchpad registers APIs - * and PMIC nSLEEP Setup APIs. - * - * @{ - */ - -/** - * \file pmic_core.h - * - * \brief PMIC Driver Common API/interface file. - */ - -#ifndef PMIC_CORE_H_ -#define PMIC_CORE_H_ - -/* ========================================================================== */ -/* Include Files */ -/* ========================================================================== */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* ========================================================================== */ -/* Macros & Typedefs */ -/* ========================================================================== */ -/*! - * \brief PMIC driver Core Handle INIT status Magic Number. - * Used to validate Handle to avoid corrupted PmicHandle usage. - * on Success: (DRV_INIT_SUCCESS | Pmic_InstType_t) - */ -#define DRV_INIT_SUCCESS (0xABCD0000U) - -/** \brief Silicon Revision Id - PG 2.0 for TPS6594x Leo and LP8764x Hera */ -#define PMIC_SILICON_REV_ID_PG_2_0 (0x08U) - -/** \brief Silicon Revision Id - PG 1.0 for TPS6594x Leo and LP8764x Hera */ -#define PMIC_SILICON_REV_ID_PG_1_0 (0x0U) - -/** - * \anchor Pmic_RecoveryCntCfgType - * \name PMIC Recovery Counter Configuration Type - * - * @{ - */ - /** \brief validParams value used to set/get Recovery Counter Threshold Value - */ -#define PMIC_CFG_RECOV_CNT_THR_VAL_VALID (0U) - /** \brief validParams value used to Clear/get Recovery Counter Value*/ -#define PMIC_CFG_RECOV_CNT_CLR_CNT_VALID (1U) -/* @} */ - -/** - * \anchor Pmic_RecoveryCntCfgTypeStructPrmBitShiftVal - * \name PMIC Recovery Count Configuration Structure Param Bit shift values - * - * Application can use below shifted values to set the validParams - * struct members defined in Pmic_RecovCntCfg_t structure - * - * @{ - */ -#define PMIC_CFG_RECOV_CNT_THR_VAL_VALID_SHIFT \ - (1U << PMIC_CFG_RECOV_CNT_THR_VAL_VALID) -#define PMIC_CFG_RECOV_CNT_CLR_CNT_VALID_SHIFT \ - (1U << PMIC_CFG_RECOV_CNT_CLR_CNT_VALID) -/* @} */ - -/** - * \anchor Pmic_ScratchPad_Sel - * \name PMIC Scratchpad register selection - * - * @{ - */ -#define PMIC_SCRATCH_PAD_REG_1 (0x0U) -#define PMIC_SCRATCH_PAD_REG_2 (0x1U) -#define PMIC_SCRATCH_PAD_REG_3 (0x2U) -#define PMIC_SCRATCH_PAD_REG_4 (0x3U) -/* @} */ - -/** - * \anchor Pmic_UserSpareReg_Sel - * \name PMIC User Spare register selection - * - * @{ - */ -#define PMIC_USER_SPARE_REG_1 (0x0U) -#define PMIC_USER_SPARE_REG_2 (0x1U) -#define PMIC_USER_SPARE_REG_3 (0x2U) -#define PMIC_USER_SPARE_REG_4 (0x3U) -/* @} */ - -/** - * \anchor Pmic_UserSpareReg_Val - * \name PMIC User Spare register Value - * - * @{ - */ -#define PMIC_USER_SPARE_REG_VAL_0 (0x0U) -#define PMIC_USER_SPARE_REG_VAL_1 (0x1U) -/* @} */ - -/** - * \anchor Pmic_CommonCtrlStatValidParamCfg - * \name PMIC Common control param status Structure Param Bits - * - * PMIC valid params configuration type for - * the structure member validParams of Pmic_CommonCtrlStat_t - * structure - * - * @{ - */ - /** \brief validParams value used to get Backup Battery End of charge Indication - * Status */ -#define PMIC_CFG_BB_EOC_INDICATION_STAT_VALID (0U) -/** \brief validParams value used to get Register lock status */ -#define PMIC_CFG_REGISTER_LOCK_STAT_VALID (1U) -/** \brief validParams value used to get External clock validity status */ -#define PMIC_CFG_EXT_CLK_VALIDITY_STAT_VALID (2U) -/** \brief validParams value used to get Startup(nPWRON/Enable) pin status */ -#define PMIC_CFG_STARTUP_PIN_STAT_VALID (3U) -/** \brief validParams value used to get EN_DRV Pin status */ -#define PMIC_CFG_EN_DRV_PIN_STAT_VALID (4U) -/** \brief validParams value used to get nRSTOUT_SOC Pin status */ -#define PMIC_CFG_NRSTOUTSOC_PIN_STAT_VALID (5U) -/** \brief validParams value used to get nRSTOUT Pin status */ -#define PMIC_CFG_NRSTOUT_PIN_STAT_VALID (6U) -/** \brief validParams value used to get nINT Pin status */ -#define PMIC_CFG_NINT_PIN_STAT_VALID (7U) - /** \brief validParams value used to get SPMI Low Power Mode status */ -#define PMIC_CFG_SPMI_LPM_STAT_VALID (8U) - /** \brief validParams value used to get status of ENABLE_DRV Configuration by - * I2C/SPI */ -#define PMIC_CFG_FORCE_ENABLE_DRV_LOW_STAT_VALID (9U) -/* @} */ - -/** - * \anchor Pmic_CommonCtrlStatValidParamBitShiftValues - * \name PMIC Common Control param status valid param bit shift values - * - * Application can use below shifted values to set the validParam - * member defined in Pmic_CommonCtrlStat_t structure - * - * @{ - */ -#define PMIC_CFG_BB_EOC_INDICATION_STAT_VALID_SHIFT \ - (1U << PMIC_CFG_BB_EOC_INDICATION_STAT_VALID) -#define PMIC_CFG_REGISTER_LOCK_STAT_VALID_SHIFT \ - (1U << PMIC_CFG_REGISTER_LOCK_STAT_VALID) -#define PMIC_CFG_EXT_CLK_VALIDITY_STAT_VALID_SHIFT \ - (1U << PMIC_CFG_EXT_CLK_VALIDITY_STAT_VALID) -#define PMIC_CFG_STARTUP_PIN_STAT_VALID_SHIFT \ - (1U << PMIC_CFG_STARTUP_PIN_STAT_VALID) -#define PMIC_CFG_EN_DRV_PIN_STAT_VALID_SHIFT \ - (1U << PMIC_CFG_EN_DRV_PIN_STAT_VALID) -#define PMIC_CFG_NRSTOUTSOC_PIN_STAT_VALID_SHIFT \ - (1U << PMIC_CFG_NRSTOUTSOC_PIN_STAT_VALID) -#define PMIC_CFG_NRSTOUT_PIN_STAT_VALID_SHIFT \ - (1U << PMIC_CFG_NRSTOUT_PIN_STAT_VALID) -#define PMIC_CFG_NINT_PIN_STAT_VALID_SHIFT \ - (1U << PMIC_CFG_NINT_PIN_STAT_VALID) -#define PMIC_CFG_SPMI_LPM_STAT_VALID_SHIFT \ - (1U << PMIC_CFG_SPMI_LPM_STAT_VALID) -#define PMIC_CFG_FORCE_ENABLE_DRV_LOW_STAT_VALID_SHIFT \ - (1U << PMIC_CFG_FORCE_ENABLE_DRV_LOW_STAT_VALID) -/* @} */ - -/** - * \anchor Pmic_SignalLvl - * \name PMIC signal level of the STARTUP(NPWRON/ENABLE)/ NINT / NRSTOUT_SOC/ - * NRSTOUT/ EN_DRV Pin - * - * @{ - */ -#define PMIC_PIN_SIGNAL_LEVEL_LOW (0U) -#define PMIC_PIN_SIGNAL_LEVEL_HIGH (1U) -/* @} */ - -/** - * \anchor Pmic_PinType_Sel - * \name PMIC Pin Type Selection as NRSTOUT_SOC/ NRSTOUT/ EN_DRV - * - * @{ - */ -#define PMIC_PIN_TYPE_EN_DRV (0U) -#define PMIC_PIN_TYPE_NRSTOUT_SOC (1U) -#define PMIC_PIN_TYPE_NRSTOUT (2U) -/* @} */ - -/** - * \anchor Pmic_EnableDrvI2CSPICfg_Stat - * \name PMIC ENABLE_DRV I2C/SPI configuration status - * - * @{ - */ -#define PMIC_ENABLE_DRV_I2C_SPI_CONFIG_ENABLE (0U) -#define PMIC_ENABLE_DRV_I2C_SPI_CONFIG_DISABLE (1U) -/* @} */ - -/** - * \anchor Pmic_RegisterLock_Config - * \name PMIC Register Lock Configuration - * - * @{ - */ - /** \brief Unlock PMIC Registers */ -#define PMIC_REGISTER_UNLOCK (0x9BU) -/** \brief Lock PMIC Registers - Write any value other than 0x9B. - * Here 0x10 is used */ -#define PMIC_REGISTER_LOCK (0x10U) -/* @} */ - -/** - * \anchor Pmic_RegisterLock_Stat - * \name PMIC Register Lock Status - * - * @{ - */ -#define PMIC_REGISTER_STATUS_UNLOCK (0x0U) -#define PMIC_REGISTER_STATUS_LOCK (0x1U) -/* @} */ - -/** - * \anchor Pmic_SpreadSpectrum_Cfg - * \name PMIC Spread Spectrum Configuration - * - * @{ - */ - /** \brief Disable Spread Spectrum Configuration */ -#define PMIC_SPREAD_SPECTRUM_CFG_DISABLE 0U -/** \brief Enable Spread Spectrum Configuration */ -#define PMIC_SPREAD_SPECTRUM_CFG_ENABLE 1U - -/* @} */ - -/** - * \anchor Pmic_SpreadSpectrum_Mod_Depth_Sel - * \name PMIC Spread Spectrum Modulation Depth Sel - * - * @{ - */ - /** \brief No Modulation */ -#define PMIC_SPREAD_SPECTRUM_MODULATION_DEPTH_NONE (0U) -/** \brief Modulation Depth as +/- 6.3% */ -#define PMIC_SPREAD_SPECTRUM_MODULATION_DEPTH_6_3_PERCENT (1U) -/** \brief Modulation Depth as +/- 8.4% */ -#define PMIC_SPREAD_SPECTRUM_MODULATION_DEPTH_8_4_PERCENT (2U) -/* @} */ - -/** - * \anchor Pmic_SpmiLpmModeCtrl_Stat - * \name PMIC SPMI LPM Mode Control Status - * - * @{ - */ - /** \brief SPMI LPM Mode Control Configuration is Disabled */ -#define PMIC_SPMI_LPM_MODE_CTRL_CFG_DISABLED (0U) -/** \brief SPMI LPM Mode Control Configuration is Enabled */ -#define PMIC_SPMI_LPM_MODE_CTRL_CFG_ENABLED (1U) -/* @} */ - -/** - * \anchor Pmic_InternalClkMonitor_Cfg - * \name PMIC Internal Clock Monitoring Configuration - * - * @{ - */ - /** \brief Disable Internal Clock Monitoring */ -#define PMIC_INTERNAL_CLK_MONITORING_CFG_DISABLE (0U) -/** \brief Enable Internal Clock Monitoring */ -#define PMIC_INTERNAL_CLK_MONITORING_CFG_ENABLE (1U) -/* @} */ - -/** - * \anchor Pmic_SyncClkOut_Freq_Sel - * \name PMIC SYNCCLKOUT Frequency selection - * - * @{ - */ - /** \brief DISABLE SYNCCLKOUT */ -#define PMIC_SYNCCLKOUT_DISABLE (0U) -/** \brief SYNCCLKOUT Frequency as 1.1 MHz */ -#define PMIC_SYNCCLKOUT_1_1_MHZ (1U) -/** \brief SYNCCLKOUT Frequency as 2.2 MHz */ -#define PMIC_SYNCCLKOUT_2_2_MHZ (2U) -/** \brief SYNCCLKOUT Frequency as 4.4 MHz */ -#define PMIC_SYNCCLKOUT_4_4_MHZ (3U) -/* @} */ - -/** - * \anchor Pmic_ExtClk_Sel - * \name PMIC External Clock selection - * - * @{ - */ - /** \brief Forced to Internal RC Oscillator */ -#define PMIC_INTERNAL_RC_OSC (0U) -/** \brief Selects External clock when Available */ -#define PMIC_AUTOMATIC_EXT_CLK (1U) -/* @} */ - -/** - * \anchor Pmic_ExtClkValidStat - * \name PMIC External Clock Validity Status - * - * @{ - */ -#define PMIC_EXT_CLK_STATUS_VALID (0U) -#define PMIC_EXT_CLK_STATUS_INVALID (1U) -/* @} */ - -/** - * \anchor Pmic_CrcStatus - * \name PMIC CRC Status for I2C1/I2C2/SPI - * - * @{ - */ - /** \brief CRC is disabled */ -#define PMIC_CRC_STATUS_DISABLED (0U) - /** \brief CRC is enabled */ -#define PMIC_CRC_STATUS_ENABLED (1U) -/* @} */ - -/** - * \anchor Pmic_CommonCtrlValidParamCfg - * \name PMIC Common Control Configuration Structure Param Bits - * - * PMIC valid params configuration type for - * the structure member validParams of Pmic_CommonCtrlCfg_t - * structure - * - * @{ - */ - /** \brief validParams value used to set/get Spread Spectrum - * Enable/Disable */ -#define PMIC_CFG_SPREAD_SPECTRUM_EN_VALID (0U) -/** \brief validParams value used to set/get ENABLE_DRV pin - * configuration */ -#define PMIC_CFG_ENABLE_DRV_VALID (1U) - /** \brief validParams value used to set/get Register Lock - * configuration */ -#define PMIC_CFG_REG_LOCK_VALID (2U) -/** \brief validParams value used to set/get Spread Spectrum - * modulation Depth Value */ -#define PMIC_CFG_SPREAD_SPECTRUM_DEPTH_VALID (3U) - /** \brief validParams value used to set/get to Enable/Disable load - * from EEPROM defaults on RTC Domain(TPS6594X Leo)/ conf(LP8764x Hera) - * registers */ -#define PMIC_CFG_EEPROM_DEFAULT_VALID (4U) - /** \brief validParams value used to set/get to Enable/Disable to - * skip EEPROM defaults load on conf and Other registers - * Valid only for LP8764x Hera*/ -#define PMIC_CFG_SKIP_EEPROM_LOAD_VALID (5U) -/* @} */ - -/** - * \anchor Pmic_CommonCtrlValidParamBitShiftValues - * \name PMIC Common Control Configuration valid param bit shift values - * - * Application can use below shifted values to set the validParam - * member defined in Pmic_CommonCtrlCfg_t structure - * - * @{ - */ -#define PMIC_CFG_SPREAD_SPECTRUM_EN_VALID_SHIFT \ - (1U << PMIC_CFG_SPREAD_SPECTRUM_EN_VALID) -#define PMIC_CFG_ENABLE_DRV_VALID_SHIFT \ - (1U << PMIC_CFG_ENABLE_DRV_VALID) -#define PMIC_CFG_REG_LOCK_VALID_SHIFT \ - (1U << PMIC_CFG_REG_LOCK_VALID) -#define PMIC_CFG_SPREAD_SPECTRUM_DEPTH_VALID_SHIFT \ - (1U << PMIC_CFG_SPREAD_SPECTRUM_DEPTH_VALID) -#define PMIC_CFG_EEPROM_DEFAULT_VALID_SHIFT \ - (1U << PMIC_CFG_EEPROM_DEFAULT_VALID) -#define PMIC_CFG_SKIP_EEPROM_LOAD_VALID_SHIFT \ - (1U << PMIC_CFG_SKIP_EEPROM_LOAD_VALID) -/* @} */ - -/** - * \anchor Pmic_MiscCtrlValidParamCfg - * \name PMIC Miscellaneous Control Configuration Structure Param Bits - * - * PMIC valid params configuration type for - * the structure member validParams of Pmic_MiscCtrlCfg_t - * structure - * - * @{ - */ - /** \brief validParams value used to set/get to Enable/Disable Band gap - * Voltage to AMUX OUT/REF OUT Pin */ -#define PMIC_CFG_AMUX_OUT_REF_OUT_EN_VALID (0U) - /** \brief validParams value used to set/get to Enable or Disable internal - * Clock Monitoring */ -#define PMIC_CFG_CLK_MON_EN_VALID (1U) - /** \brief validParams value used to set/get to Select SYNCCLKOUT Frequency */ -#define PMIC_CFG_SYNC_CLK_OUT_FREQ_SEL_VALID (2U) - /** \brief validParams value used to set/get External clock Selection */ -#define PMIC_CFG_EXT_CLK_SEL_VALID (3U) - /** \brief validParams value used to set/get to Select External clock Frequency - */ -#define PMIC_CFG_SYNC_CLK_IN_FREQ_VALID (4U) - /** \brief validParams value used to set/get to NRSTOUT_SOC Signal - */ -#define PMIC_CFG_NRSTOUT_SOC_VALID (5U) - /** \brief validParams value used to set/get NRSTOUT Signal - */ -#define PMIC_CFG_NRSTOUT_VALID (6U) -/* @} */ - -/** - * \anchor Pmic_MiscCtrlValidParamBitShiftValues - * \name PMIC Miscellaneous Control Configuration valid param bit shift - * values - * - * Application can use below shifted values to set the validParam - * member defined in Pmic_MiscCtrlCfg_t structure - * - * @{ - */ -#define PMIC_CFG_AMUX_OUT_REF_OUT_EN_VALID_SHIFT \ - (1U << PMIC_CFG_AMUX_OUT_REF_OUT_EN_VALID) -#define PMIC_CFG_CLK_MON_EN_VALID_SHIFT \ - (1U << PMIC_CFG_CLK_MON_EN_VALID) -#define PMIC_CFG_SYNC_CLK_OUT_FREQ_SEL_VALID_SHIFT \ - (1U << PMIC_CFG_SYNC_CLK_OUT_FREQ_SEL_VALID) -#define PMIC_CFG_EXT_CLK_SEL_VALID_SHIFT \ - (1U << PMIC_CFG_EXT_CLK_SEL_VALID) -#define PMIC_CFG_SYNC_CLK_IN_FREQ_VALID_SHIFT \ - (1U << PMIC_CFG_SYNC_CLK_IN_FREQ_VALID) -#define PMIC_CFG_NRSTOUT_SOC_VALID_SHIFT \ - (1U << PMIC_CFG_NRSTOUT_SOC_VALID) -#define PMIC_CFG_NRSTOUT_VALID_SHIFT \ - (1U << PMIC_CFG_NRSTOUT_VALID) -/* @} */ - -/** - * \anchor Pmic_BatteryCtrlValidParamCfg - * \name PMIC Backup Battery Control Configuration Structure Param Bits - * - * PMIC valid params configuration type for - * the structure member validParams of Pmic_BatteryCtrlCfg_t - * structure - * - * @{ - */ - /** \brief validParams value used to set/get to Enable/Disable Backup Battery - * Charging */ -#define PMIC_CFG_CHARGING_EN_VALID (0U) - /** \brief validParams value used to set/get to Backup Battery configuration for - * End of charge Voltage */ -#define PMIC_CFG_END_OF_CHARGE_VOLTAGE_VALID (1U) - /** \brief validParams value used to set/get to Backup Battery charging current - * value */ -#define PMIC_CFG_CHARGE_CURRENT_VALID (2U) -/* @} */ - -/** - * \anchor Pmic_BatteryCtrlValidParamBitShiftValues - * \name PMIC Backup Battery Control Configuration valid param bit shift - * values - * - * Application can use below shifted values to set the validParam - * member defined in Pmic_BatteryCtrlCfg_t structure - * - * @{ - */ -#define PMIC_CFG_CHARGING_EN_VALID_SHIFT \ - (1U << PMIC_CFG_CHARGING_EN_VALID) -#define PMIC_CFG_END_OF_CHARGE_VOLTAGE_VALID_SHIFT \ - (1U << PMIC_CFG_END_OF_CHARGE_VOLTAGE_VALID) -#define PMIC_CFG_CHARGE_CURRENT_VALID_SHIFT \ - (1U << PMIC_CFG_CHARGE_CURRENT_VALID) -/* @} */ - -/*==========================================================================*/ -/* Structures and Enums */ -/*==========================================================================*/ -/*! - * \brief PMIC Recovery Counter Configuration - * Note: validParams is input param for all Set and Get APIs. other - * params except validParams is input param for Set APIS and output - * param for Get APIs - * - * \param validParams Selection of structure parameters to be set, - * from the combination of \ref Pmic_RecoveryCntCfgType - * and the corresponding member value must be updated. - * Valid values \ref Pmic_RecoveryCntCfgType - * \param thrVal Recovery Counter Threshold Value. - * Valid only when PMIC_CFG_RECOV_CNT_THR_VAL_VALID - * bit is set. - * \param clrCnt Clear Recovery Counter Value and value should be 1U. - * Valid only when PMIC_CFG_RECOV_CNT_CLR_VAL_VALID - * bit is set. - */ -typedef struct Pmic_RecovCntCfg_s -{ - uint8_t validParams; - uint8_t thrVal; - bool clrCnt; -} Pmic_RecovCntCfg_t; - -/*! - * \brief PMIC common control param configuration - * Note: validParams is input param for all Set and Get APIs. other - * params except validParams is input param for Set APIs and output - * param for Get APIs - * - * \param validParams Selection of structure parameters to be set, - * from the combination of - * \ref Pmic_CommonCtrlValidParamCfg - * and the corresponding member value must be - * updated - * Valid values - * \ref Pmic_CommonCtrlValidParamCfg - * \param sreadSpectrumEn Spread Spectrum Enable Value - * Valid only when - * PMIC_CFG_SPREAD_SPECTRUM_EN_VALID bit is set - * Valid values \ref Pmic_SpreadSpectrum_Cfg - * \param skipEepromDefaultLoadEn Enable/Disable to skip EEPROM defaults load - * on conf registers when device transition - * from Lpstandby to INIT state - * Valid only for LP8764x Hera Device - * Valid only when - * PMIC_CFG_SKIP_EEPROM_LOAD_VALID - * bit is set. - * Valid values - * \ref Pmic_Lp8764xHera_Skip_EepromDef_LdCfg - * \param eepromDefaultLoad Load/Not Loaded from EEPROM defaults on - * RTC domain Registers (for TPS6594x Leo - * Device) when device transition from - * Lpstandby/SafeRecovery to INIT state - * Enable/Disable load from EEPROM defaults on - * conf registers when - * skipEepromDefaultLoadEn = 0 - * when device transition from Lpstandby to - * INIT state - * Load/Not Loaded load from EEPROM defaults on - * conf registers when device transition from - * SafeRecovery to INIT state.Doesn't depends - * on skipEepromDefaultLoadEn Value - * (for LP8764x Hera Device) - * Valid only when - * PMIC_CFG_EEPROM_DEFAULT_VALID bit is set. - * Valid values - * \ref Pmic_Tps6594xLeo_EepromDef_LdCfg - * (for TPS6594x Leo Device) - * \ref Pmic_Lp8764xHera_EepromDef_LdCfg - * (for LP8764x Hera Device) - * \param enDrv Control of ENABLE_DRV pin. Can be configured - * only When forceEnDrvLow set to 0 else - * ENABLE_DRV pin is set to - * PMIC_PIN_SIGNAL_LEVEL_LOW. - * Valid values \ref Pmic_SignalLvl - * Valid only when PMIC_CFG_ENABLE_DRV_VALID - * bit is set. - * \param regLock Register Lock configuration - * Valid values \ref Pmic_RegisterLock_Config - * Valid only when PMIC_CFG_REG_LOCK_VALID - * bit is set - * Valid only for Pmic_setCommonCtrlConfig API - * \param spreadSpectrumDepth Spread Spectrum modulation Depth Value - * Valid values - * \ref Pmic_SpreadSpectrum_Mod_Depth_Sel - * Valid only when - * PMIC_CFG_SPREAD_SPECTRUM_DEPTH_VALID - * bit is set. - */ -typedef struct Pmic_CommonCtrlCfg_s -{ - uint8_t validParams; - bool sreadSpectrumEn; - bool skipEepromDefaultLoadEn; - uint8_t eepromDefaultLoad; - uint8_t enDrv; - uint8_t regLock; - uint8_t spreadSpectrumDepth; -} Pmic_CommonCtrlCfg_t; - -/*! - * \brief PMIC Miscellaneous control param Configuration - * Note: validParams is input param for all Set and Get APIs. other - * params except validParams is input param for Set APIs and output - * param for Get APIs - * - * \param validParams Selection of structure parameters to be set, - * from the combination of - * \ref Pmic_MiscCtrlValidParamCfg and the - * corresponding member value must be updated. - * Valid values \ref Pmic_MiscCtrlValidParamCfg - * \param amuxOutRefOutEn Enable/Disable Band gap Voltage to AMUX OUT Pin - * (for TPS6594x Leo Device) or RFF OUT Pin - * (for LP8764x Leo Device) - * Valid only when - * PMIC_CFG_AMUX_OUT_REF_OUT_EN_VALID bit is set - * Valid values - * \ref Pmic_Tps6594xLeo_AMuxOutPinCtrl_Cfg - * (for TPS6594x Leo Device) - * \ref Pmic_Lp8764xHera_RefOutPinCtrl_Cfg - * (for LP8764x Hera Device) - * \param clkMonEn Enable or Disable internal Clock Monitoring - * Valid only when PMIC_CFG_CLK_MON_EN_VALID - * bit is set. - * Valid values \ref Pmic_InternalClkMonitor_Cfg - * \param syncClkOutFreqSel Selects SYNCCLKOUT Frequency - * Valid values \ref Pmic_SyncClkOut_Freq_Sel - * Valid only when - * PMIC_CFG_SYNC_CLK_OUT_FREQ_SEL_VALID bit is set - * \param extClkSel External clock Selection - * Valid values \ref Pmic_ExtClk_Sel - * Valid only when PMIC_CFG_EXT_CLK_SEL_VALID - * bit is set. - * \param syncClkInFreq Selects External clock Frequency - * Valid only when PMIC_CFG_SYNC_CLK_IN_FREQ_VALID - * bit is set. - * Valid values - * \ref Pmic_Tps6594xLeo_ExtClk_Freq_Sel - * (for TPS6594x Leo Device) - * \ref Pmic_Lp8764xHera_ExtClk_Freq_Sel - * (for LP8764x Hera Device) - * \param nRstOutSocSignal Configure NRSTOUT_SOC Signal - * Note: When Application configures - * nRstOutSocSignal as PMIC_PIN_SIGNAL_LEVEL_LOW - * then SOC will be in reset - * Valid only when PMIC_CFG_NRSTOUT_SOC_VALID - * bit is set. - * Valid values \ref Pmic_SignalLvl - * \param nRstOutSignal Configure NRSTOUT Signal - * Note: When Application configures - * nRstOutSignal as PMIC_PIN_SIGNAL_LEVEL_LOW - * then MCU will be in reset - * Valid only when PMIC_CFG_NRSTOUT_VALID - * bit is set. - * Valid values \ref Pmic_SignalLvl - */ -typedef struct Pmic_MiscCtrlCfg_s -{ - uint8_t validParams; - bool amuxOutRefOutEn; - bool clkMonEn; - uint8_t syncClkOutFreqSel; - uint8_t extClkSel; - uint8_t syncClkInFreq; - uint8_t nRstOutSocSignal; - uint8_t nRstOutSignal; -} Pmic_MiscCtrlCfg_t; - -/*! - * \brief PMIC Backup Battery control param Configuration - * Note: validParams is input param for all Set and Get APIs. other - * params except validParams is input param for Set APIs and output - * param for Get APIs - * - * \param validParams Selection of structure parameters to be set, - * from the combination of - * \ref Pmic_BatteryCtrlValidParamCfg and the - * corresponding member value must be updated. - * \param chargingEn Enable/Disable Backup Battery Charging - * Valid only when PMIC_CFG_CHARGING_EN_VALID - * bit is set. - * Valid only for TPS6594x Leo Device - * Valid values - * \ref Pmic_Tps6594xLeo_BatteryCharging_Cfg - * \param endOfChargeVoltage Backup Battery configuration for End of charge - * Voltage - * Valid only when - * PMIC_CFG_END_OF_CHARGE_VOLTAGE_VALID bit is set. - * Valid only for TPS6594x Leo Device - * Valid values - * \ref Pmic_Tps6594xLeo_EndOfChargeVoltage_Sel - * \param chargeCurrent Backup Battery charging current value - * Valid only when PMIC_CFG_CHARGE_CURRENT_VALID - * bit is set. - * Valid only for TPS6594x Leo Device - * Valid values - * \ref Pmic_Tps6594xLeo_Charging_Current_Sel - */ -typedef struct Pmic_BatteryCtrlCfg_s -{ - uint8_t validParams; - bool chargingEn; - uint8_t endOfChargeVoltage; - uint8_t chargeCurrent; -} Pmic_BatteryCtrlCfg_t; - -/*! - * \brief PMIC common control param status - * Note: validParams is input param for all Get APIs. other params - * except validParams is output param for Get APIs - * - * \param validParams Selection of structure parameters to be set, from - * the combination of - * \ref Pmic_CommonCtrlStatValidParamCfg - * and the corresponding member value must be - * updated - * Valid values - * \ref Pmic_CommonCtrlStatValidParamCfg - * \param spmiLpmStat SPMI Low Power Mode Control Status. - * Valid only when PMIC_CFG_SPMI_LPM_STAT_VALID - * bit is set. - * Valid values \ref Pmic_SpmiLpmModeCtrl_Stat - * \param forceEnDrvLowStat Status of ENABLE_DRV Configuration by I2C/SPI - * Valid only when - * PMIC_CFG_FORCE_ENABLE_DRV_LOW_STAT_VALID - * bit is set. - * Valid values \ref Pmic_EnableDrvI2CSPICfg_Stat - * \param bbEocIndication Backup Battery End of charge Indication Status - * Valid only when - * PMIC_CFG_BB_EOC_INDICATION_STAT_VALID - * bit is set - * Valid only for TPS6594x Leo Device - * Valid values - * \ref Pmic_Tps6594xLeo_BBEoCIndicationStat - * \param regLockStat Register lock status - * Valid only when PMIC_CFG_REGISTER_LOCK_STAT_VALID - * bit is set - * Valid values \ref Pmic_RegisterLock_Stat - * \param extClkValidity External clock validity status. The status value - * is valid only when External clock is connected - * Ignore the status value when External clock is not - * connected - * Valid only when - * PMIC_CFG_EXT_CLK_VALIDITY_STAT_VALID bit is set - * Valid values \ref Pmic_ExtClkValidStat - * \param startupPin Startup(nPWRON/Enable) pin status - * Valid only when PMIC_CFG_STARTUP_PIN_STAT_VALID - * bit is set - * Valid values \ref Pmic_SignalLvl - * \param enDrvPin EN_DRV Pin status - * Valid only when PMIC_CFG_EN_DRV_PIN_STAT_VALID - * bit is set. - * Valid values \ref Pmic_SignalLvl - * \param nRstOutSocPin nRSTOUT_SOC Pin status - * Valid only when - * PMIC_CFG_NRSTOUTSOC_PIN_STAT_VALID bit is set. - * Valid values \ref Pmic_SignalLvl - * \param nRstOutPin nRSTOUT Pin status - * Valid only when PMIC_CFG_NRSTOUT_PIN_STAT_VALID - * bit is set. - * Valid values \ref Pmic_SignalLvl - * \param nIntPin nINT Pin status - * Valid only when PMIC_CFG_NINT_PIN_STAT_VALID - * bit is set. - * Valid values \ref Pmic_SignalLvl - */ -typedef struct Pmic_CommonCtrlStat_s -{ - uint32_t validParams; - bool spmiLpmStat; - uint8_t forceEnDrvLowStat; - uint8_t bbEndOfChargeIndication; - uint8_t regLockStat; - uint8_t extClkValidity; - uint8_t startupPin; - uint8_t enDrvPin; - uint8_t nRstOutSocPin; - uint8_t nRstOutPin; - uint8_t nIntPin; -} Pmic_CommonCtrlStat_t; - -/*! - * \brief PMIC Device Information - * - * \param deviceID TI Device ID Value - * \param nvmID TI NVM ID Value - * \param nvmRev TI NVM Revision - * \param siliconRev TI Silicon Revision - * \param customNvmID Customer configured NVM ID Value - * customNvmID value is valid only for TPS6594x Leo - * PMIC PG2.0 and LP8764x Hera PMIC PG2.0 - */ -typedef struct Pmic_DeviceInfo_s -{ - uint8_t deviceID; - uint8_t nvmID; - uint8_t nvmRev; - uint8_t siliconRev; - uint8_t customNvmID; -} Pmic_DeviceInfo_t; - -/*==========================================================================*/ -/* Function Declarations */ -/*==========================================================================*/ -/*! - * \brief API to Set Recovery Counter Configuration. - * - * Requirement: REQ_TAG(PDK-5809) - * Design: did_pmic_err_recov_cnt_cfg_readback - * Architecture: aid_pmic_core_misc_cfg - * - * This function configures PMIC Recovery Counter register, controlling - * recovery count Threshold and Clear, when corresponding validParam - * bit field is set in the Pmic_RecovCntCfg_t structure. - * For more information \ref Pmic_RecovCntCfg_t - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param recovCntCfg [IN] Set configuration value for - * Recovery counter - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_setRecoveryCntCfg(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_RecovCntCfg_t recovCntCfg); - -/*! - * \brief API to Get Recovery Counter Configuration. - * - * Requirement: REQ_TAG(PDK-5809) - * Design: did_pmic_err_recov_cnt_cfg_readback - * Architecture: aid_pmic_core_misc_cfg - * - * This function gets PMIC Recovery Counter configuration values. Like, - * recovery count Threshold and Clear, when corresponding validParam - * bit field is set in the Pmic_RecovCntCfg_t structure. - * For more information \ref Pmic_RecovCntCfg_t - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pRecovCntCfg [IN/OUT] Pointer to store recovery counter - * configuration value - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_getRecoveryCntCfg(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_RecovCntCfg_t *pRecovCntCfg); - -/*! - * \brief API to Read Recovery Count Value. - * - * Requirement: REQ_TAG(PDK-5809) - * Design: did_pmic_err_recov_cnt_cfg_readback - * Architecture: aid_pmic_core_misc_cfg - * - * This function reads out the recovery count value. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pRecovCntVal [OUT] Pointer to store recovery count - * value - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_getRecoveryCnt(Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t *pRecovCntVal); - -/*! - * \brief API to set/write value in/to scratchpad register. - * - * Requirement: REQ_TAG(PDK-5810), REQ_TAG(PDK-5843) - * Design: did_pmic_comm_single_i2c_cfg, did_pmic_comm_spi_cfg - * Architecture: aid_pmic_core_misc_cfg - * - * This function is used write data to scratchpad register of PMIC - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param scratchPadRegNum [IN] ScratchPad register number - * Valid values \ref Pmic_ScratchPad_Sel - * \param data [IN] Data/Value to be written to scratchpad. - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_setScratchPadValue(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t scratchPadRegNum, - const uint8_t data); - -/*! - * \brief API to get/read data from scratchpad register. - * - * Requirement: REQ_TAG(PDK-5810), REQ_TAG(PDK-5843) - * Design: did_pmic_comm_single_i2c_cfg, did_pmic_comm_spi_cfg - * Architecture: aid_pmic_core_misc_cfg - * - * This function is used read data from scratchpad register of PMIC - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param scratchPadRegNum [IN] ScratchPad register number - * Valid values\ref Pmic_ScratchPad_Sel - * \param pData [OUT] Parameter to hold the Data/Value read - * from scratchpad. - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_getScratchPadValue(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t scratchPadRegNum, - uint8_t *pData); - -/*! - * \brief API to set/write value in/to User Spare register. - * - * Requirement: REQ_TAG(PDK-9133) - * Design: did_pmic_user_spare_cfg_readback - * Architecture: aid_pmic_core_misc_cfg - * - * This function is used write data to User Spare register of PMIC - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param userSpareRegNum [IN] UserSpare register number - * Valid values \ref Pmic_UserSpareReg_Sel - * \param data [IN] Data/Value to be written to UserSpare - * register - * Valid values \ref Pmic_UserSpareReg_Val - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_setUserSpareValue(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t userSpareRegNum, - const uint8_t data); - -/*! - * \brief API to get/read data from User Spare register. - * - * Requirement: REQ_TAG(PDK-9133) - * Design: did_pmic_user_spare_cfg_readback - * Architecture: aid_pmic_core_misc_cfg - * - * This function is used read data from User Spare register of PMIC - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param userSpareRegNum [IN] User Spare register number - * Valid values \ref Pmic_UserSpareReg_Sel - * \param pData [OUT] Parameter to hold the Data/Value read - * from User Spare register. - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_getUserSpareValue(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t userSpareRegNum, - uint8_t *pData); - -/*! - * \brief API to set PMIC common control parameter configuration. - * - * Requirement: REQ_TAG(PDK-9112), REQ_TAG(PDK-9114), REQ_TAG(PDK-9131), - * REQ_TAG(PDK-9143), REQ_TAG(PDK-9111) - * Design: did_pmic_common_ctrl_cfg_readback - * Architecture: aid_pmic_core_misc_cfg - * - * This function is used to set the required common control parameter - * configuration when corresponding validParam bit field is set in - * the Pmic_CommonCtrlCfg_t - * For more information \ref Pmic_CommonCtrlCfg_t - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param commonCtrlCfg [IN] Set PMIC required common control parameter - * configuration. - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_setCommonCtrlConfig(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_CommonCtrlCfg_t commonCtrlCfg); - -/*! - * \brief API to get PMIC common control parameter configuration. - * - * Requirement: REQ_TAG(PDK-9112), REQ_TAG(PDK-9114), REQ_TAG(PDK-9131), - * REQ_TAG(PDK-9143) - * Design: did_pmic_common_ctrl_cfg_readback - * Architecture: aid_pmic_core_misc_cfg - * - * This function is used to get the required common control parameter - * configuration when corresponding validParam bit field is set in - * the Pmic_CommonCtrlCfg_t - * For more information \ref Pmic_CommonCtrlCfg_t - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pCommonCtrlCfg [IN/OUT] Pointer to store PMIC required common - * control parameter configuration. - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_getCommonCtrlConfig(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_CommonCtrlCfg_t *pCommonCtrlCfg); - -/*! - * \brief API to set PMIC Miscellaneous control parameter configuration. - * - * Requirement: REQ_TAG(PDK-9132), REQ_TAG(PDK-9127), REQ_TAG(PDK-9111) - * Design: did_pmic_misc_ctrl_cfg_readback - * Architecture: aid_pmic_core_misc_cfg - * - * This function is used to set the required miscellaneous control - * parameter configuration when corresponding validParam bit field is - * set in the Pmic_MiscCtrlCfg_t - * For more information \ref Pmic_MiscCtrlCfg_t - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param miscCtrlCfg [IN] Set PMIC required miscellaneous control - * parameter configuration. - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_setMiscCtrlConfig(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_MiscCtrlCfg_t miscCtrlCfg); - -/*! - * \brief API to get PMIC Miscellaneous control parameter configuration. - * - * Requirement: REQ_TAG(PDK-9132), REQ_TAG(PDK-9127) - * Design: did_pmic_misc_ctrl_cfg_readback - * Architecture: aid_pmic_core_misc_cfg - * - * This function is used to get the required miscellaneous control - * parameter configuration when corresponding validParam bit field is - * set in the Pmic_MiscCtrlCfg_t - * For more information \ref Pmic_MiscCtrlCfg_t - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pMiscCtrlCfg [IN/OUT] Pointer to store PMIC required - * miscellaneous control parameter - * configuration. - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_getMiscCtrlConfig(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_MiscCtrlCfg_t *pMiscCtrlCfg); - -/*! - * \brief API to set PMIC Battery Backup control parameter configuration. - * - * Requirement: REQ_TAG(PDK-9130), REQ_TAG(PDK-9111) - * Design: did_pmic_battery_ctrl_cfg_readback - * Architecture: aid_pmic_core_misc_cfg - * - * This function is used to set the required Battery Backup control - * parameter configuration when corresponding validParam bit field is - * set in the Pmic_BatteryCtrlCfg_t - * For more information \ref Pmic_BatteryCtrlCfg_t - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param batteryCtrlCfg [IN] Set PMIC required Battery Backup control - * parameter configuration. - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_setBatteryCtrlConfig(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_BatteryCtrlCfg_t batteryCtrlCfg); - -/*! - * \brief API to get PMIC Battery Backup control parameter configuration. - * Note: validParams is input param for all Set and Get APIs. other - * params except validParams is input param for Set APIs and output - * param for Get APIs - * - * Requirement: REQ_TAG(PDK-9130) - * Design: did_pmic_battery_ctrl_cfg_readback - * Architecture: aid_pmic_core_misc_cfg - * - * This function is used to get the required Battery Backup control - * parameter configuration when corresponding validParam bit field is - * set in the Pmic_BatteryCtrlCfg_t - * For more information \ref Pmic_BatteryCtrlCfg_t - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pBatteryCtrlCfg [IN/OUT] Pointer to store PMIC required Battery - * Backup control parameter configuration - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_getBatteryCtrlConfig(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_BatteryCtrlCfg_t *pBatteryCtrlCfg); - -/*! - * \brief API to get PMIC GPIO NRSTOUT_SOC/ NRSTOUT/ EN_DRV Pin - * - * Requirement: REQ_TAG(PDK-9137), REQ_TAG(PDK-9131) - * Design: did_pmic_pin_readback - * Architecture: aid_pmic_core_misc_cfg - * - * This function is used to read the signal level of the NRSTOUT_SOC/ - * NRSTOUT/ EN_DRV Pin - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param pinType [IN] PMIC pin type. - * Valid values of pin type - * \ref Pmic_PinType_Sel - * \param pPinValue [OUT] Pointer to store the status of pin type - * Valid values \ref Pmic_SignalLvl - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_getPinValue(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t pinType, - uint8_t *pPinValue); - -/*! - * \brief API to get PMIC common control parameter status. - * - * Requirement: REQ_TAG(PDK-9126), REQ_TAG(PDK-9124), REQ_TAG(PDK-9130), - * REQ_TAG(PDK-9125), REQ_TAG(PDK-9139), REQ_TAG(PDK-9138), - * REQ_TAG(PDK-9112) - * Design: did_pmic_common_ctrl_status_readback - * Architecture: aid_pmic_core_misc_cfg - * - * This function is used to get the required common control parameter - * status when corresponding validParam bit field is set in - * the Pmic_CommonCtrlStat_t - * For more information \ref Pmic_CommonCtrlStat_t - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pCommonCtrlStat [IN/OUT] Pointer to store PMIC required common - * control parameter status. - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_getCommonCtrlStat(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_CommonCtrlStat_t *pCommonCtrlStat); - -/*! - * \brief API to get configured value for I2C1 or I2C2 Speed based on commMode - * - * Requirement: REQ_TAG(PDK-9129) - * Design: did_pmic_i2c_speed_readback - * Architecture: aid_pmic_core_misc_cfg - * - * This function is used to get the configured value for I2C1 or - * I2C2 Speed based on commMode - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pI2C1Speed [OUT] Pointer to store I2C1 Speed for both - * PMIC_INTF_SINGLE_I2C and PMIC_INTF_DUAL_I2C - * interface - * Valid Vaues \ref Pmic_I2CSpeedSel - * \param pI2C2Speed [OUT] Pointer to store I2C2 Speed for both - * PMIC_INTF_DUAL_I2C interface only - * Valid Vaues \ref Pmic_I2CSpeedSel - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_getI2CSpeed(Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t *pI2C1Speed, - uint8_t *pI2C2Speed); - -/*! - * \brief API to Enable CRC - * - * Requirement: REQ_TAG(PDK-9119) - * Design: did_pmic_crc_enable - * Architecture: aid_pmic_core_misc_cfg - * - * This function is used to enable CRC on Primary PMIC which enables - * CRC for I2C1, I2C2, SPI interface of both Primary and Secondary PMIC - * Note: Application shall not do reads and writes of the any - * PMIC registers for at least 2ms to allow the recalculation of the - * register CRC value due to the change - * Valid only for TPS6594x Leo PMIC PG2.0 and LP8764x Hera PMIC PG2.0 - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_enableCRC(Pmic_CoreHandle_t *pPmicCoreHandle); - -/*! - * \brief API to get CRC Status - * - * Requirement: REQ_TAG(PDK-9329) - * Design: did_pmic_crc_status - * Architecture: aid_pmic_core_misc_cfg - * - * This function is used to get the CRC Status based on commMode - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pI2c1SpiCrcStatus [OUT] Pointer to store CRC Status for I2C1/ - * SPI interface - * Valid Vaues \ref Pmic_CrcStatus - * \param pI2c2CrcStatus [OUT] Pointer to store CRC Status for I2C2 - * interface - * Valid Vaues \ref Pmic_CrcStatus - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_getCrcStatus(Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t *pI2c1SpiCrcStatus, - uint8_t *pI2c2CrcStatus); - -/*! - * \brief API to get PMIC Device Information - * - * Requirement: REQ_TAG(PDK-9109), REQ_TAG(PDK-9110), REQ_TAG(PDK-9149), - * REQ_TAG(PDK-9159), REQ_TAG(PDK-9329) - * Design: did_pmic_dev_info_readback - * Architecture: aid_pmic_core_misc_cfg - * - * This function is used to get PMIC Device Information such as - * TI DeviceID, TI NVM ID, TI NVM Revision, TI Silicon Revision, - * Custom NVM ID - * Note: customNvmID is valid only for TPS6594x Leo PMIC PG2.0 and - * LP8764x Hera PMIC PG2.0 - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pDeviceInfo [OUT] PMIC Device Information value - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_getDeviceInfo(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_DeviceInfo_t *pDeviceInfo); - -/*! - * \brief API to set I2C1 or I2C2 Speed based on commMode - * - * Requirement: REQ_TAG(PDK-9129) - * Design: did_pmic_i2c_speed_readback - * Architecture: aid_pmic_core_misc_cfg - * - * This function is used to configure I2C1 speed for Single or Dual I2C - * Interface and I2C2 Speed for Dual I2C Interface based on commMode. - * - * Note: I2C Master before switching the I2C speed to HS/Standard Mode, - * I2C Master has to configure I2C1/I2C2 speed accordingly then only - * I2C Master can communicate with PMIC in HS/Standard Mode - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_setI2CSpeedCfg(Pmic_CoreHandle_t *pPmicCoreHandle); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* PMIC_CORE_H_ */ - -/* @} */ diff --git a/include/pmic_esm.h b/include/pmic_esm.h deleted file mode 100644 index 099e0a3..0000000 --- a/include/pmic_esm.h +++ /dev/null @@ -1,501 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ -/** - * \ingroup DRV_PMIC_MODULE - * \defgroup DRV_PMIC_ESM_MODULE PMIC ESM Driver API - * This Module explains about PMIC ESM driver parameters and APIs usage. - * PMIC ESM Driver module covers all ESM feature APIs which includes - * Start/stop ESM, Enable/Disable ESM mode, set/get ESM configurations, - * enable/diable ESM interrupts and reading current ESM error count. - * - * Supported PMIC devices for ESM Module: - * 1. TPS6594x (Leo PMIC Device) - * 2. LP8764x (Hera PMIC Device) - * - * @{ - */ - -/** - * \file pmic_esm.h - * - * \brief PMIC Low Level Driver API/interface file for ESM API - */ - -#ifndef PMIC_ESM_H_ -#define PMIC_ESM_H_ - -/* ========================================================================== */ -/* Include Files */ -/* ========================================================================== */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* ========================================================================== */ -/* Macros & Typedefs */ -/* ========================================================================== */ -/** - * \anchor Pmic_EsmTypes - * \name PMIC ESM types - * - * @{ - */ -#define PMIC_ESM_MODE_MCU (bool)false -#define PMIC_ESM_MODE_SOC (bool)true -/* @} */ - -/** - * \anchor Pmic_EsmStates - * \name PMIC ESM Start/Stop state - * - * @{ - */ -#define PMIC_ESM_STOP (bool)false -#define PMIC_ESM_START (bool)true -/* @} */ - -/** - * \anchor Pmic_EsmToggle - * \name PMIC ESM Enable/Disable - * - * @{ - */ -#define PMIC_ESM_DISABLE (bool)false -#define PMIC_ESM_ENABLE (bool)true -/* @} */ - -/** - * \anchor Pmic_EsmMode - * \name PMIC ESM Modes - * - * @{ - */ -#define PMIC_ESM_LEVEL_MODE (bool)false -#define PMIC_ESM_PWM_MODE (bool)true -/* @} */ - -/** - * \anchor Pmic_EsmEnDrvSel - * \name PMIC ESM EN DRV Clear CFG - * - * @{ - */ -#define PMIC_ESM_ERR_EN_DRV_CLEAR_DISABLE (bool)false -#define PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE (bool)true -/* @} */ - -/** - * \anchor Pmic_EsmIntr - * \name PMIC ESM Interrupt enable/disable - * - * @{ - */ -#define PMIC_ESM_INTERRUPT_DISABLE (bool)false -#define PMIC_ESM_INTERRUPT_ENABLE (bool)true -/* @} */ - -/** - * \anchor Pmic_EsmCflag - * \name PMIC Pmic_EsmCfg_s member configuration type - * - * @{ - */ - /** \brief validParams value used to set/get ESM delay-1 time interval */ -#define PMIC_ESM_CFG_DELAY1_VALID (0x00U) -/** \brief validParams value used to set/get ESM delay-2 time interval */ -#define PMIC_ESM_CFG_DELAY2_VALID (0x01U) -/** \brief validParams value used to set/get ESM Error count Threshold value */ -#define PMIC_ESM_CFG_ERR_CNT_THR_VALID (0x02U) -/** \brief validParams value used to set/get ESM Maximum high-pulse - * time-threshold value */ -#define PMIC_ESM_CFG_HMAX_VALID (0x03U) -/** \brief validParams value used to set/get ESM Minimum high-pulse - * time-threshold value */ -#define PMIC_ESM_CFG_HMIN_VALID (0x04U) -/** \brief validParams value used to set/get ESM Maximum low-pulse - * time-threshold value */ -#define PMIC_ESM_CFG_LMAX_VALID (0x05U) -/** \brief validParams value used to set/get ESM Minimum low-pulse - * time-threshold value */ -#define PMIC_ESM_CFG_LMIN_VALID (0x06U) -/** \brief validParams value used to set/get ESM ENABLE_DRV clear configuration - */ -#define PMIC_ESM_CFG_EN_DRV_VALID (0x07U) -/** \brief validParams value used to set/get ESM mode */ -#define PMIC_ESM_CFG_MODE_VALID (0x08U) -/* @} */ - -/** - * \anchor Pmic_EsmCfgStructPrmBitShiftVal - * \name PMIC ESM Configuration Structure Param Bit shift values - * - * Application can use the below shifted values to set the validParams struct - * member defined in Pmic_EsmCfg_t structure. - * - * @{ - */ -#define PMIC_ESM_CFG_DELAY1_VALID_SHIFT \ - (0x01U << PMIC_ESM_CFG_DELAY1_VALID) -#define PMIC_ESM_CFG_DELAY2_VALID_SHIFT \ - (0x01U << PMIC_ESM_CFG_DELAY2_VALID) -#define PMIC_ESM_CFG_ERR_CNT_THR_VALID_SHIFT \ - (0x01U << PMIC_ESM_CFG_ERR_CNT_THR_VALID) -#define PMIC_ESM_CFG_HMAX_VALID_SHIFT \ - (0x01U << PMIC_ESM_CFG_HMAX_VALID) -#define PMIC_ESM_CFG_HMIN_VALID_SHIFT \ - (0x01U << PMIC_ESM_CFG_HMIN_VALID) -#define PMIC_ESM_CFG_LMAX_VALID_SHIFT \ - (0x01U << PMIC_ESM_CFG_LMAX_VALID) -#define PMIC_ESM_CFG_LMIN_VALID_SHIFT \ - (0x01U << PMIC_ESM_CFG_LMIN_VALID) -#define PMIC_ESM_CFG_EN_DRV_VALID_SHIFT \ - (0x01U << PMIC_ESM_CFG_EN_DRV_VALID) -#define PMIC_ESM_CFG_MODE_VALID_SHIFT \ - (0x01U << PMIC_ESM_CFG_MODE_VALID) -/* @} */ - -/*==========================================================================*/ -/* Structures and Enums */ -/*==========================================================================*/ - -/*! - * \brief PMIC ESM Configuration structure - * Note: validParams is input param for all Set and Get APIs. other - * params except validParams is input param for Set APIs and output - * param for Get APIs - * - * \param validParams Selection of structure parameters to be set, - * from the combination of \ref Pmic_EsmCflag - * and the corresponding member value must be - * updated. - * \param esmDelay1_us ESM delay-1 time interval in micro seconds. - * To get more effective results, user has to - * program esmDelay1 with multiples of 2048. - * The valid range is (0, 2048, 4096, 6144, - * 8192, ......., 522240). - * Valid only when PMIC_ESM_CFG_DELAY1_VALID - * bit is set - * \param esmDelay2_us ESM delay-2 time interval in micro seconds. - * To get more effective results, user has to - * program esmDelay2 with multiples of 2048. - * The valid range is (0, 2048, 4096, 6144, - * 8192, ......., 522240). - * Valid only when PMIC_ESM_CFG_DELAY2_VALID - * bit is set - * \param esmHmax_us ESM Maximum high-pulse time-threshold value in - * micro seconds. - * To get more effective results, user has to - * program esmHmax with multiples of 15. - * The valid range is (15, 30, 45, 60, 75 - * ....., 3840). - * Valid only when PMIC_ESM_CFG_HMAX_VALID - * bit is set - * \param esmHmin_us ESM Minimum high-pulse time-threshold value in - * micro seconds. - * To get more effective results, user has to - * program esmHmin with multiples of 15. - * The valid range is (15, 30, 45, 60, 75 - * ....., 3840). - * Valid only when PMIC_ESM_CFG_HMIN_VALID - * bit is set - * \param esmLmax_us ESM Maximum low-pulse time-threshold value in - * micro seconds. - * To get more effective results, user has to - * program esmLmax with multiples of 15. - * The valid range is (15, 30, 45, 60, 75 - * ....., 3840). - * Valid only when PMIC_ESM_CFG_LMAX_VALID - * bit is set - * \param esmLmin_us ESM Minimum low-pulse time-threshold value in - * micro seconds. - * To get more effective results, user has to - * program esmLmin with multiples of 15. - * The valid range is (15, 30, 45, 60, 75 - * ....., 3840). - * Valid only when PMIC_ESM_CFG_LMIN_VALID - * bit is set - * \param esmErrCntThr ESM Error count Threshold value. - * Valid only when PMIC_ESM_CFG_ERR_CNT_THR_VALID - * bit is set - * \param esmEnDrv ESM ENABLE_DRV clear configuration. - * Valid values: \ref Pmic_EsmEnDrvSel. - * Valid only when PMIC_ESM_CFG_EN_DRV_VALID - * bit is set - * \param esmMode ESM mode select. - * Valid values: \ref Pmic_EsmMode. - * Valid only when PMIC_ESM_CFG_MODE_VALID - * bit is set - */ -typedef struct Pmic_EsmCfg_s -{ - uint32_t validParams; - uint32_t esmDelay1_us; - uint32_t esmDelay2_us; - uint16_t esmHmax_us; - uint16_t esmHmin_us; - uint16_t esmLmax_us; - uint16_t esmLmin_us; - uint8_t esmErrCntThr; - bool esmEnDrv; - bool esmMode; -} Pmic_EsmCfg_t; - -/*! - * \brief PMIC ESM Interrupt Configuration Structure. - * - * \param esmPinIntr ESM Pin Interrupt configuration. - * Valid values: \ref Pmic_EsmIntr. - * \param esmFailIntr ESM Fail Interrupt configuration. - * Valid values: \ref Pmic_EsmIntr. - * \param esmRstIntr ESM Reset Interrupt configuration. - * Valid values: \ref Pmic_EsmIntr. - */ -typedef struct Pmic_EsmIntrCfg_s -{ - bool esmPinIntr; - bool esmFailIntr; - bool esmRstIntr; -} Pmic_EsmIntrCfg_t; - -/*==========================================================================*/ -/* Function Declarations */ -/*==========================================================================*/ -/*! - * \brief API to start PMIC ESM. - * - * Requirement: REQ_TAG(PDK-5833) - * Design: did_pmic_esm_cfg_readback - * Architecture: aid_pmic_esm_cfg - * - * This function is used to Start/Stop the PMIC ESM_MCU/ESM_SOC - * Note: Application has to ensure to do proper configuration of ESM - * time intervals of Level or PWM mode.If not configured - * properly then ESM will trigger the warm reset to the PMIC - * device. This may cause system reset if PMIC is connected to - * SOC/MCU - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param esmType [IN] PMIC ESM Type - * For valid values: - * \ref Pmic_EsmTypes - * \param esmState [IN] To start or stop PMIC ESM - * For valid values: - * \ref Pmic_EsmStates - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_esmStart(Pmic_CoreHandle_t *pPmicCoreHandle, - const bool esmType, - const bool esmState); - -/*! - * \brief API to read status of PMIC ESM is started or not. - * - * Requirement: REQ_TAG(PDK-9150) - * Design: did_pmic_esm_cfg_readback - * Architecture: aid_pmic_esm_cfg - * - * This function is used to read status of PMIC ESM_MCU/ESM_SOC is - * started or not - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param esmType [IN] PMIC ESM Type - * For valid values: - * \ref Pmic_EsmTypes - * \param pEsmState [IN] Pointer to store the status of PMIC ESM is - * started or not - * For valid values: - * \ref Pmic_EsmStates - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_esmGetStatus(Pmic_CoreHandle_t *pPmicCoreHandle, - const bool esmType, - bool *pEsmState); - -/*! - * \brief API to Enable/Disable PMIC ESM. - * - * Requirement: REQ_TAG(PDK-5833) - * Design: did_pmic_esm_cfg_readback - * Architecture: aid_pmic_esm_cfg - * - * This function is used to Enable/Disable the PMIC ESM_MCU/ESM_SOC - * This API must be called only when ESM is in STOP state. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param esmType [IN] PMIC ESM Type - * For valid values: - * \ref Pmic_EsmTypes - * \param esmToggle [IN] To Enable/Disable PMIC ESM_MCU/ESM_SOC - * For valid values: - * \ref Pmic_EsmToggle - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_esmEnable(Pmic_CoreHandle_t *pPmicCoreHandle, - const bool esmType, - const bool esmToggle); - -/*! - * \brief API to Read PMIC ESM Enable/Disable state. - * - * Requirement: REQ_TAG(PDK-5833) - * Design: did_pmic_esm_cfg_readback - * Architecture: aid_pmic_esm_cfg - * - * This function is used to read the Enable/Disable state of - * PMIC ESM_MCU/ESM_SOC. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param esmType [IN] PMIC ESM Type - * For valid values: - * \ref Pmic_EsmTypes - * \param pEsmState [OUT] Pointer to store ESM Enable State. - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_esmGetEnableState(Pmic_CoreHandle_t *pPmicCoreHandle, - const bool esmType, - bool *pEsmState); - -/*! - * \brief API to Set PMIC ESM Configuration. - * - * Requirement: REQ_TAG(PDK-5833) - * Design: did_pmic_esm_cfg_readback - * Architecture: aid_pmic_esm_cfg - * - * This function is used to set the ESM mode, delay-1 and delay-2 time - * time intervals, Error Count Threshold value, HMAX, HMIN, LMAX, - * LMIN and select EN DRV clear for ESM_MCU and ESM_SOC. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param esmType [IN] PMIC ESM Type - * For valid values: - * \ref Pmic_EsmTypes - * \param esmCfg [IN] PMIC ESM Configuration - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_esmSetConfiguration(Pmic_CoreHandle_t *pPmicCoreHandle, - const bool esmType, - const Pmic_EsmCfg_t esmCfg); - -/*! - * \brief API to Get the PMIC ESM Configuration. - * - * Requirement: REQ_TAG(PDK-5833) - * Design: did_pmic_esm_cfg_readback - * Architecture: aid_pmic_esm_cfg - * - * This function is used to get the configured ESM mode, delay-1 and - * delay-2 time time intervals, Error Count Threshold value, HMAX, - * HMIN, LMAX, LMIN and select EN DRV clear for ESM_MCU and ESM_SOC - * when corresponding validParam bit fields are set in Pmic_EsmCfg_t - * structure - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param esmType [IN] PMIC ESM Type. - * For valid values: - * \ref Pmic_EsmTypes. - * \param pEsmCfg [IN/OUT] Pointer to store the specified ESM - * configuration. - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values: \ref Pmic_ErrorCodes - */ -int32_t Pmic_esmGetConfiguration(Pmic_CoreHandle_t *pPmicCoreHandle, - const bool esmType, - Pmic_EsmCfg_t *pEsmCfg); - -/*! - * \brief API to Set PMIC ESM Interrupts. - * - * Requirement: REQ_TAG(PDK-5833) - * Design: did_pmic_esm_cfg_readback - * Architecture: aid_pmic_esm_cfg - * - * This function is used to mask/unmask the ESM RST, FAIL and - * PIN Interrupts for both ESM MCU and ESM SOC. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param esmType [IN] PMIC ESM Type - * For valid values: - * \ref Pmic_EsmTypes - * \param esmIntrCfg [IN] PMIC ESM interrupts mask/un-mask. - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_esmSetInterrupt(Pmic_CoreHandle_t *pPmicCoreHandle, - const bool esmType, - const Pmic_EsmIntrCfg_t esmIntrCfg); - -/*! - * \brief API to Get the current ESM Error Count. - * - * Requirement: REQ_TAG(PDK-5833) - * Design: did_pmic_esm_cfg_readback - * Architecture: aid_pmic_esm_cfg - * - * This function is used to get the current Error count for ESM MCU - * ESM SOC. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param esmType [IN] PMIC ESM Type. - * For valid values: - * \ref Pmic_EsmTypes. - * \param pEsmErrCnt [OUT] Pointer to store the Error Count. - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values: \ref Pmic_ErrorCodes - */ -int32_t Pmic_esmGetErrCnt(Pmic_CoreHandle_t *pPmicCoreHandle, - const bool esmType, - uint8_t *pEsmErrCnt); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* PMIC_ESM_H_ */ - -/* @} */ diff --git a/include/pmic_fsm.h b/include/pmic_fsm.h deleted file mode 100644 index aaa79fb..0000000 --- a/include/pmic_fsm.h +++ /dev/null @@ -1,745 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ - -/** - * \ingroup DRV_PMIC_MODULE - * \defgroup DRV_PMIC_FSM_MODULE PMIC FSM Driver API - * This Module explains about PMIC FSM driver parameters and APIs usage. - * PMIC FSM Driver module covers all FSM features APIs. Like, set/get FSM - * states, enable FSM I2C Triggers, Mask and Unmask NSLEEP Signals and - * trigger Runtime BIST - * - * Supported PMIC devices for FSM Module: - * 1. TPS6594x (Leo PMIC Device) - * 2. LP8764x (Hera PMIC Device) - * - * @{ - */ - -/** - * \file pmic_fsm.h - * - * \brief PMIC Low Level Driver API/interface file for FSM API - */ - -#ifndef PMIC_FSM_H_ -#define PMIC_FSM_H_ - -/* ========================================================================== */ -/* Include Files */ -/* ========================================================================== */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* ========================================================================== */ -/* Macros & Typedefs */ -/* ========================================================================== */ - -/** - * \anchor Pmic_Fsm_Off_Request_Type - * \name PMIC FSM Off Request Type - * - * @{ - */ -#define PMIC_FSM_I2C_TRIGGER0_TYPE (0U) -#define PMIC_FSM_ENABLE_PIN_TYPE (1U) -#define PMIC_FSM_NPWRON_PIN_TYPE (2U) -/* @} */ - -/** - * \anchor Pmic_Fsm_Mission_State - * \name To Select PMIC FSM State - * - * @{ - */ -#define PMIC_FSM_STANBY_STATE (0U) -#define PMIC_FSM_LP_STANBY_STATE (1U) -#define PMIC_FSM_ACTIVE_STATE (2U) -#define PMIC_FSM_MCU_ONLY_STATE (3U) -#define PMIC_FSM_S2R_STATE (4U) -/* @} */ - -/** - * \anchor Pmic_Nsleep_Signals - * \name PMIC Nsleep Signals - * - * @{ - */ -#define PMIC_NSLEEP1_SIGNAL (bool)false -#define PMIC_NSLEEP2_SIGNAL (bool)true -/* @} */ - -/** - * \anchor Pmic_Nsleep_Mask - * \name PMIC Nsleep Masking/Unmasking - * - * @{ - */ -#define PMIC_NSLEEPX_MASK 1U -#define PMIC_NSLEEPX_UNMASK 0U -/* @} */ - -/** - * \anchor Pmic_Fsm_FastBist_Enable - * \name PMIC Fast BIST Enable/Disable - * - * This affects whether or not LBIST can be skipped to save boot up time - * from LP_STANDBY state. - * Application need to configure this before the device is turned off - * (using ENABLE pin or TRIGGER_I2C_0 bit) and enters LP_STANDBY state - * - * @{ - */ -/** \brief Only analog BIST is run at BOOT BIST */ -#define PMIC_FSM_FAST_BIST_ENABLE 1U -/** \brief Logic and analog BIST is run at BOOT BIST. */ -#define PMIC_FSM_FAST_BIST_DISABLE 0U -/* @} */ - -/** - * \anchor Pmic_Nsleep_FSM_config - * \name PMIC Nsleep FSM configuration - * - * @{ - */ -#define PMIC_NSLEEP1B_FSM_UNMASK (0U) -#define PMIC_NSLEEP1B_FSM_MASK (1U) -#define PMIC_NSLEEP2B_FSM_UNMASK (0U) -#define PMIC_NSLEEP2B_FSM_MASK (1U) -/* @} */ - -/** - * \anchor Pmic_FSM_StartupDest_Select - * \name Select PMIC FSM Startup Destination - * - * @{ - */ - /** \brief Selects PMIC FSM Startup Destination as STANDBY state or - * LPSTANDBY state based on LP_STANDBY_SEL */ -#define PMIC_FSM_STARTUPDEST_STANDBY_LPSTANDBY (0U) -/** \brief Selects PMIC FSM Startup Destination as MCU only state*/ -#define PMIC_FSM_STARTUPDEST_MCUONLY (2U) -/** \brief Selects PMIC FSM Startup Destination as Active state */ -#define PMIC_FSM_STARTUPDEST_ACTIVE (3U) -/* @} */ - -/** - * \anchor Pmic_Fsm_LpStandby_Sel - * \name PMIC LPSTANDBY State Selection - * - * @{ - */ -#define PMIC_FSM_SELECT_LPSTANDBY_STATE 1U -#define PMIC_FSM_SELECT_STANDBY_STATE 0U -/* @} */ - -/** - * \anchor Pmic_Fsm_IlimInt_FsmCtrl_En - * \name To Enable/Disable PMIC Buck/LDO regulators ILIM interrupts affect - * FSM triggers - * - * @{ - */ -#define PMIC_FSM_ILIM_INT_FSMCTRL_ENABLE 1U -#define PMIC_FSM_ILIM_INT_FSMCTRL_DISABLE 0U -/* @} */ - -/** - * \anchor Pmic_Pfsm_Delay_Type - * \name PMIC PFSM Delay Type - * - * @{ - */ -#define PMIC_PFSM_DELAY1 (0U) -#define PMIC_PFSM_DELAY2 (1U) -#define PMIC_PFSM_DELAY3 (2U) -#define PMIC_PFSM_DELAY4 (3U) -/* @} */ - -/** - * \anchor Pmic_FsmValidParamCfg - * \name PMIC FSM Configuration Structure Param Bits - * - * PMIC FSM valid params configuration type for - * the structure member validParams of Pmic_FsmCfg_t - * structure - * - * @{ - */ - /** \brief validParams value used to set/get to Enable/Disable Fast BIST */ -#define PMIC_FSM_CFG_FAST_BIST_EN_VALID (0U) -/** \brief validParams value used to set/get Low Power Standby State Selection - */ -#define PMIC_FSM_CFG_LP_STANDBYSEL_VALID (1U) -/** \brief validParams value used to set/get to Enable/Disable Buck/LDO - * regulators ILIM interrupts affect FSM triggers */ -#define PMIC_FSM_CFG_ILIM_INT_FSMCTRL_EN_VALID (2U) -/** \brief validParams value used to set/get to Select FSM Startup Destination - */ -#define PMIC_FSM_CFG_FSM_STARTUP_DEST_SEL_VALID (3U) -/* @} */ - -/** - * \anchor Pmic_FsmValidParamBitShiftValues - * \name PMIC FSM Configuration valid param bit shift values - * - * Application can use below shifted values to set the validParam - * member defined in Pmic_FsmCfg_t structure - * - * @{ - */ -#define PMIC_FSM_CFG_FAST_BIST_EN_VALID_SHIFT \ - (1U << PMIC_FSM_CFG_FAST_BIST_EN_VALID) -#define PMIC_FSM_CFG_LP_STANDBYSEL_VALID_SHIFT \ - (1U << PMIC_FSM_CFG_LP_STANDBYSEL_VALID) -#define PMIC_FSM_CFG_ILIM_INT_FSMCTRL_EN_VALID_SHIFT \ - (1U << PMIC_FSM_CFG_ILIM_INT_FSMCTRL_EN_VALID) -#define PMIC_FSM_CFG_FSM_STARTUP_DEST_SEL_VALID_SHIFT \ - (1U << PMIC_FSM_CFG_FSM_STARTUP_DEST_SEL_VALID) -/* @} */ - -/** - * \anchor Pmic_Nsleep_SignalLvl - * \name PMIC Nsleep 1B/2B signal level - * - * @{ - */ -#define PMIC_NSLEEP_LOW (0U) -#define PMIC_NSLEEP_HIGH (1U) -/* @} */ - -/** - * \anchor Pmic_Fsm_I2c_Trigger_Type - * \name PMIC FSM I2C Trigger Type - * - * @{ - */ -#define PMIC_FSM_I2C_TRIGGER0 (0x0U) -/** \brief Valid only for TPS6594x Leo PMIC PG2.0 and LP8764x Hera PMIC PG2.0 */ -#define PMIC_FSM_I2C_TRIGGER1 (0x1U) -/** \brief Valid only for TPS6594x Leo PMIC PG2.0 and LP8764x Hera PMIC PG2.0 */ -#define PMIC_FSM_I2C_TRIGGER2 (0x2U) -/** \brief Configuration of PMIC_FSM_I2C_TRIGGER3 is not supported for TPS6594x - * Leo and LP8764x Hera PMIC. */ -#define PMIC_FSM_I2C_TRIGGER3 (0x3U) -#define PMIC_FSM_I2C_TRIGGER4 (0x4U) -#define PMIC_FSM_I2C_TRIGGER5 (0x5U) -#define PMIC_FSM_I2C_TRIGGER6 (0x6U) -#define PMIC_FSM_I2C_TRIGGER7 (0x7U) -/* @} */ - -/** - * \anchor Pmic_Fsm_I2c_Trigger_Val - * \name PMIC FSM I2C Trigger Value - * - * @{ - */ -/** \brief Valid only for I2C4/ I2C5/ I2C6/ I2C7 */ -#define PMIC_FSM_I2C_TRIGGER_VAL_0 (0x0U) -#define PMIC_FSM_I2C_TRIGGER_VAL_1 (0x1U) -/* @} */ - -/** - * \anchor Pmic_Fsm_Retention_Mode - * \name PMIC FSM Retention Mode - * - * @{ - */ -#define PMIC_FSM_DDR_RETENTION_MODE (0x0U) -/** \brief Valid only for J7200 SOC*/ -#define PMIC_FSM_GPIO_RETENTION_MODE (0x1U) -/* @} */ - -/*==========================================================================*/ -/* Structures and Enums */ -/*==========================================================================*/ - -/*! - * \brief PMIC FSM configuration structure. - * Note: validParams is input param for all Set and Get APIs. other - * params except validParams is input param for Set APIs and output - * param for Get APIs - * - * \param validParams Selection of structure parameters to be set, - * from the combination of - * \ref Pmic_FsmValidParamCfg and the corresponding - * member value must be updated - * Valid values \ref Pmic_FsmValidParamCfg - * \param fastBistEn Enable/Disable Fast BIST - * Valid values \ref Pmic_Fsm_FastBist_Enable - * Valid only when PMIC_FSM_CFG_FAST_BIST_EN_VALID - * bit is set - * \param lpStandbySel Low Power Standby State Selection - * Valid values \ref Pmic_Fsm_LpStandby_Sel - * Valid only when PMIC_FSM_CFG_LP_STANDBYSEL_VALID - * bit is set - * \param ilimIntfsmCtrlEn Enable/Disable Buck/LDO regulators ILIM - * interrupts affect FSM triggers - * Valid values \ref Pmic_Fsm_IlimInt_FsmCtrl_En - * Valid only when - * PMIC_FSM_CFG_ILIM_INT_FSMCTRL_EN_VALID - * bit is set - * \param fsmStarupDestSel Select FSM Startup Destination - * Valid values \ref Pmic_FSM_StartupDest_Select - * Valid only when - * PMIC_FSM_CFG_FSM_STARTUP_DEST_SEL_VALID - * bit is set - */ -typedef struct Pmic_FsmCfg_s -{ - uint8_t validParams; - bool fastBistEn; - bool lpStandbySel; - bool ilimIntfsmCtrlEn; - uint8_t fsmStarupDestSel; -} Pmic_FsmCfg_t; - -/*==========================================================================*/ -/* Function Declarations */ -/*==========================================================================*/ -/*! - * \brief API to initiate OFF Request FSM transition. - * - * Requirement: REQ_TAG(PDK-5851), REQ_TAG(PDK-9159), REQ_TAG(PDK-9329) - * Design: did_pmic_lpstandby_cfg - * Architecture: aid_pmic_fsm_cfg - * - * This function initiate OFF Request FSM transition from any other - * mission state to the STANDBY state or the LP_STANDBY state - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param eventType [IN] Event Type used to initiate OFF Request - * Valid values: - * \ref Pmic_Fsm_Off_Request_Type - * \param fsmState [IN] FSM state. - * Only Valid for: - * PMIC_FSM_STANBY_STATE and - * PMIC_FSM_LP_STANBY_STATE - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_fsmDeviceOffRequestCfg(Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t eventType, - uint8_t fsmState); - -/*! - * \brief API to initiate ON Request FSM transition. - * - * Requirement: REQ_TAG(PDK-5837) - * Design: did_pmic_fsm_cfg_readback - * Architecture: aid_pmic_fsm_cfg - * - * This function setup nSLEEP signal bits with STARTUP_DEST - * Which is common for all supported PMICs. This API needs to be called - * at PMIC init before clearing Enable and Start-Up interrupts. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - */ -int32_t Pmic_fsmDeviceOnRequest(Pmic_CoreHandle_t *pPmicCoreHandle); - -/*! - * \brief API to Set FSM mission States. - * - * Requirement: REQ_TAG(PDK-5837), REQ_TAG(PDK-5851) - * Design: did_pmic_fsm_cfg_readback, did_pmic_lpstandby_cfg - * Architecture: aid_pmic_fsm_cfg - * - * This function is used for set/change the FSM mission states for PMIC - * using Nsleep1B and Nsleep2B signals in absence of GPIO pins - * Note: Application need to unmask Nsleep1B and Nsleep2B signals for - * FSM state transitions except for Standby/LpStandby State - * Application need to mask Nsleep1B and Nsleep2B signals for - * Standby/LpStandby State transition - * Application has to ensure the wakeup pins or RTC Timer/Alarm - * Interrupts are configured properly before triggering the PMIC - * device to Standby/LP Standby state.If not configured properly - * then PMIC device can't resume from sleep state - * Application has to ensure to connect/access the peripherals - * connected to only MCU Power lines when PMIC switch from Active - * to MCU state. If Application connects/access the peripherals - * connected to SOC Power lines when PMIC switch from Active to - * MCU state, then Application behaviour is unexpected. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param pmicState [IN] PMIC FSM mission state - * Valid values: \ref Pmic_Fsm_Mission_State - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_fsmSetMissionState(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t pmicState); - -/*! - * \brief API to MASK/UNMASK NSLEEP1B or 2B Signal. - * - * Requirement: REQ_TAG(PDK-5837) - * Design: did_pmic_fsm_cfg_readback - * Architecture: aid_pmic_fsm_cfg - * - * This function is used for Masking/Unmasking for NSLEEP2B or NSLEEP1B - * signal. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param nsleepType [IN] NSLEEP signal - * Valid values: \ref Pmic_Nsleep_Signals - * \param maskEnable [IN] Parameter to select masking/unmasking - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_fsmSetNsleepSignalMask(Pmic_CoreHandle_t *pPmicCoreHandle, - const bool nsleepType, - const bool maskEnable); - -/*! - * \brief API to read the status of the NSLEEP1B/2B Signal is masked or not - * - * Requirement: REQ_TAG(PDK-9151) - * Design: did_pmic_fsm_cfg_readback - * Architecture: aid_pmic_fsm_cfg - * - * This function is used to read the status of the NSLEEP1B/2B Signal is - * masked or not - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param nsleepType [IN] NSLEEP signal - * Valid values: \ref Pmic_Nsleep_Signals - * \param pNsleepStat [OUT] Pointer to store Nsleep Signal is masked or - * not - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_fsmGetNsleepSignalMaskStat(Pmic_CoreHandle_t *pPmicCoreHandle, - const bool nsleepType, - bool *pNsleepStat); - -/*! - * \brief API to initiate Runtime BIST. - * - * Requirement: REQ_TAG(PDK-5849) - * Design: did_pmic_runtime_bist_cfg - * Architecture: aid_pmic_fsm_cfg - * - * This function initiates a request to exercise runtime BIST on the - * device - * Valid only for TPS6594x Leo PMIC PG2.0 and LP8764x Hera PMIC PG2.0 - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_fsmRequestRuntimeBist(Pmic_CoreHandle_t *pPmicCoreHandle); - -/*! - * \brief API to set PMIC FSM configuration. - * - * Requirement: REQ_TAG(PDK-9144), REQ_TAG(PDK-9134), REQ_TAG(PDK-9128) - * Design: did_pmic_fsm_cfg_readback - * Architecture: aid_pmic_fsm_cfg - * - * This function is used to set the required FSM configuration when - * corresponding bit field is set. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param fsmCfg [IN] Set required FSM configuration - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_fsmSetConfiguration(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_FsmCfg_t fsmCfg); - -/*! - * \brief API to get PMIC FSM configuration. - * - * Requirement: REQ_TAG(PDK-9144), REQ_TAG(PDK-9134), REQ_TAG(PDK-9128) - * Design: did_pmic_fsm_cfg_readback - * Architecture: aid_pmic_fsm_cfg - * - * This function is used to get the FSM configuration when - * corresponding validParam bit fields are set in Pmic_FsmCfg_t - * structure - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param pFsmCfg [IN/OUT] Pointer to store FSM configuration - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_fsmGetConfiguration(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_FsmCfg_t *pFsmCfg); - -/*! - * \brief API to configure PFSM Delay - * - * Requirement: REQ_TAG(PDK-9136) - * Design: did_pmic_pfsm_cfg_readback - * Architecture: aid_pmic_fsm_cfg - * - * This function is used to configure PFSM Delay. PFSM Delay will affect - * the total power up sequence time before the system is released from - * reset - * Consider If the PFSM_Delay value is 'x' then Delay will calculated as - * Delay = x *(50ns * 2^PFSM_DELAY_STEP) - * Note: In this API, the default delay Type is assumed as - * PMIC_PFSM_DELAY1 - * While adding support for New PMIC, developer need to update the API - * functionality for New PMIC device accordingly. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param pFsmDelayType [IN] PFSM Delay Type - * Valid values: \ref Pmic_Pfsm_Delay_Type - * \param pfsmDelay [IN] Delay for PFSM - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_fsmSetPfsmDelay(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t pFsmDelayType, - const uint8_t pfsmDelay); - -/*! - * \brief API to read PFSM Delay - * - * Requirement: REQ_TAG(PDK-9136) - * Design: did_pmic_pfsm_cfg_readback - * Architecture: aid_pmic_fsm_cfg - * - * This function is used to read PFSM Delay - * Note: In this API, the default delay Type is assumed as - * PMIC_PFSM_DELAY1 - * While adding support for New PMIC, developer need to update the API - * functionality for New PMIC device accordingly. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param pFsmDelayType [IN] PFSM Delay Type - * Valid values: \ref Pmic_Pfsm_Delay_Type - * \param pPfsmDelay [OUT] Pointer to store the Delay for PFSM - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_fsmGetPfsmDelay(Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t pFsmDelayType, - uint8_t *pPfsmDelay); - -/*! - * \brief API to set PMIC Nsleep1B/2B Signal value. - * - * Requirement: REQ_TAG(PDK-9146) - * Design: did_pmic_fsm_cfg_readback - * Architecture: aid_pmic_fsm_cfg - * - * This function is used to configure the Nsleep1B/2B signal level - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param nsleepType [IN] NSLEEP signal - * Valid values: \ref Pmic_Nsleep_Signals - * \param nsleepVal [IN] PMIC Nsleep signal level High/Low to be - * configured. - * Valid values \ref Pmic_Nsleep_SignalLvl - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_fsmSetNsleepSignalVal(Pmic_CoreHandle_t *pPmicCoreHandle, - const bool nsleepType, - const uint8_t nsleepVal); - -/*! - * \brief API to get PMIC Nsleep1B/2B Signal value. - * - * Requirement: REQ_TAG(PDK-9146) - * Design: did_pmic_fsm_cfg_readback - * Architecture: aid_pmic_fsm_cfg - * - * This function is used to read the signal level of the Nsleep1B/2B - * signal - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param nsleepType [IN] NSLEEP signal - * Valid values: \ref Pmic_Nsleep_Signals - * \param pNsleepVal [OUT] Pointer to store PMIC Nsleep signal level - * High/Low. - * Valid values \ref Pmic_Nsleep_SignalLvl - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_fsmGetNsleepSignalVal(Pmic_CoreHandle_t *pPmicCoreHandle, - const bool nsleepType, - uint8_t *pNsleepVal); - -/*! - * \brief API to recover from SOC Power Error using Nsleep1B and Nsleep2B - * signal - * - * Requirement: REQ_TAG(PDK-9123) - * Design: did_pmic_fsm_recover_soc_pwr_err - * Architecture: aid_pmic_fsm_cfg - * - * This function is used to recover from SOC Power Error without - * rebooting the system - * Note: Application need to call this API from MCU domain when SOC - * Power Error on Primary PMIC - * Step-1 - PMIC LLD has to configure NSLEEP2 & NSLEEP1 signals to ‘10’ - * Step-2 - Application has to wait for 9us - * Step-3 - PMIC LLD has to configure NSLEEP2 & NSLEEP1 signals to ‘11’ - * - * Note: Valid only for TPS6594x Leo PMIC PG2.0 and LP8764x Hera PMIC - * PG2.0 - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param nsleepVal [IN] PMIC Nsleep signal level High/Low to be - * configured. - * Valid values \ref Pmic_Nsleep_SignalLvl - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_fsmRecoverSocPwrErr(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t nsleepVal); - -/*! - * \brief API to initiate FSM I2C trigger for given FSM I2C trigger type - * - * Requirement: REQ_TAG(PDK-9330) - * Design: did_pmic_fsm_i2c_trigger - * Architecture: aid_pmic_fsm_cfg - * - * This function is used to to initiate FSM I2C trigger for given FSM - * I2C trigger type - * Note: In this API, the default i2cTriggerType is assumed as - * PMIC_FSM_I2C_TRIGGER0. While adding support for New PMIC - * device, developer need to update the API functionality for - * New PMIC device accordingly. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param i2cTriggerType [IN] FSM I2C Trigger Type - * Valid values: \ref Pmic_Fsm_I2c_Trigger_Type - * \param i2cTriggerVal [IN] FSM I2C Trigger Value - * Valid values: \ref Pmic_Fsm_I2c_Trigger_Val - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_fsmEnableI2cTrigger(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t i2cTriggerType, - const uint8_t i2cTriggerVal); - -/*! - * \brief API to get FSM I2C trigger Value for given FSM I2C trigger type - * - * Requirement: REQ_TAG(PDK-9330) - * Design: did_pmic_fsm_i2c_trigger - * Architecture: aid_pmic_fsm_cfg - * - * This function is used to read the FSM I2C trigger Value of the - * FSM Trigger Type - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param i2cTriggerType [IN] FSM I2C Trigger Type - * Valid values: \ref Pmic_Fsm_I2c_Trigger_Type - * \param pI2cTriggerVal [OUT] Pointer to store FSM I2C Trigger Value - * Valid values \ref Pmic_Fsm_I2c_Trigger_Val - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_fsmGetI2cTriggerVal(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t i2cTriggerType, - uint8_t *pI2cTriggerVal); - -/*! - * \brief API to initiate DDR/GPIO Retention Mode - * - * Requirement: REQ_TAG(PDK-9563), REQ_TAG(PDK-9564) - * Design: did_pmic_ddr_gpio_retention_cfg - * Architecture: aid_pmic_fsm_cfg - * - * This function initiates a request to exercise DDR/GPIO Retention Mode - * on the device based on the Retention Mode - * Note: PMIC_FSM_GPIO_RETENTION_MODE is valid only for J7200 SOC - * Application has to ensure to connect/access the peripherals - * connected to only MCU Power lines except EN_GPIORET_LDSW, - * VDD_WK_0V8 Power lines when PMIC switch from Active to MCU - * state in GPIO Rentention mode with FSM i2c6 trigger value as - * '0'. If Application connects/access the peripherals connected - * to EN_GPIORET_LDSW, VDD_WK_0V8 Power lines when PMIC switch - * from Active to MCU state in GPIO Rentention mode with FSM i2c6 - * trigger value as '0', then Application behaviour is unexpected. - * Application has to ensure to connect/access the peripherals - * connected to only MCU Power lines except VDD1_LPDDR4_1V8, - * VDD_DDR_1V1, GPIO_EN_VDDR_IO Power lines when PMIC switch from - * Active to MCU state in DDR Rentention mode with FSM i2c7 - * trigger value as '0'. If Application connects/access the - * peripherals connected to VDD1_LPDDR4_1V8, VDD_DDR_1V1, - * GPIO_EN_VDDR_IO Power lines when PMIC switch from Active to MCU - * state in DDR Rentention mode with FSM i2c7 trigger value as - * '0', then Application behaviour is unexpected. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param retentionMode [IN] Retention Mode - * Valid values: \ref Pmic_Fsm_Retention_Mode - * PMIC_FSM_GPIO_RETENTION_MODE is valid - * only for J7200 SOC - * \param i2cTriggerVal [IN] FSM I2C Trigger Value - * Valid values: \ref Pmic_Fsm_I2c_Trigger_Val - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_fsmRequestDdrGpioRetentionMode( - Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t retentionMode, - const uint8_t i2cTriggerVal); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* PMIC_FSM_H_ */ - -/* @} */ diff --git a/include/pmic_gpio.h b/include/pmic_gpio.h deleted file mode 100644 index 0ccf68d..0000000 --- a/include/pmic_gpio.h +++ /dev/null @@ -1,481 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ -/** - * \ingroup DRV_PMIC_MODULE - * \defgroup DRV_PMIC_GPIO_MODULE PMIC GPIO Driver API - * This Module explains about PMIC GPIO driver parameters and APIs usage. - * PMIC GPIO Driver module covers all GPIO features APIs. Like, set/get gpio - * pin functions, pull up/down, drive strength, output drain, pin value, - * enable/disable gpio interrupt and configure nPWRON or ENABLE pin features. - * - * Supported PMIC devices for GPIO Module: - * 1. TPS6594x (Leo PMIC Device) - * 2. LP8764x (Hera PMIC Device) - * - * @{ - */ - -/** - * \file pmic_gpio.h - * - * \brief PMIC Low Level Driver API/interface file for GPIO API - */ - -#ifndef PMIC_GPIO_H_ -#define PMIC_GPIO_H_ - -/* ========================================================================== */ -/* Include Files */ -/* ========================================================================== */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* ========================================================================== */ -/* Macros & Typedefs */ -/* ========================================================================== */ - -/** - * \anchor Pmic_Gpio_DeglitchTimeCfg - * \name PMIC GPIO Deglitch Time Enable or Disable Configuration - * - * @{ - */ -#define PMIC_GPIO_DEGLITCH_DISABLE (0U) -#define PMIC_GPIO_DEGLITCH_ENABLE (1U) -/* @} */ - -/** - * \anchor Pmic_Gpio_SignalDir - * \name PMIC GPIO signal direction - * - * @{ - */ -#define PMIC_GPIO_INPUT (0U) -#define PMIC_GPIO_OUTPUT (1U) -/* @} */ - -/** - * \anchor Pmic_Gpio_SignalType - * \name PMIC GPIO signal type when configured as output - * - * @{ - */ -#define PMIC_GPIO_PUSH_PULL_OUTPUT (0U) -#define PMIC_GPIO_OPEN_DRAIN_OUTPUT (1U) -/* @} */ - -/** - * \anchor Pmic_Gpio_SignalLvl - * \name PMIC GPIO/NPWRON/ENABLE signal level - * - * @{ - */ -#define PMIC_GPIO_LOW (0U) -#define PMIC_GPIO_HIGH (1U) -/* @} */ - -/** - * \anchor Pmic_Gpio_PU_PD_Sel - * \name PMIC GPIO Pull-up/pull-down select - * - * @{ - */ -#define PMIC_GPIO_PD_SELECT (0U) -#define PMIC_GPIO_PU_SELECT (1U) -/* @} */ - -/** - * \anchor Pmic_Gpio_PU_PD_En - * \name PMIC GPIO Pull-up/pull-down enable/disable - * - * @{ - */ -#define PMIC_GPIO_PU_PD_DISABLE (0U) -#define PMIC_GPIO_PU_PD_ENABLE (1U) -/* @} */ - -/** - * \anchor Pmic_GpioCflag - * \name PMIC Pmic_GpioCfg_s member configuration type - * - * @{ - */ - /** \brief validParams value used to set/get gpio pin Direction - * Valid only for GPIO pins only. Invalid for NPWRON/Enable */ -#define PMIC_GPIO_CFG_DIR_VALID (0x00U) - /** \brief validParams value used to set/get output signal type - * Valid only for GPIO pins only. Invalid for NPWRON/Enable */ -#define PMIC_GPIO_CFG_OD_VALID (0x01U) -/** \brief validParams value used to set/get pullup/pull down control - */ -#define PMIC_GPIO_CFG_PULL_VALID (0x02U) -/** \brief validParams value used to set/get signal deglitch time - * enable/disable */ -#define PMIC_GPIO_CFG_DEGLITCH_VALID (0x03U) -/** \brief validParams value used to set/get pin mux function */ -#define PMIC_GPIO_CFG_PINFUNC_VALID (0x04U) -/** \brief validParams value used to set/get pin polarity - * Valid only for Enable pin for TPS6594x Leo and LP8764x Hera device - * Invalid for NPWRON pin for TPS6594x Leo device*/ -#define PMIC_ENABLE_CFG_POLARITY_VALID (0x05U) -/* @} */ - -/** - * \anchor Pmic_GpioPinCfgStructPrmBitShiftVal - * \name PMIC GPIO Pin Configuration Structure Param Bit shift values - * - * Application can use below shifted values to set the validParams - * struct member defined in Pmic_GpioCfg_t structure - * - * @{ - */ -#define PMIC_GPIO_CFG_DIR_VALID_SHIFT \ - (0x01U << PMIC_GPIO_CFG_DIR_VALID) -#define PMIC_GPIO_CFG_OD_VALID_SHIFT \ - (0x01U << PMIC_GPIO_CFG_OD_VALID) -#define PMIC_GPIO_CFG_PULL_VALID_SHIFT \ - (0x01U << PMIC_GPIO_CFG_PULL_VALID) -#define PMIC_GPIO_CFG_DEGLITCH_VALID_SHIFT \ - (0x01U << PMIC_GPIO_CFG_DEGLITCH_VALID) -#define PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT \ - (0x01U << PMIC_GPIO_CFG_PINFUNC_VALID) -#define PMIC_ENABLE_CFG_POLARITY_VALID_SHIFT \ - (0x01U << PMIC_ENABLE_CFG_POLARITY_VALID) -/* @} */ - -/** - * \anchor Pmic_GpioPinPullCtrl - * \name PMIC GPIO pull up/pull down selectionn - * - * @{ - */ -#define PMIC_GPIO_PULL_DISABLED (0x0U) -#define PMIC_GPIO_PULL_DOWN (0x1U) -#define PMIC_GPIO_PULL_UP (0x2U) -/* @} */ - -/** - * \anchor Pmic_GpioInterruptCfg - * \name PMIC GPIO Interrupt selection - * - * @{ - */ -#define PMIC_GPIO_FALL_INTERRUPT (0U) -#define PMIC_GPIO_RISE_INTERRUPT (1U) -#define PMIC_GPIO_FALL_RISE_INTERRUPT (2U) -#define PMIC_GPIO_DISABLE_INTERRUPT (3U) -/* @} */ - -/** - * \anchor Pmic_GpioInterruptPolCfg - * \name PMIC GPIO Interrupt Polarity selection - * - * @{ - */ -#define PMIC_GPIO_POL_LOW (0U) -#define PMIC_GPIO_POL_HIGH (1U) -/* @} */ - -/*==========================================================================*/ -/* Structures and Enums */ -/*==========================================================================*/ - -/*! - * \brief PMIC GPIO/NPWRON/ENABLE pin configuration structure. - * Note: validParams is input param for all Set and Get APIs. other - * params except validParams is input param for Set APIs and output - * param for Get APIs - * - * \param validParams Selection of structure parameters to be set, - * from the combination of \ref Pmic_GpioCflag - * and the corresponding member value must be - * updated. - * Valid values \ref Pmic_GpioCflag. - * \param pinDir gpio pin Direction. Valid only for GPIO pins. - * Valid values \ref Pmic_Gpio_SignalDir. - * Valid only when PMIC_GPIO_CFG_DIR_VALID - * bit is set. - * \param outputSignalType output signal type. - * Valid values \ref Pmic_Gpio_SignalType. - * Valid only when PMIC_GPIO_CFG_OD_VALID - * bit is set. - * Valid only for GPIO Pins. - * \param pullCtrl pullup/pull down control. - * Valid values \ref Pmic_GpioPinPullCtrl. - * Valid only when PMIC_GPIO_CFG_PULL_VALID - * bit is set. - * \param deglitchEnable signal deglitch time enable/disable. - * Valid values \ref Pmic_Gpio_DeglitchTimeCfg. - * Valid only when PMIC_GPIO_CFG_DEGLITCH_VALID - * bit is set. - * \param pinFunc pin mux function. - * Valid values for TPS6594x Leo Device - * \ref Pmic_Tps6594xLeo_GpioPinFunc. - * Valid values for LP8764x HERA Device - * \ref Pmic_Lp8764xHera_GpioPinFunc. - * Valid only when PMIC_GPIO_CFG_PINFUNC_VALID - * bit is set. - * \param pinPolarity Configure pin polarity. - * Valid only for Enable pin. - * Valid only when PMIC_ENABLE_CFG_POLARITY_VALID - * bit is set. - */ -typedef struct Pmic_GpioCfg_s -{ - uint8_t validParams; - uint8_t pinDir; - uint8_t outputSignalType; - uint8_t pullCtrl; - uint8_t deglitchEnable; - uint8_t pinFunc; - uint8_t pinPolarity; -} Pmic_GpioCfg_t; - -/*==========================================================================*/ -/* Function Declarations */ -/*==========================================================================*/ -/*! - * \brief API to set PMIC GPIO configuration. - * - * Requirement: REQ_TAG(PDK-5808), REQ_TAG(PDK-5844), REQ_TAG(PDK-9111), - * REQ_TAG(PDK-9157) - * Design: did_pmic_gpio_cfg_readback, did_pmic_lpstandby_wkup_cfg - * Architecture: aid_pmic_gpio_cfg - * - * This function is used to set the required configuration for the - * specified GPIO pin when corresponding validParam bit field is set in - * the Pmic_GpioCfg_t - * For more information \ref Pmic_GpioCfg_t - * Note: Application has to ensure to do proper configuration of GPIO - * pin when connected to Enable pin of other peripherals on the - * board. If not configured properly then it may down the - * peripheral or system - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pin [IN] PMIC GPIO pin number. - * Valid values for TPS6594x Leo Device - * \ref Pmic_Tps6594xLeo_GpioPin. - * Valid values for LP8764x HERA Device - * \ref Pmic_Lp8764xHera_GpioPin. - * \param gpioCfg [IN] Set required configuration for - * the specified GPIO pin. - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_gpioSetConfiguration(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t pin, - const Pmic_GpioCfg_t gpioCfg); - -/*! - * \brief API to get PMIC GPIO configuration. - * - * Requirement: REQ_TAG(PDK-5808) - * Design: did_pmic_gpio_cfg_readback - * Architecture: aid_pmic_gpio_cfg - * - * This function is used to read the configuration for the specified - * GPIO pin when corresponding validParam bit field is set in - * the Pmic_GpioCfg_t - * For more information \ref Pmic_GpioCfg_t - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param pin [IN] PMIC GPIO pin number. - * Valid values for TPS6594x Leo Device - * \ref Pmic_Tps6594xLeo_GpioPin. - * Valid values for LP8764x HERA Device - * \ref Pmic_Lp8764xHera_GpioPin. - * \param pGpioCfg [IN/OUT] Pointer to store specified GPIO pin - * configuration - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_gpioGetConfiguration(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t pin, - Pmic_GpioCfg_t *pGpioCfg); - -/*! - * \brief API to set PMIC GPIO value. - * - * Requirement: REQ_TAG(PDK-5808), REQ_TAG(PDK-9111) - * Design: did_pmic_gpio_cfg_readback - * Architecture: aid_pmic_gpio_cfg - * - * This function is used to configure the signal level of the - * specified GPIO pin. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pin [IN] PMIC GPIO pin number. - * Valid values for TPS6594x Leo Device - * \ref Pmic_Tps6594xLeo_GpioPin. - * Valid values for LP8764x HERA Device - * \ref Pmic_Lp8764xHera_GpioPin. - * \param pinValue [IN] PMIC GPIO signal level High/Low to be - * configured. - * Valid values \ref Pmic_Gpio_SignalLvl. - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_gpioSetValue(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t pin, - const uint8_t pinValue); - -int32_t Pmic_gpioSetDir(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t pin, - const uint8_t pinDir); - -/*! - * \brief API to get PMIC GPIO value. - * - * Requirement: REQ_TAG(PDK-5808) - * Design: did_pmic_gpio_cfg_readback - * Architecture: aid_pmic_gpio_cfg - * - * This function is used to read the signal level of the gpio pin - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param pin [IN] PMIC GPIO pin number. - * Valid values for TPS6594x Leo Device - * \ref Pmic_Tps6594xLeo_GpioPin. - * Valid values for LP8764x HERA Device - * \ref Pmic_Lp8764xHera_GpioPin. - * \param pPinValue [OUT] To store PMIC GPIO signal level High/Low. - * Valid values \ref Pmic_Gpio_SignalLvl - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_gpioGetValue(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t pin, - uint8_t *pPinValue); - -/*! - * \brief API to enable/disable GPIO interrupt. - * - * Requirement: REQ_TAG(PDK-5808), REQ_TAG(PDK-9159), REQ_TAG(PDK-9329) - * Design: did_pmic_gpio_cfg_readback - * Architecture: aid_pmic_gpio_cfg - * - * This function is used to enable/disable GPIO pin Interrupts - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pin [IN] PMIC GPIO number. - * Valid values for TPS6594x Leo Device - * \ref Pmic_Tps6594xLeo_GpioPin. - * Valid values for LP8764x HERA Device - * \ref Pmic_Lp8764xHera_GpioPin. - * \param intrType [IN] Interrupt type \ref Pmic_GpioInterruptCfg - * \param maskPol [IN] FSM trigger masking polarity select for GPIO - * Valid values refer - * \ref Pmic_GpioInterruptPolCfg. - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_gpioSetIntr(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t pin, - const uint8_t intrType, - const uint8_t maskPol); - -/*! - * \brief API to set configuration for NPWRON/Enable pin. - * - * Requirement: REQ_TAG(PDK-5808), REQ_TAG(PDK-9111), REQ_TAG(PDK-9162) - * Design: did_pmic_gpio_cfg_readback - * Architecture: aid_pmic_gpio_cfg - * - * This function is used to set the required configuration for the - * NPWRON OR ENABLE pin when corresponding validParam bit field is set - * in the Pmic_GpioCfg_t - * For more information \ref Pmic_GpioCfg_t - * NPWRON is valid only for TPS6594x Leo Device. - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param gpioCfg [IN] Set NPWRON or ENABLE GPIO pin - * configuration - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_gpioSetNPwronEnablePinConfiguration( - Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_GpioCfg_t gpioCfg); - -/*! - * \brief API to get configuration for NPWRON/Enable pin. - * - * Requirement: REQ_TAG(PDK-5808) - * Design: did_pmic_gpio_cfg_readback - * Architecture: aid_pmic_gpio_cfg - * - * This function is used to read the configuration for the - * NPWRON OR ENABLE pin when corresponding validParam bit field is set - * in the Pmic_GpioCfg_t - * For more information \ref Pmic_GpioCfg_t - * NPWRON is valid only for TPS6594x Leo Device. - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param pGpioCfg [IN/OUT] Pointer to store NPWRON OR ENABLE GPIO - * pin configuration - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_gpioGetNPwronEnablePinConfiguration( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_GpioCfg_t *pGpioCfg); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* PMIC_GPIO_H_ */ - -/* @} */ diff --git a/include/pmic_irq.h b/include/pmic_irq.h deleted file mode 100644 index d57beaf..0000000 --- a/include/pmic_irq.h +++ /dev/null @@ -1,375 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ - -/** - * \ingroup DRV_PMIC_MODULE - * \defgroup DRV_PMIC_IRQ_MODULE PMIC Interrupt Driver API. - * This module explains about PMIC Interrupt driver parameters and API - * usage. PMIC Interrupt Driver module covers all Interrupt feature APIs, - * which includes Get/clear Interrupt status, extract the Interrupt status - * as per Interrupt hierarchy, masking/unmasking of all Interrupts and - * a separate API for GPIO Interrupt masking/unmasking. - * - * Supported PMIC devices for Interrupt Module: - * 1. TPS6594x (Leo PMIC Device). - * 2. LP8764x (Hera PMIC Device). - * - * @{ - */ - -/** - * \file pmic_irq.h - * - * \brief PMIC IRQ Driver API/interface file. - */ - -#ifndef PMIC_IRQ_H_ -#define PMIC_IRQ_H_ - -/* ==========================================================================*/ -/* Include Files */ -/* ==========================================================================*/ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif -/* ========================================================================== */ -/* Macros & Typedefs */ -/* ========================================================================== */ -/** - * \anchor Pmic_IrqGpioNum - * \name PMIC GPIO Interrupt Mask values - * - * @{ - */ -#define PMIC_IRQ_GPIO_ALL_INT_MASK_NUM (12U) -/* @} */ - -/** - * \anchor Pmic_IrqNum - * \name PMIC IRQ flag for all Interrupts - * - * @{ - */ -#define PMIC_IRQ_ALL (0xFFU) -/* @} */ - -/** - * \anchor Pmic_IrqClearFlag - * \name PMIC IRQ Clear flags - * - * @{ - */ -#define PMIC_IRQ_CLEAR_NONE (0U) -#define PMIC_IRQ_CLEAR (1U) -/* @} */ - -/** - * \anchor Pmic_IrqMaskFlag - * \name PMIC IRQ Mask flag - * - * @{ - */ -#define PMIC_IRQ_UNMASK (bool)false -#define PMIC_IRQ_MASK (bool)true -/* @} */ - -/** - * \anchor Pmic_IrqGpioIntrType - * \name PMIC IRQ GPIO Interrupt type - * - * @{ - */ -#define PMIC_IRQ_GPIO_FALL_INT_TYPE (0x0U) -#define PMIC_IRQ_GPIO_RISE_INT_TYPE (0x1U) -#define PMIC_IRQ_GPIO_RISE_FALL_INT_TYPE (0x2U) -/* @} */ - -/*==========================================================================*/ -/* Structures and Enums */ -/*==========================================================================*/ -/*! -* \brief PMIC Interrupt status object structure. -* -* \param intStatus To store all available interrupts using bit fields. -* -*/ -typedef struct Pmic_IrqStatus_s -{ - uint32_t intStatus[4]; -} Pmic_IrqStatus_t; - -/*==========================================================================*/ -/* Function Declarations */ -/*==========================================================================*/ -/*! - * \brief API to read Error status. - * - * Requirement: REQ_TAG(PDK-5805), REQ_TAG(PDK-5842), REQ_TAG(PDK-5832), - * REQ_TAG(PDK-5838), REQ_TAG(PDK-5852), REQ_TAG(PDK-5834), - * REQ_TAG(PDK-5806), REQ_TAG(PDK-5828), REQ_TAG(PDK-5807), - * REQ_TAG(PDK-5846), REQ_TAG(PDK-5812), REQ_TAG(PDK-5830), - * REQ_TAG(PDK-5835), REQ_TAG(PDK-5836), REQ_TAG(PDK-5845), - * REQ_TAG(PDK-9147), REQ_TAG(PDK-9148), REQ_TAG(PDK-9149), - * REQ_TAG(PDK-9113), REQ_TAG(PDK-9120), REQ_TAG(PDK-9122), - * REQ_TAG(PDK-9159), REQ_TAG(PDK-9329) - * Design: did_pmic_irq_cfg_readback - * Architecture: aid_pmic_irq_cfg - * - * This function does the following: - * 1. This function gets the interrupt status by reading pmic - * IRQ register as per IRQ hierarchy defined in device TRM. - * 2. Decipher error from top register to actual error code. - * 3. Store the status of all Interrupts. - * 4. Support clearing interrupts depends on clearIRQ flag. - * Note: Application has to ensure to clear the interrupts after the - * interrupt has been serviced. If the interrupts are not cleared - * after the interrupt had been serviced then Application will - * not get any further interrupts which results in event miss - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pErrStat [OUT] Pointer to store Error status. - * \param clearIRQ [IN] Flag to clear Interrupt status after - * deciphering the interrupt status. - * For valid values: \ref Pmic_IrqClearFlag. - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values: \ref Pmic_ErrorCodes. - */ -int32_t Pmic_irqGetErrStatus(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_IrqStatus_t *pErrStat, - const bool clearIRQ); - -/*! - * \brief API to clear Error status. - * - * Requirement: REQ_TAG(PDK-5805), REQ_TAG(PDK-9113), REQ_TAG(PDK-9120) - * Design: did_pmic_irq_cfg_readback - * Architecture: aid_pmic_irq_cfg - * - * This function does the following: - * 1. This function clears the IRQ status in PMIC register for a given - * IRQ Number. - * 2. Validates given IRQ Number and find the IRQ register that is - * to be cleared. - * 3. Expected to be called after an IRQ status is deciphered by - * Pmic_irqGetErrStatus(). - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param irqNum [IN] Interrupt number to clear the status. - * For Valid values: - * \ref Pmic_tps6594x_IrqNum - * for TPS6594x LEO PMIC, - * \ref Pmic_lp8764x_IrqNum - * for LP8764x HERA PMIC, - * \ref Pmic_IrqNum - * for all interrupts except gpio. - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values: \ref Pmic_ErrorCodes. - */ -int32_t Pmic_irqClrErrStatus(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t irqNum); - - /*! - * \brief API to mask/unmask interrupts. - * - * Requirement: REQ_TAG(PDK-5805) - * Design: did_pmic_irq_cfg_readback - * Architecture: aid_pmic_irq_cfg - * - * This function does the following: - * 1. This function mask/unmask the given IRQ Number. - * 2. Validates given IRQ Number and find the IRQ register that - * is to be masked/unmasked. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param irqNum [IN] Interrupt number to be masked. - * For Valid values: - * \ref Pmic_tps6594x_IrqNum - * for TPS6594x LEO PMIC, - * \ref Pmic_lp8764x_IrqNum - * for LP8764x HERA PMIC, - * \ref Pmic_IrqNum - * for all interrupts except gpio. - * \param mask [IN] Parameter to mask/unmask INTR. - * For valid values: \ref Pmic_IrqMaskFlag. - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values: \ref Pmic_ErrorCodes. - */ -int32_t Pmic_irqMaskIntr(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t irqNum, - const bool mask); - - /*! - * \brief API to extract each Error status. - * - * Requirement: REQ_TAG(PDK-5805) - * Design: did_pmic_irq_cfg_readback - * Architecture: aid_pmic_irq_cfg - * - * This function is used to extract each Error status from pErrStat - * as per the hierarchy given in the TRM. This function clears the - * Error status after the status is extracted. This API is expected to - * be called after Pmic_irqGetErrStatus. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pErrStat [IN] Pointer containing Error Status. - * \param pIrqNum [OUT] Pointer to store the IRQ Number extracted - * For TPS6594x LEO: - * \ref Pmic_tps6594x_IrqNum. - * For LP8764x HERA: - * \ref Pmic_lp8764x_IrqNum. - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes. - */ -int32_t Pmic_getNextErrorStatus(const Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_IrqStatus_t *pErrStat, - uint8_t *pIrqNum); - -/*! - * \brief API to mask/unmask GPIO interrupts. - * - * Requirement: REQ_TAG(PDK-5812) - * Design: did_pmic_irq_cfg_readback - * Architecture: aid_pmic_irq_cfg - * - * This function is used to Mask or Unmask GPIO Rise and Fall - * Interrupts based on the GPIO IRQ Number. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param irqGpioNum [IN] GPIO Interrupt to be masked/unmasked. - * For Valid values: - * \ref Pmic_tps6594x_IrqGpioNum - * for TPS6594x LEO PMIC, - * \ref Pmic_lp8764x_IrqGpioNum - * for LP8764x HERA PMIC, - * \ref Pmic_IrqGpioNum - * for all gpio interrupts. - * \param mask [IN] Parameter to mask/unmask INTR. - * Valid values: \ref Pmic_IrqMaskFlag. - * \param gpioIntrType [IN] Parameter to mask GPIO RISE and FALL - * Interrupt. - * Valid values: \ref Pmic_IrqGpioIntrType. - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes. - */ -int32_t Pmic_irqGpioMaskIntr(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t irqGpioNum, - const bool mask, - const uint8_t gpioIntrType); - - /*! - * \brief API to read the status of PMIC interrupts is masked or not - * - * Requirement: REQ_TAG(PDK-9153) - * Design: did_pmic_irq_mask_status - * Architecture: aid_pmic_irq_cfg - * - * This function does the following: - * 1. This function reads the status of interrupt is masked or not for - * the given IRQ Number. - * 2. Validates given IRQ Number and find the IRQ register to check - * the status of interrupt is masked or not - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param irqNum [IN] Interrupt number to be masked. - * For Valid values: - * \ref Pmic_tps6594x_IrqNum - * for TPS6594x LEO PMIC, - * \ref Pmic_lp8764x_IrqNum - * for LP8764x HERA PMIC, - * \param pMaskStatus [OUT] Pointer to hold the status of interrupt is - * masked or not - * For Valid values: - * \ref Pmic_IrqMaskFlag - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values: \ref Pmic_ErrorCodes. - */ -int32_t Pmic_irqGetMaskIntrStatus(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t irqNum, - bool *pMaskStatus); - -/*! - * \brief API to read the status of PMIC GPIO interrupts is masked or not - * - * Requirement: REQ_TAG(PDK-9152) - * Design: did_pmic_irq_mask_status - * Architecture: aid_pmic_irq_cfg - * - * This function reads the status of GPIO Rise and Fall interrupt is - * masked or not for the given GPIO IRQ Number - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param irqGpioNum [IN] GPIO Interrupt to be masked/unmasked. - * For Valid values: - * \ref Pmic_tps6594x_IrqGpioNum - * for TPS6594x LEO PMIC, - * \ref Pmic_lp8764x_IrqGpioNum - * for LP8764x HERA PMIC, - * \param gpioIntrType [IN] Parameter to mask GPIO RISE and FALL - * Interrupt. - * Valid values: \ref Pmic_IrqGpioIntrType. - * \param pRiseIntrMaskStat [OUT] Pointer to hold status of GPIO Rise - * Interrupt is masked or not - * Valid only when gpioIntrType is - * PMIC_IRQ_GPIO_RISE_INT_TYPE or - * PMIC_IRQ_GPIO_RISE_FALL_INT_TYPE - * For Valid values: - * \ref Pmic_IrqMaskFlag - * \param pFallIntrMaskStat [OUT] Pointer to hold status of GPIO Fall - * Interrupt is masked or not - * Valid only when gpioIntrType is - * PMIC_IRQ_GPIO_FALL_INT_TYPE or - * PMIC_IRQ_GPIO_RISE_FALL_INT_TYPE - * For Valid values: - * \ref Pmic_IrqMaskFlag - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes. - */ -int32_t Pmic_irqGetGpioMaskIntr(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t irqGpioNum, - const uint8_t gpioIntrType, - bool *pRiseIntrMaskStat, - bool *pFallIntrMaskStat); - -#ifdef __cplusplus -} - -#endif /* __cplusplus */ - -#endif /* PMIC_IRQ_H_ */ - -/* @} */ diff --git a/include/pmic_power.h b/include/pmic_power.h deleted file mode 100644 index 2473226..0000000 --- a/include/pmic_power.h +++ /dev/null @@ -1,1415 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ - -/** - * \ingroup DRV_PMIC_MODULE - * \defgroup DRV_PMIC_POWER_MODULE PMIC Power Driver API - * This module explains about PMIC Power Resources driver parameters and - * API usage. PMIC Power Module covers all power resources feature APIs, - * which includes set/get BUCK and LDO regulator output voltage - * configurations, set/get volatge monitor, current monitor, power good - * monitor and short circuit protection configuration for external power - * sources, set/get thermal monitoring/shutdown of the PMIC module, - * APIs to configure regulator and VMON interrupts to notify the - * application when PMIC power related errors are found on the power - * Rails - * - * Supported PMIC devices for Power Module: - * 1. TPS6594x (Leo PMIC Device) - * 2. LP8764x (Hera PMIC Device) - * @{ - */ - -/** - * \file pmic_power.h - * - * \brief PMIC Power Resources Driver Interface file - */ - -#ifndef PMIC_POWER_H_ -#define PMIC_POWER_H_ - -/* ========================================================================= */ -/* Include Files */ -/* ========================================================================= */ - -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* ========================================================================= */ -/* Macros & Typedefs */ -/* ========================================================================= */ - -/** - * \anchor Pmic_PowerResourcesValidParamCfg - * \name PMIC Power Resources Config Structure Param Bits - * - * PMIC Power Resources valid params configuration type for - * the structure member validParams of Pmic_PowerResourceCfg_t - * structure - * - * @{ - */ - /** \brief validParams value used to set/get to Enable/Disable residual - * voltage checking for regulator/VMON pin - * Valid only for VMON1/VMON2/BUCK/LDO */ -#define PMIC_CFG_REGULATOR_VMON_RV_SEL_VALID (0U) - /** \brief validParams value used to set/get to Enable/Disable output pull-down - * resistor when BUCK is disabled. - * Valid only for BUCK regulator */ -#define PMIC_CFG_REGULATOR_BUCK_PLDN_EN_VALID (1U) - /** \brief validParams value used to set/get to Enable /Disable the Voltage - * monitor feature - * Valid only for VMON1/VMON2/VMON of BUCK/VMON of LDO/VMON of VCCA - * Power Resources */ -#define PMIC_CFG_VMON_EN_VALID (2U) - /** \brief validParams value used to set/get to Select output voltage register - * for BUCK - * Valid only for BUCK regulator */ -#define PMIC_CFG_REGULATOR_BUCK_VOUT_SEL_VALID (3U) - /** \brief validParams value used to set/get to Select PWM or Auto Mode for - * BUCK - * Valid only for BUCK regulator */ -#define PMIC_CFG_REGULATOR_BUCK_FPWM_VALID (4U) - /** \brief validParams value used to set/get to Select between Multi phase with - * PWM OR AUTO mode with Automatic phase adding and shedding for BUCK - * Valid only for BUCK regulator */ -#define PMIC_CFG_REGULATOR_BUCK_PWM_MP_VALID (5U) - /** \brief validParams value used to set/get to Enable/Disable the power - * regulators - * Valid only for BUCK/LDO regulator */ -#define PMIC_CFG_REGULATOR_EN_VALID (6U) - /** \brief validParams value used to set/get to Enable/Disable Slow Ramp for - * LDO - * Valid only for LDO regulator - * Valid only for TPS6594x Leo PMIC PG2.0 */ -#define PMIC_CFG_REGULATOR_LDO_SLOW_RAMP_EN_VALID (7U) - /** \brief validParams value used to set/get to Select Bypass/Linear Regulator - * LDO mode - * Valid only for LDO regulator */ -#define PMIC_CFG_REGULATOR_LDO_BYPASS_MODE_EN_VALID (8U) - /** \brief validParams value used to set/get Powergood level for VCCA pin - * Valid only for VCCA */ -#define PMIC_CFG_VCCA_PWR_GOOD_LVL_VALID (9U) - /** \brief validParams value used to set/get to Select OV/UV voltage monitoring - * range for VMON - * Valid only for VMON1/VMON2 */ -#define PMIC_CFG_VMON_RANGE_VALID (10U) - /** \brief validParams value used to set/get Switch peak current limit for BUCK - * regulator - * Valid only for BUCK regulator */ -#define PMIC_CFG_REGULATOR_BUCK_ILIM_VALID (12U) - /** \brief validParams value used to set/get Output voltage slew rate for - * BUCK/VMON - * Valid only for VMON1/VMON2/BUCK */ -#define PMIC_CFG_REGULATOR_BUCK_VMON_SLEW_RATE_VALID (13U) - /** \brief validParams value used to set/get to Selects the resistor value for - * output pull-down resistor for LDO regulator - * Valid only for LDO regulator */ -#define PMIC_CFG_REGULATOR_LDO_PLDN_SEL_VALID (14U) - /** \brief validParams value used to set/get LDO residual voltage check timeout - * select - * Valid only for LDO regulator */ -#define PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID (15U) - /** \brief validParams value used to set/get Power good low threshold level for - * the power resources - * Valid for all power resources */ -#define PMIC_CFG_PWR_RESOURCE_PG_UV_THRESHOLD_LVL_VALID (16U) - /** \brief validParams value used to set/get Power good high threshold level - * for the power resources - * Valid for all power resources */ -#define PMIC_CFG_PWR_RESOURCE_PG_OV_THRESHOLD_LVL_VALID (17U) - /** \brief validParams value used to set/get Rail group selection for the - * power resources - * Valid for all power resources */ -#define PMIC_CFG_PWR_RESOURCE_RAIL_GRP_SEL_VALID (18U) - /** \brief validParams value used to set/get Voltage level (For LDO/BUCK)/ - * Powergood voltage level(For VMON1/VMON2) in mv - * Valid only for VMON1/VMMON2/BUCK/LDO */ -#define PMIC_CFG_REGULATOR_VMON_VOLTAGE_SET_VALID (19U) -/* @} */ - -/** - * \anchor Pmic_PowerResourcesValidParamBitShiftValues - * \name PMIC Power Resources valid param bit shift values - * - * Application can use below shifted values to set the validParam - * member defined in Pmic_PowerResourceCfg_t structure - * - * @{ - */ -#define PMIC_CFG_REGULATOR_VMON_RV_SEL_VALID_SHIFT \ - (1U << PMIC_CFG_REGULATOR_VMON_RV_SEL_VALID) -#define PMIC_CFG_REGULATOR_BUCK_PLDN_EN_VALID_SHIFT \ - (1U << PMIC_CFG_REGULATOR_BUCK_PLDN_EN_VALID) -#define PMIC_CFG_VMON_EN_VALID_SHIFT (1U << PMIC_CFG_VMON_EN_VALID) -#define PMIC_CFG_REGULATOR_BUCK_VOUT_SEL_VALID_SHIFT \ - (1U << PMIC_CFG_REGULATOR_BUCK_VOUT_SEL_VALID) -#define PMIC_CFG_REGULATOR_BUCK_FPWM_VALID_SHIFT \ - (1U << PMIC_CFG_REGULATOR_BUCK_FPWM_VALID) -#define PMIC_CFG_REGULATOR_BUCK_PWM_MP_VALID_SHIFT \ - (1U << PMIC_CFG_REGULATOR_BUCK_PWM_MP_VALID) -#define PMIC_CFG_REGULATOR_EN_VALID_SHIFT (1U << PMIC_CFG_REGULATOR_EN_VALID) -#define PMIC_CFG_REGULATOR_LDO_SLOW_RAMP_EN_VALID_SHIFT \ - (1U << PMIC_CFG_REGULATOR_LDO_SLOW_RAMP_EN_VALID) -#define PMIC_CFG_REGULATOR_LDO_BYPASS_MODE_EN_VALID_SHIFT \ - (1U << PMIC_CFG_REGULATOR_LDO_BYPASS_MODE_EN_VALID) -#define PMIC_CFG_VCCA_PWR_GOOD_LVL_VALID_SHIFT \ - (1U << PMIC_CFG_VCCA_PWR_GOOD_LVL_VALID) -#define PMIC_CFG_VMON_RANGE_VALID_SHIFT (1U << PMIC_CFG_VMON_RANGE_VALID) -#define PMIC_CFG_REGULATOR_BUCK_ILIM_VALID_SHIFT \ - (1U << PMIC_CFG_REGULATOR_BUCK_ILIM_VALID) -#define PMIC_CFG_REGULATOR_BUCK_VMON_SLEW_RATE_VALID_SHIFT \ - (1U << PMIC_CFG_REGULATOR_BUCK_VMON_SLEW_RATE_VALID) -#define PMIC_CFG_REGULATOR_LDO_PLDN_SEL_VALID_SHIFT \ - (1U << PMIC_CFG_REGULATOR_LDO_PLDN_SEL_VALID) -#define PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID_SHIFT \ - (1U << PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID) -#define PMIC_CFG_PWR_RESOURCE_PG_UV_THRESHOLD_LVL_VALID_SHIFT \ - (1U << PMIC_CFG_PWR_RESOURCE_PG_UV_THRESHOLD_LVL_VALID) -#define PMIC_CFG_PWR_RESOURCE_PG_OV_THRESHOLD_LVL_VALID_SHIFT \ - (1U << PMIC_CFG_PWR_RESOURCE_PG_OV_THRESHOLD_LVL_VALID) -#define PMIC_CFG_PWR_RESOURCE_RAIL_GRP_SEL_VALID_SHIFT \ - (1U << PMIC_CFG_PWR_RESOURCE_RAIL_GRP_SEL_VALID) -#define PMIC_CFG_REGULATOR_VMON_VOLTAGE_SET_VALID_SHIFT \ - (1U << PMIC_CFG_REGULATOR_VMON_VOLTAGE_SET_VALID) -/* @} */ - -/** - * \anchor Pmic_PowerCommonParamCfg - * \name PMIC Pmic_PowerCommonCfg_s member configuration type. - * - * @{ - */ - /** \brief validParams value used to set/get to Select the type of voltage - * monitoring for PGOOD signal */ -#define PMIC_POWER_PGOOD_WINDOW_VALID (0U) - /** \brief validParams value used to set/get to Select the PGOOD signal - * polarity */ -#define PMIC_POWER_PGOOD_POL_VALID (1U) - /** \brief validParams value used to set/get Deglitch time select for all power - * resources - * Valid only for VMON1/VMON2/VCCA/VMON of LDO/VMON of BUCK power - * resources - * Valid only for TPS6594x Leo PMIC PG2.0 and LP8764x Hera PMIC PG1.0 - * and PG2.0 - */ -#define PMIC_CFG_DEGLITCH_TIME_SEL_VALID (2U) - /** \brief validParams value used to set/get to Select the trigger selection - * for severe Error */ -#define PMIC_SEVERE_ERR_TRIG_VALID (3U) - /** \brief validParams value used to set/get to Select the trigger selection - * for other rail group */ -#define PMIC_OTHER_RAIL_TRIG_VALID (4U) - /** \brief validParams value used to set/get to Select the trigger selection - * for soc rail group */ -#define PMIC_SOC_RAIL_TRIG_VALID (5U) - /** \brief validParams value used to set/get to Select the trigger selection - * for mcu rail group */ -#define PMIC_MCU_RAIL_TRIG_VALID (6U) - /** \brief validParams value used to set/get Select the trigger selection for - * Moderate Error */ -#define PMIC_MODERATE_ERR_TRIG_VALID (7U) -/* @} */ - -/** - * \anchor Pmic_PowerCommonParamBitShiftValues - * \name PMIC valid params bit shift values - * - * Application can use below shifted values to set the validParam - * member defined in Pmic_PowerCommonCfg_t structure - * - * @{ - */ -#define PMIC_POWER_PGOOD_WINDOW_VALID_SHIFT \ - (1U << PMIC_POWER_PGOOD_WINDOW_VALID) -#define PMIC_POWER_PGOOD_POL_VALID_SHIFT \ - (1U << PMIC_POWER_PGOOD_POL_VALID) -#define PMIC_CFG_DEGLITCH_TIME_SEL_VALID_SHIFT \ - (1U << PMIC_CFG_DEGLITCH_TIME_SEL_VALID) -#define PMIC_SEVERE_ERR_TRIG_VALID_SHIFT \ - (1U << PMIC_SEVERE_ERR_TRIG_VALID) -#define PMIC_OTHER_RAIL_TRIG_VALID_SHIFT \ - (1U << PMIC_OTHER_RAIL_TRIG_VALID) -#define PMIC_SOC_RAIL_TRIG_VALID_SHIFT \ - (1U << PMIC_SOC_RAIL_TRIG_VALID) -#define PMIC_MCU_RAIL_TRIG_VALID_SHIFT \ - (1U << PMIC_MCU_RAIL_TRIG_VALID) -#define PMIC_MODERATE_ERR_TRIG_VALID_SHIFT \ - (1U << PMIC_MODERATE_ERR_TRIG_VALID) - -/** - * \anchor Pmic_PowerStatusValidParamCfg - * \name PMIC Power Status Config Structure Param Bits - * - * PMIC Power Status valid params configuration type for - * the structure member validParams of Pmic_PowerResourceStat_t - * structure. - * - * @{ - */ - /** \brief validParams value used to get output current limit status for LDO - * and buck regulators */ -#define PMIC_POWER_REGULATOR_ILIM_STAT_VALID (0U) -/** \brief validParams value used to get output under voltage status for LDO/ - * BUCK and input under voltage status for VCCA/VMON - * Valid for all power resources */ -#define PMIC_POWER_RESOURCE_UV_STAT_VALID (1U) -/** \brief validParams value used to get output over voltage status for LDO/BUCK - * and input over voltage status for VCCA/VMON - * Valid for all power resources */ -#define PMIC_POWER_RESOURCE_OV_STAT_VALID (2U) -/** \brief validParams value used to get voltage level status for VCCA - * Valid only for VCCA */ -#define PMIC_POWER_VCCA_OV_LVL_STAT_VALID (3U) -/* @} */ - -/** - * \anchor Pmic_PowerStatusValidParamCfgBitShiftValues - * \name PMIC Power Resources valid param bit shift values - * - * Application can use below shifted values to set the validParam - * member defined in Pmic_PowerResourceCfg_t structure - * - * @{ - */ -#define PMIC_POWER_REGULATOR_ILIM_STAT_VALID_SHIFT \ - (1U << PMIC_POWER_REGULATOR_ILIM_STAT_VALID) -#define PMIC_POWER_RESOURCE_UV_STAT_VALID_SHIFT \ - (1U << PMIC_POWER_RESOURCE_UV_STAT_VALID) -#define PMIC_POWER_RESOURCE_OV_STAT_VALID_SHIFT \ - (1U << PMIC_POWER_RESOURCE_OV_STAT_VALID) -#define PMIC_POWER_VCCA_OV_LVL_STAT_VALID_SHIFT \ - (1U << PMIC_POWER_VCCA_OV_LVL_STAT_VALID) - -/** - * \anchor Pmic_PowerThermalThresholdValidParamCfg - * \name PMIC Power Thermal threshold type - * - * @{ - */ - /** \brief validParams value used to set/get thermal Warning Threshold - * temperature value */ -#define PMIC_THERMAL_WARN_VALID (1U) -/** \brief validParams value used to set/get Thermal Shutdown Threshold - * temperature value - * valid only for TPS6594x Leo PMIC PG2.0 and LP8764x Hera PMIC PG1.0 - * and PG2.0 - */ -#define PMIC_THERMAL_SHTDWN_VALID (2U) -/* @} */ - -/** - * \anchor Pmic_PowerThermalThresholdValidParamCfgBits - * \name PMIC Power Thermal threshold type structure Param Bits shift values - * - * Application can use below shifted values to set the validParam - * member defined in Pmic_PowerThermalCfg_t structure - * - * @{ - */ -#define PMIC_THERMAL_WARN_VALID_SHIFT \ - (1U << PMIC_THERMAL_WARN_VALID) -#define PMIC_THERMAL_SHTDWN_VALID_SHIFT \ - (1U << PMIC_THERMAL_SHTDWN_VALID) -/* @} */ - -/** - * \anchor Pmic_PowerThermalStatValidParamCfg - * \name PMIC Power Thermal status type - * - * @{ - */ - /** \brief validParams value used to get Thermal warning status */ -#define PMIC_THERMAL_STAT_WARN_VALID (1U) -/** \brief validParams value used to get Orderly Shutdown status */ -#define PMIC_THERMAL_STAT_ORD_SHTDWN_VALID (2U) -/** \brief validParams value used to get Immediate Shutdown status */ -#define PMIC_THERMAL_STAT_IMM_SHTDWN_VALID (3U) -/* @} */ - -/** - * \anchor Pmic_PowerThermalStatValidParamCfgBits - * \name PMIC Power Thermal status type structure Param Bits shift values - * - * Application can use below shifted values to set the validParam - * member defined in Pmic_PowerThermalStat_t structure - * - * @{ - */ -#define PMIC_THERMAL_STAT_WARN_VALID_SHIFT \ - (1U << PMIC_THERMAL_STAT_WARN_VALID) -#define PMIC_THERMAL_STAT_ORD_SHTDWN_VALID_SHIFT \ - (1U << PMIC_THERMAL_STAT_ORD_SHTDWN_VALID) -#define PMIC_THERMAL_STAT_IMM_SHTDWN_VALID_SHIFT \ - (1U << PMIC_THERMAL_STAT_IMM_SHTDWN_VALID) -/* @} */ - -/** - * \anchor Pmic_PowerInterruptCfg - * \name PMIC Power Interrupt selection - * - * @{ - */ -#define PMIC_POWER_INTERRUPT_ENABLE (0U) -#define PMIC_POWER_INTERRUPT_DISABLE (1U) -/* @} */ - -/** - * \anchor Pmic_Power_Good_Window - * \name Type of voltage monitoring for PGOOD signal: - * - * @{ - */ -/** \brief Only undervoltage is monitored */ -#define PMIC_POWER_GOOD_UV_MONITOR_ENABLE (0x0U) -/** \brief Both undervoltage and overvoltage are monitored */ -#define PMIC_POWER_GOOD_UV_OV_MONITOR_ENABLE (0x1U) -/* @} */ - -/** - * \anchor Pmic_Power_Good_Polarity - * \name PGOOD signal polarity - * - * @{ - */ -/** \brief PGOOD signal is high when monitored inputs are valid */ -#define PMIC_POWER_PGOOD_POL_HIGH (0x0U) -/** \brief PGOOD signal is low when monitored inputs are valid */ -#define PMIC_POWER_PGOOD_POL_LOW (0x1U) -/* @} */ - -/** - * \anchor Pmic_Power_Trigger_Sel - * \name PMIC Power Trigger selection - * - * @{ - */ -#define PMIC_POWER_TRIG_IMM_SHUTDOWN (0U) -#define PMIC_POWER_TRIG_ODERLY_SHUTDOWN (1U) -#define PMIC_POWER_TRIG_MCU_PWR_ERR (2U) -#define PMIC_POWER_TRIG_SOC_PWR_ERR (3U) -/* @} */ -/*==========================================================================*/ -/* Structures and Enums */ -/*==========================================================================*/ - -/*! - * \anchor Pmic_PowerResourceCfg_s - * \brief Pmic Power resources control and configuration structure. - * Note: validParams is input param for all Set and Get APIs. other - * params except validParams is input param for Set APIs and output - * param for Get APIs - * - * \param validParams Selection of structure parameters to be set, - * from the combination of - * \ref Pmic_PowerResourcesValidParamCfg - * and the corresponding member value must be - * updated. - * \param rvCheckEn Enable/Disable residual voltage checking for - * regulator/VMON pin. - * Valid values for TPS6594x Leo Device - * \ref Pmic_TPS6594x_Regulator_RV_Check. - * Valid values for LP8764x HERA Device - * \ref Pmic_LP8764x_Regulator_Vmon_RV_Check. - * Valid only when - * PMIC_CFG_REGULATOR_VMON_RV_SEL_VALID bit is - * set. - * \param buckPullDownEn Enable/Disable output pull-down resistor when - * BUCK is disabled. - * Valid values for TPS6594x Leo Device - * \ref Pmic_TPS6594x_Buck_Pull_Down_Resistor. - * Valid values for LP8764x HERA Device - * \ref Pmic_LP8764x_Buck_Pull_Down_Resistor. - * Valid only when - * PMIC_CFG_REGULATOR_BUCK_PLDN_EN_VALID bit is - * set. - * \param vmonEn Enable /Disable the Voltage monitor feature. - * For LDO, VCCA, VMON1 and VMON2: - * Enable/Disable OV and UV comparators. - * For BUCK: - * Enable/Disable OV, UV, SC and ILIM - * comparators. - * Note: For VMON1 and VMON2, Need to configure - * respective GPIO pin functionality before - * enabling VMON feature - * Valid values for TPS6594x Leo Device - * \ref Pmic_TPS6594x_Vmon_Enable. - * Valid values for LP8764x HERA Device - * \ref Pmic_LP8764x_Vmon_Enable. - * Valid only when PMIC_CFG_VMON_EN_VALID bit is - * set. - * \param buckVoutSel Select output voltage register for BUCK. - * Valid values for TPS6594x Leo Device - * \ref Pmic_TPS6594x_Regulator_Buck_Vout_Sel. - * Valid values for LP8764x HERA Device - * \ref Pmic_LP8764x_Regulator_Buck_Vout_Sel. - * Valid only when - * PMIC_CFG_REGULATOR_BUCK_VOUT_SEL_VALID bit is - * set. - * \param buckFpwmMode Select PWM or Auto Mode for BUCK. - * Valid values for TPS6594x Leo Device - * \ref Pmic_TPS6594x_Regulator_Pwm_Pfm_Mode. - * Valid values for LP8764x HERA Device - * \ref Pmic_LP8764x_Regulator_Pwm_Pfm_Mode. - * Valid only when - * PMIC_CFG_REGULATOR_BUCK_FPWM_VALID bit is set. - * \param buckFpwmMpMode Select between Multi phase with PWM OR AUTO - * mode with Automatic phase adding and shedding - * for BUCK. - * Valid values for TPS6594x Leo Device - * \ref Pmic_TPS6594x_Regulator_Pwm_Mp_Mode. - * Valid values for LP8764x HERA Device - * \ref PMIC_LP8764X_Regulator_Pwm_Mp_Mode. - * Valid only when - * PMIC_CFG_REGULATOR_BUCK_PWM_MP_VALID bit - * is set. - * \param regulatorEn Enable/Disable the power regulators. - * Valid values for TPS6594x Leo Device - * \ref Pmic_TPS6594x_Power_Regulator_enable. - * Valid values for LP8764x HERA Device - * \ref Pmic_LP8764x_Buck_Regulator_enable. - * Valid only when PMIC_CFG_REGULATOR_EN_VALID - * bit is set. - * \param ldoSlowRampEn Enable/Disable Slow Ramp for LDO - * Valid only for TPS6594X Leo. For Valid Values - * \ref Pmic_TPS6594x_Regulator_Ldo_Slow_Ramp. - * Valid only when - * PMIC_CFG_REGULATOR_LDO_SLOW_RAMP_EN_VALID - * bit is set. - * Valid only for TPS6594x Leo PMIC PG2.0 - * \param ldoBypassModeEn Selects Bypass/Linear Regulator LDO mode. - * Valid only for TPS6594X Leo. For Valid Values - * \ref Pmic_TPS6594x_Regulator_Ldo_Mode. - * Valid only when - * PMIC_CFG_REGULATOR_LDO_BYPASS_MODE_EN_VALID - * bit is set. - * \param vccaPwrGudLvl Powergood level for VCCA pin. - * Valid values for TPS6594x Leo Device - * \ref Pmic_TPS6594x_VccaPowerGoodLimit. - * Valid values for LP8764x HERA Device - * \ref Pmic_LP8764x_VccaPowerGoodLimit. - * Valid only when - * PMIC_CFG_VCCA_PWR_GOOD_LVL_VALID bit is set. - * \param vmonRange Select OV/UV voltage monitoring range for - * VMON - * Valid only for LP8764X Hera. For Valid Values - * \ref Pmic_LP8764x_Power_Vmon_Range. - * Valid only when - * PMIC_CFG_VMON_RANGE_VALID bit is set - * \param buckCurrentLimit Switch peak current limit for BUCK regulator. - * Valid values for TPS6594x Leo Device - * \ref Pmic_TPS6594x_Buck_Current_Limit. - * Valid values for LP8764x HERA Device - * \ref Pmic_LP8764x_Buck_Current_Limit. - * Valid only when - * PMIC_CFG_REGULATOR_BUCK_ILIM_VALID bit is set. - * \param buckVmonSlewRate Output voltage slew rate for BUCK/VMON - * Valid values for TPS6594x Leo Device - * \ref Pmic_TPS6594x_Buck_Slew_Rate. - * Valid values for LP8764x HERA Device - * \ref Pmic_LP8764x_Buck_Vmon_Slew_Rate. - * Valid only when - * PMIC_CFG_REGULATOR_BUCK_VMON_SLEW_RATE_VALID - * bit is set - * \param ldoPullDownSel Selects the resistor value for output - * pull-down resistor for LDO regulator - * Valid only for TPS6594X Leo. For Valid Values - * \ref Pmic_TPS6594x_Ldo_Pldn_Resistor_Val. - * Valid only when - * PMIC_CFG_REGULATOR_LDO_PLDN_SEL_VALID bit is - * set. - * \param ldoRvTimeoutSel LDO residual voltage check timeout select. - * Valid only for TPS6594X Leo. For Valid Values - * \ref Pmic_TPS6594x_Ldo_RV_Timeout. - * Valid only when - * PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID - * bit is set. - * \param pgUvThresholdLvl Power good low threshold level for the power - * resources. - * Valid values for TPS6594x Leo Device - * \ref Pmic_TPS6594x_Pg_Ov_Uv_Threshold_lvl. - * Valid values for LP8764x HERA Device - * \ref Pmic_LP8764x_Pg_Ov_Uv_Threshold_lvl. - * Valid only when - * PMIC_CFG_PWR_RESOURCE_PG_UV_THRESHOLD_LVL_VALID - * bit is set. - * \param pgOvThresholdLvl Power good high threshold level for the power - * resources. - * Valid values for TPS6594x Leo Device - * \ref Pmic_TPS6594x_Pg_Ov_Uv_Threshold_lvl. - * Valid values for LP8764x HERA Device - * \ref Pmic_LP8764x_Pg_Ov_Uv_Threshold_lvl. - * PMIC_CFG_PWR_RESOURCE_PG_OV_THRESHOLD_LVL_VALID - * bit is set. - * \param railGrpSel Rail group selection for the power resources - * Valid values for TPS6594x Leo Device - * \ref Pmic_TPS6594x_Power_Rail_Sel. - * Valid values for LP8764x HERA Device - * \ref Pmic_LP8764x_Power_Rail_Sel. - * Valid only when - * PMIC_CFG_PWR_RESOURCE_RAIL_GRP_SEL_VALID bit is - * set - * \param voltage_mV For LDO/BUCK: Voltage level in mv. - * For VMON1/VMON2: Powergood voltage level in mv - * Valid only when - * PMIC_CFG_REGULATOR_VMON_VOLTAGE_SET_VALID - * bit is set - */ -typedef struct Pmic_PowerResourceCfg_s -{ - uint32_t validParams; - bool rvCheckEn; - bool buckPullDownEn; - bool vmonEn; - bool buckVoutSel; - bool buckFpwmMode; - bool buckFpwmMpMode; - bool regulatorEn; - bool ldoSlowRampEn; - bool ldoBypassModeEn; - bool vccaPwrGudLvl; - bool vmonRange; - uint8_t buckCurrentLimit; - uint8_t buckVmonSlewRate; - uint8_t ldoPullDownSel; - uint8_t ldoRvTimeoutSel; - uint8_t pgUvThresholdLvl; - uint8_t pgOvThresholdLvl; - uint8_t railGrpSel; - uint16_t voltage_mV; -}Pmic_PowerResourceCfg_t; - -/*! - * \anchor Pmic_PowerCommonCfg_s - * \brief Power configuration - * The power control and config structure - * Note: validParams is input param for all Set and Get APIs. other - * params except validParams is input param for Set APIs and output - * param for Get APIs - * - * \param validParams Selection of structure parameters to be set, - * from the combination of - * \ref Pmic_PowerCommonParamCfg - * and the corresponding member value must be - * updated - * - * \param pgoodWindow Select the type of voltage monitoring for PGOOD - * signal - * For valid values - * \ref Pmic_Power_Good_Window - * Valid only when - * PMIC_POWER_PGOOD_WINDOW_VALID bit set. - * - * \param pgoodPolarity Select the PGOOD signal polarity - * For valid values - * Valid values - * \ref Pmic_Power_Good_Polarity - * Valid only when - * PMIC_POWER_PGOOD_POL_VALID bit is set. - * - * \param deglitchTimeSel Deglitch time select for all power resources - * Valid values for TPS6594x Leo Device - * Valid only for TPS6594x Leo PMIC PG2.0 - * \ref Pmic_TPS6594x_Vmon_DeglitchTime_Sel. - * Valid values for LP8764x HERA Device - * Valid for both LP8764x Hera PMIC PG1.0 and - * PG2.0 - * \ref Pmic_LP8764x_Vmon_DeglitchTime_Sel. - * Valid only when - * PMIC_CFG_DEGLITCH_TIME_SEL_VALID bit is set. - * - * \param severeErrorTrig Select the trigger selection for severe Error - * For valid values - * \ref Pmic_Power_Trigger_Sel - * Valid only when - * PMIC_SEVERE_ERR_TRIG_VALID bit set. - * - * \param otherRailTrig Select the trigger selection for other - * rail group - * For valid values - * \ref Pmic_Power_Trigger_Sel - * Valid only when - * PMIC_OTHER_RAIL_TRIG_VALID bit set. - * - * \param socRailTrig Select the trigger selection for soc rail group - * For valid values - * \ref Pmic_Power_Trigger_Sel - * Valid only when - * PMIC_SOC_RAIL_TRIG_VALID bit set. - * - * \param mcuRailTrig Select the trigger selection for mcu rail group - * For valid values - * \ref Pmic_Power_Trigger_Sel - * Valid only when - * PMIC_MCU_RAIL_TRIG_VALID bit set. - * - * \param moderateRailTrig Select the trigger selection for Moderate Error - * For valid values - * \ref Pmic_Power_Trigger_Sel - * Valid only when - * PMIC_MODERATE_ERR_TRIG_VALID bit set - * - */ -typedef struct Pmic_PowerCommonCfg_s -{ - uint32_t validParams; - bool pgoodWindow; - bool pgoodPolarity; - bool deglitchTimeSel; - uint8_t severeErrorTrig; - uint8_t otherRailTrig; - uint8_t socRailTrig; - uint8_t mcuRailTrig; - uint8_t moderateRailTrig; -}Pmic_PowerCommonCfg_t; - -/*! - * \anchor Pmic_PowerResourceStat_s - * \brief PMIC power status. - * The PMIC power and thermal status structure. - * Note: validParams is input param for all Get APIs. other params - * except validParams is output param for Get APIs - * - * \param validParams Selection of structure parameters to be set, - * from the combination of - * \ref Pmic_PowerStatusValidParamCfg - * and the corresponding member value must be - * updated - * - * \param currentLimitLvlStat - * Used to read the output current limit status - * for LDO and buck regulators. - * This checks if output current is above current - * limit level. - * For valid values - * Valid values for TPS6594x Leo Device - * \ref Pmic_TPS6594x_Power_Current_Status - * Valid values for LP8764x HERA Device - * \ref Pmic_LP8764x_Power_Current_Status - * Valid only when - * PMIC_POWER_REGULATOR_ILIM_STAT_VALID bit set. - * - * \param underVoltageTholdStat - * Used to read the output under voltage status - * for LDO/BUCK and input under voltage status for - * VCCA/VMON. - * This is used to read if output/input voltage - * is below under-voltage threshold/level - * VCCA/VMON. - * For valid values - * Valid values for TPS6594x Leo Device - * For Power Regulator(BUCK/LDO) - * \ref Pmic_TPS6594x_Regulator_Under_Voltage_Status - * For VCCA - * \ref Pmic_TPS6594x_Vcca_Under_Voltage_Status - * Valid values for LP8764x HERA Device - * For Power Regulator(BUCK/LDO) - * \ref Pmic_LP8764x_Regulator_Under_Voltage_Status - * For VCCA/VMON - * \ref Pmic_LP8764x_Vcca_Vmon_Under_Voltage_Status - * Valid only when - * PMIC_POWER_RESOURCE_UV_STAT_VALID bit set. - * - * \param overVoltageTholdStat - * Used to read the output over voltage status - * LDO/BUCK and input over voltage status for - * VCCA/VMON. - * This is used to read if output/input voltage - * is above over-voltage threshold/level - * - * For valid values - * Valid values for TPS6594x Leo Device - * For Power Regulator(BUCK/LDO) - * \ref Pmic_TPS6594x_Regulator_Over_Voltage_Status - * For VCCA/VMON - * \ref Pmic_TPS6594x_Vcca_Over_Voltage_Status - * Valid values for LP8764x HERA Device - * For Power Regulator(BUCK/LDO) - * \ref Pmic_LP8764x_Regulator_Over_Voltage_Status - * For VCCA/VMON - * \ref Pmic_LP8764x_Vcca_Vmon_Over_Voltage_Status - * Valid only when - * PMIC_POWER_RESOURCE_OV_STAT_VALID bit set. - * - * \param overVoltageProtectionLvlStat - * Used to read the voltage level status for - * VCCA. - * This is used to read if voltage is above - * overvoltage protection level. - * For valid values - * Valid values for TPS6594x Leo Device - * \ref Pmic_TPS6594x_Vcca_Voltage_Status - * Valid values for LP8764x HERA Device - * \ref Pmic_LP8764x_Vcca_Voltage_Status - * Valid only when - * PMIC_POWER_VCCA_OV_LVL_STAT_VALID bit set - */ -typedef struct Pmic_PowerResourceStat_s -{ - uint32_t validParams; - bool currentLimitLvlStat; - bool underVoltageTholdStat; - bool overVoltageTholdStat; - bool overVoltageProtectionLvlStat; -}Pmic_PowerResourceStat_t; - -/*! - * \anchor Pmic_PowerThermalCfg_s - * \brief PMIC Power Thermal configuration structure - * Note: validParams is input param for all Set and Get APIs. other - * params except validParams is input param for Set APIs and output - * param for Get APIs - * - * \param validParams Selection of structure parameters to be set, - * from the combination of - * \ref Pmic_PowerThermalThresholdValidParamCfg - * and the corresponding member value must be - * updated. - * \param thermalWarnThold - * Set/Get the thermal Warning Threshold - * temperature value for PMIC. - * For valid values - * Valid values for TPS6594x Leo Device PG 1.0 - * \ref Pmic_TPS6594x_Pwr_Thermal_Warn_Lvl_PG_1_0 - * Valid values for TPS6594x Leo Device PG 2.0 - * \ref Pmic_TPS6594x_Pwr_Thermal_Warn_Lvl_PG_2_0 - * Valid values for LP8764x HERA Device - * \ref Pmic_LP8764x_Pwr_Thermal_Warn_Lvl - * Valid only when - * PMIC_THERMAL_WARN_VALID bit is set - * - * \param thermalShutdownThold - * Set/Get the Thermal Shutdown Threshold - * temperature value for PMIC. - * Only supported by TPS6594x Leo PMIC PG2.0 - * and LP8764x Hera PMIC PG1.0 and PG2.0 - * For valid values - * Valid values for TPS6594x Leo Device PG2.0 - * \ref Pmic_TPS6594x_Power_Thermal_Shutdown_Level - * Valid values for LP8764x Leo Device PG2.0 and - * PG1.0 - * \ref Pmic_LP8764x_Power_Thermal_Shutdown_Level - * Valid only when - * PMIC_THERMAL_SHTDWN_VALID bit of - * validParams is set. - * - */ -typedef struct Pmic_PowerThermalCfg_s -{ - uint32_t validParams; - bool thermalWarnThold; - bool thermalShutdownThold; -}Pmic_PowerThermalCfg_t; - -/*! - * \anchor Pmic_PowerThermalStat_t - * \brief PMIC Power Thermal status structure - * Note: validParams is input param for all Get APIs. other params - * except validParams is output param for Get APIs - * - * \param validParams Selection of structure parameters to be set, - * from the combination of - * \ref Pmic_PowerThermalStatValidParamCfg - * and the corresponding member value must be - * updated. - * \param thermalStateWarning - * Set/Get the Thermal warning status - * Status bit indicating that die junction - * temperature is above the thermal warning level. - * Valid only when - * PMIC_THERMAL_STAT_WARN_VALID bit is set - * - * \param thermalStateOderlyShtDwn - * Set/Get the Orderly Shutdown status - * Status bit indicating that the die junction - * temperature is above the thermal level causing - * a sequenced shutdown. - * Valid only when - * PMIC_THERMAL_STAT_ORD_SHTDWN_VALID bit is set - * - * \param thermalStateImmShtDwn - * Set/Get the Immediate Shutdown status - * Status bit indicating that the die junction - * temperature is above the thermal level causing - * an immediate shutdown - * Valid only when - * PMIC_THERMAL_STAT_IMM_SHTDWN_VALID bit is set - * - */ -typedef struct Pmic_PowerThermalStat_s -{ - uint16_t validParams; - bool thermalStateWarning; - bool thermalStateOderlyShtDwn; - bool thermalStateImmShtDwn; -}Pmic_PowerThermalStat_t; - -/*==========================================================================*/ -/* Function Declarations */ -/*==========================================================================*/ - -/** - * \brief API to set power resources configurations. - * - * Requirement: REQ_TAG(PDK-5829), REQ_TAG(PDK-5841), REQ_TAG(PDK-5848), - * REQ_TAG(PDK-9111), REQ_TAG(PDK-9163), REQ_TAG(PDK-9149), - * REQ_TAG(PDK-9159), REQ_TAG(PDK-9329) - * Design: did_pmic_power_cfg_readback - * Architecture: aid_pmic_power_cfg - * - * This function can be used to configure the various control and - * configuration parameters for BUCK/LDO/VCCA/VMON power resources and - * also used to set the various control and configuration of - * voltage monitor parameters for BUCK/LDO/VCCA/VMON power resources - * when corresponding validParam bit field is set in the - * Pmic_PowerResourceCfg_t structure. - * For more information \ref Pmic_PowerResourceCfg_t - * - * To set control and configuration params for BUCK, the application - * has to configure the below defined structure members of - * Pmic_PowerResourceCfg_t: - * rvCheckEn, buckPullDownEn, vmonEn, buckVoutRegSel, buckFpwmMode, - * buckFpwmMpMode, regulatorEn, buckCurrentLimit, - * buckVmonSlewRate, voltage_mV, pgUvThresholdLvl, - * pgOvThresholdLvl, railGrpSel - * - * To set control and configuration params for LDO, the application - * has to configure the below defined structure members of - * Pmic_PowerResourceCfg_t: - * rvCheckEn, vmonEn, regulatorEn, ldoPullDownSel, ldoSlowRampEn, - * ldoBypassModeEn, ldoRvTimeoutSel, voltage_mV, - * pgUvThresholdLvl, pgOvThresholdLvl, railGrpSel - * - * To set control and configuration params for VCCA, the application - * has to configure the below defined structure members of - * Pmic_PowerResourceCfg_t: - * vmonEn, vccaPwrGudLvl, pgUvThresholdLvl, - * pgOvThresholdLvl, railGrpSel - * - * To set control and configuration params for VMON, the application - * has to configure the below defined structure members of - * Pmic_PowerResourceCfg_t: - * rvCheckEn, vmonEn, vccaPwrGudLvl, vmonRange, - * pgUvThresholdLvl, pgOvThresholdLvl, railGrpSel, voltage_mV - * Valid only for LP8764x HERA Device - * Note: Application has to ensure configured regulator voltage is - * within the operating voltages of the connected component.If - * not configured properly then it may break the system or - * component - * Application has to ensure that external component connected to - * PMIC device will generates volatge/current/power is within the - * configured limits of PMIC device.If not configured properly - * then it may damage the PMIC device - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pwrResource [IN] PMIC Power resource - * Valid values for TPS6594x Leo Device - * \ref Pmic_Tps6594xLeo_Power_Resource. - * Valid values for LP8764x HERA Device - * \ref Pmic_Lp8764xHera_Power_Resource. - * \param pwrResourceCfg [IN] Power Resource configuration for - * BUCK/LDO/VMON/VCCA - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_powerSetPwrResourceCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - const uint16_t pwrResource, - const Pmic_PowerResourceCfg_t pwrResourceCfg); - -/** - * \brief API to get power resources configurations. - * - * Requirement: REQ_TAG(PDK-5829), REQ_TAG(PDK-5848), REQ_TAG(PDK-5850), - * REQ_TAG(PDK-9163) - * Design: did_pmic_power_cfg_readback - * Architecture: aid_pmic_power_cfg - * - * This function can be used to get the various control and - * configuration parameters for BUCK/LDO/VCCA/VMON power resources and - * also used to get the various control and configuration of - * voltage monitor parameters for BUCK/LDO/VCCA/VMON power resources - * when corresponding validParam bit field is set in the - * Pmic_PowerResourceCfg_t structure. - * For more information \ref Pmic_PowerResourceCfg_t - * - * Application can get these control and configuration params for BUCK, - * which is stored in the below defined structure members of - * Pmic_PowerResourceCfg_t: - * rvCheckEn, buckPullDownEn, vmonEn, buckVoutRegSel, buckFpwmMode, - * buckFpwmMpMode, regulatorEn, buckCurrentLimit, - * buckVmonSlewRate, voltage_mV, pgUvThresholdLvl, - * pgOvThresholdLvl, railGrpSel - * - * Application can get these control and configuration params for LDO, - * which is stored in the below defined structure members of - * Pmic_PowerResourceCfg_t: - * rvCheckEn, vmonEn, regulatorEn, ldoPullDownSel, ldoSlowRampEn, - * ldoBypassModeEn, ldoRvTimeoutSel, voltage_mV, - * pgUvThresholdLvl, pgOvThresholdLvl, railGrpSel - * - * Application can get these control and configuration params for VCCA, - * which is stored in the below defined structure members of - * Pmic_PowerResourceCfg_t: - * vmonEn, vccaPwrGudLvl, pgUvThresholdLvl, - * pgOvThresholdLvl, railGrpSel - * - * Application can get these control and configuration params for VMON, - * which is stored in the below defined structure members of - * Pmic_PowerResourceCfg_t: - * rvCheckEn, vmonEn, vccaPwrGudLvl, vmonRange, - * pgUvThresholdLvl, pgOvThresholdLvl, railGrpSel, voltage_mV - * Valid only for LP8764x HERA Device - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pwrResource [IN] PMIC Power resource - * Valid values for TPS6594x Leo Device - * \ref Pmic_Tps6594xLeo_Power_Resource. - * Valid values for LP8764x HERA Device - * \ref Pmic_Lp8764xHera_Power_Resource. - * \param pPwrResourceCfg [IN/OUT] Pointer to store Power Resource - * configuration for BUCK/LDO/VMON/VCCA - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_powerGetPwrResourceCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - const uint16_t pwrResource, - Pmic_PowerResourceCfg_t *pPwrResourceCfg); - -/** - * \brief API to Set Power configuration - * - * Requirement: REQ_TAG(PDK-5829), REQ_TAG(PDK-5848), REQ_TAG(PDK-5847), - * REQ_TAG(PDK-9111), REQ_TAG(PDK-9149), REQ_TAG(PDK-9159), - * REQ_TAG(PDK-9329) - * Design: did_pmic_power_cfg_readback, did_pmic_power_pgood_cfg_readback - * Architecture: aid_pmic_power_cfg - * - * This function is used to set the power configuration - * parameters such as selection of type of voltage monitoring, and - * polarity of the power-good signal, deglitch time select for all - * power resources when corresponding validParam bit field is set in - * the Pmic_PowerCommonCfg_t structure. - * For more information \ref Pmic_PowerCommonCfg_t - * - * Application can set the voltage monitoring for PGOOD - * by configuring the following structure members of - * Pmic_PowerCommonCfg_t: - * pgoodWindow - * - * Application can set the PGOOD signal polarity - * by configuring the following structure members of - * Pmic_PowerCommonCfg_t: - * pgoodPolarity - * - * Application can set the Deglitch time select for all power resources - * by configuring the following structure members of - * Pmic_PowerCommonCfg_t: - * deglitchTimeSel - * - * Application can set/select trigger selection for : - * severe Error, other rail group, soc rail group, mcu rail group and - * Moderate Error - * by configuring the following structure members of - * Pmic_PowerCommonCfg_t: - * severeErrorTrig, otherRailTrig, socRailTrig, mcuRailTrig - * moderateRailTrig - * - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param powerCommonCfg [IN] Power configuration. - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_powerSetCommonConfig(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_PowerCommonCfg_t powerCommonCfg); - -/** - * \brief API to Get Power configuration - * - * Requirement: REQ_TAG(PDK-5829), REQ_TAG(PDK-5848), REQ_TAG(PDK_5847) - * Design: did_pmic_power_cfg_readback, did_pmic_power_pgood_cfg_readback - * Architecture: aid_pmic_power_cfg - * - * This function is used to get the power configuration - * parameters such as selection of type of voltage monitoring, and - * polarity of the power-good signal, deglitch time select for all - * power resources when corresponding validParam bit field is set in - * the Pmic_PowerCommonCfg_t structure. - * For more information \ref Pmic_PowerCommonCfg_t - * - * Application can get the voltage monitoring for PGOOD - * which is stored in the below defined structure members of - * Pmic_PowerCommonCfg_t: - * pgoodWindow - * - * Application can get the PGOOD signal polarity - * which is stored in the below defined structure members of - * Pmic_PowerCommonCfg_t: - * pgoodPolarity - * - * Application can get the Deglitch time select for all power resources - * which is stored in the below defined structure members of - * Pmic_PowerCommonCfg_t: - * deglitchTimeSel - * - * Application can get trigger selection for : - * severe Error, other rail group, soc rail group, mcu rail group and - * Moderate Error - * which is stored in the below defined structure members of - * Pmic_PowerCommonCfg_t: - * severeErrorTrig, otherRailTrig, socRailTrig, mcuRailTrig - * moderateRailTrig - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pPowerCommonCfg [IN/OUT] Pointer to hold Power configuration. - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_powerGetCommonConfig(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_PowerCommonCfg_t *pPowerCommonCfg); - -/** - * \brief API to Set Power good configuration - * - * Requirement: REQ_TAG(PDK-5847), REQ_TAG(PDK-9111) - * Design: did_pmic_power_pgood_cfg_readback - * Architecture: aid_pmic_power_cfg - * - * This function is used to control and configure the power good - * source control. For the - * following, power good signal control can be selected: - * All supported Bucks and Ldo by the PMIC, VCCA , thermal warning, - * nRSTOUT pin and nRSTOUT_SOC pin. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pgoodSrcSel [IN] Power Good Source. - * Valid values for TPS6594x Leo Device - * \ref Pmic_Tps6594xLeo_Pgood_Source. - * Valid values for LP8764x HERA Device - * \ref Pmic_Lp8764xHera_Pgood_Source. - * \param pgoodSelType [IN] Power Good configuration. - * Valid values for TPS6594x Leo Device: - * For LDO/BUCK: - * \ref Pmic_TPS6594x_Power_Good_Regulator_Signal - * For VCCA: - * \ref Pmic_TPS6594x_Power_Good_Vcca - * For Thermal Warning - * \ref Pmic_TPS6594x_Power_Good_Thermal_Warn - * For nRSTOUT: - * \ref Pmic_TPS6594x_Power_Good_Nrstout - * For nRSTOUT_SOC: - * \ref Pmic_TPS6594x_Power_Good_Nrstout_Soc - * Valid values for LP8764x HERA Device - * For BUCK: - * \ref Pmic_LP8764x_Power_Good_Buck_Signal - * For VCCA/VMON: - * \ref Pmic_LP8764x_Power_Good_Vcca_Vmon - * For Thermal Warning: - * \ref Pmic_LP8764x_Power_Good_Thermal_Warn - * For nRSTOUT - * \ref Pmic_LP8764x_Power_Good_Nrstout - * For nRSTOUT_SOC: - * \ref Pmic_LP8764x_Power_Good_Nrstout_Soc - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_powerSetConfigPowerGood(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint16_t pgoodSrcSel, - const uint8_t pgoodSelType); - -/** - * \brief Get Power good configuration - * - * Requirement: REQ_TAG(PDK-5847) - * Design: did_pmic_power_pgood_cfg_readback - * Architecture: aid_pmic_power_cfg - * - * This function is used to get various power good conifg. - * This function also provides the pgood source control for - * different power resources and pins. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pgoodSrcSel [IN] Power Good Source. - * Valid values for TPS6594x Leo Device - * \ref Pmic_Tps6594xLeo_Pgood_Source. - * Valid values for LP8764x HERA Device - * \ref Pmic_Lp8764xHera_Pgood_Source. - * \param pPgoodSelType [OUT] Power Good configuration. - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_powerGetConfigPowerGood(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint16_t pgoodSrcSel, - uint8_t *pPgoodSelType); - -/** - * \brief API to get power resources status. - * - * Requirement: REQ_TAG(PDK-5829), REQ_TAG(PDK-5848), REQ_TAG(PDK-5850) - * Design: did_pmic_power_cfg_readback - * Architecture: aid_pmic_power_cfg - * - * This function can be used to get the status related to current limit - * , voltage over and under limit for BUCK/LDO/VCCA/VMON power - * resources when corresponding validParam bit field is set in - * the Pmic_PowerResourceStat_t - * For more information \ref Pmic_PowerResourceStat_t - * - * Application can get the current limit status that if the output - * current is above current limit level for BUCK which is stored in the - * below defined structure members of - * Pmic_PowerResourceStat_t: - * currentLimitLvlStat - * - * Application can get the output voltage status that if the - * output voltage is below undervoltage threshold for BUCK/LDO which is - * stored in the below defined structure members of - * Pmic_PowerResourceStat_t : - * underVoltageTholdStat - * For VMON/VCCA the same member is used to get the input voltage - * status that if input voltage is below undervoltage level. - * - * Application can get the output voltage status that if the - * output voltage is above overvoltage threshold for BUCK/LDO which is - * stored in the below defined structure members of - * Pmic_PowerResourceStat_t : - * overVoltageTholdStat - * For VMON/VCCA the same member is used to get the input voltage - * status that if input voltage is above overvoltage level. - * - * Application can get the VCCA voltage status that if the VCCA - * voltage is above overvoltage protection level which is stored in - * the below defined structure members of - * Pmic_PowerResourceStat_t : - * overVoltageProtectionLvlStat - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pwrResource [IN] PMIC Power resource - * Valid values for TPS6594x Leo Device - * \ref Pmic_Tps6594xLeo_Power_Resource. - * Valid values for LP8764x HERA Device - * \ref Pmic_Lp8764xHera_Power_Resource. - * \param pPwrRsrcStatCfg [IN/OUT] Pointer to store Power Resource - * Status for BUCK/LDO/VMON/VCCA - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_powerGetPwrRsrcStat(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint16_t pwrResource, - Pmic_PowerResourceStat_t *pPwrRsrcStatCfg); -/** - * \brief API to get PMIC die temperature thermal status. - * - * Requirement: REQ_TAG(PDK-5840) - * Design: did_pmic_power_thermal_cfg_readback - * Architecture: aid_pmic_power_cfg - * - * This function is used to get the thermal status of the PMIC - * (die temperature) when corresponding validParam bit field is set in - * the Pmic_PowerThermalStat_t - * For more information \ref Pmic_PowerThermalStat_t - * - * Application can get the thermal status that if the die junction - * above the thermal warning level which is stored in - * the below defined structure members of - * Pmic_PowerThermalStat_t: - * thermalStateWarning - * - * Application can get the thermal status that if the die junction - * above the thermal level causing a sequenced shutdown which is - * stored in the below defined structure members of - * Pmic_PowerThermalStat_t: - * thermalStateOderlyShtDwn - * - * Application can get the thermal status that if the die junction - * above the thermal level causing an immediate shutdown which is - * stored in the below defined structure members of - * Pmic_PowerThermalStat_t: - * thermalStateImmShtDwn - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pPwrThermalStatCfg [IN/OUT] Pointer to store Thermal - * configuration for PMIC - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_powerGetPwrThermalStat( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_PowerThermalStat_t *pPwrThermalStatCfg); - -/** - * \brief API to configure the thermal temperature threshold level for PMIC. - * - * Requirement: REQ_TAG(PDK-5840), REQ_TAG(PDK-9111), REQ_TAG(PDK-9117) - * Design: did_pmic_power_thermal_cfg_readback - * Architecture: aid_pmic_power_cfg - * - * This function is used to set the thermal threshold level for PMIC - * (die temperature) when corresponding validParam bit field is set in - * the Pmic_PowerThermalCfg_t - * For more information \ref Pmic_PowerThermalCfg_t - * - * To configure the the thermal warning threshold temperature level, - * the application has to configure the below defined structure - * member of the Pmic_PowerThermalCfg_t: - * thermalWarnThold - * - * To configure the the thermal shutdown threshold temperature level, - * the application has to configure the below defined structure member - * of the Pmic_PowerThermalCfg_t: - * thermalShutdownThold - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param thermalThreshold [IN] Thermal Configuration. - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_powerSetThermalConfig( - Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_PowerThermalCfg_t thermalThreshold); - -/** - * \brief Get the PMIC thermal threshold value function. - * - * Requirement: REQ_TAG(PDK-5840), REQ_TAG(PDK-9117) - * Design: did_pmic_power_thermal_cfg_readback - * Architecture: aid_pmic_power_cfg - * - * This function is used to get the thermal temperature threshold - * value for the PMIC when corresponding validParam bit field is set in - * the Pmic_PowerThermalCfg_t - * For more information \ref Pmic_PowerThermalCfg_t - * - * Application can get the the thermal wrarning threshold temperature - * level which is stored in the below defined structure member of - * member of the Pmic_PowerThermalCfg_t: - * thermalWarnThold - * - * Application can get the the thermal shutdown threshold temperature - * level which is stored in the below defined structure member - * of the Pmic_PowerThermalCfg_t: - * thermalShutdownThold - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pThermalThreshold [IN/OUT] Pointer to hold Thermal Cfg - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_powerGetThermalConfig(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_PowerThermalCfg_t *pThermalThreshold); - -/*! - * \brief API to enable/disable Power interrupt. - * - * Requirement: REQ_TAG(PDK-5829), REQ_TAG(PDK-5848) - * Design: did_pmic_power_cfg_readback - * Architecture: aid_pmic_power_cfg - * - * This function is used to enable/disable Power Resource Interrupts - * - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pwrResource [IN] PMIC Power resource - * Valid values for TPS6594x Leo Device - * \ref Pmic_Tps6594xLeo_Power_Resource. - * Valid values for LP8764x HERA Device - * \ref Pmic_Lp8764xHera_Power_Resource - * \param intrType [IN] Interrupt type - * Valid values for TPS6594x Leo Device - * \ref Pmic_Tps6594x_PowerInterruptType - * Valid values for LP8764x HERA Device - * \ref Pmic_LP8764x_PowerInterruptType - * \param intrEnable [IN] Enable/Disable the interrupt. - * For Vaild values: - * \ref Pmic_PowerInterruptCfg - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_powerSetPwrRsrcIntr(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint16_t pwrResource, - const uint8_t intrType, - const bool intrEnable); - -/*! - * \brief API to enable/disable Power interrupt. - * - * Requirement: REQ_TAG(PDK-5841), REQ_TAG(PDK-5840) - * Design: did_pmic_power_cfg_readback, did_pmic_power_thermal_cfg_readback - * Architecture: aid_pmic_power_cfg - * - * This function is used to enable/disable power Interrupts - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param intrType [IN] Interrupt type - * Valid values for TPS6594x Leo Device - * \ref Pmic_Tps6594x_PowerInterruptCommonType - * Valid values for LP8764x HERA Device - * \ref Pmic_LP8764x_PowerInterruptCommonType - * \param intrEnable [IN] Enable/Disable the interrupt. - * For Vaild values: - * \ref Pmic_PowerInterruptCfg - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_powerSetIntr(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t intrType, - const bool intrEnable); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif/* PMIC_POWER_H_ */ - -/* @} */ - diff --git a/include/pmic_rtc.h b/include/pmic_rtc.h deleted file mode 100644 index f0c3904..0000000 --- a/include/pmic_rtc.h +++ /dev/null @@ -1,926 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ - -/** - * \ingroup DRV_PMIC_MODULE - * \defgroup DRV_PMIC_RTC_MODULE PMIC RTC Driver API - * This Module explains PMIC RTC APIs and their usage. This Module - * has APIs to cover all PMIC RTC features. like, set/get RTC time, Alarm - * time, RTC frequncy compensation, timer interrupt period and enable or - * disable RTC and RTC/Alarm interrupts. - * - * Supported PMIC Devices for RTC Module: - * 1. TPS6594x (Leo PMIC Device) - * - * @{ - */ - -/** - * \file pmic_rtc.h - * - * \brief PMIC Driver RTC API/interface file - */ - -#ifndef PMIC_RTC_H_ -#define PMIC_RTC_H_ - -/* ========================================================================= */ -/* Include Files */ -/* ========================================================================= */ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* ========================================================================= */ -/* Macros & Typedefs */ -/* ========================================================================= */ - -/** - * \anchor Pmic_RtcTimerIntrPeriod - * \name PMIC RTC timer interrupt Period Values. - * - * @{ - */ -#define PMIC_RTC_SECOND_INTR_PERIOD (0x0U) -#define PMIC_RTC_MINUTE_INTR_PERIOD (0x1U) -#define PMIC_RTC_HOUR_INTR_PERIOD (0x2U) -#define PMIC_RTC_DAY_INTR_PERIOD (0x3U) -/* @} */ - -/** - * \anchor Pmic_RtcAlramIntrEnable - * \name PMIC RTC alarm interrupt Enable/Disable - * - * @{ - */ -#define PMIC_RTC_ALARM_INTR_ENABLE 1U -#define PMIC_RTC_ALARM_INTR_DISABLE 0U -/* @} */ - -/** - * \anchor Pmic_RtcTimerIntrEnable - * \name PMIC RTC timer interrupt Enable/Disable - * - * @{ - */ -#define PMIC_RTC_TIMER_INTR_ENABLE 1U -#define PMIC_RTC_TIMER_INTR_DISABLE 0U -/* @} */ - -/** - * \anchor Pmic_RtcTimeMode - * \name PMIC RTC Time Mode - * - * @{ - */ -#define PMIC_RTC_24_HOUR_MODE (0x0U) -#define PMIC_RTC_12_HOUR_MODE (0x1U) -/* @} */ - -/** - * \anchor Pmic_RtcMeridienMode - * \name PMIC RTC Meridien Mode - * - * @{ - */ -#define PMIC_RTC_AM_MODE (0x0U) -#define PMIC_RTC_PM_MODE (0x1U) -/* @} */ - -/** - * \anchor Pmic_RtcState - * \name PMIC RTC State to START/STOP RTC - * - * @{ - */ -#define PMIC_RTC_STOP 0U -#define PMIC_RTC_START 1U -/* @} */ - -/** - * \anchor Pmic_RtcStatus - * \name PMIC RTC Current Status - * - * @{ - */ -#define PMIC_RTC_STATUS_FROZEN 0U -#define PMIC_RTC_STATUS_RUNNING 1U -/* @} */ - -/** - * \anchor Pmic_RtcResetStatus - * \name PMIC RTC Reset Status - * - * @{ - */ -/** \brief RESET_STATUS_RTC reset value when RTC domain is powered down */ -#define PMIC_RTC_RST_STATUS_RESET_VAL (0x0U) - /** \brief Used to set RESET_STATUS_RTC register bit field */ -#define PMIC_RTC_RST_STATUS_SET_VAL (0x1U) -/* @} */ - -/** - * \anchor Pmic_RtcPowerUpStatus - * \name PMIC RTC power-up Status - * - * @{ - */ - /** \brief Used to clear POWERUP_STATUS register bit field */ -#define PMIC_RTC_POWERUP_STATUS_CLR_VAL (0x0U) -/** \brief POWERUP_STATUS reset value when RTC domain is powered down */ -#define PMIC_RTC_POWERUP_STATUS_RESET_VAL (0x1U) -/* @} */ - -/** - * \anchor Pmic_RtcWeekDay - * \name PMIC RTC Week Days - * - * @{ - */ -#define PMIC_RTC_WEEKDAY_SUNDAY (1U) -#define PMIC_RTC_WEEKDAY_MONDAY (2U) -#define PMIC_RTC_WEEKDAY_TUESDAY (3U) -#define PMIC_RTC_WEEKDAY_WEDNESDAY (4U) -#define PMIC_RTC_WEEKDAY_THURSDAY (5U) -#define PMIC_RTC_WEEKDAY_FRIDAY (6U) -#define PMIC_RTC_WEEKDAY_SATURDAY (7U) -/* @} */ - -/** - * \anchor Pmic_RtcMonth - * \name PMIC RTC Months - * - * List of calendar months. - * - * @{ - */ -#define PMIC_RTC_MONTH_JAN (1U) -#define PMIC_RTC_MONTH_FEB (2U) -#define PMIC_RTC_MONTH_MAR (3U) -#define PMIC_RTC_MONTH_APR (4U) -#define PMIC_RTC_MONTH_MAY (5U) -#define PMIC_RTC_MONTH_JUN (6U) -#define PMIC_RTC_MONTH_JUL (7U) -#define PMIC_RTC_MONTH_AUG (8U) -#define PMIC_RTC_MONTH_SEP (9U) -#define PMIC_RTC_MONTH_OCT (10U) -#define PMIC_RTC_MONTH_NOV (11U) -#define PMIC_RTC_MONTH_DEC (12U) -/* @} */ - -/** - * \anchor Pmic_Rtc32KCounterCfg - * \name PMIC RTC 32k Counter Configuration - * - * @{ - */ -/** \brief Set 32K counter with RTC compensation values */ -#define PMIC_RTC_32K_COUNTER_COMP_VAL_SET (0x1U) -/* @} */ - -/** - * \anchor Pmic_RtcCrystalOscCfg - * \name Selects PMIC RTC Crystal Oscillator Configuration - * - * @{ - */ -#define PMIC_RTC_CRYSTAL_OSC_DISABLE 0U -#define PMIC_RTC_CRYSTAL_OSC_ENABLE 1U -/* @} */ - - -/** - * \anchor Pmic_RtcRoundTime - * \name PMIC RTC round the time to closest minute - * - * @{ - */ -/** \brief Round the time to closest minute */ -#define PMIC_RTC_ROUND_TIME_SET (0x1U) -/* @} */ - -/** - * \anchor Pmic_RtcTimeDateRegSel - * \name PMIC RTC Time Date Register Selection - * - * @{ - */ -/** \brief RTC register read from Dynamic registers */ -#define PMIC_RTC_DYNAMIC_REG_SEL (0x0U) -/** \brief RTC register read from Static Shadowed registers */ -#define PMIC_RTC_STATIC_SHADOWED_REG_SEL (0x1U) -/* @} */ - -/** - * \anchor Pmic_RtcCrystalOscType - * \name Selects PMIC RTC Crystal Oscillator Type - * - * @{ - */ -/** \brief Selects Crystal Oscillator type as 6PF */ -#define PMIC_RTC_CRYSTAL_OSC_TYPE_6PF (0x0U) -/** \brief Selects Crystal Oscillator type as 9PF */ -#define PMIC_RTC_CRYSTAL_OSC_TYPE_9PF (0x1U) -/** \brief Selects Crystal Oscillator type as 12.5PF */ -#define PMIC_RTC_CRYSTAL_OSC_TYPE_12_5PF (0x2U) -/* @} */ - -/** - * \anchor Pmic_RtcRstStatusType - * \name Selects PMIC RTC Reset Status Type - * - * @{ - */ -/** \brief Selects RTC Reset Status */ -#define PMIC_RTC_RST_STATUS (0x0U) -/** \brief Selects RTC Powerup Status */ -#define PMIC_RTC_POWERUP_STATUS (0x1U) -/* @} */ - -/** - * \anchor Pmic_RtcTimeValidParamCfg - * \name PMIC RTC Time strcture Param Bit Positions - * - * @{ - */ - /** \brief validParams value used to set/get Value to represent the Seconds */ -#define PMIC_RTC_TIME_CFG_SEC_VALID (0U) -/** \brief validParams value used to set/get Value to represent the Minutes */ -#define PMIC_RTC_TIME_CFG_MIN_VALID (1U) -/** \brief validParams value used to set/get Value to represent the Hours */ -#define PMIC_RTC_TIME_CFG_HRS_VALID (2U) -/** \brief validParams value used to set/get Time Mode */ -#define PMIC_RTC_TIME_CFG_TIMEMODE_VALID (3U) -/** \brief validParams value used to set/get Maridian Mode */ -#define PMIC_RTC_TIME_CFG_MERIDIAN_VALID (4U) -/* @} */ - -/** - * \anchor Pmic_RtcTimeValidParamBits - * \name PMIC RTC Time Structure Param Bit shift values - * - * Application can use below shifted values to set the validParam - * member defined in Pmic_RtcTime_t structure - * - * @{ - */ -#define PMIC_RTC_TIME_CFG_SEC_VALID_SHIFT \ - (1U << PMIC_RTC_TIME_CFG_SEC_VALID) -#define PMIC_RTC_TIME_CFG_MIN_VALID_SHIFT \ - (1U << PMIC_RTC_TIME_CFG_MIN_VALID) -#define PMIC_RTC_TIME_CFG_HRS_VALID_SHIFT \ - (1U << PMIC_RTC_TIME_CFG_HRS_VALID) -#define PMIC_RTC_TIME_CFG_TIMEMODE_VALID_SHIFT \ - (1U << PMIC_RTC_TIME_CFG_TIMEMODE_VALID) -#define PMIC_RTC_TIME_CFG_MERIDIAN_VALID_SHIFT \ - (1U << PMIC_RTC_TIME_CFG_MERIDIAN_VALID) -/* @} */ - -/** - * \anchor Pmic_RtcDateValidParamCfg - * \name PMIC RTC Date strcture Param Bit Positions - * - * @{ - */ - /** \brief validParams value used to set/get Value to represent the day */ -#define PMIC_RTC_DATE_CFG_DAY_VALID (0U) -/** \brief validParams value used to set/get Value to represent the Month */ -#define PMIC_RTC_DATE_CFG_MONTH_VALID (1U) -/** \brief validParams value used to set/get Value to represent the Year*/ -#define PMIC_RTC_DATE_CFG_YEAR_VALID (2U) -/** \brief validParams value used to set/get Value to represent the weekday of - * the week */ -#define PMIC_RTC_DATE_CFG_WEEKDAY_VALID (3U) -/* @} */ - -/** - * \anchor Pmic_RtcDateValidParamBits - * \name PMIC RTC Date Structure Param Bit shift values - * - * Application can use below shifted values to set the validParam - * member defined in Pmic_RtcDate_t structure - * - * @{ - */ -#define PMIC_RTC_DATE_CFG_DAY_VALID_SHIFT \ - (1U << PMIC_RTC_DATE_CFG_DAY_VALID) -#define PMIC_RTC_DATE_CFG_MONTH_VALID_SHIFT \ - (1U << PMIC_RTC_DATE_CFG_MONTH_VALID) -#define PMIC_RTC_DATE_CFG_YEAR_VALID_SHIFT \ - (1U << PMIC_RTC_DATE_CFG_YEAR_VALID) -#define PMIC_RTC_DATE_CFG_WEEKDAY_VALID_SHIFT \ - (1U << PMIC_RTC_DATE_CFG_WEEKDAY_VALID) -/* @} */ - -/** - * \anchor Pmic_RtcRstStatusValidParam - * \name PMIC RTC Status strcture Param Bit Positions - * - * @{ - */ - /** \brief validParams value used to get reset status of RTC */ -#define PMIC_RTC_RESET_STATUS_VALID (0U) -/** \brief validParams value used to get power-up status of RTC */ -#define PMIC_RTC_POWERUP_STATUS_VALID (1U) -/* @} */ - -/** - * \anchor Pmic_RtcRstStatusValidParamBits - * \name PMIC RTC Status Structure Param Bit shift values - * - * Application can use below shifted values to set the validParam - * member defined in Pmic_RtcRstStatus_t structure - * - * @{ - */ -#define PMIC_RTC_RESET_STATUS_VALID_SHIFT \ - (1U << PMIC_RTC_RESET_STATUS_VALID) -#define PMIC_RTC_POWERUP_STATUS_VALID_SHIFT \ - (1U << PMIC_RTC_POWERUP_STATUS_VALID) -/* @} */ - -/** - * \anchor Pmic_RtcConfigValidParamCfg - * \name PMIC RTC configuration strcture Param Bit Positions - * - * @{ - */ -/** \brief validParams value used to set/get configuration of 32K counter with - * compensation values */ -#define PMIC_RTC_CFG_32K_COUNTER_COMP_VAL_SET_VALID (0U) -/** \brief validParams value used to set/get configuration of RTC time config to - * Round the time to closest minute */ -#define PMIC_RTC_CFG_RTC_TIME_ROUND_30S_SET_VALID (1U) -/** \brief validParams value used to set/get to Enable/Disable Crystal - * Oscillator */ -#define PMIC_RTC_CFG_CRYSTAL_OSC_EN_VALID (2U) -/** \brief validParams value used to set/get to Select RTC Time and Date - * Register read from Dynamic or Static Shadowed Registers */ -#define PMIC_RTC_CFG_TIME_DATE_REG_SEL_VALID (3U) -/** \brief validParams value used to set/get to Select Crystal Oscillator Type - */ -#define PMIC_RTC_CFG_CRYSTAL_OSC_TYPE_VALID (4U) -/* @} */ - -/** - * \anchor Pmic_RtcConfigValidParamBits - * \name PMIC RTC Configuration Structure Param Bit shift values - * - * Application can use below shifted values to set the validParam - * member defined in Pmic_RtcCfg_t structure - * - * @{ - */ - -#define PMIC_RTC_CFG_32K_COUNTER_COMP_VAL_SET_VALID_SHIFT \ - (1U << PMIC_RTC_CFG_32K_COUNTER_COMP_VAL_SET_VALID) -#define PMIC_RTC_CFG_RTC_TIME_ROUND_30S_SET_VALID_SHIFT \ - (1U << PMIC_RTC_CFG_RTC_TIME_ROUND_30S_SET_VALID) -#define PMIC_RTC_CFG_CRYSTAL_OSC_EN_VALID_SHIFT \ - (1U << PMIC_RTC_CFG_CRYSTAL_OSC_EN_VALID) -#define PMIC_RTC_CFG_TIME_DATE_REG_SEL_VALID_SHIFT \ - (1U << PMIC_RTC_CFG_TIME_DATE_REG_SEL_VALID) -#define PMIC_RTC_CFG_CRYSTAL_OSC_TYPE_VALID_SHIFT \ - (1U << PMIC_RTC_CFG_CRYSTAL_OSC_TYPE_VALID) -/* @} */ - -/*==========================================================================*/ -/* Structures and Enums */ -/*==========================================================================*/ - - /*! - * \brief RTC time configuration. - * The Pmic_RtcTime_s structure contains set of time parameters to - * set/get the RTC time. - * - * \param validParams Validate params Bits. - * Depending on the parameters want to get/set, - * corresponding bits should be set in validParam. - * For valid values: - * \ref Pmic_RtcTimeValidParamBits - * \param seconds Value to represent Seconds. - * Valid only when PMIC_RTC_TIME_CFG_SEC_VALID - * bit of validParams is set. - * \param minutes Value to represent Minutes. - * Valid only when PMIC_RTC_TIME_CFG_MIN_VALID - * bit of validParams is set. - * \param hour Value to represent Hours. - * Valid only when PMIC_RTC_TIME_CFG_HRS_VALID - * bit of validParams is set. - * \param timeMode Value to represent Time Mode. - * For valid values: \ref Pmic_RtcTimeMode. - * Valid only when - * PMIC_RTC_TIME_CFG_TIMEMODE_VALID bit of - * validParams is set. - * \param meridianMode Value to represent Maridian Mode. - * For valid values: \ref Pmic_RtcMeridienMode. - * Valid only when - * PMIC_RTC_TIME_CFG_MERIDIAN_VALID bit of - * validParams is set. - */ -typedef struct Pmic_RtcTime_s -{ - uint32_t validParams; - uint8_t seconds; - uint8_t minutes; - uint8_t hour; - uint8_t timeMode; - uint8_t meridianMode; -}Pmic_RtcTime_t; - -/*! - * \brief RTC Date configuration. - * The Pmic_RtcDate_s structure contains set of date parameters to - * set/get the RTC Date. - * - * \param validParams Validate params Bits. - * Depending on the parameters want to get/set, - * corresponding bits should be set in validParam. - * \param day Value to represent the day. - * Valid only when PMIC_RTC_DATE_CFG_DAY_VALID - * bit of validParams is set. - * \param month Value to represent the Month. - * For valid values \ref Pmic_RtcMonth. - * Valid only when PMIC_RTC_DATE_CFG_MONTH_VALID - * bit of validParams is set. - * \param year Value to represent the Year. - * Valid only when PMIC_RTC_DATE_CFG_YEAR_VALID - * bit of validParams is set. - * \param weekday Value to represent the weekday of the week. - * For Valid Values: \ref Pmic_RtcWeekDay. - * Valid only when - * PMIC_RTC_DATE_CFG_WEEKDAY_VALID - * bit of validParams is set. - * - */ -typedef struct Pmic_RtcDate_s -{ - uint32_t validParams; - uint8_t day; - uint8_t month; - uint16_t year; - uint8_t weekday; -}Pmic_RtcDate_t; - -/*! - * \brief RTC Reset Status - * The Pmic_RtcRstStatus_s structure contains status of RTC Reset and - * power-up status. - * Note: validParams is input param for all Get APIs. other params - * except validParams is output param for Get APIs - * - * \param validParams Validate params Bits. - * Depending on the parameters want to get, - * corresponding bits should be set in validParam. - * For Valid values - * \ref Pmic_RtcRstStatusValidParam - * \param rtcRstStatus Value of reset status of RTC. - * Valid only when PMIC_RTC_RESET_STATUS_VALID - * bit of validParams is set. - * For valid values - * \ref Pmic_RtcResetStatus - * \param powerupStatus Value of power-up status of RTC. - * Valid only when PMIC_RTC_POWERUP_STATUS_VALID - * bit of validParams is set. - * For valid values - * \ref Pmic_RtcPowerUpStatus - */ -typedef struct Pmic_RtcRstStatus_s -{ - uint32_t validParams; - bool rtcRstStatus; - bool powerupStatus; -}Pmic_RtcRstStatus_t; - -/*! - * \brief RTC configuration - * The Pmic_RtcRstStatus_s structure contains status of RTC Reset and - * power-up status. - * Note: validParams is input param for all Set and Get APIs. other - * params except validParams is input param for Set APIs and output - * param for Get APIs - * - * \param validParams Validate params Bits. - * Depending on the parameters want to get, - * corresponding bits should be set in validParam - * For Valid values - * \ref Pmic_RtcConfigValidParamCfg - * \param crystalOScEn Enable/Disable Crystal Oscillator - * Valid only when - * PMIC_RTC_CFG_CRYSTAL_OSC_EN_VALID - * bit of validParams is set. - * For valid values - * \ref Pmic_RtcCrystalOscCfg - * \param set32KCounterCompVal Set 32K counter with compensation values. - * Application can configure this only when - * RTC is frozen - * Valid only when - * PMIC_RTC_CFG_32K_COUNTER_COMP_VAL_SET_VALID - * bit of validParams is set. - * For valid values - * \ref Pmic_Rtc32KCounterCfg - * \param setRtcTimeRound30s Set RTC time config to Round the time to - * closest minute - * Valid only when - * PMIC_RTC_CFG_RTC_TIME_ROUND_30S_SET_VALID - * bit of validParams is set. - * For valid values - * \ref Pmic_RtcRoundTime - * \param timeDateRegSel Select RTC Time and Date Register read from - * Dynamic or Static Shadowed Registers. - * Valid only when - * PMIC_RTC_CFG_TIME_DATE_REG_SEL_VALID - * bit of validParams is set. - * For valid values - * \ref Pmic_RtcTimeDateRegSel - * \param crystalOScType Select Crystal Oscillator Type - * Valid only when - * PMIC_RTC_CFG_CRYSTAL_OSC_TYPE_VALID - * bit of validParams is set. - * For valid values - * \ref Pmic_RtcCrystalOscType - */ -typedef struct Pmic_RtcCfg_s -{ - uint32_t validParams; - bool crystalOScEn; - uint8_t set32KCounterCompVal; - uint8_t setRtcTimeRound30s; - uint8_t timeDateRegSel; - uint8_t crystalOScType; -}Pmic_RtcCfg_t; - -/*==========================================================================*/ -/* Function Declarations */ -/*==========================================================================*/ - -/*! - * \brief API to Set the alarm Time and Date to PMIC RTC. - * - * Requirement: REQ_TAG(PDK-5855) - * Design: did_pmic_rtc_cfg_readback - * Architecture: aid_pmic_rtc_cfg - * - * This function is used to set the alarm Date and Time parameters - * depending upon the bit fields set in validParams of Time and Date - * structures in RTC of PMIC Device. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param timeCfg [IN] PMIC RTC time configuration - * \param dateCfg [IN] PMIC RTC date configuration - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes. - */ -int32_t Pmic_rtcSetAlarmInfo(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_RtcTime_t timeCfg, - const Pmic_RtcDate_t dateCfg); - -/*! - * \brief API to Get the alarm Time and Date from PMIC RTC function. - * - * Requirement: REQ_TAG(PDK-5855) - * Design: did_pmic_rtc_cfg_readback - * Architecture: aid_pmic_rtc_cfg - * - * This function is used to Get the alarm date and time parameters - * depending upon the bit fields set in validParams of Time and Date - * structures in RTC of the PMIC Device. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pTimeCfg [OUT] PMIC RTC time configuration - * \param pDateCfg [OUT] PMIC RTC date configuration - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_rtcGetAlarmInfo(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_RtcTime_t *pTimeCfg, - Pmic_RtcDate_t *pDateCfg); - -/*! - * \brief API to Set the timer interrupt Period to PMIC RTC. - * - * Requirement: REQ_TAG(PDK-5855) - * Design: did_pmic_rtc_cfg_readback - * Architecture: aid_pmic_rtc_cfg - * - * This function is used to set the timer interrupt Period to - * the RTC present in the PMIC. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param timerPeriod [IN] Timer interrupt periods. - * For Valid values: - * \ref Pmic_RtcTimerIntrPeriod. - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_rtcSetTimerPeriod(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t timerPeriod); - -/*! - * \brief API to Get the timer interrupt period from PMIC RTC. - * - * Requirement: REQ_TAG(PDK-5855) - * Design: did_pmic_rtc_cfg_readback - * Architecture: aid_pmic_rtc_cfg - * - * This function is used to get the timer interrupt period from RTC - * present in the PMIC. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pTimerPeriod [OUT] Timer interrupt period - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_rtcGetTimerPeriod(Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t *pTimerPeriod); - -/*! - * \brief API to Set the RTC Time and Date to PMIC RTC. - * - * Requirement: REQ_TAG(PDK-5855) - * Design: did_pmic_rtc_cfg_readback - * Architecture: aid_pmic_rtc_cfg - * - * This function is used to set the RTC Date and Time parameters - * depending upon the bit fields set in validParams of Time and Date - * structures in RTC of PMIC Device. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param timeCfg [IN] PMIC RTC time configuration - * \param dateCfg [IN] PMIC RTC date configuration - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes. - */ -int32_t Pmic_rtcSetTimeDateInfo(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_RtcTime_t timeCfg, - const Pmic_RtcDate_t dateCfg); - -/*! - * \brief API to Get the RTC Time and Date from PMIC RTC function. - * - * Requirement: REQ_TAG(PDK-5855) - * Design: did_pmic_rtc_cfg_readback - * Architecture: aid_pmic_rtc_cfg - * - * This function is used to Get the RTC date and time parameters - * depending upon the bit fields set in validParams of Time and Date - * structures in RTC of the PMIC Device. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pTimeCfg [OUT] PMIC RTC time configuration - * \param pDateCfg [OUT] PMIC RTC date configuration - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_rtcGetTimeDateInfo(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_RtcTime_t *pTimeCfg, - Pmic_RtcDate_t *pDateCfg); - -/*! - * \brief API to Set the RTC frequency compensation value. - * - * Requirement: REQ_TAG(PDK-5855) - * Design: did_pmic_rtc_cfg_readback - * Architecture: aid_pmic_rtc_cfg - * - * This function is used to set the frequency compensation - * value in the RTC of the PMIC Device. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param compensation [IN] PMIC RTC frequency compensation value - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_rtcSetFreqComp(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint16_t compensation); - -/*! - * \brief API to Get the RTC frequency compensation value. - * - * Requirement: REQ_TAG(PDK-5855) - * Design: did_pmic_rtc_cfg_readback - * Architecture: aid_pmic_rtc_cfg - * - * This function is used to get the frequency compensation - * value from the RTC of the PMIC Device. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pCompensation [OUT] Pointer to store frequency compensation - * value - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_rtcGetFreqComp(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t *pCompensation); - -/*! - * \brief API to Enable/Disable the RTC. - * - * Requirement: REQ_TAG(PDK-5855) - * Design: did_pmic_rtc_cfg_readback - * Architecture: aid_pmic_rtc_cfg - * - * This function is used to Start/Stop the RTC present in PMIC. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param enableRtc [IN] Parameter to start/stop RTC. - * Valid values: \ref Pmic_RtcState - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_rtcEnable(Pmic_CoreHandle_t *pPmicCoreHandle, - const bool enableRtc); - -/*! - * \brief API to read RTC status which defines RTC is started or not - * - * Requirement: REQ_TAG(PDK-9155) - * Design: did_pmic_rtc_status - * Architecture: aid_pmic_rtc_cfg - * - * This function is read RTC status which defines RTC is started or not - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pRtcstatus [IN] Pointer to store the RTC status which - * defines RTC is started or not - * Valid values: \ref Pmic_RtcStatus - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_rtcGetStatus(Pmic_CoreHandle_t *pPmicCoreHandle, - bool *pRtcstatus); - -/*! - * \brief API to Enable/Disable the RTC Timer Interrupt. - * - * Requirement: REQ_TAG(PDK-5855), REQ_TAG(PDK-5831) - * Design: did_pmic_rtc_cfg_readback, did_pmic_lpstandby_wkup_cfg - * Architecture: aid_pmic_rtc_cfg - * - * This function is used to enable/disable the RTC timer interrupt. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param enableIntr [IN] Parameter to enable/disable Timer - * Interrupt. - * For Valid values: - * \ref Pmic_RtcTimerIntrEnable - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_rtcEnableTimerIntr(Pmic_CoreHandle_t *pPmicCoreHandle, - const bool enableIntr); - -/*! - * \brief API to Enable/Disable the RTC Alarm Interrupt. - * - * Requirement: REQ_TAG(PDK-5855), REQ_TAG(PDK-5831) - * Design: did_pmic_rtc_cfg_readback, did_pmic_lpstandby_wkup_cfg - * Architecture: aid_pmic_rtc_cfg - * - * This function is used to enable/disable the RTC alarm interrupt. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param enableIntr [IN] Parameter to enable/disable Alarm - * Interrupt. - * For Valid values: - * \ref Pmic_RtcAlramIntrEnable - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_rtcEnableAlarmIntr(Pmic_CoreHandle_t *pPmicCoreHandle, - const bool enableIntr); - -/*! - * \brief API to Get the Reset status of RTC. - * - * Requirement: REQ_TAG(PDK-9145), REQ_TAG(PDK-9142) - * Design: did_pmic_rtc_rst_status - * Architecture: aid_pmic_rtc_cfg - * - * This function is used to get the Reset status of the RTC - * depending on the bit fields set in validParams of - * struct Pmic_RtcRstStatus_t structures. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pRtcRstStatus [IN/OUT] Pointer to hold RTC Reset status. - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_rtcGetRstStatus(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_RtcRstStatus_t *pRtcRstStatus); - -/*! - * \brief API to clear the Reset status of RTC. - * - * Requirement: REQ_TAG(PDK-9142), REQ_TAG(PDK-9145) - * Design: did_pmic_rtc_clr_rst_status - * Architecture: aid_pmic_rtc_cfg - * - * This function is used to clear the Reset status of the RTC - * depending on the Pmic_RtcRstStatusType - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param rtcRstStatType [IN] RTC Reset Status Type - * For Valid values: - * \ref Pmic_RtcRstStatusType - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_rtcClrRstStatus(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t rtcRstStatType); - -/*! - * \brief API to Set PMIC RTC Configuration - * - * Requirement: REQ_TAG(PDK-9141), REQ_TAG(PDK-9135), REQ_TAG(PDK-9111) - * Design: did_pmic_rtc_cfg_readback - * Architecture: aid_pmic_rtc_cfg - * - * This function is used to set RTC configuration depending upon the - * bit fields set in validParams of Pmic_RtcCfg_t structure. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param rtcCfg [IN] Set required RTC configuration - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes. - */ -int32_t Pmic_rtcSetConfiguration(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_RtcCfg_t rtcCfg); - -/*! - * \brief API to Get PMIC RTC Configuration - * - * Requirement: REQ_TAG(PDK-9141), REQ_TAG(PDK-9135) - * Design: did_pmic_rtc_cfg_readback - * Architecture: aid_pmic_rtc_cfg - * - * This function is used to Get RTC configuration depending upon the - * bit fields set in validParams of Pmic_RtcCfg_t structure. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pRtcCfg [IN/OUT] Pointer to store required RTC - * configuration - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes. - */ -int32_t Pmic_rtcGetConfiguration(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_RtcCfg_t *pRtcCfg); - - -#ifdef __cplusplus -} - -#endif /* __cplusplus */ - -#endif /* PMIC_RTC_H_ */ - -/* @} */ diff --git a/include/pmic_types.h b/include/pmic_types.h deleted file mode 100644 index de10e1a..0000000 --- a/include/pmic_types.h +++ /dev/null @@ -1,188 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ - -/** - * \addtogroup DRV_PMIC_COMMON_MODULE - * - * @{ - */ - -/** - * \file pmic_types.h - * - * \brief PMIC Driver Common data types file. - */ - -#ifndef PMIC_TYPES_H_ -#define PMIC_TYPES_H_ - -/* ========================================================================= */ -/* Include Files */ -/* ========================================================================= */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif -/* ========================================================================= */ -/* Macros & Typedefs */ -/* ========================================================================= */ - -/** - * \anchor Pmic_CrcEnableCfg - * \name PMIC CRC Enable/Disable Configuration - * - * @{ - */ -#define PMIC_CRC_DISABLE (0U) -#define PMIC_CRC_ENABLE (1U) -/* @} */ - - -/*==========================================================================*/ -/* Structures and Enums */ -/*==========================================================================*/ -/*! - * \brief PMIC Subsystems - * - * \param gpioEnable PMIC GPIO SubSystem - * \param rtcEnable PMIC RTC SubSystem - * \param wdgEnable PMIC Watchdog SubSystem - * \param buckEnable PMIC BUCK SubSystem - * \param ldoEnable PMIC LDO SubSystem - * \param esmEnable PMIC ESM SubSystem - */ -typedef struct Pmic_DevSubSysInfo_s -{ - bool gpioEnable; - bool rtcEnable; - bool wdgEnable; - bool buckEnable; - bool ldoEnable; - bool esmEnable; -} Pmic_DevSubSysInfo_t; - -/*! - * \brief PMIC Interface Handle. - * Contains various PMIC driver instance specific information. like, - * the PMIC device type, PMIC interface mode, Slave addresses, - * various application defined API function pointers for - * LLD and Critical sections. - * - * Note: Pmic_init() configures the Pmic Handle information and provide - * pmic core handle to user application. User should ensure that - * application shall not modify the PMIC Handle information. - * - * \param pPmic_SubSysInfo PMIC driver subsystem information - * \param drvInitStatus PMIC Driver initialization status. - * Valid driver status: - * For Main instance: - * DRV_INIT_STATUS | PMIC_MAIN_INST. - * For QA instance: - * DRV_INIT_STATUS | PMIC_QA_INST. - * \param pmicDeviceType PMIC device type - * \param pmicDevRev PMIC device revision ID - * \param pmicDevSiliconRev PMIC device silicon revision ID - * \param commMode Interface mode - Single I2C, Dual - * I2C or SPI. - * \param slaveAddr Main Interface Slave Address - * \param qaSlaveAddr WDOG QA Interface Slave Address - * \param nvmSlaveAddr NVM Slave Address which provides only - * read access to CRC status of Page-1 - * Application shall use this slave - * address to read only CRC status. - * Application shall not do - * any write operations using this slave - * address - * \param i2c1Speed I2C1 Speed when commMode is Single or - * Dual I2C - * \param i2c2Speed I2C2 Speed when commMode is Dual I2C - * \param crcEnable Parameter to enable/disable CRC - * For Valid Values: - * \ref Pmic_CrcEnableCfg - * \param pFnPmicCommIoRead Pointer to I2C/SPI Comm LLD Read - * Function - * \param pFnPmicCommIoWrite Pointer to I2C/SPI Comm LLD Write - * Function - * \param pCommHandle Pointer to Handle for I2C1/SPI - * Main Interface - * \param pQACommHandle Pointer to Handle for I2C2-QA - * Interface - * \param pFnPmicCritSecStart Pointer to Pmic Critical-Section - * Start Function - * \param pFnPmicCritSecStop Pointer to Pmic Critical-Section - * Stop Function - */ -typedef struct Pmic_CoreHandle_s { - const Pmic_DevSubSysInfo_t *pPmic_SubSysInfo; - uint32_t drvInitStatus; - uint8_t pmicDeviceType; - uint8_t pmicDevRev; - uint8_t pmicDevSiliconRev; - uint8_t commMode; - uint8_t slaveAddr; - uint8_t qaSlaveAddr; - uint8_t nvmSlaveAddr; - uint8_t i2c1Speed; - uint8_t i2c2Speed; - bool crcEnable; - void *pCommHandle; - void *pQACommHandle; - int32_t (*pFnPmicCommIoRead)(struct Pmic_CoreHandle_s *pmicCorehandle, - uint8_t instType, - uint16_t regAddr, - uint8_t *pRxBuf, - uint8_t bufLen); - int32_t (*pFnPmicCommIoWrite)(struct Pmic_CoreHandle_s *pmicCorehandle, - uint8_t instType, - uint16_t regAddr, - uint8_t *pTxBuf, - uint8_t bufLen); - void (*pFnPmicCritSecStart)(void); - void (*pFnPmicCritSecStop)(void); -} Pmic_CoreHandle_t; - -/*==========================================================================*/ -/* Function Declarations */ -/*==========================================================================*/ - -#ifdef __cplusplus -} - -#endif /* __cplusplus */ - -#endif /* PMIC_TYPES_H_ */ - -/* @} */ diff --git a/include/pmic_wdg.h b/include/pmic_wdg.h deleted file mode 100644 index 5ffb9ea..0000000 --- a/include/pmic_wdg.h +++ /dev/null @@ -1,802 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ - -/** - * \ingroup DRV_PMIC_MODULE - * \defgroup DRV_PMIC_WDG_MODULE PMIC WatchDog Driver API - * This Module explains about PMIC WatchDog driver parameters and - * APIs usage. - * PMIC WatchDog Driver module covers all WatchDog features APIs. - * Like, set/get watchdog configuration, Enable or disable watchdog, - * Get watchdog error status, Get watchdog failcount, start watchdog - * QA sequence and start watchdog trigger mode. - * - * Supported PMIC devices for Watchdog Module: - * 1. TPS6594x (Leo PMIC Device) - * 2. LP8764x (Hera PMIC Device) - * - * @{ - */ - -/** - * \file pmic_wdg.h - * - * \brief PMIC Low Level Driver API/interface file for WatchDog APIs - */ - -#ifndef PMIC_WDG_H_ -#define PMIC_WDG_H_ - -/* ========================================================================== */ -/* Include Files */ -/* ========================================================================== */ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* ========================================================================== */ -/* Macros & Typedefs */ -/* ========================================================================== */ - -/** - * \anchor Pmic_WdgEnDisableMode - * \name PMIC watchdog timer En/Disable Modes - * - * @{ - */ -#define PMIC_WDG_DISABLE (bool)false -#define PMIC_WDG_ENABLE (bool)true -/* @} */ - -/** - * \anchor Pmic_WdgResetEnDisable - * \name PMIC watchdog timer warm reset En/Disable - * - * @{ - */ -#define PMIC_WDG_RESET_DISABLE (0x0U) -#define PMIC_WDG_RESET_ENABLE (0x1U) -/* @} */ - -/** - * \anchor Pmic_WdgReturnLongWinEnDisable - * \name PMIC watchdog timer Return Long Window En/Disable - * - * @{ - */ -#define PMIC_WDG_RETLONGWIN_DISABLE (bool)false -#define PMIC_WDG_RETLONGWIN_ENABLE (bool)true -/* @} */ - -/** - * \anchor Pmic_WdgPwrHoldEnDisable - * \name PMIC watchdog timer Power Hold En/Disable - * - * @{ - */ -#define PMIC_WDG_PWRHOLD_DISABLE (0x0U) -#define PMIC_WDG_PWRHOLD_ENABLE (0x1U) -/* @} */ - -/** - * \anchor Pmic_WdgTriggerQAMode - * \name PMIC watchdog timer Trigger/QA Mode - * - * @{ - */ -#define PMIC_WDG_TRIGGER_MODE (0x0U) -#define PMIC_WDG_QA_MODE (0x1U) -/* @} */ - -/** - * \anchor Pmic_WdgResetThresholdCount - * \name PMIC watchdog timer Reset Threshold Configurations - * - * @{ - */ -#define PMIC_WDG_RESET_THRESHOLD_COUNT_0 (0x0U) -#define PMIC_WDG_RESET_THRESHOLD_COUNT_1 (0x1U) -#define PMIC_WDG_RESET_THRESHOLD_COUNT_2 (0x2U) -#define PMIC_WDG_RESET_THRESHOLD_COUNT_3 (0x3U) -#define PMIC_WDG_RESET_THRESHOLD_COUNT_4 (0x4U) -#define PMIC_WDG_RESET_THRESHOLD_COUNT_5 (0x5U) -#define PMIC_WDG_RESET_THRESHOLD_COUNT_6 (0x6U) -#define PMIC_WDG_RESET_THRESHOLD_COUNT_7 (0x7U) -/* @} */ - -/** - * \anchor Pmic_WdgFailThresholdCount - * \name PMIC watchdog timer Fail Threshold Configurations - * - * @{ - */ -#define PMIC_WDG_FAIL_THRESHOLD_COUNT_0 (0x0U) -#define PMIC_WDG_FAIL_THRESHOLD_COUNT_1 (0x1U) -#define PMIC_WDG_FAIL_THRESHOLD_COUNT_2 (0x2U) -#define PMIC_WDG_FAIL_THRESHOLD_COUNT_3 (0x3U) -#define PMIC_WDG_FAIL_THRESHOLD_COUNT_4 (0x4U) -#define PMIC_WDG_FAIL_THRESHOLD_COUNT_5 (0x5U) -#define PMIC_WDG_FAIL_THRESHOLD_COUNT_6 (0x6U) -#define PMIC_WDG_FAIL_THRESHOLD_COUNT_7 (0x7U) -/* @} */ - -/** - * \anchor Pmic_WdgQaFdbkVal - * \name PMIC watchdog timer QA Feedback Values - * - * @{ - */ -#define PMIC_WDG_QA_FEEDBACK_VALUE_0 (0x0U) -#define PMIC_WDG_QA_FEEDBACK_VALUE_1 (0x1U) -#define PMIC_WDG_QA_FEEDBACK_VALUE_2 (0x2U) -#define PMIC_WDG_QA_FEEDBACK_VALUE_3 (0x3U) -/* @} */ - -/** - * \anchor Pmic_WdgQaLfsrVal - * \name PMIC watchdog timer QA LFSR Values - * - * @{ - */ -#define PMIC_WDG_QA_LFSR_VALUE_0 (0x0U) -#define PMIC_WDG_QA_LFSR_VALUE_1 (0x1U) -#define PMIC_WDG_QA_LFSR_VALUE_2 (0x2U) -#define PMIC_WDG_QA_LFSR_VALUE_3 (0x3U) -/* @} */ - -/** - * \anchor Pmic_WdgQaQuestionSeedVal - * \name PMIC watchdog timer QA Question Seed Values - * - * @{ - */ -#define PMIC_WDG_QA_QUES_SEED_VALUE_0 (0x0U) -#define PMIC_WDG_QA_QUES_SEED_VALUE_1 (0x1U) -#define PMIC_WDG_QA_QUES_SEED_VALUE_2 (0x2U) -#define PMIC_WDG_QA_QUES_SEED_VALUE_3 (0x3U) -#define PMIC_WDG_QA_QUES_SEED_VALUE_4 (0x4U) -#define PMIC_WDG_QA_QUES_SEED_VALUE_5 (0x5U) -#define PMIC_WDG_QA_QUES_SEED_VALUE_6 (0x6U) -#define PMIC_WDG_QA_QUES_SEED_VALUE_7 (0x7U) -#define PMIC_WDG_QA_QUES_SEED_VALUE_8 (0x8U) -#define PMIC_WDG_QA_QUES_SEED_VALUE_9 (0x9U) -#define PMIC_WDG_QA_QUES_SEED_VALUE_10 (0xAU) -#define PMIC_WDG_QA_QUES_SEED_VALUE_11 (0xBU) -#define PMIC_WDG_QA_QUES_SEED_VALUE_12 (0xCU) -#define PMIC_WDG_QA_QUES_SEED_VALUE_13 (0xDU) -#define PMIC_WDG_QA_QUES_SEED_VALUE_14 (0xEU) -#define PMIC_WDG_QA_QUES_SEED_VALUE_15 (0xFU) -/* @} */ - -/** - * \anchor Pmic_WdgCfgValidParamBitPos - * \name PMIC watchdog timer Config Structure Param Bit positions - * - * @{ - */ - /** \brief validParams value used to set/get Long Window duration */ -#define PMIC_CFG_WDG_LONGWINDURATION_VALID (0U) -/** \brief validParams value used to set/get Window-1 duration */ -#define PMIC_CFG_WDG_WIN1DURATION_VALID (1U) -/** \brief validParams value used to set/get Window-2 duration */ -#define PMIC_CFG_WDG_WIN2DURATION_VALID (2U) -/** \brief validParams value used to set/get Fail threshold value */ -#define PMIC_CFG_WDG_FAILTHRESHOLD_VALID (3U) -/** \brief validParams value used to set/get Reset threshold Value */ -#define PMIC_CFG_WDG_RSTTHRESHOLD_VALID (4U) -/** \brief validParams value used to set/get to enable or diable warm reset on - * fail */ -#define PMIC_CFG_WDG_RSTENABLE_VALID (5U) -/** \brief validParams value used to set/get watchdog mode */ -#define PMIC_CFG_WDG_WDGMODE_VALID (6U) -/** \brief validParams value used to set/get to Enable or disable watchdog - * pwrHold */ -#define PMIC_CFG_WDG_PWRHOLD_VALID (7U) -/** \brief validParams value used to set/get to enable or disable return to long - * window */ -#define PMIC_CFG_WDG_RETLONGWIN_VALID (8U) -/** \brief validParams value used to set/get QA feed back value */ -#define PMIC_CFG_WDG_QA_FDBK_VALID (9U) -/** \brief validParams value used to set/get QA LFSR value */ -#define PMIC_CFG_WDG_QA_LFSR_VALID (10U) -/** \brief validParams value used to set/get QA question seed value */ -#define PMIC_CFG_WDG_QA_QUES_SEED_VALID (11U) -/* @} */ - -/*! - * \brief Minimum number of iterations to wait for a Good/Bad event. - */ -#define PMIC_WDG_WAIT_CNT_MIN_VAL (30U) - -/** - * \anchor Pmic_WdgCfgValidParamBitShiftVal - * \name PMIC WatchDog Config Structure Params Bit shift values - * - * Application can use below shifted values to set the validParam - * structure member defined in Pmic_WdgCfg_t structure - * - * @{ - */ -#define PMIC_CFG_WDG_LONGWINDURATION_VALID_SHIFT \ - (1U << PMIC_CFG_WDG_LONGWINDURATION_VALID) -#define PMIC_CFG_WDG_WIN1DURATION_VALID_SHIFT \ - (1U << PMIC_CFG_WDG_WIN1DURATION_VALID) -#define PMIC_CFG_WDG_WIN2DURATION_VALID_SHIFT \ - (1U << PMIC_CFG_WDG_WIN2DURATION_VALID) -#define PMIC_CFG_WDG_FAILTHRESHOLD_VALID_SHIFT \ - (1U << PMIC_CFG_WDG_FAILTHRESHOLD_VALID) -#define PMIC_CFG_WDG_RSTTHRESHOLD_VALID_SHIFT \ - (1U << PMIC_CFG_WDG_RSTTHRESHOLD_VALID) -#define PMIC_CFG_WDG_RSTENABLE_VALID_SHIFT \ - (1U << PMIC_CFG_WDG_RSTENABLE_VALID) -#define PMIC_CFG_WDG_WDGMODE_VALID_SHIFT \ - (1U << PMIC_CFG_WDG_WDGMODE_VALID) -#define PMIC_CFG_WDG_PWRHOLD_VALID_SHIFT \ - (1U << PMIC_CFG_WDG_PWRHOLD_VALID) -#define PMIC_CFG_WDG_RETLONGWIN_VALID_SHIFT \ - (1U << PMIC_CFG_WDG_RETLONGWIN_VALID) -#define PMIC_CFG_WDG_QA_FDBK_VALID_SHIFT \ - (1U << PMIC_CFG_WDG_QA_FDBK_VALID) -#define PMIC_CFG_WDG_QA_LFSR_VALID_SHIFT \ - (1U << PMIC_CFG_WDG_QA_LFSR_VALID) -#define PMIC_CFG_WDG_QA_QUES_SEED_VALID_SHIFT \ - (1U << PMIC_CFG_WDG_QA_QUES_SEED_VALID) -/* @} */ - -/** - * \anchor Pmic_WdgErrStatCfgValidParamBitPos - * \name PMIC watchdog timer error status Structure Param Bit positions. - * - * @{ - */ - /** \brief validParams value used to get Long Window timeout error status */ -#define PMIC_CFG_WD_LONGWIN_TIMEOUT_ERRSTAT_VALID (0U) -/** \brief validParams value used to get Window1 and window2 timeout error - * status */ -#define PMIC_CFG_WD_TIMEOUT_ERRSTAT_VALID (1U) -/** \brief validParams value used to get Watchdog trigger mode error status */ -#define PMIC_CFG_WD_TRIG_EARLY_ERRSTAT_VALID (2U) -/** \brief validParams value used to get Watchdog early answer error status */ -#define PMIC_CFG_WD_ANSW_EARLY_ERRSTAT_VALID (3U) -/** \brief validParams value used to get Watchdog QA sequence error status */ -#define PMIC_CFG_WD_SEQ_ERR_ERRSTAT_VALID (4U) -/** \brief validParams value used to get Watchdog QA wrong Answer error status - */ -#define PMIC_CFG_WD_ANSW_ERR_ERRSTAT_VALID (5U) -/** \brief validParams value used to get Watchdog fail error status */ -#define PMIC_CFG_WD_FAIL_INT_ERRSTAT_VALID (6U) -/** \brief validParams value used to get Watchdog reset error status */ -#define PMIC_CFG_WD_RST_INT_ERRSTAT_VALID (7U) -/* @} */ - -/** - * \anchor Pmic_WdgFailCntStatCfgValidParamBitPos - * \name PMIC watchdog Fail count status Structure Param Bit positions. - * - * @{ - */ - /** \brief validParams value used to get status of Bad Event is detected or not - */ -#define PMIC_CFG_WD_BAD_EVENT_STAT_VALID (0U) -/** \brief validParams value used to get status of Good Event is detected or not - */ -#define PMIC_CFG_WD_GOOD_EVENT_STAT_VALID (1U) -/** \brief validParams value used to get To get Watchdog Fail Count value */ -#define PMIC_CFG_WD_FAIL_CNT_VAL_VALID (2U) -/* @} */ - -/** - * \anchor Pmic_WdgErrStatValidParamBitShiftVal - * \name PMIC WatchDog Error status Structure Params Bit shift values - * - * Application can use below shifted values to set the validParams - * structure member defined in Pmic_WdgErrStatus_t structure - * - * @{ - */ -#define PMIC_CFG_WD_LONGWIN_TIMEOUT_ERRSTAT_VALID_SHIFT \ - (1U << PMIC_CFG_WD_LONGWIN_TIMEOUT_ERRSTAT_VALID) -#define PMIC_CFG_WD_TIMEOUT_ERRSTAT_VALID_SHIFT \ - (1U << PMIC_CFG_WD_TIMEOUT_ERRSTAT_VALID) -#define PMIC_CFG_WD_TRIG_EARLY_ERRSTAT_VALID_SHIFT \ - (1U << PMIC_CFG_WD_TRIG_EARLY_ERRSTAT_VALID) -#define PMIC_CFG_WD_ANSW_EARLY_ERRSTAT_VALID_SHIFT \ - (1U << PMIC_CFG_WD_ANSW_EARLY_ERRSTAT_VALID) -#define PMIC_CFG_WD_SEQ_ERR_ERRSTAT_VALID_SHIFT \ - (1U << PMIC_CFG_WD_SEQ_ERR_ERRSTAT_VALID) -#define PMIC_CFG_WD_ANSW_ERR_ERRSTAT_VALID_SHIFT \ - (1U << PMIC_CFG_WD_ANSW_ERR_ERRSTAT_VALID) -#define PMIC_CFG_WD_FAIL_INT_ERRSTAT_VALID_SHIFT \ - (1U << PMIC_CFG_WD_FAIL_INT_ERRSTAT_VALID) -#define PMIC_CFG_WD_RST_INT_ERRSTAT_VALID_SHIFT \ - (1U << PMIC_CFG_WD_RST_INT_ERRSTAT_VALID) -/* @} */ - -/** - * \anchor Pmic_WdgFailCntStatValidParamBitShiftVal - * \name PMIC WatchDog Fail count status Structure Params Bit shift values - * - * Application can use below shifted values to set the validParams - * structure member defined in Pmic_WdgErrStatus_t structure - * - * @{ - */ -#define PMIC_CFG_WD_BAD_EVENT_STAT_VALID_SHIFT \ - (1U << PMIC_CFG_WD_BAD_EVENT_STAT_VALID) -#define PMIC_CFG_WD_GOOD_EVENT_STAT_VALID_SHIFT \ - (1U << PMIC_CFG_WD_GOOD_EVENT_STAT_VALID) -#define PMIC_CFG_WD_FAIL_CNT_VAL_VALID_SHIFT \ - (1U << PMIC_CFG_WD_FAIL_CNT_VAL_VALID) - -/* @} */ - -/*! - * \brief Macro for PMIC Watchdog QA infinite sequence. - */ -#define PMIC_WD_QA_INFINITE_SEQ (0xFFFFFFFFU) - -/** - * \anchor Pmic_WdgErrType - * \name PMIC WDG Error TYPE - * - * @{ - */ -#define PMIC_WDG_ERR_LONG_WIN_TIMEOUT (0x0U) -#define PMIC_WDG_ERR_TIMEOUT (0x1U) -#define PMIC_WDG_ERR_TRIGGER_EARLY (0x2U) -#define PMIC_WDG_ERR_ANSWER_EARLY (0x3U) -#define PMIC_WDG_ERR_SEQ_ERR (0x4U) -#define PMIC_WDG_ERR_ANS_ERR (0x5U) -#define PMIC_WDG_ERR_FAIL_INT (0x6U) -#define PMIC_WDG_ERR_RST_INT (0x7U) -#define PMIC_WDG_ERR_ALL (0x8U) -/* @} */ - -/* ========================================================================== */ -/* Structures and Enums */ -/* ========================================================================== */ - -/*! - * \brief PMIC Watchdog configuration structure - * Note: validParams is input param for all Set and Get APIs. other - * params except validParams is input param for Set APIs and output - * param for Get APIs - * - * \param validParams Selection of structure parameters to be - * set from the combination of the - * \ref Pmic_WdgCfgValidParamBitPos - * and the corresponding member value will be - * updated. - * \param longWinDuration_ms Long Window duration in milli seconds. - * To get more effective results user has to - * program long window with multiples of 3000. - * For PG1.0, the valid range is (100, 3000, 6000, - * 9000,....12000, ..., 765000). - * For PG2.0, the valid range is (80, 125, 250, - * 375,....8000, 12000, 16000, 20000 ..., 772000). - * \param win1Duration_us Window-1 duration in Micro Seconds. - * To get more effective results user has to - * program window1 with multiples of 550. - * The valid range is (550, 1100, 1650, 2200, - * 2750, ..., 70400). - * \param win2Duration_us Window-2 duration in Micro Seconds. - * To get more effective results user has to - * program window1 with multiples of 550. - * The valid range is (550, 1100, 1650, 2200, - * 2750, ..., 70400). - * \param failThreshold Fail threshold value. - * For valid Values: - * \ref Pmic_WdgFailThresholdCount. - * \param rstThreshold Reset threshold Value. - * For valid Values: - * \ref Pmic_WdgResetThresholdCount. - * \param wdgMode Value to set watchdog mode. - * For valid Values: - * \ref Pmic_WdgTriggerQAMode. - * \param pwrHold Value to Enable or disable watchdog pwrHold. - * For valid Values: - * \ref Pmic_WdgPwrHoldEnDisable. - * \param rstEnable To enable or diable warm reset on fail. - * For valid Values: - * \ref Pmic_WdgResetEnDisable. - * \param retLongWin To enable or disable return to long window - * after completion of the curent sequence. - * For valid Values: - * \ref Pmic_WdgReturnLongWinEnDisable. - * \param qaFdbk Configure QA feed back value. - * For valid Values: - * \ref Pmic_WdgQaFdbkVal. - * \param qaLfsr Configure QA LFSR value. - * For valid Values: - * \ref Pmic_WdgQaLfsrVal. - * \param qaQuesSeed Configure QA question seed value. - * For valid Values: - * \ref Pmic_WdgQaQuestionSeedVal. - */ -typedef struct Pmic_WdgCfg_s -{ - uint32_t validParams; - - uint32_t longWinDuration_ms; - uint32_t win1Duration_us; - uint32_t win2Duration_us; - - uint8_t failThreshold; - uint8_t rstThreshold; - - bool wdgMode; - bool pwrHold; - bool rstEnable; - bool retLongWin; - - uint8_t qaFdbk; - uint8_t qaLfsr; - uint8_t qaQuesSeed; - -}Pmic_WdgCfg_t; - -/*! - * \brief PMIC Watchdog error status structure - * Note: validParams is input param for all Get APIs. other params - * except validParams is output param for Get APIs - * - * \param validParams Selection of structure parameters to be - * set from the combination of the - * \ref Pmic_WdgErrStatCfgValidParamBitPos - * and the corresponding member value will be - * updated. - * \param wdLongWinTimeout To get Long Window timeout error status. - * \param wdTimeout To get Window1 and window2 timeout error status. - * \param wdTrigEarly To get Watchdog trigger mode error status. - * \param wdAnswearly To get Watchdog early answer error status. - * \param wdSeqErr To get Watchdog QA sequence error status. - * \param wdAnswErr To get Watchdog QA wrong Answer error status. - * \param wdFailInt To get Watchdog fail error status. - * \param wdRstInt To get Watchdog reset error status. - */ -typedef struct Pmic_WdgErrStatus_s -{ - uint32_t validParams; - bool wdLongWinTimeout; - bool wdTimeout; - bool wdTrigEarly; - bool wdAnswearly; - bool wdSeqErr; - bool wdAnswErr; - bool wdFailInt; - bool wdRstInt; -}Pmic_WdgErrStatus_t; - -/*! - * \brief PMIC Watchdog Fail Count status structure - * Note: validParams is input param for all Get APIs. other params - * except validParams is output param for Get APIs - * - * \param validParams Selection of structure parameters to be - * set from the combination of the - * \ref Pmic_WdgFailCntStatCfgValidParamBitPos - * and the corresponding member value will be - * updated. - * \param wdBadEvent To get status of Bad Event is detected or not - * \param wdGudEvent To get status of Good Event is detected or not - * \param wdFailCnt To get Watchdog Fail Count value. - */ -typedef struct Pmic_WdgFailCntStat_s -{ - uint32_t validParams; - bool wdBadEvent; - bool wdGudEvent; - uint32_t wdFailCnt; -}Pmic_WdgFailCntStat_t; - -/* ========================================================================== */ -/* Function Declarations */ -/* ========================================================================== */ -/*! - * \brief API to Enable Watchdog timer. - * - * Requirement: REQ_TAG(PDK-5839), REQ_TAG(PDK-5854) - * Design: did_pmic_wdg_cfg_readback - * Architecture: aid_pmic_wdg_cfg - * - * This function is used to Enable the PMIC watchdog. User ensure - * that, this function needs to be called to enable watchdog timer - * before configuring or starting watchdog trigger or QA mode. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_wdgEnable(Pmic_CoreHandle_t *pPmicCoreHandle); - -/*! - * \brief API to Disable Watchdog timer. - * - * Requirement: REQ_TAG(PDK-5839), REQ_TAG(PDK-5854) - * Design: did_pmic_wdg_cfg_readback - * Architecture: aid_pmic_wdg_cfg - * - * This function is used to Disable the PMIC watchdog. User ensure - * that, after using this function, complete watchdog functionality - * and configuration will be deactivated. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_wdgDisable(Pmic_CoreHandle_t *pPmicCoreHandle); - -/*! - * \brief API to set PMIC watchdog configurations. - * - * Requirement: REQ_TAG(PDK-5839), REQ_TAG(PDK-5854), REQ_TAG(PDK-9115), - * REQ_TAG(PDK-9116) - * Design: did_pmic_wdg_cfg_readback - * Architecture: aid_pmic_wdg_cfg - * - * This function is used to configure the watchdog parameters - * in the PMIC for trigger mode or Q&A(question and answer) mode, - * when corresponding validParam bit fields are set in - * Pmic_WdgCfg_t structure. - * User has to call Pmic_wdgEnable() before set the configuration. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param wdgCfg [IN] Watchdog configuration - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_wdgSetCfg(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_WdgCfg_t wdgCfg); - -/*! - * \brief API to get PMIC watchdog configurations. - * - * Requirement: REQ_TAG(PDK-5839), REQ_TAG(PDK-5854), REQ_TAG(PDK-9115), - * REQ_TAG(PDK-9116) - * Design: did_pmic_wdg_cfg_readback - * Architecture: aid_pmic_wdg_cfg - * - * This function is used to get configuration of the watchdog - * from the PMIC for trigger mode or Q&A(question and answer) mode, - * when corresponding validParam bit fields are set in - * Pmic_WdgCfg_t structure. - * User has to call Pmic_wdgEnable() before get the configuration. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param pWdgCfg [IN/OUT] Watchdog configuration pointer - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_wdgGetCfg(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_WdgCfg_t *pWdgCfg); - -/*! - * \brief API to Start watchdog QA mode. - * - * Requirement: REQ_TAG(PDK-5839) - * Design: did_pmic_wdg_cfg_readback - * Architecture: aid_pmic_wdg_cfg - * - * This function is used to start watchdog sequence and continues - * till the given num_of_sequences. User has to ensure, configure - * all Watchdog QA parameters properly using Pmic_wdgSetCfg() API, - * before starting QA sequence using this API. - * - * Note: To perform QA sequences, user has to adjust Long window - * time interval, Window1 time interval and Window2 time - * intervals depends on errors given by API. If user gets - * PMIC_ST_ERR_INV_WDG_WINDOW, then user has to increase the - * Long window or window1 time interval. If user gets - * PMIC_ST_ERR_WDG_EARLY_ANSWER, then user has to reduce - * the Window1 time interval. - * Application has to ensure to do proper configuration of WDG - * window time intervals. If not configured properly then WDG - * will trigger the warm reset to the PMIC device. This may cause - * system reset if PMIC is connected to SOC/MCU - * Application has to ensure to do proper configuration of WDG - * parameters. If not configured properly then API doesn't - * receive good or bad event from the PMIC FSM. Due to this API - * returns timeout error - * API receive bad event due to wrong answer then API detects and - * returns an error - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param num_of_sequences [IN] number of QA sequences - * If PMIC_WD_QA_INFINITE_SEQ is used, - * then API runs for infinite sequence. - * \param maxCnt [IN] Number of iterations to wait for an - * Good/Bad event. The value should be greater - * than or equal to PMIC_WDG_WAIT_CNT_MIN_VAL. - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_wdgStartQaSequence(Pmic_CoreHandle_t *pPmicCoreHandle, - uint32_t num_of_sequences, - uint32_t maxCnt); - -/*! - * \brief API to get PMIC watchdog error status. - * - * Requirement: REQ_TAG(PDK-5839), REQ_TAG(PDK-5854) - * Design: did_pmic_wdg_cfg_readback - * Architecture: aid_pmic_wdg_cfg - * - * This function is used to get the watchdog error status from the - * PMIC for trigger mode or Q&A(question and answer) mode, - * when corresponding validParam bit fields are set in - * Pmic_WdgErrStatus_t structure. - * User has to call Pmic_wdgEnable() before getting the error status. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param pErrStatus [IN/OUT] Watchdog error status pointer - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_wdgGetErrorStatus(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_WdgErrStatus_t *pErrStatus); - -/*! - * \brief API to get PMIC watchdog fail count status. - * - * Requirement: REQ_TAG(PDK-5839), REQ_TAG(PDK-5854) - * Design: did_pmic_wdg_cfg_readback - * Architecture: aid_pmic_wdg_cfg - * - * This function is used to get the watchdog fail count status from the - * PMIC for trigger mode or Q&A(question and answer) mode. - * User has to call Pmic_wdgEnable() before getting the fail count. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param pFailCount [IN/OUT] Watchdog fail count pointer - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_wdgGetFailCntStat(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_WdgFailCntStat_t *pFailCount); - -/*! - * \brief API to Start watchdog Trigger mode. - * - * Requirement: REQ_TAG(PDK-5854) - * Design: did_pmic_wdg_cfg_readback - * Architecture: aid_pmic_wdg_cfg - * - * This function is used to start watchdog trigger mode. - * User has to ensure, configure all Watchdog trigger parameters - * properly using Pmic_wdgSetCfg() API, before starting watchdog - * trigger mode using this API. User can use Pmic_wdgSetCfg() API - * to stop watchdog trigger mode. - * - * Note: To perform watchdog trigger mode, user has to - * adjust Long window time interval, Window1 time interval - * and Window2 time inervals as below, depends on the - * time-period of the trigger pulse provided by other - * device. - * 1. Longwindow time interval must be greater than Trigger - * pulse time period. - * 2. Window1 time interval must be less than T-off time of - * the Trigger pulse time period. - * 3. Window2 time interval must be greater than T-on time - * of the Trigger pulse time period. - * 4. (Window1 time interval + Window2 time interval) - * approximately equal to the Trigger pulse time period. - * Application has to ensure to do proper configuration of WDG - * window time intervals. If not configured properly in Trigger - * mode then WDG will trigger the warm reset to the PMIC device. - * This may cause system reset if PMIC is connected to SOC/MCU - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_wdgStartTriggerSequence(Pmic_CoreHandle_t *pPmicCoreHandle); - -/*! - * \brief API to clear PMIC watchdog error status. - * - * Requirement: REQ_TAG(PDK-5839), REQ_TAG(PDK-5854) - * Design: did_pmic_wdg_cfg_readback - * Architecture: aid_pmic_wdg_cfg - * - * This function is used to clear the watchdog error status from the - * PMIC for trigger mode or Q&A(question and answer) mode, - * Note: User has to clear the WDG Error status only when Error status - * bit is set for the corresponding wdgErrType - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param wdgErrType [IN] Watchdog error type to clear the status - * For Valid values: - * \ref Pmic_WdgErrType - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_wdgClrErrStatus(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t wdgErrType); - -/*! - * \brief API to Write Answers in Long Window/ Window1/ Window2 Interval for - * watchdog QA Sequence. - * - * Requirement: REQ_TAG(PDK-5839), REQ_TAG(PDK-9115), REQ_TAG(PDK-9116) - * Design: did_pmic_wdg_cfg_readback - * Architecture: aid_pmic_wdg_cfg - * - * This function is used to write Answers in Long Window/ Window1/ - * Window2 Interval for the WDG QA Sequence - * User has to ensure, configure all Watchdog QA parameters properly - * using Pmic_wdgSetCfg() API, before writing Answers using this API - * for the QA Sequence - * - * Note: To perform QA sequences, user has to adjust Long window - * time interval, Window1 time interval and Window2 time - * intervals If the Pmic_wdgQaWriteAnswer API returns - * PMIC_ST_ERR_INV_WDG_ANSWER error - * If the Pmic_wdgQaWriteAnswer API returns - * PMIC_ST_ERR_INV_WDG_ANSWER error user has - * to call Pmic_wdgGetErrorStatus API to read the WDG error. - * If the WDG error is Long Window Timeout or Timeout, user has - * to increase the Long window or window1 time interval - * accordingly - * If the WDG error is Answer early, user has to reduce the - * Window1 time interval - * For other WDG errors, user has to take action accordingly - * Application has to ensure to do proper configuration of WDG - * window time intervals. If not configured properly in QA mode - * then WDG will trigger the warm reset to the PMIC device. This - * may cause system reset if PMIC is connected to SOC/MCU - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_wdgQaSequenceWriteAnswer(Pmic_CoreHandle_t *pPmicCoreHandle); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* PMIC_WDG_H_ */ - -/* @} */ diff --git a/makefile b/makefile deleted file mode 100644 index 8ad2d71..0000000 --- a/makefile +++ /dev/null @@ -1,50 +0,0 @@ -# Filename: Makefile -# -# This file is the makefile for building this module. -# -# Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com/ -# -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# -# Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the -# distribution. -# -# Neither the name of Texas Instruments Incorporated nor the names of -# its contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -ifeq ($(RULES_MAKE), ) -include $(PDK_INSTALL_PATH)/ti/build/Rules.make -else -include $(RULES_MAKE) -endif - -COMP = drvpmic - -lib_$(COMP)_BUILD_DEPENDENCY = soc - -$(COMP)_DOXYGEN_SUPPORT = yes - -include $(PDK_INSTALL_PATH)/ti/build/comp_top.mk - diff --git a/makefile_standalone b/makefile_standalone deleted file mode 100644 index 0452334..0000000 --- a/makefile_standalone +++ /dev/null @@ -1,100 +0,0 @@ -# -# Copyright (c) 2019, Texas Instruments Incorporated -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# -# * Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# * Neither the name of Texas Instruments Incorporated nor the names of -# its contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR -# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; -# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# -# -ifdef OS - RM = rm - RMDIR = rmdir - MKDIR = mkdir - FixPath = $(subst /,\,$1) - unix_to_dos = $(subst /,\,$1) - OSP = windows - -else - ifeq ($(shell uname), Linux) - RM = rm -f - RMDIR = rm -rf - MKDIR = mkdir -p - FixPath = $1 - OSP = unix -endif -endif - -CC = gcc -INC = -Iinclude -I. -Iinclude/cfg/tps6594x/ -Iinclude/cfg/lp8764x/ \ - -I./src -I./src/cfg/tps6594x/ -I./src/cfg/lp8764x/ -CFLAGS = -fPIC $(INC) -Wall -LDFLAGS = -shared -LIB_DIR = lib - -DEBUGFLAGS = -O0 -g -D _DEBUG -RELEASEFLAGS = -O2 -D NDEBUG -build ?= release - -ifeq ($(build), debug) - CFLAGS += $(DEBUGFLAGS) - TARGET = $(LIB_DIR)/pmic_lib_$(build).so -endif - -ifeq ($(build), release) - CFLAGS += $(RELEASEFLAGS) - TARGET = $(LIB_DIR)/pmic_lib_$(build).so -endif - -$(info $(OSP)) -SOURCES = src/pmic_core.c src/pmic_io.c src/pmic_gpio.c src/cfg/tps6594x/pmic_gpio_tps6594x.c src/pmic_rtc.c src/pmic_irq_status.c src/cfg/lp8764x/pmic_gpio_lp8764x.c src/pmic_power.c src/cfg/lp8764x/pmic_power_lp8764x.c src/cfg/tps6594x/pmic_power_tps6594x.c src/cfg/tps6594x/pmic_irq_tps6594x.c src/cfg/lp8764x/pmic_irq_lp8764x.c src/pmic_wdg.c src/pmic_fsm.c src/pmic_esm.c -OBJECTS = $(SOURCES:.c=.o) - -all: $(TARGET) -$(TARGET): $(OBJECTS) - $(call FixPath, $(MKDIR) $(LIB_DIR)) - $(call FixPath,$(CC) $(FLAGS) $(LDFLAGS) -o $(TARGET) $(OBJECTS)) - $(call FixPath,${RM} ${OBJECTS}) - -help: - @echo "# make help" - @echo "# ------------------------------------------------------" - @echo "# make [OPTIONAL MAKE VARIABLES] Note: use gmake for windows" - @echo "Supported targets: " - @echo "------------------" - @echo "all : Builds the library" - @echo "clean : Cleans the library" - @echo "Optional make variables:" - @echo "------------------------" - @echo "CC=[Cross-compiler to be used]" - @echo " Default: gcc" - @echo "BUILD_PROFILE=[release debug]" - @echo " Default: release" - @echo "OS=[Windows_NT linux]" - @echo " Default: Windows_NT" -clean: - ${RM} $(call FixPath, ${TARGET}) - ${RMDIR} $(call FixPath, $(LIB_DIR)) diff --git a/pmic.h b/pmic.h deleted file mode 100644 index e94f904..0000000 --- a/pmic.h +++ /dev/null @@ -1,523 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ - -/** - * \defgroup DRV_PMIC_MODULE PMIC Driver - * - * This is an API guide for PMIC(Power Management Integrated Circuit) Driver. - * PMIC Driver is designed to power up different components on the embedded - * boards or provide supply to MCU(Micro Controller Unit) or - * SoC(System on chip) using APIs provided in the guide. - * - * The PMIC Driver supports below mentioned PMIC devices and their - * features or Modules. - * - * Supported PMIC Devices are: - * 1. TPS6594x (Leo PMIC Device) - * 2. LP8764x (Hera PMIC Device) - * - * Above PMICs have multiple functionalities and configurable features. Like, - * Real Time Clock (RTC) which provides Time, Calendar, Alarm and timer, - * Configurable GPIO pins to support wakeup, nSLEEP, PGOOD, nRESET for - * SOC/MCU, GPIOs with configurable PU/PD to enable other chips, - * Have number of BUCK(with different phases) and LDO regulators to provide - * supply to other modules on the board, Have the Voltage Monitor feature - * to monitor and notify for OV, UV, SC and Over Heat(Thermal Monitor). - * Have interrupt feature to notify severe, moderate, fsm Errors and provide - * asynchronous events for all supported features including GPIO External - * Interrupts, Have the WatchDog feature to monitor correct operation of the - * MCU using WDG trigger mode or using WDOG QA mode, Supports I2C(single and - * dual mode) and SPI communication protocols to access the registers for - * Read/Write operations with or without CRC. - * - * All above PMICs features can be accessed or configured by using PMIC Driver - * APIs and illustrated in the guide. - * - * @{ - */ -/* @} */ - -/** - * \ingroup DRV_PMIC_MODULE - * \defgroup DRV_PMIC_API_MODULE PMIC Driver Initialization API - * This is PMIC driver core handle initialization APIs common for all supported - * PMIC devices. Like, Pmic init, and deinit APIs - * - * @{ - */ - -/** - * \file pmic.h - * - * \brief PMIC Driver initialization API/interface file. - */ - -#ifndef PMIC_H_ -#define PMIC_H_ - -/* ========================================================================= */ -/* Include Files */ -/* ========================================================================= */ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif -/* ========================================================================= */ -/* Macros & Typedefs */ -/* ========================================================================= */ - -/** - * \anchor Pmic_ErrorCodes - * \name PMIC Error Codes - * - * Error codes returned by PMIC APIs - * - * @{ - */ -/** \brief Error Code for SUCCESS */ -#define PMIC_ST_SUCCESS (0) -/** \brief Error Code for Invalid input Handle */ -#define PMIC_ST_ERR_INV_HANDLE (-((int32_t)1)) -/** \brief Error Code when input Param is NULL */ -#define PMIC_ST_ERR_NULL_PARAM (-((int32_t)2)) -/** \brief Error Code for Invalid input Param */ -#define PMIC_ST_ERR_INV_PARAM (-((int32_t)3)) -/** \brief Error Code for Invalid PMIC Device */ -#define PMIC_ST_ERR_INV_DEVICE (-((int32_t)4)) -/** \brief Error Code when input Function pointer is NULL */ -#define PMIC_ST_ERR_NULL_FPTR (-((int32_t)5)) -/** \brief Error Code for Invalid PMIC Subsystem */ -#define PMIC_ST_ERR_INV_SUBSYSTEM (-((int32_t)6)) -/** \brief Error Code for Insufficient input configuration params for PMIC - * Device Initialization */ -#define PMIC_ST_ERR_INSUFFICIENT_CFG (-((int32_t)7)) -/** \brief Error Code for I2C Communication Fail */ -#define PMIC_ST_ERR_I2C_COMM_FAIL (-((int32_t)8)) -/** \brief Error Code for SPI Communication Fail */ -#define PMIC_ST_ERR_SPI_COMM_FAIL (-((int32_t)9)) -/** \brief Error Code for IO data failure when CRC is enabled */ -#define PMIC_ST_ERR_DATA_IO_CRC (-((int32_t)10)) -/** \brief Error Code for Interface Selected is not working properly */ -#define PMIC_ST_ERR_INTF_SETUP_FAILED (-((int32_t)11)) -/** \brief Error Code for Interface Init Fail */ -#define PMIC_ST_ERR_COMM_INTF_INIT_FAIL (-((int32_t)12)) -/** \brief Error Code if Pmic_init() function called before PMIC driver is - * initialized */ -#define PMIC_ST_ERR_UNINIT (-((int32_t)13)) -/** \brief Error Code for Invalid Voltage Value */ -#define PMIC_ST_ERR_INV_VOLTAGE (-((int32_t)14)) -/** \brief Error Code for Invalid Power resource Value */ -#define PMIC_ST_ERR_INV_REGULATOR (-((int32_t)15)) -/** \brief Error Code for Invalid Power Good Threshold Value */ -#define PMIC_ST_ERR_INV_PGOOD_LEVEL (-((int32_t)16)) -/** \brief Error Code for Invalid Temperature Threshold value */ -#define PMIC_ST_ERR_INV_TEMP_THRESHOLD (-((int32_t)17)) -/** \brief Error Code for Invalid input GPIO PIN */ -#define PMIC_ST_ERR_INV_GPIO (-((int32_t)18)) -/** \brief Error Code for Invalid GPIO Functionality */ -#define PMIC_ST_ERR_INV_GPIO_FUNC (-((int32_t)19)) -/** \brief Error Code for input GPIO handle is invalid */ -#define PMIC_ST_ERR_INV_GPIO_LINE_PARAMS (-((int32_t)20)) -/** \brief Error Code for Invalid Pin for GPIO Configuration */ -#define PMIC_ST_ERR_PIN_NOT_GPIO (-((int32_t)21)) -/** \brief Error Code for Invalid Watchdog longwindow or Window-1 - * or Window-2 duration */ -#define PMIC_ST_ERR_INV_WDG_WINDOW (-((int32_t)22)) -/** \brief Error Code for Invalid Watchdog Answer */ -#define PMIC_ST_ERR_INV_WDG_ANSWER (-((int32_t)23)) -/** \brief Error Code for Watchdog early Answer */ -#define PMIC_ST_ERR_WDG_EARLY_ANSWER (-((int32_t)24)) -/** \brief Error Code for input ESM TargetID is invalid */ -#define PMIC_ST_ERR_INV_ESM_TARGET (-((int32_t)25)) -/** \brief Error Code for ESM Operation Mode is invalid */ -#define PMIC_ST_ERR_INV_ESM_MODE (-((int32_t)26)) -/** \brief Error Code for Invalid Interrupt */ -#define PMIC_ST_ERR_INV_INT (-((int32_t)27)) -/** \brief Error Code when Interrupts Clear is failed */ -#define PMIC_ST_ERR_CLEAR_INT_FAILED (-((int32_t)28)) -/** \brief Error Code for Invalid Time */ -#define PMIC_ST_ERR_INV_TIME (-((int32_t)29)) -/** \brief Error Code for Invalid Date */ -#define PMIC_ST_ERR_INV_DATE (-((int32_t)30)) -/** \brief Error Code for RTC Stop command failure */ -#define PMIC_ST_ERR_RTC_STOP_FAIL (-((int32_t)31)) -/** \brief Error Code for any other failures */ -#define PMIC_ST_ERR_FAIL (-((int32_t)32)) -/** \brief Error Code for ESM in Start State */ -#define PMIC_ST_ERR_ESM_STARTED (-((int32_t)33)) -/** \brief Error Code for Invalid ESM delay1, delay2, HMAX, HMIN, LMAX and - * LMIN values */ -#define PMIC_ST_ERR_INV_ESM_VAL (-((int32_t)34)) -/** \brief warning Code for Device ID mismatch warning */ -#define PMIC_ST_WARN_INV_DEVICE_ID (-((int32_t)35)) -/** \brief Error Code for EN_DRV Pin configuration when FORCE_EN_DRV_LOW is set - * to '1' */ -#define PMIC_ST_ERR_INV_EN_DRV_PIN_CFG (-((int32_t)36)) -/** \brief Error Code for I2C Speed configuration when commMode is set - * to PMIC_INTF_SPI */ -#define PMIC_ST_ERR_INV_COMM_MODE (-((int32_t)37)) -/** \brief Error Code for CRC Status Failure */ -#define PMIC_ST_ERR_CRC_STATUS_FAIL (-((int32_t)38)) -/** \brief Error Code for Register Write Failure when register is locked */ -#define PMIC_ST_ERR_REG_LOCKED_WR_FAIL (-((int32_t)39)) -/** \brief Error Code for when a feature is not supported on PMIC device type - * or PMIC silicon revision*/ -#define PMIC_ST_ERR_NOT_SUPPORTED (-((int32_t)40)) -/** \brief Error Code for Invalid PMIC Device Silicon Revision*/ -#define PMIC_ST_ERR_INV_SILICON_REVISION (-((int32_t)41)) -/* @} */ - -/** - * \anchor Pmic_DeviceType - * \name PMIC Device type - * - * @{ - */ -#define PMIC_DEV_LEO_TPS6594X (0U) -#define PMIC_DEV_HERA_LP8764X (1U) -/* @} */ - -/** - * \anchor Pmic_CommMode - * \name PMIC Communication Mode - * - * @{ - */ -#define PMIC_INTF_SINGLE_I2C (0U) -#define PMIC_INTF_DUAL_I2C (1U) -#define PMIC_INTF_SPI (2U) -/* @} */ - -/** - * \anchor Pmic_I2CSpeedSel - * \name PMIC Select I2C Speed - * Note: I2C Master before switching the I2C speed to HS/Standard Mode, - * I2C Master has to set/reset I2C1_HS/I2C2_HS bit field accordingly - * then only I2C Master can communicate with PMIC in HS/Standard Mode - * - * @{ - */ - /** \brief Standard or Fast or Fast+ Mode */ -#define PMIC_I2C_STANDARD_MODE (0U) -/** \brief High-Speed Mode */ -#define PMIC_I2C_FORCED_HS_MODE (1U) -/* @} */ - -/** - * \anchor Pmic_InstType - * \name PMIC Instance Type - * - * @{ - */ -#define PMIC_MAIN_INST (1U << 0U) -#define PMIC_QA_INST (1U << 1U) -/** \brief Valid only to read CRC status from Page-1 using NVM Slave Address - * Valid only while calling the pFnPmicCommIoRead API - */ -#define PMIC_NVM_INST (1U << 2U) -/* @} */ - -/** - * \anchor Pmic_ValidParamCfg - * \name PMIC Config Structure Param Bits - * - * @{ - */ - /** \brief validParams value used to set PMIC device type of PMIC Driver - * Handle */ -#define PMIC_CFG_DEVICE_TYPE_VALID (0U) - /** \brief validParams value used to set Interface mode of PMIC Driver - * Handle */ -#define PMIC_CFG_COMM_MODE_VALID (1U) - /** \brief validParams value used to set Main Interface Slave Address of PMIC - * Driver Handle */ -#define PMIC_CFG_SLAVEADDR_VALID (2U) - /** \brief validParams value used to set WDOG QA Interface Slave Address of - * PMIC Driver Handle */ -#define PMIC_CFG_QASLAVEADDR_VALID (3U) - /** \brief validParams value used to set NVM Slave Address of PMIC Driver - * Handle */ -#define PMIC_CFG_NVMSLAVEADDR_VALID (4U) - /** \brief validParams value used to set Pointer to Handle for I2C1/SPI - * Main Interface of PMIC Driver Handle */ -#define PMIC_CFG_COMM_HANDLE_VALID (5U) - /** \brief validParams value used to set Pointer to Handle for I2C2-QA - * Interface of PMIC Driver Handle */ -#define PMIC_CFG_QACOMM_HANDLE_VALID (6U) - /** \brief validParams value used to set Pointer to I2C/SPI Comm LLD Read - * Function of PMIC Driver Handle */ -#define PMIC_CFG_COMM_IO_RD_VALID (7U) - /** \brief validParams value used to set Pointer to I2C/SPI Comm LLD Write - * Function of PMIC Driver Handle */ -#define PMIC_CFG_COMM_IO_WR_VALID (8U) - /** \brief validParams value used to set Pointer to Pmic Critical-Section - * Start Function of PMIC Driver Handle */ -#define PMIC_CFG_CRITSEC_START_VALID (9U) - /** \brief validParams value used to set Pointer to Pmic Critical-Section - * Stop Function of PMIC Driver Handle */ -#define PMIC_CFG_CRITSEC_STOP_VALID (10U) - /** \brief validParams value used to set I2C1 Speed of PMIC Driver - * Handle */ -#define PMIC_CFG_I2C1_SPEED_VALID (11U) - /** \brief validParams value used to set I2C2 Speed of PMIC Driver - * Handle */ -#define PMIC_CFG_I2C2_SPEED_VALID (12U) -/* @} */ - -/** - * \anchor Pmic_CfgStructPrmBitShiftVal - * \name PMIC Config Structure Param Bit shift values - * - * Application can use below shifted values to set the validParam - * struct member defined in Pmic_CoreCfg_t structure - * - * @{ - */ -#define PMIC_CFG_DEVICE_TYPE_VALID_SHIFT (1U << PMIC_CFG_DEVICE_TYPE_VALID) -#define PMIC_CFG_COMM_MODE_VALID_SHIFT (1U << PMIC_CFG_COMM_MODE_VALID) -#define PMIC_CFG_SLAVEADDR_VALID_SHIFT (1U << PMIC_CFG_SLAVEADDR_VALID) -#define PMIC_CFG_QASLAVEADDR_VALID_SHIFT (1U << PMIC_CFG_QASLAVEADDR_VALID) -#define PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT (1U << PMIC_CFG_NVMSLAVEADDR_VALID) -#define PMIC_CFG_COMM_HANDLE_VALID_SHIFT (1U << PMIC_CFG_COMM_HANDLE_VALID) -#define PMIC_CFG_QACOMM_HANDLE_VALID_SHIFT (1U << PMIC_CFG_QACOMM_HANDLE_VALID) -#define PMIC_CFG_COMM_IO_RD_VALID_SHIFT (1U << PMIC_CFG_COMM_IO_RD_VALID) -#define PMIC_CFG_COMM_IO_WR_VALID_SHIFT (1U << PMIC_CFG_COMM_IO_WR_VALID) -#define PMIC_CFG_CRITSEC_START_VALID_SHIFT (1U << PMIC_CFG_CRITSEC_START_VALID) -#define PMIC_CFG_CRITSEC_STOP_VALID_SHIFT (1U << PMIC_CFG_CRITSEC_STOP_VALID) -#define PMIC_CFG_I2C1_SPEED_VALID_SHIFT (1U << PMIC_CFG_I2C1_SPEED_VALID) -#define PMIC_CFG_I2C2_SPEED_VALID_SHIFT (1U << PMIC_CFG_I2C2_SPEED_VALID) -/* @} */ - -/*==========================================================================*/ -/* Structures and Enums */ -/*==========================================================================*/ -/*! - * \brief PMIC configuration structure. - * Contains various parameters which are needed to prepare - * PMIC driver handle using Valid params. - * like, PMIC device type, PMIC interface mode, Slave address, - * various application defined API function pointers for - * LLD and Critical sections. - * Application has to set the corresponding bit in validParams - * structure member to update the driver with Pmic_CoreCfg_t - * structure fields. - * For Example, If the Application needs to configure the PMIC driver - * pmicDeviceType member of the structure then application has - * to set PMIC_CFG_DEVICE_TYPE_VALID bit of validParams struct - * and then call pmic_init(). - * - * \param validParams Validate params Bits. - * Selection of structure parameters to - * be set, from the combination of - * \ref Pmic_ValidParamCfg and the - * corresponding member value must be - * updated. - * \param instType Instance type. - * For Valid Values: \ref Pmic_InstType. - * \param pmicDeviceType PMIC device type. - * For Valid Values: \ref Pmic_DeviceType - * Valid only when - * PMIC_CFG_DEVICE_TYPE_VALID bit of - * validParams is set. - * \param commMode Interface mode - Single I2C, Dual - * I2C or SPI. - * For Valid Values: \ref Pmic_CommMode. - * Valid only when - * PMIC_CFG_COMM_MODE_VALID bit of - * validParams is set. - * \param slaveAddr Main Interface Slave Address. - * Valid only when - * PMIC_CFG_SLAVEADDR_VALID bit of - * validParams is set. - * \param qaSlaveAddr WDOG QA Interface Slave Address. - * Valid only when - * PMIC_CFG_QASLAVEADDR_VALID bit - * of validParams is set. - * \param nvmSlaveAddr NVM Slave Address which provides only - * read access to CRC status of Page-1 - * Application shall use this slave - * address to read only CRC status. - * Application shall not do - * any write operations using this slave - * address - * Valid only when - * PMIC_CFG_NVMSLAVEADDR_VALID bit - * of validParams is set. - * \param i2c1Speed Configures I2C1 Speed when commMode is - * Single or Dual I2C - * For Valid Values: - * \ref Pmic_I2CSpeedSel - * Valid only when - * PMIC_CFG_I2C1_SPEED_VALID bit is set - * \param i2c2Speed Configures I2C2 Speed when commMode is - * Dual I2C - * For Valid Values: - * \ref Pmic_I2CSpeedSel - * Valid only when - * PMIC_CFG_I2C2_SPEED_VALID bit is set - * \param pFnPmicCommIoRead Pointer to I2C/SPI Comm LLD Read - * Function. Valid only when - * PMIC_CFG_COMM_IO_RD_VALID bit - * of validParams is set. - * \param pFnPmicCommIoWrite Pointer to I2C/SPI Comm LLD Write - * Function. Valid only when - * PMIC_CFG_COMM_IO_WR_VALID bit - * of validParams is set. - * \param pCommHandle Pointer to Handle for I2C1/SPI - * Main Interface. Valid only when - * PMIC_CFG_COMM_HANDLE_VALID bit - * of validParams is set. - * \param pQACommHandle Pointer to Handle for I2C2-QA - * Interface. Valid only when - * PMIC_CFG_QACOMM_HANDLE_VALID bit - * of validParams is set. - * \param pFnPmicCritSecStart Pointer to Pmic Critical-Section - * Start Function. Valid only when - * PMIC_CFG_CRITSEC_START_VALID bit - * of validParams is set. - * \param pFnPmicCritSecStop Pointer to Pmic Critical-Section - * Stop Function. Valid only when - * PMIC_CFG_CRITSECSTOP_VALID bit of - * validParams is set. - */ -typedef struct Pmic_CoreCfg_s { - uint32_t validParams; - uint32_t instType; - uint8_t pmicDeviceType; - uint8_t commMode; - uint8_t slaveAddr; - uint8_t qaSlaveAddr; - uint8_t nvmSlaveAddr; - uint8_t i2c1Speed; - uint8_t i2c2Speed; - void *pCommHandle; - void *pQACommHandle; - int32_t (*pFnPmicCommIoRead)(struct Pmic_CoreHandle_s *pmicCorehandle, - uint8_t instType, - uint16_t regAddr, - uint8_t *pRxBuf, - uint8_t bufLen); - int32_t (*pFnPmicCommIoWrite)(struct Pmic_CoreHandle_s *pmicCorehandle, - uint8_t instType, - uint16_t regAddr, - uint8_t *pTxBuf, - uint8_t bufLen); - void (*pFnPmicCritSecStart)(void); - void (*pFnPmicCritSecStop)(void); -} Pmic_CoreCfg_t; - -/*==========================================================================*/ -/* Function Declarations */ -/*==========================================================================*/ -/*! - * \brief API to Initialize pmic core handle for PMIC LLD. - * - * Requirement: REQ_TAG(PDK-5814), REQ_TAG(PDK-5810), REQ_TAG(PDK-5813), - * REQ_TAG(PDK-5843), REQ_TAG(PDK-5811), REQ_TAG(PDK-5853), - * REQ_TAG(PDK-9129), REQ_TAG(PDK-9329), REQ_TAG(PDK-9159), - * REQ_TAG(PDK-5816), REQ_TAG(PDK-5817), REQ_TAG(PDK-5818), - * REQ_TAG(PDK-5819), REQ_TAG(PDK-5820), REQ_TAG(PDK-5821), - * REQ_TAG(PDK-5822), REQ_TAG(PDK-5823), REQ_TAG(PDK-5824), - * REQ_TAG(PDK-5825), REQ_TAG(PDK-5826), REQ_TAG(PDK-5827), - * REQ_TAG(PDK-5856), REQ_TAG(PDK-5857), REQ_TAG(PDK-5858), - * REQ_TAG(PDK-5859), REQ_TAG(PDK-5860) - * Design: did_pmic_comm_intf_cfg, did_pmic_comm_single_i2c_cfg, - * did_pmic_comm_dual_i2c_cfg, did_pmic_comm_spi_cfg, - * did_pmic_tps6594x_j721e_support, did_pmic_lp8764x_j7200_support, - * did_pmic_validation_feature_support, did_pmic_performance_support, - * did_pmic_generic_feature_support, did_pmic_safety_feature_support, - * did_pmic_pre_emption_support, did_pmic_stateless_reentrant_support, - * did_pmic_dynamic_alloc_mem_not_supported, did_pmic_build_infra_cfg, - * did_pmic_debug_release_profile_support, did_pmic_standalone_support, - * did_pmic_multiple_pmic_support, did_pmic_baremetal_support - * Architecture: aid_pmic_tps6594x_lp8764x_support, aid_pmic_standalone_support, - * aid_pmic_multiple_pmic_support, aid_pmic_pre_emption_support, - * aid_pmic_stateless_reentrant_support, aid_pmic_generic_support, - * aid_pmic_baremetal_support, aid_pmic_comm_intf_i2c_spi_cfg, - * aid_pmic_dynamic_alloc_mem_not_supported, - * aid_pmic_build_infra_cfg, - * aid_pmic_debug_release_profile_support, - * aid_pmic_performance_support, aid_pmic_test_support - * - * This function gets device configuration from pPmicConfigData and - * initializes device specific information in pPmicCoreHandle after - * validation of given params depends on validParams bit fields - * and does some basic validation on PMIC interface I2C/SPI, - * confirming that PMIC is accessible for PMIC configuration and - * monitor features. - * - * \param pPmicConfigData [IN] PMIC Configuration data - * \param pPmicCoreHandle [OUT] PMIC Interface Handle. - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_init(const Pmic_CoreCfg_t *pPmicConfigData, - Pmic_CoreHandle_t *pPmicCoreHandle); - -/*! - * \brief API to DeInitilizes an existing PMIC Instance. - * - * Requirement: REQ_TAG(PDK-5814) - * Design: did_pmic_comm_intf_cfg - * Architecture: aid_pmic_tps6594x_lp8764x_support - * - * This function takes an existing Instance pPmicCoreHandle and - * closes the LLD being used for this Instance. It should be called - * only once per valid pPmicCoreHandle. Should not be called - * if Pmic_init() is not called - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_deinit(Pmic_CoreHandle_t *pPmicCoreHandle); - -#ifdef __cplusplus -} - -#endif /* __cplusplus */ - -#endif /* PMIC_H_ */ - -/* @} */ diff --git a/pmic_component.mk b/pmic_component.mk deleted file mode 100644 index 6f99eba..0000000 --- a/pmic_component.mk +++ /dev/null @@ -1,310 +0,0 @@ -# -# Copyright (c) 2020, Texas Instruments Incorporated -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# -# * Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# * Neither the name of Texas Instruments Incorporated nor the names of -# its contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR -# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; -# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# - -# File: pmic_component.mk -# This file is component include make file of pmic library. -# List of variables set in this file and their purpose: -# _RELPATH - This is the relative path of the module, typically from -# top-level directory of the package -# _PATH - This is the absolute path of the module. It derives from -# absolute path of the top-level directory (set in env.mk) -# and relative path set above -# _INCLUDE - This is the path that has interface header files of the -# module. This can be multiple directories (space separated) -# _PKG_LIST - Names of the modules (and sub-modules) that are a part -# part of this module, including itself. -# _BOARD_DEPENDENCY - "yes": means the code for this module depends on -# board and the compiled obj/lib has to be kept -# under directory -# "no" or "" or if this variable is not defined: means -# this module has no board dependent code and hence -# the obj/libs are not kept under dir. -# _CORE_DEPENDENCY - "yes": means the code for this module depends on -# core and the compiled obj/lib has to be kept -# under directory -# "no" or "" or if this variable is not defined: means -# this module has no core dependent code and hence -# the obj/libs are not kept under dir. -# _APP_STAGE_FILES - List of source files that belongs to the module -# , but that needs to be compiled at application -# build stage (in the context of the app). This is -# primarily for link time configurations or if the -# source file is dependent on options/defines that are -# application dependent. This can be left blank or -# not defined at all, in which case, it means there -# no source files in the module that are required -# to be compiled in the application build stage. -# -ifeq ($(pmic_component_make_include), ) - -drvpmic_BOARDLIST = j721e_evm j7200_evm j721s2_evm j784s4_evm -drvpmic_SOCLIST = j721e j7200 j721s2 j784s4 -drvpmic_j721e_CORELIST = mcu1_0 mcu1_1 mcu2_0 mcu2_1 mcu3_0 mcu3_1 mpu1_0 c66xdsp_1 c66xdsp_2 c7x_1 -drvpmic_j7200_CORELIST = mcu1_0 mcu1_1 mcu2_0 mcu2_1 mpu1_0 -drvpmic_j721s2_CORELIST = mcu1_0 -drvpmic_j784s4_CORELIST = mcu1_0 -drvpmic_app_j721e_CORELIST = mcu1_0 mcu1_1 mcu2_0 mcu2_1 mcu3_0 mcu3_1 -drvpmic_app_j7200_CORELIST = mcu1_0 mcu1_1 mcu2_0 mcu2_1 -drvpmic_fsm_mcu_app_CORELIST = mcu1_0 mcu1_1 - -############################ -# pmic package -# List of components included under pmic lib -# The components included here are built and will be part of pmic lib -############################ -pmic_LIB_LIST = - -############################ -# pmic examples -# List of examples under pmic -# All the tests mentioned in list are built when test target is called -# List below all examples for allowed values -############################ -pmic_EXAMPLE_LIST = - -# -# PMIC Modules -# - -# PMIC library -pmic_COMP_LIST = pmic -pmic_RELPATH = ti/drv/pmic -pmic_PATH = $(PDK_PMIC_COMP_PATH) -export pmic_LIBNAME = pmic -export pmic_LIBPATH = $(PDK_PMIC_COMP_PATH)/lib -export pmic_MAKEFILE = -fsrc/makefile -export pmic_BOARD_DEPENDENCY = yes -export pmic_CORE_DEPENDENCY = no -pmic_PKG_LIST = pmic -pmic_INCLUDE = $(pmic_PATH) -export pmic_SOCLIST = $(drvpmic_SOCLIST) -export pmic_$(SOC)_CORELIST = $(drvpmic_$(SOC)_CORELIST) -pmic_LIB_LIST += pmic - -# -# Applications Specific scripts -# - -# -# RTC test -# -export pmic_rtc_testapp_COMP_LIST = pmic_rtc_testapp -pmic_rtc_testapp_RELPATH = ti/drv/pmic/test/rtc_test -pmic_rtc_testapp_PATH = $(PDK_PMIC_COMP_PATH)/test/rtc_test -export pmic_rtc_testapp_BOARD_DEPENDENCY = yes -export pmic_rtc_testapp_CORE_DEPENDENCY = no -export pmic_rtc_testapp_MAKEFILE = -f makefile IS_BAREMETAL=yes -pmic_rtc_testapp_PKG_LIST = pmic_rtc_testapp -pmic_rtc_testapp_INCLUDE = $(pmic_rtc_testapp_PATH) -export pmic_rtc_testapp_BOARDLIST = $(drvpmic_BOARDLIST) -export pmic_rtc_testapp_$(SOC)_CORELIST = $(drvpmic_app_$(SOC)_CORELIST) -pmic_rtc_testapp_SBL_APPIMAGEGEN = yes -export pmic_rtc_testapp_SBL_APPIMAGEGEN - -pmic_EXAMPLE_LIST += pmic_rtc_testapp - -# -# GPIO test -# -export pmic_gpio_testapp_COMP_LIST = pmic_gpio_testapp -pmic_gpio_testapp_RELPATH = ti/drv/pmic/test/gpio_test -pmic_gpio_testapp_PATH = $(PDK_PMIC_COMP_PATH)/test/gpio_test -export pmic_gpio_testapp_BOARD_DEPENDENCY = yes -export pmic_gpio_testapp_CORE_DEPENDENCY = no -export pmic_gpio_testapp_MAKEFILE = -f makefile IS_BAREMETAL=yes -pmic_gpio_testapp_PKG_LIST = pmic_gpio_testapp -pmic_gpio_testapp_INCLUDE = $(pmic_gpio_testapp_PATH) -export pmic_gpio_testapp_BOARDLIST = $(drvpmic_BOARDLIST) -export pmic_gpio_testapp_$(SOC)_CORELIST = $(drvpmic_app_$(SOC)_CORELIST) -pmic_gpio_testapp_SBL_APPIMAGEGEN = yes -export pmic_gpio_testapp_SBL_APPIMAGEGEN - -pmic_EXAMPLE_LIST += pmic_gpio_testapp - -# -# POWER test -# -export pmic_power_testapp_COMP_LIST = pmic_power_testapp -pmic_power_testapp_RELPATH = ti/drv/pmic/test/power_test -pmic_power_testapp_PATH = $(PDK_PMIC_COMP_PATH)/test/power_test -export pmic_power_testapp_BOARD_DEPENDENCY = yes -export pmic_power_testapp_CORE_DEPENDENCY = no -export pmic_power_testapp_MAKEFILE = -f makefile IS_BAREMETAL=yes -pmic_power_testapp_PKG_LIST = pmic_power_testapp -pmic_power_testapp_INCLUDE = $(pmic_power_testapp_PATH) -export pmic_power_testapp_BOARDLIST = $(drvpmic_BOARDLIST) -export pmic_power_testapp_$(SOC)_CORELIST = $(drvpmic_app_$(SOC)_CORELIST) -pmic_power_testapp_SBL_APPIMAGEGEN = yes -export pmic_power_testapp_SBL_APPIMAGEGEN - -pmic_EXAMPLE_LIST += pmic_power_testapp - -# -# WDG test -# -export pmic_wdg_testapp_COMP_LIST = pmic_wdg_testapp -pmic_wdg_testapp_RELPATH = ti/drv/pmic/test/wdg_test -pmic_wdg_testapp_PATH = $(PDK_PMIC_COMP_PATH)/test/wdg_test -export pmic_wdg_testapp_BOARD_DEPENDENCY = yes -export pmic_wdg_testapp_CORE_DEPENDENCY = no -export pmic_wdg_testapp_MAKEFILE = -f makefile IS_BAREMETAL=yes -pmic_wdg_testapp_PKG_LIST = pmic_wdg_testapp -pmic_wdg_testapp_INCLUDE = $(pmic_wdg_testapp_PATH) -export pmic_wdg_testapp_BOARDLIST = $(drvpmic_BOARDLIST) -export pmic_wdg_testapp_$(SOC)_CORELIST = $(drvpmic_app_$(SOC)_CORELIST) -pmic_wdg_testapp_SBL_APPIMAGEGEN = yes -export pmic_wdg_testapp_SBL_APPIMAGEGEN - -pmic_EXAMPLE_LIST += pmic_wdg_testapp - -# -# MISC test -# -export pmic_misc_testapp_COMP_LIST = pmic_misc_testapp -pmic_misc_testapp_RELPATH = ti/drv/pmic/test/misc_test -pmic_misc_testapp_PATH = $(PDK_PMIC_COMP_PATH)/test/misc_test -export pmic_misc_testapp_BOARD_DEPENDENCY = yes -export pmic_misc_testapp_CORE_DEPENDENCY = no -export pmic_misc_testapp_MAKEFILE = -f makefile IS_BAREMETAL=yes -pmic_misc_testapp_PKG_LIST = pmic_misc_testapp -pmic_misc_testapp_INCLUDE = $(pmic_misc_testapp_PATH) -export pmic_misc_testapp_BOARDLIST = $(drvpmic_BOARDLIST) -export pmic_misc_testapp_$(SOC)_CORELIST = $(drvpmic_app_$(SOC)_CORELIST) -pmic_misc_testapp_SBL_APPIMAGEGEN = yes -export pmic_misc_testapp_SBL_APPIMAGEGEN - -pmic_EXAMPLE_LIST += pmic_misc_testapp - -# -# ESM test -# -export pmic_esm_testapp_COMP_LIST = pmic_esm_testapp -pmic_esm_testapp_RELPATH = ti/drv/pmic/test/esm_test -pmic_esm_testapp_PATH = $(PDK_PMIC_COMP_PATH)/test/esm_test -export pmic_esm_testapp_BOARD_DEPENDENCY = yes -export pmic_esm_testapp_CORE_DEPENDENCY = no -export pmic_esm_testapp_MAKEFILE = -f makefile IS_BAREMETAL=yes -pmic_esm_testapp_PKG_LIST = pmic_esm_testapp -pmic_esm_testapp_INCLUDE = $(pmic_esm_testapp_PATH) -export pmic_esm_testapp_BOARDLIST = $(drvpmic_BOARDLIST) -export pmic_esm_testapp_$(SOC)_CORELIST = $(drvpmic_app_$(SOC)_CORELIST) -pmic_esm_testapp_SBL_APPIMAGEGEN = yes -export pmic_esm_testapp_SBL_APPIMAGEGEN - -pmic_EXAMPLE_LIST += pmic_esm_testapp - -# -# fsm test -# -export pmic_fsm_testapp_COMP_LIST = pmic_fsm_testapp -pmic_fsm_testapp_RELPATH = ti/drv/pmic/test/fsm_test -pmic_fsm_testapp_PATH = $(PDK_PMIC_COMP_PATH)/test/fsm_test -export pmic_fsm_testapp_BOARD_DEPENDENCY = yes -export pmic_fsm_testapp_CORE_DEPENDENCY = no -export pmic_fsm_testapp_MAKEFILE = -f makefile IS_BAREMETAL=yes -pmic_fsm_testapp_PKG_LIST = pmic_fsm_testapp -pmic_fsm_testapp_INCLUDE = $(pmic_fsm_testapp_PATH) -export pmic_fsm_testapp_BOARDLIST = $(drvpmic_BOARDLIST) -export pmic_fsm_testapp_$(SOC)_CORELIST = $(drvpmic_app_$(SOC)_CORELIST) -pmic_fsm_testapp_SBL_APPIMAGEGEN = yes -export pmic_fsm_testapp_SBL_APPIMAGEGEN - -pmic_EXAMPLE_LIST += pmic_fsm_testapp - -# -# BenchMark test -# -export pmic_benchmark_testapp_COMP_LIST = pmic_benchmark_testapp -pmic_benchmark_testapp_RELPATH = ti/drv/pmic/test/benchmark_test -pmic_benchmark_testapp_PATH = $(PDK_PMIC_COMP_PATH)/test/benchmark_test -export pmic_benchmark_testapp_BOARD_DEPENDENCY = yes -export pmic_benchmark_testapp_CORE_DEPENDENCY = no -export pmic_benchmark_testapp_MAKEFILE = -f makefile IS_BAREMETAL=yes -pmic_benchmark_testapp_PKG_LIST = pmic_benchmark_testapp -pmic_benchmark_testapp_INCLUDE = $(pmic_benchmark_testapp_PATH) -export pmic_benchmark_testapp_BOARDLIST = $(drvpmic_BOARDLIST) -export pmic_benchmark_testapp_$(SOC)_CORELIST = $(drvpmic_app_$(SOC)_CORELIST) -pmic_benchmark_testapp_SBL_APPIMAGEGEN = yes -export pmic_benchmark_testapp_SBL_APPIMAGEGEN - -pmic_EXAMPLE_LIST += pmic_benchmark_testapp - -# -# Stress test -# -export pmic_stress_testapp_COMP_LIST = pmic_stress_testapp -pmic_stress_testapp_RELPATH = ti/drv/pmic/test/stress_test -pmic_stress_testapp_PATH = $(PDK_PMIC_COMP_PATH)/test/stress_test -export pmic_stress_testapp_BOARD_DEPENDENCY = yes -export pmic_stress_testapp_CORE_DEPENDENCY = no -export pmic_stress_testapp_MAKEFILE = -f makefile IS_BAREMETAL=yes -pmic_stress_testapp_PKG_LIST = pmic_stress_testapp -pmic_stress_testapp_INCLUDE = $(pmic_stress_testapp_PATH) -export pmic_stress_testapp_BOARDLIST = $(drvpmic_BOARDLIST) -export pmic_stress_testapp_$(SOC)_CORELIST = $(drvpmic_app_$(SOC)_CORELIST) -pmic_stress_testapp_SBL_APPIMAGEGEN = yes -export pmic_stress_testapp_SBL_APPIMAGEGEN - -pmic_EXAMPLE_LIST += pmic_stress_testapp - -# -# FSM MCU State test -# -export pmic_fsm_mcu_testapp_COMP_LIST = pmic_fsm_mcu_testapp -pmic_fsm_mcu_testapp_RELPATH = ti/drv/pmic/test/fsm_mcu_test -pmic_fsm_mcu_testapp_PATH = $(PDK_PMIC_COMP_PATH)/test/fsm_mcu_test -export pmic_fsm_mcu_testapp_BOARD_DEPENDENCY = yes -export pmic_fsm_mcu_testapp_CORE_DEPENDENCY = no -export pmic_fsm_mcu_testapp_MAKEFILE = -f makefile IS_BAREMETAL=yes -pmic_fsm_mcu_testapp_PKG_LIST = pmic_fsm_mcu_testapp -pmic_fsm_mcu_testapp_INCLUDE = $(pmic_fsm_mcu_testapp_PATH) -export pmic_fsm_mcu_testapp_BOARDLIST = $(drvpmic_BOARDLIST) -export pmic_fsm_mcu_testapp_$(SOC)_CORELIST = $(drvpmic_fsm_mcu_app_CORELIST) -pmic_fsm_mcu_testapp_SBL_APPIMAGEGEN = yes -export pmic_fsm_mcu_testapp_SBL_APPIMAGEGEN - -ifeq ($(BUILD_PROFILE),release) -#pmic_EXAMPLE_LIST += pmic_fsm_mcu_testapp -endif - -# -# Export Libraries and Apps to Build Env -# -export pmic_LIB_LIST -export pmic_EXAMPLE_LIST -export drvpmic_LIB_LIST = $(pmic_LIB_LIST) -export drvpmic_EXAMPLE_LIST = $(pmic_EXAMPLE_LIST) - -PMIC_CFLAGS = $(PDK_CFLAGS) -export PMIC_CFLAGS -pmic_component_make_include := 1 -endif diff --git a/pmic_mainpage.h b/pmic_mainpage.h deleted file mode 100644 index 53148dc..0000000 --- a/pmic_mainpage.h +++ /dev/null @@ -1,83 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ -/** - * \file pmic_mainpage.h - * - * \brief This file contains the main page doxygen details for PMIC LLD - */ - -/** - * \mainpage PMIC LLD - * - * - * This is an API guide for PMIC(Power Management Integrated Circuit) Driver. - * PMIC Driver is designed to power up different components on the embedded - * boards or provide supply to MCU(Micro Controller Unit) or - * SoC(System on chip) using APIs provided in the guide. - * - * The PMIC Driver supports below mentioned PMIC devices and their - * features or Modules. - * - * Supported PMIC Devices are: - * 1. TPS6594x (Leo PMIC Device) - * 2. LP8764x (Hera PMIC Device) - * - * Above PMICs have multiple functionalities and configurable features. Like, - * Real Time Clock (RTC) which provides Time, Calendar, Alarm and timer, - * Configurable GPIO pins to support wakeup, nSLEEP, PGOOD, nRESET for - * SOC/MCU, GPIOs with configurable PU/PD to enable other chips, - * Have number of BUCK(with different phases) and LDO regulators to provide - * supply to other modules on the board, Have the Voltage Monitor feature - * to monitor and notify for OV, UV, SC and Over Heat(Thermal Monitor). - * Have interrupt feature to notify severe, moderate, fsm Errors and provide - * asynchronous events for all supported features including GPIO External - * Interrupts, Have the WatchDog feature to monitor correct operation of the - * MCU using WDG trigger mode or using WDOG QA mode, Supports I2C(single and - * dual mode) and SPI communication protocols to access the registers for - * Read/Write operations with or without CRC. - * - * The PMIC-LLD includes the following sub-modules/drivers - * - * - Common (See \ref DRV_PMIC_COMMON_MODULE)
    - * - GPIO (See \ref DRV_PMIC_GPIO_MODULE)
    - * - RTC (See \ref DRV_PMIC_RTC_MODULE)
    - * - IRQ (See \ref DRV_PMIC_IRQ_MODULE)
    - * - ESM (See \ref DRV_PMIC_ESM_MODULE)
    - * - FSM (See \ref DRV_PMIC_FSM_MODULE)
    - * - POWER (See \ref DRV_PMIC_POWER_MODULE)
    - * - WDG (See \ref DRV_PMIC_WDG_MODULE)
    - * - * All above PMICs features can be accessed or configured by using PMIC Driver - * APIs and illustrated in the guide. - * - */ diff --git a/src/cfg/lp8764x/pmic_gpio_lp8764x.c b/src/cfg/lp8764x/pmic_gpio_lp8764x.c deleted file mode 100644 index 8073236..0000000 --- a/src/cfg/lp8764x/pmic_gpio_lp8764x.c +++ /dev/null @@ -1,247 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ - -/** -* \file pmic_gpio_lp8764x.c -* -* \brief This file contains the LP8764x Hera PMIC GPIO Specific -* configuration API's and structures -* -*/ - -#include -#include -#include - -/* PMIC GPIO Pins with Input Ouput Configuration */ -static Pmic_GpioInOutCfg_t gLp8764x_gpioInOutCfg[] = -{ - { - PMIC_GPIO1_CONF_REGADDR, - PMIC_GPIO_OUT_1_REGADDR, - PMIC_GPIO_IN_1_REGADDR, - PMIC_GPIO_IN_1_GPIO1_IN_SHIFT, - PMIC_GPIO_OUT_1_GPIO1_OUT_SHIFT - }, - { - PMIC_GPIO2_CONF_REGADDR, - PMIC_GPIO_OUT_1_REGADDR, - PMIC_GPIO_IN_1_REGADDR, - PMIC_GPIO_IN_1_GPIO2_IN_SHIFT, - PMIC_GPIO_OUT_1_GPIO2_OUT_SHIFT - }, - { - PMIC_GPIO3_CONF_REGADDR, - PMIC_GPIO_OUT_1_REGADDR, - PMIC_GPIO_IN_1_REGADDR, - PMIC_GPIO_IN_1_GPIO3_IN_SHIFT, - PMIC_GPIO_OUT_1_GPIO3_OUT_SHIFT - }, - { - PMIC_GPIO4_CONF_REGADDR, - PMIC_GPIO_OUT_1_REGADDR, - PMIC_GPIO_IN_1_REGADDR, - PMIC_GPIO_IN_1_GPIO4_IN_SHIFT, - PMIC_GPIO_OUT_1_GPIO4_OUT_SHIFT - }, - { - PMIC_GPIO5_CONF_REGADDR, - PMIC_GPIO_OUT_1_REGADDR, - PMIC_GPIO_IN_1_REGADDR, - PMIC_GPIO_IN_1_GPIO5_IN_SHIFT, - PMIC_GPIO_OUT_1_GPIO5_OUT_SHIFT - }, - { - PMIC_GPIO6_CONF_REGADDR, - PMIC_GPIO_OUT_1_REGADDR, - PMIC_GPIO_IN_1_REGADDR, - PMIC_GPIO_IN_1_GPIO6_IN_SHIFT, - PMIC_GPIO_OUT_1_GPIO6_OUT_SHIFT - }, - { - PMIC_GPIO7_CONF_REGADDR, - PMIC_GPIO_OUT_1_REGADDR, - PMIC_GPIO_IN_1_REGADDR, - PMIC_GPIO_IN_1_GPIO7_IN_SHIFT, - PMIC_GPIO_OUT_1_GPIO7_OUT_SHIFT - }, - { - PMIC_GPIO8_CONF_REGADDR, - PMIC_GPIO_OUT_1_REGADDR, - PMIC_GPIO_IN_1_REGADDR, - PMIC_GPIO_IN_1_GPIO8_IN_SHIFT, - PMIC_GPIO_OUT_1_GPIO8_OUT_SHIFT - }, - { - PMIC_GPIO9_CONF_REGADDR, - PMIC_GPIO_OUT_2_REGADDR, - PMIC_GPIO_IN_2_REGADDR, - PMIC_GPIO_IN_2_GPIO9_IN_SHIFT, - PMIC_GPIO_OUT_2_GPIO9_OUT_SHIFT - }, - { - PMIC_GPIO10_CONF_REGADDR, - PMIC_GPIO_OUT_2_REGADDR, - PMIC_GPIO_IN_2_REGADDR, - PMIC_GPIO_IN_2_GPIO10_IN_SHIFT, - PMIC_GPIO_OUT_2_GPIO10_OUT_SHIFT - }, -}; - -/* PMIC GPIO Interrupt Register array */ -static Pmic_GpioIntRegCfg_t lp8764x_gpioIntRegCfg[] = -{ - { - PMIC_FSM_TRIG_MASK_1_REGADDR, - PMIC_FSM_TRIG_MASK_1_GPIO1_FSM_MASK_SHIFT, - PMIC_FSM_TRIG_MASK_1_GPIO1_FSM_MASK_POL_SHIFT - }, - { - PMIC_FSM_TRIG_MASK_1_REGADDR, - PMIC_FSM_TRIG_MASK_1_GPIO2_FSM_MASK_SHIFT, - PMIC_FSM_TRIG_MASK_1_GPIO2_FSM_MASK_POL_SHIFT - }, - { - PMIC_FSM_TRIG_MASK_1_REGADDR, - PMIC_FSM_TRIG_MASK_1_GPIO3_FSM_MASK_SHIFT, - PMIC_FSM_TRIG_MASK_1_GPIO3_FSM_MASK_POL_SHIFT - }, - { - PMIC_FSM_TRIG_MASK_1_REGADDR, - PMIC_FSM_TRIG_MASK_1_GPIO4_FSM_MASK_SHIFT, - PMIC_FSM_TRIG_MASK_1_GPIO4_FSM_MASK_POL_SHIFT - }, - { - PMIC_FSM_TRIG_MASK_2_REGADDR, - PMIC_FSM_TRIG_MASK_2_GPIO5_FSM_MASK_SHIFT, - PMIC_FSM_TRIG_MASK_2_GPIO5_FSM_MASK_POL_SHIFT - }, - { - PMIC_FSM_TRIG_MASK_2_REGADDR, - PMIC_FSM_TRIG_MASK_2_GPIO6_FSM_MASK_SHIFT, - PMIC_FSM_TRIG_MASK_2_GPIO6_FSM_MASK_POL_SHIFT - }, - { - PMIC_FSM_TRIG_MASK_2_REGADDR, - PMIC_FSM_TRIG_MASK_2_GPIO7_FSM_MASK_SHIFT, - PMIC_FSM_TRIG_MASK_2_GPIO7_FSM_MASK_POL_SHIFT - }, - { - PMIC_FSM_TRIG_MASK_2_REGADDR, - PMIC_FSM_TRIG_MASK_2_GPIO8_FSM_MASK_SHIFT, - PMIC_FSM_TRIG_MASK_2_GPIO8_FSM_MASK_POL_SHIFT - }, - { - PMIC_FSM_TRIG_MASK_3_REGADDR, - PMIC_FSM_TRIG_MASK_3_GPIO9_FSM_MASK_SHIFT, - PMIC_FSM_TRIG_MASK_3_GPIO9_FSM_MASK_POL_SHIFT - }, - { - PMIC_FSM_TRIG_MASK_3_REGADDR, - PMIC_FSM_TRIG_MASK_3_GPIO10_FSM_MASK_SHIFT, - PMIC_FSM_TRIG_MASK_3_GPIO10_FSM_MASK_POL_SHIFT - } -}; - -/* - * \brief Get LP8764x GPIO config - * This function is used to get LP8764x GPIO configuration - * - * \param pGpioInOutCfg [OUT] to store lp8764x gpio configuration - */ -void pmic_get_lp8764x_gpioInOutCfg(Pmic_GpioInOutCfg_t **pGpioInOutCfg) -{ - *pGpioInOutCfg = gLp8764x_gpioInOutCfg; -} - -/* - * \brief Get LP8764x GPIO Interrupt Register config - * This function is used to get LP8764x GPIO Interrupt register - * configuration - * - * \param pGpioIntRegCfg [OUT] to store lp8764x gpio register configuration - */ -void pmic_get_lp8764x_gpioIntRegCfg(Pmic_GpioIntRegCfg_t **pGpioIntRegCfg) -{ - *pGpioIntRegCfg = lp8764x_gpioIntRegCfg; -} - -/*! - * \brief This function is used to configure Enable pin for LP8764X - * PMIC HERA Device. - */ -int32_t Pmic_gpioLp8764xSetEnablePinConfiguration( - Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_GpioCfg_t gpioCfg) -{ - int32_t status = PMIC_ST_SUCCESS; - - if((bool)true == pmic_validParamCheck(gpioCfg.validParams, - PMIC_ENABLE_CFG_POLARITY_VALID)) - { - if(gpioCfg.pinPolarity > PMIC_GPIO_POL_HIGH) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == status) - { - /* Setting ENABLE pin polarity */ - status = Pmic_gpioSetPinPolarity(pPmicCoreHandle, - gpioCfg); - } - } - - return status; -} - -/*! - * \brief This function is used to read Enable pin configuration for LP8764X - * PMIC HERA Device. - */ -int32_t Pmic_gpioLp8764xGetEnablePinConfiguration( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_GpioCfg_t *pGpioCfg) -{ - int32_t status = PMIC_ST_SUCCESS; - - if((bool)true == pmic_validParamCheck(pGpioCfg->validParams, - PMIC_ENABLE_CFG_POLARITY_VALID)) - { - /* Get Enable pin polarity control */ - status = Pmic_gpioGetPinPolarity(pPmicCoreHandle, - pGpioCfg); - } - - return status; -} diff --git a/src/cfg/lp8764x/pmic_gpio_lp8764x_priv.h b/src/cfg/lp8764x/pmic_gpio_lp8764x_priv.h deleted file mode 100644 index 9370bab..0000000 --- a/src/cfg/lp8764x/pmic_gpio_lp8764x_priv.h +++ /dev/null @@ -1,154 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ - -/** - * \file pmic_gpio_lp8764x_priv.h - * - * \brief The macro definitions, structures and function prototypes for - * LP8764x HERA PMIC driver specific PMIC gpio configuration - * - */ - -#ifndef PMIC_GPIO_LP8764X_PRIV_H_ -#define PMIC_GPIO_LP8764X_PRIV_H_ - -/* ========================================================================== */ -/* Include Files */ -/* ========================================================================== */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* ========================================================================== */ -/* Macros & Typedefs */ -/* ========================================================================== */ - -/*! - * \brief GPIO Register Offsets - */ -#define PMIC_ENABLE_CONF_REGADDR (0x3CU) - -/*! - * \brief Bit fields for PMIC_MASK_GPIO9_10_REG - */ -#define PMIC_MASK_GPIO9_10_GPIO9_FALL_MASK_SHIFT (0x0U) -#define PMIC_MASK_GPIO9_10_GPIO9_RISE_MASK_SHIFT (0x3U) -#define PMIC_MASK_GPIO9_10_GPIO10_FALL_MASK_SHIFT (0x1U) -#define PMIC_MASK_GPIO9_10_GPIO10_RISE_MASK_SHIFT (0x4U) - -/*! - * \brief GPIO Register Offsets - */ -#define PMIC_MASK_GPIO9_10_REGADDR (0x51U) - -/*! - * \brief ENABLE Register bit fields - */ -#define PMIC_ENABLE_CONF_ENABLE_POL_SHIFT (0x05U) - -/*! - * \brief ENABLE Register bit mask values - */ - -#define PMIC_ENABLE_CONF_ENABLE_POL_MASK \ - ((uint8_t)(0x01U << PMIC_ENABLE_CONF_ENABLE_POL_SHIFT)) - -/*! - * \brief Bit Mask for PMIC_MASK_GPIO9_10_REG - */ -#define PMIC_MASK_GPIO9_10_GPIO9_FALL_MASK_MASK \ - ((uint8_t)(0x01 << \ - PMIC_MASK_GPIO9_10_GPIO9_FALL_MASK_SHIFT)) -#define PMIC_MASK_GPIO9_10_GPIO10_FALL_MASK_MASK \ - ((uint8_t)(0x01 << \ - PMIC_MASK_GPIO9_10_GPIO10_FALL_MASK_SHIFT)) -#define PMIC_MASK_GPIO9_10_GPIO9_RISE_MASK_MASK \ - ((uint8_t)(0x01 << \ - PMIC_MASK_GPIO9_10_GPIO9_RISE_MASK_SHIFT)) -#define PMIC_MASK_GPIO9_10_GPIO10_RISE_MASK_MASK \ - ((uint8_t)(0x01 << \ - PMIC_MASK_GPIO9_10_GPIO10_RISE_MASK_SHIFT)) - -/* - * \brief Min and Max PMIC GPIO pin supported - */ -#define PMIC_LP8764X_GPIO_PIN_MIN (1U) -#define PMIC_LP8764X_GPIO_PIN_MAX (10U) - - -/*==========================================================================*/ -/* Structures and Enums */ -/*==========================================================================*/ - -/*==========================================================================*/ -/* Function Declarations */ -/*==========================================================================*/ - -/* - * \brief Function to get the PMIC GPIO Pins with Input Ouput Configuration - * for LP8764x HERA PMIC - * - * \param pGpioInOutCfg [OUT] to store lp8764x gpio configuration - */ -void pmic_get_lp8764x_gpioInOutCfg(Pmic_GpioInOutCfg_t **pGpioInOutCfg); - -/* - * \brief Function to get the PMIC GPIO Interrupt Register array for - * LP8764x HERA PMIC - * - * \param pGpioIntRegCfg [OUT] to store lp8764x gpio register configuration - */ -void pmic_get_lp8764x_gpioIntRegCfg(Pmic_GpioIntRegCfg_t **pGpioIntRegCfg); - -/*! - * \brief This function is used to configure Enable pin for LP8764X - * PMIC HERA Device. - */ -int32_t Pmic_gpioLp8764xSetEnablePinConfiguration( - Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_GpioCfg_t gpioCfg); - -/*! - * \brief This function is used to read Enable pin configuration for LP8764X - * PMIC HERA Device. - */ -int32_t Pmic_gpioLp8764xGetEnablePinConfiguration( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_GpioCfg_t *pGpioCfg); -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif/* PMIC_GPIO_LP8764X_PRIV_H_ */ diff --git a/src/cfg/lp8764x/pmic_irq_lp8764x.c b/src/cfg/lp8764x/pmic_irq_lp8764x.c deleted file mode 100644 index b7413b3..0000000 --- a/src/cfg/lp8764x/pmic_irq_lp8764x.c +++ /dev/null @@ -1,1244 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ - -/** - * \file pmic_irq_lp8764x.c - * - * \brief This file contains the LP8764x Hera PMIC Interrupt APIs definitions - * and structures. - * - */ - -#include -#include -#include -#include -#include -#include -#include - -/* PMIC LP8764x Interrupt Configuration as per Pmic_lp8764x_IrqNum. */ -static Pmic_IntrCfg_t gLp8764x_intCfg[] = -{ - { - PMIC_WD_ERR_STATUS_REGADDR, - PMIC_WD_ERR_STATUS_WD_RST_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_WD_ERR_STATUS_REGADDR, - PMIC_WD_ERR_STATUS_WD_FAIL_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_WD_ERR_STATUS_REGADDR, - PMIC_WD_ERR_STATUS_WD_LONGWIN_TIMEOUT_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_ESM_REGADDR, - PMIC_INT_ESM_ESM_MCU_RST_INT_SHIFT, - PMIC_MASK_ESM_REGADDR, - PMIC_MASK_ESM_ESM_MCU_RST_MASK_SHIFT - }, - { - PMIC_INT_ESM_REGADDR, - PMIC_INT_ESM_ESM_MCU_FAIL_INT_SHIFT, - PMIC_MASK_ESM_REGADDR, - PMIC_MASK_ESM_ESM_MCU_FAIL_MASK_SHIFT - }, - { - PMIC_INT_ESM_REGADDR, - PMIC_INT_ESM_ESM_MCU_PIN_INT_SHIFT, - PMIC_MASK_ESM_REGADDR, - PMIC_MASK_ESM_ESM_MCU_PIN_MASK_SHIFT - }, - { - PMIC_INT_READBACK_ERR_REGADDR, - PMIC_INT_READBACK_ERR_NRSTOUT_SOC_READBACK_INT_SHIFT, - PMIC_MASK_READBACK_ERR_REGADDR, - PMIC_MASK_READBACK_ERR_NRSTOUT_SOC_READBACK_MASK_SHIFT - }, - { - PMIC_INT_READBACK_ERR_REGADDR, - PMIC_INT_READBACK_ERR_EN_DRV_READBACK_INT_SHIFT, - PMIC_MASK_READBACK_ERR_REGADDR, - PMIC_MASK_READBACK_ERR_EN_DRV_READBACK_MASK_SHIFT - }, - { - PMIC_INT_COMM_ERR_REGADDR, - PMIC_INT_COMM_ERR_I2C2_ADR_ERR_INT_SHIFT, - PMIC_MASK_COMM_ERR_REGADDR, - PMIC_MASK_COMM_ERR_I2C2_ADR_ERR_MASK_SHIFT - }, - { - PMIC_INT_COMM_ERR_REGADDR, - PMIC_INT_COMM_ERR_I2C2_CRC_ERR_INT_SHIFT, - PMIC_MASK_COMM_ERR_REGADDR, - PMIC_MASK_COMM_ERR_I2C2_CRC_ERR_MASK_SHIFT - }, - { - PMIC_INT_COMM_ERR_REGADDR, - PMIC_INT_COMM_ERR_COMM_ADR_ERR_INT_SHIFT, - PMIC_MASK_COMM_ERR_REGADDR, - PMIC_MASK_COMM_ERR_COMM_ADR_ERR_MASK_SHIFT - }, - { - PMIC_INT_COMM_ERR_REGADDR, - PMIC_INT_COMM_ERR_COMM_CRC_ERR_INT_SHIFT, - PMIC_MASK_COMM_ERR_REGADDR, - PMIC_MASK_COMM_ERR_COMM_CRC_ERR_MASK_SHIFT - }, - { - PMIC_INT_COMM_ERR_REGADDR, - PMIC_INT_COMM_ERR_COMM_FRM_ERR_INT_SHIFT, - PMIC_MASK_COMM_ERR_REGADDR, - PMIC_MASK_COMM_ERR_COMM_FRM_ERR_MASK_SHIFT - }, - { - PMIC_INT_FSM_ERR_REGADDR, - PMIC_INT_FSM_ERR_SOC_PWR_ERR_INT_SHIFT, - PMIC_MASK_FSM_ERR_REGADDR, - PMIC_MASK_FSM_ERR_SOC_PWR_ERR_MASK_SHIFT - }, - { - PMIC_INT_FSM_ERR_REGADDR, - PMIC_INT_FSM_ERR_MCU_PWR_ERR_INT_SHIFT, - PMIC_MASK_FSM_ERR_REGADDR, - PMIC_MASK_FSM_ERR_MCU_PWR_ERR_MASK_SHIFT - }, - { - PMIC_INT_FSM_ERR_REGADDR, - PMIC_INT_FSM_ERR_ORD_SHUTDOWN_INT_SHIFT, - PMIC_MASK_FSM_ERR_REGADDR, - PMIC_MASK_FSM_ERR_ORD_SHUTDOWN_MASK_SHIFT - }, - { - PMIC_INT_FSM_ERR_REGADDR, - PMIC_INT_FSM_ERR_IMM_SHUTDOWN_INT_SHIFT, - PMIC_MASK_FSM_ERR_REGADDR, - PMIC_MASK_FSM_ERR_IMM_SHUTDOWN_MASK_SHIFT - }, - { - PMIC_INT_SEVERE_ERR_REGADDR, - PMIC_INT_SEVERE_ERR_PFSM_ERR_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_SEVERE_ERR_REGADDR, - PMIC_INT_SEVERE_ERR_VCCA_OVP_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_SEVERE_ERR_REGADDR, - PMIC_INT_SEVERE_ERR_TSD_IMM_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_MODERATE_ERR_REGADDR, - PMIC_INT_MODERATE_ERR_NRSTOUT_READBACK_INT_SHIFT, - PMIC_MASK_MODERATE_ERR_REGADDR, - PMIC_MASK_MODERATE_ERR_NRSTOUT_READBACK_MASK_SHIFT - }, - { - PMIC_INT_MODERATE_ERR_REGADDR, - PMIC_INT_MODERATE_ERR_NINT_READBACK_INT_SHIFT, - PMIC_MASK_MODERATE_ERR_REGADDR, - PMIC_MASK_MODERATE_ERR_NINT_READBACK_MASK_SHIFT - }, - { - PMIC_INT_MODERATE_ERR_REGADDR, - PMIC_INT_MODERATE_ERR_SPMI_ERR_INT_SHIFT, - PMIC_MASK_MODERATE_ERR_REGADDR, - PMIC_MASK_MODERATE_ERR_SPMI_ERR_MASK_SHIFT - }, - { - PMIC_INT_MODERATE_ERR_REGADDR, - PMIC_INT_MODERATE_ERR_RECOV_CNT_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_MODERATE_ERR_REGADDR, - PMIC_INT_MODERATE_ERR_REG_CRC_ERR_INT_SHIFT, - PMIC_MASK_MODERATE_ERR_REGADDR, - PMIC_MASK_MODERATE_ERR_REG_CRC_ERR_MASK_SHIFT - }, - { - PMIC_INT_MODERATE_ERR_REGADDR, - PMIC_INT_MODERATE_ERR_BIST_FAIL_INT_SHIFT, - PMIC_MASK_MODERATE_ERR_REGADDR, - PMIC_MASK_MODERATE_ERR_BIST_FAIL_MASK_SHIFT - }, - { - PMIC_INT_MODERATE_ERR_REGADDR, - PMIC_INT_MODERATE_ERR_TSD_ORD_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_MISC_REGADDR, - PMIC_INT_MISC_TWARN_INT_SHIFT, - PMIC_MASK_MISC_REGADDR, - PMIC_MASK_MISC_TWARN_MASK_SHIFT - }, - { - PMIC_INT_MISC_REGADDR, - PMIC_INT_MISC_EXT_CLK_INT_SHIFT, - PMIC_MASK_MISC_REGADDR, - PMIC_MASK_MISC_EXT_CLK_MASK_SHIFT - }, - { - PMIC_INT_MISC_REGADDR, - PMIC_INT_MISC_BIST_PASS_INT_SHIFT, - PMIC_MASK_MISC_REGADDR, - PMIC_MASK_MISC_BIST_PASS_MASK_SHIFT - }, - { - PMIC_INT_STARTUP_REGADDR, - PMIC_INT_STARTUP_FSD_INT_SHIFT, - PMIC_MASK_STARTUP_REGADDR, - PMIC_MASK_STARTUP_FSD_MASK_SHIFT - }, - { - PMIC_INT_STARTUP_REGADDR, - PMIC_INT_STARTUP_ENABLE_INT_SHIFT, - PMIC_MASK_STARTUP_REGADDR, - PMIC_MASK_STARTUP_ENABLE_MASK_SHIFT, - }, - { - PMIC_INT_GPIO1_8_REGADDR, - PMIC_INT_GPIO1_8_GPIO8_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_GPIO1_8_REGADDR, - PMIC_INT_GPIO1_8_GPIO7_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_GPIO1_8_REGADDR, - PMIC_INT_GPIO1_8_GPIO6_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_GPIO1_8_REGADDR, - PMIC_INT_GPIO1_8_GPIO5_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_GPIO1_8_REGADDR, - PMIC_INT_GPIO1_8_GPIO4_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_GPIO1_8_REGADDR, - PMIC_INT_GPIO1_8_GPIO3_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_GPIO1_8_REGADDR, - PMIC_INT_GPIO1_8_GPIO2_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_GPIO1_8_REGADDR, - PMIC_INT_GPIO1_8_GPIO1_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_GPIO_REGADDR, - PMIC_INT_GPIO_GPIO10_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_GPIO_REGADDR, - PMIC_INT_GPIO_GPIO9_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_VMON_REGADDR, - PMIC_INT_VMON_VMON2_RV_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_VMON_REGADDR, - PMIC_INT_VMON_VMON2_UV_INT_SHIFT, - PMIC_MASK_VMON_REGADDR, - PMIC_MASK_VMON_VMON2_UV_MASK_SHIFT - }, - { - PMIC_INT_VMON_REGADDR, - PMIC_INT_VMON_VMON2_OV_INT_SHIFT, - PMIC_MASK_VMON_REGADDR, - PMIC_MASK_VMON_VMON2_OV_MASK_SHIFT - }, - { - PMIC_INT_VMON_REGADDR, - PMIC_INT_VMON_VMON1_RV_INT_MASK, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_VMON_REGADDR, - PMIC_INT_VMON_VMON1_UV_INT_SHIFT, - PMIC_MASK_VMON_REGADDR, - PMIC_MASK_VMON_VMON1_UV_MASK_SHIFT - }, - { - PMIC_INT_VMON_REGADDR, - PMIC_INT_VMON_VMON1_OV_INT_SHIFT, - PMIC_MASK_VMON_REGADDR, - PMIC_MASK_VMON_VMON1_OV_MASK_SHIFT - }, - { - PMIC_INT_VMON_REGADDR, - PMIC_INT_VMON_VCCA_UV_INT_SHIFT, - PMIC_MASK_VMON_REGADDR, - PMIC_MASK_VMON_VCCA_UV_MASK_SHIFT - }, - { - PMIC_INT_VMON_REGADDR, - PMIC_INT_VMON_VCCA_OV_INT_SHIFT, - PMIC_MASK_VMON_REGADDR, - PMIC_MASK_VMON_VCCA_OV_MASK_SHIFT - }, - { - PMIC_INT_BUCK3_4_REGADDR, - PMIC_INT_BUCK3_4_BUCK4_ILIM_INT_SHIFT, - PMIC_MASK_BUCK3_4_REGADDR, - PMIC_MASK_BUCK3_4_BUCK4_ILIM_MASK_SHIFT - }, - { - PMIC_INT_BUCK3_4_REGADDR, - PMIC_INT_BUCK3_4_BUCK4_SC_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_BUCK3_4_REGADDR, - PMIC_INT_BUCK3_4_BUCK4_UV_INT_SHIFT, - PMIC_MASK_BUCK3_4_REGADDR, - PMIC_MASK_BUCK3_4_BUCK4_UV_MASK_SHIFT - }, - { - PMIC_INT_BUCK3_4_REGADDR, - PMIC_INT_BUCK3_4_BUCK4_OV_INT_SHIFT, - PMIC_MASK_BUCK3_4_REGADDR, - PMIC_MASK_BUCK3_4_BUCK4_OV_MASK_SHIFT - }, - { - PMIC_INT_BUCK3_4_REGADDR, - PMIC_INT_BUCK3_4_BUCK3_ILIM_INT_SHIFT, - PMIC_MASK_BUCK3_4_REGADDR, - PMIC_MASK_BUCK3_4_BUCK3_ILIM_MASK_SHIFT - }, - { - PMIC_INT_BUCK3_4_REGADDR, - PMIC_INT_BUCK3_4_BUCK3_SC_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_BUCK3_4_REGADDR, - PMIC_INT_BUCK3_4_BUCK3_UV_INT_SHIFT, - PMIC_MASK_BUCK3_4_REGADDR, - PMIC_MASK_BUCK3_4_BUCK3_UV_MASK_SHIFT - }, - { - PMIC_INT_BUCK3_4_REGADDR, - PMIC_INT_BUCK3_4_BUCK3_OV_INT_SHIFT, - PMIC_MASK_BUCK3_4_REGADDR, - PMIC_MASK_BUCK3_4_BUCK3_OV_MASK_SHIFT - }, - { - PMIC_INT_BUCK1_2_REGADDR, - PMIC_INT_BUCK1_2_BUCK2_ILIM_INT_SHIFT, - PMIC_MASK_BUCK1_2_REGADDR, - PMIC_MASK_BUCK1_2_BUCK2_ILIM_MASK_SHIFT - }, - { - PMIC_INT_BUCK1_2_REGADDR, - PMIC_INT_BUCK1_2_BUCK2_SC_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_BUCK1_2_REGADDR, - PMIC_INT_BUCK1_2_BUCK2_UV_INT_SHIFT, - PMIC_MASK_BUCK1_2_REGADDR, - PMIC_MASK_BUCK1_2_BUCK2_UV_MASK_SHIFT - }, - { - PMIC_INT_BUCK1_2_REGADDR, - PMIC_INT_BUCK1_2_BUCK2_OV_INT_SHIFT, - PMIC_MASK_BUCK1_2_REGADDR, - PMIC_MASK_BUCK1_2_BUCK2_OV_MASK_SHIFT - }, - { - PMIC_INT_BUCK1_2_REGADDR, - PMIC_INT_BUCK1_2_BUCK1_ILIM_INT_SHIFT, - PMIC_MASK_BUCK1_2_REGADDR, - PMIC_MASK_BUCK1_2_BUCK1_ILIM_MASK_SHIFT - }, - { - PMIC_INT_BUCK1_2_REGADDR, - PMIC_INT_BUCK1_2_BUCK1_SC_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_BUCK1_2_REGADDR, - PMIC_INT_BUCK1_2_BUCK1_UV_INT_SHIFT, - PMIC_MASK_BUCK1_2_REGADDR, - PMIC_MASK_BUCK1_2_BUCK1_UV_MASK_SHIFT - }, - { - PMIC_INT_BUCK1_2_REGADDR, - PMIC_INT_BUCK1_2_BUCK1_OV_INT_SHIFT, - PMIC_MASK_BUCK1_2_REGADDR, - PMIC_MASK_BUCK1_2_BUCK1_OV_MASK_SHIFT - }, - { - PMIC_INT_STARTUP_REGADDR, - PMIC_INT_STARTUP_SOFT_REBOOT_INT_SHIFT, - PMIC_MASK_STARTUP_REGADDR, - PMIC_MASK_STARTUP_SOFT_REBOOT_MASK_SHIFT - }, -}; - -/* PMIC LP8764x GPIO Interrupt Mask Configuration as per Pmic_IrqGpioNum. */ -static Pmic_GpioIntrTypeCfg_t lp8764x_gpioIntrCfg[] = -{ - { - PMIC_MASK_GPIO1_8_RISE_REGADDR, - PMIC_MASK_GPIO1_8_RISE_GPIO1_RISE_MASK_SHIFT, - PMIC_MASK_GPIO1_8_FALL_REGADDR, - PMIC_MASK_GPIO1_8_FALL_GPIO1_FALL_MASK_SHIFT - }, - { - PMIC_MASK_GPIO1_8_RISE_REGADDR, - PMIC_MASK_GPIO1_8_RISE_GPIO2_RISE_MASK_SHIFT, - PMIC_MASK_GPIO1_8_FALL_REGADDR, - PMIC_MASK_GPIO1_8_FALL_GPIO2_FALL_MASK_SHIFT - }, - { - PMIC_MASK_GPIO1_8_RISE_REGADDR, - PMIC_MASK_GPIO1_8_RISE_GPIO3_RISE_MASK_SHIFT, - PMIC_MASK_GPIO1_8_FALL_REGADDR, - PMIC_MASK_GPIO1_8_FALL_GPIO3_FALL_MASK_SHIFT - }, - { - PMIC_MASK_GPIO1_8_RISE_REGADDR, - PMIC_MASK_GPIO1_8_RISE_GPIO4_RISE_MASK_SHIFT, - PMIC_MASK_GPIO1_8_FALL_REGADDR, - PMIC_MASK_GPIO1_8_FALL_GPIO4_FALL_MASK_SHIFT - }, - { - PMIC_MASK_GPIO1_8_RISE_REGADDR, - PMIC_MASK_GPIO1_8_RISE_GPIO5_RISE_MASK_SHIFT, - PMIC_MASK_GPIO1_8_FALL_REGADDR, - PMIC_MASK_GPIO1_8_FALL_GPIO5_FALL_MASK_SHIFT - }, - { - PMIC_MASK_GPIO1_8_RISE_REGADDR, - PMIC_MASK_GPIO1_8_RISE_GPIO6_RISE_MASK_SHIFT, - PMIC_MASK_GPIO1_8_FALL_REGADDR, - PMIC_MASK_GPIO1_8_FALL_GPIO6_FALL_MASK_SHIFT - }, - { - PMIC_MASK_GPIO1_8_RISE_REGADDR, - PMIC_MASK_GPIO1_8_RISE_GPIO7_RISE_MASK_SHIFT, - PMIC_MASK_GPIO1_8_FALL_REGADDR, - PMIC_MASK_GPIO1_8_FALL_GPIO7_FALL_MASK_SHIFT - }, - { - PMIC_MASK_GPIO1_8_RISE_REGADDR, - PMIC_MASK_GPIO1_8_RISE_GPIO8_RISE_MASK_SHIFT, - PMIC_MASK_GPIO1_8_FALL_REGADDR, - PMIC_MASK_GPIO1_8_FALL_GPIO8_FALL_MASK_SHIFT - }, - { - PMIC_MASK_GPIO9_10_REGADDR, - PMIC_MASK_GPIO9_10_GPIO9_RISE_MASK_SHIFT, - PMIC_MASK_GPIO9_10_REGADDR, - PMIC_MASK_GPIO9_10_GPIO9_FALL_MASK_SHIFT - }, - { - PMIC_MASK_GPIO9_10_REGADDR, - PMIC_MASK_GPIO9_10_GPIO10_RISE_MASK_SHIFT, - PMIC_MASK_GPIO9_10_REGADDR, - PMIC_MASK_GPIO9_10_GPIO10_FALL_MASK_SHIFT - } -}; - -/* - * \brief Get LP8764x Interrupt config. - * This function is used to get LP8764x Interrupt configuration. - * - * \param pIntCfg [OUT] To store lp8764x Interrupt configuration. - */ -void pmic_get_lp8764x_intrCfg(Pmic_IntrCfg_t **pIntrCfg) -{ - *pIntrCfg = gLp8764x_intCfg; -} - -/* - * \brief Get LP8764x Interrupt config. - * This function is used to get LP8764x Interrupt configuration. - * - * \param pGpioIntrCfg [OUT] To store lp8764x Interrupt configuration. - */ -void pmic_get_lp8764x_intrGpioCfg(Pmic_GpioIntrTypeCfg_t **pGpioIntrCfg) -{ - *pGpioIntrCfg = lp8764x_gpioIntrCfg; -} - -/*! - * \brief Function to decipher BUCK1 and BUCK 1 Error - */ -static int32_t Pmic_lp8764x_getBuck1Buck2Err( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_IrqStatus_t *pErrStat) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_INT_BUCK1_2_REGADDR, - ®Data); - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if((PMIC_ST_SUCCESS == pmicStatus) && (0U != regData)) - { - if((regData & PMIC_INT_BUCK1_2_BUCK2_OV_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_BUCK2_OV_INT); - } - - if((regData & PMIC_INT_BUCK1_2_BUCK2_UV_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_BUCK2_UV_INT); - } - - if((regData & PMIC_INT_BUCK1_2_BUCK2_SC_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_BUCK2_SC_INT); - } - - if((regData & PMIC_INT_BUCK1_2_BUCK2_ILIM_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_BUCK2_ILIM_INT); - } - - if((regData & PMIC_INT_BUCK1_2_BUCK1_OV_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_BUCK1_OV_INT); - } - - if((regData & PMIC_INT_BUCK1_2_BUCK1_UV_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_BUCK1_UV_INT); - } - - if((regData & PMIC_INT_BUCK1_2_BUCK1_SC_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_BUCK1_SC_INT); - } - - if((regData & PMIC_INT_BUCK1_2_BUCK1_ILIM_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_BUCK1_ILIM_INT); - } - } - - return pmicStatus; -} - -/*! - * \brief Function to decipher BUCK3 and BUCK 4 Error - */ -static int32_t Pmic_lp8764x_getBuck3Buck4Err( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_IrqStatus_t *pErrStat) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_INT_BUCK3_4_REGADDR, - ®Data); - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if((PMIC_ST_SUCCESS == pmicStatus) && (0U != regData)) - { - if((regData & PMIC_INT_BUCK3_4_BUCK4_OV_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_BUCK4_OV_INT); - } - - if((regData & PMIC_INT_BUCK3_4_BUCK4_UV_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_BUCK4_UV_INT); - } - - if((regData & PMIC_INT_BUCK3_4_BUCK4_SC_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_BUCK4_SC_INT); - } - - if((regData & PMIC_INT_BUCK3_4_BUCK4_ILIM_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_BUCK4_ILIM_INT); - } - - if((regData & PMIC_INT_BUCK3_4_BUCK3_OV_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_BUCK3_OV_INT); - } - - if((regData & PMIC_INT_BUCK3_4_BUCK3_UV_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_BUCK3_UV_INT); - } - - if((regData & PMIC_INT_BUCK3_4_BUCK3_SC_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_BUCK3_SC_INT); - } - - if((regData & PMIC_INT_BUCK3_4_BUCK3_ILIM_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_BUCK3_ILIM_INT); - } - } - - return pmicStatus; -} - -/*! - * \brief Function to decipher BUCK Error - */ -static int32_t Pmic_lp8764x_getBuckErr(Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t regValue, - Pmic_IrqStatus_t *pErrStat) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - /* PMIC BUCK3_4 Interrupt Status Check */ - if((regValue & PMIC_INT_BUCK_BUCK3_4_INT_MASK) != 0U) - { - pmicStatus = Pmic_lp8764x_getBuck3Buck4Err(pPmicCoreHandle, pErrStat); - } - - /* PMIC BUCK1_2 Interrupt Status Check */ - if((regValue & PMIC_INT_BUCK_BUCK1_2_INT_MASK) != 0U) - { - pmicStatus = Pmic_lp8764x_getBuck1Buck2Err(pPmicCoreHandle, pErrStat); - } - - return pmicStatus; -} - -/*! - * \brief Function to decipher VMON Error - */ -static void Pmic_lp8764x_getVmonErr(uint8_t regValue, - Pmic_IrqStatus_t *pErrStat) -{ - if((regValue & PMIC_INT_VMON_VCCA_OV_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_VCCA_OV_INT); - } - - if((regValue & PMIC_INT_VMON_VCCA_UV_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_VCCA_UV_INT); - } - - if((regValue & PMIC_INT_VMON_VMON1_OV_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_VMON1_OV_INT); - } - - if((regValue & PMIC_INT_VMON_VMON1_UV_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_VMON1_UV_INT); - } - - if((regValue & PMIC_INT_VMON_VMON1_RV_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_VMON1_RV_INT); - } - - if((regValue & PMIC_INT_VMON_VMON2_OV_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_VMON2_OV_INT); - } - - if((regValue & PMIC_INT_VMON_VMON2_UV_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_VMON2_UV_INT); - } - - if((regValue & PMIC_INT_VMON_VMON2_RV_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_VMON2_RV_INT); - } -} - -/*! - * \brief Function to get GPIO1 to GPIO8 Error - */ -static void Pmic_lp8764x_getGpio1ToGpio8Err(uint8_t regData, - Pmic_IrqStatus_t *pErrStat) -{ - if((regData & PMIC_INT_GPIO1_8_GPIO1_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_GPIO1_INT); - } - - if((regData & PMIC_INT_GPIO1_8_GPIO2_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_GPIO2_INT); - } - - if((regData & PMIC_INT_GPIO1_8_GPIO3_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_GPIO3_INT); - } - - if((regData & PMIC_INT_GPIO1_8_GPIO4_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_GPIO4_INT); - } - - if((regData & PMIC_INT_GPIO1_8_GPIO5_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_GPIO5_INT); - } - - if((regData & PMIC_INT_GPIO1_8_GPIO6_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_GPIO6_INT); - } - - if((regData & PMIC_INT_GPIO1_8_GPIO7_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_GPIO7_INT); - } - - if((regData & PMIC_INT_GPIO1_8_GPIO8_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_GPIO8_INT); - } - -} - -/*! - * \brief Function to decipher GPIO Error - */ -static int32_t Pmic_lp8764x_getGpioErr(Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t regValue, - Pmic_IrqStatus_t *pErrStat) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - /* Checking GPIO1_8 Bit field for INT_GPIO Register */ - if((regValue & PMIC_INT_GPIO_GPIO1_8_INT_MASK) != 0U) - { - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_INT_GPIO1_8_REGADDR, - ®Data); - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if((PMIC_ST_SUCCESS == pmicStatus) && - (0U != regData)) - { - Pmic_lp8764x_getGpio1ToGpio8Err(regData, pErrStat); - } - } - - if((regValue & PMIC_INT_GPIO_GPIO9_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_GPIO9_INT); - } - - if((regValue & PMIC_INT_GPIO_GPIO10_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_GPIO10_INT); - } - - return pmicStatus; -} - -/*! - * \brief Function to decipher STARTUP Error - */ -static int32_t Pmic_lp8764x_getStartupErr( - const Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t regValue, - Pmic_IrqStatus_t *pErrStat) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if((regValue & PMIC_INT_STARTUP_ENABLE_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_ENABLE_INT); - } - - if((regValue & PMIC_INT_STARTUP_FSD_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_FSD_INT); - } - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - if((regValue & PMIC_INT_STARTUP_SOFT_REBOOT_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_SOFT_REBOOT_INT); - } - } - - return pmicStatus; -} - -/*! - * \brief Function to decipher MISC Error - */ -static void Pmic_lp8764x_getMiscErr(uint8_t regValue, - Pmic_IrqStatus_t *pErrStat) -{ - if((regValue & PMIC_INT_MISC_BIST_PASS_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_BIST_PASS_INT); - } - - if((regValue & PMIC_INT_MISC_EXT_CLK_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_EXT_CLK_INT); - } - - if((regValue & PMIC_INT_MISC_TWARN_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_TWARN_INT); - } -} - -/*! - * \brief Function to decipher MODERATE Error - */ -static void Pmic_lp8764x_getModerateErr(uint8_t regValue, - Pmic_IrqStatus_t *pErrStat) -{ - if((regValue & PMIC_INT_MODERATE_ERR_TSD_ORD_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_TSD_ORD_INT); - } - - if((regValue & PMIC_INT_MODERATE_ERR_BIST_FAIL_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_BIST_FAIL_INT); - } - - if((regValue & PMIC_INT_MODERATE_ERR_REG_CRC_ERR_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_REG_CRC_ERR_INT); - } - - if((regValue & PMIC_INT_MODERATE_ERR_RECOV_CNT_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_RECOV_CNT_INT); - } - - if((regValue & PMIC_INT_MODERATE_ERR_SPMI_ERR_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_SPMI_ERR_INT); - } - - if((regValue & PMIC_INT_MODERATE_ERR_NINT_READBACK_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_NINT_READBACK_INT); - } - - if((regValue & PMIC_INT_MODERATE_ERR_NRSTOUT_READBACK_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_NRSTOUT_READBACK_INT); - } -} - -/*! - * \brief Function to decipher SEVERE Error - */ -static void Pmic_lp8764x_getSevereErr(uint8_t regValue, - Pmic_IrqStatus_t *pErrStat) -{ - if((regValue & PMIC_INT_SEVERE_ERR_TSD_IMM_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_TSD_IMM_INT); - } - - if((regValue & PMIC_INT_SEVERE_ERR_VCCA_OVP_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_VCCA_OVP_INT); - } - - if((regValue & PMIC_INT_SEVERE_ERR_PFSM_ERR_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_PFSM_ERR_INT); - } -} - -/*! - * \brief Function to decipher FSM - Communication Error - */ -static void Pmic_lp8764x_getFsmCommErr(Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t regValue, - Pmic_IrqStatus_t *pErrStat) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - if((regValue & PMIC_INT_FSM_ERR_COMM_ERR_INT_MASK) != 0U) - { - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_INT_COMM_ERR_REGADDR, - ®Data); - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if((PMIC_ST_SUCCESS == pmicStatus) && (0U != regData)) - { - if((regData & PMIC_INT_COMM_ERR_COMM_FRM_ERR_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_COMM_FRM_ERR_INT); - } - - if((regData & PMIC_INT_COMM_ERR_COMM_CRC_ERR_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_COMM_CRC_ERR_INT); - } - - if((regData & PMIC_INT_COMM_ERR_COMM_ADR_ERR_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_COMM_ADR_ERR_INT); - } - - if((regData & PMIC_INT_COMM_ERR_I2C2_CRC_ERR_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_I2C2_CRC_ERR_INT); - } - - if((regData & PMIC_INT_COMM_ERR_I2C2_ADR_ERR_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_I2C2_ADR_ERR_INT); - } - } - } -} - -/*! - * \brief Function to decipher FSM - Readback, ESM Error - */ -static void Pmic_lp8764x_getFsmReadbackEsmErr( - Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t regValue, - Pmic_IrqStatus_t *pErrStat) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - if((regValue & PMIC_INT_FSM_ERR_READBACK_ERR_INT_MASK) != 0U) - { - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_INT_READBACK_ERR_REGADDR, - ®Data); - - if((PMIC_ST_SUCCESS == pmicStatus) && (0U != regData)) - { - if((regData & PMIC_INT_READBACK_ERR_EN_DRV_READBACK_INT_MASK) - != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_EN_DRV_READBACK_INT); - } - - if((regData & PMIC_INT_READBACK_ERR_NRSTOUT_SOC_READBACK_INT_MASK) - != 0U) - { - Pmic_intrBitSet(pErrStat, - PMIC_LP8764X_NRSTOUT_SOC_READBACK_INT); - } - } - } - - if((regValue & PMIC_INT_FSM_ERR_ESM_INT_MASK) != 0U) - { - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_INT_ESM_REGADDR, - ®Data); - - if((PMIC_ST_SUCCESS == pmicStatus) && (0U != regData)) - { - if((regData & PMIC_INT_ESM_ESM_MCU_PIN_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_ESM_MCU_PIN_INT); - } - - if((regData & PMIC_INT_ESM_ESM_MCU_FAIL_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_ESM_MCU_FAIL_INT); - } - - if((regData & PMIC_INT_ESM_ESM_MCU_RST_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_ESM_MCU_RST_INT); - } - } - } - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); -} - -/*! - * \brief Function to decipher FSM Error - */ -static int32_t Pmic_lp8764x_getFSMErr(Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t regValue, - Pmic_IrqStatus_t *pErrStat) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - if((regValue & PMIC_INT_FSM_ERR_IMM_SHUTDOWN_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_IMM_SHUTOWN_INT); - } - - if((regValue & PMIC_INT_FSM_ERR_ORD_SHUTDOWN_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_ORD_SHUTDOWN_INT); - } - - if((regValue & PMIC_INT_FSM_ERR_MCU_PWR_ERR_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_MCU_PWR_ERR_INT); - } - - if((regValue & PMIC_INT_FSM_ERR_SOC_PWR_ERR_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_SOC_PWR_ERR_INT); - } - - Pmic_lp8764x_getFsmCommErr(pPmicCoreHandle, regValue, pErrStat); - - Pmic_lp8764x_getFsmReadbackEsmErr(pPmicCoreHandle, regValue, pErrStat); - - if((regValue & PMIC_INT_FSM_ERR_WD_INT_MASK) != 0U) - { - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_WD_ERR_STATUS_REGADDR, - ®Data); - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((regData & PMIC_INT_WD_ERR_MASK) != 0U)) - { - if((regData & PMIC_WD_ERR_STATUS_WD_RST_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_WD_RST_INT); - } - - if((regData & PMIC_WD_ERR_STATUS_WD_FAIL_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_WD_FAIL_INT); - } - - if((regData & PMIC_WD_ERR_STATUS_WD_LONGWIN_TIMEOUT_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_LP8764X_WD_LONGWIN_TIMEOUT_INT); - } - } - } - - return pmicStatus; -} - -/*! - * \brief Function to decipher the the Startup, Miscellaneous, Moderate, - * Severe, FSM Error - */ -static int32_t Pmic_lp8764x_irqGetStartupMiscModerateSevereFsmErr( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_IrqStatus_t *pErrStat, - uint16_t l1RegAddr, - uint8_t regValue) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - switch(l1RegAddr) - { - case PMIC_INT_STARTUP_REGADDR: - pmicStatus = Pmic_lp8764x_getStartupErr(pPmicCoreHandle, - regValue, - pErrStat); - break; - - case PMIC_INT_MISC_REGADDR: - Pmic_lp8764x_getMiscErr(regValue, pErrStat); - break; - - case PMIC_INT_MODERATE_ERR_REGADDR: - Pmic_lp8764x_getModerateErr(regValue, - pErrStat); - break; - - case PMIC_INT_SEVERE_ERR_REGADDR: - Pmic_lp8764x_getSevereErr(regValue, - pErrStat); - break; - - default: - pmicStatus = Pmic_lp8764x_getFSMErr(pPmicCoreHandle, - regValue, - pErrStat); - break; - } - - return pmicStatus; -} - -/*! - * \brief Function to decipher the L2 Error for LP8764x Hera PMIC - */ -int32_t Pmic_lp8764x_irqGetL2Error(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t l1RegAddr, - Pmic_IrqStatus_t *pErrStat) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regValue = 0U; - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Read the L1 register value */ - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - l1RegAddr, - ®Value); - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - switch(l1RegAddr) - { - case PMIC_INT_BUCK_REGADDR: - pmicStatus = Pmic_lp8764x_getBuckErr(pPmicCoreHandle, - regValue, - pErrStat); - break; - - case PMIC_INT_VMON_REGADDR: - Pmic_lp8764x_getVmonErr(regValue, - pErrStat); - break; - - case PMIC_INT_GPIO_REGADDR: - pmicStatus = Pmic_lp8764x_getGpioErr(pPmicCoreHandle, - regValue, - pErrStat); - break; - - case PMIC_INT_STARTUP_REGADDR: - case PMIC_INT_MISC_REGADDR: - case PMIC_INT_MODERATE_ERR_REGADDR: - case PMIC_INT_SEVERE_ERR_REGADDR: - case PMIC_INT_FSM_ERR_REGADDR: - pmicStatus = Pmic_lp8764x_irqGetStartupMiscModerateSevereFsmErr( - pPmicCoreHandle, - pErrStat, - l1RegAddr, - regValue); - break; - - default: - pmicStatus = PMIC_ST_ERR_INV_INT; - break; - } - } - - return pmicStatus; -} diff --git a/src/cfg/lp8764x/pmic_irq_lp8764x_priv.h b/src/cfg/lp8764x/pmic_irq_lp8764x_priv.h deleted file mode 100644 index d4fb432..0000000 --- a/src/cfg/lp8764x/pmic_irq_lp8764x_priv.h +++ /dev/null @@ -1,124 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ - -/** - * \file pmic_irq_lp8764x_priv.h - * - * \brief The macro definitions, structures and function prototypes for - * configuring PMIC IRQ. - */ - -#ifndef PMIC_IRQ_LP8764X_PRIV_H_ -#define PMIC_IRQ_LP8764X_PRIV_H_ - -/* ========================================================================= */ -/* Include Files */ -/* ========================================================================= */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* ========================================================================= */ -/* Macros & Typedefs */ -/* ========================================================================= */ -/*! - * \brief Interrupt MASK registers address - */ -#define PMIC_MASK_GPIO9_10_REGADDR (0x51U) - -/*! - * \brief PMIC Interrupt Registers Mask values and bit positions - */ -/*! PMIC_INT_VMON Register Mask values */ -#define PMIC_INT_VMON_VMON2_RV_INT_MASK (0x80U) -#define PMIC_INT_VMON_VMON2_UV_INT_MASK (0x40U) -#define PMIC_INT_VMON_VMON2_OV_INT_MASK (0x20U) -#define PMIC_INT_VMON_VMON1_RV_INT_MASK (0x10U) -#define PMIC_INT_VMON_VMON1_UV_INT_MASK (0x08U) -#define PMIC_INT_VMON_VMON1_OV_INT_MASK (0x04U) - -/*! PMIC_INT_VMON Register Bit positions */ -#define PMIC_INT_VMON_VMON2_RV_INT_SHIFT (0x7U) -#define PMIC_INT_VMON_VMON2_UV_INT_SHIFT (0x6U) -#define PMIC_INT_VMON_VMON2_OV_INT_SHIFT (0x5U) -#define PMIC_INT_VMON_VMON1_RV_INT_SHIFT (0x4U) -#define PMIC_INT_VMON_VMON1_UV_INT_SHIFT (0x3U) -#define PMIC_INT_VMON_VMON1_OV_INT_SHIFT (0x2U) - -/*! - * \brief Individual interrupt bitmasks for GPIO9_10 RISE/FALL - */ -#define PMIC_MASK_GPIO9_10_GPIO10_RISE_MASK_MASK (0x10U) -#define PMIC_MASK_GPIO9_10_GPIO9_RISE_MASK_MASK (0x08U) -#define PMIC_MASK_GPIO9_10_GPIO10_FALL_MASK_MASK (0x02U) -#define PMIC_MASK_GPIO9_10_GPIO9_FALL_MASK_MASK (0x01U) - -/*! PMIC GPIO9_10 MASK Register bit shift values */ -#define PMIC_MASK_GPIO9_10_GPIO10_RISE_MASK_SHIFT (0x4U) -#define PMIC_MASK_GPIO9_10_GPIO9_RISE_MASK_SHIFT (0x3U) -#define PMIC_MASK_GPIO9_10_GPIO10_FALL_MASK_SHIFT (0x1U) -#define PMIC_MASK_GPIO9_10_GPIO9_FALL_MASK_SHIFT (0x0U) - - -/*==========================================================================*/ -/* Structures and Enums */ -/*==========================================================================*/ - -/*==========================================================================*/ -/* Function Declarations */ -/*==========================================================================*/ -/*! - * \brief Function to get the PMIC Interrupt Registers for LP8764x HERA PMIC. - */ -void pmic_get_lp8764x_intrCfg(Pmic_IntrCfg_t **pIntCfg); - -/*! - * \brief Function to get the PMIC GPIO Interrupt Mask Registers for - * LP8764x Hera PMIC. - */ -void pmic_get_lp8764x_intrGpioCfg(Pmic_GpioIntrTypeCfg_t **pIntGpioCfg); - -/*! - * \brief Function to decipher the L2 Error for LP8764x Hera PMIC. - */ -int32_t Pmic_lp8764x_irqGetL2Error(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t l1RegAddr, - Pmic_IrqStatus_t *pErrStat); - -#ifdef __cplusplus -} - -#endif /* __cplusplus */ - -#endif /* PMIC_IRQ_LP8764X_PRIV_H_ */ diff --git a/src/cfg/lp8764x/pmic_power_lp8764x.c b/src/cfg/lp8764x/pmic_power_lp8764x.c deleted file mode 100644 index 9780118..0000000 --- a/src/cfg/lp8764x/pmic_power_lp8764x.c +++ /dev/null @@ -1,730 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ - -/** -* \file pmic_power_lp8764x.c -* -* \brief This file contains the LP8764X Leo PMIC power Specific -* configuration API's and structures -* -*/ - -#include -#include -#include -#include -#include - -static Pmic_powerRsrcRegCfg_t gLp8764x_pwrRsrcRegCfg[] = -{ - { - PMIC_VCCA_VMON_CTRL_REGADDR, - PMIC_INVALID_REGADDR, - PMIC_INVALID_REGADDR, - PMIC_INVALID_REGADDR, - PMIC_VCCA_PG_WINDOW_REGADDR, - PMIC_LP8764X_VCCA_OV_INT, - PMIC_STAT_VMON_REGADDR, - PMIC_INVALID_BIT_SHIFT, - PMIC_RAIL_SEL_3_VCCA_GRP_SEL_SHIFT, - PMIC_INVALID_BIT_SHIFT, - PMIC_INVALID_BIT_SHIFT, - PMIC_INVALID_BIT_SHIFT, - PMIC_STAT_VMON_VCCA_UV_STAT_SHIFT, - PMIC_STAT_VMON_VCCA_OV_STAT_SHIFT - }, - { - PMIC_BUCK1_CTRL_REGADDR, - PMIC_BUCK1_CONF_REGADDR, - PMIC_BUCK1_VOUT_1_REGADDR, - PMIC_BUCK1_VOUT_2_REGADDR, - PMIC_BUCK1_PG_WIN_REGADDR, - PMIC_LP8764X_BUCK1_OV_INT, - PMIC_STAT_BUCK1_2_REGADDR, - PMIC_RAIL_SEL_1_REGADDR, - PMIC_RAIL_SEL_1_BUCK1_GRP_SEL_SHIFT, - PMIC_INVALID_REGADDR, - PMIC_INVALID_BIT_SHIFT, - PMIC_STAT_BUCKX_Y_BUCK1_3_ILIM_STAT_SHIFT, - PMIC_STAT_BUCKX_Y_BUCK1_3_UV_STAT_SHIFT, - PMIC_STAT_BUCKX_Y_BUCK1_3_OV_STAT_SHIFT - }, - { - PMIC_BUCK2_CTRL_REGADDR, - PMIC_BUCK2_CONF_REGADDR, - PMIC_BUCK2_VOUT_1_REGADDR, - PMIC_BUCK2_VOUT_2_REGADDR, - PMIC_BUCK2_PG_WIN_REGADDR, - PMIC_LP8764X_BUCK2_OV_INT, - PMIC_STAT_BUCK1_2_REGADDR, - PMIC_RAIL_SEL_1_REGADDR, - PMIC_RAIL_SEL_1_BUCK2_GRP_SEL_SHIFT, - PMIC_INVALID_REGADDR, - PMIC_INVALID_BIT_SHIFT, - PMIC_STAT_BUCKX_Y_BUCK2_4_ILIM_STAT_SHIFT, - PMIC_STAT_BUCKX_Y_BUCK2_4_UV_STAT_SHIFT, - PMIC_STAT_BUCKX_Y_BUCK2_4_OV_STAT_SHIFT - }, - { - PMIC_BUCK3_CTRL_REGADDR, - PMIC_BUCK3_CONF_REGADDR, - PMIC_BUCK3_VOUT_1_REGADDR, - PMIC_BUCK3_VOUT_2_REGADDR, - PMIC_BUCK3_PG_WIN_REGADDR, - PMIC_LP8764X_BUCK3_OV_INT, - PMIC_STAT_BUCK3_4_REGADDR, - PMIC_RAIL_SEL_1_REGADDR, - PMIC_RAIL_SEL_1_BUCK3_GRP_SEL_SHIFT, - PMIC_INVALID_REGADDR, - PMIC_INVALID_BIT_SHIFT, - PMIC_STAT_BUCKX_Y_BUCK1_3_ILIM_STAT_SHIFT, - PMIC_STAT_BUCKX_Y_BUCK1_3_UV_STAT_SHIFT, - PMIC_STAT_BUCKX_Y_BUCK1_3_OV_STAT_SHIFT - }, - { - PMIC_BUCK4_CTRL_REGADDR, - PMIC_BUCK4_CONF_REGADDR, - PMIC_BUCK4_VOUT_1_REGADDR, - PMIC_BUCK4_VOUT_2_REGADDR, - PMIC_BUCK4_PG_WIN_REGADDR, - PMIC_LP8764X_BUCK4_OV_INT, - PMIC_STAT_BUCK3_4_REGADDR, - PMIC_RAIL_SEL_1_REGADDR, - PMIC_RAIL_SEL_1_BUCK4_GRP_SEL_SHIFT, - PMIC_INVALID_REGADDR, - PMIC_INVALID_BIT_SHIFT, - PMIC_STAT_BUCKX_Y_BUCK2_4_ILIM_STAT_SHIFT, - PMIC_STAT_BUCKX_Y_BUCK2_4_UV_STAT_SHIFT, - PMIC_STAT_BUCKX_Y_BUCK2_4_OV_STAT_SHIFT - }, - { - PMIC_VCCA_VMON_CTRL_REGADDR, - PMIC_VMON_CONF_REGADDR, - PMIC_INVALID_REGADDR, - PMIC_INVALID_REGADDR, - PMIC_VMON1_PG_WINDOW_REGADDR, - PMIC_LP8764X_VMON1_OV_INT, - PMIC_STAT_VMON_REGADDR, - PMIC_RAIL_SEL_3_REGADDR, - PMIC_RAIL_SEL_3_VMON1_GRP_SEL_SHIFT, - PMIC_INVALID_REGADDR, - PMIC_INVALID_BIT_SHIFT, - PMIC_INVALID_BIT_SHIFT, - PMIC_STAT_VMON_VMON1_UV_STAT_SHIFT, - PMIC_STAT_VMON_VMON1_OV_STAT_SHIFT - }, - { - PMIC_VCCA_VMON_CTRL_REGADDR, - PMIC_VMON_CONF_REGADDR, - PMIC_INVALID_REGADDR, - PMIC_INVALID_REGADDR, - PMIC_VMON2_PG_WINDOW_REGADDR, - PMIC_LP8764X_VMON2_OV_INT, - PMIC_STAT_VMON_REGADDR, - PMIC_RAIL_SEL_3_REGADDR, - PMIC_RAIL_SEL_3_VMON2_GRP_SEL_SHIFT, - PMIC_INVALID_REGADDR, - PMIC_INVALID_BIT_SHIFT, - PMIC_INVALID_BIT_SHIFT, - PMIC_STAT_VMON_VMON2_UV_STAT_SHIFT, - PMIC_STAT_VMON_VMON2_OV_STAT_SHIFT - } -}; - -static Pmic_powerPgoodSrcRegCfg_t lp8764x_pgoodSrcRegCfg[] = -{ - { - PMIC_PGOOD_SEL_4_REGADDR, - PMIC_PGOOD_SEL_4_PGOOD_SEL_VCCA_SHIFT, - }, - { - PMIC_PGOOD_SEL_1_REGADDR, - PMIC_PGOOD_SEL_1_PGOOD_SEL_BUCK1_SHIFT, - }, - { - PMIC_PGOOD_SEL_1_REGADDR, - PMIC_PGOOD_SEL_1_PGOOD_SEL_BUCK2_SHIFT, - }, - { - PMIC_PGOOD_SEL_1_REGADDR, - PMIC_PGOOD_SEL_1_PGOOD_SEL_BUCK3_SHIFT, - }, - { - PMIC_PGOOD_SEL_1_REGADDR, - PMIC_PGOOD_SEL_1_PGOOD_SEL_BUCK4_SHIFT, - }, - { - PMIC_PGOOD_SEL_4_REGADDR, - PMIC_PGOOD_SEL_4_PGOOD_SEL_NRSTOUT_SHIFT, - }, - { - PMIC_PGOOD_SEL_4_REGADDR, - PMIC_PGOOD_SEL_4_PGOOD_SEL_NRSTOUT_SOC_SHIFT, - }, - { - PMIC_PGOOD_SEL_4_REGADDR, - PMIC_PGOOD_SEL_4_PGOOD_SEL_TDIE_WARN_SHIFT, - }, - { - PMIC_PGOOD_SEL_4_REGADDR, - PMIC_PGOOD_SEL_4_PGOOD_SEL_VMON1_SHIFT, - }, - { - PMIC_PGOOD_SEL_4_REGADDR, - PMIC_PGOOD_SEL_4_PGOOD_SEL_VMON2_SHIFT, - }, -}; - -static Pmic_powerIntCfg_t lp8764x_pwrIntCfg[] = -{ - { - PMIC_LP8764X_TWARN_INT, - }, - { - PMIC_LP8764X_NRSTOUT_READBACK_INT, - }, - { - PMIC_LP8764X_SOC_PWR_ERR_INT, - }, - { - PMIC_LP8764X_MCU_PWR_ERR_INT, - }, - { - PMIC_LP8764X_ORD_SHUTDOWN_INT, - }, - { - PMIC_LP8764X_IMM_SHUTOWN_INT, - }, - { - PMIC_LP8764X_NRSTOUT_SOC_READBACK_INT, - }, - { - PMIC_LP8764X_EN_DRV_READBACK_INT, - }, - -}; - -/*! - * \brief PMIC power common interrupt get Configuration function - * This function is used to read the interrupt - * Configuration - * - * \param pwrRsrcRegCfg [OUT] Pointer to store power interrupt - * number. - */ -void pmic_get_lp8764x_pwrCommonIntCfg(Pmic_powerIntCfg_t **pPwrCommonIntCfg) -{ - *pPwrCommonIntCfg = lp8764x_pwrIntCfg; -} - -/*! - * \brief PMIC power resources get Configuration function - * This function is used to read the PMIC POWER resources register - * Configuration - * - * \param pwrRsrcRegCfg [OUT] Pointer to store power resource register - * configuration - */ -void pmic_get_lp8764x_pwrRsrceRegCfg(Pmic_powerRsrcRegCfg_t **pPwrRsrcRegCfg) -{ - *pPwrRsrcRegCfg = gLp8764x_pwrRsrcRegCfg; -} - -/*! - * \brief PMIC power get Configuration function - * This function is used to read the PMIC pgood sources register - * Configuration - * - * \param pPgoodSrcRegCfg [OUT] Pointer to store power-good source register - * configuration - */ -void pmic_get_lp8764x_pwrPgoodSrcRegCfg( - Pmic_powerPgoodSrcRegCfg_t **pPgoodSrcRegCfg) -{ - *pPgoodSrcRegCfg = lp8764x_pgoodSrcRegCfg; -} - -/*! - * \brief This function is used to convert the millivolt value to vset value - * for HERA LP8764x PMIC - * - * Note: In this API, While adding support for New pwrRsrcType/ New - * vmonRange, developer need to update the API functionality for - * New pwrRsrcType/New vmonRange accordingly. - */ -int32_t Pmic_powerLP8764xConvertVoltage2VSetVal( - Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t millivolt, - uint16_t pwrRsrc, - uint8_t *pVSetVal) -{ - int32_t status = PMIC_ST_SUCCESS; - uint16_t baseMillivolt = 0U; - uint8_t millivoltStep = 0U; - uint8_t baseVoutCode = 0U; - uint8_t pwrRsrcType; - bool vmonRange; - - - pwrRsrcType = Pmic_powerGetPwrRsrcType(pwrRsrc); - - switch(pwrRsrcType) - { - case PMIC_LP8764X_POWER_RESOURCE_TYPE_VMON: - status = Pmic_powerGetVmonRange(pPmicCoreHandle, - pwrRsrc, - &(vmonRange)); - - if(PMIC_ST_SUCCESS == status) - { - if(PMIC_LP8764X_VMON_RANGE_0V3_3V34 == vmonRange) - { - status = Pmic_powerBuckVmonConvertVoltage2VSetVal( - millivolt, - &baseMillivolt, - &millivoltStep, - &baseVoutCode); - } - else - { - /* Else part checking for (PMIC_LP8764X_VMON_RANGE_3V35_5V - == vmonRange) */ - Pmic_powerVmonRange1ConvertVoltage2VSetVal(&baseMillivolt, - &millivoltStep, - &baseVoutCode); - } - } - - break; - default: - /* Default case for BUCK Resource Type */ - status = Pmic_powerBuckVmonConvertVoltage2VSetVal(millivolt, - &baseMillivolt, - &millivoltStep, - &baseVoutCode); - - break; - } - - if((PMIC_ST_SUCCESS == status) && - ((millivolt % millivoltStep) == 1U)) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == status) - { - *pVSetVal = (uint8_t)(baseVoutCode + - ((millivolt - baseMillivolt) / millivoltStep)); - } - - return status; -} - -/*! - * \brief This function is used to convert the vsetvalue to voltage in mv - * for PMIC HERA LP8764x - * - * Note: In this API, While adding support for New pwrRsrcType/ New - * vmonRange, developer need to update the API functionality for - * New pwrRsrcType/New vmonRange accordingly. - */ -int32_t Pmic_powerLP8764xConvertVSetVal2Voltage( - Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t *pVSetVal, - uint16_t pwrRsrc, - uint16_t *millivolt) -{ - int32_t status = PMIC_ST_SUCCESS; - bool vmonRange = (bool)false; - uint8_t pwrRsrcType = 0U; - uint16_t baseMillivolt = 0U; - uint8_t millivoltStep = 0U; - uint8_t baseVoutCode = 0U; - - pwrRsrcType = Pmic_powerGetPwrRsrcType(pwrRsrc); - - switch(pwrRsrcType) - { - case PMIC_LP8764X_POWER_RESOURCE_TYPE_VMON: - status = Pmic_powerGetVmonRange(pPmicCoreHandle, - pwrRsrc, - &(vmonRange)); - - if(PMIC_ST_SUCCESS == status) - { - if(PMIC_LP8764X_VMON_RANGE_0V3_3V34 == vmonRange) - { - Pmic_powerBuckVmonConvertVSetVal2Voltage(pVSetVal, - &baseMillivolt, - &millivoltStep, - &baseVoutCode); - } - else - { - /* Else part checking for (PMIC_LP8764X_VMON_RANGE_3V35_5V - == vmonRange) */ - Pmic_powerVmonRange1ConvertVSetVal2Voltage(&baseMillivolt, - &millivoltStep, - &baseVoutCode); - } - } - - break; - default: - /* Default case for BUCK Resource Type */ - Pmic_powerBuckVmonConvertVSetVal2Voltage(pVSetVal, - &baseMillivolt, - &millivoltStep, - &baseVoutCode); - break; - } - - if(PMIC_ST_SUCCESS == status) - { - *millivolt = (baseMillivolt + - (((uint16_t)*pVSetVal - baseVoutCode) * millivoltStep)); - } - - return status; -} - -/*! - * \brief This function is to validate the power good source limit for VCCA - * NRSTOUT and NRSTOUT_SOC - */ -static int32_t Pmic_validate_lp8764x_pGoodVccaNrstOutNrstOutsocSrcType( - uint16_t pgoodSrc, - uint8_t pGoodSrcType) -{ - int32_t status = PMIC_ST_SUCCESS; - - if(PMIC_LP8764X_PGOOD_SOURCE_TYPE_VCCA == pGoodSrcType) - { - if(pgoodSrc != PMIC_LP8764X_PGOOD_SOURCE_VCCA) - { - status = PMIC_ST_ERR_INV_PARAM; - } - } - else if(PMIC_LP8764X_PGOOD_SOURCE_TYPE_NRSTOUT == pGoodSrcType) - { - if(pgoodSrc != PMIC_LP8764X_PGOOD_SOURCE_NRSTOUT) - { - status = PMIC_ST_ERR_INV_PARAM; - } - } - else - { - if(pgoodSrc != PMIC_LP8764X_PGOOD_SOURCE_NRSTOUT_SOC) - { - status = PMIC_ST_ERR_INV_PARAM; - } - } - - return status; -} - -/*! - * \brief This function is to validate the power good source limit for the - * specific PMIC device. - */ -int32_t Pmic_validate_lp8764x_pGoodSrcType(uint16_t pgoodSrc) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t pGoodSrcType = 0U; - - pGoodSrcType = Pmic_powerGetPwrRsrcType(pgoodSrc); - - if((PMIC_LP8764X_PGOOD_SOURCE_TYPE_VCCA == pGoodSrcType) || - (PMIC_LP8764X_PGOOD_SOURCE_TYPE_NRSTOUT == pGoodSrcType) || - (PMIC_LP8764X_PGOOD_SOURCE_TYPE_NRSTOUT_SOC == pGoodSrcType)) - { - status = Pmic_validate_lp8764x_pGoodVccaNrstOutNrstOutsocSrcType( - pgoodSrc, - pGoodSrcType); - } - else if(PMIC_LP8764X_PGOOD_SOURCE_TYPE_TDIE == pGoodSrcType) - { - if(pgoodSrc != PMIC_LP8764X_PGOOD_SOURCE_TDIE) - { - status = PMIC_ST_ERR_INV_PARAM; - } - } - else if(PMIC_LP8764X_PGOOD_SOURCE_TYPE_BUCK == pGoodSrcType) - { - if((pgoodSrc > PMIC_LP8764X_PGOOD_BUCK_MAX) || - (pgoodSrc < PMIC_LP8764X_PGOOD_BUCK_MIN)) - { - status = PMIC_ST_ERR_INV_PARAM; - } - } - else if(PMIC_LP8764X_PGOOD_SOURCE_TYPE_VMON == pGoodSrcType) - { - if((pgoodSrc > PMIC_LP8764X_PGOOD_VMON_MAX) || - (pgoodSrc < PMIC_LP8764X_PGOOD_VMON_MIN)) - { - status = PMIC_ST_ERR_INV_PARAM; - } - } - else - { - status = PMIC_ST_ERR_INV_PARAM; - } - - return status; -} - -/*! - * \brief This function is to validate the power good signal source selection - * limit for BUCK, LDO, NRSTOUT, NRSTOUT_SOC - */ -static int32_t Pmic_validate_lp8764x_pGoodSelBuckLdoNrstoutNrstoutsoc( - uint8_t pgoodSelType, - uint8_t pGoodSrcType) -{ - int32_t status = PMIC_ST_SUCCESS; - - if((PMIC_LP8764X_PGOOD_SOURCE_TYPE_VCCA == pGoodSrcType) || - (PMIC_LP8764X_PGOOD_SOURCE_TYPE_VMON == pGoodSrcType)) - { - if(pgoodSelType > PMIC_LP8764X_POWER_PGOOD_SEL_VCCA_VMON_ENABLE) - { - status = PMIC_ST_ERR_INV_PARAM; - } - } - else if(PMIC_LP8764X_PGOOD_SOURCE_TYPE_NRSTOUT == pGoodSrcType) - { - if(pgoodSelType > PMIC_LP8764X_POWER_PGOOD_SEL_NRSTOUT) - { - status = PMIC_ST_ERR_INV_PARAM; - } - } - else - { - if(pgoodSelType > PMIC_LP8764X_POWER_PGOOD_SEL_NRSTOUT_SOC) - { - status = PMIC_ST_ERR_INV_PARAM; - } - } - - return status; -} - -/*! - * \brief This function is to validate the power good signal source selection - * limit for the specific PMIC device. - * - * Note: In this API, While adding support for New pGoodSrcType, - * developer need to update the API functionality for New - * pGoodSrcType accordingly. - */ -int32_t Pmic_validate_lp8764x_pGoodSelType(uint16_t pgoodSrc, - uint8_t pgoodSelType) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t pGoodSrcType = 0U; - - pGoodSrcType = Pmic_powerGetPwrRsrcType(pgoodSrc); - - if((PMIC_LP8764X_PGOOD_SOURCE_TYPE_VCCA == pGoodSrcType) || - (PMIC_LP8764X_PGOOD_SOURCE_TYPE_VMON == pGoodSrcType) || - (PMIC_LP8764X_PGOOD_SOURCE_TYPE_NRSTOUT == pGoodSrcType) || - (PMIC_LP8764X_PGOOD_SOURCE_TYPE_NRSTOUT_SOC == pGoodSrcType)) - { - status = Pmic_validate_lp8764x_pGoodSelBuckLdoNrstoutNrstoutsoc( - pgoodSelType, - pGoodSrcType); - } - else if(PMIC_LP8764X_PGOOD_SOURCE_TYPE_TDIE == pGoodSrcType) - { - if(pgoodSelType > PMIC_LP8764X_POWER_PGOOD_SEL_TDIE_WARN) - { - status = PMIC_ST_ERR_INV_PARAM; - } - } - else - { - /* Else case for Buck pGoodSrcType */ - if(pgoodSelType > PMIC_LP8764X_POWER_PGOOD_SEL_SRC_VOLTAGE_CURRENT) - { - status = PMIC_ST_ERR_INV_PARAM; - } - } - - return status; -} - -/** - * \brief This function is used to validate the voltage levels for - * Regulators/VMON for LP8764x PMIC - * -* Note: In this API, While adding support for New pwrRsrcType/ New - * vmonRange, developer need to update the API functionality for - * New pwrRsrcType/New vmonRange accordingly. - */ -int32_t Pmic_powerLP8764xValidateVoltageLevel( - Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t pwrRsrcType, - uint16_t pwrRsrc, - uint16_t voltage_mV) -{ - int32_t status = PMIC_ST_SUCCESS; - bool vmonRange = (bool)false; - - if(PMIC_LP8764X_POWER_RESOURCE_TYPE_VMON == pwrRsrcType) - { - status = Pmic_powerGetVmonRange(pPmicCoreHandle, - pwrRsrc, - &(vmonRange)); - - if((PMIC_ST_SUCCESS == status) && - (PMIC_LP8764X_VMON_RANGE_0V3_3V34 == vmonRange)) - { - if((voltage_mV < PMIC_LP8764X_RANGE0_VMON_MIN_VOLTAGE) || - (voltage_mV > PMIC_LP8764X_RANGE0_VMON_MAX_VOLTAGE)) - { - status = PMIC_ST_ERR_INV_PARAM; - } - } - else - { - /* Else case for PMIC_LP8764X_VMON_RANGE_3V35_5V */ - if((voltage_mV < PMIC_LP8764X_RANGE1_VMON_MIN_VOLTAGE) || - (voltage_mV > PMIC_LP8764X_RANGE1_VMON_MAX_VOLTAGE)) - { - status = PMIC_ST_ERR_INV_PARAM; - } - } - } - else - { - /* Else case for BUCK pwrRsrcType */ - if((voltage_mV < PMIC_LP8764X_REGULATOR_BUCK_MIN_VOLTAGE) || - (voltage_mV > PMIC_LP8764X_REGULATOR_BUCK_MAX_VOLTAGE)) - { - status = PMIC_ST_ERR_INV_PARAM; - } - } - - return status; -} - -/*! - * \brief This function is to validate the power resource limit for the - * LP8764x PMIC device. - */ -int32_t Pmic_powerLP8764xValidatePwrRsrcLimit( - const Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t pwrRsrcType, - uint16_t pwrRsrc) -{ - int32_t status = PMIC_ST_SUCCESS; - - if(PMIC_LP8764X_POWER_RESOURCE_TYPE_VCCA == pwrRsrcType) - { - if(pwrRsrc != PMIC_LP8764X_POWER_SOURCE_VCCA) - { - status = PMIC_ST_ERR_INV_PARAM; - } - } - else if(PMIC_LP8764X_POWER_RESOURCE_TYPE_BUCK == pwrRsrcType) - { - if(((bool)false) == pPmicCoreHandle->pPmic_SubSysInfo->buckEnable) - { - status = PMIC_ST_ERR_INV_PARAM; - } - else - { - if((pwrRsrc > PMIC_LP8764X_BUCK_MAX) || - (pwrRsrc < PMIC_LP8764X_BUCK_MIN)) - { - status = PMIC_ST_ERR_INV_PARAM; - } - } - } - else if(PMIC_LP8764X_POWER_RESOURCE_TYPE_VMON == pwrRsrcType) - { - if((pwrRsrc > PMIC_LP8764X_VMON_MAX) || - (pwrRsrc < PMIC_LP8764X_VMON_MIN)) - { - status = PMIC_ST_ERR_INV_PARAM; - } - } - else if((PMIC_LP8764X_POWER_RESOURCE_TYPE_LDO == pwrRsrcType) && - (((bool)false) == pPmicCoreHandle->pPmic_SubSysInfo->ldoEnable)) - { - status = PMIC_ST_ERR_INV_PARAM; - } - else - { - status = PMIC_ST_ERR_INV_PARAM; - } - - return status; -} - -/*! - * \brief This function is to validate the power resource interrupt type - * for the LP8764x PMIC device. - * - * Note: In this API, While adding support for New pwrResourceType, - * developer need to update the API functionality for New - * pwrResourceType accordingly. - */ -int32_t Pmic_powerLP8764xValidateIntrType(uint8_t pwrResourceType, - uint8_t intrType) -{ - int32_t status = PMIC_ST_SUCCESS; - - if((PMIC_LP8764X_POWER_RESOURCE_TYPE_VCCA == pwrResourceType) || - (PMIC_LP8764X_POWER_RESOURCE_TYPE_VMON == pwrResourceType)) - { - if((intrType != PMIC_LP8764X_POWER_OV_INT) && - (intrType != PMIC_LP8764X_POWER_UV_INT)) - { - status = PMIC_ST_ERR_INV_PARAM; - } - } - else - { - /* Else case for BUCK pwrResourceType */ - if((intrType != PMIC_LP8764X_POWER_OV_INT) && - (intrType != PMIC_LP8764X_POWER_UV_INT) && - (intrType != PMIC_LP8764X_POWER_ILIM_INT)) - { - status = PMIC_ST_ERR_INV_PARAM; - } - } - - return status; -} diff --git a/src/cfg/lp8764x/pmic_power_lp8764x_priv.h b/src/cfg/lp8764x/pmic_power_lp8764x_priv.h deleted file mode 100644 index 5fe5e55..0000000 --- a/src/cfg/lp8764x/pmic_power_lp8764x_priv.h +++ /dev/null @@ -1,283 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ - -/** - * \file pmic_power_lp8764x_priv.h - * - * \brief The macro definitions, structures and function prototypes for - * LPL8764X HERA PMIC driver specific PMIC power configuration - * - */ - -#ifndef PMIC_POWER_LPL8764X_PRIV_H_ -#define PMIC_POWER_LPL8764X_PRIV_H_ - -/* ========================================================================== */ -/* Include Files */ -/* ========================================================================== */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* ========================================================================== */ -/* Macros & Typedefs */ -/* ========================================================================== */ - -/*! - * \brief VMON powergood Window Register Address - */ -#define PMIC_VMON1_PG_WINDOW_REGADDR (0x2D) -#define PMIC_VMON2_PG_WINDOW_REGADDR (0x2F) - -/*! - * \brief VMON powergood Level Register Address - */ -#define PMIC_VMON1_PG_LEVEL_REGADDR (0x2E) -#define PMIC_VMON2_PG_LEVEL_REGADDR (0x30) - -/*! - * \brief VMON powergood Level Register Address - */ -#define PMIC_VMON_CONF_REGADDR (0xA8U) - -/*! - * \brief PMIC Power voltage range bit fields - */ -#define PMIC_VMON_PG_WINDOW_VMON_RANGE_SHIFT (6U) - -/*! - * \brief PMIC Powergood level bit fields - */ -#define PMIC_VMONX_PG_LEVEL_VMONX_PG_SET_SHIFT (0U) - -/*! - * \brief PMIC VMON1 and VMON2 slew rate bit fields. - */ -#define PMIC_VMON_CONF_VMON2_SLEW_RATE_SHIFT (3U) -#define PMIC_VMON_CONF_VMON1_SLEW_RATE_SHIFT (0U) - -/*! - * \brief PMIC voltage range for VMON when VMON range - is PMIC_VMON_RANGE_3V35_5V. - */ -#define PMIC_LP8764X_RANGE1_VMON_MIN_VOLTAGE (3350U) -#define PMIC_LP8764X_RANGE1_VMON_MAX_VOLTAGE (5000U) - -/*! - * \brief PMIC VMON1 and VMON2 slew rate bit masks. - */ -#define PMIC_VMON_CONF_VMON2_SLEW_RATE_MASK \ - (uint8_t)(0x07U << \ - PMIC_VMON_CONF_VMON2_SLEW_RATE_SHIFT) -#define PMIC_VMON_CONF_VMON1_SLEW_RATE_MASK \ - (uint8_t)(0x07U << \ - PMIC_VMON_CONF_VMON1_SLEW_RATE_SHIFT) -/*! - * \brief PMIC Power voltage range bit masks - */ -#define PMIC_VMON_PG_WINDOW_VMON_RANGE_MASK \ - (uint8_t)(0x01U << \ - PMIC_VMON_PG_WINDOW_VMON_RANGE_SHIFT) - -/*! - * \brief PMIC Powergood level bit masks - */ -#define PMIC_VMONX_PG_LEVEL_VMONX_PG_SET_MASK \ - (uint8_t)(0xFFU << \ - PMIC_VMONX_PG_LEVEL_VMONX_PG_SET_SHIFT) -/*! - * \brief PMIC Power Volatage range for BUCK regulator - */ -#define PMIC_LP8764X_REGULATOR_BUCK_MIN_VOLTAGE PMIC_POWER_VOLTAGE_300MV -#define PMIC_LP8764X_REGULATOR_BUCK_MAX_VOLTAGE PMIC_POWER_VOLTAGE_3340MV - -/*! - * \brief PMIC Power Volatage range for VMON, when Range is 0 - */ -#define PMIC_LP8764X_RANGE0_VMON_MIN_VOLTAGE PMIC_POWER_VOLTAGE_300MV -#define PMIC_LP8764X_RANGE0_VMON_MAX_VOLTAGE PMIC_POWER_VOLTAGE_3340MV - -/*! - * \brief PMIC Power Current range for BUCK regulator - */ -#define PMIC_LP8764X_BUCK_CURRENT_LIMIT_MIN \ - PMIC_LP8764X_REGULATOR_BUCK_CURRENT_LIMIT_2A5 -#define PMIC_LP8764X_BUCK_CURRENT_LIMIT_MAX \ - PMIC_LP8764X_REGULATOR_BUCK_CURRENT_LIMIT_6A5 - -/*! - * \brief PMIC Power Slew Rate range for BUCK regulator - */ -#define PMIC_LP8764X_BUCK_SLEW_RATE_MIN \ - PMIC_LP8764X_REGULATOR_BUCK_VMON_SLEW_RATE_33MV -#define PMIC_LP8764X_BUCK_SLEW_RATE_MAX \ - PMIC_LP8764X_REGULATOR_BUCK_VMON_SLEW_RATE_0MV31 -/*! - * \brief PMIC Power Buck regulator range - */ -#define PMIC_LP8764X_BUCK_MIN PMIC_LP8764X_REGULATOR_BUCK1 -#define PMIC_LP8764X_BUCK_MAX PMIC_LP8764X_REGULATOR_BUCK4 - -/*! - * \brief PMIC Power VMON range - */ -#define PMIC_LP8764X_VMON_MIN PMIC_LP8764X_POWER_SOURCE_VMON1 -#define PMIC_LP8764X_VMON_MAX PMIC_LP8764X_POWER_SOURCE_VMON2 - -/*! - * \brief PMIC Power RAIL group range - */ -#define PMIC_LP8764X_POWER_RAIL_SEL_MIN PMIC_LP8764X_POWER_RAIL_SEL_NONE -#define PMIC_LP8764X_POWER_RAIL_SEL_MAX PMIC_LP8764X_POWER_RAIL_SEL_OTHER - -/*! - * \brief PMIC Power Buck regulator range - */ -#define PMIC_LP8764X_PGOOD_BUCK_MIN PMIC_LP8764X_PGOOD_SOURCE_BUCK1 -#define PMIC_LP8764X_PGOOD_BUCK_MAX PMIC_LP8764X_PGOOD_SOURCE_BUCK4 - -/*! - * \brief PMIC Power VMON range - */ -#define PMIC_LP8764X_PGOOD_VMON_MIN PMIC_LP8764X_PGOOD_SOURCE_VMON1 -#define PMIC_LP8764X_PGOOD_VMON_MAX PMIC_LP8764X_PGOOD_SOURCE_VMON2 -/*! - * \brief PMIC Power Common Interrupt Range - */ -#define PMIC_LP8764X_POWER_COMMON_INTERRUPT_MAX \ - PMIC_LP8764X_POWER_INTERRUPT_EN_DRV_READBACK -/*==========================================================================*/ -/* Structures and Enums */ -/*==========================================================================*/ - -/*==========================================================================*/ -/* Function Declarations */ -/*==========================================================================*/ - -/*! - * \brief PMIC power resources get Configuration function - * This function is used to read the PMIC POWER resources register - * Configuration - * - * \param pwrRsrcRegCfg [OUT] Pointer to store power resource register - * configuration - */ -void pmic_get_lp8764x_pwrRsrceRegCfg(Pmic_powerRsrcRegCfg_t **pPwrRsrcRegCfg); - -/*! - * \brief PMIC power common interrupt get Configuration function - * This function is used to read the interrupt - * Configuration - * - * \param pwrRsrcRegCfg [OUT] Pointer to store power interrupt - * number. - */ -void pmic_get_lp8764x_pwrCommonIntCfg(Pmic_powerIntCfg_t **pPwrCommonIntCfg); - -/*! - * \brief PMIC power get Configuration function - * This function is used to read the PMIC pgood sources register - * Configuration - * - * \param pPgoodSrcRegCfg [OUT] Pointer to store power-good source register - * configuration - */ -void pmic_get_lp8764x_pwrPgoodSrcRegCfg( - Pmic_powerPgoodSrcRegCfg_t **pPgoodSrcRegCfg); - -/*! - * \brief This function is used to convert the millivolt value to vset value - * for HERA LP8764x PMIC - */ -int32_t Pmic_powerLP8764xConvertVoltage2VSetVal( - Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t millivolt, - uint16_t pwrRsrc, - uint8_t *pVSetVal); - -/*! - * \brief This function is used to convert the vsetvalue to voltage in mv - * for PMIC HERA LP8764x - */ -int32_t Pmic_powerLP8764xConvertVSetVal2Voltage( - Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t *pVSetVal, - uint16_t pwrRsrc, - uint16_t *millivolt); - -/*! - * \brief This function is to validate the power good source limit for the - * specific PMIC device. - */ -int32_t Pmic_validate_lp8764x_pGoodSrcType(uint16_t pgoodSrc); - -/*! - * \brief This function is to validate the power good signal source selection - * limit for the specific PMIC device. - */ -int32_t Pmic_validate_lp8764x_pGoodSelType(uint16_t pgoodSrc, - uint8_t pgoodSelType); - -/** - * \brief This function is used to validate the voltage levels for - * Regulators/VMON for LP8764x PMIC - */ -int32_t Pmic_powerLP8764xValidateVoltageLevel( - Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t pwrRsrcType, - uint16_t pwrRsrc, - uint16_t voltage_mV); - -/*! - * \brief This function is to validate the power resource limit for the - * LP8764x PMIC device. - */ -int32_t Pmic_powerLP8764xValidatePwrRsrcLimit( - const Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t pwrRsrcType, - uint16_t pwrRsrc); - -/*! - * \brief This function is to validate the power resource interrupt type - * for the LP8764x PMIC device. - */ -int32_t Pmic_powerLP8764xValidateIntrType(uint8_t pwrResourceType, - uint8_t intrType); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif/* PMIC_POWER_LP8764X_PRIV_H_ */ diff --git a/src/cfg/tps6594x/pmic_gpio_tps6594x.c b/src/cfg/tps6594x/pmic_gpio_tps6594x.c deleted file mode 100644 index 915ab5b..0000000 --- a/src/cfg/tps6594x/pmic_gpio_tps6594x.c +++ /dev/null @@ -1,382 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ - -/** -* \file pmic_gpio_tps6594x.c -* -* \brief This file contains the TPS6594x Leo PMIC GPIO Specific -* configuration API's and structures -* -*/ - -#include -#include -#include -#include -#include - -/* PMIC GPIO Pins with Input Ouput Configuration */ -static Pmic_GpioInOutCfg_t gTps6594x_gpioInOutCfg[] = -{ - { - PMIC_GPIO1_CONF_REGADDR, - PMIC_GPIO_OUT_1_REGADDR, - PMIC_GPIO_IN_1_REGADDR, - PMIC_GPIO_IN_1_GPIO1_IN_SHIFT, - PMIC_GPIO_OUT_1_GPIO1_OUT_SHIFT - }, - { - PMIC_GPIO2_CONF_REGADDR, - PMIC_GPIO_OUT_1_REGADDR, - PMIC_GPIO_IN_1_REGADDR, - PMIC_GPIO_IN_1_GPIO2_IN_SHIFT, - PMIC_GPIO_OUT_1_GPIO2_OUT_SHIFT - }, - { - PMIC_GPIO3_CONF_REGADDR, - PMIC_GPIO_OUT_1_REGADDR, - PMIC_GPIO_IN_1_REGADDR, - PMIC_GPIO_IN_1_GPIO3_IN_SHIFT, - PMIC_GPIO_OUT_1_GPIO3_OUT_SHIFT - }, - { - PMIC_GPIO4_CONF_REGADDR, - PMIC_GPIO_OUT_1_REGADDR, - PMIC_GPIO_IN_1_REGADDR, - PMIC_GPIO_IN_1_GPIO4_IN_SHIFT, - PMIC_GPIO_OUT_1_GPIO4_OUT_SHIFT - }, - { - PMIC_GPIO5_CONF_REGADDR, - PMIC_GPIO_OUT_1_REGADDR, - PMIC_GPIO_IN_1_REGADDR, - PMIC_GPIO_IN_1_GPIO5_IN_SHIFT, - PMIC_GPIO_OUT_1_GPIO5_OUT_SHIFT - }, - { - PMIC_GPIO6_CONF_REGADDR, - PMIC_GPIO_OUT_1_REGADDR, - PMIC_GPIO_IN_1_REGADDR, - PMIC_GPIO_IN_1_GPIO6_IN_SHIFT, - PMIC_GPIO_OUT_1_GPIO6_OUT_SHIFT - }, - { - PMIC_GPIO7_CONF_REGADDR, - PMIC_GPIO_OUT_1_REGADDR, - PMIC_GPIO_IN_1_REGADDR, - PMIC_GPIO_IN_1_GPIO7_IN_SHIFT, - PMIC_GPIO_OUT_1_GPIO7_OUT_SHIFT - }, - { - PMIC_GPIO8_CONF_REGADDR, - PMIC_GPIO_OUT_1_REGADDR, - PMIC_GPIO_IN_1_REGADDR, - PMIC_GPIO_IN_1_GPIO8_IN_SHIFT, - PMIC_GPIO_OUT_1_GPIO8_OUT_SHIFT - }, - { - PMIC_GPIO9_CONF_REGADDR, - PMIC_GPIO_OUT_2_REGADDR, - PMIC_GPIO_IN_2_REGADDR, - PMIC_GPIO_IN_2_GPIO9_IN_SHIFT, - PMIC_GPIO_OUT_2_GPIO9_OUT_SHIFT - }, - { - PMIC_GPIO10_CONF_REGADDR, - PMIC_GPIO_OUT_2_REGADDR, - PMIC_GPIO_IN_2_REGADDR, - PMIC_GPIO_IN_2_GPIO10_IN_SHIFT, - PMIC_GPIO_OUT_2_GPIO10_OUT_SHIFT - }, - { - PMIC_GPIO11_CONF_REGADDR, - PMIC_GPIO_OUT_2_REGADDR, - PMIC_GPIO_IN_2_REGADDR, - PMIC_GPIO_IN_2_GPIO11_IN_SHIFT, - PMIC_GPIO_OUT_2_GPIO11_OUT_SHIFT - } -}; - -/* PMIC GPIO Interrupt Register array */ -static Pmic_GpioIntRegCfg_t tps6594x_gpioIntRegCfg[] = -{ - { - PMIC_FSM_TRIG_MASK_1_REGADDR, - PMIC_FSM_TRIG_MASK_1_GPIO1_FSM_MASK_SHIFT, - PMIC_FSM_TRIG_MASK_1_GPIO1_FSM_MASK_POL_SHIFT - }, - { - PMIC_FSM_TRIG_MASK_1_REGADDR, - PMIC_FSM_TRIG_MASK_1_GPIO2_FSM_MASK_SHIFT, - PMIC_FSM_TRIG_MASK_1_GPIO2_FSM_MASK_POL_SHIFT - }, - { - PMIC_FSM_TRIG_MASK_1_REGADDR, - PMIC_FSM_TRIG_MASK_1_GPIO3_FSM_MASK_SHIFT, - PMIC_FSM_TRIG_MASK_1_GPIO3_FSM_MASK_POL_SHIFT - }, - { - PMIC_FSM_TRIG_MASK_1_REGADDR, - PMIC_FSM_TRIG_MASK_1_GPIO4_FSM_MASK_SHIFT, - PMIC_FSM_TRIG_MASK_1_GPIO4_FSM_MASK_POL_SHIFT - }, - { - PMIC_FSM_TRIG_MASK_2_REGADDR, - PMIC_FSM_TRIG_MASK_2_GPIO5_FSM_MASK_SHIFT, - PMIC_FSM_TRIG_MASK_2_GPIO5_FSM_MASK_POL_SHIFT - }, - { - PMIC_FSM_TRIG_MASK_2_REGADDR, - PMIC_FSM_TRIG_MASK_2_GPIO6_FSM_MASK_SHIFT, - PMIC_FSM_TRIG_MASK_2_GPIO6_FSM_MASK_POL_SHIFT - }, - { - PMIC_FSM_TRIG_MASK_2_REGADDR, - PMIC_FSM_TRIG_MASK_2_GPIO7_FSM_MASK_SHIFT, - PMIC_FSM_TRIG_MASK_2_GPIO7_FSM_MASK_POL_SHIFT - }, - { - PMIC_FSM_TRIG_MASK_2_REGADDR, - PMIC_FSM_TRIG_MASK_2_GPIO8_FSM_MASK_SHIFT, - PMIC_FSM_TRIG_MASK_2_GPIO8_FSM_MASK_POL_SHIFT - }, - { - PMIC_FSM_TRIG_MASK_3_REGADDR, - PMIC_FSM_TRIG_MASK_3_GPIO9_FSM_MASK_SHIFT, - PMIC_FSM_TRIG_MASK_3_GPIO9_FSM_MASK_POL_SHIFT - }, - { - PMIC_FSM_TRIG_MASK_3_REGADDR, - PMIC_FSM_TRIG_MASK_3_GPIO10_FSM_MASK_SHIFT, - PMIC_FSM_TRIG_MASK_3_GPIO10_FSM_MASK_POL_SHIFT - }, - { - PMIC_FSM_TRIG_MASK_3_REGADDR, - PMIC_FSM_TRIG_MASK_3_GPIO11_FSM_MASK_SHIFT, - PMIC_FSM_TRIG_MASK_3_GPIO11_FSM_MASK_POL_SHIFT - } -}; - -/*! - * \brief PMIC GPIO pin get Input Ouput Configuration function - * This function is used to read the PMIC GPIO Pins with Input Ouput - * Configuration - * - * \param pGpioInOutCfg [OUT] Pointer to store gpio Input Ouput - * configuration - */ -void pmic_get_tps6594x_gpioInOutCfg(Pmic_GpioInOutCfg_t **pGpioInOutCfg) -{ - *pGpioInOutCfg = gTps6594x_gpioInOutCfg; -} - -/*! - * \brief Get PMIC GPIO Pin Interrupt Register configuration - * This function is used to read the PMIC GPIO Interrupt Register - * configuration - * - * \param pGpioIntRegCfg [OUT] Pointer to store gpio Interrupt Register - * configuration -*/ -void pmic_get_tps6594x_gpioIntRegCfg(Pmic_GpioIntRegCfg_t **pGpioIntRegCfg) -{ - *pGpioIntRegCfg = tps6594x_gpioIntRegCfg; -} - -/*! - * \brief API to get PMIC GPIO NPWRON pin value. - * - * Requirement: REQ_TAG(PDK-5808) - * Design: did_pmic_gpio_cfg_readback - * Architecture: aid_pmic_gpio_cfg - * - * This function is used to read the signal level of the NPWRON/Enable - * pin. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param pPinValue [OUT] Pointer to store PMIC GPIO signal level - * High/Low. - * Valid values \ref Pmic_Gpio_SignalLvl - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_gpioTps6594xNPwronPinGetValue(Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t *pPinValue) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - /* Parameter Validation */ - if(NULL == pPmicCoreHandle) - { - status = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == status) && - (PMIC_DEV_LEO_TPS6594X != pPmicCoreHandle->pmicDeviceType)) - { - status = PMIC_ST_ERR_INV_DEVICE; - } - - if((PMIC_ST_SUCCESS == status) && - ((bool)false == pPmicCoreHandle->pPmic_SubSysInfo->gpioEnable)) - { - status = PMIC_ST_ERR_INV_DEVICE; - } - - if((PMIC_ST_SUCCESS == status) && (NULL == pPinValue)) - { - status = PMIC_ST_ERR_NULL_PARAM; - } - - if(PMIC_ST_SUCCESS == status) - { - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Reading the NPWRON pin value */ - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_GPIO_IN_2_REGADDR, - ®Data); - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == status) - { - *pPinValue= Pmic_getBitField(regData, - PMIC_GPIO_IN_2_NPWRON_IN_SHIFT, - PMIC_GPIO_IN_2_NPWRON_IN_MASK); - } - } - - return status; -} - -/*! - * \brief This function is used to configure NPWRON pin for TPS6594x - * PMIC LEO Device. - */ -int32_t Pmic_gpioTps6594xSetNPwronPinConfiguration( - Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_GpioCfg_t gpioCfg) -{ - int32_t status = PMIC_ST_SUCCESS; - - if((bool)true == pmic_validParamCheck(gpioCfg.validParams, - PMIC_GPIO_CFG_PINFUNC_VALID)) - { - /* Setting NPWRON/Enable pin function */ - status = Pmic_gpioSetPinFunc(pPmicCoreHandle, - PMIC_NPWRON_ENABLE_PIN, - gpioCfg); - } - - if(PMIC_ST_SUCCESS == status) - { - /* Setting NPWRON/Enable deglitch time and Pull UP/Down Configuration*/ - status = Pmic_gpioSetNPwronEnableDeglitchPullCtrlCfg( - pPmicCoreHandle, - gpioCfg); - } - - if((PMIC_ST_SUCCESS == status) && - ((bool)true == pmic_validParamCheck(gpioCfg.validParams, - PMIC_ENABLE_CFG_POLARITY_VALID))) - { - if(gpioCfg.pinPolarity > PMIC_GPIO_POL_HIGH) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == status) - { - /* Setting ENABLE pin polarity */ - status = Pmic_gpioSetPinPolarity(pPmicCoreHandle, - gpioCfg); - } - } - - return status; -} - -/*! - * \brief This function is used to read NPWRON pin configuration for TPS6594x - * PMIC LEO Device. - */ -int32_t Pmic_gpioTps6594xGetNPwronPinConfiguration( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_GpioCfg_t *pGpioCfg) -{ - int32_t status = PMIC_ST_SUCCESS; - - if((bool)true == pmic_validParamCheck(pGpioCfg->validParams, - PMIC_GPIO_CFG_DEGLITCH_VALID)) - { - /* Get nPWRON/Enable pin signal deglitch time */ - status = Pmic_gpioGetDeglitchTime(pPmicCoreHandle, - PMIC_NPWRON_ENABLE_PIN, - pGpioCfg); - } - - if((PMIC_ST_SUCCESS == status) && - ((bool)true == pmic_validParamCheck(pGpioCfg->validParams, - PMIC_GPIO_CFG_PINFUNC_VALID))) - { - /* Get nPWRON/Enable pin signal function */ - status = Pmic_gpioGetPinFunc(pPmicCoreHandle, - PMIC_NPWRON_ENABLE_PIN, - pGpioCfg); - } - - if((PMIC_ST_SUCCESS == status) && - ((bool)true == pmic_validParamCheck(pGpioCfg->validParams, - PMIC_GPIO_CFG_PULL_VALID))) - { - /* Get nPWRON/Enable pin pull-up/down control */ - status = Pmic_gpioGetPullCtrl(pPmicCoreHandle, - PMIC_NPWRON_ENABLE_PIN, - pGpioCfg); - } - - if((PMIC_ST_SUCCESS == status) && - ((bool)true == pmic_validParamCheck(pGpioCfg->validParams, - PMIC_ENABLE_CFG_POLARITY_VALID))) - { - /* Get nPWRON pin polarity control */ - status = Pmic_gpioGetPinPolarity(pPmicCoreHandle, - pGpioCfg); - } - - return status; -} diff --git a/src/cfg/tps6594x/pmic_gpio_tps6594x_priv.h b/src/cfg/tps6594x/pmic_gpio_tps6594x_priv.h deleted file mode 100644 index c721b80..0000000 --- a/src/cfg/tps6594x/pmic_gpio_tps6594x_priv.h +++ /dev/null @@ -1,163 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ - -/** - * \file pmic_gpio_tps6594x_priv.h - * - * \brief The macro definitions, structures and function prototypes for - * TPS6594x Leo PMIC driver specific PMIC gpio configuration - * - */ - -#ifndef PMIC_GPIO_TPS6594X_PRIV_H_ -#define PMIC_GPIO_TPS6594X_PRIV_H_ - -/* ========================================================================== */ -/* Include Files */ -/* ========================================================================== */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* ========================================================================== */ -/* Macros & Typedefs */ -/* ========================================================================== */ - -/*! - * \brief GPIO Register Offsets - */ -#define PMIC_GPIO11_CONF_REGADDR (0x3BU) -#define PMIC_NPWRON_CONF_REGADDR (0x3CU) - -/*! - * \brief NPWRON Register bit fields - */ -#define PMIC_NPWRON_CONF_NPWRON_SEL_SHIFT (0x06U) -#define PMIC_NPWRON_CONF_ENABLE_POL_SHIFT (0x05U) - -/*! - * \brief GPIO IN Register bit fields - */ -#define PMIC_GPIO_IN_2_GPIO11_IN_SHIFT (0x02U) -#define PMIC_GPIO_IN_2_NPWRON_IN_SHIFT (0x03U) - -/*! - * \brief GPIO OUT Register bit fields - */ -#define PMIC_GPIO_OUT_2_GPIO11_OUT_SHIFT (0x02U) - -/*! - * \brief NPWRON Register bit mask values - */ -#define PMIC_NPWRON_CONF_NPWRON_SEL_MASK (uint8_t) \ - (0x03U << \ - PMIC_NPWRON_CONF_NPWRON_SEL_SHIFT) -#define PMIC_NPWRON_CONF_ENABLE_POL_MASK (uint8_t) \ - (0x01U << \ - PMIC_NPWRON_CONF_ENABLE_POL_SHIFT) - -/*! - * \brief GPIO IN Register bit mask values - */ -#define PMIC_GPIO_IN_2_GPIO11_IN_MASK (uint8_t) \ - (0x01U << \ - PMIC_GPIO_IN_2_GPIO11_IN_SHIFT) -#define PMIC_GPIO_IN_2_NPWRON_IN_MASK (uint8_t) \ - (0x01U << \ - PMIC_GPIO_IN_2_NPWRON_IN_SHIFT) - -/*! - * \brief GPIO OUT Register bit mask values - */ -#define PMIC_GPIO_OUT_2_GPIO11_OUT_MASK (uint8_t) \ - (0x01U << \ - PMIC_GPIO_OUT_2_GPIO11_OUT_SHIFT) - -/*! - * \brief Max and Min PMIC GPIO pin supported - */ -#define PMIC_TPS6594X_GPIO_PIN_MIN (1U) -#define PMIC_TPS6594X_GPIO_PIN_MAX (11U) - -/** \brief Max value for NPWRON/ENABLE pin Function */ -#define PMIC_TPS6594X_NPWRON_PINFUNC_MAX (1U) -/*==========================================================================*/ -/* Structures and Enums */ -/*==========================================================================*/ - -/*==========================================================================*/ -/* Function Declarations */ -/*==========================================================================*/ - -/*! - * \brief Get PMIC GPIO pin Input Ouput Configuration - * This function is used to read the PMIC GPIO Pins with Input Ouput - * Configuration - * - * \param pGpioInOutCfg [OUT] Pointer to store gpio Input Ouput - * configuration - */ -void pmic_get_tps6594x_gpioInOutCfg(Pmic_GpioInOutCfg_t **pGpioInOutCfg); - -/*! - * \brief Get PMIC GPIO pin Interrupt Register configuration - * This function is used to read the PMIC GPIO Interrupt Register - * configuration - * - * \param pGpioIntRegCfg [OUT] Pointer to store gpio Interrupt Register - * configuration -*/ -void pmic_get_tps6594x_gpioIntRegCfg(Pmic_GpioIntRegCfg_t **pGpioIntRegCfg); - -/*! - * \brief This function is used to configure NPWRON pin for TPS6594x - * PMIC LEO Device. - */ -int32_t Pmic_gpioTps6594xSetNPwronPinConfiguration( - Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_GpioCfg_t gpioCfg); - -/*! - * \brief This function is used to read NPWRON pin configuration for TPS6594x - * PMIC LEO Device. - */ -int32_t Pmic_gpioTps6594xGetNPwronPinConfiguration( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_GpioCfg_t *pGpioCfg); -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif/* PMIC_GPIO_TPS6594X_PRIV_H_ */ diff --git a/src/cfg/tps6594x/pmic_irq_tps6594x.c b/src/cfg/tps6594x/pmic_irq_tps6594x.c deleted file mode 100644 index 0923549..0000000 --- a/src/cfg/tps6594x/pmic_irq_tps6594x.c +++ /dev/null @@ -1,1733 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ - -/** - * \file pmic_irq_tps6594x.c - * - * \brief This file contains the TPS6594x Leo PMIC Interrupt APIs definitions - * and structures. - * - */ - -#include -#include -#include -#include -#include -#include -#include -#include - -/* PMIC TPS6594x Interrupt Configuration as per Pmic_tps6594x_IrqNum. */ -static Pmic_IntrCfg_t gTps6594x_intCfg[] = -{ - { - PMIC_WD_ERR_STATUS_REGADDR, - PMIC_WD_ERR_STATUS_WD_RST_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_WD_ERR_STATUS_REGADDR, - PMIC_WD_ERR_STATUS_WD_FAIL_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_WD_ERR_STATUS_REGADDR, - PMIC_WD_ERR_STATUS_WD_LONGWIN_TIMEOUT_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_ESM_REGADDR, - PMIC_INT_ESM_ESM_MCU_RST_INT_SHIFT, - PMIC_MASK_ESM_REGADDR, - PMIC_MASK_ESM_ESM_MCU_RST_MASK_SHIFT - }, - { - PMIC_INT_ESM_REGADDR, - PMIC_INT_ESM_ESM_MCU_FAIL_INT_SHIFT, - PMIC_MASK_ESM_REGADDR, - PMIC_MASK_ESM_ESM_MCU_FAIL_MASK_SHIFT - }, - { - PMIC_INT_ESM_REGADDR, - PMIC_INT_ESM_ESM_MCU_PIN_INT_SHIFT, - PMIC_MASK_ESM_REGADDR, - PMIC_MASK_ESM_ESM_MCU_PIN_MASK_SHIFT - }, - { - PMIC_INT_ESM_REGADDR, - PMIC_INT_ESM_ESM_SOC_RST_INT_SHIFT, - PMIC_MASK_ESM_REGADDR, - PMIC_MASK_ESM_ESM_SOC_RST_MASK_SHIFT - }, - { - PMIC_INT_ESM_REGADDR, - PMIC_INT_ESM_ESM_SOC_FAIL_INT_SHIFT, - PMIC_MASK_ESM_REGADDR, - PMIC_MASK_ESM_ESM_SOC_FAIL_MASK_SHIFT - }, - { - PMIC_INT_ESM_REGADDR, - PMIC_INT_ESM_ESM_SOC_PIN_INT_SHIFT, - PMIC_MASK_ESM_REGADDR, - PMIC_MASK_ESM_ESM_SOC_PIN_MASK_SHIFT - }, - { - PMIC_INT_READBACK_ERR_REGADDR, - PMIC_INT_READBACK_ERR_NRSTOUT_SOC_READBACK_INT_SHIFT, - PMIC_MASK_READBACK_ERR_REGADDR, - PMIC_MASK_READBACK_ERR_NRSTOUT_SOC_READBACK_MASK_SHIFT - }, - { - PMIC_INT_READBACK_ERR_REGADDR, - PMIC_INT_READBACK_ERR_EN_DRV_READBACK_INT_SHIFT, - PMIC_MASK_READBACK_ERR_REGADDR, - PMIC_MASK_READBACK_ERR_EN_DRV_READBACK_MASK_SHIFT - }, - { - PMIC_INT_COMM_ERR_REGADDR, - PMIC_INT_COMM_ERR_I2C2_ADR_ERR_INT_SHIFT, - PMIC_MASK_COMM_ERR_REGADDR, - PMIC_MASK_COMM_ERR_I2C2_ADR_ERR_MASK_SHIFT - }, - { - PMIC_INT_COMM_ERR_REGADDR, - PMIC_INT_COMM_ERR_I2C2_CRC_ERR_INT_SHIFT, - PMIC_MASK_COMM_ERR_REGADDR, - PMIC_MASK_COMM_ERR_I2C2_CRC_ERR_MASK_SHIFT - }, - { - PMIC_INT_COMM_ERR_REGADDR, - PMIC_INT_COMM_ERR_COMM_ADR_ERR_INT_SHIFT, - PMIC_MASK_COMM_ERR_REGADDR, - PMIC_MASK_COMM_ERR_COMM_ADR_ERR_MASK_SHIFT - }, - { - PMIC_INT_COMM_ERR_REGADDR, - PMIC_INT_COMM_ERR_COMM_CRC_ERR_INT_SHIFT, - PMIC_MASK_COMM_ERR_REGADDR, - PMIC_MASK_COMM_ERR_COMM_CRC_ERR_MASK_SHIFT - }, - { - PMIC_INT_COMM_ERR_REGADDR, - PMIC_INT_COMM_ERR_COMM_FRM_ERR_INT_SHIFT, - PMIC_MASK_COMM_ERR_REGADDR, - PMIC_MASK_COMM_ERR_COMM_FRM_ERR_MASK_SHIFT - }, - { - PMIC_INT_FSM_ERR_REGADDR, - PMIC_INT_FSM_ERR_SOC_PWR_ERR_INT_SHIFT, - PMIC_MASK_FSM_ERR_REGADDR, - PMIC_MASK_FSM_ERR_SOC_PWR_ERR_MASK_SHIFT - }, - { - PMIC_INT_FSM_ERR_REGADDR, - PMIC_INT_FSM_ERR_MCU_PWR_ERR_INT_SHIFT, - PMIC_MASK_FSM_ERR_REGADDR, - PMIC_MASK_FSM_ERR_MCU_PWR_ERR_MASK_SHIFT - }, - { - PMIC_INT_FSM_ERR_REGADDR, - PMIC_INT_FSM_ERR_ORD_SHUTDOWN_INT_SHIFT, - PMIC_MASK_FSM_ERR_REGADDR, - PMIC_MASK_FSM_ERR_ORD_SHUTDOWN_MASK_SHIFT - }, - { - PMIC_INT_FSM_ERR_REGADDR, - PMIC_INT_FSM_ERR_IMM_SHUTDOWN_INT_SHIFT, - PMIC_MASK_FSM_ERR_REGADDR, - PMIC_MASK_FSM_ERR_IMM_SHUTDOWN_MASK_SHIFT - }, - { - PMIC_INT_SEVERE_ERR_REGADDR, - PMIC_INT_SEVERE_ERR_PFSM_ERR_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_SEVERE_ERR_REGADDR, - PMIC_INT_SEVERE_ERR_VCCA_OVP_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_SEVERE_ERR_REGADDR, - PMIC_INT_SEVERE_ERR_TSD_IMM_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_MODERATE_ERR_REGADDR, - PMIC_INT_MODERATE_ERR_NRSTOUT_READBACK_INT_SHIFT, - PMIC_MASK_MODERATE_ERR_REGADDR, - PMIC_MASK_MODERATE_ERR_NRSTOUT_READBACK_MASK_SHIFT - }, - { - PMIC_INT_MODERATE_ERR_REGADDR, - PMIC_INT_MODERATE_ERR_NINT_READBACK_INT_SHIFT, - PMIC_MASK_MODERATE_ERR_REGADDR, - PMIC_MASK_MODERATE_ERR_NINT_READBACK_MASK_SHIFT - }, - { - PMIC_INT_MODERATE_ERR_REGADDR, - PMIC_INT_MODERATE_ERR_NPWRON_LONG_INT_SHIFT, - PMIC_MASK_MODERATE_ERR_REGADDR, - PMIC_MASK_MODERATE_ERR_NPWRON_LONG_MASK_SHIFT - }, - { - PMIC_INT_MODERATE_ERR_REGADDR, - PMIC_INT_MODERATE_ERR_SPMI_ERR_INT_SHIFT, - PMIC_MASK_MODERATE_ERR_REGADDR, - PMIC_MASK_MODERATE_ERR_SPMI_ERR_MASK_SHIFT - }, - { - PMIC_INT_MODERATE_ERR_REGADDR, - PMIC_INT_MODERATE_ERR_RECOV_CNT_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_MODERATE_ERR_REGADDR, - PMIC_INT_MODERATE_ERR_REG_CRC_ERR_INT_SHIFT, - PMIC_MASK_MODERATE_ERR_REGADDR, - PMIC_MASK_MODERATE_ERR_REG_CRC_ERR_MASK_SHIFT - }, - { - PMIC_INT_MODERATE_ERR_REGADDR, - PMIC_INT_MODERATE_ERR_BIST_FAIL_INT_SHIFT, - PMIC_MASK_MODERATE_ERR_REGADDR, - PMIC_MASK_MODERATE_ERR_BIST_FAIL_MASK_SHIFT - }, - { - PMIC_INT_MODERATE_ERR_REGADDR, - PMIC_INT_MODERATE_ERR_TSD_ORD_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_MISC_REGADDR, - PMIC_INT_MISC_TWARN_INT_SHIFT, - PMIC_MASK_MISC_REGADDR, - PMIC_MASK_MISC_TWARN_MASK_SHIFT - }, - { - PMIC_INT_MISC_REGADDR, - PMIC_INT_MISC_EXT_CLK_INT_SHIFT, - PMIC_MASK_MISC_REGADDR, - PMIC_MASK_MISC_EXT_CLK_MASK_SHIFT - }, - { - PMIC_INT_MISC_REGADDR, - PMIC_INT_MISC_BIST_PASS_INT_SHIFT, - PMIC_MASK_MISC_REGADDR, - PMIC_MASK_MISC_BIST_PASS_MASK_SHIFT - }, - { - PMIC_INT_STARTUP_REGADDR, - PMIC_INT_STARTUP_FSD_INT_SHIFT, - PMIC_MASK_STARTUP_REGADDR, - PMIC_MASK_STARTUP_FSD_MASK_SHIFT - }, - { - PMIC_RTC_STATUS_REGADDR, - PMIC_RTC_STATUS_ALARM_SHIFT, - PMIC_RTC_INTERRUPTS_REGADDR, - PMIC_RTC_INTERRUPTS_IT_ALARM_SHIFT - }, - { - PMIC_RTC_STATUS_REGADDR, - PMIC_RTC_STATUS_TIMER_SHIFT, - PMIC_RTC_INTERRUPTS_REGADDR, - PMIC_RTC_INTERRUPTS_IT_TIMER_SHIFT - }, - { - PMIC_INT_STARTUP_REGADDR, - PMIC_INT_STARTUP_ENABLE_INT_SHIFT, - PMIC_MASK_STARTUP_REGADDR, - PMIC_MASK_STARTUP_ENABLE_MASK_SHIFT, - }, - { - PMIC_INT_STARTUP_REGADDR, - PMIC_INT_STARTUP_NPWRON_START_INT_SHIFT, - PMIC_MASK_STARTUP_REGADDR, - PMIC_MASK_STARTUP_NPWRON_START_MASK_SHIFT - }, - { - PMIC_INT_GPIO1_8_REGADDR, - PMIC_INT_GPIO1_8_GPIO8_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_GPIO1_8_REGADDR, - PMIC_INT_GPIO1_8_GPIO7_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_GPIO1_8_REGADDR, - PMIC_INT_GPIO1_8_GPIO6_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_GPIO1_8_REGADDR, - PMIC_INT_GPIO1_8_GPIO5_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_GPIO1_8_REGADDR, - PMIC_INT_GPIO1_8_GPIO4_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_GPIO1_8_REGADDR, - PMIC_INT_GPIO1_8_GPIO3_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_GPIO1_8_REGADDR, - PMIC_INT_GPIO1_8_GPIO2_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_GPIO1_8_REGADDR, - PMIC_INT_GPIO1_8_GPIO1_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_GPIO_REGADDR, - PMIC_INT_GPIO_GPIO11_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_GPIO_REGADDR, - PMIC_INT_GPIO_GPIO10_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_GPIO_REGADDR, - PMIC_INT_GPIO_GPIO9_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_VMON_REGADDR, - PMIC_INT_VMON_VCCA_UV_INT_SHIFT, - PMIC_MASK_VMON_REGADDR, - PMIC_MASK_VMON_VCCA_UV_MASK_SHIFT - }, - { - PMIC_INT_VMON_REGADDR, - PMIC_INT_VMON_VCCA_OV_INT_SHIFT, - PMIC_MASK_VMON_REGADDR, - PMIC_MASK_VMON_VCCA_OV_MASK_SHIFT - }, - { - PMIC_INT_LDO3_4_REGADDR, - PMIC_INT_LDO3_4_LDO4_ILIM_INT_SHIFT, - PMIC_MASK_LDO3_4_REGADDR, - PMIC_MASK_LDO3_4_LDO4_ILIM_MASK_SHIFT - }, - { - PMIC_INT_LDO3_4_REGADDR, - PMIC_INT_LDO3_4_LDO4_SC_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_LDO3_4_REGADDR, - PMIC_INT_LDO3_4_LDO4_UV_INT_SHIFT, - PMIC_MASK_LDO3_4_REGADDR, - PMIC_MASK_LDO3_4_LDO4_UV_MASK_SHIFT - }, - { - PMIC_INT_LDO3_4_REGADDR, - PMIC_INT_LDO3_4_LDO4_OV_INT_SHIFT, - PMIC_MASK_LDO3_4_REGADDR, - PMIC_MASK_LDO3_4_LDO4_OV_MASK_SHIFT - }, - { - PMIC_INT_LDO3_4_REGADDR, - PMIC_INT_LDO3_4_LDO3_ILIM_INT_SHIFT, - PMIC_MASK_LDO3_4_REGADDR, - PMIC_MASK_LDO3_4_LDO3_ILIM_MASK_SHIFT - }, - { - PMIC_INT_LDO3_4_REGADDR, - PMIC_INT_LDO3_4_LDO3_SC_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_LDO3_4_REGADDR, - PMIC_INT_LDO3_4_LDO3_UV_INT_SHIFT, - PMIC_MASK_LDO3_4_REGADDR, - PMIC_MASK_LDO3_4_LDO3_UV_MASK_SHIFT - }, - { - PMIC_INT_LDO3_4_REGADDR, - PMIC_INT_LDO3_4_LDO3_OV_INT_SHIFT, - PMIC_MASK_LDO3_4_REGADDR, - PMIC_MASK_LDO3_4_LDO3_OV_MASK_SHIFT - }, - { - PMIC_INT_LDO1_2_REGADDR, - PMIC_INT_LDO1_2_LDO2_ILIM_INT_SHIFT, - PMIC_MASK_LDO1_2_REGADDR, - PMIC_MASK_LDO1_2_LDO2_ILIM_MASK_SHIFT - }, - { - PMIC_INT_LDO1_2_REGADDR, - PMIC_INT_LDO1_2_LDO2_SC_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_LDO1_2_REGADDR, - PMIC_INT_LDO1_2_LDO2_UV_INT_SHIFT, - PMIC_MASK_LDO1_2_REGADDR, - PMIC_MASK_LDO1_2_LDO2_UV_MASK_SHIFT - }, - { - PMIC_INT_LDO1_2_REGADDR, - PMIC_INT_LDO1_2_LDO2_OV_INT_SHIFT, - PMIC_MASK_LDO1_2_REGADDR, - PMIC_MASK_LDO1_2_LDO2_OV_MASK_SHIFT - }, - { - PMIC_INT_LDO1_2_REGADDR, - PMIC_INT_LDO1_2_LDO1_ILIM_INT_SHIFT, - PMIC_MASK_LDO1_2_REGADDR, - PMIC_MASK_LDO1_2_LDO1_ILIM_MASK_SHIFT - }, - { - PMIC_INT_LDO1_2_REGADDR, - PMIC_INT_LDO1_2_LDO1_SC_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_LDO1_2_REGADDR, - PMIC_INT_LDO1_2_LDO1_UV_INT_SHIFT, - PMIC_MASK_LDO1_2_REGADDR, - PMIC_MASK_LDO1_2_LDO1_UV_MASK_SHIFT - }, - { - PMIC_INT_LDO1_2_REGADDR, - PMIC_INT_LDO1_2_LDO1_OV_INT_SHIFT, - PMIC_MASK_LDO1_2_REGADDR, - PMIC_MASK_LDO1_2_LDO1_OV_MASK_SHIFT - }, - { - PMIC_INT_BUCK5_REGADDR, - PMIC_INT_BUCK5_BUCK5_ILIM_INT_SHIFT, - PMIC_MASK_BUCK5_REGADDR, - PMIC_MASK_BUCK5_BUCK5_ILIM_MASK_SHIFT - }, - { - PMIC_INT_BUCK5_REGADDR, - PMIC_INT_BUCK5_BUCK5_SC_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_BUCK5_REGADDR, - PMIC_INT_BUCK5_BUCK5_UV_INT_SHIFT, - PMIC_MASK_BUCK5_REGADDR, - PMIC_MASK_BUCK5_BUCK5_UV_MASK_SHIFT - }, - { - PMIC_INT_BUCK5_REGADDR, - PMIC_INT_BUCK5_BUCK5_OV_INT_SHIFT, - PMIC_MASK_BUCK5_REGADDR, - PMIC_MASK_BUCK5_BUCK5_OV_MASK_SHIFT - }, - { - PMIC_INT_BUCK3_4_REGADDR, - PMIC_INT_BUCK3_4_BUCK4_ILIM_INT_SHIFT, - PMIC_MASK_BUCK3_4_REGADDR, - PMIC_MASK_BUCK3_4_BUCK4_ILIM_MASK_SHIFT - }, - { - PMIC_INT_BUCK3_4_REGADDR, - PMIC_INT_BUCK3_4_BUCK4_SC_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_BUCK3_4_REGADDR, - PMIC_INT_BUCK3_4_BUCK4_UV_INT_SHIFT, - PMIC_MASK_BUCK3_4_REGADDR, - PMIC_MASK_BUCK3_4_BUCK4_UV_MASK_SHIFT - }, - { - PMIC_INT_BUCK3_4_REGADDR, - PMIC_INT_BUCK3_4_BUCK4_OV_INT_SHIFT, - PMIC_MASK_BUCK3_4_REGADDR, - PMIC_MASK_BUCK3_4_BUCK4_OV_MASK_SHIFT - }, - { - PMIC_INT_BUCK3_4_REGADDR, - PMIC_INT_BUCK3_4_BUCK3_ILIM_INT_SHIFT, - PMIC_MASK_BUCK3_4_REGADDR, - PMIC_MASK_BUCK3_4_BUCK3_ILIM_MASK_SHIFT - }, - { - PMIC_INT_BUCK3_4_REGADDR, - PMIC_INT_BUCK3_4_BUCK3_SC_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_BUCK3_4_REGADDR, - PMIC_INT_BUCK3_4_BUCK3_UV_INT_SHIFT, - PMIC_MASK_BUCK3_4_REGADDR, - PMIC_MASK_BUCK3_4_BUCK3_UV_MASK_SHIFT - }, - { - PMIC_INT_BUCK3_4_REGADDR, - PMIC_INT_BUCK3_4_BUCK3_OV_INT_SHIFT, - PMIC_MASK_BUCK3_4_REGADDR, - PMIC_MASK_BUCK3_4_BUCK3_OV_MASK_SHIFT - }, - { - PMIC_INT_BUCK1_2_REGADDR, - PMIC_INT_BUCK1_2_BUCK2_ILIM_INT_SHIFT, - PMIC_MASK_BUCK1_2_REGADDR, - PMIC_MASK_BUCK1_2_BUCK2_ILIM_MASK_SHIFT - }, - { - PMIC_INT_BUCK1_2_REGADDR, - PMIC_INT_BUCK1_2_BUCK2_SC_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_BUCK1_2_REGADDR, - PMIC_INT_BUCK1_2_BUCK2_UV_INT_SHIFT, - PMIC_MASK_BUCK1_2_REGADDR, - PMIC_MASK_BUCK1_2_BUCK2_UV_MASK_SHIFT - }, - { - PMIC_INT_BUCK1_2_REGADDR, - PMIC_INT_BUCK1_2_BUCK2_OV_INT_SHIFT, - PMIC_MASK_BUCK1_2_REGADDR, - PMIC_MASK_BUCK1_2_BUCK2_OV_MASK_SHIFT - }, - { - PMIC_INT_BUCK1_2_REGADDR, - PMIC_INT_BUCK1_2_BUCK1_ILIM_INT_SHIFT, - PMIC_MASK_BUCK1_2_REGADDR, - PMIC_MASK_BUCK1_2_BUCK1_ILIM_MASK_SHIFT - }, - { - PMIC_INT_BUCK1_2_REGADDR, - PMIC_INT_BUCK1_2_BUCK1_SC_INT_SHIFT, - PMIC_IRQ_INVALID_REGADDR, - PMIC_IRQ_INVALID_BIT_SHIFT - }, - { - PMIC_INT_BUCK1_2_REGADDR, - PMIC_INT_BUCK1_2_BUCK1_UV_INT_SHIFT, - PMIC_MASK_BUCK1_2_REGADDR, - PMIC_MASK_BUCK1_2_BUCK1_UV_MASK_SHIFT - }, - { - PMIC_INT_BUCK1_2_REGADDR, - PMIC_INT_BUCK1_2_BUCK1_OV_INT_SHIFT, - PMIC_MASK_BUCK1_2_REGADDR, - PMIC_MASK_BUCK1_2_BUCK1_OV_MASK_SHIFT - }, - { - PMIC_INT_STARTUP_REGADDR, - PMIC_INT_STARTUP_SOFT_REBOOT_INT_SHIFT, - PMIC_MASK_STARTUP_REGADDR, - PMIC_MASK_STARTUP_SOFT_REBOOT_MASK_SHIFT - }, -}; - -/* PMIC TPS6594x GPIO Interrupt Mask Configuration as per - * Pmic_tps6594x_IrqGpioNum. - */ -static Pmic_GpioIntrTypeCfg_t tps6594x_gpioIntrCfg[] = -{ - { - PMIC_MASK_GPIO1_8_RISE_REGADDR, - PMIC_MASK_GPIO1_8_RISE_GPIO1_RISE_MASK_SHIFT, - PMIC_MASK_GPIO1_8_FALL_REGADDR, - PMIC_MASK_GPIO1_8_FALL_GPIO1_FALL_MASK_SHIFT - }, - { - PMIC_MASK_GPIO1_8_RISE_REGADDR, - PMIC_MASK_GPIO1_8_RISE_GPIO2_RISE_MASK_SHIFT, - PMIC_MASK_GPIO1_8_FALL_REGADDR, - PMIC_MASK_GPIO1_8_FALL_GPIO2_FALL_MASK_SHIFT - }, - { - PMIC_MASK_GPIO1_8_RISE_REGADDR, - PMIC_MASK_GPIO1_8_RISE_GPIO3_RISE_MASK_SHIFT, - PMIC_MASK_GPIO1_8_FALL_REGADDR, - PMIC_MASK_GPIO1_8_FALL_GPIO3_FALL_MASK_SHIFT - }, - { - PMIC_MASK_GPIO1_8_RISE_REGADDR, - PMIC_MASK_GPIO1_8_RISE_GPIO4_RISE_MASK_SHIFT, - PMIC_MASK_GPIO1_8_FALL_REGADDR, - PMIC_MASK_GPIO1_8_FALL_GPIO4_FALL_MASK_SHIFT - }, - { - PMIC_MASK_GPIO1_8_RISE_REGADDR, - PMIC_MASK_GPIO1_8_RISE_GPIO5_RISE_MASK_SHIFT, - PMIC_MASK_GPIO1_8_FALL_REGADDR, - PMIC_MASK_GPIO1_8_FALL_GPIO5_FALL_MASK_SHIFT - }, - { - PMIC_MASK_GPIO1_8_RISE_REGADDR, - PMIC_MASK_GPIO1_8_RISE_GPIO6_RISE_MASK_SHIFT, - PMIC_MASK_GPIO1_8_FALL_REGADDR, - PMIC_MASK_GPIO1_8_FALL_GPIO6_FALL_MASK_SHIFT - }, - { - PMIC_MASK_GPIO1_8_RISE_REGADDR, - PMIC_MASK_GPIO1_8_RISE_GPIO7_RISE_MASK_SHIFT, - PMIC_MASK_GPIO1_8_FALL_REGADDR, - PMIC_MASK_GPIO1_8_FALL_GPIO7_FALL_MASK_SHIFT - }, - { - PMIC_MASK_GPIO1_8_RISE_REGADDR, - PMIC_MASK_GPIO1_8_RISE_GPIO8_RISE_MASK_SHIFT, - PMIC_MASK_GPIO1_8_FALL_REGADDR, - PMIC_MASK_GPIO1_8_FALL_GPIO8_FALL_MASK_SHIFT - }, - { - PMIC_MASK_GPIO9_11_REGADDR, - PMIC_MASK_GPIO9_11_GPIO9_RISE_MASK_SHIFT, - PMIC_MASK_GPIO9_11_REGADDR, - PMIC_MASK_GPIO9_11_GPIO9_FALL_MASK_SHIFT - }, - { - PMIC_MASK_GPIO9_11_REGADDR, - PMIC_MASK_GPIO9_11_GPIO10_RISE_MASK_SHIFT, - PMIC_MASK_GPIO9_11_REGADDR, - PMIC_MASK_GPIO9_11_GPIO10_FALL_MASK_SHIFT - }, - { - PMIC_MASK_GPIO9_11_REGADDR, - PMIC_MASK_GPIO9_11_GPIO11_RISE_MASK_SHIFT, - PMIC_MASK_GPIO9_11_REGADDR, - PMIC_MASK_GPIO9_11_GPIO11_FALL_MASK_SHIFT - }, -}; - -/* - * \brief Get TPS6594x Interrupt config. - * This function is used to get TPS6594x Interrupt configuration. - * - * \param pIntrCfg [OUT] to store tps6594x Interrupt configuration. - */ -void pmic_get_tps6594x_intrCfg(Pmic_IntrCfg_t **pIntrCfg) -{ - *pIntrCfg = gTps6594x_intCfg; -} - -/* - * \brief Get TPS6594x Interrupt config. - * This function is used to get TPS6594x Interrupt configuration. - * - * \param pGpioIntrCfg [OUT] to store tps6594x Interrupt configuration. - */ -void pmic_get_tps6594x_intrGpioCfg(Pmic_GpioIntrTypeCfg_t **pGpioIntrCfg) -{ - *pGpioIntrCfg = tps6594x_gpioIntrCfg; -} - -/*! - * \brief Function to Check PMIC BUCK1_2 Error - */ -static int32_t Pmic_tps6594x_getBuck1Buck2Err(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_IrqStatus_t *pErrStat) -{ - - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_INT_BUCK1_2_REGADDR, - ®Data); - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if((PMIC_ST_SUCCESS == pmicStatus) && (0U != regData)) - { - if((regData & PMIC_INT_BUCK1_2_BUCK2_OV_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_BUCK2_OV_INT); - } - - if((regData & PMIC_INT_BUCK1_2_BUCK2_UV_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_BUCK2_UV_INT); - } - - if((regData & PMIC_INT_BUCK1_2_BUCK2_SC_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_BUCK2_SC_INT); - } - - if((regData & PMIC_INT_BUCK1_2_BUCK2_ILIM_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_BUCK2_ILIM_INT); - } - - if((regData & PMIC_INT_BUCK1_2_BUCK1_OV_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_BUCK1_OV_INT); - } - - if((regData & PMIC_INT_BUCK1_2_BUCK1_UV_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_BUCK1_UV_INT); - } - - if((regData & PMIC_INT_BUCK1_2_BUCK1_SC_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_BUCK1_SC_INT); - } - - if((regData & PMIC_INT_BUCK1_2_BUCK1_ILIM_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_BUCK1_ILIM_INT); - } - } - - return pmicStatus; -} - -/*! - * \brief Function to Check PMIC BUCK3_4 Error - */ -static int32_t Pmic_tps6594x_getBuck3Buck4Err(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_IrqStatus_t *pErrStat) -{ - - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_INT_BUCK3_4_REGADDR, - ®Data); - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if((PMIC_ST_SUCCESS == pmicStatus) && (0U != regData)) - { - if((regData & PMIC_INT_BUCK3_4_BUCK4_OV_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_BUCK4_OV_INT); - } - - if((regData & PMIC_INT_BUCK3_4_BUCK4_UV_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_BUCK4_UV_INT); - } - - if((regData & PMIC_INT_BUCK3_4_BUCK4_SC_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_BUCK4_SC_INT); - } - - if((regData & PMIC_INT_BUCK3_4_BUCK4_ILIM_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_BUCK4_ILIM_INT); - } - - if((regData & PMIC_INT_BUCK3_4_BUCK3_OV_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_BUCK3_OV_INT); - } - - if((regData & PMIC_INT_BUCK3_4_BUCK3_UV_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_BUCK3_UV_INT); - } - - if((regData & PMIC_INT_BUCK3_4_BUCK3_SC_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_BUCK3_SC_INT); - } - - if((regData & PMIC_INT_BUCK3_4_BUCK3_ILIM_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_BUCK3_ILIM_INT); - } - } - - return pmicStatus; -} - -/*! - * \brief Function to decipher BUCK Error - */ -static int32_t Pmic_tps6594x_getBuckErr(Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t regValue, - Pmic_IrqStatus_t *pErrStat) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - /* PMIC BUCK 5 Interrupt Status Check */ - if((regValue & PMIC_INT_BUCK_BUCK5_INT_MASK) != 0U) - { - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_INT_BUCK5_REGADDR, - ®Data); - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if((PMIC_ST_SUCCESS == pmicStatus) && (0U != regData)) - { - if((regData & PMIC_INT_BUCK5_BUCK5_OV_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_BUCK5_OV_INT); - } - - if((regData & PMIC_INT_BUCK5_BUCK5_UV_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_BUCK5_UV_INT); - } - - if((regData & PMIC_INT_BUCK5_BUCK5_SC_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_BUCK5_SC_INT); - } - - if((regData & PMIC_INT_BUCK5_BUCK5_ILIM_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_BUCK5_ILIM_INT); - } - } - } - - /* PMIC BUCK3_4 Interrupt Status Check */ - if((regValue & PMIC_INT_BUCK_BUCK3_4_INT_MASK) != 0U) - { - pmicStatus = Pmic_tps6594x_getBuck3Buck4Err(pPmicCoreHandle, pErrStat); - } - - /* PMIC BUCK1_2 Interrupt Status Check */ - if((regValue & PMIC_INT_BUCK_BUCK1_2_INT_MASK) != 0U) - { - pmicStatus = Pmic_tps6594x_getBuck1Buck2Err(pPmicCoreHandle, pErrStat); - } - - return pmicStatus; -} - -/*! - * \brief Function to Check PMIC LDO3_4 Error - */ -static int32_t Pmic_tps6594x_getLdo3Ldo4Err(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_IrqStatus_t *pErrStat) -{ - - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_INT_LDO3_4_REGADDR, - ®Data); - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if((PMIC_ST_SUCCESS == pmicStatus) && (0U != regData)) - { - if((regData & PMIC_INT_LDO3_4_LDO3_OV_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_LDO3_OV_INT); - } - - if((regData & PMIC_INT_LDO3_4_LDO3_UV_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_LDO3_UV_INT); - } - - if((regData & PMIC_INT_LDO3_4_LDO3_SC_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_LDO3_SC_INT); - } - - if((regData & PMIC_INT_LDO3_4_LDO3_ILIM_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_LDO3_ILIM_INT); - } - - if((regData & PMIC_INT_LDO3_4_LDO4_OV_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_LDO4_OV_INT); - } - - if((regData & PMIC_INT_LDO3_4_LDO4_UV_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_LDO4_UV_INT); - } - - if((regData & PMIC_INT_LDO3_4_LDO4_SC_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_LDO4_SC_INT); - } - - if((regData & PMIC_INT_LDO3_4_LDO4_ILIM_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_LDO4_ILIM_INT); - } - } - - return pmicStatus; -} - -/*! - * \brief Function to Check PMIC LDO1_2 Error - */ -static int32_t Pmic_tps6594x_getLdo1Ldo2Err(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_IrqStatus_t *pErrStat) -{ - - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_INT_LDO1_2_REGADDR, - ®Data); - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if((PMIC_ST_SUCCESS == pmicStatus) && (0U != regData)) - { - if((regData & PMIC_INT_LDO1_2_LDO1_OV_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_LDO1_OV_INT); - } - - if((regData & PMIC_INT_LDO1_2_LDO1_UV_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_LDO1_UV_INT); - } - - if((regData & PMIC_INT_LDO1_2_LDO1_SC_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_LDO1_SC_INT); - } - - if((regData & PMIC_INT_LDO1_2_LDO1_ILIM_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_LDO1_ILIM_INT); - } - - if((regData & PMIC_INT_LDO1_2_LDO2_OV_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_LDO2_OV_INT); - } - - if((regData & PMIC_INT_LDO1_2_LDO2_UV_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_LDO2_UV_INT); - } - - if((regData & PMIC_INT_LDO1_2_LDO2_SC_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_LDO2_SC_INT); - } - - if((regData & PMIC_INT_LDO1_2_LDO2_ILIM_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_LDO2_ILIM_INT); - } - } - - return pmicStatus; -} - -/*! - * \brief Function to decipher LDO_VMON Error - */ -static int32_t Pmic_tps6594x_getLdoVmonErr(Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t regValue, - Pmic_IrqStatus_t *pErrStat) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - if((regValue & PMIC_INT_LDO_VMON_LDO1_2_INT_MASK) != 0U) - { - pmicStatus = Pmic_tps6594x_getLdo1Ldo2Err(pPmicCoreHandle, pErrStat); - } - - if((regValue & PMIC_INT_LDO_VMON_LDO3_4_INT_MASK) != 0U) - { - pmicStatus = Pmic_tps6594x_getLdo3Ldo4Err(pPmicCoreHandle, pErrStat); - } - - if((regValue & PMIC_INT_LDO_VMON_VCCA_INT_MASK) != 0U) - { - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_INT_VMON_REGADDR, - ®Data); - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if((PMIC_ST_SUCCESS == pmicStatus) && (0U != regData)) - { - if((regData & PMIC_INT_VMON_VCCA_OV_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_VCCA_OV_INT); - } - - if((regData & PMIC_INT_VMON_VCCA_UV_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_VCCA_UV_INT); - } - } - } - - return pmicStatus; -} - -/*! - * \brief Function to Check GPIO1_8 Error - */ -static void Pmic_tps6594x_getGpio1ToGpio8Err(Pmic_IrqStatus_t *pErrStat, - uint8_t regData) -{ - - if((regData & PMIC_INT_GPIO1_8_GPIO1_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_GPIO1_INT); - } - - if((regData & PMIC_INT_GPIO1_8_GPIO2_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_GPIO2_INT); - } - - if((regData & PMIC_INT_GPIO1_8_GPIO3_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_GPIO3_INT); - } - - if((regData & PMIC_INT_GPIO1_8_GPIO4_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_GPIO4_INT); - } - - if((regData & PMIC_INT_GPIO1_8_GPIO5_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_GPIO5_INT); - } - - if((regData & PMIC_INT_GPIO1_8_GPIO6_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_GPIO6_INT); - } - - if((regData & PMIC_INT_GPIO1_8_GPIO7_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_GPIO7_INT); - } - - if((regData & PMIC_INT_GPIO1_8_GPIO8_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_GPIO8_INT); - } -} - -/*! - * \brief Function to decipher GPIO Error. - */ -static int32_t Pmic_tps6594x_getGpioErr(Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t regValue, - Pmic_IrqStatus_t *pErrStat) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - /* Checking GPIO1_8 Bit field for INT_GPIO Register */ - if((regValue & PMIC_INT_GPIO_GPIO1_8_INT_MASK) != 0U) - { - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_INT_GPIO1_8_REGADDR, - ®Data); - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if((PMIC_ST_SUCCESS == pmicStatus) && - (0U != regData)) - { - Pmic_tps6594x_getGpio1ToGpio8Err(pErrStat, regData); - } - } - - if((regValue & PMIC_INT_GPIO_GPIO9_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_GPIO9_INT); - } - - if((regValue & PMIC_INT_GPIO_GPIO10_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_GPIO10_INT); - } - - if((regValue & PMIC_INT_GPIO_GPIO11_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_GPIO11_INT); - } - - return pmicStatus; -} - -/*! - * \brief Function to decipher STARTUP Error. - */ -static int32_t Pmic_tps6594x_getStartupErr(Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t regValue, - Pmic_IrqStatus_t *pErrStat) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - if((regValue & PMIC_INT_STARTUP_NPWRON_START_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_NPWRON_START_INT); - } - - if((regValue & PMIC_INT_STARTUP_ENABLE_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_ENABLE_INT); - } - - if((regValue & PMIC_INT_STARTUP_FSD_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_FSD_INT); - } - - if((regValue & PMIC_INT_STARTUP_RTC_INT_MASK) != 0U) - { - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RTC_STATUS_REGADDR, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - if((regData & PMIC_RTC_STATUS_TIMER_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_RTC_TIMER_INT); - } - - if((regData & PMIC_RTC_STATUS_ALARM_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_RTC_ALARM_INT); - } - } - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - } - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - if((regValue & PMIC_INT_STARTUP_SOFT_REBOOT_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_SOFT_REBOOT_INT); - } - } - - return pmicStatus; -} - -/*! - * \brief Function to decipher MISC Error. - */ -static void Pmic_tps6594x_getMiscErr(uint8_t regValue, - Pmic_IrqStatus_t *pErrStat) -{ - if((regValue & PMIC_INT_MISC_BIST_PASS_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_BIST_PASS_INT); - } - - if((regValue & PMIC_INT_MISC_EXT_CLK_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_EXT_CLK_INT ); - } - - if((regValue & PMIC_INT_MISC_TWARN_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_TWARN_INT); - } -} - -/*! - * \brief Function to check MODERATE Error - TSD_ORD_INT, BIST_FAIL_INT, - * REG_CRC_ERR_INT, SPMI_ERR_INT, NPWRON_LONG_INT - */ -static void Pmic_tps6594x_getErrTsdordBistFailRegcrcSpmiNpwronlong( - uint8_t regValue, - Pmic_IrqStatus_t *pErrStat) -{ - if((regValue & PMIC_INT_MODERATE_ERR_TSD_ORD_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_TSD_ORD_INT); - } - - if((regValue & PMIC_INT_MODERATE_ERR_BIST_FAIL_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_BIST_FAIL_INT); - } - - if((regValue & PMIC_INT_MODERATE_ERR_REG_CRC_ERR_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_REG_CRC_ERR_INT); - } - - if((regValue & PMIC_INT_MODERATE_ERR_SPMI_ERR_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_SPMI_ERR_INT); - } - - if((regValue & PMIC_INT_MODERATE_ERR_NPWRON_LONG_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_NPWRON_LONG_INT); - } - -} - -/*! - * \brief Function to decipher MODERATE Error. - * Note: In this API, the default PMIC Revision is assumed as PG2.0 - * for LEO and HERA PMIC. While adding support for New PMIC - * Revision, developer need to update the API functionality for - * New PMIC Revision accordingly. - */ -static void Pmic_tps6594x_getModerateErr( - const Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t regValue, - Pmic_IrqStatus_t *pErrStat) -{ - - Pmic_tps6594x_getErrTsdordBistFailRegcrcSpmiNpwronlong(regValue, - pErrStat); - - if(PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - if((regValue & PMIC_INT_MODERATE_ERR_RECOV_CNT_INT_MASK_PG_1_0) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_RECOV_CNT_INT); - } - - if((regValue & PMIC_INT_MODERATE_ERR_PFSM_ERR_INT_MASK_PG_1_0) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_PFSM_ERR_INT); - } - } - else - { - if((regValue & PMIC_INT_MODERATE_ERR_RECOV_CNT_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_RECOV_CNT_INT); - } - - if((regValue & PMIC_INT_MODERATE_ERR_NINT_READBACK_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_NINT_READBACK_INT); - } - - if((regValue & PMIC_INT_MODERATE_ERR_NRSTOUT_READBACK_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_NRSTOUT_READBACK_INT); - } - } - -} - -/*! - * \brief Function to decipher SEVERE Error. - */ -static void Pmic_tps6594x_getSevereErr(const Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t regValue, - Pmic_IrqStatus_t *pErrStat) -{ - if((regValue & PMIC_INT_SEVERE_ERR_TSD_IMM_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_TSD_IMM_INT); - } - - if((regValue & PMIC_INT_SEVERE_ERR_VCCA_OVP_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_VCCA_OVP_INT); - } - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - if((regValue & PMIC_INT_SEVERE_ERR_PFSM_ERR_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_PFSM_ERR_INT); - } - } -} - -/*! - * \brief Function to check FSM - Communication Error - */ -static void Pmic_tps6594x_getFsmCommErr(Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t regValue, - Pmic_IrqStatus_t *pErrStat) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - if((regValue & PMIC_INT_FSM_ERR_COMM_ERR_INT_MASK) != 0U) - { - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_INT_COMM_ERR_REGADDR, - ®Data); - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if((PMIC_ST_SUCCESS == pmicStatus) && (0U != regData)) - { - if((regData & PMIC_INT_COMM_ERR_COMM_FRM_ERR_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_COMM_FRM_ERR_INT); - } - - if((regData & PMIC_INT_COMM_ERR_COMM_CRC_ERR_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_COMM_CRC_ERR_INT); - } - - if((regData & PMIC_INT_COMM_ERR_COMM_ADR_ERR_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_COMM_ADR_ERR_INT); - } - - if((regData & PMIC_INT_COMM_ERR_I2C2_CRC_ERR_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_I2C2_CRC_ERR_INT); - } - - if((regData & PMIC_INT_COMM_ERR_I2C2_ADR_ERR_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_I2C2_ADR_ERR_INT); - } - } - } -} - -/*! - * \brief Function to check FSM - Readback Error - */ -static void Pmic_tps6594x_getFsmReadbackErr( - Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t regValue, - Pmic_IrqStatus_t *pErrStat) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - if((regValue & PMIC_INT_FSM_ERR_READBACK_ERR_INT_MASK) != 0U) - { - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_INT_READBACK_ERR_REGADDR, - ®Data); - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if((PMIC_ST_SUCCESS == pmicStatus) && (0U != regData)) - { - if((regData & PMIC_INT_READBACK_ERR_EN_DRV_READBACK_INT_MASK) - != 0U) - { - Pmic_intrBitSet(pErrStat, - PMIC_TPS6594X_EN_DRV_READBACK_INT); - } - - if((regData & PMIC_INT_READBACK_ERR_NRSTOUT_SOC_READBACK_INT_MASK) - != 0U) - { - Pmic_intrBitSet(pErrStat, - PMIC_TPS6594X_NRSTOUT_SOC_READBACK_INT); - } - - if(PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - if((regData & PMIC_INT_READBACK_ERR_NINT_READBACK_INT_MASK) - != 0U) - { - Pmic_intrBitSet(pErrStat, - PMIC_TPS6594X_NINT_READBACK_INT); - } - - if((regData & PMIC_INT_READBACK_ERR_NRSTOUT_READBACK_INT_MASK) - != 0U) - { - Pmic_intrBitSet(pErrStat, - PMIC_TPS6594X_NRSTOUT_READBACK_INT); - } - } - } - } -} - -/*! - * \brief Function to check FSM - ESM Error - */ -static void Pmic_tps6594x_getFsmEsmErr(Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t regValue, - Pmic_IrqStatus_t *pErrStat) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - if((regValue & PMIC_INT_FSM_ERR_ESM_INT_MASK) != 0U) - { - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_INT_ESM_REGADDR, - ®Data); - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if((PMIC_ST_SUCCESS == pmicStatus) && (0U != regData)) - { - if((regData & PMIC_INT_ESM_ESM_SOC_PIN_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_ESM_SOC_PIN_INT); - } - - if((regData & PMIC_INT_ESM_ESM_SOC_FAIL_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_ESM_SOC_FAIL_INT); - } - - if((regData & PMIC_INT_ESM_ESM_SOC_RST_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_ESM_SOC_RST_INT); - } - - if((regData & PMIC_INT_ESM_ESM_MCU_PIN_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_ESM_MCU_PIN_INT); - } - - if((regData & PMIC_INT_ESM_ESM_MCU_FAIL_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_ESM_MCU_FAIL_INT); - } - - if((regData & PMIC_INT_ESM_ESM_MCU_RST_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_ESM_MCU_RST_INT); - } - } - } -} - -/*! - * \brief Function to decipher FSM Error. - */ -static int32_t Pmic_tps6594x_getFSMErr(Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t regValue, - Pmic_IrqStatus_t *pErrStat) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - if((regValue & PMIC_INT_FSM_ERR_IMM_SHUTDOWN_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_IMM_SHUTOWN_INT); - } - - if((regValue & PMIC_INT_FSM_ERR_ORD_SHUTDOWN_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_ORD_SHUTDOWN_INT); - } - - if((regValue & PMIC_INT_FSM_ERR_MCU_PWR_ERR_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_MCU_PWR_ERR_INT); - } - - if((regValue & PMIC_INT_FSM_ERR_SOC_PWR_ERR_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_SOC_PWR_ERR_INT); - } - - /* Check decipher FSM Error for PMIC_INT_COMM_ERR Register Bit */ - Pmic_tps6594x_getFsmCommErr(pPmicCoreHandle, regValue, pErrStat); - - /* Check decipher FSM Error for PMIC_INT_READBACK_ERR Register Bit */ - Pmic_tps6594x_getFsmReadbackErr(pPmicCoreHandle, regValue, pErrStat); - - /* Check decipher FSM Error for PMIC_INT_ESM Register Bit */ - Pmic_tps6594x_getFsmEsmErr(pPmicCoreHandle, regValue, pErrStat); - - /* Check decipher FSM Error for IRQ Mask Bit */ - if((regValue & PMIC_INT_FSM_ERR_WD_INT_MASK) != 0U) - { - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_WD_ERR_STATUS_REGADDR, - ®Data); - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((regData & PMIC_INT_WD_ERR_MASK) != 0U)) - { - if((regData & PMIC_WD_ERR_STATUS_WD_RST_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_WD_RST_INT); - } - - if((regData & PMIC_WD_ERR_STATUS_WD_FAIL_INT_MASK) != 0U) - { - Pmic_intrBitSet(pErrStat, PMIC_TPS6594X_WD_FAIL_INT); - } - - if((regData & PMIC_WD_ERR_STATUS_WD_LONGWIN_TIMEOUT_INT_MASK) - != 0U) - { - Pmic_intrBitSet(pErrStat, - PMIC_TPS6594X_WD_LONGWIN_TIMEOUT_INT); - } - } - } - - return pmicStatus; -} - -/*! - * \brief Call Function to decipher the Startup, Miscellaneous, Moderate, - * Severe, FSM Error - */ -static int32_t Pmic_tps6594x_getStartupMiscModerateSevereFsmErr( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_IrqStatus_t *pErrStat, - uint16_t l1RegAddr, - uint8_t regValue) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - switch(l1RegAddr) - { - case PMIC_INT_STARTUP_REGADDR: - pmicStatus = Pmic_tps6594x_getStartupErr(pPmicCoreHandle, - regValue, - pErrStat); - break; - - case PMIC_INT_MISC_REGADDR: - Pmic_tps6594x_getMiscErr(regValue, pErrStat); - break; - - case PMIC_INT_MODERATE_ERR_REGADDR: - Pmic_tps6594x_getModerateErr(pPmicCoreHandle, - regValue, - pErrStat); - break; - - case PMIC_INT_SEVERE_ERR_REGADDR: - Pmic_tps6594x_getSevereErr(pPmicCoreHandle, - regValue, - pErrStat); - break; - - default: - pmicStatus = Pmic_tps6594x_getFSMErr(pPmicCoreHandle, - regValue, - pErrStat); - break; - } - - return pmicStatus; -} - -/*! - * \brief Function to decipher the L2 Error for TPS6594x Leo PMIC. - */ -int32_t Pmic_tps6594x_irqGetL2Error(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t l1RegAddr, - Pmic_IrqStatus_t *pErrStat) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regValue = 0U; - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Read the L1 register value */ - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - l1RegAddr, - ®Value); - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - switch(l1RegAddr) - { - case PMIC_INT_BUCK_REGADDR: - pmicStatus = Pmic_tps6594x_getBuckErr(pPmicCoreHandle, - regValue, - pErrStat); - break; - - case PMIC_INT_LDO_VMON_REGADDR: - pmicStatus = Pmic_tps6594x_getLdoVmonErr(pPmicCoreHandle, - regValue, - pErrStat); - break; - - case PMIC_INT_GPIO_REGADDR: - pmicStatus = Pmic_tps6594x_getGpioErr(pPmicCoreHandle, - regValue, - pErrStat); - break; - - case PMIC_INT_STARTUP_REGADDR: - case PMIC_INT_MISC_REGADDR: - case PMIC_INT_MODERATE_ERR_REGADDR: - case PMIC_INT_SEVERE_ERR_REGADDR: - case PMIC_INT_FSM_ERR_REGADDR: - pmicStatus = Pmic_tps6594x_getStartupMiscModerateSevereFsmErr( - pPmicCoreHandle, - pErrStat, - l1RegAddr, - regValue); - break; - - default: - pmicStatus = PMIC_ST_ERR_INV_INT; - break; - } - } - - return pmicStatus; -} - -/*! - * \brief Function to reinitialise Interrupt configuration based on PMIC - * Silicon Revision - */ -void Pmic_tps6594x_reInitInterruptConfig(void) -{ - Pmic_IntrCfg_t *pIntrCfg = gTps6594x_intCfg; - - uint8_t irqNum = PMIC_TPS6594X_NRSTOUT_READBACK_INT; - - pIntrCfg[irqNum].intrClrRegAddr = PMIC_INT_READBACK_ERR_REGADDR; - pIntrCfg[irqNum].intrClrBitPos = \ - PMIC_INT_READBACK_ERR_NRSTOUT_READBACK_INT_SHIFT; - pIntrCfg[irqNum].intrMaskRegAddr = PMIC_MASK_READBACK_ERR_REGADDR; - pIntrCfg[irqNum].intrMaskBitPos = \ - PMIC_MASK_READBACK_ERR_NRSTOUT_READBACK_MASK_SHIFT; - - irqNum = PMIC_TPS6594X_NINT_READBACK_INT; - - pIntrCfg[irqNum].intrClrRegAddr = PMIC_INT_READBACK_ERR_REGADDR; - pIntrCfg[irqNum].intrClrBitPos = \ - PMIC_INT_READBACK_ERR_NINT_READBACK_INT_SHIFT; - pIntrCfg[irqNum].intrMaskRegAddr = PMIC_MASK_READBACK_ERR_REGADDR; - pIntrCfg[irqNum].intrMaskBitPos = \ - PMIC_MASK_READBACK_ERR_NINT_READBACK_MASK_SHIFT; - - irqNum = PMIC_TPS6594X_RECOV_CNT_INT; - - pIntrCfg[irqNum].intrClrRegAddr = PMIC_INT_MODERATE_ERR_REGADDR; - pIntrCfg[irqNum].intrClrBitPos = \ - PMIC_INT_MODERATE_ERR_RECOV_CNT_INT_SHIFT_PG_1_0; - - irqNum = PMIC_TPS6594X_PFSM_ERR_INT; - - pIntrCfg[irqNum].intrClrRegAddr = PMIC_INT_MODERATE_ERR_REGADDR; - pIntrCfg[irqNum].intrClrBitPos = \ - PMIC_INT_MODERATE_ERR_PFSM_ERR_INT_SHIFT_PG_1_0; - -} diff --git a/src/cfg/tps6594x/pmic_irq_tps6594x_priv.h b/src/cfg/tps6594x/pmic_irq_tps6594x_priv.h deleted file mode 100644 index 3c93ffc..0000000 --- a/src/cfg/tps6594x/pmic_irq_tps6594x_priv.h +++ /dev/null @@ -1,258 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ - -/** - * \file pmic_irq_tps6594x_priv.h - * - * \brief The macro definitions, structures and function prototypes for - * configuring PMIC IRQ. - */ - -#ifndef PMIC_IRQ_TPS6594X_PRIV_H_ -#define PMIC_IRQ_TPS6594X_PRIV_H_ - -/* ========================================================================= */ -/* Include Files */ -/* ========================================================================= */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* ========================================================================= */ -/* Macros & Typedefs */ -/* ========================================================================= */ - -/*! - * \brief PMIC Interrupt Hierarchy Level 1 Register offsets. - */ -#define PMIC_INT_LDO_VMON_REGADDR (0x5FU) - -/** Interrupt Hierarchy Level 2 Register offsets */ -/*! - * \brief INT_BUCK Sources - */ -#define PMIC_INT_BUCK5_REGADDR (0x5EU) - -/*! - * \brief INT_LDO_VMON Sources - */ -#define PMIC_INT_LDO1_2_REGADDR (0x60U) -#define PMIC_INT_LDO3_4_REGADDR (0x61U) - -/*! - * \brief Interrupt MASK registers address - */ -#define PMIC_MASK_GPIO9_11_REGADDR (0x51U) -#define PMIC_MASK_BUCK5_REGADDR (0x4BU) -#define PMIC_MASK_LDO1_2_REGADDR (0x4CU) -#define PMIC_MASK_LDO3_4_REGADDR (0x4DU) - -/*! - * \brief INT_TOP Register Bit Masks - */ -#define PMIC_INT_TOP_LDO_VMON_INT_MASK (0x02U) - -/*! - * \brief STARTUP Error Interrupt Mask - */ -#define PMIC_INT_STARTUP_RTC_INT_MASK (0x04U) - -/*! - * \brief LDO Interrupt Mask - */ -#define PMIC_INT_LDO_VMON_LDO1_2_INT_MASK (0x01U) -#define PMIC_INT_LDO_VMON_LDO3_4_INT_MASK (0x02U) -#define PMIC_INT_LDO_VMON_VCCA_INT_MASK (0x10U) - - -#define PMIC_INT_GPIO_GPIO11_INT_MASK (0x04U) -#define PMIC_INT_STARTUP_NPWRON_START_INT_MASK (0x01U) -#define PMIC_INT_MODERATE_ERR_NPWRON_LONG_INT_MASK (0x20U) - -/*! - * \brief PMIC_INT_BUCK Register Bit Mask - */ -#define PMIC_INT_BUCK_BUCK5_INT_MASK (0x04U) - -/*! - * \brief INT_STARTUP Sources - */ -#define PMIC_RTC_STATUS_REGADDR (0xC4U) -#define PMIC_RTC_INTERRUPTS_REGADDR (0xC5U) - -/*! - * \brief PMIC_INT_BUCK5 Register Bit Masks - */ -#define PMIC_INT_BUCK5_BUCK5_OV_INT_MASK (0x01U) -#define PMIC_INT_BUCK5_BUCK5_UV_INT_MASK (0x02U) -#define PMIC_INT_BUCK5_BUCK5_SC_INT_MASK (0x04U) -#define PMIC_INT_BUCK5_BUCK5_ILIM_INT_MASK (0x08U) - -/*! - * \brief PMIC_INT_LDO1_2 Register Bit Masks - */ -#define PMIC_INT_LDO1_2_LDO1_OV_INT_MASK (0x01U) -#define PMIC_INT_LDO1_2_LDO1_UV_INT_MASK (0x02U) -#define PMIC_INT_LDO1_2_LDO1_SC_INT_MASK (0x04U) -#define PMIC_INT_LDO1_2_LDO1_ILIM_INT_MASK (0x08U) -#define PMIC_INT_LDO1_2_LDO2_OV_INT_MASK (0x10U) -#define PMIC_INT_LDO1_2_LDO2_UV_INT_MASK (0x20U) -#define PMIC_INT_LDO1_2_LDO2_SC_INT_MASK (0x40U) -#define PMIC_INT_LDO1_2_LDO2_ILIM_INT_MASK (0x80U) - -/*! - * \brief PMIC_INT_LDO3_4 Register Bit Masks - */ -#define PMIC_INT_LDO3_4_LDO3_OV_INT_MASK (0x01U) -#define PMIC_INT_LDO3_4_LDO3_UV_INT_MASK (0x02U) -#define PMIC_INT_LDO3_4_LDO3_SC_INT_MASK (0x04U) -#define PMIC_INT_LDO3_4_LDO3_ILIM_INT_MASK (0x08U) -#define PMIC_INT_LDO3_4_LDO4_OV_INT_MASK (0x10U) -#define PMIC_INT_LDO3_4_LDO4_UV_INT_MASK (0x20U) -#define PMIC_INT_LDO3_4_LDO4_SC_INT_MASK (0x40U) -#define PMIC_INT_LDO3_4_LDO4_ILIM_INT_MASK (0x80U) - -/*! - * \brief PMIC Interrupt Register Bit positions - */ -/*! PMIC_INT_MODERATE_ERR Register bit position */ -#define PMIC_INT_MODERATE_ERR_NPWRON_LONG_INT_SHIFT (0x5U) - -/*! PMIC_RTC_STATUS Register bit position */ -#define PMIC_RTC_STATUS_ALARM_SHIFT (0x06U) -#define PMIC_RTC_STATUS_TIMER_SHIFT (0x05U) - -/*! PMIC_INT_STARTUP Register bit position */ -#define PMIC_INT_STARTUP_NPWRON_START_INT_SHIFT (0x0U) - -/*! PMIC_INT_GPIO Register bit position */ -#define PMIC_INT_GPIO_GPIO11_INT_SHIFT (0x2U) - -/*! PMIC_INT_LDO3_4 Register bit position */ -#define PMIC_INT_LDO3_4_LDO4_ILIM_INT_SHIFT (0x7U) -#define PMIC_INT_LDO3_4_LDO4_SC_INT_SHIFT (0x6U) -#define PMIC_INT_LDO3_4_LDO4_UV_INT_SHIFT (0x5U) -#define PMIC_INT_LDO3_4_LDO4_OV_INT_SHIFT (0x4U) -#define PMIC_INT_LDO3_4_LDO3_ILIM_INT_SHIFT (0x3U) -#define PMIC_INT_LDO3_4_LDO3_SC_INT_SHIFT (0x2U) -#define PMIC_INT_LDO3_4_LDO3_UV_INT_SHIFT (0x1U) -#define PMIC_INT_LDO3_4_LDO3_OV_INT_SHIFT (0x0U) - -/*! PMIC_INT_LDO1_2 Register bit position */ -#define PMIC_INT_LDO1_2_LDO2_ILIM_INT_SHIFT (0x7U) -#define PMIC_INT_LDO1_2_LDO2_SC_INT_SHIFT (0x6U) -#define PMIC_INT_LDO1_2_LDO2_UV_INT_SHIFT (0x5U) -#define PMIC_INT_LDO1_2_LDO2_OV_INT_SHIFT (0x4U) -#define PMIC_INT_LDO1_2_LDO1_ILIM_INT_SHIFT (0x3U) -#define PMIC_INT_LDO1_2_LDO1_SC_INT_SHIFT (0x2U) -#define PMIC_INT_LDO1_2_LDO1_UV_INT_SHIFT (0x1U) -#define PMIC_INT_LDO1_2_LDO1_OV_INT_SHIFT (0x0U) - -/*! PMIC_BUCK5 Register bit position */ -#define PMIC_INT_BUCK5_BUCK5_ILIM_INT_SHIFT (0x3U) -#define PMIC_INT_BUCK5_BUCK5_SC_INT_SHIFT (0x2U) -#define PMIC_INT_BUCK5_BUCK5_UV_INT_SHIFT (0x1U) -#define PMIC_INT_BUCK5_BUCK5_OV_INT_SHIFT (0x0U) - -/*! - * \brief PMIC Mask Register Bit positions - */ -/*! PMIC_MASK_MODERATE_ERR Register Bit Position */ -#define PMIC_MASK_MODERATE_ERR_NPWRON_LONG_MASK_SHIFT (0x5U) - -/*! PMIC_STARTUP Register Bit Position */ -#define PMIC_MASK_STARTUP_NPWRON_START_MASK_SHIFT (0x0U) - -/*! PMIC_MASK_GPIO9_11 Register Bit Positions */ -#define PMIC_MASK_GPIO9_11_GPIO10_RISE_MASK_SHIFT (0x4U) -#define PMIC_MASK_GPIO9_11_GPIO9_RISE_MASK_SHIFT (0x3U) -#define PMIC_MASK_GPIO9_11_GPIO10_FALL_MASK_SHIFT (0x1U) -#define PMIC_MASK_GPIO9_11_GPIO9_FALL_MASK_SHIFT (0x0U) -#define PMIC_MASK_GPIO9_11_GPIO11_FALL_MASK_SHIFT (0x2U) -#define PMIC_MASK_GPIO9_11_GPIO11_RISE_MASK_SHIFT (0x5U) - -/*! PMIC_MASK_LDO3_4 Register Bit Position */ -#define PMIC_MASK_LDO3_4_LDO4_ILIM_MASK_SHIFT (0x7U) -#define PMIC_MASK_LDO3_4_LDO4_UV_MASK_SHIFT (0x5U) -#define PMIC_MASK_LDO3_4_LDO4_OV_MASK_SHIFT (0x4U) -#define PMIC_MASK_LDO3_4_LDO3_ILIM_MASK_SHIFT (0x3U) -#define PMIC_MASK_LDO3_4_LDO3_UV_MASK_SHIFT (0x1U) -#define PMIC_MASK_LDO3_4_LDO3_OV_MASK_SHIFT (0x0U) - -/*! PMIC_MASK_LDO1_2 Register Bit Position */ -#define PMIC_MASK_LDO1_2_LDO2_ILIM_MASK_SHIFT (0x7U) -#define PMIC_MASK_LDO1_2_LDO2_UV_MASK_SHIFT (0x5U) -#define PMIC_MASK_LDO1_2_LDO2_OV_MASK_SHIFT (0x4U) -#define PMIC_MASK_LDO1_2_LDO1_ILIM_MASK_SHIFT (0x3U) -#define PMIC_MASK_LDO1_2_LDO1_UV_MASK_SHIFT (0x1U) -#define PMIC_MASK_LDO1_2_LDO1_OV_MASK_SHIFT (0x0U) - -/*==========================================================================*/ -/* Structures and Enums */ -/*==========================================================================*/ - -/*==========================================================================*/ -/* Function Declarations */ -/*==========================================================================*/ -/*! - * \brief Function to get the PMIC Interrupt Registers for TPS6594x Leo PMIC. - */ -void pmic_get_tps6594x_intrCfg(Pmic_IntrCfg_t **pIntrCfg); - -/*! - * \brief Function to get the PMIC GPIO Interrupt Mask Registers for - * TPS6594x Leo PMIC. - */ -void pmic_get_tps6594x_intrGpioCfg(Pmic_GpioIntrTypeCfg_t **pIntGpioCfg); - -/*! - * \brief Function to decipher the L2 Error for TPS6594x Leo PMIC. - */ -int32_t Pmic_tps6594x_irqGetL2Error(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t l1RegAddr, - Pmic_IrqStatus_t *pErrStat); - -/*! - * \brief Function to reinitialise Interrupt configuration based on PMIC - * Silicon Revision - */ -void Pmic_tps6594x_reInitInterruptConfig(void); - -#ifdef __cplusplus -} - -#endif /* __cplusplus */ - -#endif /* PMIC_IRQ_TPS6594X_PRIV_H_ */ diff --git a/src/cfg/tps6594x/pmic_power_tps6594x.c b/src/cfg/tps6594x/pmic_power_tps6594x.c deleted file mode 100644 index 498b212..0000000 --- a/src/cfg/tps6594x/pmic_power_tps6594x.c +++ /dev/null @@ -1,891 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ - -/** -* \file pmic_power_tps6594x.c -* -* \brief This file contains the TPS6594x Leo PMIC power Specific -* configuration API's and structures -* -*/ - -#include -#include -#include -#include -#include - -static Pmic_powerRsrcRegCfg_t gTps6594x_pwrRsrcRegCfg[] = -{ - { - PMIC_VCCA_VMON_CTRL_REGADDR, - PMIC_INVALID_REGADDR, - PMIC_INVALID_REGADDR, - PMIC_INVALID_REGADDR, - PMIC_VCCA_PG_WINDOW_REGADDR, - PMIC_TPS6594X_VCCA_OV_INT, - PMIC_STAT_VMON_REGADDR, - PMIC_RAIL_SEL_3_REGADDR, - PMIC_RAIL_SEL_3_VCCA_GRP_SEL_SHIFT, - PMIC_INVALID_REGADDR, - PMIC_INVALID_BIT_SHIFT, - PMIC_INVALID_BIT_SHIFT, - PMIC_STAT_VMON_VCCA_UV_STAT_SHIFT, - PMIC_STAT_VMON_VCCA_OV_STAT_SHIFT - }, - { - PMIC_BUCK1_CTRL_REGADDR, - PMIC_BUCK1_CONF_REGADDR, - PMIC_BUCK1_VOUT_1_REGADDR, - PMIC_BUCK1_VOUT_2_REGADDR, - PMIC_BUCK1_PG_WIN_REGADDR, - PMIC_TPS6594X_BUCK1_OV_INT, - PMIC_STAT_BUCK1_2_REGADDR, - PMIC_RAIL_SEL_1_REGADDR, - PMIC_RAIL_SEL_1_BUCK1_GRP_SEL_SHIFT, - PMIC_INVALID_REGADDR, - PMIC_INVALID_BIT_SHIFT, - PMIC_STAT_BUCKX_Y_BUCK1_3_ILIM_STAT_SHIFT, - PMIC_STAT_BUCKX_Y_BUCK1_3_UV_STAT_SHIFT, - PMIC_STAT_BUCKX_Y_BUCK1_3_OV_STAT_SHIFT - }, - { - PMIC_BUCK2_CTRL_REGADDR, - PMIC_BUCK2_CONF_REGADDR, - PMIC_BUCK2_VOUT_1_REGADDR, - PMIC_BUCK2_VOUT_2_REGADDR, - PMIC_BUCK2_PG_WIN_REGADDR, - PMIC_TPS6594X_BUCK2_OV_INT, - PMIC_RAIL_SEL_1_REGADDR, - PMIC_STAT_BUCK1_2_REGADDR, - PMIC_RAIL_SEL_1_BUCK2_GRP_SEL_SHIFT, - PMIC_INVALID_REGADDR, - PMIC_INVALID_BIT_SHIFT, - PMIC_STAT_BUCKX_Y_BUCK2_4_ILIM_STAT_SHIFT, - PMIC_STAT_BUCKX_Y_BUCK2_4_UV_STAT_SHIFT, - PMIC_STAT_BUCKX_Y_BUCK2_4_OV_STAT_SHIFT - }, - { - PMIC_BUCK3_CTRL_REGADDR, - PMIC_BUCK3_CONF_REGADDR, - PMIC_BUCK3_VOUT_1_REGADDR, - PMIC_BUCK3_VOUT_2_REGADDR, - PMIC_BUCK3_PG_WIN_REGADDR, - PMIC_TPS6594X_BUCK3_OV_INT, - PMIC_STAT_BUCK3_4_REGADDR, - PMIC_RAIL_SEL_1_REGADDR, - PMIC_RAIL_SEL_1_BUCK3_GRP_SEL_SHIFT, - PMIC_INVALID_REGADDR, - PMIC_INVALID_BIT_SHIFT, - PMIC_STAT_BUCKX_Y_BUCK1_3_ILIM_STAT_SHIFT, - PMIC_STAT_BUCKX_Y_BUCK1_3_UV_STAT_SHIFT, - PMIC_STAT_BUCKX_Y_BUCK1_3_OV_STAT_SHIFT - }, - { - PMIC_BUCK4_CTRL_REGADDR, - PMIC_BUCK4_CONF_REGADDR, - PMIC_BUCK4_VOUT_1_REGADDR, - PMIC_BUCK4_VOUT_2_REGADDR, - PMIC_BUCK4_PG_WIN_REGADDR, - PMIC_TPS6594X_BUCK4_OV_INT, - PMIC_STAT_BUCK3_4_REGADDR, - PMIC_RAIL_SEL_1_REGADDR, - PMIC_RAIL_SEL_1_BUCK4_GRP_SEL_SHIFT, - PMIC_INVALID_REGADDR, - PMIC_INVALID_BIT_SHIFT, - PMIC_STAT_BUCKX_Y_BUCK2_4_ILIM_STAT_SHIFT, - PMIC_STAT_BUCKX_Y_BUCK2_4_UV_STAT_SHIFT, - PMIC_STAT_BUCKX_Y_BUCK2_4_OV_STAT_SHIFT - }, - { - PMIC_BUCK5_CTRL_REGADDR, - PMIC_BUCK5_CONF_REGADDR, - PMIC_BUCK5_VOUT_1_REGADDR, - PMIC_BUCK5_VOUT_2_REGADDR, - PMIC_BUCK5_PG_WIN_REGADDR, - PMIC_TPS6594X_BUCK5_OV_INT, - PMIC_STAT_BUCK5_REGADDR, - PMIC_RAIL_SEL_2_REGADDR, - PMIC_RAIL_SEL_2_BUCK5_GRP_SEL_SHIFT, - PMIC_INVALID_REGADDR, - PMIC_INVALID_BIT_SHIFT, - PMIC_STAT_BUCK5_BUCK5_ILIM_STAT_SHIFT, - PMIC_STAT_BUCK5_BUCK5_UV_STAT_SHIFT, - PMIC_STAT_BUCK5_BUCK5_OV_STAT_SHIFT - }, - { - PMIC_LDO1_CTRL_REGADDR, - PMIC_INVALID_REGADDR, - PMIC_LDO1_VOUT_REGADDR, - PMIC_INVALID_REGADDR, - PMIC_LDO1_PG_WIN_REGADDR, - PMIC_TPS6594X_LDO1_OV_INT, - PMIC_STAT_LDO1_2_REGADDR, - PMIC_RAIL_SEL_2_REGADDR, - PMIC_RAIL_SEL_2_LDO1_GRP_SEL_SHIFT, - PMIC_LDO_RV_TIMEOUT_REG_1_REGADDR, - PMIC_LDO_RV_TIMEOUT_REG_LDO1_3_RV_TIMEOUT_SHIFT, - PMIC_STAT_LDOX_Y_LDO1_3_ILIM_STAT_SHIFT, - PMIC_STAT_LDOX_Y_LDO1_3_UV_STAT_SHIFT, - PMIC_STAT_LDOX_Y_LDO1_3_OV_STAT_SHIFT - }, - { - PMIC_LDO2_CTRL_REGADDR, - PMIC_INVALID_REGADDR, - PMIC_LDO2_VOUT_REGADDR, - PMIC_INVALID_REGADDR, - PMIC_LDO2_PG_WIN_REGADDR, - PMIC_TPS6594X_LDO2_OV_INT, - PMIC_STAT_LDO1_2_REGADDR, - PMIC_RAIL_SEL_2_REGADDR, - PMIC_RAIL_SEL_2_LDO2_GRP_SEL_SHIFT, - PMIC_LDO_RV_TIMEOUT_REG_1_REGADDR, - PMIC_LDO_RV_TIMEOUT_REG_LDO2_4_RV_TIMEOUT_SHIFT, - PMIC_STAT_LDOX_Y_LDO2_4_ILIM_STAT_SHIFT, - PMIC_STAT_LDOX_Y_LDO2_4_UV_STAT_SHIFT, - PMIC_STAT_LDOX_Y_LDO2_4_OV_STAT_SHIFT - }, - { - PMIC_LDO3_CTRL_REGADDR, - PMIC_INVALID_REGADDR, - PMIC_LDO3_VOUT_REGADDR, - PMIC_INVALID_REGADDR, - PMIC_LDO3_PG_WIN_REGADDR, - PMIC_TPS6594X_LDO3_OV_INT, - PMIC_STAT_LDO3_4_REGADDR, - PMIC_RAIL_SEL_2_REGADDR, - PMIC_RAIL_SEL_2_LDO3_GRP_SEL_SHIFT, - PMIC_LDO_RV_TIMEOUT_REG_2_REGADDR, - PMIC_LDO_RV_TIMEOUT_REG_LDO1_3_RV_TIMEOUT_SHIFT, - PMIC_STAT_LDOX_Y_LDO1_3_ILIM_STAT_SHIFT, - PMIC_STAT_LDOX_Y_LDO1_3_UV_STAT_SHIFT, - PMIC_STAT_LDOX_Y_LDO1_3_OV_STAT_SHIFT - }, - { - PMIC_LDO4_CTRL_REGADDR, - PMIC_INVALID_REGADDR, - PMIC_LDO4_VOUT_REGADDR, - PMIC_INVALID_REGADDR, - PMIC_LDO4_PG_WIN_REGADDR, - PMIC_TPS6594X_LDO4_OV_INT, - PMIC_STAT_LDO3_4_REGADDR, - PMIC_RAIL_SEL_3_REGADDR, - PMIC_RAIL_SEL_3_LDO4_GRP_SEL_SHIFT, - PMIC_LDO_RV_TIMEOUT_REG_2_REGADDR, - PMIC_LDO_RV_TIMEOUT_REG_LDO2_4_RV_TIMEOUT_SHIFT, - PMIC_STAT_LDOX_Y_LDO2_4_ILIM_STAT_SHIFT, - PMIC_STAT_LDOX_Y_LDO2_4_UV_STAT_SHIFT, - PMIC_STAT_LDOX_Y_LDO2_4_OV_STAT_SHIFT - }, - -}; - -static Pmic_powerPgoodSrcRegCfg_t tps6594x_pgoodSrcRegCfg[] = -{ - { - PMIC_PGOOD_SEL_4_REGADDR, - PMIC_PGOOD_SEL_4_PGOOD_SEL_VCCA_SHIFT, - }, - { - PMIC_PGOOD_SEL_1_REGADDR, - PMIC_PGOOD_SEL_1_PGOOD_SEL_BUCK1_SHIFT, - }, - { - PMIC_PGOOD_SEL_1_REGADDR, - PMIC_PGOOD_SEL_1_PGOOD_SEL_BUCK2_SHIFT, - }, - { - PMIC_PGOOD_SEL_1_REGADDR, - PMIC_PGOOD_SEL_1_PGOOD_SEL_BUCK3_SHIFT, - }, - { - PMIC_PGOOD_SEL_1_REGADDR, - PMIC_PGOOD_SEL_1_PGOOD_SEL_BUCK4_SHIFT, - }, - { - PMIC_PGOOD_SEL_2_REGADDR, - PMIC_PGOOD_SEL_2_PGOOD_SEL_BUCK5_SHIFT, - }, - { - PMIC_PGOOD_SEL_4_REGADDR, - PMIC_PGOOD_SEL_4_PGOOD_SEL_NRSTOUT_SHIFT, - }, - { - PMIC_PGOOD_SEL_4_REGADDR, - PMIC_PGOOD_SEL_4_PGOOD_SEL_NRSTOUT_SOC_SHIFT, - }, - { - PMIC_PGOOD_SEL_4_REGADDR, - PMIC_PGOOD_SEL_4_PGOOD_SEL_TDIE_WARN_SHIFT, - }, - { - PMIC_PGOOD_SEL_3_REGADDR, - PMIC_PGOOD_SEL_3_PGOOD_SEL_LDO1_SHIFT, - }, - { - PMIC_PGOOD_SEL_3_REGADDR, - PMIC_PGOOD_SEL_3_PGOOD_SEL_LDO2_SHIFT, - }, - { - PMIC_PGOOD_SEL_3_REGADDR, - PMIC_PGOOD_SEL_3_PGOOD_SEL_LDO3_SHIFT, - }, - { - PMIC_PGOOD_SEL_3_REGADDR, - PMIC_PGOOD_SEL_3_PGOOD_SEL_LDO4_SHIFT, - }, -}; - -static Pmic_powerIntCfg_t tps6594x_pwrIntCfg[] = -{ - { - PMIC_TPS6594X_TWARN_INT, - }, - { - PMIC_TPS6594X_NRSTOUT_READBACK_INT, - }, - { - PMIC_TPS6594X_SOC_PWR_ERR_INT, - }, - { - PMIC_TPS6594X_MCU_PWR_ERR_INT, - }, - { - PMIC_TPS6594X_ORD_SHUTDOWN_INT, - }, - { - PMIC_TPS6594X_IMM_SHUTOWN_INT, - }, - { - PMIC_TPS6594X_NRSTOUT_SOC_READBACK_INT, - }, - { - PMIC_TPS6594X_EN_DRV_READBACK_INT, - }, - -}; - -/*! - * \brief PMIC power common interrupt get Configuration function - * This function is used to read the interrupt - * Configuration - * - * \param pwrRsrcRegCfg [OUT] Pointer to store power interrupt - * number. - */ -void pmic_get_tps6594x_pwrCommonIntCfg(Pmic_powerIntCfg_t **pPwrCommonIntCfg) -{ - *pPwrCommonIntCfg = tps6594x_pwrIntCfg; -} - -/*! - * \brief PMIC power resources get Configuration function - * This function is used to read the PMIC POWER resources register - * Configuration - * - * \param pwrRsrcRegCfg [OUT] Pointer to store power resource register - * configuration - */ -void pmic_get_tps6594x_pwrRsrceRegCfg(Pmic_powerRsrcRegCfg_t **pPwrRsrcRegCfg) -{ - *pPwrRsrcRegCfg = gTps6594x_pwrRsrcRegCfg; -} - -/*! - * \brief PMIC power get Configuration function - * This function is used to read the PMIC pgood sources register - * Configuration - * - * \param pPgoodSrcRegCfg [OUT] Pointer to store power-good source register - * configuration - */ -void pmic_get_tps6594x_pwrPgoodSrcRegCfg( - Pmic_powerPgoodSrcRegCfg_t **pPgoodSrcRegCfg) -{ - *pPgoodSrcRegCfg = tps6594x_pgoodSrcRegCfg; -} - -/*! - * \brief This function is used to convert the millivolt value to vset value - * for LEO TPS6594x PMIC - * - * Note: In this API, While adding support for New pwrRsrcType, - * developer need to update the API functionality for New - * pwrRsrcType accordingly. - */ -int32_t Pmic_powerTPS6594xConvertVoltage2VSetVal(uint16_t millivolt, - uint16_t pwrRsrc, - uint8_t *pVSetVal) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t pwrRsrcType = 0U; - uint16_t baseMillivolt = 0U; - uint8_t millivoltStep = 0U; - uint8_t baseVoutCode = 0U; - - pwrRsrcType = Pmic_powerGetPwrRsrcType(pwrRsrc); - - if(PMIC_TPS6594X_POWER_RESOURCE_TYPE_BUCK == pwrRsrcType) - { - status = Pmic_powerBuckVmonConvertVoltage2VSetVal(millivolt, - &baseMillivolt, - &millivoltStep, - &baseVoutCode); - - } - else - { - /* Else case for LDO pwrRsrcType */ - Pmic_powerLdoConvertVoltage2VSetVal(pwrRsrc, - &baseMillivolt, - &millivoltStep, - &baseVoutCode); - } - - if((PMIC_ST_SUCCESS == status) && - ((millivolt % millivoltStep) == 1U)) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == status) - { - *pVSetVal = (uint8_t)(baseVoutCode + - ((millivolt - baseMillivolt) / millivoltStep)); - } - - return status; -} - -/*! - * \brief This function is used to convert the vset value to voltage in mv - * for PMIC LEO TPS6594x - * - * Note: In this API, While adding support for New pwrRsrcType, - * developer need to update the API functionality for New - * pwrRsrcType accordingly. - */ -void Pmic_powerTPS6594xConvertVSet2Voltage(const uint8_t *pVSetVal, - uint16_t pwrRsrc, - uint16_t *millivolt) -{ - uint16_t baseMillivolt = 0U; - uint8_t millivoltStep = 0U; - uint8_t baseVoutCode = 0U; - uint8_t pwrRsrcType; - - pwrRsrcType = Pmic_powerGetPwrRsrcType(pwrRsrc); - if(PMIC_TPS6594X_POWER_RESOURCE_TYPE_BUCK == pwrRsrcType) - { - Pmic_powerBuckVmonConvertVSetVal2Voltage(pVSetVal, - &baseMillivolt, - &millivoltStep, - &baseVoutCode); - } - else - { - /* Else case for LDO pwrRsrcType */ - Pmic_powerLdoConvertVSetVal2Voltage(pwrRsrc, - &baseMillivolt, - &millivoltStep, - &baseVoutCode); - } - - *millivolt = (baseMillivolt + - (((uint16_t)*pVSetVal - baseVoutCode) * millivoltStep)); - -} - -/*! - * \brief This function is to validate the power good source limit for VCCA - * BUCK, LDO - */ -static int32_t Pmic_validate_tps6594x_pGoodVccaBuckLDOSrcType( - uint16_t pgoodSrc, - uint8_t pGoodSrcType) -{ - int32_t status = PMIC_ST_SUCCESS; - - if(PMIC_TPS6594X_PGOOD_SOURCE_TYPE_VCCA == pGoodSrcType) - { - if(pgoodSrc != PMIC_TPS6594X_PGOOD_SOURCE_VCCA) - { - status = PMIC_ST_ERR_INV_PARAM; - } - } - else if(PMIC_TPS6594X_PGOOD_SOURCE_TYPE_BUCK == pGoodSrcType) - { - if((pgoodSrc > PMIC_TPS6594X_PGOOD_BUCK_MAX) || - (pgoodSrc < PMIC_TPS6594X_PGOOD_BUCK_MIN)) - { - status = PMIC_ST_ERR_INV_PARAM; - } - } - else - { - if((pgoodSrc > PMIC_TPS6594X_PGOOD_LDO_MAX) || - (pgoodSrc < PMIC_TPS6594X_PGOOD_LDO_MIN)) - { - status = PMIC_ST_ERR_INV_PARAM; - } - } - - return status; -} - -/*! - * \brief This function is to validate the power good source limit for the - * specific PMIC device. - */ -int32_t Pmic_validate_tps6594x_pGoodSrcType(uint16_t pgoodSrc) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t pGoodSrcType; - - pGoodSrcType = Pmic_powerGetPwrRsrcType(pgoodSrc); - - if((PMIC_TPS6594X_PGOOD_SOURCE_TYPE_VCCA == pGoodSrcType) || - (PMIC_TPS6594X_PGOOD_SOURCE_TYPE_BUCK == pGoodSrcType) || - (PMIC_TPS6594X_PGOOD_SOURCE_TYPE_LDO == pGoodSrcType)) - { - status = Pmic_validate_tps6594x_pGoodVccaBuckLDOSrcType( - pgoodSrc, - pGoodSrcType); - } - else if(PMIC_TPS6594X_PGOOD_SOURCE_TYPE_NRSTOUT == pGoodSrcType) - { - if(pgoodSrc != PMIC_TPS6594X_PGOOD_SOURCE_NRSTOUT) - { - status = PMIC_ST_ERR_INV_PARAM; - } - } - else if(PMIC_TPS6594X_PGOOD_SOURCE_TYPE_NRSTOUT_SOC == pGoodSrcType) - { - if(pgoodSrc != PMIC_TPS6594X_PGOOD_SOURCE_NRSTOUT_SOC) - { - status = PMIC_ST_ERR_INV_PARAM; - } - } - else if(PMIC_TPS6594X_PGOOD_SOURCE_TYPE_TDIE == pGoodSrcType) - { - if(pgoodSrc != PMIC_TPS6594X_PGOOD_SOURCE_TDIE) - { - status = PMIC_ST_ERR_INV_PARAM; - } - } - else - { - status = PMIC_ST_ERR_INV_PARAM; - } - - return status; -} - -/*! - * \brief This function is to validate the power good signal source selection - * limit for BUCK, LDO, NRSTOUT, NRSTOUT_SOC - */ -static int32_t Pmic_validate_tps6594x_pGoodSelBuckLdoNrstoutNrstoutsoc( - uint8_t pGoodSrcType, - uint8_t pgoodSelType) -{ - int32_t status = PMIC_ST_SUCCESS; - - if((PMIC_TPS6594X_PGOOD_SOURCE_TYPE_BUCK == pGoodSrcType) || - (PMIC_TPS6594X_PGOOD_SOURCE_TYPE_LDO == pGoodSrcType)) - { - if(pgoodSelType > PMIC_TPS6594X_POWER_PGOOD_SEL_SRC_VOLTAGE_CURRENT) - { - status = PMIC_ST_ERR_INV_PARAM; - } - } - else if(PMIC_TPS6594X_PGOOD_SOURCE_TYPE_NRSTOUT == pGoodSrcType) - { - if(pgoodSelType > PMIC_TPS6594X_POWER_PGOOD_SEL_NRSTOUT) - { - status = PMIC_ST_ERR_INV_PARAM; - } - } - else - { - if(pgoodSelType > PMIC_TPS6594X_POWER_PGOOD_SEL_NRSTOUT_SOC) - { - status = PMIC_ST_ERR_INV_PARAM; - } - } - -return status; -} - -/*! - * \brief This function is to validate the power good signal source selection - * limit for the specific PMIC device. - * - * Note: In this API, While adding support for New pGoodSrcType, - * developer need to update the API functionality for New - * pGoodSrcType accordingly. - */ -int32_t Pmic_validate_tps6594x_pGoodSelType(uint16_t pgoodSrc, - uint8_t pgoodSelType) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t pGoodSrcType; - - pGoodSrcType = Pmic_powerGetPwrRsrcType(pgoodSrc); - - if((PMIC_TPS6594X_PGOOD_SOURCE_TYPE_BUCK == pGoodSrcType) || - (PMIC_TPS6594X_PGOOD_SOURCE_TYPE_LDO == pGoodSrcType) || - (PMIC_TPS6594X_PGOOD_SOURCE_TYPE_NRSTOUT == pGoodSrcType) || - (PMIC_TPS6594X_PGOOD_SOURCE_TYPE_NRSTOUT_SOC == pGoodSrcType)) - { - status = Pmic_validate_tps6594x_pGoodSelBuckLdoNrstoutNrstoutsoc( - pGoodSrcType, - pgoodSelType); - } - else if(PMIC_TPS6594X_PGOOD_SOURCE_TYPE_TDIE == pGoodSrcType) - { - if(pgoodSelType > PMIC_TPS6594X_POWER_PGOOD_SEL_TDIE_WARN) - { - status = PMIC_ST_ERR_INV_PARAM; - } - } - else - { - /* Else case for VCCA pGoodSrcType */ - if(pgoodSelType > PMIC_TPS6594X_POWER_PGOOD_SEL_VCCA_ENABLE) - { - status = PMIC_ST_ERR_INV_PARAM; - } - } - - return status; -} - -/* Enable/Disable LDORTC regulator */ -static int32_t Pmic_powerLdoRtcEnable(Pmic_CoreHandle_t *pPmicCoreHandle, - bool ldortcEnable) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regData; - uint8_t ldortcEnableVal = 0U; - - switch (pPmicCoreHandle->pmicDeviceType) - { - case PMIC_DEV_LEO_TPS6594X: - Pmic_criticalSectionStart(pPmicCoreHandle); - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_LDORTC_CTRL_REGADDR, - ®Data); - - if(PMIC_ST_SUCCESS == status) - { - if(((bool)true) == ldortcEnable) - { - ldortcEnableVal = 1U; - } - - /* Set ldortcEnable */ - Pmic_setBitField(®Data, - PMIC_LDORTC_CTRL_LDORTC_DIS_SHIFT, - PMIC_LDORTC_CTRL_LDORTC_DIS_MASK, - ldortcEnableVal); - status = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_LDORTC_CTRL_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - break; - default: - status = PMIC_ST_ERR_INV_PARAM; - break; - } - - return status; -} - -/* Get Enable/Disable LDORTC regulator status */ -static int32_t Pmic_powerGetLdoRtcEnable(Pmic_CoreHandle_t *pPmicCoreHandle, - bool *pLdortcEnable) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regData; - - switch (pPmicCoreHandle->pmicDeviceType) - { - case PMIC_DEV_LEO_TPS6594X: - Pmic_criticalSectionStart(pPmicCoreHandle); - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_LDORTC_CTRL_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - if(PMIC_ST_SUCCESS == status) - { - /* Get ldortcEnable */ - if(Pmic_getBitField(regData, - PMIC_LDORTC_CTRL_LDORTC_DIS_SHIFT, - PMIC_LDORTC_CTRL_LDORTC_DIS_MASK) != 0U) - { - *pLdortcEnable = (bool)true; - } - else - { - *pLdortcEnable = (bool)false; - } - - } - - break; - default: - status = PMIC_ST_ERR_INV_PARAM; - break; - } - - return status; -} - -/*! - * \brief API to enable/disable LDORTC regulator - * - * Requirement: REQ_TAG(PDK-5841) - * Design: did_pmic_power_cfg_readback - * Architecture: aid_pmic_power_cfg - * - * This function is used to enable/disable LDORTC regulator. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param ldortcEnable [IN] Enable/Disable the LDORTC. - * Valid values: - * \ref Pmic_Tps6594x_PowerLdoRtcCfg - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_powerSetLdoRtc(Pmic_CoreHandle_t *pPmicCoreHandle, - bool ldortcEnable) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_powerLdoRtcEnable(pPmicCoreHandle, ldortcEnable); - } - - return pmicStatus; -} - -/*! - * \brief API to get enable/disable status for LODRTC regulator - * - * Requirement: REQ_TAG(PDK-5841) - * Design: did_pmic_power_cfg_readback - * Architecture: aid_pmic_power_cfg - * - * This function is used to get enable/disable status for LDORTC - * regulator. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pLdortcEnable [IN] Pointer to hold Enable/Disable status. - * Valid values: - * \ref Pmic_Tps6594x_PowerLdoRtcCfg - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_powerGetLdoRtc(Pmic_CoreHandle_t *pPmicCoreHandle, - bool *pLdortcEnable) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (NULL == pLdortcEnable)) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_powerGetLdoRtcEnable(pPmicCoreHandle, pLdortcEnable); - } - - return pmicStatus; -} - -/** - * \brief This function is used to validate the voltage levels for - * Regulators/VMON for TPS6594x PMIC - * - * Note: In this API, While adding support for New pwrRsrcType, - * developer need to update the API functionality for New - * pwrRsrcType accordingly. - */ -int32_t Pmic_powerTPS6594xValidateVoltageLevel( - uint8_t pwrRsrcType, - uint16_t pwrRsrc, - uint16_t voltage_mV) -{ - int32_t status = PMIC_ST_SUCCESS; - uint16_t ldoMinVoltageValue = 0U; - - if(PMIC_TPS6594X_POWER_RESOURCE_TYPE_BUCK == pwrRsrcType) - { - if((voltage_mV < PMIC_TPS6594X_REGULATOR_BUCK_MIN_VOLTAGE) || - (voltage_mV > PMIC_TPS6594X_REGULATOR_BUCK_MAX_VOLTAGE)) - { - status = PMIC_ST_ERR_INV_PARAM; - } - } - else - { - /* Else case for LDO pwrRsrcType */ - if(PMIC_TPS6594X_REGULATOR_LDO4 == pwrRsrc) - { - ldoMinVoltageValue = PMIC_TPS6594X_POWER_LDO4_MIN_VOLTAGE; - } - else - { - ldoMinVoltageValue = \ - PMIC_TPS6594X_POWER_LDO1_2_3_MIN_VOLTAGE; - } - - if((voltage_mV < ldoMinVoltageValue) || - (voltage_mV > PMIC_TPS6594X_POWER_LDO_MAX_VOLTAGE)) - { - status = PMIC_ST_ERR_INV_PARAM; - } - } - - return status; -} - -/*! - * \brief This function is to validate the power resource limit for the - * TPS6594x PMIC device. - */ -int32_t Pmic_powerTPS6594xValidatePwrRsrcLimit( - const Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t pwrRsrcType, - uint16_t pwrRsrc) -{ - int32_t status = PMIC_ST_SUCCESS; - - if(PMIC_TPS6594X_POWER_RESOURCE_TYPE_VCCA == pwrRsrcType) - { - if(pwrRsrc != PMIC_TPS6594X_POWER_SOURCE_VCCA) - { - status = PMIC_ST_ERR_INV_PARAM; - } - } - else if(PMIC_TPS6594X_POWER_RESOURCE_TYPE_BUCK == pwrRsrcType) - { - if(((bool)false) == pPmicCoreHandle->pPmic_SubSysInfo->buckEnable) - { - status = PMIC_ST_ERR_INV_PARAM; - } - else - { - if((pwrRsrc > PMIC_TPS6594X_BUCK_MAX) || - (pwrRsrc < PMIC_TPS6594X_BUCK_MIN)) - { - status = PMIC_ST_ERR_INV_PARAM; - } - } - } - else if(PMIC_TPS6594X_POWER_RESOURCE_TYPE_LDO == pwrRsrcType) - { - if(((bool)false) == pPmicCoreHandle->pPmic_SubSysInfo->ldoEnable) - { - status = PMIC_ST_ERR_INV_PARAM; - } - else - { - if((pwrRsrc > PMIC_TPS6594X_LDO_MAX) || - (pwrRsrc < PMIC_TPS6594X_LDO_MIN)) - { - status = PMIC_ST_ERR_INV_PARAM; - } - } - } - else - { - status = PMIC_ST_ERR_INV_PARAM; - } - - return status; -} - -/*! - * \brief This function is to validate the power resource interrupt type - * for the TPS6594x PMIC device. - * - * Note: In this API, While adding support for New pwrResourceType, - * developer need to update the API functionality for New - * pwrResourceType accordingly. - */ -int32_t Pmic_powerTPS6594xValidateIntrType(uint8_t pwrResourceType, - uint8_t intrType) -{ - int32_t status = PMIC_ST_SUCCESS; - - if((PMIC_TPS6594X_POWER_RESOURCE_TYPE_BUCK == pwrResourceType) || - (PMIC_TPS6594X_POWER_RESOURCE_TYPE_LDO == pwrResourceType)) - { - if((intrType != PMIC_TPS6594X_POWER_OV_INT) && - (intrType != PMIC_TPS6594X_POWER_UV_INT) && - (intrType != PMIC_TPS6594X_POWER_ILIM_INT)) - { - status = PMIC_ST_ERR_INV_PARAM; - } - } - else - { - /* Else case for VCCA pwrResourceType */ - if((intrType != PMIC_TPS6594X_POWER_OV_INT) && - (intrType != PMIC_TPS6594X_POWER_UV_INT)) - { - status = PMIC_ST_ERR_INV_PARAM; - } - } - - return status; -} diff --git a/src/cfg/tps6594x/pmic_power_tps6594x_priv.h b/src/cfg/tps6594x/pmic_power_tps6594x_priv.h deleted file mode 100644 index 3319472..0000000 --- a/src/cfg/tps6594x/pmic_power_tps6594x_priv.h +++ /dev/null @@ -1,262 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ - -/** - * \file pmic_power_tps6594x_priv.h - * - * \brief The macro definitions, structures and function prototypes for - * TPS6594X Leo PMIC driver specific PMIC power configuration - * - */ - -#ifndef PMIC_POWER_TPS6594X_PRIV_H_ -#define PMIC_POWER_TPS6594X_PRIV_H_ - -/* ========================================================================== */ -/* Include Files */ -/* ========================================================================== */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* ========================================================================== */ -/* Macros & Typedefs */ -/* ========================================================================== */ - -/** - * \anchor Pmic_Regulator_Ldo_Voltage_Range - * \name PMIC Maximum ans minimum voltages for LDO regulator - * Voltage level are in millivolts. - * - * @{ - */ -/** \brief Maximum voltage level for Ldo */ -#define PMIC_TPS6594X_REGULATOR_LDO_MAX_VOLTAGE (3300U) -/** \brief Minimum voltage level for Ldo 1, 2 and 3 */ -#define PMIC_TPS6594X_REGULATOR_LDO1_2_3_MIN_VOLTAGE (600U) -/** \brief Minimum voltage level for Ldo 4 */ -#define PMIC_TPS6594X_REGULATOR_LDO4_MIN_VOLTAGE (1200U) -/* @} */ - -/*! - * * \brief PMIC Rail bit field - * */ -#define PMIC_REGULATOR_LDO_RV_TIMEOUT_SEL_BITFIELD (15U) - -/*! - * \brief PMIC Power Volatage range for BUCK regulator - */ -#define PMIC_TPS6594X_REGULATOR_BUCK_MIN_VOLTAGE PMIC_POWER_VOLTAGE_300MV -#define PMIC_TPS6594X_REGULATOR_BUCK_MAX_VOLTAGE PMIC_POWER_VOLTAGE_3340MV - -/*! - * \brief PMIC Power Current range for LDO regulator - */ -#define PMIC_TPS6594X_POWER_LDO1_2_3_MIN_VOLTAGE PMIC_POWER_VOLTAGE_600MV -#define PMIC_TPS6594X_POWER_LDO_MAX_VOLTAGE PMIC_POWER_VOLTAGE_3300MV -#define PMIC_TPS6594X_POWER_LDO4_MIN_VOLTAGE PMIC_POWER_VOLTAGE_1200MV - -/*! - * \brief PMIC Power Current range for BUCK 1, 2 and 3 regulator - */ -#define PMIC_TPS6594X_BUCK1_4_CURRENT_LIMIT_MIN \ - PMIC_TPS6594X_REGULATOR_BUCK_CURRENT_LIMIT_2A5 -#define PMIC_TPS6594X_BUCK1_4_CURRENT_LIMIT_MAX \ - PMIC_TPS6594X_REGULATOR_BUCK_CURRENT_LIMIT_5A5 -/*! - * \brief PMIC Power Current range for BUCK5 regulator - */ -#define PMIC_TPS6594X_BUCK5_CURRENT_LIMIT_MIN \ - PMIC_TPS6594X_REGULATOR_BUCK_CURRENT_LIMIT_2A5 -#define PMIC_TPS6594X_BUCK5_CURRENT_LIMIT_MAX \ - PMIC_TPS6594X_REGULATOR_BUCK_CURRENT_LIMIT_3A5 - -/*! - * \brief PMIC Power Slew Rate range for BUCK regulator - */ -#define PMIC_TPS6594X_BUCK_SLEW_RATE_MIN \ - PMIC_TPS6594X_REGULATOR_BUCK_SLEW_RATE_33MV -#define PMIC_TPS6594X_BUCK_SLEW_RATE_MAX \ - PMIC_TPS6594X_REGULATOR_BUCK_SLEW_RATE_0MV31 - -/*! - * \brief PMIC Power LDO Residual voltage check Timeout range for LDO regulator - */ -#define PMIC_TPS6594X_REGULATOR_LDO_RV_TIMEOUT_MIN \ - PMIC_TPS6594X_REGULATOR_LDO_RV_TIMEOUT_0MS5 -#define PMIC_TPS6594X_REGULATOR_LDO_RV_TIMEOUT_MAX \ - PMIC_TPS6594X_REGULATOR_LDO_RV_TIMEOUT_16MS - -/*! - * \brief PMIC Power Buck regulator range - */ -#define PMIC_TPS6594X_BUCK_MIN PMIC_TPS6594X_REGULATOR_BUCK1 -#define PMIC_TPS6594X_BUCK_MAX PMIC_TPS6594X_REGULATOR_BUCK5 - -/*! - * \brief PMIC Power Ldo regulator range - */ -#define PMIC_TPS6594X_LDO_MIN PMIC_TPS6594X_REGULATOR_LDO1 -#define PMIC_TPS6594X_LDO_MAX PMIC_TPS6594X_REGULATOR_LDO4 - -/*! - * \brief PMIC PowerGood Buck regulator range - */ -#define PMIC_TPS6594X_PGOOD_BUCK_MIN PMIC_TPS6594X_PGOOD_SOURCE_BUCK1 -#define PMIC_TPS6594X_PGOOD_BUCK_MAX PMIC_TPS6594X_PGOOD_SOURCE_BUCK5 - -/*! - * \brief PMIC PowerGood Ldo regulator range - */ -#define PMIC_TPS6594X_PGOOD_LDO_MIN PMIC_TPS6594X_PGOOD_SOURCE_LDO1 -#define PMIC_TPS6594X_PGOOD_LDO_MAX PMIC_TPS6594X_PGOOD_SOURCE_LDO4 - -/*! - * \brief PMIC Power RAIL group range - */ -#define PMIC_TPS6594X_POWER_RAIL_SEL_MIN PMIC_TPS6594X_POWER_RAIL_SEL_NONE -#define PMIC_TPS6594X_POWER_RAIL_SEL_MAX PMIC_TPS6594X_POWER_RAIL_SEL_OTHER - -/*! - * \brief PMIC Power LDO pull down ressistor range - */ -#define PMIC_TPS6594X_REGULATOR_LDO_PLDN_VAL_MIN \ - PMIC_TPS6594X_REGULATOR_LDO_PLDN_VAL_50KOHM -#define PMIC_TPS6594X_REGULATOR_LDO_PLDN_VAL_MAX \ - PMIC_TPS6594X_REGULATOR_LDO_PLDN_VAL_500OHM - -/*! - * \brief PMIC Power Common Interrupt Range - */ -#define PMIC_TPS6594X_POWER_COMMON_INTERRUPT_MAX \ - PMIC_TPS6594X_POWER_INTERRUPT_EN_DRV_READBACK - -/*==========================================================================*/ -/* Structures and Enums */ -/*==========================================================================*/ - -/*==========================================================================*/ -/* Function Declarations */ -/*==========================================================================*/ - -/*! - * \brief PMIC power resources get Configuration function - * This function is used to read the PMIC POWER resources register - * Configuration - * - * \param pwrRsrcRegCfg [OUT] Pointer to store power resource register - * configuration - */ -void pmic_get_tps6594x_pwrRsrceRegCfg(Pmic_powerRsrcRegCfg_t **pPwrRsrcRegCfg); - -/*! - * \brief PMIC power interrupt get Configuration function - * This function is used to read the power interrupt - * Configuration - * - * \param pwrRsrcRegCfg [OUT] Pointer to store power interrupt - * number. - */ -void pmic_get_tps6594x_pwrCommonIntCfg(Pmic_powerIntCfg_t **pPwrCommonIntCfg); - -/*! - * \brief PMIC power get Configuration function - * This function is used to read the PMIC pgood sources register - * Configuration - * - * \param pPgoodSrcRegCfg [OUT] Pointer to store power-good source register - * configuration - */ -void pmic_get_tps6594x_pwrPgoodSrcRegCfg( - Pmic_powerPgoodSrcRegCfg_t **pPgoodSrcRegCfg); -/*! - * \brief This function is used to convert the millivolt value to vset value - * for LEO TPS6594x PMIC - */ -int32_t Pmic_powerTPS6594xConvertVoltage2VSetVal(uint16_t millivolt, - uint16_t pwrRsrc, - uint8_t *pVSetVal); - -/*! - * \brief This function is used to convert the vset value to voltage in mv - * for PMIC LEO TPS6594x - */ -void Pmic_powerTPS6594xConvertVSet2Voltage(const uint8_t *pVSetVal, - uint16_t pwrRsrc, - uint16_t *millivolt); - -/*! - * \brief This function is to validate the power good signal source selection - * limit for the specific PMIC device. - */ -int32_t Pmic_validate_tps6594x_pGoodSrcType(uint16_t pgoodSrc); - -/*! - * \brief This function is to validate the power good signal source selection - * limit for the specific PMIC device. - */ -int32_t Pmic_validate_tps6594x_pGoodSelType(uint16_t pgoodSrc, - uint8_t pgoodSelType); - -/** - * \brief This function is used to validate the voltage levels for - * Regulators/VMON for TPS6594x PMIC - */ -int32_t Pmic_powerTPS6594xValidateVoltageLevel( - uint8_t pwrRsrcType, - uint16_t pwrRsrc, - uint16_t voltage_mV); - -/*! - * \brief This function is to validate the power resource limit for the - * TPS6594x PMIC device. - */ -int32_t Pmic_powerTPS6594xValidatePwrRsrcLimit( - const Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t pwrRsrcType, - uint16_t pwrRsrc); - -/*! - * \brief This function is to validate the power resource interrupt type - * for the TPS6594x PMIC device. - */ -int32_t Pmic_powerTPS6594xValidateIntrType(uint8_t pwrResourceType, - uint8_t intrType); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif/* PMIC_POWER_TPS6594X_PRIV_H_ */ diff --git a/src/cfg/tps6594x/pmic_rtc_tps6594x_priv.h b/src/cfg/tps6594x/pmic_rtc_tps6594x_priv.h deleted file mode 100644 index a45de7e..0000000 --- a/src/cfg/tps6594x/pmic_rtc_tps6594x_priv.h +++ /dev/null @@ -1,341 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ - -/** - * \file pmic_rtc_tps6594x_priv.h - * - * \brief The macro definitions, structures and function prototypes for - * configuring PMIC RTC - */ - -#ifndef PMIC_RTC_TPS6594X_PRIV_H_ -#define PMIC_RTC_TPS6594X_PRIV_H_ - -/* ========================================================================= */ -/* Include Files */ -/* ========================================================================= */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* ========================================================================= */ -/* Macros & Typedefs */ -/* ========================================================================= */ - -/*! - * \brief PMIC RTC time and date Register Address - */ -#define PMIC_RTC_SECONDS_REGADDR (0xB5U) -#define PMIC_RTC_MINUTES_REGADDR (0xB6U) -#define PMIC_RTC_HOURS_REGADDR (0xB7U) -#define PMIC_RTC_DAYS_REGADDR (0xB8U) -#define PMIC_RTC_MONTHS_REGADDR (0xB9U) -#define PMIC_RTC_YEARS_REGADDR (0xBAU) -#define PMIC_RTC_WEEKS_REGADDR (0xBBU) - -/*! - * \brief PMIC Alarm time and date Register Address - */ -#define PMIC_ALARM_SECONDS_REGADDR (0xBCU) -#define PMIC_ALARM_MINUTES_REGADDR (0xBDU) -#define PMIC_ALARM_HOURS_REGADDR (0xBEU) -#define PMIC_ALARM_DAYS_REGADDR (0xBFU) -#define PMIC_ALARM_MONTHS_REGADDR (0xC0U) -#define PMIC_ALARM_YEARS_REGADDR (0xC1U) - -/*! - * \brief PMIC RTC Control, Status and Interrupt Register Address - */ -#define PMIC_RTC_CTRL_1_REGADDR (0xC2U) -#define PMIC_RTC_CTRL_2_REGADDR (0xC3U) -#define PMIC_RTC_STATUS_REGADDR (0xC4U) -#define PMIC_RTC_INTERRUPTS_REGADDR (0xC5U) - -/*! - * \brief PMIC RTC frequency compensation register Address - */ -#define PMIC_RTC_COMP_LSB_REGADDR (0xC6U) -#define PMIC_RTC_COMP_MSB_REGADDR (0xC7U) - -/*! - * \brief PMIC RTC reset status register Address - */ -#define PMIC_RTC_RESET_STATUS_REGADDR (0xC8U) - -/*! - * \brief RTC and alarm time bit fields - */ -#define PMIC_ALARM_SECONDS_ALR_SECOND_1_SHIFT (0x04U) -#define PMIC_ALARM_SECONDS_ALR_SECOND_0_SHIFT (0x00U) -#define PMIC_ALARM_MINUTES_ALR_MINUTE_1_SHIFT (0x04U) -#define PMIC_ALARM_MINUTES_ALR_MINUTE_0_SHIFT (0x00U) -#define PMIC_ALARM_HOURS_ALR_PM_NAM_SHIFT (0x07U) -#define PMIC_ALARM_HOURS_ALR_HOUR_1_SHIFT (0x04U) -#define PMIC_ALARM_HOURS_ALR_HOUR_0_SHIFT (0x00U) -#define PMIC_ALARM_DAYS_ALR_DAY_1_SHIFT (0x04U) -#define PMIC_ALARM_DAYS_ALR_DAY_0_SHIFT (0x00U) -#define PMIC_ALARM_MONTHS_ALR_MONTH_1_SHIFT (0x04U) -#define PMIC_ALARM_MONTHS_ALR_MONTH_0_SHIFT (0x00U) -#define PMIC_ALARM_YEARS_ALR_YEAR_1_SHIFT (0x04U) -#define PMIC_ALARM_YEARS_ALR_YEAR_0_SHIFT (0x00U) - -/*! - * \brief PMIC RTC time and date bit fields - */ -#define PMIC_RTC_SECONDS_SECOND_1_SHIFT (0x04U) -#define PMIC_RTC_SECONDS_SECOND_0_SHIFT (0x00U) -#define PMIC_RTC_MINUTES_MINUTE_1_SHIFT (0x04U) -#define PMIC_RTC_MINUTES_MINUTE_0_SHIFT (0x00U) -#define PMIC_RTC_HOURS_PM_NAM_SHIFT (0x07U) -#define PMIC_RTC_HOURS_HOUR_1_SHIFT (0x04U) -#define PMIC_RTC_HOURS_HOUR_0_SHIFT (0x00U) -#define PMIC_RTC_DAYS_DAY_1_SHIFT (0x04U) -#define PMIC_RTC_DAYS_DAY_0_SHIFT (0x00U) -#define PMIC_RTC_MONTHS_MONTH_1_SHIFT (0x04U) -#define PMIC_RTC_MONTHS_MONTH_0_SHIFT (0x00U) -#define PMIC_RTC_YEARS_YEAR_1_SHIFT (0x04U) -#define PMIC_RTC_YEARS_YEAR_0_SHIFT (0x00U) -#define PMIC_RTC_WEEKS_WEEK_SHIFT (0x00U) - -/*! - * \brief PMIC RTC status bit fields - */ -#define PMIC_RTC_STATUS_ALARM_SHIFT (0x06U) -#define PMIC_RTC_STATUS_TIMER_SHIFT (0x05U) -#define PMIC_RTC_STATUS_RUN_SHIFT (0x01U) -#define PMIC_RTC_STATUS_POWER_UP_SHIFT (0x07U) - -#define PMIC_RTC_INTERRUPTS_IT_ALARM_SHIFT (0x03U) -#define PMIC_RTC_INTERRUPTS_IT_TIMER_SHIFT (0x02U) - -/*! - * \brief RTC Timer periods interrupt bit fields - */ -#define PMIC_RTC_INTERRUPTS_EVERY_SHIFT (0x00U) - -/*! - * \brief PMIC RTC CTRL bit fields - */ -#define PMIC_RTC_CTRL_1_RTC_V_OPT_SHIFT (0x07U) -#define PMIC_RTC_CTRL_1_GET_TIME_SHIFT (0x06U) -#define PMIC_RTC_CTRL_1_SET_32_COUNTER_SHIFT (0x05U) -#define PMIC_RTC_CTRL_1_MODE_12_24_SHIFT (0x03U) -#define PMIC_RTC_CTRL_1_AUTO_COMP_SHIFT (0x02U) -#define PMIC_RTC_CTRL_1_ROUND_30S_SHIFT (0x01U) -#define PMIC_RTC_CTRL_1_STOP_RTC_SHIFT (0x00U) - -#define PMIC_RTC_CTRL_2_FIRST_STARTUP_DONE_SHIFT (0x07U) -#define PMIC_RTC_CTRL_2_STARTUP_DEST_SHIFT (0x05U) -#define PMIC_RTC_CTRL_2_FAST_BIST_SHIFT (0x04U) -#define PMIC_RTC_CTRL_2_LP_STANDBY_SEL_SHIFT (0x03U) -#define PMIC_RTC_CTRL_2_XTAL_SEL_SHIFT (0x01U) -#define PMIC_RTC_CTRL_2_XTAL_EN_SHIFT (0x00U) - -#define PMIC_RTC_RESET_STATUS_RESET_STATUS_RTC_SHIFT (0x00U) - -#define PMIC_RTC_COMP_MSB_COMP_MSB_RTC_SHIFT (0x08U) -#define PMIC_RTC_COMP_LSB_COMP_LSB_RTC_SHIFT (0x00U) - -/*! - * \brief PMIC RTC and alarm time and date bit mask - */ -#define PMIC_RTC_SECONDS_SECOND_1_MASK (uint8_t)(0x07U << \ - PMIC_RTC_SECONDS_SECOND_1_SHIFT) - -#define PMIC_RTC_SECONDS_SECOND_0_MASK (uint8_t)(0x0FU << \ - PMIC_RTC_SECONDS_SECOND_0_SHIFT) - -#define PMIC_RTC_MINUTES_MINUTE_1_MASK (uint8_t)(0x07U << \ - PMIC_RTC_MINUTES_MINUTE_1_SHIFT) -#define PMIC_RTC_MINUTES_MINUTE_0_MASK (uint8_t)(0x0FU << \ - PMIC_RTC_MINUTES_MINUTE_0_SHIFT) - -#define PMIC_RTC_HOURS_PM_NAM_MASK (uint8_t)(0x01U << \ - PMIC_RTC_HOURS_PM_NAM_SHIFT) - -#define PMIC_RTC_HOURS_HOUR_1_MASK (uint8_t)(0x03U << \ - PMIC_RTC_HOURS_HOUR_1_SHIFT) - -#define PMIC_RTC_HOURS_HOUR_0_MASK (uint8_t)(0x0FU << \ - PMIC_RTC_HOURS_HOUR_0_SHIFT) - -#define PMIC_RTC_DAYS_DAY_1_MASK (uint8_t)(0x03U << \ - PMIC_RTC_DAYS_DAY_1_SHIFT) - -#define PMIC_RTC_DAYS_DAY_0_MASK (uint8_t)(0x0FU << \ - PMIC_RTC_DAYS_DAY_0_SHIFT) - -#define PMIC_RTC_MONTHS_MONTH_1_MASK (uint8_t)(0x01U << \ - PMIC_RTC_MONTHS_MONTH_1_SHIFT) - -#define PMIC_RTC_MONTHS_MONTH_0_MASK (uint8_t)(0x0FU << \ - PMIC_RTC_MONTHS_MONTH_0_SHIFT) - -#define PMIC_RTC_YEARS_YEAR_1_MASK (uint8_t)(0x0FU << \ - PMIC_RTC_YEARS_YEAR_1_SHIFT) - -#define PMIC_RTC_YEARS_YEAR_0_MASK (uint8_t)(0x0FU << \ - PMIC_RTC_YEARS_YEAR_0_SHIFT) - -#define PMIC_ALARM_SECONDS_ALR_SECOND_1_MASK (uint8_t)(0x07U << \ - PMIC_ALARM_SECONDS_ALR_SECOND_1_SHIFT) - -#define PMIC_ALARM_SECONDS_ALR_SECOND_0_MASK (uint8_t)(0x0FU << \ - PMIC_ALARM_SECONDS_ALR_SECOND_0_SHIFT) - -#define PMIC_ALARM_MINUTES_ALR_MINUTE_1_MASK (uint8_t)(0x07U << \ - PMIC_ALARM_MINUTES_ALR_MINUTE_1_SHIFT) -#define PMIC_ALARM_MINUTES_ALR_MINUTE_0_MASK (uint8_t)(0x0FU << \ - PMIC_ALARM_MINUTES_ALR_MINUTE_0_SHIFT) - -#define PMIC_ALARM_HOURS_ALR_PM_NAM_MASK (uint8_t)(0x01U << \ - PMIC_ALARM_HOURS_ALR_PM_NAM_SHIFT) - -#define PMIC_ALARM_HOURS_ALR_HOUR_1_MASK (uint8_t)(0x03U << \ - PMIC_ALARM_HOURS_ALR_HOUR_1_SHIFT) - -#define PMIC_ALARM_HOURS_ALR_HOUR_0_MASK (uint8_t)(0x0FU << \ - PMIC_ALARM_HOURS_ALR_HOUR_0_SHIFT) - -#define PMIC_ALARM_DAYS_ALR_DAY_1_MASK (uint8_t)(0x03U << \ - PMIC_ALARM_DAYS_ALR_DAY_1_SHIFT) - -#define PMIC_ALARM_DAYS_ALR_DAY_0_MASK (uint8_t)(0x0FU << \ - PMIC_ALARM_DAYS_ALR_DAY_0_SHIFT) - -#define PMIC_ALARM_MONTHS_ALR_MONTH_1_MASK (uint8_t)(0x01U << \ - PMIC_ALARM_MONTHS_ALR_MONTH_1_SHIFT) - -#define PMIC_ALARM_MONTHS_ALR_MONTH_0_MASK (uint8_t)(0x0FU << \ - PMIC_ALARM_MONTHS_ALR_MONTH_0_SHIFT) - -#define PMIC_ALARM_YEARS_ALR_YEAR_1_MASK (uint8_t)(0x0FU << \ - PMIC_ALARM_YEARS_ALR_YEAR_1_SHIFT) - -#define PMIC_ALARM_YEARS_ALR_YEAR_0_MASK (uint8_t)(0x0FU << \ - PMIC_ALARM_YEARS_ALR_YEAR_0_SHIFT) - -#define PMIC_RTC_WEEKS_WEEK_MASK (uint8_t)(0x07U << \ - PMIC_RTC_WEEKS_WEEK_SHIFT) - -#define PMIC_RTC_STATUS_ALARM_MASK (uint8_t)(0x01U << \ - PMIC_RTC_STATUS_ALARM_SHIFT) - -#define PMIC_RTC_STATUS_TIMER_MASK (uint8_t)(0x01U << \ - PMIC_RTC_STATUS_TIMER_SHIFT) - -#define PMIC_RTC_STATUS_RUN_MASK (uint8_t)(0x01U << \ - PMIC_RTC_STATUS_RUN_SHIFT) - -#define PMIC_RTC_STATUS_POWER_UP_MASK (uint8_t)(0x01U << \ - PMIC_RTC_STATUS_POWER_UP_SHIFT) - -/*! - * \brief PMIC RTC CTRL bit mask - */ -#define PMIC_RTC_CTRL_1_RTC_V_OPT_MASK (uint8_t)(0x01U << \ - PMIC_RTC_CTRL_1_RTC_V_OPT_SHIFT) - -#define PMIC_RTC_CTRL_1_GET_TIME_MASK (uint8_t)(0x01U << \ - PMIC_RTC_CTRL_1_GET_TIME_SHIFT) - -#define PMIC_RTC_CTRL_1_SET_32_COUNTER_MASK (uint8_t)(0x01U << \ - PMIC_RTC_CTRL_1_SET_32_COUNTER_SHIFT) - -#define PMIC_RTC_CTRL_1_MODE_12_24_MASK (uint8_t)(0x01U << \ - PMIC_RTC_CTRL_1_MODE_12_24_SHIFT) - -#define PMIC_RTC_CTRL_1_ROUND_30S_MASK (uint8_t)(0x01U << \ - PMIC_RTC_CTRL_1_ROUND_30S_SHIFT) - -#define PMIC_RTC_CTRL_1_STOP_RTC_MASK (uint8_t)(0x01U << \ - PMIC_RTC_CTRL_1_STOP_RTC_SHIFT) - -#define PMIC_RTC_CTRL_1_AUTO_COMP_MASK (uint8_t)(0x01U << \ - PMIC_RTC_CTRL_1_AUTO_COMP_SHIFT) - -#define PMIC_RTC_CTRL_2_FIRST_STARTUP_DONE_MASK (uint8_t)(0x01U << \ - PMIC_RTC_CTRL_2_FIRST_STARTUP_DONE_SHIFT) - -#define PMIC_RTC_CTRL_2_STARTUP_DEST_MASK (uint8_t)(0x03U << \ - PMIC_RTC_CTRL_2_STARTUP_DEST_SHIFT) - -#define PMIC_RTC_CTRL_2_FAST_BIST_MASK (uint8_t)(0x01U << \ - PMIC_RTC_CTRL_2_FAST_BIST_SHIFT) - -#define PMIC_RTC_CTRL_2_LP_STANDBY_SEL_MASK (uint8_t)(0x01U << \ - PMIC_RTC_CTRL_2_LP_STANDBY_SEL_SHIFT) - -#define PMIC_RTC_CTRL_2_XTAL_SEL_MASK (uint8_t)(0x03U << \ - PMIC_RTC_CTRL_2_XTAL_SEL_SHIFT) - -#define PMIC_RTC_CTRL_2_XTAL_EN_MASK (uint8_t)(0x01U << \ - PMIC_RTC_CTRL_2_XTAL_EN_SHIFT) - -/*! - * \brief PMIC RTC Timer period bit mask - */ -#define PMIC_RTC_INTERRUPTS_EVERY_MASK (uint8_t)(0x03U << \ - PMIC_RTC_INTERRUPTS_EVERY_SHIFT) - -/*! - * \brief PMIC RTC Interrupt bit mask - */ -#define PMIC_RTC_INTERRUPTS_IT_ALARM_MASK (uint8_t)(0x01U << \ - PMIC_RTC_INTERRUPTS_IT_ALARM_SHIFT) - -#define PMIC_RTC_INTERRUPTS_IT_TIMER_MASK (uint8_t)(0x01U << \ - PMIC_RTC_INTERRUPTS_IT_TIMER_SHIFT) - -#define PMIC_RTC_RESET_STATUS_RESET_STATUS_RTC_MASK (uint8_t)(0x01U << \ - PMIC_RTC_RESET_STATUS_RESET_STATUS_RTC_SHIFT) - -#define PMIC_RTC_COMP_MSB_COMP_MSB_RTC_MASK (uint16_t)((uint16_t)0xFFU << \ - PMIC_RTC_COMP_MSB_COMP_MSB_RTC_SHIFT) -#define PMIC_RTC_COMP_LSB_COMP_LSB_RTC_MASK (uint8_t)(0xFFU << \ - PMIC_RTC_COMP_LSB_COMP_LSB_RTC_SHIFT) -/*==========================================================================*/ -/* Structures and Enums */ -/*==========================================================================*/ - -/*==========================================================================*/ -/* Function Declarations */ -/*==========================================================================*/ - -#ifdef __cplusplus -} - -#endif /* __cplusplus */ - -#endif /* PMIC_RTC_TPS6594X_PRIV_H_ */ diff --git a/src/makefile b/src/makefile deleted file mode 100644 index 045e4d9..0000000 --- a/src/makefile +++ /dev/null @@ -1,79 +0,0 @@ -# Filename: Makefile -# -# This file is the makefile for building this module. -# -# Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com/ -# -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# -# Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the -# distribution. -# -# Neither the name of Texas Instruments Incorporated nor the names of -# its contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -#File - pmic_lld\src\makefile - -MODULE_NAME = pmic - -include $(PDK_INSTALL_PATH)/ti/build/Rules.make - - -SRCDIR = src src/cfg/tps6594x src/cfg/lp8764x -INCDIR = . include include/cfg/tps6594x src src/cfg/tps6594x -INCDIR += include/cfg/lp8764x src/cfg/lp8764x - -# List all the external components/interfaces, whose interface header files -# need to be included for this component -INCLUDE_EXTERNAL_INTERFACES = pdk - -# Common source files and CFLAGS across all platforms and cores -SRCS_COMMON += pmic_core.c pmic_io.c pmic_gpio.c pmic_gpio_tps6594x.c -SRCS_COMMON += pmic_rtc.c pmic_irq_status.c pmic_gpio_lp8764x.c -SRCS_COMMON += pmic_power.c pmic_power_lp8764x.c pmic_power_tps6594x.c -SRCS_COMMON += pmic_irq_tps6594x.c pmic_irq_lp8764x.c pmic_wdg.c -SRCS_COMMON += pmic_fsm.c pmic_esm.c - -PACKAGE_SRCS_COMMON = pmic.h pmic_component.mk makefile .gitignore include -PACKAGE_SRCS_COMMON += src - -CFLAGS_LOCAL_COMMON = $(PDK_CFLAGS) - -# Core/SoC/platform specific source files and CFLAGS -# Example: -# SRCS_ = -# CFLAGS_LOCAL_ = - -# Include common make files -ifeq ($(MAKERULEDIR), ) -#Makerule path not defined, define this and assume relative path from ROOTDIR - MAKERULEDIR := $(ROOTDIR)/ti/build/makerules - export MAKERULEDIR -endif -include $(MAKERULEDIR)/common.mk - -# OBJs and libraries are built by using rule defined in rules_.mk -# and need not be explicitly specified here - -# Nothing beyond this point diff --git a/src/pmic_core.c b/src/pmic_core.c deleted file mode 100644 index 7087abe..0000000 --- a/src/pmic_core.c +++ /dev/null @@ -1,3909 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ - -/** - * \file pmic_core.c - * - * \brief This file contains PMIC generic driver APIs - */ - -#include -#include -#include - -#include -#include -#include - -#include - -static const Pmic_DevSubSysInfo_t pmicSubSysInfo[] = -{ - /* PMIC_DEV_LEO_TPS6594x */ - { - .gpioEnable = (bool)true, - .rtcEnable = (bool)true, - .wdgEnable = (bool)true, - .buckEnable = (bool)true, - .ldoEnable = (bool)true, - .esmEnable = (bool)true - }, - /* PMIC_DEV_HERA_LP8764x */ - { - .gpioEnable = (bool)true, - .rtcEnable = (bool)false, - .wdgEnable = (bool)true, - .buckEnable = (bool)true, - .ldoEnable = (bool)false, - .esmEnable = (bool)true - } -}; - -/*! - * \brief Checks the validParam bit position is set or not in validParamVal - * This function checks the given bit position is being set or not in - * the validParamVal argument - * - * \param validParamVal [IN] Valid param value - * \param bitPos [IN] bit position value - * - * \retval Return true if the given bit pos is set, else return false - */ -bool pmic_validParamCheck(uint32_t validParamVal, uint8_t bitPos) -{ - bool retVal = (bool)false; - - if(((validParamVal >> bitPos) & 0x01U) != 0U) - { - retVal = (bool)true; - } - - return retVal; -} - -/*! - * \brief Function call wrapper to lock PMIC LLD critical section - * This function locks to critical area by calling registred locking - * mechanism using pmic core handle. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - */ -void Pmic_criticalSectionStart(const Pmic_CoreHandle_t *pPmicCoreHandle) -{ - if(NULL != pPmicCoreHandle->pFnPmicCritSecStart) - { - pPmicCoreHandle->pFnPmicCritSecStart(); - } -} - -/*! - * \brief Function call wrapper to unlock PMIC LLD critical section - * This function unlocks to critical area by calling registred locking - * mechanism using pmic core handle. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - */ -void Pmic_criticalSectionStop(const Pmic_CoreHandle_t *pPmicCoreHandle) -{ - if(NULL != pPmicCoreHandle->pFnPmicCritSecStop) - { - pPmicCoreHandle->pFnPmicCritSecStop(); - } -} - -/*! - * \brief API to Set Recovery Counter Configuration. - * - * Requirement: REQ_TAG(PDK-5809) - * Design: did_pmic_err_recov_cnt_cfg_readback - * Architecture: aid_pmic_core_misc_cfg - * - * This function configures PMIC Recovery Counter register, controlling - * recovery count Threshold and Clear, when corresponding validParam - * bit field is set in the Pmic_RecovCntCfg_t structure. - * For more information \ref Pmic_RecovCntCfg_t - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param recovCntCfg [IN] Set configuration value for - * Recovery counter - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_setRecoveryCntCfg(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_RecovCntCfg_t recovCntCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regVal; - uint8_t clrCntVal = 1U; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(recovCntCfg.validParams, - PMIC_CFG_RECOV_CNT_THR_VAL_VALID)) && - ((recovCntCfg.thrVal > PMIC_RECOV_CNT_THR_MAX))) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(recovCntCfg.validParams, - PMIC_CFG_RECOV_CNT_CLR_CNT_VALID)) && - (recovCntCfg.clrCnt != ((bool)true))) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RECOV_CNT_REG_2_REGADDR, - ®Val); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(((bool)true) == pmic_validParamCheck(recovCntCfg.validParams, - PMIC_CFG_RECOV_CNT_CLR_CNT_VALID)) - { - Pmic_setBitField(®Val, - PMIC_RECOV_CNT_REG_2_RECOV_CNT_CLR_SHIFT, - PMIC_RECOV_CNT_REG_2_RECOV_CNT_CLR_MASK, - clrCntVal); - } - - if(((bool)true) == pmic_validParamCheck(recovCntCfg.validParams, - PMIC_CFG_RECOV_CNT_THR_VAL_VALID)) - { - Pmic_setBitField(®Val, - PMIC_RECOV_CNT_REG_2_RECOV_CNT_CLR_SHIFT, - PMIC_RECOV_CNT_REG_2_RECOV_CNT_CLR_MASK, - recovCntCfg.thrVal); - } - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_RECOV_CNT_REG_2_REGADDR, - regVal); - } - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return pmicStatus; -} - -/*! - * \brief API to Get Recovery Counter Configuration. - * - * Requirement: REQ_TAG(PDK-5809) - * Design: did_pmic_err_recov_cnt_cfg_readback - * Architecture: aid_pmic_core_misc_cfg - * - * This function gets PMIC Recovery Counter configuration values. Like, - * recovery count Threshold and Clear, when corresponding validParam - * bit field is set in the Pmic_RecovCntCfg_t structure. - * For more information \ref Pmic_RecovCntCfg_t - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pRecovCntCfg [IN/OUT] Pointer to store recovery counter - * configuration value - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_getRecoveryCntCfg(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_RecovCntCfg_t *pRecovCntCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regVal = 0U; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && (NULL == pRecovCntCfg)) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RECOV_CNT_REG_2_REGADDR, - ®Val); - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(((bool)true) == pmic_validParamCheck(pRecovCntCfg->validParams, - PMIC_CFG_RECOV_CNT_THR_VAL_VALID)) - { - pRecovCntCfg->thrVal = - Pmic_getBitField(regVal, - PMIC_RECOV_CNT_REG_2_RECOV_CNT_THR_SHIFT, - PMIC_RECOV_CNT_REG_2_RECOV_CNT_THR_MASK); - } - if(((bool)true) == pmic_validParamCheck(pRecovCntCfg->validParams, - PMIC_CFG_RECOV_CNT_CLR_CNT_VALID)) - { - pRecovCntCfg->clrCnt = ((bool)true); - - if((Pmic_getBitField( - regVal, - PMIC_RECOV_CNT_REG_2_RECOV_CNT_CLR_SHIFT, - PMIC_RECOV_CNT_REG_2_RECOV_CNT_CLR_MASK)) == 0U) - { - pRecovCntCfg->clrCnt = ((bool)false); - } - } - } - - return pmicStatus; -} - -/*! - * \brief API to Read Recovery Count Value. - * - * Requirement: REQ_TAG(PDK-5809) - * Design: did_pmic_err_recov_cnt_cfg_readback - * Architecture: aid_pmic_core_misc_cfg - * - * This function reads out the recovery count value. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pRecovCntVal [OUT] Pointer to store recovery count - * value - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_getRecoveryCnt(Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t *pRecovCntVal) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regVal = 0U; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && (NULL == pRecovCntVal)) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RECOV_CNT_REG_1_REGADDR, - ®Val); - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - *pRecovCntVal = Pmic_getBitField(regVal, - PMIC_RECOV_CNT_REG_1_RECOV_CNT_SHIFT, - PMIC_RECOV_CNT_REG_1_RECOV_CNT_MASK); - } - - return pmicStatus; -} - -/*! - * \brief API to Initialize pPmicCoreHandle for pmicDeviceType, Comm Mode, - * Main Slave Address, and NVM Slave Address - * - * This function gets device configuration from pPmicConfigData and - * initializes pPmicCoreHandle after validation of given params depends - * on validParams bit fields - */ -static int32_t Pmic_initCoreHandleBasicDevCfgParams( - const Pmic_CoreCfg_t *pPmicConfigData, - Pmic_CoreHandle_t *pPmicCoreHandle) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - /* Check and update PMIC Handle device type */ - if(((bool)true) == pmic_validParamCheck(pPmicConfigData->validParams, - PMIC_CFG_DEVICE_TYPE_VALID)) - { - if((PMIC_DEV_HERA_LP8764X != pPmicConfigData->pmicDeviceType) && - (PMIC_DEV_LEO_TPS6594X != pPmicConfigData->pmicDeviceType)) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pPmicCoreHandle->pmicDeviceType = pPmicConfigData->pmicDeviceType; - } - } - - /* Check and update PMIC Handle Comm Mode */ - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pPmicConfigData->validParams, - PMIC_CFG_COMM_MODE_VALID))) - { - if((PMIC_INTF_SINGLE_I2C != pPmicConfigData->commMode) && - (PMIC_INTF_DUAL_I2C != pPmicConfigData->commMode) && - (PMIC_INTF_SPI != pPmicConfigData->commMode)) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - else - { - pPmicCoreHandle->commMode = pPmicConfigData->commMode; - } - } - - /* Check and update PMIC Handle Main Slave Address */ - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pPmicConfigData->validParams, - PMIC_CFG_SLAVEADDR_VALID))) - { - if((PMIC_INTF_SINGLE_I2C == pPmicCoreHandle->commMode) || - (PMIC_INTF_DUAL_I2C == pPmicCoreHandle->commMode)) - { - pPmicCoreHandle->slaveAddr = pPmicConfigData->slaveAddr; - } - } - - /* Check and update PMIC Handle NVM Slave Address */ - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pPmicConfigData->validParams, - PMIC_CFG_NVMSLAVEADDR_VALID))) - { - if((PMIC_INTF_SINGLE_I2C == pPmicCoreHandle->commMode) || - (PMIC_INTF_DUAL_I2C == pPmicCoreHandle->commMode)) - { - pPmicCoreHandle->nvmSlaveAddr = pPmicConfigData->nvmSlaveAddr; - } - } - - return pmicStatus; -} - -/*! - * \brief API to Initialize pPmicCoreHandle for I2C1 Speed, I2C2 Speed and - * Main Comm Handle - * - * This function gets device configuration from pPmicConfigData and - * initializes pPmicCoreHandle after validation of given params depends - * on validParams bit fields - */ -static int32_t Pmic_initCoreHandleI2CSpeedCommHandle( - const Pmic_CoreCfg_t *pPmicConfigData, - Pmic_CoreHandle_t *pPmicCoreHandle) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - /* Check and update PMIC Handle I2C1 Speed */ - if(((bool)true) == pmic_validParamCheck(pPmicConfigData->validParams, - PMIC_CFG_I2C1_SPEED_VALID)) - { - - if(pPmicConfigData->i2c1Speed > PMIC_I2C_FORCED_HS_MODE) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - else - { - if((PMIC_INTF_SINGLE_I2C == pPmicCoreHandle->commMode) || - (PMIC_INTF_DUAL_I2C == pPmicCoreHandle->commMode)) - { - pPmicCoreHandle->i2c1Speed = pPmicConfigData->i2c1Speed; - } - } - } - - /* Check and update PMIC Handle I2C2 Speed */ - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pPmicConfigData->validParams, - PMIC_CFG_I2C2_SPEED_VALID))) - { - if(pPmicConfigData->i2c2Speed > PMIC_I2C_FORCED_HS_MODE) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - else - { - if(PMIC_INTF_DUAL_I2C == pPmicCoreHandle->commMode) - { - pPmicCoreHandle->i2c2Speed = pPmicConfigData->i2c2Speed; - } - } - } - - /* Check and update PMIC Handle Main Comm Handle */ - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pPmicConfigData->validParams, - PMIC_CFG_COMM_HANDLE_VALID))) - { - if(NULL == pPmicConfigData->pCommHandle) - { - pmicStatus = PMIC_ST_ERR_NULL_FPTR; - } - else - { - pPmicCoreHandle->pCommHandle = pPmicConfigData->pCommHandle; - } - } - - return pmicStatus; -} - -/*! - * \brief API to Initialize pPmicCoreHandle for QA Slave Address and - * QA Comm Handle - * - * This function gets device configuration from pPmicConfigData and - * initializes pPmicCoreHandle after validation of given params depends - * on validParams bit fields - */ -static int32_t Pmic_initCoreHandleQADevCfgParams( - const Pmic_CoreCfg_t *pPmicConfigData, - Pmic_CoreHandle_t *pPmicCoreHandle) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - /* Check and update PMIC Handle QA Slave Address */ - if(((bool)true) == pmic_validParamCheck(pPmicConfigData->validParams, - PMIC_CFG_QASLAVEADDR_VALID)) - { - if((PMIC_INTF_SINGLE_I2C == pPmicCoreHandle->commMode) || - (PMIC_INTF_DUAL_I2C == pPmicCoreHandle->commMode)) - { - pPmicCoreHandle->qaSlaveAddr = pPmicConfigData->qaSlaveAddr; - } - } - - /* Check and update PMIC Handle QA Comm Handle */ - if(((bool)true) == pmic_validParamCheck(pPmicConfigData->validParams, - PMIC_CFG_QACOMM_HANDLE_VALID)) - { - if(NULL == pPmicConfigData->pQACommHandle) - { - pmicStatus = PMIC_ST_ERR_NULL_FPTR; - } - else - { - if(PMIC_INTF_DUAL_I2C == pPmicCoreHandle->commMode) - { - pPmicCoreHandle->pQACommHandle = pPmicConfigData->pQACommHandle; - } - } - } - - return pmicStatus; -} - -/*! - * \brief API to Initialize pPmicCoreHandle for Comm IO RD Fn, Comm IO Wr Fn, - * Critical Section Start Fn and Critical Section Stop Fn - * - * This function gets device configuration from pPmicConfigData and - * initializes pPmicCoreHandle after validation of given params depends - * on validParams bit fields - */ -static int32_t Pmic_initCoreHandleCommIOCriticalSectionFns( - const Pmic_CoreCfg_t *pPmicConfigData, - Pmic_CoreHandle_t *pPmicCoreHandle) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - /* Check and update PMIC Handle Comm IO RD Fn */ - if(((bool)true) == pmic_validParamCheck(pPmicConfigData->validParams, - PMIC_CFG_COMM_IO_RD_VALID)) - { - if(NULL == pPmicConfigData->pFnPmicCommIoRead) - { - pmicStatus = PMIC_ST_ERR_NULL_FPTR; - } - else - { - pPmicCoreHandle->pFnPmicCommIoRead = - pPmicConfigData->pFnPmicCommIoRead; - } - } - - /* Check and update PMIC Handle Comm IO WR Fn */ - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pPmicConfigData->validParams, - PMIC_CFG_COMM_IO_WR_VALID))) - { - if(NULL == pPmicConfigData->pFnPmicCommIoWrite) - { - pmicStatus = PMIC_ST_ERR_NULL_FPTR; - } - else - { - pPmicCoreHandle->pFnPmicCommIoWrite = - pPmicConfigData->pFnPmicCommIoWrite; - } - } - - /* Check and update PMIC Handle Critical Section Start Fn */ - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pPmicConfigData->validParams, - PMIC_CFG_CRITSEC_START_VALID))) - { - if(NULL == pPmicConfigData->pFnPmicCritSecStart) - { - pmicStatus = PMIC_ST_ERR_NULL_FPTR; - } - else - { - pPmicCoreHandle->pFnPmicCritSecStart = - pPmicConfigData->pFnPmicCritSecStart; - } - } - - /* Check and update PMIC Handle Critical Section Stop Fn */ - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pPmicConfigData->validParams, - PMIC_CFG_CRITSEC_STOP_VALID))) - { - if(NULL == pPmicConfigData->pFnPmicCritSecStop) - { - pmicStatus = PMIC_ST_ERR_NULL_FPTR; - } - else - { - pPmicCoreHandle->pFnPmicCritSecStop = - pPmicConfigData->pFnPmicCritSecStop; - } - } - - return pmicStatus; -} - -/*! - * \brief API to check if the device requested is the one on the bus - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - * - */ -static int32_t Pmic_validateDevOnBus(Pmic_CoreHandle_t *pPmicCoreHandle, - int32_t *pStatus) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regVal = 0U; - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_DEV_REV_REGADDR, - ®Val); - - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pPmicCoreHandle->pmicDevRev = Pmic_getBitField( - regVal, - PMIC_DEV_REV_TI_DEVICE_ID_PG_2_0_SILICON_REV_SHIFT, - PMIC_DEV_REV_TI_DEVICE_ID_PG_2_0_SILICON_REV_MASK); - - /* Validate if the device requested is the one on the bus */ - switch (pPmicCoreHandle->pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - if(PMIC_LP8764X_DEV_REV_ID_PG_2_0 != - pPmicCoreHandle->pmicDevRev) - { - *pStatus = PMIC_ST_WARN_INV_DEVICE_ID; - } - break; - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - if(PMIC_TPS6594X_DEV_REV_ID_PG_2_0 != - pPmicCoreHandle->pmicDevRev) - { - *pStatus = PMIC_ST_WARN_INV_DEVICE_ID; - } - break; - } - } - - return pmicStatus; -} - -/*! - * \brief API to update CRC Enable status info to PMIC handle and Check if the - * device requested is the one on the bus - * - */ -static int32_t Pmic_updateCrcEnableStatValidateDevOnBus( - Pmic_CoreHandle_t *pPmicCoreHandle, - int32_t *pStatus) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t i2c1SpiCrcStat = 0xFF, i2c2CrcStat = 0xFF; - - pPmicCoreHandle->crcEnable = (bool)false; - - pmicStatus = Pmic_getCrcStatus(pPmicCoreHandle, - &i2c1SpiCrcStat, - &i2c2CrcStat); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - if((PMIC_INTF_SINGLE_I2C == pPmicCoreHandle->commMode) || - (PMIC_INTF_SPI == pPmicCoreHandle->commMode)) - { - if(i2c1SpiCrcStat == 1U) - { - pPmicCoreHandle->crcEnable = (bool)true; - } - } - else - { - if(i2c2CrcStat == 1U) - { - pPmicCoreHandle->crcEnable = (bool)true; - } - - if(i2c1SpiCrcStat != i2c2CrcStat) - { - pmicStatus = PMIC_ST_ERR_CRC_STATUS_FAIL; - } - } - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_validateDevOnBus(pPmicCoreHandle, pStatus); - } - - return pmicStatus; -} - -/*! - * \brief API to update PMIC subsystem info to PMIC handle and Check the Main - * and QA communication interface if PMIC handle is ready for rw - */ -static int32_t Pmic_updateSubSysInfoValidateMainQaCommIFRdWr( - const Pmic_CoreCfg_t *pPmicConfigData, - Pmic_CoreHandle_t *pPmicCoreHandle) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - int32_t status = PMIC_ST_SUCCESS; - uint8_t regVal = 0U; - - /* Update PMIC subsystem info to PMIC handle */ - pPmicCoreHandle->pPmic_SubSysInfo = - (&pmicSubSysInfo[pPmicCoreHandle->pmicDeviceType]); - - /* Check the Main communication interface if PMIC handle is ready for rw */ - if(0x0U == pPmicCoreHandle->drvInitStatus) - { - /* Update CRC Enable status info to PMIC handle and Check if the - * device requested is the one on the bus */ - pmicStatus = Pmic_updateCrcEnableStatValidateDevOnBus( - pPmicCoreHandle, - &status); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pPmicCoreHandle->drvInitStatus = DRV_INIT_SUCCESS | - pPmicConfigData->instType; - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_MANUFACTURING_VER_REGADDR, - ®Val); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pPmicCoreHandle->pmicDevSiliconRev = Pmic_getBitField( - regVal, - PMIC_MANUFACTURING_VER_SILICON_REV_SHIFT, - PMIC_MANUFACTURING_VER_SILICON_REV_MASK); - - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (PMIC_SILICON_REV_ID_PG_1_0 == - pPmicCoreHandle->pmicDevSiliconRev)) - { - Pmic_tps6594x_reInitInterruptConfig(); - } - - pmicStatus = status; - } - } - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (NULL != pPmicCoreHandle->pQACommHandle) && - (0x0U != pPmicCoreHandle->drvInitStatus)) - { - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_WDG_LONGWIN_CFG_REGADDR, - ®Val); - - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pPmicCoreHandle->drvInitStatus |= pPmicConfigData->instType; - } - } - - return pmicStatus; -} - -/*! - * \brief API to Initialize pmic core handle for PMIC LLD. - * - * Requirement: REQ_TAG(PDK-5814), REQ_TAG(PDK-5810), REQ_TAG(PDK-5813), - * REQ_TAG(PDK-5843), REQ_TAG(PDK-5811), REQ_TAG(PDK-5853), - * REQ_TAG(PDK-9129), REQ_TAG(PDK-9329), REQ_TAG(PDK-9159), - * REQ_TAG(PDK-5816), REQ_TAG(PDK-5817), REQ_TAG(PDK-5818), - * REQ_TAG(PDK-5819), REQ_TAG(PDK-5820), REQ_TAG(PDK-5821), - * REQ_TAG(PDK-5822), REQ_TAG(PDK-5823), REQ_TAG(PDK-5824), - * REQ_TAG(PDK-5825), REQ_TAG(PDK-5826), REQ_TAG(PDK-5827), - * REQ_TAG(PDK-5856), REQ_TAG(PDK-5857), REQ_TAG(PDK-5858), - * REQ_TAG(PDK-5859), REQ_TAG(PDK-5860) - * Design: did_pmic_comm_intf_cfg, did_pmic_comm_single_i2c_cfg, - * did_pmic_comm_dual_i2c_cfg, did_pmic_comm_spi_cfg, - * did_pmic_tps6594x_j721e_support, did_pmic_lp8764x_j7200_support, - * did_pmic_validation_feature_support, did_pmic_performance_support, - * did_pmic_generic_feature_support, did_pmic_safety_feature_support, - * did_pmic_pre_emption_support, did_pmic_stateless_reentrant_support, - * did_pmic_dynamic_alloc_mem_not_supported, did_pmic_build_infra_cfg, - * did_pmic_debug_release_profile_support, did_pmic_standalone_support, - * did_pmic_multiple_pmic_support, did_pmic_baremetal_support - * Architecture: aid_pmic_tps6594x_lp8764x_support, aid_pmic_standalone_support, - * aid_pmic_multiple_pmic_support, aid_pmic_pre_emption_support, - * aid_pmic_stateless_reentrant_support, aid_pmic_generic_support, - * aid_pmic_baremetal_support, aid_pmic_comm_intf_i2c_spi_cfg, - * aid_pmic_dynamic_alloc_mem_not_supported, - * aid_pmic_build_infra_cfg, - * aid_pmic_debug_release_profile_support, - * aid_pmic_performance_support, aid_pmic_test_support - * - * This function gets device configuration from pPmicConfigData and - * initializes device specific information in pPmicCoreHandle after - * validation of given params depends on validParams bit fields - * and does some basic validation on PMIC interface I2C/SPI, - * confirming that PMIC is accessible for PMIC configuration and - * monitor features. - * Note: Application has to ensure to avoid access to write protection - * registers using PMIC Driver APIs when register lock status is - * locked. API returns an erroe when application access to write - * protection registers using PMIC Driver APIs when register lock - * status is locked - * - * \param pPmicConfigData [IN] PMIC Configuration data - * \param pPmicCoreHandle [OUT] PMIC Interface Handle. - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_init(const Pmic_CoreCfg_t *pPmicConfigData, - Pmic_CoreHandle_t *pPmicCoreHandle) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if((NULL == pPmicCoreHandle) || (NULL == pPmicConfigData)) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - /* Check and update PMIC Handle for device type, Comm Mode, - * Main Slave Address and NVM Slave Address */ - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_initCoreHandleBasicDevCfgParams(pPmicConfigData, - pPmicCoreHandle); - } - - /* Check and update PMIC Handle for I2C1 Speed, I2C2 Speed and - * Main Comm Handle */ - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_initCoreHandleI2CSpeedCommHandle(pPmicConfigData, - pPmicCoreHandle); - } - - /* Check and update PMIC Handle for QA Slave Address and QA Comm Handle */ - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_initCoreHandleQADevCfgParams(pPmicConfigData, - pPmicCoreHandle); - } - - /* Check and update PMIC Handle for Comm IO RD Fn, Comm IO Wr Fn, - * Critical Section Start Fn and Critical Section Stop Fn */ - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_initCoreHandleCommIOCriticalSectionFns( - pPmicConfigData, - pPmicCoreHandle); - } - - /* Check for required members for I2C/SPI Main handle comm */ - if((PMIC_ST_SUCCESS == pmicStatus) && - ((NULL == pPmicCoreHandle->pCommHandle) || - (NULL == pPmicCoreHandle->pFnPmicCritSecStart) || - (NULL == pPmicCoreHandle->pFnPmicCritSecStop) || - (NULL == pPmicCoreHandle->pFnPmicCommIoRead) || - (NULL == pPmicCoreHandle->pFnPmicCommIoWrite))) - { - pmicStatus = PMIC_ST_ERR_INSUFFICIENT_CFG; - } - - /* Update PMIC subsystem info to PMIC handle and Check the Main and QA - * communication interface if PMIC handle is ready for rw */ - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_updateSubSysInfoValidateMainQaCommIFRdWr( - pPmicConfigData, - pPmicCoreHandle); - } - - return pmicStatus; -} - -/*! - * \brief API to DeInitilizes an existing PMIC Instance. - * - * Requirement: REQ_TAG(PDK-5814) - * Design: did_pmic_comm_intf_cfg - * Architecture: aid_pmic_tps6594x_lp8764x_support - * - * This function takes an existing Instance pPmicCoreHandle and - * closes the LLD being used for this Instance. It should be called - * only once per valid pPmicCoreHandle. Should not be called - * if Pmic_init() is not called. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_deinit(Pmic_CoreHandle_t *pPmicCoreHandle) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pPmicCoreHandle->pCommHandle = NULL; - pPmicCoreHandle->pQACommHandle = NULL; - pPmicCoreHandle->pFnPmicCritSecStart = NULL; - pPmicCoreHandle->pFnPmicCritSecStop = NULL; - pPmicCoreHandle->pFnPmicCommIoRead = NULL; - pPmicCoreHandle->pFnPmicCommIoWrite = NULL; - pPmicCoreHandle->pPmic_SubSysInfo = NULL; - pPmicCoreHandle->drvInitStatus = 0x00U; - } - - return pmicStatus; -} - -/*! - * \brief API to get Scratch pad Register Address - * Note: In this API, the default scratchPadRegId is assumed as - * PMIC_SCRATCH_PAD_REG_1. While adding support for New PMIC - * device, developer need to update the API functionality for - * New PMIC device accordingly. - */ -static void Pmic_getScratchPadRegAddr(uint8_t scratchPadRegId, - uint8_t *pRegAddr) -{ - switch(scratchPadRegId) - { - case PMIC_SCRATCH_PAD_REG_2 : - *pRegAddr = PMIC_SCRATCH_PAD_REG_2_REGADDR; - break; - case PMIC_SCRATCH_PAD_REG_3 : - *pRegAddr = PMIC_SCRATCH_PAD_REG_3_REGADDR; - break; - case PMIC_SCRATCH_PAD_REG_4 : - *pRegAddr = PMIC_SCRATCH_PAD_REG_4_REGADDR; - break; - default: - *pRegAddr = PMIC_SCRATCH_PAD_REG_1_REGADDR; - break; - } -} - -/*! - * \brief API to set/write value in/to scratchpad register. - * - * Requirement: REQ_TAG(PDK-5810), REQ_TAG(PDK-5843) - * Design: did_pmic_comm_single_i2c_cfg, did_pmic_comm_spi_cfg - * Architecture: aid_pmic_core_misc_cfg - * - * This function is used write data to scratchpad register of PMIC - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param scratchPadRegNum [IN] ScratchPad register number - * \ref Pmic_ScratchPad_Sel - * \param data [IN] Data/Value to be written to scratchpad. - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_setScratchPadValue(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t scratchPadRegId, - const uint8_t data) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regAddr; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (scratchPadRegId > PMIC_SCRATCH_PAD_REG_4)) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_getScratchPadRegAddr(scratchPadRegId, ®Addr); - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, regAddr, data); - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return pmicStatus; -} - -/*! - * \brief API to get/read data from scratchpad register. - * - * Requirement: REQ_TAG(PDK-5810), REQ_TAG(PDK-5843) - * Design: did_pmic_comm_single_i2c_cfg, did_pmic_comm_spi_cfg - * Architecture: aid_pmic_core_misc_cfg - * - * This function is used read data from scratchpad register of PMIC - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param scratchPadRegNum [IN] ScratchPad register number - * \ref Pmic_ScratchPad_Sel - * \param data [OUT] Parameter to hold the Data/Value read - * from scratchpad. - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_getScratchPadValue(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t scratchPadRegId, - uint8_t *pData) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regAddr; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (scratchPadRegId > PMIC_SCRATCH_PAD_REG_4)) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && (NULL == pData)) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_getScratchPadRegAddr(scratchPadRegId, ®Addr); - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, regAddr, pData); - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return pmicStatus; -} - -/*! - * \brief API to get User Spare Register Bit fields - * Note: In this API, the default userSpareRegNum is assumed as - * PMIC_USER_SPARE_REG_1. While adding support for New PMIC - * device, developer need to update the API functionality for - * New PMIC device accordingly. - */ -static void Pmic_getUserSpareRegBitFields(uint8_t userSpareRegNum, - uint8_t *pBitShift, - uint8_t *pBitMask) -{ - switch(userSpareRegNum) - { - case PMIC_USER_SPARE_REG_2 : - *pBitShift = PMIC_USER_SPARE_REGS_USER_SPARE_2_SHIFT; - *pBitMask = PMIC_USER_SPARE_REGS_USER_SPARE_2_MASK; - break; - case PMIC_USER_SPARE_REG_3 : - *pBitShift = PMIC_USER_SPARE_REGS_USER_SPARE_3_SHIFT; - *pBitMask = PMIC_USER_SPARE_REGS_USER_SPARE_3_MASK; - break; - case PMIC_USER_SPARE_REG_4 : - *pBitShift = PMIC_USER_SPARE_REGS_USER_SPARE_4_SHIFT; - *pBitMask = PMIC_USER_SPARE_REGS_USER_SPARE_4_MASK; - break; - default: - *pBitShift = PMIC_USER_SPARE_REGS_USER_SPARE_1_SHIFT; - *pBitMask = PMIC_USER_SPARE_REGS_USER_SPARE_1_MASK; - break; - } -} - -/*! - * \brief API to set/write value in/to User Spare register. - * - * Requirement: REQ_TAG(PDK-9133) - * Design: did_pmic_user_spare_cfg_readback - * Architecture: aid_pmic_core_misc_cfg - * - * This function is used write data to User Spare register of PMIC - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param userSpareRegNum [IN] UserSpare register number - * \ref Pmic_UserSpare_Sel - * \param data [IN] Data/Value to be written to UserSpare - * register. - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_setUserSpareValue(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t userSpareRegNum, - const uint8_t data) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t bitShift, bitMask, regVal; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (userSpareRegNum > PMIC_USER_SPARE_REG_4)) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (data > PMIC_USER_SPARE_REG_VAL_1)) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_USER_SPARE_REGS_REGADDR, - ®Val); - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_getUserSpareRegBitFields(userSpareRegNum, - &bitShift, - &bitMask); - - Pmic_setBitField(®Val, bitShift, bitMask, data); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_USER_SPARE_REGS_REGADDR, - regVal); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return pmicStatus; -} - -/*! - * \brief API to get/read data from User Spare register. - * - * Requirement: REQ_TAG(PDK-9133) - * Design: did_pmic_user_spare_cfg_readback - * Architecture: aid_pmic_core_misc_cfg - * - * This function is used read data from User Spare register of PMIC - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param userSpareRegNum [IN] User Spare register number - * \ref Pmic_UserSpare_Sel - * \param pData [OUT] Parameter to hold the Data/Value read - * from User Spare register. - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_getUserSpareValue(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t userSpareRegNum, - uint8_t *pData) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regVal, bitShift, bitMask; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (userSpareRegNum > PMIC_USER_SPARE_REG_4)) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && (NULL == pData)) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_USER_SPARE_REGS_REGADDR, - ®Val); - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_getUserSpareRegBitFields(userSpareRegNum, - &bitShift, - &bitMask); - - *pData = Pmic_getBitField(regVal, bitShift, bitMask); - } - - return pmicStatus; -} - -/*! - * \brief API to Enable/Disable Spread Spectrum - */ -static int32_t Pmic_spreadSpectrumEnable( - Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_CommonCtrlCfg_t commonCtrlCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_SPREAD_SPECTRUM_1_REGADDR, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(((bool)PMIC_SPREAD_SPECTRUM_CFG_ENABLE) == - commonCtrlCfg.sreadSpectrumEn) - { - Pmic_setBitField(®Data, - PMIC_SPREAD_SPECTRUM_1_SS_EN_SHIFT, - PMIC_SPREAD_SPECTRUM_1_SS_EN_MASK, - PMIC_SPREAD_SPECTRUM_CFG_ENABLE); - } - else - { - Pmic_setBitField(®Data, - PMIC_SPREAD_SPECTRUM_1_SS_EN_SHIFT, - PMIC_SPREAD_SPECTRUM_1_SS_EN_MASK, - PMIC_SPREAD_SPECTRUM_CFG_DISABLE); - } - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_SPREAD_SPECTRUM_1_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - return pmicStatus; -} - -/*! - * \brief API to get the status of Spread Spectrum is Enabled/Disabled - */ -static int32_t Pmic_getSpreadSpectrumEnable( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_CommonCtrlCfg_t *pCommonCtrlCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_SPREAD_SPECTRUM_1_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pCommonCtrlCfg->sreadSpectrumEn = (bool)false; - - if(Pmic_getBitField(regData, - PMIC_SPREAD_SPECTRUM_1_SS_EN_SHIFT, - PMIC_SPREAD_SPECTRUM_1_SS_EN_MASK) == 1U) - { - pCommonCtrlCfg->sreadSpectrumEn = (bool)true; - } - } - - return pmicStatus; -} - -/*! - * \brief API to Enable/Disable Skip EEPROM Default Load to CONF and Other - * registers - */ -static int32_t Pmic_skipEepromDefaultLoadEnable( - Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_CommonCtrlCfg_t commonCtrlCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - if(PMIC_DEV_HERA_LP8764X != pPmicCoreHandle->pmicDeviceType) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_STARTUP_CTRL_REGADDR, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(( - (bool)PMIC_LP8764X_SKIP_EEPROM_DEF_LD_TO_CONF_OTHER_REGS_ENABLED) - == commonCtrlCfg.skipEepromDefaultLoadEn) - { - Pmic_setBitField( - ®Data, - PMIC_STARTUP_CTRL_SKIP_LP_STANDBY_EE_READ_SHIFT, - PMIC_STARTUP_CTRL_SKIP_LP_STANDBY_EE_READ_MASK, - PMIC_LP8764X_SKIP_EEPROM_DEF_LD_TO_CONF_OTHER_REGS_ENABLED); - } - else - { - Pmic_setBitField( - ®Data, - PMIC_STARTUP_CTRL_SKIP_LP_STANDBY_EE_READ_SHIFT, - PMIC_STARTUP_CTRL_SKIP_LP_STANDBY_EE_READ_MASK, - PMIC_LP8764X_SKIP_EEPROM_DEF_LD_TO_CONF_OTHER_REGS_DISABLED); - } - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_STARTUP_CTRL_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return pmicStatus; -} - -/*! - * \brief API to get the status of Skip EEPROM Default Load to CONF and Other - * registers is Enabled/Disabled - */ -static int32_t Pmic_getSkipEepromDefaultLoadEnable( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_CommonCtrlCfg_t *pCommonCtrlCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_STARTUP_CTRL_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pCommonCtrlCfg->skipEepromDefaultLoadEn = (bool)false; - - if(Pmic_getBitField( - regData, - PMIC_STARTUP_CTRL_SKIP_LP_STANDBY_EE_READ_SHIFT, - PMIC_STARTUP_CTRL_SKIP_LP_STANDBY_EE_READ_MASK) == 1U) - { - pCommonCtrlCfg->skipEepromDefaultLoadEn = (bool)true; - } - } - - return pmicStatus; -} - -/*! - * \brief API to get Register Address and Register Bit fields of EEPROM - * Default Load to CONF registers - * Note: In this API, the default pmicDeviceType is assumed as - * LEO PMIC TPS6594x. While adding support for New PMIC - * device, developer need to update the API functionality for - * New PMIC device accordingly. - */ -static void Pmic_getEepromDefaultLoadRegAddrBitFields( - const Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t *pRegAddr, - uint8_t *pBitShift, - uint8_t *pBitMask) -{ - switch(pPmicCoreHandle->pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X : - *pRegAddr = PMIC_RTC_CTRL_2_REGADDR; - *pBitShift = PMIC_RTC_CTRL_2_FIRST_STARTUP_DONE_SHIFT; - *pBitMask = PMIC_RTC_CTRL_2_FIRST_STARTUP_DONE_MASK; - break; - default: - *pRegAddr = PMIC_STARTUP_CTRL_REGADDR; - *pBitShift = PMIC_STARTUP_CTRL_FIRST_STARTUP_DONE_SHIFT; - *pBitMask = PMIC_STARTUP_CTRL_FIRST_STARTUP_DONE_MASK; - break; - } -} - - -/*! - * \brief API to Enable/Disable EEPROM Default Load to CONF registers - */ -static int32_t Pmic_eepromDefaultLoadEnable( - Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_CommonCtrlCfg_t commonCtrlCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t regAddr = 0U, bitShift = 0U, bitMask = 0U; - uint8_t maxVal; - - switch(pPmicCoreHandle->pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - maxVal = \ - PMIC_LP8764X_EEPROM_DEFAULTS_NOT_LOADED_TO_CONF_OTHER_REGS; - break; - default: - maxVal = \ - PMIC_TPS6594X_EEPROM_DEFAULTS_NOT_LOADED_TO_RTC_DOMAIN_BITS; - break; - } - - if(commonCtrlCfg.eepromDefaultLoad > maxVal) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_getEepromDefaultLoadRegAddrBitFields(pPmicCoreHandle, - ®Addr, - &bitShift, - &bitMask); - - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, regAddr, ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_setBitField(®Data, - bitShift, - bitMask, - commonCtrlCfg.eepromDefaultLoad); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, regAddr, regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return pmicStatus; -} - -/*! - * \brief API to get the status of EEPROM Default Load to CONF registers is - * Enabled/Disabled - */ -static int32_t Pmic_getEepromDefaultLoadEnable( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_CommonCtrlCfg_t *pCommonCtrlCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t regAddr = 0U, bitShift = 0U, bitMask = 0U; - - Pmic_getEepromDefaultLoadRegAddrBitFields(pPmicCoreHandle, - ®Addr, - &bitShift, - &bitMask); - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, regAddr, ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pCommonCtrlCfg->eepromDefaultLoad = Pmic_getBitField(regData, - bitShift, - bitMask); - } - - return pmicStatus; -} - -/*! - * \brief API to set ENABLE_DRV Pin Configuration - */ -static int32_t Pmic_setEnableDrvPinCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_CommonCtrlCfg_t commonCtrlCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t forceEnDrvLowVal, regData = 0U; - - if(commonCtrlCfg.enDrv > PMIC_PIN_SIGNAL_LEVEL_HIGH) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_ENABLE_DRV_STAT_REGADDR, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - forceEnDrvLowVal = Pmic_getBitField( - regData, - PMIC_ENABLE_DRV_STAT_FORCE_EN_DRV_LOW_SHIFT, - PMIC_ENABLE_DRV_STAT_FORCE_EN_DRV_LOW_MASK); - - if(PMIC_ENABLE_DRV_I2C_SPI_CONFIG_DISABLE == forceEnDrvLowVal) - { - pmicStatus = PMIC_ST_ERR_INV_EN_DRV_PIN_CFG; - } - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_ENABLE_DRV_REG_REGADDR, - ®Data); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_setBitField(®Data, - PMIC_ENABLE_DRV_REG_ENABLE_DRV_SHIFT, - PMIC_ENABLE_DRV_REG_ENABLE_DRV_MASK, - commonCtrlCfg.enDrv); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_ENABLE_DRV_REG_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return pmicStatus; -} - -/*! - * \brief API to get ENABLE_DRV Pin Configuration - */ -static int32_t Pmic_getEnableDrvPinCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_CommonCtrlCfg_t *pCommonCtrlCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_ENABLE_DRV_REG_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pCommonCtrlCfg->enDrv = Pmic_getBitField( - regData, - PMIC_ENABLE_DRV_REG_ENABLE_DRV_SHIFT, - PMIC_ENABLE_DRV_REG_ENABLE_DRV_MASK); - } - - return pmicStatus; -} - -/*! - * \brief API to set Register Lock/UnLock Configuration - */ -static int32_t Pmic_setRegisterLockUnLockCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_CommonCtrlCfg_t commonCtrlCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - if((PMIC_REGISTER_UNLOCK != commonCtrlCfg.regLock) && - (PMIC_REGISTER_LOCK != commonCtrlCfg.regLock)) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_REGISTER_LOCK_REGADDR, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_setBitField(®Data, - PMIC_REGISTER_LOCK_REGISTER_LOCK_STATUS_SHIFT, - PMIC_REGISTER_LOCK_REGISTER_LOCK_STATUS_WRITE_MASK, - commonCtrlCfg.regLock); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_REGISTER_LOCK_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return pmicStatus; -} - -/*! - * \brief API to set Spread Spectrum modulation Depth Value Configuration - */ -static int32_t Pmic_setSpreadSpectrumModDepthCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_CommonCtrlCfg_t commonCtrlCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - if(commonCtrlCfg.spreadSpectrumDepth > - PMIC_SPREAD_SPECTRUM_MODULATION_DEPTH_8_4_PERCENT) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_SPREAD_SPECTRUM_1_REGADDR, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_setBitField(®Data, - PMIC_SPREAD_SPECTRUM_1_SS_DEPTH_SHIFT, - PMIC_SPREAD_SPECTRUM_1_SS_DEPTH_MASK, - commonCtrlCfg.spreadSpectrumDepth); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_SPREAD_SPECTRUM_1_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return pmicStatus; -} - -/*! - * \brief API to get Spread Spectrum modulation Depth Value Configuration - */ -static int32_t Pmic_getSpreadSpectrumModDepthCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_CommonCtrlCfg_t *pCommonCtrlCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_SPREAD_SPECTRUM_1_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pCommonCtrlCfg->spreadSpectrumDepth = - Pmic_getBitField(regData, - PMIC_SPREAD_SPECTRUM_1_SS_DEPTH_SHIFT, - PMIC_SPREAD_SPECTRUM_1_SS_DEPTH_MASK); - } - - return pmicStatus; -} - -/*! - * \brief API to set PMIC common control parameter configuration. - * - * Requirement: REQ_TAG(PDK-9112), REQ_TAG(PDK-9114), REQ_TAG(PDK-9131), - * REQ_TAG(PDK-9143) - * Design: did_pmic_common_ctrl_cfg_readback - * Architecture: aid_pmic_core_misc_cfg - * - * This function is used to set the required common control parameter - * configuration when corresponding validParam bit field is set in - * the Pmic_CommonCtrlCfg_t - * For more information \ref Pmic_CommonCtrlCfg_t - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param commonCtrlCfg [IN] Set PMIC required common control parameter - * configuration. - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_setCommonCtrlConfig(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_CommonCtrlCfg_t commonCtrlCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck(commonCtrlCfg.validParams, - PMIC_CFG_SPREAD_SPECTRUM_EN_VALID))) - { - /* Enable/Disable Spread Spectrum */ - pmicStatus = Pmic_spreadSpectrumEnable(pPmicCoreHandle, commonCtrlCfg); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck(commonCtrlCfg.validParams, - PMIC_CFG_SKIP_EEPROM_LOAD_VALID))) - { - /* Enable/Disable Skip EEPROM Default Load to CONF and Other registers*/ - pmicStatus = Pmic_skipEepromDefaultLoadEnable(pPmicCoreHandle, - commonCtrlCfg); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck(commonCtrlCfg.validParams, - PMIC_CFG_EEPROM_DEFAULT_VALID))) - { - /* Enable/Disable EEPROM Default Load to CONF registers*/ - pmicStatus = Pmic_eepromDefaultLoadEnable(pPmicCoreHandle, - commonCtrlCfg); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck(commonCtrlCfg.validParams, - PMIC_CFG_ENABLE_DRV_VALID))) - { - /* Set ENABLE_DRV Pin Configuration */ - pmicStatus = Pmic_setEnableDrvPinCfg(pPmicCoreHandle, - commonCtrlCfg); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck(commonCtrlCfg.validParams, - PMIC_CFG_REG_LOCK_VALID))) - { - /* Set Register Lock/UnLock Configuration */ - pmicStatus = Pmic_setRegisterLockUnLockCfg(pPmicCoreHandle, - commonCtrlCfg); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck( - commonCtrlCfg.validParams, - PMIC_CFG_SPREAD_SPECTRUM_DEPTH_VALID))) - { - /* Spread Spectrum modulation Depth Value Configuration */ - pmicStatus = Pmic_setSpreadSpectrumModDepthCfg(pPmicCoreHandle, - commonCtrlCfg); - } - - return pmicStatus; - -} - -/*! - * \brief API to get PMIC common control parameter configuration. - * - * Requirement: REQ_TAG(PDK-9112), REQ_TAG(PDK-9114), REQ_TAG(PDK-9131), - * REQ_TAG(PDK-9143) - * Design: did_pmic_common_ctrl_cfg_readback - * Architecture: aid_pmic_core_misc_cfg - * - * This function is used to get the required common control parameter - * configuration when corresponding validParam bit field is set in - * the Pmic_CommonCtrlCfg_t - * For more information \ref Pmic_CommonCtrlCfg_t - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pCommonCtrlCfg [IN/OUT] Pointer to store PMIC required common - * control parameter configuration. - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_getCommonCtrlConfig(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_CommonCtrlCfg_t *pCommonCtrlCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && (NULL == pCommonCtrlCfg)) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck(pCommonCtrlCfg->validParams, - PMIC_CFG_SPREAD_SPECTRUM_EN_VALID))) - { - /* Get the status of Spread Spectrum is Enabled/Disabled */ - pmicStatus = Pmic_getSpreadSpectrumEnable(pPmicCoreHandle, - pCommonCtrlCfg); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck(pCommonCtrlCfg->validParams, - PMIC_CFG_SKIP_EEPROM_LOAD_VALID))) - { - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - /* Get the status of Skip EEPROM Default Load to CONF and Other - * registers is Enabled/Disabled */ - pmicStatus = Pmic_getSkipEepromDefaultLoadEnable(pPmicCoreHandle, - pCommonCtrlCfg); - } - else - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck(pCommonCtrlCfg->validParams, - PMIC_CFG_EEPROM_DEFAULT_VALID))) - { - /* Get the status of EEPROM Default Load to CONF registers is - * Enabled/Disabled */ - pmicStatus = Pmic_getEepromDefaultLoadEnable(pPmicCoreHandle, - pCommonCtrlCfg); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck(pCommonCtrlCfg->validParams, - PMIC_CFG_ENABLE_DRV_VALID))) - { - /* Get ENABLE_DRV Pin Configuration */ - pmicStatus = Pmic_getEnableDrvPinCfg(pPmicCoreHandle, pCommonCtrlCfg); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck( - pCommonCtrlCfg->validParams, - PMIC_CFG_SPREAD_SPECTRUM_DEPTH_VALID))) - { - /* Get Spread Spectrum modulation Depth Value Configuration */ - pmicStatus = Pmic_getSpreadSpectrumModDepthCfg(pPmicCoreHandle, - pCommonCtrlCfg); - } - - return pmicStatus; -} - -/*! - * \brief API to set AMUX_OUT/REF_OUT Pin Control Configuration - */ -static int32_t Pmic_setAmuxOutRefOutPinCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_MiscCtrlCfg_t miscCtrlCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - bool amuxRefEn = miscCtrlCfg.amuxOutRefOutEn; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_MISC_CTRL_REGADDR, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - switch(pPmicCoreHandle->pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - if(((bool)PMIC_LP8764X_REF_OUT_PIN_CFG_ENABLE) == amuxRefEn) - { - Pmic_setBitField(®Data, - PMIC_MISC_CTRL_AMUXOUT_REFOUT_EN_SHIFT, - PMIC_MISC_CTRL_AMUXOUT_REFOUT_EN_MASK, - PMIC_LP8764X_REF_OUT_PIN_CFG_ENABLE); - } - else - { - Pmic_setBitField(®Data, - PMIC_MISC_CTRL_AMUXOUT_REFOUT_EN_SHIFT, - PMIC_MISC_CTRL_AMUXOUT_REFOUT_EN_MASK, - PMIC_LP8764X_REF_OUT_PIN_CFG_DISABLE); - } - break; - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - if(((bool)PMIC_TPS6594X_AMUX_OUT_PIN_CFG_ENABLE) == amuxRefEn) - { - Pmic_setBitField(®Data, - PMIC_MISC_CTRL_AMUXOUT_REFOUT_EN_SHIFT, - PMIC_MISC_CTRL_AMUXOUT_REFOUT_EN_MASK, - PMIC_TPS6594X_AMUX_OUT_PIN_CFG_ENABLE); - } - else - { - Pmic_setBitField(®Data, - PMIC_MISC_CTRL_AMUXOUT_REFOUT_EN_SHIFT, - PMIC_MISC_CTRL_AMUXOUT_REFOUT_EN_MASK, - PMIC_TPS6594X_AMUX_OUT_PIN_CFG_DISABLE); - } - break; - } - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_MISC_CTRL_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - return pmicStatus; -} - -/*! - * \brief API to get AMUX_OUT/REF_OUT Pin Control Configuration - */ -static int32_t Pmic_getAmuxOutRefOutPinCfg(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_MiscCtrlCfg_t *pMiscCtrlCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_MISC_CTRL_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pMiscCtrlCfg->amuxOutRefOutEn = (bool)false; - - if(Pmic_getBitField(regData, - PMIC_MISC_CTRL_AMUXOUT_REFOUT_EN_SHIFT, - PMIC_MISC_CTRL_AMUXOUT_REFOUT_EN_MASK) == 1U) - { - pMiscCtrlCfg->amuxOutRefOutEn = (bool)true; - } - } - - return pmicStatus; -} - -/*! - * \brief API to set Internal Clock Monitoring Configuration - */ -static int32_t Pmic_setInternalClkMonitorCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_MiscCtrlCfg_t miscCtrlCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_MISC_CTRL_REGADDR, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - switch(pPmicCoreHandle->pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - if(((bool)PMIC_LP8764X_REF_OUT_PIN_CFG_ENABLE) == - miscCtrlCfg.clkMonEn) - { - Pmic_setBitField(®Data, - PMIC_MISC_CTRL_CLKMON_EN_SHIFT, - PMIC_MISC_CTRL_CLKMON_EN_MASK, - PMIC_LP8764X_REF_OUT_PIN_CFG_ENABLE); - } - else - { - Pmic_setBitField(®Data, - PMIC_MISC_CTRL_CLKMON_EN_SHIFT, - PMIC_MISC_CTRL_CLKMON_EN_MASK, - PMIC_LP8764X_REF_OUT_PIN_CFG_DISABLE); - } - break; - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - if(((bool)PMIC_TPS6594X_AMUX_OUT_PIN_CFG_ENABLE) == - miscCtrlCfg.clkMonEn) - { - Pmic_setBitField(®Data, - PMIC_MISC_CTRL_CLKMON_EN_SHIFT, - PMIC_MISC_CTRL_CLKMON_EN_MASK, - PMIC_TPS6594X_AMUX_OUT_PIN_CFG_ENABLE); - } - else - { - Pmic_setBitField(®Data, - PMIC_MISC_CTRL_CLKMON_EN_SHIFT, - PMIC_MISC_CTRL_CLKMON_EN_MASK, - PMIC_TPS6594X_AMUX_OUT_PIN_CFG_DISABLE); - } - break; - } - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_MISC_CTRL_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - return pmicStatus; -} - -/*! - * \brief API to get Internal Clock Monitoring Configuration - */ -static int32_t Pmic_getInternalClkMonitorCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_MiscCtrlCfg_t *pMiscCtrlCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_MISC_CTRL_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pMiscCtrlCfg->clkMonEn = (bool)false; - - if(Pmic_getBitField(regData, - PMIC_MISC_CTRL_CLKMON_EN_SHIFT, - PMIC_MISC_CTRL_CLKMON_EN_MASK) == 1U) - { - pMiscCtrlCfg->clkMonEn= (bool)true; - } - } - - return pmicStatus; -} - -/*! - * \brief API to select SYNCCLKOUT Frequency - */ -static int32_t Pmic_selectSyncClkOutFreq( - Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_MiscCtrlCfg_t miscCtrlCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - if(miscCtrlCfg.syncClkOutFreqSel > PMIC_SYNCCLKOUT_4_4_MHZ) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_MISC_CTRL_REGADDR, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_setBitField(®Data, - PMIC_MISC_CTRL_SYNCCLKOUT_FREQ_SEL_SHIFT, - PMIC_MISC_CTRL_SYNCCLKOUT_FREQ_SEL_MASK, - miscCtrlCfg.syncClkOutFreqSel); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_MISC_CTRL_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return pmicStatus; -} - -/*! - * \brief API to get Get SYNCCLKOUT Frequency Selection Configuration - */ -static int32_t Pmic_getSyncClkOutFreqSelectCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_MiscCtrlCfg_t *pMiscCtrlCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_MISC_CTRL_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pMiscCtrlCfg->syncClkOutFreqSel = - Pmic_getBitField(regData, - PMIC_MISC_CTRL_SYNCCLKOUT_FREQ_SEL_SHIFT, - PMIC_MISC_CTRL_SYNCCLKOUT_FREQ_SEL_MASK); - } - - return pmicStatus; -} - -/*! - * \brief API to Select External Clock - */ -static int32_t Pmic_selectExternalClk( - Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_MiscCtrlCfg_t miscCtrlCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - if(miscCtrlCfg.extClkSel > PMIC_AUTOMATIC_EXT_CLK) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_MISC_CTRL_REGADDR, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_setBitField(®Data, - PMIC_MISC_CTRL_SEL_EXT_CLK_SHIFT, - PMIC_MISC_CTRL_SEL_EXT_CLK_MASK, - miscCtrlCfg.extClkSel); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_MISC_CTRL_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return pmicStatus; -} - -/*! - * \brief API to get External Clock Selection Configuration - */ -static int32_t Pmic_getExternalClkSelectCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_MiscCtrlCfg_t *pMiscCtrlCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_MISC_CTRL_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pMiscCtrlCfg->extClkSel = - Pmic_getBitField(regData, - PMIC_MISC_CTRL_SEL_EXT_CLK_SHIFT, - PMIC_MISC_CTRL_SEL_EXT_CLK_MASK); - } - - return pmicStatus; -} - -/*! - * \brief API to select External Clock Frequency - */ -static int32_t Pmic_selectExternalClkFreq( - Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_MiscCtrlCfg_t miscCtrlCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t maxVal; - - switch(pPmicCoreHandle->pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - maxVal = PMIC_LP8764X_SYNCCLKIN_8_8_MHZ; - break; - default: - maxVal = PMIC_TPS6594X_SYNCCLKIN_4_4_MHZ; - break; - } - - if(miscCtrlCfg.syncClkInFreq > maxVal) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_PLL_CTRL_REGADDR, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_setBitField(®Data, - PMIC_PLL_CTRL_EXT_CLK_FREQ_SHIFT, - PMIC_PLL_CTRL_EXT_CLK_FREQ_MASK, - miscCtrlCfg.syncClkInFreq); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_PLL_CTRL_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return pmicStatus; -} - -/*! - * \brief API to configure NRSTOUT_SOC Signal - */ -static int32_t Pmic_setNRstOutSocSignalCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_MiscCtrlCfg_t miscCtrlCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - if(miscCtrlCfg.nRstOutSocSignal > PMIC_PIN_SIGNAL_LEVEL_HIGH) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_MISC_CTRL_REGADDR, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_setBitField(®Data, - PMIC_MISC_CTRL_NRSTOUT_SOC_SHIFT, - PMIC_MISC_CTRL_NRSTOUT_SOC_MASK, - miscCtrlCfg.nRstOutSocSignal); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_MISC_CTRL_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return pmicStatus; -} - -/*! - * \brief API to configure NRSTOUT Signal - */ -static int32_t Pmic_setNRstOutSignalCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_MiscCtrlCfg_t miscCtrlCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - if(miscCtrlCfg.nRstOutSignal > PMIC_PIN_SIGNAL_LEVEL_HIGH) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_MISC_CTRL_REGADDR, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_setBitField(®Data, - PMIC_MISC_CTRL_NRSTOUT_SHIFT, - PMIC_MISC_CTRL_NRSTOUT_MASK, - miscCtrlCfg.nRstOutSignal); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_MISC_CTRL_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return pmicStatus; -} - -/*! - * \brief API to get ExternalClk Frequency Selection Configuration - */ -static int32_t Pmic_getExternalClkFreqSelectCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_MiscCtrlCfg_t *pMiscCtrlCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_PLL_CTRL_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pMiscCtrlCfg->syncClkInFreq = - Pmic_getBitField(regData, - PMIC_PLL_CTRL_EXT_CLK_FREQ_SHIFT, - PMIC_PLL_CTRL_EXT_CLK_FREQ_MASK); - } - - return pmicStatus; -} - -/*! - * \brief API to get NRSTOUT_SOC Signal Configuration - */ -static int32_t Pmic_getNRstOutSocSignalCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_MiscCtrlCfg_t *pMiscCtrlCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_MISC_CTRL_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pMiscCtrlCfg->nRstOutSocSignal = - Pmic_getBitField(regData, - PMIC_MISC_CTRL_NRSTOUT_SOC_SHIFT, - PMIC_MISC_CTRL_NRSTOUT_SOC_MASK); - } - - return pmicStatus; -} - -/*! - * \brief API to get NRSTOUT Signal Configuration - */ -static int32_t Pmic_getNRstOutSignalCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_MiscCtrlCfg_t *pMiscCtrlCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_MISC_CTRL_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pMiscCtrlCfg->nRstOutSignal = - Pmic_getBitField(regData, - PMIC_MISC_CTRL_NRSTOUT_SHIFT, - PMIC_MISC_CTRL_NRSTOUT_MASK); - } - - return pmicStatus; -} - -/*! - * \brief API to set ExternalClk Frequency Selection, NRSTOUT_SOC and - * NRSTOUT Signal Configuration - */ -static int32_t Pmic_setExtclkfreqSelNRstOutSocNRstOutCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_MiscCtrlCfg_t miscCtrlCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if((bool)true == pmic_validParamCheck(miscCtrlCfg.validParams, - PMIC_CFG_SYNC_CLK_IN_FREQ_VALID)) - { - /* Selects External Clock Frequency */ - pmicStatus = Pmic_selectExternalClkFreq(pPmicCoreHandle, - miscCtrlCfg); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck(miscCtrlCfg.validParams, - PMIC_CFG_NRSTOUT_SOC_VALID))) - { - /* Configure NRSTOUT_SOC Signal */ - pmicStatus = Pmic_setNRstOutSocSignalCfg(pPmicCoreHandle, - miscCtrlCfg); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck(miscCtrlCfg.validParams, - PMIC_CFG_NRSTOUT_VALID))) - { - /* Configure NRSTOUT Signal */ - pmicStatus = Pmic_setNRstOutSignalCfg(pPmicCoreHandle, miscCtrlCfg); - } - - return pmicStatus; -} - -/*! - * \brief API to set PMIC Miscellaneous control parameter configuration. - * - * Requirement: REQ_TAG(PDK-9132), REQ_TAG(PDK-9127), REQ_TAG(PDK-9111) - * Design: did_pmic_misc_ctrl_cfg_readback - * Architecture: aid_pmic_core_misc_cfg - * - * This function is used to set the required miscellaneous control - * parameter configuration when corresponding validParam bit field is - * set in the Pmic_MiscCtrlCfg_t - * For more information \ref Pmic_MiscCtrlCfg_t - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param miscCtrlCfg [IN] Set PMIC required miscellaneous control - * parameter configuration. - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_setMiscCtrlConfig(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_MiscCtrlCfg_t miscCtrlCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck(miscCtrlCfg.validParams, - PMIC_CFG_AMUX_OUT_REF_OUT_EN_VALID))) - { - /* Set AMUX_OUT/REF_OUT Pin Control Configuration */ - pmicStatus = Pmic_setAmuxOutRefOutPinCfg(pPmicCoreHandle, miscCtrlCfg); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck(miscCtrlCfg.validParams, - PMIC_CFG_CLK_MON_EN_VALID))) - { - /* Set Internal Clock Monitoring Configuration*/ - pmicStatus = Pmic_setInternalClkMonitorCfg(pPmicCoreHandle, - miscCtrlCfg); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck( - miscCtrlCfg.validParams, - PMIC_CFG_SYNC_CLK_OUT_FREQ_SEL_VALID))) - { - /* Selects SYNCCLKOUT Frequency*/ - pmicStatus = Pmic_selectSyncClkOutFreq(pPmicCoreHandle, - miscCtrlCfg); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck(miscCtrlCfg.validParams, - PMIC_CFG_EXT_CLK_SEL_VALID))) - { - /* Select External Clock */ - pmicStatus = Pmic_selectExternalClk(pPmicCoreHandle, miscCtrlCfg); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Selects External Clock Frequency, Configure NRSTOUT_SOC and NRSTOUT - * Signal */ - pmicStatus = Pmic_setExtclkfreqSelNRstOutSocNRstOutCfg( - pPmicCoreHandle, - miscCtrlCfg); - } - - return pmicStatus; -} - -/*! - * \brief API to get PMIC ExternalClk Frequency Selection, NRSTOUT_SOC and - * NRSTOUT Signal Configuration - */ -static int32_t Pmic_getExtclkfreqSelNRstOutSocNRstOutCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_MiscCtrlCfg_t *pMiscCtrlCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if((bool)true == pmic_validParamCheck(pMiscCtrlCfg->validParams, - PMIC_CFG_SYNC_CLK_IN_FREQ_VALID)) - { - /* Get ExternalClk Frequency Selection Configuration */ - pmicStatus = Pmic_getExternalClkFreqSelectCfg(pPmicCoreHandle, - pMiscCtrlCfg); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck(pMiscCtrlCfg->validParams, - PMIC_CFG_NRSTOUT_SOC_VALID))) - { - /* Get NRSTOUT_SOC Signal Configuration */ - pmicStatus = Pmic_getNRstOutSocSignalCfg(pPmicCoreHandle, - pMiscCtrlCfg); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck(pMiscCtrlCfg->validParams, - PMIC_CFG_NRSTOUT_VALID))) - { - /* Get NRSTOUT Signal Configuration */ - pmicStatus = Pmic_getNRstOutSignalCfg(pPmicCoreHandle, - pMiscCtrlCfg); - } - - return pmicStatus; -} - - -/*! - * \brief API to get PMIC Miscellaneous control parameter configuration - * - * Requirement: REQ_TAG(PDK-9132), REQ_TAG(PDK-9127) - * Design: did_pmic_misc_ctrl_cfg_readback - * Architecture: aid_pmic_core_misc_cfg - * - * This function is used to get the required miscellaneous control - * parameter configuration when corresponding validParam bit field is - * set in the Pmic_MiscCtrlCfg_t - * For more information \ref Pmic_MiscCtrlCfg_t - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pMiscCtrlCfg [IN/OUT] Pointer to store PMIC required - * miscellaneous control parameter - * configuration. - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_getMiscCtrlConfig(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_MiscCtrlCfg_t *pMiscCtrlCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && (NULL == pMiscCtrlCfg)) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck(pMiscCtrlCfg->validParams, - PMIC_CFG_AMUX_OUT_REF_OUT_EN_VALID))) - { - /* Get AMUX_OUT/REF_OUT Pin Control Configuration */ - pmicStatus = Pmic_getAmuxOutRefOutPinCfg(pPmicCoreHandle, - pMiscCtrlCfg); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck(pMiscCtrlCfg->validParams, - PMIC_CFG_CLK_MON_EN_VALID))) - { - /* Get Internal Clock Monitoring Configuration*/ - pmicStatus = Pmic_getInternalClkMonitorCfg(pPmicCoreHandle, - pMiscCtrlCfg); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck( - pMiscCtrlCfg->validParams, - PMIC_CFG_SYNC_CLK_OUT_FREQ_SEL_VALID))) - { - /* Get SYNCCLKOUT Frequency Selection Configuration */ - pmicStatus = Pmic_getSyncClkOutFreqSelectCfg(pPmicCoreHandle, - pMiscCtrlCfg); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck(pMiscCtrlCfg->validParams, - PMIC_CFG_EXT_CLK_SEL_VALID))) - { - /* Get External Clock Selection Configuration */ - pmicStatus = Pmic_getExternalClkSelectCfg(pPmicCoreHandle, - pMiscCtrlCfg); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Get ExternalClk Frequency Selection, NRSTOUT_SOC and NRSTOUT Signal - * Configuration */ - pmicStatus = Pmic_getExtclkfreqSelNRstOutSocNRstOutCfg( - pPmicCoreHandle, - pMiscCtrlCfg); - } - - return pmicStatus; -} - -/*! - * \brief API to Enable/Disable Backup Battery Charging - */ -static int32_t Pmic_backupBatteryChargingEnable( - Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_BatteryCtrlCfg_t batteryCtrlCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_CONFIG_2_REGADDR, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(((bool)PMIC_TPS6594X_BB_CHARGINGING_CFG_ENABLE) == - batteryCtrlCfg.chargingEn) - { - Pmic_setBitField(®Data, - PMIC_CONFIG_2_BB_CHARGER_EN_SHIFT, - PMIC_CONFIG_2_BB_CHARGER_EN_MASK, - PMIC_TPS6594X_BB_CHARGINGING_CFG_ENABLE); - } - else - { - Pmic_setBitField(®Data, - PMIC_CONFIG_2_BB_CHARGER_EN_SHIFT, - PMIC_CONFIG_2_BB_CHARGER_EN_MASK, - PMIC_TPS6594X_BB_CHARGINGING_CFG_DISABLE); - } - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_CONFIG_2_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - return pmicStatus; -} - -/*! - * \brief API to get the status of Backup Battery Charging is Enabled/Disabled - */ -static int32_t Pmic_getBackupBatteryChargingCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_BatteryCtrlCfg_t *pBatteryCtrlCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_CONFIG_2_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pBatteryCtrlCfg->chargingEn = (bool)false; - - if(Pmic_getBitField(regData, - PMIC_CONFIG_2_BB_CHARGER_EN_SHIFT, - PMIC_CONFIG_2_BB_CHARGER_EN_MASK) == 1U) - { - pBatteryCtrlCfg->chargingEn = (bool)true; - } - } - - return pmicStatus; -} - -/*! - * \brief API to Set Backup Battery configuration for End of charge Voltage - */ -static int32_t Pmic_setBackupBatteryEndOfChargeVoltage( - Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_BatteryCtrlCfg_t batteryCtrlCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_CONFIG_2_REGADDR, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_setBitField(®Data, - PMIC_CONFIG_2_BB_VEOC_SHIFT, - PMIC_CONFIG_2_BB_VEOC_MASK, - batteryCtrlCfg.endOfChargeVoltage); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_CONFIG_2_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - return pmicStatus; -} - -/*! - * \brief API to get Backup Battery configuration for End of charge Voltage - */ -static int32_t Pmic_getBackupBatteryEndOfChargeVoltage( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_BatteryCtrlCfg_t *pBatteryCtrlCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_CONFIG_2_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pBatteryCtrlCfg->endOfChargeVoltage = - Pmic_getBitField(regData, - PMIC_CONFIG_2_BB_VEOC_SHIFT, - PMIC_CONFIG_2_BB_VEOC_MASK); - } - - return pmicStatus; -} - -/*! - * \brief API to get Backup Battery charging current value - */ -static int32_t Pmic_setBackupBatteryChargingCurrentVal( - Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_BatteryCtrlCfg_t batteryCtrlCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_CONFIG_2_REGADDR, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_setBitField(®Data, - PMIC_CONFIG_2_BB_ICHR_SHIFT, - PMIC_CONFIG_2_BB_ICHR_MASK, - batteryCtrlCfg.chargeCurrent); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_CONFIG_2_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - return pmicStatus; -} - -/*! - * \brief API to get Backup Battery charging current value - */ -static int32_t Pmic_getBackupBatteryChargingCurrentVal( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_BatteryCtrlCfg_t *pBatteryCtrlCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_CONFIG_2_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pBatteryCtrlCfg->chargeCurrent = - Pmic_getBitField(regData, - PMIC_CONFIG_2_BB_ICHR_SHIFT, - PMIC_CONFIG_2_BB_ICHR_MASK); - } - - return pmicStatus; -} - -/*! - * \brief API to set PMIC Battery Backup control parameter configuration. - * - * Requirement: REQ_TAG(PDK-9130), REQ_TAG(PDK-9111) - * Design: did_pmic_battery_ctrl_cfg_readback - * Architecture: aid_pmic_core_misc_cfg - * - * This function is used to set the required Battery Backup control - * parameter configuration when corresponding validParam bit field is - * set in the Pmic_BatteryCtrlCfg_t - * For more information \ref Pmic_BatteryCtrlCfg_t - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param batteryCtrlCfg [IN] Set PMIC required Battery Backup control - * parameter configuration. - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_setBatteryCtrlConfig(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_BatteryCtrlCfg_t batteryCtrlCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType)) - { - pmicStatus = PMIC_ST_ERR_NOT_SUPPORTED; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck(batteryCtrlCfg.validParams, - PMIC_CFG_CHARGING_EN_VALID))) - { - /* Enable/Disable Backup Battery Charging */ - pmicStatus = Pmic_backupBatteryChargingEnable(pPmicCoreHandle, - batteryCtrlCfg); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck( - batteryCtrlCfg.validParams, - PMIC_CFG_END_OF_CHARGE_VOLTAGE_VALID))) - { - if(batteryCtrlCfg.endOfChargeVoltage > - PMIC_TPS6594X_BB_ENDOF_CHARGE_VOLATGE_3_3_V) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Set Backup Battery configuration for End of charge Voltage*/ - pmicStatus = Pmic_setBackupBatteryEndOfChargeVoltage( - pPmicCoreHandle, - batteryCtrlCfg); - } - - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck( - batteryCtrlCfg.validParams, - PMIC_CFG_CHARGE_CURRENT_VALID))) - { - if(batteryCtrlCfg.chargeCurrent > - PMIC_TPS6594X_BB_CHARGING_CURRENT_500) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Set Backup Battery charging current value*/ - pmicStatus = Pmic_setBackupBatteryChargingCurrentVal( - pPmicCoreHandle, - batteryCtrlCfg); - } - } - - return pmicStatus; -} - -/*! - * \brief API to get PMIC Battery Backup control parameter configuration. - * Note: validParams is input param for all Set and Get APIs. other - * params except validParams is input param for Set APIs and output - * param for Get APIs - * - * Requirement: REQ_TAG(PDK-9130) - * Design: did_pmic_battery_ctrl_cfg_readback - * Architecture: aid_pmic_core_misc_cfg - * - * This function is used to get the required Battery Backup control - * parameter configuration when corresponding validParam bit field is - * set in the Pmic_BatteryCtrlCfg_t - * For more information \ref Pmic_BatteryCtrlCfg_t - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pBatteryCtrlCfg [IN/OUT] Pointer to store PMIC required Battery - * Backup control parameter configuration - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_getBatteryCtrlConfig(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_BatteryCtrlCfg_t *pBatteryCtrlCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && (NULL == pBatteryCtrlCfg)) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType)) - { - pmicStatus = PMIC_ST_ERR_NOT_SUPPORTED; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck(pBatteryCtrlCfg->validParams, - PMIC_CFG_CHARGING_EN_VALID))) - { - /* Get the status of Backup Battery Charging is Enabled/Disabled */ - pmicStatus = Pmic_getBackupBatteryChargingCfg(pPmicCoreHandle, - pBatteryCtrlCfg); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck( - pBatteryCtrlCfg->validParams, - PMIC_CFG_END_OF_CHARGE_VOLTAGE_VALID))) - { - /* Get Backup Battery configuration for End of charge Voltage*/ - pmicStatus = Pmic_getBackupBatteryEndOfChargeVoltage(pPmicCoreHandle, - pBatteryCtrlCfg); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck(pBatteryCtrlCfg->validParams, - PMIC_CFG_CHARGE_CURRENT_VALID))) - { - /* Get Backup Battery charging current value*/ - pmicStatus = Pmic_getBackupBatteryChargingCurrentVal(pPmicCoreHandle, - pBatteryCtrlCfg); - } - - return pmicStatus; -} - -/*! - * \brief API to get NRSTOUT_SOC/ NRSTOUT/ EN_DRV Register Bit fields - * Note: In this API, the default pinType is assumed as EN_DRV. While - * adding support for New PMIC device, developer need to update the API - * functionality for New PMIC device accordingly. - */ -static void Pmic_getPinTypeRegBitFields(const uint8_t pinType, - uint8_t *pBitShift, - uint8_t *pBitMask) -{ - switch(pinType) - { - case PMIC_PIN_TYPE_NRSTOUT_SOC : - *pBitShift = PMIC_ENABLE_DRV_STAT_NRSTOUT_SOC_IN_SHIFT; - *pBitMask = PMIC_ENABLE_DRV_STAT_NRSTOUT_SOC_IN_MASK; - break; - case PMIC_PIN_TYPE_NRSTOUT : - *pBitShift = PMIC_ENABLE_DRV_STAT_NRSTOUT_IN_SHIFT; - *pBitMask = PMIC_ENABLE_DRV_STAT_NRSTOUT_IN_MASK; - break; - default: - *pBitShift = PMIC_ENABLE_DRV_STAT_EN_DRV_IN_SHIFT; - *pBitMask = PMIC_ENABLE_DRV_STAT_EN_DRV_IN_MASK; - break; - } -} - -/*! - * \brief API to get PMIC GPIO NRSTOUT_SOC/ NRSTOUT/ EN_DRV Pin - * - * Requirement: REQ_TAG(PDK-9137), REQ_TAG(PDK-9131) - * Design: did_pmic_pin_readback - * Architecture: aid_pmic_core_misc_cfg - * - * This function is used to read the signal level of the NRSTOUT_SOC/ - * NRSTOUT/ EN_DRV Pin - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param pinType [IN] PMIC pin type. - * Valid values of pin type - * \ref Pmic_PinType_Sel - * \param pPinValue [OUT] Pointer to store the status of pin type - * Valid values \ref Pmic_SignalLvl - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_getPinValue(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t pinType, - uint8_t *pPinValue) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regVal; - uint8_t bitShift, bitMask; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (pinType > PMIC_PIN_TYPE_NRSTOUT)) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && (NULL == pPinValue)) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_ENABLE_DRV_STAT_REGADDR, - ®Val); - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_getPinTypeRegBitFields(pinType, &bitShift, &bitMask); - - *pPinValue = Pmic_getBitField(regVal, bitShift, bitMask); - } - - return pmicStatus; -} - -/*! - * \brief API to get the status of SPMI LPM Control is Enabled/Disabled - */ -static int32_t Pmic_getSpmiLpmCtrlCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_CommonCtrlStat_t *pCommonCtrlStat) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_ENABLE_DRV_STAT_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pCommonCtrlStat->spmiLpmStat = (bool)false; - - if(Pmic_getBitField(regData, - PMIC_ENABLE_DRV_STAT_SPMI_LPM_EN_SHIFT, - PMIC_ENABLE_DRV_STAT_SPMI_LPM_EN_MASK) == 1U) - { - pCommonCtrlStat->spmiLpmStat = (bool)true; - } - } - - return pmicStatus; -} - -/*! - * \brief API to get the status of ENABLE_DRV Configuration by I2C/SPI is - * Enabled or not - */ -static int32_t Pmic_getEnableDrvI2CSPICfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_CommonCtrlStat_t *pCommonCtrlStat) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_ENABLE_DRV_STAT_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pCommonCtrlStat->forceEnDrvLowStat = - Pmic_getBitField( - regData, - PMIC_ENABLE_DRV_STAT_FORCE_EN_DRV_LOW_SHIFT, - PMIC_ENABLE_DRV_STAT_FORCE_EN_DRV_LOW_MASK); - } - - return pmicStatus; -} - -/*! - * \brief API to get Backup Battery charging End of charge Indication Status - */ -static int32_t Pmic_getBackupBatteryEocIndicationStat( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_CommonCtrlStat_t *pCommonCtrlStat) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_CONFIG_2_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pCommonCtrlStat->bbEndOfChargeIndication = - Pmic_getBitField(regData, - PMIC_CONFIG_2_BB_EOC_RDY_SHIFT, - PMIC_CONFIG_2_BB_EOC_RDY_MASK); - } - - return pmicStatus; -} - -/*! - * \brief API to get Register Lock Status - */ -static int32_t Pmic_getRegLockStat( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_CommonCtrlStat_t *pCommonCtrlStat) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_REGISTER_LOCK_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pCommonCtrlStat->regLockStat = - Pmic_getBitField( - regData, - PMIC_REGISTER_LOCK_REGISTER_LOCK_STATUS_SHIFT, - PMIC_REGISTER_LOCK_REGISTER_LOCK_STATUS_READ_MASK); - } - - return pmicStatus; -} - -/*! - * \brief API to get External Clock Validity Status - */ -static int32_t Pmic_getExtClkValidityStat( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_CommonCtrlStat_t *pCommonCtrlStat) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_STAT_MISC_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pCommonCtrlStat->extClkValidity = - Pmic_getBitField(regData, - PMIC_STAT_MISC_EXT_CLK_STAT_SHIFT, - PMIC_STAT_MISC_EXT_CLK_STAT_MASK); - } - - return pmicStatus; -} - -/*! - * \brief API to get Startup Pin Status - */ -static int32_t Pmic_getStartupPinStat( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_CommonCtrlStat_t *pCommonCtrlStat) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_STAT_STARTUP_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pCommonCtrlStat->startupPin = - Pmic_getBitField( - regData, - PMIC_STAT_STARTUP_ENABLE_STAT_SHIFT, - PMIC_STAT_STARTUP_ENABLE_STAT_MASK); - } - - return pmicStatus; -} - -/*! - * \brief API to get EN_DRV Pin status - */ -static int32_t Pmic_getEnDrvPinStat( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_CommonCtrlStat_t *pCommonCtrlStat) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_STAT_READBACK_ERR_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pCommonCtrlStat->enDrvPin = - Pmic_getBitField( - regData, - PMIC_STAT_READBACK_ERR_EN_DRV_READBACK_STAT_SHIFT, - PMIC_STAT_READBACK_ERR_EN_DRV_READBACK_STAT_MASK); - } - - return pmicStatus; -} - -/*! - * \brief API to get NRSTOUT_SOC Pin Status - */ -static int32_t Pmic_getNRstOutSocPinStat( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_CommonCtrlStat_t *pCommonCtrlStat) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_STAT_READBACK_ERR_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pCommonCtrlStat->nRstOutSocPin = - Pmic_getBitField( - regData, - PMIC_STAT_READBACK_ERR_NRSTOUT_SOC_READBACK_STAT_SHIFT, - PMIC_STAT_READBACK_ERR_NRSTOUT_SOC_READBACK_STAT_MASK); - } - - return pmicStatus; -} - -/*! - * \brief API to get NRSTOUT Pin Status - */ -static int32_t Pmic_getNRstOutPinStat( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_CommonCtrlStat_t *pCommonCtrlStat) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_STAT_READBACK_ERR_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pCommonCtrlStat->nRstOutPin = - Pmic_getBitField( - regData, - PMIC_STAT_READBACK_ERR_NRSTOUT_READBACK_STAT_SHIFT, - PMIC_STAT_READBACK_ERR_NRSTOUT_READBACK_STAT_MASK); - } - - return pmicStatus; -} - -/*! - * \brief API to get NINT Pin Status - */ -static int32_t Pmic_getNIntPinStat(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_CommonCtrlStat_t *pCommonCtrlStat) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_STAT_READBACK_ERR_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pCommonCtrlStat->nIntPin = - Pmic_getBitField( - regData, - PMIC_STAT_READBACK_ERR_NINT_READBACK_STAT_SHIFT, - PMIC_STAT_READBACK_ERR_NINT_READBACK_STAT_MASK); - } - - return pmicStatus; -} - -/*! - * \brief API to get Startup Pin, EN_DRV Pin, NRSTOUT_SOC Pin, NRSTOUT Pin, - * and NINT Pin Status - */ -static int32_t Pmic_getStartupEndrvNrstoutsocNrstoutNintPinStat( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_CommonCtrlStat_t *pCommonCtrlStat) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if((bool)true == pmic_validParamCheck(pCommonCtrlStat->validParams, - PMIC_CFG_STARTUP_PIN_STAT_VALID)) - { - /* Get Startup Pin Status*/ - pmicStatus = Pmic_getStartupPinStat(pPmicCoreHandle, pCommonCtrlStat); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck(pCommonCtrlStat->validParams, - PMIC_CFG_EN_DRV_PIN_STAT_VALID))) - { - /* Get EN_DRV Pin Status*/ - pmicStatus = Pmic_getEnDrvPinStat(pPmicCoreHandle, pCommonCtrlStat); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck(pCommonCtrlStat->validParams, - PMIC_CFG_NRSTOUTSOC_PIN_STAT_VALID))) - { - /* Get NRSTOUT_SOC Pin Status*/ - pmicStatus = Pmic_getNRstOutSocPinStat(pPmicCoreHandle, - pCommonCtrlStat); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck(pCommonCtrlStat->validParams, - PMIC_CFG_NRSTOUT_PIN_STAT_VALID))) - { - /* Get NRSTOUT Pin Status*/ - pmicStatus = Pmic_getNRstOutPinStat(pPmicCoreHandle, pCommonCtrlStat); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck(pCommonCtrlStat->validParams, - PMIC_CFG_NINT_PIN_STAT_VALID))) - { - /* Get NINT Pin Status*/ - pmicStatus = Pmic_getNIntPinStat(pPmicCoreHandle, pCommonCtrlStat); - } - - return pmicStatus; -} - -/*! - * \brief API to get PMIC common control parameter status. - * - * Requirement: REQ_TAG(PDK-9126), REQ_TAG(PDK-9124), REQ_TAG(PDK-9130), - * REQ_TAG(PDK-9125), REQ_TAG(PDK-9139), REQ_TAG(PDK-9138), - * REQ_TAG(PDK-9112) - * Design: did_pmic_common_ctrl_status_readback - * Architecture: aid_pmic_core_misc_cfg - * - * This function is used to get the required common control parameter - * status when corresponding validParam bit field is set in - * the Pmic_CommonCtrlStat_t - * For more information \ref Pmic_CommonCtrlStat_t - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pCommonCtrlStat [IN/OUT] Pointer to store PMIC required common - * control parameter status. - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_getCommonCtrlStat(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_CommonCtrlStat_t *pCommonCtrlStat) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && (NULL == pCommonCtrlStat)) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck(pCommonCtrlStat->validParams, - PMIC_CFG_SPMI_LPM_STAT_VALID))) - { - /* Get the status of SPMI LPM Control is Enabled/Disabled */ - pmicStatus = Pmic_getSpmiLpmCtrlCfg(pPmicCoreHandle, - pCommonCtrlStat); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck( - pCommonCtrlStat->validParams, - PMIC_CFG_FORCE_ENABLE_DRV_LOW_STAT_VALID))) - { - /* Get the status of ENABLE_DRV Configuration by I2C/SPI is Enabled or not*/ - pmicStatus = Pmic_getEnableDrvI2CSPICfg(pPmicCoreHandle, - pCommonCtrlStat); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck( - pCommonCtrlStat->validParams, - PMIC_CFG_BB_EOC_INDICATION_STAT_VALID))) - { - /* Get Backup Battery charging End of charge Indication Status*/ - pmicStatus = Pmic_getBackupBatteryEocIndicationStat(pPmicCoreHandle, - pCommonCtrlStat); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck(pCommonCtrlStat->validParams, - PMIC_CFG_REGISTER_LOCK_STAT_VALID))) - { - /* Get Register Lock Status*/ - pmicStatus = Pmic_getRegLockStat(pPmicCoreHandle, pCommonCtrlStat); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck( - pCommonCtrlStat->validParams, - PMIC_CFG_EXT_CLK_VALIDITY_STAT_VALID))) - { - /* Get External Clock Validity Status*/ - pmicStatus = Pmic_getExtClkValidityStat(pPmicCoreHandle, - pCommonCtrlStat); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Get Startup, EN_DRV, NRSTOUT_SOC, NRSTOUT and NINT Pin Status */ - pmicStatus = Pmic_getStartupEndrvNrstoutsocNrstoutNintPinStat( - pPmicCoreHandle, - pCommonCtrlStat); - } - - return pmicStatus; -} - -/*! - * \brief API to get configured value for I2C1 or I2C2 Speed based on commMode - * - * Requirement: REQ_TAG(PDK-9129) - * Design: did_pmic_i2c_speed_readback - * Architecture: aid_pmic_core_misc_cfg - * - * This function is used to get the configured value for I2C1 or - * I2C2 Speed based on commMode - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pI2C1Speed [OUT] Pointer to store I2C1 Speed for both - * PMIC_INTF_SINGLE_I2C and PMIC_INTF_DUAL_I2C - * interface - * Valid Vaues \ref Pmic_I2CSpeedSel - * \param pI2C2Speed [OUT] Pointer to store I2C2 Speed for both - * PMIC_INTF_DUAL_I2C interface only - * Valid Vaues \ref Pmic_I2CSpeedSel - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_getI2CSpeed(Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t *pI2C1Speed, - uint8_t *pI2C2Speed) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regVal; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((NULL == pI2C1Speed) || (NULL == pI2C2Speed))) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (pPmicCoreHandle->commMode > PMIC_INTF_DUAL_I2C)) - { - pmicStatus = PMIC_ST_ERR_INV_COMM_MODE; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_CONFIG_1_REGADDR, - ®Val); - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - *pI2C1Speed = Pmic_getBitField(regVal, - PMIC_CONFIG_1_I2C1_HS_SHIFT, - PMIC_CONFIG_1_I2C1_HS_MASK); - - if(PMIC_INTF_DUAL_I2C == pPmicCoreHandle->commMode) - { - *pI2C2Speed = Pmic_getBitField(regVal, - PMIC_CONFIG_1_I2C2_HS_SHIFT, - PMIC_CONFIG_1_I2C2_HS_MASK); - } - } - - return pmicStatus; -} - -/*! - * \brief API to Enable CRC - * - * Requirement: REQ_TAG(PDK-9119) - * Design: did_pmic_crc_enable - * Architecture: aid_pmic_core_misc_cfg - * - * This function is used to enable CRC on Primary PMIC which enables - * CRC for I2C1, I2C2, SPI interface of both Primary and Secondary PMIC - * Note: Application shall not do reads and writes of the any - * PMIC registers for at least 2ms to allow the recalculation of the - * register CRC value due to the change - * Valid only for TPS6594x Leo PMIC PG2.0 and LP8764x Hera PMIC PG2.0 - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_enableCRC(Pmic_CoreHandle_t *pPmicCoreHandle) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_fsmEnableI2cTrigger(pPmicCoreHandle, - PMIC_FSM_I2C_TRIGGER2, - PMIC_FSM_I2C_TRIGGER_VAL_1); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pPmicCoreHandle->crcEnable = (bool)true; - } - - return pmicStatus; -} - -/*! - * \brief API to get CRC Status - * - * Requirement: REQ_TAG(PDK-9329) - * Design: did_pmic_crc_status - * Architecture: aid_pmic_core_misc_cfg - * - * This function is used to get the CRC Status based on commMode - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pI2c1SpiCrcStatus [OUT] Pointer to store CRC Status for I2C1/ - * SPI interface - * Valid Vaues \ref Pmic_CrcStatus - * \param pI2c2CrcStatus [OUT] Pointer to store CRC Status for I2C2 - * interface - * Valid Vaues \ref Pmic_CrcStatus - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_getCrcStatus(Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t *pI2c1SpiCrcStatus, - uint8_t *pI2c2CrcStatus) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regVal = 0U; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((NULL == pI2c1SpiCrcStatus) || (NULL == pI2c2CrcStatus))) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (pPmicCoreHandle->commMode > PMIC_INTF_SPI)) - { - pmicStatus = PMIC_ST_ERR_INV_COMM_MODE; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_SERIAL_IF_CONFIG_REGADDR, - ®Val); - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - *pI2c1SpiCrcStatus = Pmic_getBitField( - regVal, - PMIC_SERIAL_IF_CONFIG_I2C1_SPI_CRC_EN_SHIFT, - PMIC_SERIAL_IF_CONFIG_I2C1_SPI_CRC_EN_MASK); - - if(PMIC_INTF_DUAL_I2C == pPmicCoreHandle->commMode) - { - *pI2c2CrcStatus = Pmic_getBitField( - regVal, - PMIC_SERIAL_IF_CONFIG_I2C2_CRC_EN_SHIFT, - PMIC_SERIAL_IF_CONFIG_I2C2_CRC_EN_MASK); - } - } - - return pmicStatus; -} - -/*! - * \brief API to get PMIC Device Information - * - * Requirement: REQ_TAG(PDK-9109), REQ_TAG(PDK-9110), REQ_TAG(PDK-9149), - * REQ_TAG(PDK-9159), REQ_TAG(PDK-9329) - * Design: did_pmic_dev_info_readback - * Architecture: aid_pmic_core_misc_cfg - * - * This function is used to get PMIC Device Information such as - * TI DeviceID, TI NVM ID, TI NVM Revision, TI Silicon Revision, - * Custom NVM ID - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pDeviceInfo [OUT] PMIC Device Information value - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_getDeviceInfo(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_DeviceInfo_t *pDeviceInfo) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regVal; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && (NULL == pDeviceInfo)) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((PMIC_SILICON_REV_ID_PG_2_0 != pPmicCoreHandle->pmicDevSiliconRev) && - (PMIC_SILICON_REV_ID_PG_1_0 != pPmicCoreHandle->pmicDevSiliconRev))) - { - pmicStatus = PMIC_ST_ERR_INV_SILICON_REVISION; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_DEV_REV_REGADDR, - ®Val); - if(PMIC_ST_SUCCESS == pmicStatus) - { - pDeviceInfo->deviceID = - Pmic_getBitField( - regVal, - PMIC_DEV_REV_TI_DEVICE_ID_SILICON_REV_SHIFT, - PMIC_DEV_REV_TI_DEVICE_ID_SILICON_REV_MASK); - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - pDeviceInfo->deviceID = - Pmic_getBitField( - regVal, - PMIC_DEV_REV_TI_DEVICE_ID_PG_2_0_SILICON_REV_SHIFT, - PMIC_DEV_REV_TI_DEVICE_ID_PG_2_0_SILICON_REV_MASK); - } - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_NVM_CODE_1_REGADDR, - &(pDeviceInfo->nvmID)); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_NVM_CODE_2_REGADDR, - &(pDeviceInfo->nvmRev)); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_MANUFACTURING_VER_REGADDR, - ®Val); - - pDeviceInfo->siliconRev = Pmic_getBitField( - regVal, - PMIC_MANUFACTURING_VER_SILICON_REV_SHIFT, - PMIC_MANUFACTURING_VER_SILICON_REV_MASK); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev)) - { - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_CUSTOMER_NVM_ID_REG_REGADDR, - &(pDeviceInfo->customNvmID)); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return pmicStatus; -} - -/*! - * \brief API to set I2C1 or I2C2 Speed based on commMode - * - * Requirement: REQ_TAG(PDK-9129) - * Design: did_pmic_i2c_speed_readback - * Architecture: aid_pmic_core_misc_cfg - * - * This function is used to configure I2C1 speed for Single or Dual I2C - * Interface and I2C2 Speed for Dual I2C Interface based on commMode. - * - * Note: I2C Master before switching the I2C speed to HS/Standard Mode, - * I2C Master has to configure I2C1/I2C2 speed accordingly then only - * I2C Master can communicate with PMIC in HS/Standard Mode - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_setI2CSpeedCfg(Pmic_CoreHandle_t *pPmicCoreHandle) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regVal; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_CONFIG_1_REGADDR, - ®Val); - if(PMIC_ST_SUCCESS == pmicStatus) - { - if((PMIC_INTF_SINGLE_I2C == pPmicCoreHandle->commMode) || - (PMIC_INTF_DUAL_I2C == pPmicCoreHandle->commMode)) - { - Pmic_setBitField(®Val, - PMIC_CONFIG_1_I2C1_HS_SHIFT, - PMIC_CONFIG_1_I2C1_HS_MASK, - pPmicCoreHandle->i2c1Speed); - } - - if(PMIC_INTF_DUAL_I2C == pPmicCoreHandle->commMode) - { - Pmic_setBitField(®Val, - PMIC_CONFIG_1_I2C2_HS_SHIFT, - PMIC_CONFIG_1_I2C2_HS_MASK, - pPmicCoreHandle->i2c2Speed); - } - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_CONFIG_1_REGADDR, - regVal); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return pmicStatus; -} - diff --git a/src/pmic_core_priv.h b/src/pmic_core_priv.h deleted file mode 100644 index 1f0a909..0000000 --- a/src/pmic_core_priv.h +++ /dev/null @@ -1,568 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ - -/** - * \file pmic_core_priv.h - * - * \brief This file contains PMIC Driver specific common API - */ - -#ifndef PMIC_CORE_PRIV_H_ -#define PMIC_CORE_PRIV_H_ - -/* ========================================================================== */ -/* Include Files */ -/* ========================================================================== */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* ========================================================================== */ -/* Macros & Typedefs */ -/* ========================================================================== */ - -/*! - * \brief: PMIC Module Device Revision Infos - */ -/*! PMIC TI Device ID register Address */ -#define PMIC_DEV_REV_REGADDR (0x01U) -/*! PMIC TI NVM ID register Address */ -#define PMIC_NVM_CODE_1_REGADDR (0x02U) -/*! PMIC TI NVM Revision register Address */ -#define PMIC_NVM_CODE_2_REGADDR (0x03U) -/*! PMIC TI Silicon Revision register Address */ -#define PMIC_MANUFACTURING_VER_REGADDR (0xA6U) -/*! PMIC CUSTOMER NVM ID register Address */ -#define PMIC_CUSTOMER_NVM_ID_REG_REGADDR (0xA7U) - -#define PMIC_WDG_LONGWIN_CFG_REGADDR (0x405U) - -/*! - * \brief PMIC STAT_STARTUP register Addresses - */ -#define PMIC_STAT_STARTUP_REGADDR (0x73U) - -/*! - * \brief PMIC STAT_READBACK_ERR register Addresses - */ -#define PMIC_STAT_READBACK_ERR_REGADDR (0x77U) - -/*! - * \brief PMIC PLL_CTRL register Addresses - */ -#define PMIC_PLL_CTRL_REGADDR (0x7CU) - -/*! - * \brief PMIC power Configuration Register Address - */ -#define PMIC_CONFIG_1_REGADDR (0x7DU) - -/*! - * \brief PMIC CONFIG_2 register Addresses - */ -#define PMIC_CONFIG_2_REGADDR (0x7EU) - -/*! - * \brief PMIC ENABLE_DRV register Addresses - */ -#define PMIC_ENABLE_DRV_REG_REGADDR (0x80U) - -/*! - * \brief PMIC MISC Control Register Address - */ -#define PMIC_MISC_CTRL_REGADDR (0x81U) - -/*! - * \brief PMIC ENABLE_DRV_STAT register Addresses - */ -#define PMIC_ENABLE_DRV_STAT_REGADDR (0x82U) - -/*! - * \brief: PMIC Recovery Counter Control and Status Registers - */ -#define PMIC_RECOV_CNT_REG_1_REGADDR (0x83U) -#define PMIC_RECOV_CNT_REG_2_REGADDR (0x84U) - -/*! - * \brief PMIC Spread Spectrum 1 register Addresses - */ -#define PMIC_SPREAD_SPECTRUM_1_REGADDR (0x88U) - -/*! - * \brief PMIC User Spare register Addresses - */ -#define PMIC_USER_SPARE_REGS_REGADDR (0x8EU) - -/*! - * \brief PMIC Register Lock register Addresses - */ -#define PMIC_REGISTER_LOCK_REGADDR (0xA1U) - -/*! - * \brief PMIC Soft Reboot register Addresses - */ -#define PMIC_SOFT_REBOOT_REG_REGADDR (0xABU) - -/*! - * \brief: HERA PMIC StartUP Control Register - */ -#define PMIC_STARTUP_CTRL_REGADDR (0xC3U) - -/*! - * \brief PMIC Scratchpad register Addresses - */ -#define PMIC_SCRATCH_PAD_REG_1_REGADDR (0xC9U) -#define PMIC_SCRATCH_PAD_REG_2_REGADDR (0xCAU) -#define PMIC_SCRATCH_PAD_REG_3_REGADDR (0xCBU) -#define PMIC_SCRATCH_PAD_REG_4_REGADDR (0xCCU) - -/*! - * \brief PMIC invalid register address - */ -#define PMIC_INVALID_REGADDR (0xFFU) - -/*! - * \brief: PMIC SERIAL_IF_CONFIG register address (Bank/Page 1 Register address) - * Application can only read this register to check I2C1SPI/I2C2 CRC - * is enabled or not - */ -#define PMIC_SERIAL_IF_CONFIG_REGADDR (0x11AU) - -/*! - * \brief PMIC invalid BIT SHIFT value - */ -#define PMIC_INVALID_BIT_SHIFT (0xFFU) - -/*! - * \brief PMIC CONFIG_1 register Shift Values - */ -#define PMIC_CONFIG_1_TWARN_LEVEL_SHIFT (0U) -#define PMIC_CONFIG_1_TSD_ORD_LEVEL_SHIFT (1U) -#define PMIC_CONFIG_1_I2C1_HS_SHIFT (3U) -#define PMIC_CONFIG_1_I2C2_HS_SHIFT (4U) -#define PMIC_CONFIG_1_EN_ILIM_FSM_CTRL_SHIFT (5U) -#define PMIC_CONFIG_1_NSLEEP1_MASK_SHIFT (6U) -#define PMIC_CONFIG_1_NSLEEP2_MASK_SHIFT (7U) - -/*! - * \brief: PMIC Recovery Counter Register 1 Shift Values - */ -#define PMIC_RECOV_CNT_REG_1_RECOV_CNT_SHIFT (0x00U) - -/*! - * \brief: PMIC Recovery Counter Register 2 Shift Values - */ -#define PMIC_RECOV_CNT_REG_2_RECOV_CNT_CLR_SHIFT (0x04U) -#define PMIC_RECOV_CNT_REG_2_RECOV_CNT_THR_SHIFT (0x00U) - -/*! - * \brief: HERA PMIC StartUP Shift Values - */ -#define PMIC_STARTUP_CTRL_SKIP_LP_STANDBY_EE_READ_SHIFT (0x02U) -#define PMIC_STARTUP_CTRL_LP_STANDBY_SEL_SHIFT (0x03U) -#define PMIC_STARTUP_CTRL_FAST_BIST_SHIFT (0x04U) -#define PMIC_STARTUP_CTRL_STARTUP_DEST_SHIFT (0x05U) -#define PMIC_STARTUP_CTRL_FIRST_STARTUP_DONE_SHIFT (0x07U) - -/*! - * \brief PMIC StartUp NSLEEP Shift Values - */ -#define PMIC_STARTUP_DEST_NSLEEP2B_SHIFT (0x1U) -#define PMIC_STARTUP_DEST_NSLEEP1B_SHIFT (0x0U) - -/*! - * \brief PMIC MANUFACTURING_VER Register Shift Values - */ -#define PMIC_MANUFACTURING_VER_SILICON_REV_SHIFT (0x0U) - -/*! - * \brief PMIC User Spare Register Shift Values - */ -#define PMIC_USER_SPARE_REGS_USER_SPARE_1_SHIFT (0x0U) -#define PMIC_USER_SPARE_REGS_USER_SPARE_2_SHIFT (0x1U) -#define PMIC_USER_SPARE_REGS_USER_SPARE_3_SHIFT (0x2U) -#define PMIC_USER_SPARE_REGS_USER_SPARE_4_SHIFT (0x3U) - -/*! - * \brief PMIC ENABLE_DRV Register Shift Values - */ -#define PMIC_ENABLE_DRV_REG_ENABLE_DRV_SHIFT (0x0U) - -/*! - * \brief PMIC ENABLE_DRV_STAT Register Shift Values - */ -#define PMIC_ENABLE_DRV_STAT_EN_DRV_IN_SHIFT (0x0U) -#define PMIC_ENABLE_DRV_STAT_NRSTOUT_IN_SHIFT (0x1U) -#define PMIC_ENABLE_DRV_STAT_NRSTOUT_SOC_IN_SHIFT (0x2U) -#define PMIC_ENABLE_DRV_STAT_FORCE_EN_DRV_LOW_SHIFT (0x3U) -#define PMIC_ENABLE_DRV_STAT_SPMI_LPM_EN_SHIFT (0x4U) - -/*! - * \brief PMIC Spread Spectrum 1 Register Shift Values - */ -#define PMIC_SPREAD_SPECTRUM_1_SS_DEPTH_SHIFT (0x0U) -#define PMIC_SPREAD_SPECTRUM_1_SS_EN_SHIFT (0x2U) - -/*! - * \brief PMIC Register Lock Register Shift Values - */ -#define PMIC_REGISTER_LOCK_REGISTER_LOCK_STATUS_SHIFT (0x0U) - -/*! - * \brief PMIC MISC Control Register Shift Values - */ -#define PMIC_MISC_CTRL_NRSTOUT_SHIFT (0x0U) -#define PMIC_MISC_CTRL_NRSTOUT_SOC_SHIFT (0x1U) -#define PMIC_MISC_CTRL_LPM_EN_SHIFT (0x2U) -#define PMIC_MISC_CTRL_CLKMON_EN_SHIFT (0x3U) -#define PMIC_MISC_CTRL_AMUXOUT_REFOUT_EN_SHIFT (0x4U) -#define PMIC_MISC_CTRL_SEL_EXT_CLK_SHIFT (0x5U) -#define PMIC_MISC_CTRL_SYNCCLKOUT_FREQ_SEL_SHIFT (0x6U) - -/*! - * \brief PMIC PLL Control Register Shift Values - */ -#define PMIC_PLL_CTRL_EXT_CLK_FREQ_SHIFT (0x0U) - -/*! - * \brief PMIC CONFIG_2 Register Shift Values - */ -#define PMIC_CONFIG_2_BB_CHARGER_EN_SHIFT (0x0U) -#define PMIC_CONFIG_2_BB_ICHR_SHIFT (0x1U) -#define PMIC_CONFIG_2_BB_VEOC_SHIFT (0x2U) -#define PMIC_CONFIG_2_BB_EOC_RDY_SHIFT (0x7U) - -/*! - * \brief PMIC External Clock Validity status register bit field Shift Values - */ -#define PMIC_STAT_MISC_EXT_CLK_STAT_SHIFT (0x1U) - -/*! - * \brief PMIC ENABLE_STAT register bit field Shift Values - */ -#define PMIC_STAT_STARTUP_ENABLE_STAT_SHIFT (0x1U) - -/*! - * \brief PMIC STAT_READBACK_ERR register Shift Values - */ -#define PMIC_STAT_READBACK_ERR_EN_DRV_READBACK_STAT_SHIFT (0x0U) -#define PMIC_STAT_READBACK_ERR_NINT_READBACK_STAT_SHIFT (0x1U) -#define PMIC_STAT_READBACK_ERR_NRSTOUT_READBACK_STAT_SHIFT (0x2U) -#define PMIC_STAT_READBACK_ERR_NRSTOUT_SOC_READBACK_STAT_SHIFT (0x3U) - -/*! - * \brief PMIC SERIAL_IF_CONFIG register Shift Values - */ -#define PMIC_SERIAL_IF_CONFIG_I2C1_SPI_CRC_EN_SHIFT (0x1U) -#define PMIC_SERIAL_IF_CONFIG_I2C2_CRC_EN_SHIFT (0x2U) - -/*! - * \brief PMIC DEV_REV Register Shift Values - */ -/* Valid only PG 2.0 */ -#define PMIC_DEV_REV_TI_DEVICE_ID_PG_2_0_SILICON_REV_SHIFT (0x1U) -/* Valid only PG 1.0 */ -#define PMIC_DEV_REV_TI_DEVICE_ID_SILICON_REV_SHIFT (0x0U) - -/*! - * \brief: PMIC Recovery Counter Register 1 Mask Values - */ -#define PMIC_RECOV_CNT_REG_1_RECOV_CNT_MASK \ - ((uint8_t)(0x0FU << PMIC_RECOV_CNT_REG_1_RECOV_CNT_SHIFT)) - -/*! - * \brief: PMIC Recovery Counter Register 2 Mask Values - */ -#define PMIC_RECOV_CNT_REG_2_RECOV_CNT_CLR_MASK \ - ((uint8_t)(0x01U << PMIC_RECOV_CNT_REG_2_RECOV_CNT_CLR_SHIFT)) -#define PMIC_RECOV_CNT_REG_2_RECOV_CNT_THR_MASK \ - ((uint8_t)(0x0FU << PMIC_RECOV_CNT_REG_2_RECOV_CNT_THR_SHIFT)) - -/*! - * \brief: HERA PMIC StartUP Mask Values - */ -#define PMIC_STARTUP_CTRL_SKIP_LP_STANDBY_EE_READ_MASK \ - ((uint8_t)(0x01U << PMIC_STARTUP_CTRL_SKIP_LP_STANDBY_EE_READ_SHIFT)) -#define PMIC_STARTUP_CTRL_LP_STANDBY_SEL_MASK \ - ((uint8_t)(0x01U << PMIC_STARTUP_CTRL_LP_STANDBY_SEL_SHIFT)) -#define PMIC_STARTUP_CTRL_FAST_BIST_MASK \ - ((uint8_t)(0x01U << PMIC_STARTUP_CTRL_FAST_BIST_SHIFT)) -#define PMIC_STARTUP_CTRL_STARTUP_DEST_MASK \ - ((uint8_t)(0x03U << PMIC_STARTUP_CTRL_STARTUP_DEST_SHIFT)) -#define PMIC_STARTUP_CTRL_FIRST_STARTUP_DONE_MASK \ - ((uint8_t)(0x01U << PMIC_STARTUP_CTRL_FIRST_STARTUP_DONE_SHIFT)) - -/*! - * \brief PMIC CONFIG_1 register bit masks - */ -#define PMIC_CONFIG_1_TWARN_LEVEL_MASK \ - ((uint8_t)(0x01U << PMIC_CONFIG_1_TWARN_LEVEL_SHIFT)) -#define PMIC_CONFIG_1_TSD_ORD_LEVEL_MASK \ - ((uint8_t)(0x01U << PMIC_CONFIG_1_TSD_ORD_LEVEL_SHIFT)) -#define PMIC_CONFIG_1_I2C1_HS_MASK \ - ((uint8_t)(0x01U << PMIC_CONFIG_1_I2C1_HS_SHIFT)) -#define PMIC_CONFIG_1_I2C2_HS_MASK \ - ((uint8_t)(0x01U << PMIC_CONFIG_1_I2C2_HS_SHIFT)) -#define PMIC_CONFIG_1_EN_ILIM_FSM_CTRL_MASK \ - ((uint8_t)(0x01U << PMIC_CONFIG_1_EN_ILIM_FSM_CTRL_SHIFT)) -#define PMIC_CONFIG_1_NSLEEP1_MASK_MASK \ - ((uint8_t)(0x01U << PMIC_CONFIG_1_NSLEEP1_MASK_SHIFT)) -#define PMIC_CONFIG_1_NSLEEP2_MASK_MASK \ - ((uint8_t)(0x01U << PMIC_CONFIG_1_NSLEEP2_MASK_SHIFT)) - -/*! - * \brief PMIC StartUp NSLEEP Mask Values - */ -#define PMIC_STARTUP_DEST_NSLEEP2B_MASK \ - ((uint8_t)(0x01U << PMIC_STARTUP_DEST_NSLEEP2B_SHIFT)) -#define PMIC_STARTUP_DEST_NSLEEP1B_MASK \ - ((uint8_t)(0x01U << PMIC_STARTUP_DEST_NSLEEP1B_SHIFT)) - -/*! - * \brief PMIC MANUFACTURING_VER Register Mask Values - */ -#define PMIC_MANUFACTURING_VER_SILICON_REV_MASK \ - ((uint8_t)(0x3FU << PMIC_MANUFACTURING_VER_SILICON_REV_SHIFT)) - -/*! - * \brief PMIC User Spare Register Mask Values - */ -#define PMIC_USER_SPARE_REGS_USER_SPARE_1_MASK \ - ((uint8_t)(0x01U << PMIC_USER_SPARE_REGS_USER_SPARE_1_SHIFT)) -#define PMIC_USER_SPARE_REGS_USER_SPARE_2_MASK \ - ((uint8_t)(0x01U << PMIC_USER_SPARE_REGS_USER_SPARE_2_SHIFT)) -#define PMIC_USER_SPARE_REGS_USER_SPARE_3_MASK \ - ((uint8_t)(0x01U << PMIC_USER_SPARE_REGS_USER_SPARE_3_SHIFT)) -#define PMIC_USER_SPARE_REGS_USER_SPARE_4_MASK \ - ((uint8_t)(0x01U << PMIC_USER_SPARE_REGS_USER_SPARE_4_SHIFT)) - -/*! - * \brief PMIC Spread Spectrum 1 Register Mask Values - */ -#define PMIC_SPREAD_SPECTRUM_1_SS_DEPTH_MASK \ - ((uint8_t)(0x03U << PMIC_SPREAD_SPECTRUM_1_SS_DEPTH_SHIFT)) -#define PMIC_SPREAD_SPECTRUM_1_SS_EN_MASK \ - ((uint8_t)(0x01U << PMIC_SPREAD_SPECTRUM_1_SS_EN_SHIFT)) - -/*! - * \brief PMIC ENABLE_DRV Register Mask Values - */ -#define PMIC_ENABLE_DRV_REG_ENABLE_DRV_MASK \ - ((uint8_t)(0x01U << PMIC_ENABLE_DRV_REG_ENABLE_DRV_SHIFT)) - -/*! - * \brief PMIC ENABLE_DRV_STAT Register Mask Values - */ -#define PMIC_ENABLE_DRV_STAT_EN_DRV_IN_MASK \ - ((uint8_t)(0x01U << PMIC_ENABLE_DRV_STAT_EN_DRV_IN_SHIFT)) -#define PMIC_ENABLE_DRV_STAT_NRSTOUT_IN_MASK \ - ((uint8_t)(0x01U << PMIC_ENABLE_DRV_STAT_NRSTOUT_IN_SHIFT)) -#define PMIC_ENABLE_DRV_STAT_NRSTOUT_SOC_IN_MASK \ - ((uint8_t)(0x01U << PMIC_ENABLE_DRV_STAT_NRSTOUT_SOC_IN_SHIFT)) -#define PMIC_ENABLE_DRV_STAT_FORCE_EN_DRV_LOW_MASK \ - ((uint8_t)(0x01U << PMIC_ENABLE_DRV_STAT_FORCE_EN_DRV_LOW_SHIFT)) -#define PMIC_ENABLE_DRV_STAT_SPMI_LPM_EN_MASK \ - ((uint8_t)(0x01U << PMIC_ENABLE_DRV_STAT_SPMI_LPM_EN_SHIFT)) - -/*! - * \brief PMIC Register Lock Register Mask Values - */ -/*! PMIC Register Lock Register Mask Values to read the register lock status */ -#define PMIC_REGISTER_LOCK_REGISTER_LOCK_STATUS_READ_MASK \ - ((uint8_t)(0x01U << PMIC_REGISTER_LOCK_REGISTER_LOCK_STATUS_SHIFT)) - -/*! PMIC Register Lock Register Mask Values to write lock/unlock value to - * register lock register */ -#define PMIC_REGISTER_LOCK_REGISTER_LOCK_STATUS_WRITE_MASK \ - ((uint8_t)(0xFFU << PMIC_REGISTER_LOCK_REGISTER_LOCK_STATUS_SHIFT)) - - - -/*! - * \brief PMIC MISC Control Register Mask Values - */ -#define PMIC_MISC_CTRL_NRSTOUT_MASK \ - ((uint8_t)(0x01U << PMIC_MISC_CTRL_NRSTOUT_SHIFT)) -#define PMIC_MISC_CTRL_NRSTOUT_SOC_MASK \ - ((uint8_t)(0x01U << PMIC_MISC_CTRL_NRSTOUT_SOC_SHIFT)) -#define PMIC_MISC_CTRL_LPM_EN_MASK \ - ((uint8_t)(0x01U << PMIC_MISC_CTRL_LPM_EN_SHIFT)) -#define PMIC_MISC_CTRL_CLKMON_EN_MASK \ - ((uint8_t)(0x01U << PMIC_MISC_CTRL_CLKMON_EN_SHIFT)) -#define PMIC_MISC_CTRL_AMUXOUT_REFOUT_EN_MASK \ - ((uint8_t)(0x01U << PMIC_MISC_CTRL_AMUXOUT_REFOUT_EN_SHIFT)) -#define PMIC_MISC_CTRL_SEL_EXT_CLK_MASK \ - ((uint8_t)(0x01U << PMIC_MISC_CTRL_SEL_EXT_CLK_SHIFT)) -#define PMIC_MISC_CTRL_SYNCCLKOUT_FREQ_SEL_MASK \ - ((uint8_t)(0x03U << PMIC_MISC_CTRL_SYNCCLKOUT_FREQ_SEL_SHIFT)) - -/*! - * \brief PMIC PLL Control Register Mask Values - */ -#define PMIC_PLL_CTRL_EXT_CLK_FREQ_MASK \ - ((uint8_t)(0x03U << PMIC_PLL_CTRL_EXT_CLK_FREQ_SHIFT)) - - -/*! - * \brief PMIC CONFIG_2 Register Mask Values - */ -#define PMIC_CONFIG_2_BB_CHARGER_EN_MASK \ - ((uint8_t)(0x01U << PMIC_CONFIG_2_BB_CHARGER_EN_SHIFT)) -#define PMIC_CONFIG_2_BB_ICHR_MASK \ - ((uint8_t)(0x01U << PMIC_CONFIG_2_BB_ICHR_SHIFT)) -#define PMIC_CONFIG_2_BB_VEOC_MASK \ - ((uint8_t)(0x03U << PMIC_CONFIG_2_BB_VEOC_SHIFT)) -#define PMIC_CONFIG_2_BB_EOC_RDY_MASK \ - ((uint8_t)(0x01U << PMIC_CONFIG_2_BB_EOC_RDY_SHIFT)) - -/*! - * \brief PMIC Extrnal Clock Validity status Mask Values - */ -#define PMIC_STAT_MISC_EXT_CLK_STAT_MASK \ - ((uint8_t)(0x01U << PMIC_STAT_MISC_EXT_CLK_STAT_SHIFT)) - -/*! - * \brief PMIC ENABLE_STAT register bit field Mask Values - */ -#define PMIC_STAT_STARTUP_ENABLE_STAT_MASK \ - ((uint8_t)(0x01U << PMIC_STAT_STARTUP_ENABLE_STAT_SHIFT)) - -/*! - * \brief PMIC STAT_READBACK_ERR register Mask Values - */ -#define PMIC_STAT_READBACK_ERR_EN_DRV_READBACK_STAT_MASK \ - ((uint8_t)(0x01U << PMIC_STAT_READBACK_ERR_EN_DRV_READBACK_STAT_SHIFT)) -#define PMIC_STAT_READBACK_ERR_NINT_READBACK_STAT_MASK \ - ((uint8_t)(0x01U << PMIC_STAT_READBACK_ERR_NINT_READBACK_STAT_SHIFT)) -#define PMIC_STAT_READBACK_ERR_NRSTOUT_READBACK_STAT_MASK \ - ((uint8_t)(0x01U << PMIC_STAT_READBACK_ERR_NRSTOUT_READBACK_STAT_SHIFT)) -#define PMIC_STAT_READBACK_ERR_NRSTOUT_SOC_READBACK_STAT_MASK \ - ((uint8_t)(0x01U << PMIC_STAT_READBACK_ERR_NRSTOUT_SOC_READBACK_STAT_SHIFT)) - -/*! - * \brief PMIC SERIAL_IF_CONFIG register Mask Values - */ -#define PMIC_SERIAL_IF_CONFIG_I2C1_SPI_CRC_EN_MASK \ - ((uint8_t)(0x01U << PMIC_SERIAL_IF_CONFIG_I2C1_SPI_CRC_EN_SHIFT)) -#define PMIC_SERIAL_IF_CONFIG_I2C2_CRC_EN_MASK \ - ((uint8_t)(0x01U << PMIC_SERIAL_IF_CONFIG_I2C2_CRC_EN_SHIFT)) - -/*! - * \brief PMIC DEV_REV Register Mask Values - */ -/* Valid only PG 2.0 */ -#define PMIC_DEV_REV_TI_DEVICE_ID_PG_2_0_SILICON_REV_MASK \ - ((uint8_t)(0x7FU << PMIC_DEV_REV_TI_DEVICE_ID_PG_2_0_SILICON_REV_SHIFT)) -/* Valid only PG 1.0 */ -#define PMIC_DEV_REV_TI_DEVICE_ID_SILICON_REV_MASK \ - ((uint8_t)(0xFFU << PMIC_DEV_REV_TI_DEVICE_ID_SILICON_REV_SHIFT)) - -/*! - * \brief: PMIC Recovery Counter Threshold Max Value - */ -#define PMIC_RECOV_CNT_THR_MAX (0x0FU) - -/*==========================================================================*/ -/* Structures and Enums */ -/*==========================================================================*/ - -/*==========================================================================*/ -/* Function Declarations */ -/*==========================================================================*/ - -/*! - * \brief This function is used to write a specific bit field value - */ -static inline void Pmic_setBitField(uint8_t *pRegVal, - uint8_t regFieldShift, - uint8_t regFieldMask, - uint8_t fieldVal) -{ - *pRegVal = (((*pRegVal) & (uint8_t) (~(uint8_t) regFieldMask)) | \ - ((((uint8_t) fieldVal) << (uint8_t) regFieldShift) & \ - (uint8_t) regFieldMask)); -} - -/*! - * \brief This function is used to read a specific bit field value - */ -static inline uint8_t Pmic_getBitField(uint8_t regData, - uint8_t regFieldShift, - uint8_t regFieldMask) -{ - uint8_t fieldVal; - - fieldVal = (((regData) & (uint8_t) regFieldMask) >> \ - (uint8_t) regFieldShift); - - return fieldVal; -} - -/*! - * \brief: Checks the validParam bit position is set or not in validParamVal - * This function checks the given bit position is being set or not in - * the validParamVal argument - * - * \param validParamVal [IN] Valid param value - * \param bitPos [IN] bit position value - * - * \retval Return true if the given bit pos is set, else return false - */ -bool pmic_validParamCheck(uint32_t validParamVal, uint8_t bitPos); - -/*! - * \brief: Function call wrapper to lock PMIC LLD critical section - * This function locks to critical area by calling registred locking - * mechanism using pmic core handle. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - */ -void Pmic_criticalSectionStart(const Pmic_CoreHandle_t *pPmicCoreHandle); - -/*! - * \brief: Function call wrapper to unlock PMIC LLD critical section - * This function unlocks to critical area by calling registred locking - * mechanism using pmic core handle. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - */ -void Pmic_criticalSectionStop(const Pmic_CoreHandle_t *pPmicCoreHandle); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* PMIC_CORE_PRIV_H_ */ diff --git a/src/pmic_esm.c b/src/pmic_esm.c deleted file mode 100644 index c535e80..0000000 --- a/src/pmic_esm.c +++ /dev/null @@ -1,1742 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ - -/** -* \file pmic_esm.c -* -* \brief This file contains the default APIs for PMIC ESM -* configuration. -* -*/ - -#include -#include -#include -#include - -#include -#include -#include - -/*! - * \brief This function returns the corresponding uint8 value - */ -static uint8_t Pmic_esmGetU8Val(bool esmVal) -{ - uint8_t esmU8Val = 0U; - - if(((bool)true) == esmVal) - { - esmU8Val = 1U; - } - - return esmU8Val; -} - -/*! - * \brief This function is used to validate whether ESM subsystem is valid - * for the programmed pmic device and does the NULL param check for - * pPmicCoreHandle. - */ -static int32_t Pmic_esmValidateParams(const Pmic_CoreHandle_t *pPmicCoreHandle) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)false) == pPmicCoreHandle->pPmic_SubSysInfo->esmEnable)) - { - pmicStatus = PMIC_ST_ERR_INV_DEVICE; - } - - return pmicStatus; -} - -/*! - * \brief This function is used to get the ESM_MCU/ESM_SOC Base Register - * address - */ -static void Pmic_esmGetBaseRegAddr(const bool esmType, - uint8_t *pEsmBaseAddr) -{ - if(0U != Pmic_esmGetU8Val(esmType)) - { - (*pEsmBaseAddr) = PMIC_ESM_SOC_BASE_REGADDR; - } - else - { - (*pEsmBaseAddr) = PMIC_ESM_MCU_BASE_REGADDR; - } -} - -/*! - * \brief This function is used to check the Device used. - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - */ -static int32_t Pmic_esmDeviceCheck(const Pmic_CoreHandle_t *pPmicCoreHandle, - const bool esmType) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - switch(pPmicCoreHandle->pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - if(((bool)true) == esmType) - { - pmicStatus = PMIC_ST_ERR_INV_DEVICE; - } - else - { - pmicStatus = PMIC_ST_SUCCESS; - } - - break; - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - pmicStatus = PMIC_ST_SUCCESS; - break; - } - - return pmicStatus; -} - -/*! - * \brief This function is used to check the current state of ESM - * (Start/Stop State) - */ -static int32_t Pmic_esmCheckState(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t esmBaseRegAddr) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regAddr = 0U; - uint8_t regData = 0U; - - regAddr = (esmBaseRegAddr + PMIC_ESM_START_REG_OFFSET); - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - regAddr, - ®Data); - - if((PMIC_ST_SUCCESS == pmicStatus) && - (Pmic_getBitField(regData, - PMIC_ESM_X_START_REG_ESM_X_START_SHIFT, - PMIC_ESM_X_START_REG_ESM_X_START_MASK) - == PMIC_ESM_VAL_1)) - { - pmicStatus = PMIC_ST_ERR_ESM_STARTED; - } - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - return pmicStatus; -} - -/*! - * \brief This function is used to Start ESM_MCU/ESM_SOC - */ -static int32_t Pmic_esmXStart(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t esmBaseRegAddr, - const bool esmState) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regAddr = 0U; - uint8_t regData = 0U; - uint8_t esmU8Val = 0U; - - regAddr = (esmBaseRegAddr + PMIC_ESM_START_REG_OFFSET); - esmU8Val = Pmic_esmGetU8Val(esmState); - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Read the PMIC ESM_MCU/ESM_SOC START Register */ - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - regAddr, - ®Data); - - /* Write 0 or 1 to ESM_MCU/ESM_SOC START BIT to Start/Stop ESM */ - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_setBitField(®Data, - PMIC_ESM_X_START_REG_ESM_X_START_SHIFT, - PMIC_ESM_X_START_REG_ESM_X_START_MASK, - esmU8Val); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - regAddr, - regData); - } - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - return pmicStatus; -} - -/*! - * \brief This function is used to Enable ESM_MCU/ESM_SOC - */ -static int32_t Pmic_esmXEnable(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t esmBaseRegAddr, - const bool esmToggle) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regAddr = 0U; - uint8_t regData = 0U; - uint8_t esmU8Val = 0U; - - /* Check if ESM is started */ - pmicStatus = Pmic_esmCheckState(pPmicCoreHandle, esmBaseRegAddr); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - regAddr = (esmBaseRegAddr + PMIC_ESM_MODE_CFG_REG_OFFSET); - esmU8Val = Pmic_esmGetU8Val(esmToggle); - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Read the PMIC ESM MODE CFG Register */ - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - regAddr, - ®Data); - - /* Configure ESM_X_EN(where X is ESM_MCU or ESM_SOC) Bit to enable - * or Disable. - */ - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_setBitField(®Data, - PMIC_ESM_X_MODE_CFG_ESM_X_EN_SHIFT, - PMIC_ESM_X_MODE_CFG_ESM_X_EN_MASK, - esmU8Val); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - regAddr, - regData); - } - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return pmicStatus; -} - -/*! - * \brief This function is used to Enable/Disable PMIC ESM SOC Interrupts - */ -static int32_t Pmic_esmSocIntrEnable(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_EsmIntrCfg_t esmIntrCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - /* Mask/Un-mask ESM SOC Interrupts */ - - pmicStatus = Pmic_irqMaskIntr(pPmicCoreHandle, - PMIC_TPS6594X_ESM_SOC_PIN_INT, - !esmIntrCfg.esmPinIntr); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_irqMaskIntr(pPmicCoreHandle, - PMIC_TPS6594X_ESM_SOC_FAIL_INT, - !esmIntrCfg.esmFailIntr); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - - pmicStatus = Pmic_irqMaskIntr(pPmicCoreHandle, - PMIC_TPS6594X_ESM_SOC_RST_INT, - !esmIntrCfg.esmRstIntr); - } - - return pmicStatus; -} - -/*! - * \brief This function is used to Enable/Disable PMIC ESM Interrupts. - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - */ -static int32_t Pmic_esmIntrEnable(Pmic_CoreHandle_t *pPmicCoreHandle, - const bool esmType, - const Pmic_EsmIntrCfg_t esmIntrCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - switch(pPmicCoreHandle->pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - pmicStatus = Pmic_irqMaskIntr(pPmicCoreHandle, - PMIC_LP8764X_ESM_MCU_PIN_INT, - !esmIntrCfg.esmPinIntr); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_irqMaskIntr(pPmicCoreHandle, - PMIC_LP8764X_ESM_MCU_FAIL_INT, - !esmIntrCfg.esmFailIntr); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_irqMaskIntr(pPmicCoreHandle, - PMIC_LP8764X_ESM_MCU_RST_INT, - !esmIntrCfg.esmRstIntr); - } - - break; - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - if(PMIC_ESM_MODE_MCU == esmType) - { - pmicStatus = Pmic_irqMaskIntr(pPmicCoreHandle, - PMIC_TPS6594X_ESM_MCU_PIN_INT, - !esmIntrCfg.esmPinIntr); - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_irqMaskIntr(pPmicCoreHandle, - PMIC_TPS6594X_ESM_MCU_FAIL_INT, - !esmIntrCfg.esmFailIntr); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_irqMaskIntr(pPmicCoreHandle, - PMIC_TPS6594X_ESM_MCU_RST_INT, - !esmIntrCfg.esmRstIntr); - } - } - else - { - /* Mask/Un-mask ESM SOC Interrupts */ - pmicStatus = Pmic_esmSocIntrEnable(pPmicCoreHandle, - esmIntrCfg); - } - - break; - } - - return pmicStatus; -} - -/*! - * \brief This function is used to Set the ESM DELAY1 value - */ -static int32_t Pmic_esmSetDelay1Value(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_EsmCfg_t esmCfg, - const uint8_t esmBaseRegAddr) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t regAddr = 0U; - - regAddr = (esmBaseRegAddr + PMIC_ESM_DELAY1_REG_OFFSET); - - if(PMIC_ESM_DELAY_MICROSEC_MAX < esmCfg.esmDelay1_us) - { - pmicStatus = PMIC_ST_ERR_INV_ESM_VAL; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - regData = (uint8_t)(esmCfg.esmDelay1_us / PMIC_ESM_DELAY_MICROSEC_DIV); - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - regAddr, - regData); - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return pmicStatus; -} - -/*! - * \brief This function is used to Set the ESM DELAY2 value - */ -static int32_t Pmic_esmSetDelay2Value(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_EsmCfg_t esmCfg, - const uint8_t esmBaseRegAddr) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t regAddr = 0U; - - regAddr = (esmBaseRegAddr + PMIC_ESM_DELAY2_REG_OFFSET); - - if(PMIC_ESM_DELAY_MICROSEC_MAX < esmCfg.esmDelay2_us) - { - pmicStatus = PMIC_ST_ERR_INV_ESM_VAL; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - regData = (uint8_t)(esmCfg.esmDelay2_us / PMIC_ESM_DELAY_MICROSEC_DIV); - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - regAddr, - regData); - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return pmicStatus; -} - -/*! - * \brief This function is used to Set the ESM Error Count Threshold value - */ -static int32_t Pmic_esmSetErrCntThrValue(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_EsmCfg_t esmCfg, - const uint8_t esmBaseRegAddr) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t regAddr = 0U; - - regAddr = (esmBaseRegAddr + PMIC_ESM_MODE_CFG_REG_OFFSET); - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - regAddr, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_setBitField(®Data, - PMIC_ESM_X_MODE_CFG_ESM_X_ERR_CNT_TH_SHIFT, - PMIC_ESM_X_MODE_CFG_ESM_X_ERR_CNT_TH_MASK, - esmCfg.esmErrCntThr); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - regAddr, - regData); - } - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - return pmicStatus; -} - -/*! - * \brief This function is used to Set the ESM HMAX value - */ -static int32_t Pmic_esmSetHmaxValue(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_EsmCfg_t esmCfg, - const uint8_t esmBaseRegAddr) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t regAddr = 0U; - - regAddr = (esmBaseRegAddr + PMIC_ESM_HMAX_REG_OFFSET); - - if((PMIC_ESM_PWM_PULSE_MICROSEC_MAX < esmCfg.esmHmax_us) || - (PMIC_ESM_PWM_PULSE_MICROSEC_MIN > esmCfg.esmHmax_us)) - { - pmicStatus = PMIC_ST_ERR_INV_ESM_VAL; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - regData = (uint8_t)((esmCfg.esmHmax_us - PMIC_ESM_PWM_PULSE_MICROSEC_MIN) / - PMIC_ESM_PWM_PULSE_MICROSEC_DIV); - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - regAddr, - regData); - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return pmicStatus; -} - -/*! - * \brief This function is used to Set the ESM HMIN value - */ -static int32_t Pmic_esmSetHminValue(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_EsmCfg_t esmCfg, - const uint8_t esmBaseRegAddr) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t regAddr = 0U; - - regAddr = (esmBaseRegAddr + PMIC_ESM_HMIN_REG_OFFSET); - - if((PMIC_ESM_PWM_PULSE_MICROSEC_MAX < esmCfg.esmHmin_us) || - (PMIC_ESM_PWM_PULSE_MICROSEC_MIN > esmCfg.esmHmin_us)) - { - pmicStatus = PMIC_ST_ERR_INV_ESM_VAL; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - regData = (uint8_t)((esmCfg.esmHmin_us - PMIC_ESM_PWM_PULSE_MICROSEC_MIN) / - PMIC_ESM_PWM_PULSE_MICROSEC_DIV); - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - regAddr, - regData); - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return pmicStatus; -} - -/*! - * \brief This function is used to Set the ESM LMAX value - */ -static int32_t Pmic_esmSetLmaxValue(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_EsmCfg_t esmCfg, - const uint8_t esmBaseRegAddr) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t regAddr = 0U; - - regAddr = (esmBaseRegAddr + PMIC_ESM_LMAX_REG_OFFSET); - - if((PMIC_ESM_PWM_PULSE_MICROSEC_MAX < esmCfg.esmLmax_us) || - (PMIC_ESM_PWM_PULSE_MICROSEC_MIN > esmCfg.esmLmax_us)) - { - pmicStatus = PMIC_ST_ERR_INV_ESM_VAL; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - regData = (uint8_t)((esmCfg.esmLmax_us - PMIC_ESM_PWM_PULSE_MICROSEC_MIN) / - PMIC_ESM_PWM_PULSE_MICROSEC_DIV); - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - regAddr, - regData); - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return pmicStatus; -} - -/*! - * \brief This function is used to Set the ESM LMIN value - */ -static int32_t Pmic_esmSetLminValue(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_EsmCfg_t esmCfg, - const uint8_t esmBaseRegAddr) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t regAddr = 0U; - - regAddr = (esmBaseRegAddr + PMIC_ESM_LMIN_REG_OFFSET); - - if((PMIC_ESM_PWM_PULSE_MICROSEC_MAX < esmCfg.esmLmin_us) || - (PMIC_ESM_PWM_PULSE_MICROSEC_MIN > esmCfg.esmLmin_us)) - { - pmicStatus = PMIC_ST_ERR_INV_ESM_VAL; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - regData = (uint8_t)((esmCfg.esmLmin_us - PMIC_ESM_PWM_PULSE_MICROSEC_MIN) / - PMIC_ESM_PWM_PULSE_MICROSEC_DIV); - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - regAddr, - regData); - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return pmicStatus; -} - -/*! - * \brief This function is used to configure the ESM EN DRV clear - */ -static int32_t Pmic_esmSetEnDrvValue(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_EsmCfg_t esmCfg, - const uint8_t esmBaseRegAddr) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t regAddr = 0U; - uint8_t esmU8Val = 0U; - - regAddr = (esmBaseRegAddr + PMIC_ESM_MODE_CFG_REG_OFFSET); - esmU8Val = Pmic_esmGetU8Val(esmCfg.esmEnDrv); - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - regAddr, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_setBitField(®Data, - PMIC_ESM_X_MODE_CFG_ESM_X_ENDRV_SHIFT, - PMIC_ESM_X_MODE_CFG_ESM_X_ENDRV_MASK, - esmU8Val); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - regAddr, - regData); - } - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - return pmicStatus; -} - -/*! - * \brief This function is used to Set the ESM Mode - */ -static int32_t Pmic_esmSetMode(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_EsmCfg_t esmCfg, - const uint8_t esmBaseRegAddr) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t regAddr = 0U; - uint8_t esmU8Val = 0U; - - regAddr = (esmBaseRegAddr + PMIC_ESM_MODE_CFG_REG_OFFSET); - esmU8Val = Pmic_esmGetU8Val(esmCfg.esmMode); - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - regAddr, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_setBitField(®Data, - PMIC_ESM_X_MODE_CFG_ESM_X_MODE_SHIFT, - PMIC_ESM_X_MODE_CFG_ESM_X_MODE_MASK, - esmU8Val); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - regAddr, - regData); - } - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - return pmicStatus; -} - -/*! - * \brief This function is used to Get the configured ESM DELAY1 value - */ -static int32_t Pmic_esmGetDelay1Value(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_EsmCfg_t *pEsmCfg, - const uint8_t esmBaseRegAddr) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t regAddr = 0U; - - regAddr = (esmBaseRegAddr + PMIC_ESM_DELAY1_REG_OFFSET); - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - regAddr, - ®Data); - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pEsmCfg->esmDelay1_us = ((uint32_t)regData * PMIC_ESM_DELAY_MICROSEC_DIV); - } - - return pmicStatus; -} - -/*! - * \brief This function is used to Get the configured ESM DELAY2 value - */ -static int32_t Pmic_esmGetDelay2Value(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_EsmCfg_t *pEsmCfg, - const uint8_t esmBaseRegAddr) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t regAddr = 0U; - - regAddr = (esmBaseRegAddr + PMIC_ESM_DELAY2_REG_OFFSET); - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - regAddr, - ®Data); - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pEsmCfg->esmDelay2_us = ((uint32_t)regData * - PMIC_ESM_DELAY_MICROSEC_DIV); - } - - return pmicStatus; -} - -/*! - * \brief This function is used to Get the configured ESM Error count - * threshold value - */ -static int32_t Pmic_esmGetErrCntThrValue(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_EsmCfg_t *pEsmCfg, - const uint8_t esmBaseRegAddr) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t regAddr = 0U; - - regAddr = (esmBaseRegAddr + PMIC_ESM_MODE_CFG_REG_OFFSET); - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - regAddr, - ®Data); - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pEsmCfg->esmErrCntThr = Pmic_getBitField(regData, - PMIC_ESM_X_MODE_CFG_ESM_X_ERR_CNT_TH_SHIFT, - PMIC_ESM_X_MODE_CFG_ESM_X_ERR_CNT_TH_MASK); - } - - return pmicStatus; -} - -/*! - * \brief This function is used to Get the configured ESM HMAX value - */ -static int32_t Pmic_esmGetHmaxValue(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_EsmCfg_t *pEsmCfg, - const uint8_t esmBaseRegAddr) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t regAddr = 0U; - - regAddr = (esmBaseRegAddr + PMIC_ESM_HMAX_REG_OFFSET); - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - regAddr, - ®Data); - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pEsmCfg->esmHmax_us = ((((uint16_t)regData) * - PMIC_ESM_PWM_PULSE_MICROSEC_DIV) + - ((uint16_t)PMIC_ESM_PWM_PULSE_MICROSEC_MIN)); - } - - return pmicStatus; -} - -/*! - * \brief This function is used to Get the configured ESM HMIN value - */ -static int32_t Pmic_esmGetHminValue(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_EsmCfg_t *pEsmCfg, - const uint8_t esmBaseRegAddr) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t regAddr = 0U; - - regAddr = (esmBaseRegAddr + PMIC_ESM_HMIN_REG_OFFSET); - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - regAddr, - ®Data); - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pEsmCfg->esmHmin_us = ((((uint16_t)regData) * - PMIC_ESM_PWM_PULSE_MICROSEC_DIV) + - ((uint16_t)PMIC_ESM_PWM_PULSE_MICROSEC_MIN)); - } - - return pmicStatus; -} - -/*! - * \brief This function is used to Get the configured ESM LMAX value - */ -static int32_t Pmic_esmGetLmaxValue(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_EsmCfg_t *pEsmCfg, - const uint8_t esmBaseRegAddr) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t regAddr = 0U; - - regAddr = (esmBaseRegAddr + PMIC_ESM_LMAX_REG_OFFSET); - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - regAddr, - ®Data); - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pEsmCfg->esmLmax_us = ((((uint16_t)regData) * - PMIC_ESM_PWM_PULSE_MICROSEC_DIV) + - ((uint16_t)PMIC_ESM_PWM_PULSE_MICROSEC_MIN)); - } - - return pmicStatus; -} - -/*! - * \brief This function is used to Get the configured ESM LMIN value - */ -static int32_t Pmic_esmGetLminValue(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_EsmCfg_t *pEsmCfg, - const uint8_t esmBaseRegAddr) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t regAddr = 0U; - - regAddr = (esmBaseRegAddr + PMIC_ESM_LMIN_REG_OFFSET); - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - regAddr, - ®Data); - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pEsmCfg->esmLmin_us = ((((uint16_t)regData) * - PMIC_ESM_PWM_PULSE_MICROSEC_DIV) + - ((uint16_t)PMIC_ESM_PWM_PULSE_MICROSEC_MIN)); - } - - return pmicStatus; -} - -/*! - * \brief This function is used to Get the configured ESM EN DRV bit - */ -static int32_t Pmic_esmGetEnDrvValue(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_EsmCfg_t *pEsmCfg, - const uint8_t esmBaseRegAddr) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t regAddr = 0U; - uint8_t bitFieldVal = 0U; - - regAddr = (esmBaseRegAddr + PMIC_ESM_MODE_CFG_REG_OFFSET); - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - regAddr, - ®Data); - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - bitFieldVal = Pmic_getBitField(regData, - PMIC_ESM_X_MODE_CFG_ESM_X_ENDRV_SHIFT, - PMIC_ESM_X_MODE_CFG_ESM_X_ENDRV_MASK); - if(bitFieldVal != 0U) - { - pEsmCfg->esmEnDrv = (bool)true; - } - else - { - pEsmCfg->esmEnDrv = (bool)false; - } - - } - - return pmicStatus; -} - -/*! - * \brief This function is used to Get the configured ESM Mode - */ -static int32_t Pmic_esmGetModeValue(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_EsmCfg_t *pEsmCfg, - const uint8_t esmBaseRegAddr) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t regAddr = 0U; - uint8_t bitFieldVal = 0U; - - regAddr = (esmBaseRegAddr + PMIC_ESM_MODE_CFG_REG_OFFSET); - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - regAddr, - ®Data); - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - bitFieldVal = Pmic_getBitField(regData, - PMIC_ESM_X_MODE_CFG_ESM_X_MODE_SHIFT, - PMIC_ESM_X_MODE_CFG_ESM_X_MODE_MASK); - if(bitFieldVal != 0U) - { - pEsmCfg->esmMode = (bool)true; - } - else - { - pEsmCfg->esmMode = (bool)false; - } - - } - - return pmicStatus; -} - -/*! - * \brief API to start PMIC ESM. - * - * Requirement: REQ_TAG(PDK-5833) - * Design: did_pmic_esm_cfg_readback - * Architecture: aid_pmic_esm_cfg - * - * This function is used to Start/Stop the PMIC ESM_MCU/ESM_SOC - * Note: Application has to ensure to do proper configuration of ESM - * time intervals of Level or PWM mode.If not configured - * properly then ESM will trigger the warm reset to the PMIC - * device. This may cause system reset if PMIC is connected to - * SOC/MCU - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param esmType [IN] PMIC ESM Type - * For valid values: - * \ref Pmic_EsmTypes - * \param esmState [IN] To start or stop PMIC ESM - * For valid values: - * \ref Pmic_EsmStates - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_esmStart(Pmic_CoreHandle_t *pPmicCoreHandle, - const bool esmType, - const bool esmState) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t esmBaseRegAddr = 0U; - - pmicStatus = Pmic_esmValidateParams(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_esmDeviceCheck(pPmicCoreHandle, esmType); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_esmGetBaseRegAddr(esmType, &esmBaseRegAddr); - pmicStatus = Pmic_esmXStart(pPmicCoreHandle, - esmBaseRegAddr, - esmState); - } - - return pmicStatus; -} - -/*! - * \brief API to Enable/Disable PMIC ESM. - * - * Requirement: REQ_TAG(PDK-5833) - * Design: did_pmic_esm_cfg_readback - * Architecture: aid_pmic_esm_cfg - * - * This function is used to Enable/Disable the PMIC ESM_MCU/ESM_SOC - * This API must be called only when ESM is in STOP state. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param esmType [IN] PMIC ESM Type - * For valid values: - * \ref Pmic_EsmTypes - * \param esmToggle [IN] To Enable/Disable PMIC ESM_MCU/ESM_SOC - * For valid values: - * \ref Pmic_EsmToggle - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_esmEnable(Pmic_CoreHandle_t *pPmicCoreHandle, - const bool esmType, - const bool esmToggle) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t esmBaseRegAddr = 0U; - - pmicStatus = Pmic_esmValidateParams(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_esmDeviceCheck(pPmicCoreHandle, esmType); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_esmGetBaseRegAddr(esmType, &esmBaseRegAddr); - pmicStatus = Pmic_esmXEnable(pPmicCoreHandle, - esmBaseRegAddr, - esmToggle); - } - - return pmicStatus; -} - -/*! - * \brief API to Read PMIC ESM Enable/Disable state. - * - * Requirement: REQ_TAG(PDK-5833) - * Design: did_pmic_esm_cfg_readback - * Architecture: aid_pmic_esm_cfg - * - * This function is used to read the Enable/Disable state of - * PMIC ESM_MCU/ESM_SOC. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param esmType [IN] PMIC ESM Type - * For valid values: - * \ref Pmic_EsmTypes - * \param pEsmState [OUT] Pointer to store ESM Enable State. - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_esmGetEnableState(Pmic_CoreHandle_t *pPmicCoreHandle, - const bool esmType, - bool *pEsmState) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t esmBaseRegAddr = 0U; - uint8_t regAddr = 0U; - uint8_t regData = 0U; - - pmicStatus = Pmic_esmValidateParams(pPmicCoreHandle); - - if((PMIC_ST_SUCCESS == pmicStatus) && (NULL == pEsmState)) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_esmDeviceCheck(pPmicCoreHandle, esmType); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_esmGetBaseRegAddr(esmType, &esmBaseRegAddr); - regAddr = (esmBaseRegAddr + PMIC_ESM_MODE_CFG_REG_OFFSET); - *pEsmState = (bool)false; - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - regAddr, - ®Data); - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if((PMIC_ST_SUCCESS == pmicStatus) && - (Pmic_getBitField(regData, - PMIC_ESM_X_MODE_CFG_ESM_X_EN_SHIFT, - PMIC_ESM_X_MODE_CFG_ESM_X_EN_MASK) - == PMIC_ESM_VAL_1)) - { - *pEsmState = (bool)true; - } - } - - return pmicStatus; -} - -/*! - * \brief This function is used to Set the ESM Error Count Threshold value, - * ESM EN DRV clear and ESM Mode configuration - */ -static int32_t Pmic_esmSetErrcntthresholdEndrvClrModeCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_EsmCfg_t esmCfg, - const uint8_t esmBaseRegAddr) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(((bool)true) == pmic_validParamCheck(esmCfg.validParams, - PMIC_ESM_CFG_ERR_CNT_THR_VALID)) - { - if(PMIC_ESM_ERR_CNT_THR_MAX < esmCfg.esmErrCntThr) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_esmSetErrCntThrValue(pPmicCoreHandle, - esmCfg, - esmBaseRegAddr); - } - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(esmCfg.validParams, - PMIC_ESM_CFG_EN_DRV_VALID))) - { - /* Set ESM EN DRV */ - pmicStatus = Pmic_esmSetEnDrvValue(pPmicCoreHandle, - esmCfg, - esmBaseRegAddr); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(esmCfg.validParams, - PMIC_ESM_CFG_MODE_VALID))) - { - /* Set ESM Mode */ - pmicStatus = Pmic_esmSetMode(pPmicCoreHandle, - esmCfg, - esmBaseRegAddr); - } - - return pmicStatus; -} - -/*! - * \brief This function is used to Set the ESM HMAX, HMIN, LMAX, & LMIN value - * configuration - */ -static int32_t Pmic_esmSetHmaxHminLmaxLminCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_EsmCfg_t esmCfg, - const uint8_t esmBaseRegAddr) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(((bool)true) == pmic_validParamCheck(esmCfg.validParams, - PMIC_ESM_CFG_HMAX_VALID)) - { - pmicStatus = Pmic_esmSetHmaxValue(pPmicCoreHandle, - esmCfg, - esmBaseRegAddr); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(esmCfg.validParams, - PMIC_ESM_CFG_HMIN_VALID))) - { - pmicStatus = Pmic_esmSetHminValue(pPmicCoreHandle, - esmCfg, - esmBaseRegAddr); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(esmCfg.validParams, - PMIC_ESM_CFG_LMAX_VALID))) - { - pmicStatus = Pmic_esmSetLmaxValue(pPmicCoreHandle, - esmCfg, - esmBaseRegAddr); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(esmCfg.validParams, - PMIC_ESM_CFG_LMIN_VALID))) - { - pmicStatus = Pmic_esmSetLminValue(pPmicCoreHandle, - esmCfg, - esmBaseRegAddr); - } - - return pmicStatus; -} - -/*! - * \brief This function is used to set the ESM mode, delay-1 and delay-2 time - * time intervals, Error Count Threshold value, HMAX, HMIN, LMAX, - * LMIN and select EN DRV clear for ESM_MCU and ESM_SOC. - */ -static int32_t Pmic_esmSetConfig(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_EsmCfg_t esmCfg, - const uint8_t esmBaseRegAddr) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(((bool)true) == pmic_validParamCheck(esmCfg.validParams, - PMIC_ESM_CFG_DELAY1_VALID)) - { - pmicStatus = Pmic_esmSetDelay1Value(pPmicCoreHandle, - esmCfg, - esmBaseRegAddr); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(esmCfg.validParams, - PMIC_ESM_CFG_DELAY2_VALID))) - { - pmicStatus = Pmic_esmSetDelay2Value(pPmicCoreHandle, - esmCfg, - esmBaseRegAddr); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_esmSetErrcntthresholdEndrvClrModeCfg(pPmicCoreHandle, - esmCfg, - esmBaseRegAddr); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_esmSetHmaxHminLmaxLminCfg(pPmicCoreHandle, - esmCfg, - esmBaseRegAddr); - } - - return pmicStatus; -} - -/*! - * \brief API to Set PMIC ESM Configuration. - * - * Requirement: REQ_TAG(PDK-5833) - * Design: did_pmic_esm_cfg_readback - * Architecture: aid_pmic_esm_cfg - * - * This function is used to set the ESM mode, delay-1 and delay-2 time - * time intervals, Error Count Threshold value, HMAX, HMIN, LMAX, - * LMIN and select EN DRV clear for ESM_MCU and ESM_SOC. - * This API must be called only when ESM is in STOP State. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param esmType [IN] PMIC ESM Type - * For valid values: - * \ref Pmic_EsmTypes - * \param esmCfg [IN] PMIC ESM Configuration - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_esmSetConfiguration(Pmic_CoreHandle_t *pPmicCoreHandle, - const bool esmType, - const Pmic_EsmCfg_t esmCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t esmBaseRegAddr = 0U; - - pmicStatus = Pmic_esmValidateParams(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_esmDeviceCheck(pPmicCoreHandle, esmType); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && (0U == esmCfg.validParams)) - { - pmicStatus = PMIC_ST_ERR_INSUFFICIENT_CFG; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_esmGetBaseRegAddr(esmType, &esmBaseRegAddr); - pmicStatus = Pmic_esmCheckState(pPmicCoreHandle, esmBaseRegAddr); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_esmSetConfig(pPmicCoreHandle, esmCfg, esmBaseRegAddr); - } - - return pmicStatus; -} - -/*! - * \brief This function is used to Get the ESM HMAX, HMIN, LMAX, & LMIN value - */ -static int32_t Pmic_esmGetHmaxHminLmaxLminCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_EsmCfg_t *pEsmCfg, - const uint8_t esmBaseRegAddr) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(((bool)true) == pmic_validParamCheck(pEsmCfg->validParams, - PMIC_ESM_CFG_HMAX_VALID)) - { - pmicStatus = Pmic_esmGetHmaxValue(pPmicCoreHandle, - pEsmCfg, - esmBaseRegAddr); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pEsmCfg->validParams, - PMIC_ESM_CFG_HMIN_VALID))) - { - pmicStatus = Pmic_esmGetHminValue(pPmicCoreHandle, - pEsmCfg, - esmBaseRegAddr); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pEsmCfg->validParams, - PMIC_ESM_CFG_LMAX_VALID))) - { - pmicStatus = Pmic_esmGetLmaxValue(pPmicCoreHandle, - pEsmCfg, - esmBaseRegAddr); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pEsmCfg->validParams, - PMIC_ESM_CFG_LMIN_VALID))) - { - pmicStatus = Pmic_esmGetLminValue(pPmicCoreHandle, - pEsmCfg, - esmBaseRegAddr); - } - - return pmicStatus; -} - -/*! - * \brief This function is used to to get the configured ESM mode, delay-1 and - * delay-2 time time intervals, Error Count Threshold value, HMAX, - * HMIN, LMAX, LMIN and select EN DRV clear for ESM_MCU and ESM_SOC - */ -static int32_t Pmic_esmGetConfig(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_EsmCfg_t *pEsmCfg, - const uint8_t esmBaseRegAddr) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(((bool)true) == pmic_validParamCheck(pEsmCfg->validParams, - PMIC_ESM_CFG_DELAY1_VALID)) - { - pmicStatus = Pmic_esmGetDelay1Value(pPmicCoreHandle, - pEsmCfg, - esmBaseRegAddr); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pEsmCfg->validParams, - PMIC_ESM_CFG_DELAY2_VALID))) - { - pmicStatus = Pmic_esmGetDelay2Value(pPmicCoreHandle, - pEsmCfg, - esmBaseRegAddr); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pEsmCfg->validParams, - PMIC_ESM_CFG_ERR_CNT_THR_VALID))) - { - pmicStatus = Pmic_esmGetErrCntThrValue(pPmicCoreHandle, - pEsmCfg, - esmBaseRegAddr); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pEsmCfg->validParams, - PMIC_ESM_CFG_EN_DRV_VALID))) - { - /* Get ESM EN DRV */ - pmicStatus = Pmic_esmGetEnDrvValue(pPmicCoreHandle, - pEsmCfg, - esmBaseRegAddr); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pEsmCfg->validParams, - PMIC_ESM_CFG_MODE_VALID))) - { - /* Get ESM Mode */ - pmicStatus = Pmic_esmGetModeValue(pPmicCoreHandle, - pEsmCfg, - esmBaseRegAddr); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_esmGetHmaxHminLmaxLminCfg(pPmicCoreHandle, - pEsmCfg, - esmBaseRegAddr); - } - - return pmicStatus; -} - -/*! - * \brief API to Get the PMIC ESM Configuration. - * - * Requirement: REQ_TAG(PDK-5833) - * Design: did_pmic_esm_cfg_readback - * Architecture: aid_pmic_esm_cfg - * - * This function is used to get the configured ESM mode, delay-1 and - * delay-2 time time intervals, Error Count Threshold value, HMAX, - * HMIN, LMAX, LMIN and select EN DRV clear for ESM_MCU and ESM_SOC. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param esmType [IN] PMIC ESM Type. - * For valid values: - * \ref Pmic_EsmTypes. - * \param pEsmCfg [IN/OUT] Pointer to store the specified ESM - * configuration. - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values: \ref Pmic_ErrorCodes - */ -int32_t Pmic_esmGetConfiguration(Pmic_CoreHandle_t *pPmicCoreHandle, - const bool esmType, - Pmic_EsmCfg_t *pEsmCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t esmBaseRegAddr = 0U; - - pmicStatus = Pmic_esmValidateParams(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_esmDeviceCheck(pPmicCoreHandle, esmType); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && (NULL == pEsmCfg)) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && (0U == pEsmCfg->validParams)) - { - pmicStatus = PMIC_ST_ERR_INSUFFICIENT_CFG; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_esmGetBaseRegAddr(esmType, &esmBaseRegAddr); - - pmicStatus = Pmic_esmGetConfig(pPmicCoreHandle, - pEsmCfg, - esmBaseRegAddr); - } - - return pmicStatus; -} - -/*! - * \brief API to Set PMIC ESM Interrupts. - * - * Requirement: REQ_TAG(PDK-5833) - * Design: did_pmic_esm_cfg_readback - * Architecture: aid_pmic_esm_cfg - * - * This function is used to mask/unmask the ESM RST, FAIL and - * PIN Interrupts for both ESM MCU and ESM SOC. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param esmType [IN] PMIC ESM Type - * For valid values: - * \ref Pmic_EsmTypes - * \param esmIntrCfg [IN] PMIC ESM interrupts mask/un-mask. - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_esmSetInterrupt(Pmic_CoreHandle_t *pPmicCoreHandle, - const bool esmType, - const Pmic_EsmIntrCfg_t esmIntrCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - pmicStatus = Pmic_esmValidateParams(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_esmDeviceCheck(pPmicCoreHandle, esmType); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_esmIntrEnable(pPmicCoreHandle, - esmType, - esmIntrCfg); - } - - return pmicStatus; -} - -/*! - * \brief API to Get the current ESM Error Count. - * - * Requirement: REQ_TAG(PDK-5833) - * Design: did_pmic_esm_cfg_readback - * Architecture: aid_pmic_esm_cfg - * - * This function is used to get the current Error count for ESM MCU - * ESM SOC. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param esmType [IN] PMIC ESM Type. - * For valid values: - * \ref Pmic_EsmTypes. - * \param pEsmErrCnt [OUT] Pointer to store the Error Count. - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values: \ref Pmic_ErrorCodes - */ -int32_t Pmic_esmGetErrCnt(Pmic_CoreHandle_t *pPmicCoreHandle, - const bool esmType, - uint8_t *pEsmErrCnt) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t esmBaseRegAddr = 0U; - uint8_t regAddr = 0U; - uint8_t regData = 0U; - - pmicStatus = Pmic_esmValidateParams(pPmicCoreHandle); - - if((PMIC_ST_SUCCESS == pmicStatus) && (NULL == pEsmErrCnt)) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_esmDeviceCheck(pPmicCoreHandle, esmType); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_esmGetBaseRegAddr(esmType, &esmBaseRegAddr); - regAddr = (esmBaseRegAddr + PMIC_ESM_ERR_CNT_REG_OFFSET); - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - regAddr, - ®Data); - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - (*pEsmErrCnt) = Pmic_getBitField(regData, - PMIC_ESM_X_ERR_CNT_REG_ESM_X_ERR_CNT_SHIFT, - PMIC_ESM_X_ERR_CNT_REG_ESM_X_ERR_CNT_MASK); - } - - return pmicStatus; -} - -/*! - * \brief API to read status of PMIC ESM is started or not. - * - * Requirement: REQ_TAG(PDK-9150) - * Design: did_pmic_esm_cfg_readback - * Architecture: aid_pmic_esm_cfg - * - * This function is used to read status of PMIC ESM_MCU/ESM_SOC is - * started or not - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param esmType [IN] PMIC ESM Type - * For valid values: - * \ref Pmic_EsmTypes - * \param pEsmState [IN] Pointer to store the status of PMIC ESM is - * started or not - * For valid values: - * \ref Pmic_EsmStates - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_esmGetStatus(Pmic_CoreHandle_t *pPmicCoreHandle, - const bool esmType, - bool *pEsmState) -{ - - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t esmBaseRegAddr = 0U; - uint8_t regAddr = 0U; - uint8_t regData = 0U; - - pmicStatus = Pmic_esmValidateParams(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_esmDeviceCheck(pPmicCoreHandle, esmType); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && (NULL == pEsmState)) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_esmGetBaseRegAddr(esmType, &esmBaseRegAddr); - - regAddr = (esmBaseRegAddr + PMIC_ESM_START_REG_OFFSET); - *pEsmState = PMIC_ESM_STOP; - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - regAddr, - ®Data); - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (Pmic_getBitField(regData, - PMIC_ESM_X_START_REG_ESM_X_START_SHIFT, - PMIC_ESM_X_START_REG_ESM_X_START_MASK) - == PMIC_ESM_VAL_1)) - { - *pEsmState = PMIC_ESM_START; - } - - return pmicStatus; -} diff --git a/src/pmic_esm_priv.h b/src/pmic_esm_priv.h deleted file mode 100644 index 13ed4c7..0000000 --- a/src/pmic_esm_priv.h +++ /dev/null @@ -1,152 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ - -/** - * \file pmic_esm_priv.h - * - * \brief: This file contains macro definitions, structures and function - * prototypes for driver specific PMIC esm configuration - */ - -#ifndef PMIC_ESM_PRIV_H_ -#define PMIC_ESM_PRIV_H_ - -/* ========================================================================== */ -/* Include Files */ -/* ========================================================================== */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* ========================================================================== */ -/* Macros & Typedefs */ -/* ========================================================================== */ -/*! - * \brief ESM Register Address - */ -/*! ESM MCU Register Base Address */ -#define PMIC_ESM_MCU_BASE_REGADDR (0x8FU) - -/*! ESM SOC Register Base Address */ -#define PMIC_ESM_SOC_BASE_REGADDR (0x98U) - -/*! ESM Register Offsets */ -#define PMIC_ESM_START_REG_OFFSET (0x0U) -#define PMIC_ESM_DELAY1_REG_OFFSET (0x1U) -#define PMIC_ESM_DELAY2_REG_OFFSET (0x2U) -#define PMIC_ESM_MODE_CFG_REG_OFFSET (0x3U) -#define PMIC_ESM_HMAX_REG_OFFSET (0x4U) -#define PMIC_ESM_HMIN_REG_OFFSET (0x5U) -#define PMIC_ESM_LMAX_REG_OFFSET (0x6U) -#define PMIC_ESM_LMIN_REG_OFFSET (0x7U) -#define PMIC_ESM_ERR_CNT_REG_OFFSET (0x8U) - -/*! - * \brief ESM MCU and ESM SOC Register Bit fields - */ -#define PMIC_ESM_X_START_REG_ESM_X_START_SHIFT (0x0U) -#define PMIC_ESM_X_DELAY1_REG_ESM_X_DELAY1_SHIFT (0x0U) -#define PMIC_ESM_X_DELAY2_REG_ESM_X_DELAY2_SHIFT (0x0U) -#define PMIC_ESM_X_MODE_CFG_ESM_X_MODE_SHIFT (0x7U) -#define PMIC_ESM_X_MODE_CFG_ESM_X_EN_SHIFT (0x6U) -#define PMIC_ESM_X_MODE_CFG_ESM_X_ENDRV_SHIFT (0x5U) -#define PMIC_ESM_X_MODE_CFG_ESM_X_ERR_CNT_TH_SHIFT (0x0U) -#define PMIC_ESM_X_HMAX_REG_ESM_X_HMAX_SHIFT (0x0U) -#define PMIC_ESM_X_HMIN_REG_ESM_X_HMIN_SHIFT (0x0U) -#define PMIC_ESM_X_LMAX_REG_ESM_X_LMAX_SHIFT (0x0U) -#define PMIC_ESM_X_LMIN_REG_ESM_X_LMIN_SHIFT (0x0U) -#define PMIC_ESM_X_ERR_CNT_REG_ESM_X_ERR_CNT_SHIFT (0x0U) - -/*! - * \brief ESM MCU and ESM SOC Register Bit masks - */ -#define PMIC_ESM_X_START_REG_ESM_X_START_MASK ((uint8_t) \ - (0x1U << PMIC_ESM_X_START_REG_ESM_X_START_SHIFT)) -#define PMIC_ESM_X_DELAY1_REG_ESM_X_DELAY1_MASK ((uint8_t) \ - (0x7U << PMIC_ESM_X_DELAY1_REG_ESM_X_DELAY1_SHIFT)) -#define PMIC_ESM_X_DELAY2_REG_ESM_X_DELAY2_MASK ((uint8_t) \ - (0x7U << PMIC_ESM_X_DELAY2_REG_ESM_X_DELAY2_SHIFT)) -#define PMIC_ESM_X_MODE_CFG_ESM_X_MODE_MASK ((uint8_t) \ - (0x1U << PMIC_ESM_X_MODE_CFG_ESM_X_MODE_SHIFT)) -#define PMIC_ESM_X_MODE_CFG_ESM_X_EN_MASK ((uint8_t) \ - (0x1U << PMIC_ESM_X_MODE_CFG_ESM_X_EN_SHIFT)) -#define PMIC_ESM_X_MODE_CFG_ESM_X_ENDRV_MASK ((uint8_t) \ - (0x1U << PMIC_ESM_X_MODE_CFG_ESM_X_ENDRV_SHIFT)) -#define PMIC_ESM_X_MODE_CFG_ESM_X_ERR_CNT_TH_MASK ((uint8_t) \ - (0x0FU << PMIC_ESM_X_MODE_CFG_ESM_X_ERR_CNT_TH_SHIFT)) -#define PMIC_ESM_X_HMAX_REG_ESM_X_HMAX_MASK ((uint8_t) \ - (0x7U << PMIC_ESM_X_HMAX_REG_ESM_X_HMAX_SHIFT)) -#define PMIC_ESM_X_HMIN_REG_ESM_X_HMIN_MASK ((uint8_t) \ - (0x7U << PMIC_ESM_X_HMIN_REG_ESM_X_HMIN_SHIFT)) -#define PMIC_ESM_X_LMAX_REG_ESM_X_LMAX_MASK ((uint8_t) \ - (0x7U << PMIC_ESM_X_LMAX_REG_ESM_X_LMAX_SHIFT)) -#define PMIC_ESM_X_LMIN_REG_ESM_X_LMIN_MASK ((uint8_t) \ - (0x7U << PMIC_ESM_X_LMIN_REG_ESM_X_LMIN_SHIFT)) -#define PMIC_ESM_X_ERR_CNT_REG_ESM_X_ERR_CNT_MASK ((uint8_t) \ - (0x4U << PMIC_ESM_X_ERR_CNT_REG_ESM_X_ERR_CNT_SHIFT)) - -/*! - * \brief ESM Delay1 and Delay2 Time interval Max and Divisor macros - */ -#define PMIC_ESM_DELAY_MICROSEC_MAX (522240U) -#define PMIC_ESM_DELAY_MICROSEC_DIV (2048U) - -/*! - * \brief ESM HMAX, HMIN, LMAX, LMIN Time interval Min, Max and Divisor macros - */ -#define PMIC_ESM_PWM_PULSE_MICROSEC_MIN (15U) -#define PMIC_ESM_PWM_PULSE_MICROSEC_MAX (3840U) -#define PMIC_ESM_PWM_PULSE_MICROSEC_DIV (15U) - -/*! - * \brief ESM Error Count Threshold Max Value - */ -#define PMIC_ESM_ERR_CNT_THR_MAX (15U) - -#define PMIC_ESM_VAL_1 (1U) - -/*==========================================================================*/ -/* Structures and Enums */ -/*==========================================================================*/ - -/*==========================================================================*/ -/* Function Declarations */ -/*==========================================================================*/ - - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif/* PMIC_ESM_PRIV_H_ */ diff --git a/src/pmic_fsm.c b/src/pmic_fsm.c deleted file mode 100644 index fd7c281..0000000 --- a/src/pmic_fsm.c +++ /dev/null @@ -1,1790 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ - -/** -* \file pmic_fsm.c -* -* \brief This file contains the default API's for PMIC FSM state -* configuration -* -*/ - -#include -#include - -#include -#include -#include - -#include - -/*! - * \brief This function is used to get the regAddr, mask and shift values to - * configure standBy/LPStandby State - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - */ -static void Pmic_fsmGetstandByCfgRegFields(uint8_t pmicDeviceType, - uint8_t *pRegAddr, - uint8_t *pBitPos, - uint8_t *pBitMask) -{ - switch(pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - *pRegAddr = PMIC_STARTUP_CTRL_REGADDR; - *pBitPos = PMIC_STARTUP_CTRL_LP_STANDBY_SEL_SHIFT; - *pBitMask = PMIC_STARTUP_CTRL_LP_STANDBY_SEL_MASK; - break; - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - *pRegAddr = PMIC_RTC_CTRL_2_REGADDR; - *pBitPos = PMIC_RTC_CTRL_2_LP_STANDBY_SEL_SHIFT; - *pBitMask = PMIC_RTC_CTRL_2_LP_STANDBY_SEL_MASK; - break; - } - -} - -/*! - * \brief This function is used to get the required BitPos and Mask of - * NSLEEP Mask Signals. - */ -static void Pmic_fsmGetNsleepMaskBitField(bool nsleepType, - uint8_t *pBitPos, - uint8_t *pBitMask) -{ - if(nsleepType == PMIC_NSLEEP1_SIGNAL) - { - *pBitPos = PMIC_CONFIG_1_NSLEEP1_MASK_SHIFT; - *pBitMask = PMIC_CONFIG_1_NSLEEP1_MASK_MASK; - } - - if(nsleepType == PMIC_NSLEEP2_SIGNAL) - { - *pBitPos = PMIC_CONFIG_1_NSLEEP2_MASK_SHIFT; - *pBitMask = PMIC_CONFIG_1_NSLEEP2_MASK_MASK; - } -} - -/*! - * \brief This function is used to get the required BitPos and Mask of - * FSM I2C Trigger Type . - */ -static void Pmic_fsmGetI2cTriggerMaskBitField(uint8_t i2cTriggerType, - uint8_t *pBitPos, - uint8_t *pBitMask) -{ - switch(i2cTriggerType) - { - case PMIC_FSM_I2C_TRIGGER1: - *pBitPos = PMIC_FSM_I2C_TRIGGERS_TRIGGER_I2C_1_SHIFT; - *pBitMask = PMIC_FSM_I2C_TRIGGERS_TRIGGER_I2C_1_MASK; - break; - case PMIC_FSM_I2C_TRIGGER2: - *pBitPos = PMIC_FSM_I2C_TRIGGERS_TRIGGER_I2C_2_SHIFT; - *pBitMask = PMIC_FSM_I2C_TRIGGERS_TRIGGER_I2C_2_MASK; - break; - case PMIC_FSM_I2C_TRIGGER3: - *pBitPos = PMIC_FSM_I2C_TRIGGERS_TRIGGER_I2C_3_SHIFT; - *pBitMask = PMIC_FSM_I2C_TRIGGERS_TRIGGER_I2C_3_MASK; - break; - case PMIC_FSM_I2C_TRIGGER4: - *pBitPos = PMIC_FSM_I2C_TRIGGERS_TRIGGER_I2C_4_SHIFT; - *pBitMask = PMIC_FSM_I2C_TRIGGERS_TRIGGER_I2C_4_MASK; - break; - case PMIC_FSM_I2C_TRIGGER5: - *pBitPos = PMIC_FSM_I2C_TRIGGERS_TRIGGER_I2C_5_SHIFT; - *pBitMask = PMIC_FSM_I2C_TRIGGERS_TRIGGER_I2C_5_MASK; - break; - case PMIC_FSM_I2C_TRIGGER6: - *pBitPos = PMIC_FSM_I2C_TRIGGERS_TRIGGER_I2C_6_SHIFT; - *pBitMask = PMIC_FSM_I2C_TRIGGERS_TRIGGER_I2C_6_MASK; - break; - case PMIC_FSM_I2C_TRIGGER7: - *pBitPos = PMIC_FSM_I2C_TRIGGERS_TRIGGER_I2C_7_SHIFT; - *pBitMask = PMIC_FSM_I2C_TRIGGERS_TRIGGER_I2C_7_MASK; - break; - default: - *pBitPos = PMIC_FSM_I2C_TRIGGERS_TRIGGER_I2C_0_SHIFT; - *pBitMask = PMIC_FSM_I2C_TRIGGERS_TRIGGER_I2C_0_MASK; - break; - } -} - -/*! - * \brief This function is used to set S2R/Deep sleep FSM Misson state. - */ -static int32_t Pmic_setS2RState(Pmic_CoreHandle_t *pPmicCoreHandle) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - - Pmic_criticalSectionStart(pPmicCoreHandle); - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_FSM_NSLEEP_TRIGGERS_REGADDR, - ®Data); - - if(PMIC_ST_SUCCESS == status) - { - Pmic_setBitField(®Data, - PMIC_FSM_NSLEEP_TRIGGERS_NSLEEP1B_SHIFT, - (PMIC_FSM_NSLEEP_TRIGGERS_NSLEEP2B_MASK | - PMIC_FSM_NSLEEP_TRIGGERS_NSLEEP1B_MASK), - PMIC_FSM_NSLEEPX_RESET); - status = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_FSM_NSLEEP_TRIGGERS_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - return status; -} - -/*! - * \brief API to set PMIC Nsleep1B/2B Signal value. - * - * Requirement: REQ_TAG(PDK-9146) - * Design: did_pmic_fsm_cfg_readback - * Architecture: aid_pmic_fsm_cfg - * - * This function is used to configure the Nsleep1B/2B signal level - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param nsleepType [IN] NSLEEP signal - * Valid values: \ref Pmic_Nsleep_Signals - * \param nsleepVal [IN] PMIC Nsleep signal level High/Low to be - * configured. - * Valid values \ref Pmic_Nsleep_SignalLvl. - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_fsmSetNsleepSignalVal(Pmic_CoreHandle_t *pPmicCoreHandle, - const bool nsleepType, - const uint8_t nsleepVal) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t bitPos = 0U; - uint8_t bitMask = 0U; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (nsleepVal > PMIC_NSLEEP_HIGH)) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(PMIC_NSLEEP1_SIGNAL == nsleepType) - { - bitPos = PMIC_FSM_NSLEEP_TRIGGERS_NSLEEP1B_SHIFT; - bitMask = PMIC_FSM_NSLEEP_TRIGGERS_NSLEEP1B_MASK; - } - if(PMIC_NSLEEP2_SIGNAL == nsleepType) - { - bitPos = PMIC_FSM_NSLEEP_TRIGGERS_NSLEEP2B_SHIFT; - bitMask = PMIC_FSM_NSLEEP_TRIGGERS_NSLEEP2B_MASK; - } - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_FSM_NSLEEP_TRIGGERS_REGADDR, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_setBitField(®Data, bitPos, bitMask, nsleepVal); - pmicStatus = Pmic_commIntf_sendByte( - pPmicCoreHandle, - PMIC_FSM_NSLEEP_TRIGGERS_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - } - - return pmicStatus; -} - -/*! - * \brief API to get PMIC Nsleep1B/2B Signal value. - * - * Requirement: REQ_TAG(PDK-9146) - * Design: did_pmic_fsm_cfg_readback - * Architecture: aid_pmic_fsm_cfg - * - * This function is used to read the signal level of the Nsleep1B/2B - * signal - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param nsleepType [IN] NSLEEP signal - * Valid values: \ref Pmic_Nsleep_Signals - * \param pNsleepVal [OUT] Pointer to store PMIC Nsleep signal level - * High/Low. - * Valid values \ref Pmic_Nsleep_SignalLvl - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_fsmGetNsleepSignalVal(Pmic_CoreHandle_t *pPmicCoreHandle, - const bool nsleepType, - uint8_t *pNsleepVal) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t bitPos = 0U; - uint8_t bitMask = 0U; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && (NULL == pNsleepVal)) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(PMIC_NSLEEP1_SIGNAL == nsleepType) - { - bitPos = PMIC_FSM_NSLEEP_TRIGGERS_NSLEEP1B_SHIFT; - bitMask = PMIC_FSM_NSLEEP_TRIGGERS_NSLEEP1B_MASK; - } - if(PMIC_NSLEEP2_SIGNAL == nsleepType) - { - bitPos = PMIC_FSM_NSLEEP_TRIGGERS_NSLEEP2B_SHIFT; - bitMask = PMIC_FSM_NSLEEP_TRIGGERS_NSLEEP2B_MASK; - } - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_FSM_NSLEEP_TRIGGERS_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - *pNsleepVal = Pmic_getBitField(regData, bitPos, bitMask); - - } - - } - - return pmicStatus; - -} - -/*! - * \brief API to initiate FSM I2C trigger for given FSM I2C trigger type - * - * Requirement: REQ_TAG(PDK-9330) - * Design: did_pmic_fsm_i2c_trigger - * Architecture: aid_pmic_fsm_cfg - * - * This function is used to to initiate FSM I2C trigger for given FSM - * I2C trigger type - * Note: In this API, the default i2cTriggerType is assumed as - * PMIC_FSM_I2C_TRIGGER0. While adding support for New PMIC - * device, developer need to update the API functionality for - * New PMIC device accordingly. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param i2cTriggerType [IN] FSM I2C Trigger Type - * Valid values: \ref Pmic_Fsm_I2c_Trigger_Type - * \param i2cTriggerVal [IN] FSM I2C Trigger Value - * Valid values: \ref Pmic_Fsm_I2c_Trigger_Val - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_fsmEnableI2cTrigger(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t i2cTriggerType, - const uint8_t i2cTriggerVal) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t bitPos = 0; - uint8_t bitMask = 0; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (PMIC_FSM_I2C_TRIGGER3 == i2cTriggerType)) - { - pmicStatus = PMIC_ST_ERR_NOT_SUPPORTED; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((PMIC_SILICON_REV_ID_PG_2_0 != pPmicCoreHandle->pmicDevSiliconRev) && - ((i2cTriggerType > PMIC_FSM_I2C_TRIGGER0) && - (i2cTriggerType < PMIC_FSM_I2C_TRIGGER4)))) - { - pmicStatus = PMIC_ST_ERR_NOT_SUPPORTED; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((i2cTriggerType > PMIC_FSM_I2C_TRIGGER7) || - (i2cTriggerVal > PMIC_FSM_I2C_TRIGGER_VAL_1))) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((i2cTriggerType < PMIC_FSM_I2C_TRIGGER4) && - (i2cTriggerVal != PMIC_FSM_I2C_TRIGGER_VAL_1))) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_FSM_I2C_TRIGGERS_REGADDR, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_fsmGetI2cTriggerMaskBitField(i2cTriggerType, - &bitPos, - &bitMask); - Pmic_setBitField(®Data, - bitPos, - bitMask, - i2cTriggerVal); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_FSM_I2C_TRIGGERS_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return pmicStatus; -} - -/*! - * \brief API to get FSM I2C trigger Value for given FSM I2C trigger type - * - * Requirement: REQ_TAG(PDK-9330) - * Design: did_pmic_fsm_i2c_trigger - * Architecture: aid_pmic_fsm_cfg - * - * This function is used to read the FSM I2C trigger Value of the - * FSM Trigger Type - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param i2cTriggerType [IN] FSM I2C Trigger Type - * Valid values: \ref Pmic_Fsm_I2c_Trigger_Type - * \param pI2cTriggerVal [OUT] Pointer to store FSM I2C Trigger Value - * Valid values \ref Pmic_Fsm_I2c_Trigger_Val - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_fsmGetI2cTriggerVal(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t i2cTriggerType, - uint8_t *pI2cTriggerVal) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t bitPos = 0U; - uint8_t bitMask = 0U; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && (NULL == pI2cTriggerVal)) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (i2cTriggerType > PMIC_FSM_I2C_TRIGGER7)) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_FSM_I2C_TRIGGERS_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_fsmGetI2cTriggerMaskBitField(i2cTriggerType, - &bitPos, - &bitMask); - *pI2cTriggerVal = Pmic_getBitField(regData, bitPos, bitMask); - } - - return pmicStatus; -} - -/*! - * \brief This function is used to set the defined FSM mission state. - * - * Note: In this API, the default PMIC FSM State is assumed as - * LP_STANBY_STATE. While adding support for New PMIC FSM State, - * developer need to update the API functionality for New PMIC - * FSM State State accordingly. - */ -static int32_t Pmic_setState(Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t pmicNextState) -{ - int32_t status = PMIC_ST_SUCCESS; - - switch(pmicNextState) - { - case PMIC_FSM_STANBY_STATE: - status = Pmic_fsmDeviceOffRequestCfg(pPmicCoreHandle, - PMIC_FSM_I2C_TRIGGER0_TYPE, - PMIC_FSM_STANBY_STATE); - break; - case PMIC_FSM_ACTIVE_STATE: - status = Pmic_fsmSetNsleepSignalVal(pPmicCoreHandle, - PMIC_NSLEEP2_SIGNAL, - PMIC_NSLEEP_HIGH); - - if(PMIC_ST_SUCCESS == status) - { - status = Pmic_fsmSetNsleepSignalVal(pPmicCoreHandle, - PMIC_NSLEEP1_SIGNAL, - PMIC_NSLEEP_HIGH); - } - - break; - case PMIC_FSM_MCU_ONLY_STATE: - status = Pmic_fsmSetNsleepSignalVal(pPmicCoreHandle, - PMIC_NSLEEP1_SIGNAL, - PMIC_NSLEEP_LOW); - - if(PMIC_ST_SUCCESS == status) - { - status = Pmic_fsmSetNsleepSignalVal(pPmicCoreHandle, - PMIC_NSLEEP2_SIGNAL, - PMIC_NSLEEP_HIGH); - } - - break; - case PMIC_FSM_S2R_STATE: - status = Pmic_setS2RState(pPmicCoreHandle); - - break; - default: - /* Default case is valid only for LP_STANBY_STATE */ - status = Pmic_fsmDeviceOffRequestCfg(pPmicCoreHandle, - PMIC_FSM_I2C_TRIGGER0_TYPE, - PMIC_FSM_LP_STANBY_STATE); - break; - } - - return status; -} - -/*! - * \brief API to initiate OFF Request FSM transition. - * - * Requirement: REQ_TAG(PDK-5851), REQ_TAG(PDK-9159), REQ_TAG(PDK-9329) - * Design: did_pmic_lpstandby_cfg - * Architecture: aid_pmic_fsm_cfg - * - * This function initiate OFF Request FSM transition from any other - * mission state to the STANDBY state or the LP_STANDBY state - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param eventType [IN] Event Type used to initiate OFF Request - * Valid values: - * \ref Pmic_Fsm_Off_Request_Type - * \param fsmState [IN] FSM state. - * Only Valid for: - * PMIC_FSM_STANBY_STATE and - * PMIC_FSM_LP_STANBY_STATE - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_fsmDeviceOffRequestCfg(Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t eventType, - uint8_t fsmState) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t regAddr = 0U; - uint8_t bitPos = 0U; - uint8_t bitMask = 0U; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (eventType != PMIC_FSM_I2C_TRIGGER0_TYPE) && - (eventType != PMIC_FSM_ENABLE_PIN_TYPE) && - (eventType != PMIC_FSM_NPWRON_PIN_TYPE)) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (fsmState != PMIC_FSM_STANBY_STATE) && - (fsmState != PMIC_FSM_LP_STANBY_STATE)) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_fsmGetstandByCfgRegFields(pPmicCoreHandle->pmicDeviceType, - ®Addr, - &bitPos, - &bitMask); - - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - regAddr, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_setBitField(®Data, bitPos, bitMask, fsmState); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - regAddr, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (PMIC_FSM_I2C_TRIGGER0_TYPE == eventType)) - { - pmicStatus = Pmic_fsmEnableI2cTrigger(pPmicCoreHandle, - PMIC_FSM_I2C_TRIGGER0, - PMIC_FSM_I2C_TRIGGER_VAL_1); - } - - return pmicStatus; -} - -/*! - * \brief API to initiate Runtime BIST. - * - * Requirement: REQ_TAG(PDK-5849) - * Design: did_pmic_runtime_bist_cfg - * Architecture: aid_pmic_fsm_cfg - * - * This function initiates a request to exercise runtime BIST on the - * device - * Valid only for TPS6594x Leo PMIC PG2.0 and LP8764x Hera PMIC PG2.0 - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_fsmRequestRuntimeBist(Pmic_CoreHandle_t *pPmicCoreHandle) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (PMIC_SILICON_REV_ID_PG_2_0 != pPmicCoreHandle->pmicDevSiliconRev)) - { - pmicStatus = PMIC_ST_ERR_NOT_SUPPORTED; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_fsmEnableI2cTrigger(pPmicCoreHandle, - PMIC_FSM_I2C_TRIGGER1, - PMIC_FSM_I2C_TRIGGER_VAL_1); - } - - return pmicStatus; -} - -/*! - * \brief API to initiate ON Request FSM transition. - * - * Requirement: REQ_TAG(PDK-5837) - * Design: did_pmic_fsm_cfg - * Architecture: aid_pmic_fsm_cfg - * - * This function setup nSLEEP signal bits with STARTUP_DEST - * Which is common for all supported PMICs. This API needs to be called - * at PMIC init before clearing Enable and Start-Up interrupts. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - */ -int32_t Pmic_fsmDeviceOnRequest(Pmic_CoreHandle_t *pPmicCoreHandle) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t srcRegAddr = 0U; - uint8_t srcBitMask = 0U; - uint8_t srcBitShift = 0U; - uint8_t dstRegAddr = 0U; - uint8_t regData = 0U; - uint8_t regVal = 0U; - uint8_t bitShift = 0U; - uint8_t bitMask = 0U; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - switch(pPmicCoreHandle->pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - srcRegAddr = PMIC_STARTUP_CTRL_REGADDR; - dstRegAddr = PMIC_FSM_NSLEEP_TRIGGERS_REGADDR; - srcBitMask = PMIC_STARTUP_CTRL_STARTUP_DEST_MASK; - srcBitShift = PMIC_STARTUP_CTRL_STARTUP_DEST_SHIFT; - break; - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - srcRegAddr = PMIC_RTC_CTRL_2_REGADDR; - dstRegAddr = PMIC_FSM_NSLEEP_TRIGGERS_REGADDR; - srcBitMask = PMIC_RTC_CTRL_2_STARTUP_DEST_MASK; - srcBitShift = PMIC_RTC_CTRL_2_STARTUP_DEST_SHIFT; - break; - } - - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - srcRegAddr, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - regVal = (regData & srcBitMask) >> srcBitShift; - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - dstRegAddr, - ®Data); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - bitShift = 0x1U; - bitMask = (0x1U << bitShift); - Pmic_setBitField(®Data, - PMIC_FSM_NSLEEP_TRIGGERS_NSLEEP2B_SHIFT, - PMIC_FSM_NSLEEP_TRIGGERS_NSLEEP2B_MASK, - (Pmic_getBitField(regVal, bitShift, bitMask))); - - bitShift = 0U; - bitMask = (0x1U << bitShift); - Pmic_setBitField(®Data, - PMIC_FSM_NSLEEP_TRIGGERS_NSLEEP1B_SHIFT, - PMIC_FSM_NSLEEP_TRIGGERS_NSLEEP1B_MASK, - (Pmic_getBitField(regVal, bitShift, bitMask))); - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - dstRegAddr, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return pmicStatus; -} - -/*! - * \brief API to Set FSM mission States. - * - * Requirement: REQ_TAG(PDK-5837), REQ_TAG(PDK-5851) - * Design: did_pmic_fsm_cfg, did_pmic_lpstandby_cfg - * Architecture: aid_pmic_fsm_cfg - * - * This function is used for set/change the FSM mission states for PMIC - * using Nsleep1B and Nsleep2B signals in absence of GPIO pins - * Note: Application need to unmask Nsleep1B and Nsleep2B signals for - * FSM state transitions except for Standby/LpStandby State - * Application need to mask Nsleep1B and Nsleep2B signals for - * Standby/LpStandby State transition - * Application has to ensure the wakeup pins or RTC Timer/Alarm - * Interrupts are configured properly before triggering the PMIC - * device to Standby/LP Standby state.If not configured properly - * then PMIC device can't resume from sleep state - * Application has to ensure to connect/access the peripherals - * connected to only MCU Power lines when PMIC switch from Active - * to MCU state. If Application connects/access the peripherals - * connected to SOC Power lines when PMIC switch from Active to - * MCU state, then Application behaviour is unexpected. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param pmicState [IN] PMIC FSM MISSION STATE - * Valid values: \ref Pmic_Fsm_Mission_State - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_fsmSetMissionState(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t pmicState) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && (pmicState > PMIC_FSM_STATE_MAX)) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_setState(pPmicCoreHandle, pmicState); - } - - return pmicStatus; -} - -/*! - * \brief API to MASK/UNMASK NSLEEP1B or 2B Signal. - * - * Requirement: REQ_TAG(PDK-5837) - * Design: did_pmic_fsm_cfg_readback - * Architecture: aid_pmic_fsm_cfg - * - * This function is used for Masking/Unmasking for NSLEEP2B or NSLEEP1B - * signal. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param nsleepType [IN] NSLEEP signal - * Valid values: \ref Pmic_Nsleep_Signals - * \param maskEnable [IN] Parameter to select masking/unmasking - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_fsmSetNsleepSignalMask(Pmic_CoreHandle_t *pPmicCoreHandle, - const bool nsleepType, - const bool maskEnable) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t bitPos = 0U; - uint8_t bitMask = 0U; - uint8_t maskEnableVal = 0U; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_CONFIG_1_REGADDR, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_fsmGetNsleepMaskBitField(nsleepType, - &bitPos, - &bitMask); - - if(((bool)true) == maskEnable) - { - maskEnableVal = 1U; - } - - Pmic_setBitField(®Data, bitPos, bitMask, maskEnableVal); - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_CONFIG_1_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return pmicStatus; -} - -/*! - * \brief API to read the status of the NSLEEP1B/2B Signal is masked or not - * - * Requirement: REQ_TAG(PDK-9151) - * Design: did_pmic_fsm_cfg_readback - * Architecture: aid_pmic_fsm_cfg - * - * This function is used to read the status of the NSLEEP1B/2B Signal is - * masked or not - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param nsleepType [IN] NSLEEP signal - * Valid values: \ref Pmic_Nsleep_Signals - * \param pNsleepStat [OUT] Pointer to store Nsleep Signal is masked or - * not - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_fsmGetNsleepSignalMaskStat(Pmic_CoreHandle_t *pPmicCoreHandle, - const bool nsleepType, - bool *pNsleepStat) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t bitPos = 0U; - uint8_t bitMask = 0U; - uint8_t maskEnableStat = 0U; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && (NULL == pNsleepStat)) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_CONFIG_1_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - *pNsleepStat = (bool)false; - - Pmic_fsmGetNsleepMaskBitField(nsleepType, - &bitPos, - &bitMask); - maskEnableStat = Pmic_getBitField(regData, bitPos, bitMask); - - if(maskEnableStat == 1U) - { - *pNsleepStat = (bool)true; - } - } - - return pmicStatus; -} - -/*! - * \brief API to Enable/Disable Fast BIST - * Note: In this API, the default pmicDeviceType is assumed as - * TPS6594X Leo Device. While adding support for New PMIC - * device, developer need to update the API functionality for - * New PMIC device accordingly. - */ -static int32_t Pmic_fsmEnableFastBIST(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_FsmCfg_t fsmCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regAddr = 0U; - uint8_t regData = 0U; - uint8_t bitShift = 0U; - uint8_t bitMask = 0U; - - switch(pPmicCoreHandle->pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - regAddr = PMIC_STARTUP_CTRL_REGADDR; - bitMask = PMIC_STARTUP_CTRL_FAST_BIST_MASK; - bitShift = PMIC_STARTUP_CTRL_FAST_BIST_SHIFT; - break; - default: - regAddr = PMIC_RTC_CTRL_2_REGADDR; - bitMask = PMIC_RTC_CTRL_2_FAST_BIST_MASK; - bitShift = PMIC_RTC_CTRL_2_FAST_BIST_SHIFT; - break; - } - - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - regAddr, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(((bool)PMIC_FSM_FAST_BIST_ENABLE) == fsmCfg.fastBistEn) - { - Pmic_setBitField(®Data, - bitShift, - bitMask, - PMIC_FSM_FAST_BIST_ENABLE); - } - else - { - Pmic_setBitField(®Data, - bitShift, - bitMask, - PMIC_FSM_FAST_BIST_DISABLE); - } - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - regAddr, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - return pmicStatus; -} - -/*! - * \brief API to Get Fast BIST is enabled or not - * Note: In this API, the default pmicDeviceType is assumed as - * TPS6594X Leo Device. While adding support for New PMIC - * device, developer need to update the API functionality for - * New PMIC device accordingly. - */ -static int32_t Pmic_fsmGetFastBISTCfg(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_FsmCfg_t *pFsmCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regAddr = 0U; - uint8_t regData = 0U; - uint8_t bitShift = 0U; - uint8_t bitMask = 0U; - - switch(pPmicCoreHandle->pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - regAddr = PMIC_STARTUP_CTRL_REGADDR; - bitMask = PMIC_STARTUP_CTRL_FAST_BIST_MASK; - bitShift = PMIC_STARTUP_CTRL_FAST_BIST_SHIFT; - break; - default: - regAddr = PMIC_RTC_CTRL_2_REGADDR; - bitMask = PMIC_RTC_CTRL_2_FAST_BIST_MASK; - bitShift = PMIC_RTC_CTRL_2_FAST_BIST_SHIFT; - break; - } - - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - regAddr, - ®Data); - - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pFsmCfg->fastBistEn = (bool)false; - - if(Pmic_getBitField(regData, bitShift, bitMask) == 1U) - { - pFsmCfg->fastBistEn = (bool)true; - } - } - - return pmicStatus; -} - -/*! - * \brief API to Set LPStandby/Standby State - * Note: In this API, the default pmicDeviceType is assumed as - * TPS6594X Leo Device. While adding support for New PMIC - * device, developer need to update the API functionality for - * New PMIC device accordingly. - */ -static int32_t Pmic_fsmSetLpStandbyState(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_FsmCfg_t fsmCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regAddr = 0U; - uint8_t regData = 0U; - uint8_t bitShift = 0U; - uint8_t bitMask = 0U; - - switch(pPmicCoreHandle->pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - regAddr = PMIC_STARTUP_CTRL_REGADDR; - bitMask = PMIC_STARTUP_CTRL_LP_STANDBY_SEL_MASK; - bitShift = PMIC_STARTUP_CTRL_LP_STANDBY_SEL_SHIFT; - break; - default: - regAddr = PMIC_RTC_CTRL_2_REGADDR; - bitMask = PMIC_RTC_CTRL_2_LP_STANDBY_SEL_MASK; - bitShift = PMIC_RTC_CTRL_2_LP_STANDBY_SEL_SHIFT; - break; - } - - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - regAddr, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(((bool)PMIC_FSM_SELECT_LPSTANDBY_STATE) == fsmCfg.lpStandbySel) - { - Pmic_setBitField(®Data, - bitShift, - bitMask, - PMIC_FSM_SELECT_LPSTANDBY_STATE); - } - else - { - Pmic_setBitField(®Data, - bitShift, - bitMask, - PMIC_FSM_SELECT_STANDBY_STATE); - } - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - regAddr, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - return pmicStatus; -} - -/*! - * \brief API to Get LPStandby/Standby State - * Note: In this API, the default pmicDeviceType is assumed as - * TPS6594X Leo Device. While adding support for New PMIC - * device, developer need to update the API functionality for - * New PMIC device accordingly. - */ -static int32_t Pmic_fsmGetLpStandbyStateCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_FsmCfg_t *pFsmCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regAddr = 0U; - uint8_t regData = 0U; - uint8_t bitShift = 0U; - uint8_t bitMask = 0U; - - switch(pPmicCoreHandle->pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - regAddr = PMIC_STARTUP_CTRL_REGADDR; - bitMask = PMIC_STARTUP_CTRL_LP_STANDBY_SEL_MASK; - bitShift = PMIC_STARTUP_CTRL_LP_STANDBY_SEL_SHIFT; - break; - default: - regAddr = PMIC_RTC_CTRL_2_REGADDR; - bitMask = PMIC_RTC_CTRL_2_LP_STANDBY_SEL_MASK; - bitShift = PMIC_RTC_CTRL_2_LP_STANDBY_SEL_SHIFT; - break; - } - - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - regAddr, - ®Data); - - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pFsmCfg->lpStandbySel = (bool)false; - - if(Pmic_getBitField(regData, bitShift, bitMask) == 1U) - { - pFsmCfg->lpStandbySel = (bool)true; - } - } - - return pmicStatus; -} - -/*! - * \brief API to Enable/Disable Buck/LDO regulators ILIM interrupts affect FSM - triggers */ -static int32_t Pmic_fsmEnableBuckLdoIlimIntAffectFsm( - Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_FsmCfg_t fsmCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_CONFIG_1_REGADDR, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(((bool)PMIC_FSM_ILIM_INT_FSMCTRL_ENABLE) == fsmCfg.ilimIntfsmCtrlEn) - { - Pmic_setBitField(®Data, - PMIC_CONFIG_1_EN_ILIM_FSM_CTRL_SHIFT, - PMIC_CONFIG_1_EN_ILIM_FSM_CTRL_MASK, - PMIC_FSM_ILIM_INT_FSMCTRL_ENABLE); - } - else - { - Pmic_setBitField(®Data, - PMIC_CONFIG_1_EN_ILIM_FSM_CTRL_SHIFT, - PMIC_CONFIG_1_EN_ILIM_FSM_CTRL_MASK, - PMIC_FSM_ILIM_INT_FSMCTRL_DISABLE); - } - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_CONFIG_1_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - return pmicStatus; -} - -/*! - * \brief API to Get Buck/LDO regulators ILIM interrupts affect FSM triggers is - * enabled or not - */ -static int32_t Pmic_fsmGetBuckLdoIlimIntAffectFsmCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_FsmCfg_t *pFsmCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_CONFIG_1_REGADDR, - ®Data); - - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pFsmCfg->ilimIntfsmCtrlEn = (bool)false; - - if(Pmic_getBitField(regData, - PMIC_CONFIG_1_EN_ILIM_FSM_CTRL_SHIFT, - PMIC_CONFIG_1_EN_ILIM_FSM_CTRL_MASK) == 1U) - { - pFsmCfg->ilimIntfsmCtrlEn = (bool)true; - } - } - - return pmicStatus; -} - -/*! - * \brief API to Set FSM Startup Destination State - * Note: In this API, the default pmicDeviceType is assumed as - * TPS6594X Leo Device. While adding support for New PMIC - * device, developer need to update the API functionality for - * New PMIC device accordingly. - */ -static int32_t Pmic_fsmSetStartupDestState(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_FsmCfg_t fsmCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regAddr = 0U; - uint8_t regData = 0U; - uint8_t bitShift = 0U; - uint8_t bitMask = 0U; - - switch(pPmicCoreHandle->pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - regAddr = PMIC_STARTUP_CTRL_REGADDR; - bitMask = PMIC_STARTUP_CTRL_STARTUP_DEST_MASK; - bitShift = PMIC_STARTUP_CTRL_STARTUP_DEST_SHIFT; - break; - default: - regAddr = PMIC_RTC_CTRL_2_REGADDR; - bitMask = PMIC_RTC_CTRL_2_STARTUP_DEST_MASK; - bitShift = PMIC_RTC_CTRL_2_STARTUP_DEST_SHIFT; - break; - } - - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - regAddr, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_setBitField(®Data, - bitShift, - bitMask, - fsmCfg.fsmStarupDestSel); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - regAddr, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - return pmicStatus; -} - -/*! - * \brief API to Get Get FSM Startup Destination State - * Note: In this API, the default pmicDeviceType is assumed as - * TPS6594X Leo Device. While adding support for New PMIC - * device, developer need to update the API functionality for - * New PMIC device accordingly. - */ -static int32_t Pmic_fsmGetStartupDestStateCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_FsmCfg_t *pFsmCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regAddr = 0U; - uint8_t regData = 0U; - uint8_t bitShift = 0U; - uint8_t bitMask = 0U; - - switch(pPmicCoreHandle->pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - regAddr = PMIC_STARTUP_CTRL_REGADDR; - bitMask = PMIC_STARTUP_CTRL_STARTUP_DEST_MASK; - bitShift = PMIC_STARTUP_CTRL_STARTUP_DEST_SHIFT; - break; - default: - regAddr = PMIC_RTC_CTRL_2_REGADDR; - bitMask = PMIC_RTC_CTRL_2_STARTUP_DEST_MASK; - bitShift = PMIC_RTC_CTRL_2_STARTUP_DEST_SHIFT; - break; - } - - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - regAddr, - ®Data); - - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pFsmCfg->fsmStarupDestSel = Pmic_getBitField(regData, - bitShift, - bitMask); - } - - return pmicStatus; -} - -/*! - * \brief API to set PMIC FSM configuration. - * - * Requirement: REQ_TAG(PDK-9144), REQ_TAG(PDK-9134), REQ_TAG(PDK-9128) - * Design: did_pmic_fsm_cfg_readback - * Architecture: aid_pmic_fsm_cfg - * - * This function is used to set the required FSM configuration when - * corresponding bit field is set. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param fsmCfg [IN] Set required FSM configuration - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_fsmSetConfiguration(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_FsmCfg_t fsmCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck(fsmCfg.validParams, - PMIC_FSM_CFG_FAST_BIST_EN_VALID))) - { - /* Enable/Disable Fast BIST */ - pmicStatus = Pmic_fsmEnableFastBIST(pPmicCoreHandle, fsmCfg); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck(fsmCfg.validParams, - PMIC_FSM_CFG_LP_STANDBYSEL_VALID))) - { - /* Set LPStandby/Standby State */ - pmicStatus = Pmic_fsmSetLpStandbyState(pPmicCoreHandle, fsmCfg); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck( - fsmCfg.validParams, - PMIC_FSM_CFG_ILIM_INT_FSMCTRL_EN_VALID))) - { - /* Enable/Disable Buck/LDO regulators ILIM interrupts affect FSM - * triggers */ - pmicStatus = Pmic_fsmEnableBuckLdoIlimIntAffectFsm(pPmicCoreHandle, - fsmCfg); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck( - fsmCfg.validParams, - PMIC_FSM_CFG_FSM_STARTUP_DEST_SEL_VALID))) - { - if(fsmCfg.fsmStarupDestSel > PMIC_FSM_STARTUPDEST_ACTIVE) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Set FSM Startup Destination State */ - pmicStatus = Pmic_fsmSetStartupDestState(pPmicCoreHandle, fsmCfg); - } - } - - return pmicStatus; -} - -/*! - * \brief API to get PMIC FSM configuration. - * - * Requirement: REQ_TAG(PDK-9144), REQ_TAG(PDK-9134), REQ_TAG(PDK-9128) - * Design: did_pmic_fsm_cfg_readback - * Architecture: aid_pmic_fsm_cfg - * - * This function is used to get the FSM configuration when - * corresponding validParam bit fields are set in Pmic_FsmCfg_t - * structure - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param pFsmCfg [IN/OUT] Pointer to store FSM configuration - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_fsmGetConfiguration(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_FsmCfg_t *pFsmCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && (NULL == pFsmCfg)) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck(pFsmCfg->validParams, - PMIC_FSM_CFG_FAST_BIST_EN_VALID))) - { - /* Get Fast BIST is enabled or not*/ - pmicStatus = Pmic_fsmGetFastBISTCfg(pPmicCoreHandle, pFsmCfg); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck(pFsmCfg->validParams, - PMIC_FSM_CFG_LP_STANDBYSEL_VALID))) - { - /* Get LPStandby/Standby State */ - pmicStatus = Pmic_fsmGetLpStandbyStateCfg(pPmicCoreHandle, pFsmCfg); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck( - pFsmCfg->validParams, - PMIC_FSM_CFG_ILIM_INT_FSMCTRL_EN_VALID))) - { - /* Get Buck/LDO regulators ILIM interrupts affect FSM - * triggers is enabled or not */ - pmicStatus = Pmic_fsmGetBuckLdoIlimIntAffectFsmCfg(pPmicCoreHandle, - pFsmCfg); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck( - pFsmCfg->validParams, - PMIC_FSM_CFG_FSM_STARTUP_DEST_SEL_VALID))) - { - /* Get FSM Startup Destination State */ - pmicStatus = Pmic_fsmGetStartupDestStateCfg(pPmicCoreHandle, pFsmCfg); - } - - return pmicStatus; -} - -/*! - * \brief API to configure PFSM Delay - * - * Requirement: REQ_TAG(PDK-9136) - * Design: did_pmic_pfsm_cfg_readback - * Architecture: aid_pmic_fsm_cfg - * - * This function is used to configure PFSM Delay. PFSM Delay will affect - * the total power up sequence time before the system is released from - * reset - * Consider If the PFSM_Delay value is 'x' then Delay will calculated as - * Delay = x *(50ns * 2^PFSM_DELAY_STEP) - * Note: In this API, the default delay Type is assumed as - * PMIC_PFSM_DELAY1 - * While adding support for New PMIC, developer need to update the API - * functionality for New PMIC device accordingly. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param pFsmDelayType [IN] PFSM Delay Type - * Valid values: \ref Pmic_Pfsm_Delay_Type - * \param pfsmDelay [IN] Delay for PFSM - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_fsmSetPfsmDelay(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t pFsmDelayType, - const uint8_t pfsmDelay) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regAddr = 0U; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (pFsmDelayType > PMIC_PFSM_DELAY4)) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - switch(pFsmDelayType) - { - case PMIC_PFSM_DELAY2: - regAddr = PMIC_FSM_PFSM_DELAY_REG_2_REGADDR; - break; - case PMIC_PFSM_DELAY3: - regAddr = PMIC_FSM_PFSM_DELAY_REG_3_REGADDR; - break; - case PMIC_PFSM_DELAY4: - regAddr = PMIC_FSM_PFSM_DELAY_REG_4_REGADDR; - break; - default: - regAddr = PMIC_FSM_PFSM_DELAY_REG_1_REGADDR; - break; - } - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - regAddr, - pfsmDelay); - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return pmicStatus; -} - -/*! - * \brief API to read PFSM Delay - * - * Requirement: REQ_TAG(PDK-9136) - * Design: did_pmic_pfsm_cfg_readback - * Architecture: aid_pmic_fsm_cfg - * - * This function is used to read PFSM Delay - * Note: In this API, the default delay Type is assumed as - * PMIC_PFSM_DELAY1 - * While adding support for New PMIC, developer need to update the API - * functionality for New PMIC device accordingly. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param pFsmDelayType [IN] PFSM Delay Type - * Valid values: \ref Pmic_Pfsm_Delay_Type - * \param pPfsmDelay [OUT] Pointer to store the Delay for PFSM - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_fsmGetPfsmDelay(Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t pFsmDelayType, - uint8_t *pPfsmDelay) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regAddr = 0U; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && (NULL == pPfsmDelay)) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && (pFsmDelayType > PMIC_PFSM_DELAY4)) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - switch(pFsmDelayType) - { - case PMIC_PFSM_DELAY2: - regAddr = PMIC_FSM_PFSM_DELAY_REG_2_REGADDR; - break; - case PMIC_PFSM_DELAY3: - regAddr = PMIC_FSM_PFSM_DELAY_REG_3_REGADDR; - break; - case PMIC_PFSM_DELAY4: - regAddr = PMIC_FSM_PFSM_DELAY_REG_4_REGADDR; - break; - default: - regAddr = PMIC_FSM_PFSM_DELAY_REG_1_REGADDR; - break; - } - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - regAddr, - pPfsmDelay); - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return pmicStatus; -} - -/*! - * \brief API to recover from SOC Power Error using Nsleep1B and Nsleep2B - * signal - * - * Requirement: REQ_TAG(PDK-9123) - * Design: did_pmic_fsm_recover_soc_pwr_err - * Architecture: aid_pmic_fsm_cfg - * - * This function is used to recover from SOC Power Error without - * rebooting the system - * Note: Application need to call this API from MCU domain when SOC - * Power Error on Primary PMIC - * Step-1 - PMIC LLD has to configure NSLEEP2 & NSLEEP1 signals to ‘10’ - * Step-2 - Application has to wait for 9us - * Step-3 - PMIC LLD has to configure NSLEEP2 & NSLEEP1 signals to ‘11’ - * - * Note: Valid only for TPS6594x Leo PMIC PG2.0 and LP8764x Hera PMIC - * PG2.0 - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param nsleepVal [IN] PMIC Nsleep signal level High/Low to be - * configured. - * Valid values \ref Pmic_Nsleep_SignalLvl - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_fsmRecoverSocPwrErr(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t nsleepVal) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (PMIC_SILICON_REV_ID_PG_2_0 != pPmicCoreHandle->pmicDevSiliconRev)) - { - pmicStatus = PMIC_ST_ERR_NOT_SUPPORTED; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_fsmSetNsleepSignalMask(pPmicCoreHandle, - PMIC_NSLEEP2_SIGNAL, - ((bool)PMIC_NSLEEPX_UNMASK)); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_fsmSetNsleepSignalMask(pPmicCoreHandle, - PMIC_NSLEEP1_SIGNAL, - ((bool)PMIC_NSLEEPX_UNMASK)); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_fsmSetNsleepSignalVal(pPmicCoreHandle, - PMIC_NSLEEP2_SIGNAL, - PMIC_NSLEEP_HIGH); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_fsmSetNsleepSignalVal(pPmicCoreHandle, - PMIC_NSLEEP1_SIGNAL, - nsleepVal); - } - - return pmicStatus; -} - -/*! - * \brief API to initiate DDR/GPIO Retention Mode - * - * Requirement: REQ_TAG(PDK-9563), REQ_TAG(PDK-9564) - * Design: did_pmic_ddr_gpio_retention_cfg - * Architecture: aid_pmic_fsm_cfg - * - * This function initiates a request to exercise DDR/GPIO Retention Mode - * on the device based on the Retention Mode - * Note: PMIC_FSM_GPIO_RETENTION_MODE is valid only for J7200 SOC - * Application has to ensure to connect/access the peripherals - * connected to only MCU Power lines except EN_GPIORET_LDSW, - * VDD_WK_0V8 Power lines when PMIC switch from Active to MCU - * state in GPIO Rentention mode with FSM i2c6 trigger value as - * '0'. If Application connects/access the peripherals connected - * to EN_GPIORET_LDSW, VDD_WK_0V8 Power lines when PMIC switch - * from Active to MCU state in GPIO Rentention mode with FSM i2c6 - * trigger value as '0', then Application behaviour is unexpected. - * Application has to ensure to connect/access the peripherals - * connected to only MCU Power lines except VDD1_LPDDR4_1V8, - * VDD_DDR_1V1, GPIO_EN_VDDR_IO Power lines when PMIC switch from - * Active to MCU state in DDR Rentention mode with FSM i2c7 - * trigger value as '0'. If Application connects/access the - * peripherals connected to VDD1_LPDDR4_1V8, VDD_DDR_1V1, - * GPIO_EN_VDDR_IO Power lines when PMIC switch from Active to MCU - * state in DDR Rentention mode with FSM i2c7 trigger value as - * '0', then Application behaviour is unexpected. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param retentionMode [IN] Retention Mode - * Valid values: \ref Pmic_Fsm_Retention_Mode - * PMIC_FSM_GPIO_RETENTION_MODE is valid - * only for J7200 SOC - * \param i2cTriggerVal [IN] FSM I2C Trigger Value - * Valid values: \ref Pmic_Fsm_I2c_Trigger_Val - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_fsmRequestDdrGpioRetentionMode( - Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t retentionMode, - const uint8_t i2cTriggerVal) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (retentionMode > PMIC_FSM_GPIO_RETENTION_MODE)) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(PMIC_FSM_DDR_RETENTION_MODE == retentionMode) - { - pmicStatus = Pmic_fsmEnableI2cTrigger(pPmicCoreHandle, - PMIC_FSM_I2C_TRIGGER7, - i2cTriggerVal); - } - else - { - pmicStatus = Pmic_fsmEnableI2cTrigger(pPmicCoreHandle, - PMIC_FSM_I2C_TRIGGER6, - i2cTriggerVal); - } - } - - return pmicStatus; -} diff --git a/src/pmic_fsm_priv.h b/src/pmic_fsm_priv.h deleted file mode 100644 index fa036a4..0000000 --- a/src/pmic_fsm_priv.h +++ /dev/null @@ -1,171 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ -/** - * \file pmic_fsm_priv.h - * - * \brief The macro definitions for configuring PMIC FSM Registers - * - */ - -#ifndef PMIC_FSM_PRIV_H_ -#define PMIC_FSM_PRIV_H_ - -/* ========================================================================= */ -/* Include Files */ -/* ========================================================================= */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* ========================================================================= */ -/* Macros & Typedefs */ -/* ========================================================================= */ - -/*! - * \brief PMIC FSM I2C TRIGGER Register Address - */ -#define PMIC_FSM_I2C_TRIGGERS_REGADDR (0x85U) - -/*! - * \brief PMIC FSM NSLEEP TRIGGER Register Address - */ -#define PMIC_FSM_NSLEEP_TRIGGERS_REGADDR (0x86U) - -/*! - * \brief PMIC MISC Control Register Address - */ -#define PMIC_FSM_MISC_CTRL_REGADDR (0x81U) - -/*! - * \brief PMIC PFSM Delay Register Address - */ -#define PMIC_FSM_PFSM_DELAY_REG_1_REGADDR (0xCDU) -#define PMIC_FSM_PFSM_DELAY_REG_2_REGADDR (0xCEU) -#define PMIC_FSM_PFSM_DELAY_REG_3_REGADDR (0xCFU) -#define PMIC_FSM_PFSM_DELAY_REG_4_REGADDR (0xD0U) - -/*! - * \brief PMIC MISC Control Register Bit Fields - */ -#define PMIC_FSM_MISC_CTRL_LPM_EN_SHIFT (0x2U) - -/*! - * \brief PMIC FSM I2C TRIGGER Register Bit Fields - */ -#define PMIC_FSM_I2C_TRIGGERS_TRIGGER_I2C_0_SHIFT (0x0U) -#define PMIC_FSM_I2C_TRIGGERS_TRIGGER_I2C_1_SHIFT (0x1U) -#define PMIC_FSM_I2C_TRIGGERS_TRIGGER_I2C_2_SHIFT (0x2U) -#define PMIC_FSM_I2C_TRIGGERS_TRIGGER_I2C_3_SHIFT (0x3U) -#define PMIC_FSM_I2C_TRIGGERS_TRIGGER_I2C_4_SHIFT (0x4U) -#define PMIC_FSM_I2C_TRIGGERS_TRIGGER_I2C_5_SHIFT (0x5U) -#define PMIC_FSM_I2C_TRIGGERS_TRIGGER_I2C_6_SHIFT (0x6U) -#define PMIC_FSM_I2C_TRIGGERS_TRIGGER_I2C_7_SHIFT (0x7U) - -/*! - * \brief PMIC FSM NSLEEP1/2 Register Bit Fields - */ -#define PMIC_FSM_NSLEEPX_SET (0x1U) -#define PMIC_FSM_NSLEEPX_RESET (0x0U) - -/** - * \anchor Pmic_Fsm_Mission_State_Max - * \name Maximum limit for mission state - * - * @{ - */ -#define PMIC_FSM_STATE_MAX PMIC_FSM_S2R_STATE -/* @} */ - -/*! - * \brief PMIC FSM NSLEEP TRIGGER Register Bit Fields - */ -#define PMIC_FSM_NSLEEP_TRIGGERS_NSLEEP1B_SHIFT (0x0U) -#define PMIC_FSM_NSLEEP_TRIGGERS_NSLEEP2B_SHIFT (0x1U) - -/*! - * \brief PMIC MISC Control Register Bit Mask - */ -#define PMIC_FSM_MISC_CTRL_LPM_EN_MASK ((uint8_t) \ - (0x01U << PMIC_FSM_MISC_CTRL_LPM_EN_SHIFT)) - -/*! - * \brief PMIC FSM NSLEEP TRIGGER Register Bit Mask - */ -#define PMIC_FSM_I2C_TRIGGERS_TRIGGER_I2C_0_MASK ((uint8_t) \ - (0x01U << PMIC_FSM_I2C_TRIGGERS_TRIGGER_I2C_0_SHIFT)) -#define PMIC_FSM_I2C_TRIGGERS_TRIGGER_I2C_1_MASK ((uint8_t) \ - (0x01U << PMIC_FSM_I2C_TRIGGERS_TRIGGER_I2C_1_SHIFT)) -#define PMIC_FSM_I2C_TRIGGERS_TRIGGER_I2C_2_MASK ((uint8_t) \ - (0x01U << PMIC_FSM_I2C_TRIGGERS_TRIGGER_I2C_2_SHIFT)) -#define PMIC_FSM_I2C_TRIGGERS_TRIGGER_I2C_3_MASK ((uint8_t) \ - (0x01U << PMIC_FSM_I2C_TRIGGERS_TRIGGER_I2C_3_SHIFT)) -#define PMIC_FSM_I2C_TRIGGERS_TRIGGER_I2C_4_MASK ((uint8_t) \ - (0x01U << PMIC_FSM_I2C_TRIGGERS_TRIGGER_I2C_4_SHIFT)) -#define PMIC_FSM_I2C_TRIGGERS_TRIGGER_I2C_5_MASK ((uint8_t) \ - (0x01U << PMIC_FSM_I2C_TRIGGERS_TRIGGER_I2C_5_SHIFT)) -#define PMIC_FSM_I2C_TRIGGERS_TRIGGER_I2C_6_MASK ((uint8_t) \ - (0x01U << PMIC_FSM_I2C_TRIGGERS_TRIGGER_I2C_6_SHIFT)) -#define PMIC_FSM_I2C_TRIGGERS_TRIGGER_I2C_7_MASK ((uint8_t) \ - (0x01U << PMIC_FSM_I2C_TRIGGERS_TRIGGER_I2C_7_SHIFT)) -/*! - * \brief PMIC FSM NSLEEP TRIGGER Register Bit Mask - */ -#define PMIC_FSM_NSLEEP_TRIGGERS_NSLEEP1B_MASK ((uint8_t) \ - (0x01U << PMIC_FSM_NSLEEP_TRIGGERS_NSLEEP1B_SHIFT)) -#define PMIC_FSM_NSLEEP_TRIGGERS_NSLEEP2B_MASK ((uint8_t) \ - (0x01U << PMIC_FSM_NSLEEP_TRIGGERS_NSLEEP2B_SHIFT)) - -/** - * \anchor Pmic_Fsm_Pfsm_Delay_Step_Max - * \name Maximum limit of PFSM Delay Step - * - * @{ - */ -#define PMIC_FSM_PFSM_DELAY_STEP_MAX (31U) -/* @} */ - -/*==========================================================================*/ -/* Structures and Enums */ -/*==========================================================================*/ - -/*==========================================================================*/ -/* Function Declarations */ -/*==========================================================================*/ - -#ifdef __cplusplus -} - -#endif /* __cplusplus */ - -#endif /* PMIC_FSM_PRIV_H_ */ diff --git a/src/pmic_gpio.c b/src/pmic_gpio.c deleted file mode 100644 index 4ed79c1..0000000 --- a/src/pmic_gpio.c +++ /dev/null @@ -1,1668 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ - -/** -* \file pmic_gpio.c -* -* \brief This file contains the default API's for PMIC gpio -* configuration -* -*/ - -#include -#include -#include - -#include -#include -#include -#include - -/*! - * \brief This function is used to get the PMIC GPIO configuration. - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - */ -static void Pmic_get_gpioInOutCfg(const Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_GpioInOutCfg_t **pGpioInOutCfg) -{ - switch(pPmicCoreHandle->pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - pmic_get_lp8764x_gpioInOutCfg(pGpioInOutCfg); - break; - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - pmic_get_tps6594x_gpioInOutCfg(pGpioInOutCfg); - break; - } -} - -/*! - * \brief This function is used to get the PMIC GPIO configuration. - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - */ -static void Pmic_get_gpioIntRegCfg(const Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_GpioIntRegCfg_t **pGpioIntRegCfg) -{ - switch(pPmicCoreHandle->pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - pmic_get_lp8764x_gpioIntRegCfg(pGpioIntRegCfg); - break; - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - pmic_get_tps6594x_gpioIntRegCfg(pGpioIntRegCfg); - break; - } -} - -/*! - * \brief This function is used to validate the PMIC specific pin is valid or - * not. - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - */ -static int32_t Pmic_gpioValidatePin(const uint8_t pmicDeviceType, - const uint8_t pin) -{ - int32_t status = PMIC_ST_SUCCESS; - - switch(pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - if((pin < PMIC_LP8764X_GPIO_PIN_MIN) || - (pin > PMIC_LP8764X_GPIO_PIN_MAX)) - { - status = PMIC_ST_ERR_INV_PARAM; - } - break; - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - if((pin < PMIC_TPS6594X_GPIO_PIN_MIN) || - (pin > PMIC_TPS6594X_GPIO_PIN_MAX)) - { - status = PMIC_ST_ERR_INV_PARAM; - } - break; - } - - return status; -} - -/*! - * \brief This function is used to validate whether GPIO subsystem is - * valid for the programmed pmic device and does the NULL param - * check for pPmicCoreHandle - */ - -static int32_t Pmic_gpioValidateParams(const Pmic_CoreHandle_t *pPmicCoreHandle) -{ - int32_t status = PMIC_ST_ERR_INV_HANDLE; - - if(NULL != pPmicCoreHandle) - { - if ((bool)true == pPmicCoreHandle->pPmic_SubSysInfo->gpioEnable) - { - status = PMIC_ST_SUCCESS; - } - else - { - status = PMIC_ST_ERR_INV_DEVICE; - } - } - - return status; -} - -/*! - * \brief This function is used to validate params and the given gpio pin - * is valid for the specific pmic device. - */ -static int32_t Pmic_gpioParamCheck(const Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t pin) -{ - int32_t status = PMIC_ST_SUCCESS; - - status = Pmic_gpioValidateParams(pPmicCoreHandle); - if(PMIC_ST_SUCCESS == status) - { - status = Pmic_gpioValidatePin(pPmicCoreHandle->pmicDeviceType, pin); - } - - return status; -} - -/*! - * \brief This function is used to validate the parameters for NPWRON or - * ENABLE pin - */ -static int32_t Pmic_gpioNpoweronEnableParamCheck( - const Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_GpioCfg_t *pGpioCfg) -{ - int32_t status = PMIC_ST_SUCCESS; - - status = Pmic_gpioValidateParams(pPmicCoreHandle); - if((PMIC_ST_SUCCESS == status) && (NULL == pGpioCfg)) - { - status = PMIC_ST_ERR_NULL_PARAM; - } - - return status; -} - -/*! - * \brief This function is used to select the device specific register for - * GPIO pins. - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - */ -static void Pmic_gpioSelectRegister(uint8_t pmicDeviceType, - const uint8_t pin, - const uint8_t inOutCfgRegAddr, - uint8_t *pRegAddr) -{ - switch(pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - *pRegAddr = inOutCfgRegAddr; - break; - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - if(PMIC_NPWRON_ENABLE_PIN == pin) - { - *pRegAddr = PMIC_NPWRON_CONF_REGADDR; - } - else - { - *pRegAddr = inOutCfgRegAddr; - } - break; - } -} - -/*! - * \brief This function is used to set the GPIO and NPWRON Pin Functionality - */ -int32_t Pmic_gpioSetPinFunc(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t pin, - const Pmic_GpioCfg_t gpioCfg) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t regAddr = 0U; - uint8_t index = 0U; - Pmic_GpioInOutCfg_t *pGpioInOutCfg = NULL; - - if(PMIC_NPWRON_ENABLE_PIN == pin) - { - if(gpioCfg.pinFunc > PMIC_TPS6594X_NPWRON_PINFUNC_NONE) - { - status = PMIC_ST_ERR_INV_GPIO_FUNC; - } - } - else - { - if(gpioCfg.pinFunc > PMIC_GPIO_PINFUNC_MAX) - { - status = PMIC_ST_ERR_INV_GPIO_FUNC; - } - } - - if(PMIC_ST_SUCCESS == status) - { - /* Set Pmic_GpioIntRegCfg_t array index for given GPIO Pin */ - index = pin - 1U; - - /* Get PMIC gpio configuration */ - Pmic_get_gpioInOutCfg(pPmicCoreHandle, &pGpioInOutCfg); - - Pmic_gpioSelectRegister(pPmicCoreHandle->pmicDeviceType, - pin, - (uint8_t)pGpioInOutCfg[index].regAddr, - ®Addr); - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Reading GPIO conf register */ - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - regAddr, - ®Data); - - if (PMIC_ST_SUCCESS == status) - { - if(PMIC_NPWRON_ENABLE_PIN == pin) - { - /* For nPWRON pin function */ - Pmic_setBitField(®Data, - PMIC_NPWRON_CONF_NPWRON_SEL_SHIFT, - PMIC_NPWRON_CONF_NPWRON_SEL_MASK, - gpioCfg.pinFunc); - } - else - { - /* For GPIO pin function */ - Pmic_setBitField(®Data, - PMIC_GPIOX_CONF_GPIO_SEL_SHIFT, - PMIC_GPIOX_CONF_GPIO_SEL_MASK, - gpioCfg.pinFunc); - } - /* Setting GPIO pin function */ - status = Pmic_commIntf_sendByte(pPmicCoreHandle, - regAddr, - regData); - } - - /* Stop Critical Section Handle */ - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return status; -} - -/*! - * \brief This function is used to get the GPIO and NPWRON Pin Functionality - */ -int32_t Pmic_gpioGetPinFunc(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t pin, - Pmic_GpioCfg_t *pGpioCfg) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t regAddr = 0U; - uint8_t index = 0U; - Pmic_GpioInOutCfg_t *pGpioInOutCfg = NULL; - - /* Set Pmic_GpioIntRegCfg_t array index for given GPIO Pin */ - index = pin - 1U; - - /* Get PMIC gpio configuration */ - Pmic_get_gpioInOutCfg(pPmicCoreHandle, &pGpioInOutCfg); - - Pmic_gpioSelectRegister(pPmicCoreHandle->pmicDeviceType, - pin, - (uint8_t)pGpioInOutCfg[index].regAddr, - ®Addr); - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Reading the GPIO configuration */ - status = Pmic_commIntf_recvByte(pPmicCoreHandle, regAddr, ®Data); - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == status) - { - if(PMIC_NPWRON_ENABLE_PIN == pin) - { - /* For nPWRON pin function */ - pGpioCfg->pinFunc = - Pmic_getBitField(regData, - PMIC_NPWRON_CONF_NPWRON_SEL_SHIFT, - PMIC_NPWRON_CONF_NPWRON_SEL_MASK); - } - else - { - /* For GPIO pin function */ - pGpioCfg->pinFunc = - Pmic_getBitField(regData, - PMIC_GPIOX_CONF_GPIO_SEL_SHIFT, - PMIC_GPIOX_CONF_GPIO_SEL_MASK); - } - } - - return status; -} - -/*! - * \brief This function is used to set the NPWRON Pin Polarity. - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - */ -int32_t Pmic_gpioSetPinPolarity(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_GpioCfg_t gpioCfg) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t regAddr = 0U; - uint8_t bitPos = 0U; - uint8_t bitMask = 0U; - - switch(pPmicCoreHandle->pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - regAddr = PMIC_ENABLE_CONF_REGADDR; - bitPos = PMIC_ENABLE_CONF_ENABLE_POL_SHIFT; - bitMask = PMIC_ENABLE_CONF_ENABLE_POL_MASK; - break; - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - regAddr = PMIC_NPWRON_CONF_REGADDR; - bitPos = PMIC_NPWRON_CONF_ENABLE_POL_SHIFT; - bitMask = PMIC_NPWRON_CONF_ENABLE_POL_MASK; - break; - } - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Reading NPWRON/ENABLE conf register */ - status = Pmic_commIntf_recvByte(pPmicCoreHandle, regAddr, ®Data); - - if (PMIC_ST_SUCCESS == status) - { - /* Setting ENABLE pin polarity */ - Pmic_setBitField(®Data, - bitPos, - bitMask, - gpioCfg.pinPolarity); - - status = Pmic_commIntf_sendByte(pPmicCoreHandle, regAddr, regData); - } - - /* Stop Critical Section Handle */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - return status; -} - -/*! - * \brief This function is used to get the NPWRON Pin Polarity. - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - */ -int32_t Pmic_gpioGetPinPolarity(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_GpioCfg_t *pGpioCfg) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t bitPos = 0U; - uint8_t regAddr = 0U; - uint8_t bitMask = 0U; - - switch(pPmicCoreHandle->pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - regAddr = PMIC_ENABLE_CONF_REGADDR; - bitPos = PMIC_ENABLE_CONF_ENABLE_POL_SHIFT; - bitMask = PMIC_ENABLE_CONF_ENABLE_POL_MASK; - break; - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - regAddr = PMIC_NPWRON_CONF_REGADDR; - bitPos = PMIC_NPWRON_CONF_ENABLE_POL_SHIFT; - bitMask = PMIC_NPWRON_CONF_ENABLE_POL_MASK; - break; - } - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Reading the NPWRON/ENABLE configuration */ - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - regAddr, - ®Data); - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == status) - { - /* Reading Enable pin polarity */ - pGpioCfg->pinPolarity = Pmic_getBitField(regData, bitPos, bitMask); - } - - return status; -} - -/*! - * \brief This function is used to set the GPIO and NPWRON Pin Pull Control - */ -static int32_t Pmic_gpioSetPullCtrl(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t pin, - const Pmic_GpioCfg_t gpioCfg) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t index = 0; - uint8_t regAddr = 0U; - Pmic_GpioInOutCfg_t *pGpioInOutCfg = NULL; - - if(gpioCfg.pullCtrl > PMIC_GPIO_PULL_UP) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == status) - { - /* Set Pmic_GpioIntRegCfg_t array index for given GPIO Pin */ - index = pin - 1U; - - /* Get PMIC gpio configuration */ - Pmic_get_gpioInOutCfg(pPmicCoreHandle, &pGpioInOutCfg); - - Pmic_gpioSelectRegister(pPmicCoreHandle->pmicDeviceType, - pin, - (uint8_t)pGpioInOutCfg[index].regAddr, - ®Addr); - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Reading GPIO/NPWRON conf register */ - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - regAddr, - ®Data); - - if (PMIC_ST_SUCCESS == status) - { - if(PMIC_GPIO_PULL_DISABLED == gpioCfg.pullCtrl) - { - /* Disable pull-up/pull-down feature */ - Pmic_setBitField(®Data, - PMIC_GPIOX_CONF_GPIO_PU_PD_EN_SHIFT, - PMIC_GPIOX_CONF_GPIO_PU_PD_EN_MASK, - PMIC_GPIO_PU_PD_DISABLE); - } - - if((PMIC_GPIO_PULL_UP == gpioCfg.pullCtrl) || - (PMIC_GPIO_PULL_DOWN == gpioCfg.pullCtrl)) - { - /* Enable pull-up/pull-down feature */ - Pmic_setBitField(®Data, - PMIC_GPIOX_CONF_GPIO_PU_PD_EN_SHIFT, - PMIC_GPIOX_CONF_GPIO_PU_PD_EN_MASK, - PMIC_GPIO_PU_PD_ENABLE); - - if(PMIC_GPIO_PULL_UP == gpioCfg.pullCtrl) - { - /* select pull-up resistor */ - Pmic_setBitField(®Data, - PMIC_GPIOX_CONF_GPIO_PU_SEL_SHIFT, - PMIC_GPIOX_CONF_GPIO_PU_SEL_MASK, - PMIC_GPIO_PU_SELECT); - } - else - { - /* Select pull-down resistor */ - Pmic_setBitField(®Data, - PMIC_GPIOX_CONF_GPIO_PU_SEL_SHIFT, - PMIC_GPIOX_CONF_GPIO_PU_SEL_MASK, - PMIC_GPIO_PD_SELECT); - } - } - status = Pmic_commIntf_sendByte(pPmicCoreHandle, - regAddr, - regData); - } - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return status; -} - -/*! - * \brief This function is used to get the GPIO and NPWRON Pin Pull Control - */ -int32_t Pmic_gpioGetPullCtrl(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t pin, - Pmic_GpioCfg_t *pGpioCfg) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t regAddr = 0U; - Pmic_GpioInOutCfg_t *pGpioInOutCfg = NULL; - uint8_t index = 0; - - /* Set Pmic_GpioIntRegCfg_t array index for given GPIO Pin */ - index = pin - 1U; - - /* Get PMIC gpio configuration */ - Pmic_get_gpioInOutCfg(pPmicCoreHandle, &pGpioInOutCfg); - - Pmic_gpioSelectRegister(pPmicCoreHandle->pmicDeviceType, - pin, - (uint8_t)pGpioInOutCfg[index].regAddr, - ®Addr); - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Reading the GPIO configuration */ - status = Pmic_commIntf_recvByte(pPmicCoreHandle, regAddr, ®Data); - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == status) - { - /* Reading gpio pull control */ - if(Pmic_getBitField(regData, - PMIC_GPIOX_CONF_GPIO_PU_PD_EN_SHIFT, - PMIC_GPIOX_CONF_GPIO_PU_PD_EN_MASK) == 0U) - { - pGpioCfg->pullCtrl = PMIC_GPIO_PULL_DISABLED; - } - else if(Pmic_getBitField(regData, - PMIC_GPIOX_CONF_GPIO_PU_SEL_SHIFT, - PMIC_GPIOX_CONF_GPIO_PU_SEL_MASK) != 0U) - { - pGpioCfg->pullCtrl = PMIC_GPIO_PULL_UP; - } - else - { - pGpioCfg->pullCtrl = PMIC_GPIO_PULL_DOWN; - } - } - - return status; -} - -/*! - * \brief This function is used to set the GPIO Pin Direction - */ -static int32_t Pmic_gpioSetPinDir(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t pin, - const Pmic_GpioCfg_t gpioCfg) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t index = 0U; - Pmic_GpioInOutCfg_t *pGpioInOutCfg = NULL; - - if(gpioCfg.pinDir > PMIC_GPIO_OUTPUT) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == status) - { - /* Set Pmic_GpioIntRegCfg_t array index for given GPIO Pin */ - index = pin - 1U; - - /* Get PMIC gpio configuration */ - Pmic_get_gpioInOutCfg(pPmicCoreHandle, &pGpioInOutCfg); - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Reading GPIO/NPWRON conf register */ - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - pGpioInOutCfg[index].regAddr, - ®Data); - - if (PMIC_ST_SUCCESS == status) - { - /* set gpio pin direction */ - Pmic_setBitField(®Data, - PMIC_GPIOX_CONF_GPIO_DIR_SHIFT, - PMIC_GPIOX_CONF_GPIO_DIR_MASK, - gpioCfg.pinDir); - - status = Pmic_commIntf_sendByte(pPmicCoreHandle, - pGpioInOutCfg[index].regAddr, - regData); - } - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return status; -} - -/*! - * \brief This function is used to get the GPIO Pin Direction - */ -static int32_t Pmic_gpioGetPinDir(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t pin, - Pmic_GpioCfg_t *pGpioCfg) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - Pmic_GpioInOutCfg_t *pGpioInOutCfg = NULL; - uint8_t index = 0U; - - /* Set Pmic_GpioIntRegCfg_t array index for given GPIO Pin */ - index = pin - 1U; - - /* Get PMIC gpio configuration */ - Pmic_get_gpioInOutCfg(pPmicCoreHandle, &pGpioInOutCfg); - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Reading the GPIO configuration */ - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - pGpioInOutCfg[index].regAddr, - ®Data); - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == status) - { - /* Reading gpio direction */ - pGpioCfg->pinDir = Pmic_getBitField(regData, - PMIC_GPIOX_CONF_GPIO_DIR_SHIFT, - PMIC_GPIOX_CONF_GPIO_DIR_MASK); - } - - return status; -} - -/*! - * \brief This function is used to set the GPIO and NPWRON Deglitch Time - */ -static int32_t Pmic_gpioSetDeglitchTime(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t pin, - const Pmic_GpioCfg_t gpioCfg) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t index = 0U; - uint8_t regAddr = 0U; - Pmic_GpioInOutCfg_t *pGpioInOutCfg = NULL; - - if(gpioCfg.deglitchEnable > PMIC_GPIO_DEGLITCH_ENABLE) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == status) - { - /* Set Pmic_GpioIntRegCfg_t array index for given GPIO Pin */ - index = pin - 1U; - - /* Get PMIC gpio configuration */ - Pmic_get_gpioInOutCfg(pPmicCoreHandle, &pGpioInOutCfg); - - Pmic_gpioSelectRegister(pPmicCoreHandle->pmicDeviceType, - pin, - (uint8_t)pGpioInOutCfg[index].regAddr, - ®Addr); - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Reading GPIO/NPWRON conf register */ - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - regAddr, - ®Data); - - if (PMIC_ST_SUCCESS == status) - { - /* setting deglitch time */ - Pmic_setBitField(®Data, - PMIC_GPIOX_CONF_GPIO_DEGLITCH_EN_SHIFT, - PMIC_GPIOX_CONF_GPIO_DEGLITCH_EN_MASK, - gpioCfg.deglitchEnable); - - status = Pmic_commIntf_sendByte(pPmicCoreHandle, - regAddr, - regData); - } - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return status; -} - -/*! - * \brief This function is used to get the GPIO and NPWRON Deglitch time - */ -int32_t Pmic_gpioGetDeglitchTime(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t pin, - Pmic_GpioCfg_t *pGpioCfg) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t regAddr = 0U; - uint8_t index = 0U; - Pmic_GpioInOutCfg_t *pGpioInOutCfg = NULL; - - /* Set Pmic_GpioIntRegCfg_t array index for given GPIO Pin */ - index = pin - 1U; - - /* Get PMIC gpio configuration */ - Pmic_get_gpioInOutCfg(pPmicCoreHandle, &pGpioInOutCfg); - - Pmic_gpioSelectRegister(pPmicCoreHandle->pmicDeviceType, - pin, - (uint8_t)pGpioInOutCfg[index].regAddr, - ®Addr); - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Reading the GPIO configuration */ - status = Pmic_commIntf_recvByte(pPmicCoreHandle, regAddr, ®Data); - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == status) - { - /* Reading signal deglitch time */ - pGpioCfg->deglitchEnable = Pmic_getBitField( - regData, - PMIC_GPIOX_CONF_GPIO_DEGLITCH_EN_SHIFT, - PMIC_GPIOX_CONF_GPIO_DEGLITCH_EN_MASK); - } - - return status; -} - -/*! - * \brief This function is used to set the GPIO Output Signal Type - */ -static int32_t Pmic_gpioSetOutputSignalType( - Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t pin, - const Pmic_GpioCfg_t gpioCfg) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t index = 0U; - uint8_t regAddr = 0U; - Pmic_GpioInOutCfg_t *pGpioInOutCfg = NULL; - - if(gpioCfg.outputSignalType > PMIC_GPIO_OPEN_DRAIN_OUTPUT) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == status) - { - /* Set Pmic_GpioIntRegCfg_t array index for given GPIO Pin */ - index = pin - 1U; - - /* Get PMIC gpio configuration */ - Pmic_get_gpioInOutCfg(pPmicCoreHandle, &pGpioInOutCfg); - - Pmic_gpioSelectRegister(pPmicCoreHandle->pmicDeviceType, - pin, - (uint8_t)pGpioInOutCfg[index].regAddr, - ®Addr); - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Reading GPIO/NPWRON conf register */ - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - regAddr, - ®Data); - - if(PMIC_ST_SUCCESS == status) - { - /* selecting output type */ - Pmic_setBitField(®Data, - PMIC_GPIOX_CONF_GPIO_OD_SHIFT, - PMIC_GPIOX_CONF_GPIO_OD_MASK, - gpioCfg.outputSignalType); - - status = Pmic_commIntf_sendByte(pPmicCoreHandle, - regAddr, - regData); - } - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return status; -} - -/*! - * \brief This function is used to get the GPIO Output Signal Type - */ -static int32_t Pmic_gpioGetOutputSignalType(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t pin, - Pmic_GpioCfg_t *pGpioCfg) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t regAddr = 0U; - uint8_t index = 0U; - Pmic_GpioInOutCfg_t *pGpioInOutCfg = NULL; - - /* Set Pmic_GpioIntRegCfg_t array index for given GPIO Pin */ - index = pin - 1U; - - /* Get PMIC gpio configuration */ - Pmic_get_gpioInOutCfg(pPmicCoreHandle, &pGpioInOutCfg); - - Pmic_gpioSelectRegister(pPmicCoreHandle->pmicDeviceType, - pin, - (uint8_t)pGpioInOutCfg[index].regAddr, - ®Addr); - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Reading the GPIO configuration */ - status = Pmic_commIntf_recvByte(pPmicCoreHandle, regAddr, ®Data); - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == status) - { - /* Reading output signal type */ - pGpioCfg->outputSignalType = Pmic_getBitField( - regData, - PMIC_GPIOX_CONF_GPIO_OD_SHIFT, - PMIC_GPIOX_CONF_GPIO_OD_MASK); - - } - - return status; -} - -/*! - * \brief This function is used to Enable GPIO Interrupt - */ -static int32_t Pmic_gpioIntrEnable(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t pin, - const uint8_t intrType, - const uint8_t maskPol) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - Pmic_GpioIntRegCfg_t *pGpioIntRegCfg = NULL; - uint8_t bitMask = 0U; - - Pmic_get_gpioIntRegCfg(pPmicCoreHandle, &pGpioIntRegCfg); - - /* Start Critical section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - pGpioIntRegCfg[pin].intRegAddr, - ®Data); - - if(PMIC_ST_SUCCESS == status) - { - /* Configuring the GPIOx_FSM_MASK and GPIOx_FSM_MASK_POL fields in the - PMIC_FSM_TRIG_MASK Register */ - bitMask = (PMIC_GPIO_IN_OUT_X_GPIOX_IN_OUT_BITFIELD << - pGpioIntRegCfg[pin].intRegBitPos); - Pmic_setBitField(®Data, - pGpioIntRegCfg[pin].intRegBitPos, - bitMask, - PMIC_GPIO_INT_ENABLE); - bitMask = (PMIC_GPIO_IN_OUT_X_GPIOX_IN_OUT_BITFIELD << - pGpioIntRegCfg[pin].intRegPolBitPos); - Pmic_setBitField(®Data, - pGpioIntRegCfg[pin].intRegPolBitPos, - bitMask, - maskPol); - status = Pmic_commIntf_sendByte(pPmicCoreHandle, - pGpioIntRegCfg[pin].intRegAddr, - regData); - } - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == status) - { - /* Configuring GPIO MASK Registers */ - status = Pmic_irqGpioMaskIntr(pPmicCoreHandle, - pin, - PMIC_IRQ_UNMASK, - intrType); - } - - return status; -} - -/*! - * \brief This function is used to Disable GPIO Interrupt - */ -static int32_t Pmic_gpioIntrDisable(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t pin) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t bitMask = 0U; - Pmic_GpioIntRegCfg_t *pGpioIntRegCfg = NULL; - - Pmic_get_gpioIntRegCfg(pPmicCoreHandle, &pGpioIntRegCfg); - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - pGpioIntRegCfg[pin].intRegAddr, - ®Data); - - if(PMIC_ST_SUCCESS == status) - { - /* Masking the GPIOx_FSM_MASK register */ - bitMask = (PMIC_GPIO_IN_OUT_X_GPIOX_IN_OUT_BITFIELD << - pGpioIntRegCfg[pin].intRegBitPos); - Pmic_setBitField(®Data, - pGpioIntRegCfg[pin].intRegBitPos, - bitMask, - PMIC_GPIO_INT_MASK); - status = Pmic_commIntf_sendByte(pPmicCoreHandle, - pGpioIntRegCfg[pin].intRegAddr, - regData); - } - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == status) - { - /* Masking the GPIO MASK Register */ - status = Pmic_irqGpioMaskIntr(pPmicCoreHandle, - pin, - PMIC_IRQ_MASK, - PMIC_IRQ_GPIO_RISE_FALL_INT_TYPE); - } - - return status; -} - -/*! - * \brief This function is used to set the GPIO deglitch time, Output Signal - * Type and Pull UP/Down - */ -static int32_t Pmic_gpioSetDeglitchOutsigtypePulCtrlCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t pin, - const Pmic_GpioCfg_t gpioCfg) -{ - int32_t status = PMIC_ST_SUCCESS; - - if((bool)true == pmic_validParamCheck(gpioCfg.validParams, - PMIC_GPIO_CFG_DEGLITCH_VALID)) - { - /* setting deglitch time */ - status = Pmic_gpioSetDeglitchTime(pPmicCoreHandle, pin, gpioCfg); - } - - if((PMIC_ST_SUCCESS == status) && - ((bool)true == pmic_validParamCheck(gpioCfg.validParams, - PMIC_GPIO_CFG_OD_VALID))) - { - /* setting open drain */ - status = Pmic_gpioSetOutputSignalType(pPmicCoreHandle, - pin, - gpioCfg); - } - - if((PMIC_ST_SUCCESS == status) && - ((bool)true == pmic_validParamCheck(gpioCfg.validParams, - PMIC_GPIO_CFG_PULL_VALID))) - { - /* setting Pull UP/Down */ - status = Pmic_gpioSetPullCtrl(pPmicCoreHandle, pin, gpioCfg); - } - - return status; -} - -/*! - * \brief API to set PMIC GPIO configuration. - * - * Requirement: REQ_TAG(PDK-5808), REQ_TAG(PDK-5844), REQ_TAG(PDK-9111), - * REQ_TAG(PDK-9157) - * Design: did_pmic_gpio_cfg_readback, did_pmic_lpstandby_wkup_cfg - * Architecture: aid_pmic_gpio_cfg - * - * This function is used to set the required configuration for the - * specified GPIO pin when corresponding validParam bit field is set in - * the Pmic_GpioCfg_t - * For more information \ref Pmic_GpioCfg_t - * Note: Application has to ensure to do proper configuration of GPIO - * pin when connected to Enable pin of other peripherals on the - * board. If not configured properly then it may down the - * peripheral or system - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pin [IN] PMIC GPIO pin number. - * Valid values for TPS6594x Leo Device - * \ref Pmic_Tps6594xLeo_GpioPin. - * Valid values for LP8764x HERA Device - * \ref Pmic_Lp8764xHera_GpioPin. - * \param gpioCfg [IN] set required configuration for - * the specified GPIO pin. - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_gpioSetConfiguration(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t pin, - const Pmic_GpioCfg_t gpioCfg) -{ - int32_t status = PMIC_ST_SUCCESS; - - /* Validation of input Parameters */ - status = Pmic_gpioParamCheck(pPmicCoreHandle, pin); - - if((PMIC_ST_SUCCESS == status) && - ((bool)true == pmic_validParamCheck(gpioCfg.validParams, - PMIC_GPIO_CFG_PINFUNC_VALID))) - { - /* Setting pin function */ - status = Pmic_gpioSetPinFunc(pPmicCoreHandle, pin, gpioCfg); - } - - if((PMIC_ST_SUCCESS == status) && - ((bool)true == pmic_validParamCheck(gpioCfg.validParams, - PMIC_GPIO_CFG_DIR_VALID))) - { - /* set gpio pin direction */ - status = Pmic_gpioSetPinDir(pPmicCoreHandle, pin, gpioCfg); - } - - if(PMIC_ST_SUCCESS == status) - { - /* setting deglitch time/ open drain/ Pull UP/Down*/ - status = Pmic_gpioSetDeglitchOutsigtypePulCtrlCfg(pPmicCoreHandle, - pin, - gpioCfg); - } - - return status; -} - -/*! - * \brief API to get PMIC GPIO configuration. - * - * Requirement: REQ_TAG(PDK-5808) - * Design: did_pmic_gpio_cfg_readback - * Architecture: aid_pmic_gpio_cfg - * - * This function is used to read the configuration for the specified - * GPIO pin when corresponding validParam bit field is set in - * the Pmic_GpioCfg_t - * For more information \ref Pmic_GpioCfg_t - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param pin [IN] PMIC GPIO pin number. - * Valid values for TPS6594x Leo Device - * \ref Pmic_Tps6594xLeo_GpioPin. - * Valid values for LP8764x HERA Device - * \ref Pmic_Lp8764xHera_GpioPin. - * \param pGpioCfg [IN/OUT] Pointer to store specified GPIO pin - * configuration - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_gpioGetConfiguration(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t pin, - Pmic_GpioCfg_t *pGpioCfg) -{ - int32_t status = PMIC_ST_SUCCESS; - - /* Parameter Validation */ - status = Pmic_gpioParamCheck(pPmicCoreHandle, pin); - - if((PMIC_ST_SUCCESS == status) && (NULL == pGpioCfg)) - { - status = PMIC_ST_ERR_NULL_PARAM; - } - - if((PMIC_ST_SUCCESS == status) && - ((bool)true == pmic_validParamCheck(pGpioCfg->validParams, - PMIC_GPIO_CFG_DIR_VALID))) - { - status = Pmic_gpioGetPinDir(pPmicCoreHandle, pin, pGpioCfg); - } - - if((PMIC_ST_SUCCESS == status) && - ((bool)true == pmic_validParamCheck(pGpioCfg->validParams, - PMIC_GPIO_CFG_OD_VALID))) - { - status = Pmic_gpioGetOutputSignalType(pPmicCoreHandle, pin, pGpioCfg); - } - - if((PMIC_ST_SUCCESS == status) && - ((bool)true == pmic_validParamCheck(pGpioCfg->validParams, - PMIC_GPIO_CFG_DEGLITCH_VALID))) - { - status = Pmic_gpioGetDeglitchTime(pPmicCoreHandle, pin, pGpioCfg); - } - - if((PMIC_ST_SUCCESS == status) && - ((bool)true == pmic_validParamCheck(pGpioCfg->validParams, - PMIC_GPIO_CFG_PINFUNC_VALID))) - { - status = Pmic_gpioGetPinFunc(pPmicCoreHandle, pin, pGpioCfg); - } - - if((PMIC_ST_SUCCESS == status) && - ((bool)true == pmic_validParamCheck(pGpioCfg->validParams, - PMIC_GPIO_CFG_PULL_VALID))) - { - status = Pmic_gpioGetPullCtrl(pPmicCoreHandle, pin, pGpioCfg); - } - - return status; -} - -/*! - * \brief This function is used to set the PMIC GPIO Pin Value - */ -static int32_t Pmic_gpioSetPinValue(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_GpioInOutCfg_t *pGpioInOutCfg, - const uint8_t pinValue, - uint8_t index) -{ - uint8_t regData = 0U; - int32_t status = PMIC_ST_SUCCESS; - uint8_t bitMask = 0U; - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* checking for the pin direction to be output */ - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - pGpioInOutCfg[index].regAddr, - ®Data); - - if(PMIC_ST_SUCCESS == status) - { - if(Pmic_getBitField(regData, - PMIC_GPIOX_CONF_GPIO_DIR_SHIFT, - PMIC_GPIOX_CONF_GPIO_DIR_MASK) == - PMIC_GPIO_OUTPUT) - { - /* Setting the GPIO value */ - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - pGpioInOutCfg[index].outRegAddr, - ®Data); - if(PMIC_ST_SUCCESS == status) - { - bitMask = (PMIC_GPIO_IN_OUT_X_GPIOX_IN_OUT_BITFIELD << - pGpioInOutCfg[index].outRegBitPos); - Pmic_setBitField(®Data, - pGpioInOutCfg[index].outRegBitPos, - bitMask, - pinValue); - status = Pmic_commIntf_sendByte( - pPmicCoreHandle, - pGpioInOutCfg[index].outRegAddr, - regData); - } - } - else - { - /* setValue is valid only for output pins */ - status = PMIC_ST_ERR_INV_PARAM; - } - } - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - return status; -} - -/*! - * \brief API to set PMIC GPIO value. - * - * Requirement: REQ_TAG(PDK-5808) - * Design: did_pmic_gpio_cfg_readback - * Architecture: aid_pmic_gpio_cfg - * - * This function is used to configure the signal level of the - * specified GPIO pin. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pin [IN] PMIC GPIO pin number. - * Valid values for TPS6594x Leo Device - * \ref Pmic_Tps6594xLeo_GpioPin. - * Valid values for LP8764x HERA Device - * \ref Pmic_Lp8764xHera_GpioPin. - * \param pinValue [IN] PMIC GPIO signal level High/Low to be - * configured. - * Valid values \ref Pmic_Gpio_SignalLvl. - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_gpioSetValue(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t pin, - const uint8_t pinValue) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t index = 0U; - Pmic_GpioInOutCfg_t *pGpioInOutCfg = NULL; - - status = Pmic_gpioParamCheck(pPmicCoreHandle, pin); - - /* Set Pmic_GpioIntRegCfg_t array index for given GPIO Pin */ - index = pin - 1U; - - if((PMIC_ST_SUCCESS == status) && - (pinValue > PMIC_GPIO_HIGH)) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == status) - { - /* Get PMIC gpio configuration */ - Pmic_get_gpioInOutCfg(pPmicCoreHandle, &pGpioInOutCfg); - - /* Set PMIC gpio pin value */ - status = Pmic_gpioSetPinValue(pPmicCoreHandle, - pGpioInOutCfg, - pinValue, - index); - } - - return status; -} - -/*! - * \brief API to get PMIC GPIO value. - * - * Requirement: REQ_TAG(PDK-5808) - * Design: did_pmic_gpio_cfg_readback - * Architecture: aid_pmic_gpio_cfg - * - * This function is used to read the signal level of the gpio pin - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param pin [IN] PMIC GPIO pin number. - * Valid values for TPS6594x Leo Device - * \ref Pmic_Tps6594xLeo_GpioPin. - * Valid values for LP8764x HERA Device - * \ref Pmic_Lp8764xHera_GpioPin. - * \param pPinValue [OUT] To store PMIC GPIO signal level High/Low. - * Valid values \ref Pmic_Gpio_SignalLvl - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_gpioGetValue(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t pin, - uint8_t *pPinValue) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t index = 0U; - Pmic_GpioInOutCfg_t *pGpioInOutCfg = NULL; - uint8_t bitMask = 0U; - - /* Parameter Validation */ - status = Pmic_gpioParamCheck(pPmicCoreHandle, pin); - - /* Set Pmic_GpioIntRegCfg_t array index for given GPIO Pin */ - index = pin - 1U; - - if((PMIC_ST_SUCCESS == status) && (NULL == pPinValue)) - { - status = PMIC_ST_ERR_NULL_PARAM; - } - - if(PMIC_ST_SUCCESS == status) - { - /* Get PMIC gpio configuration */ - Pmic_get_gpioInOutCfg(pPmicCoreHandle, &pGpioInOutCfg); - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Reading the pin value */ - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - pGpioInOutCfg[index].inRegAddr, - ®Data); - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - if(PMIC_ST_SUCCESS == status) - { - bitMask = (PMIC_GPIO_IN_OUT_X_GPIOX_IN_OUT_BITFIELD << - pGpioInOutCfg[index].inRegBitPos); - - if(Pmic_getBitField(regData, - pGpioInOutCfg[index].inRegBitPos, - bitMask) != 0U) - { - *pPinValue = PMIC_GPIO_HIGH; - } - else - { - *pPinValue = PMIC_GPIO_LOW; - } - } - - return status; -} - -/*! - * \brief API to set PMIC GPIO direction. - * - * Requirement: REQ_TAG(PDK-5808) - * Design: did_pmic_gpio_cfg_readback - * Architecture: aid_pmic_gpio_cfg - * - * This function is used to configure the direction of the - * specified GPIO pin. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pin [IN] PMIC GPIO pin number. - * Valid values for TPS6594x Leo Device - * \ref Pmic_Tps6594xLeo_GpioPin. - * Valid values for LP8764x HERA Device - * \ref Pmic_Lp8764xHera_GpioPin. - * \param pinDir [IN] PMIC GPIO signal direction In/Out to be - * configured. - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_gpioSetDir(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t pin, - const uint8_t pinDir) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_GpioCfg_t gpioCfg; - - status = Pmic_gpioParamCheck(pPmicCoreHandle, pin); - - if((PMIC_ST_SUCCESS == status) && - (pinDir > PMIC_GPIO_OUTPUT)) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == status) - { - gpioCfg.pinDir = pinDir; - /* Set PMIC gpio pin value */ - status = Pmic_gpioSetPinDir(pPmicCoreHandle, pin, gpioCfg); - } - - return status; -} - -/*! - * \brief API to enable/disable GPIO interrupt. - * - * Requirement: REQ_TAG(PDK-5808), REQ_TAG(PDK-9159), REQ_TAG(PDK-9329) - * Design: did_pmic_gpio_cfg_readback - * Architecture: aid_pmic_gpio_cfg - * - * This function is used to enable GPIO pin Interrupts - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pin [IN] PMIC GPIO number. - * Valid values for TPS6594x Leo Device - * \ref Pmic_Tps6594xLeo_GpioPin. - * Valid values for LP8764x HERA Device - * \ref Pmic_Lp8764xHera_GpioPin. - * \param intrType [IN] Interrupt type \ref Pmic_GpioInterruptCfg - * \param maskPol [IN] FSM trigger masking polarity select for GPIO. - * Valid values - * \ref Pmic_GpioInterruptPolCfg. - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_gpioSetIntr(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t pin, - const uint8_t intrType, - const uint8_t maskPol) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t index = 0U; - - /* Parameter Validation */ - status = Pmic_gpioParamCheck(pPmicCoreHandle, pin); - - /* Set Pmic_GpioIntRegCfg_t array index for given GPIO Pin */ - index = pin - 1U; - - if((PMIC_ST_SUCCESS == status) && (intrType > PMIC_GPIO_DISABLE_INTERRUPT)) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - if((PMIC_ST_SUCCESS == status) && (maskPol > PMIC_GPIO_POL_HIGH)) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == status) - { - if(PMIC_GPIO_DISABLE_INTERRUPT == intrType) - { - status = Pmic_gpioIntrDisable(pPmicCoreHandle, index); - } - else - { - status = Pmic_gpioIntrEnable(pPmicCoreHandle, - index, - intrType, - maskPol); - } - } - - return status; -} - -/*! - * \brief This function is used to set the NPWRON/Enable deglitch time and - * NPWRON/Enable Pull UP/Down configuration - * Valid only for TPS6594x PMIC - */ -int32_t Pmic_gpioSetNPwronEnableDeglitchPullCtrlCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_GpioCfg_t gpioCfg) -{ - int32_t status = PMIC_ST_SUCCESS; - - if((bool)true == pmic_validParamCheck(gpioCfg.validParams, - PMIC_GPIO_CFG_DEGLITCH_VALID)) - { - if(gpioCfg.deglitchEnable > PMIC_GPIO_DEGLITCH_ENABLE) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == status) - { - /* setting NPWRON/Enable deglitch time */ - status = Pmic_gpioSetDeglitchTime(pPmicCoreHandle, - PMIC_NPWRON_ENABLE_PIN, - gpioCfg); - } - } - - if((PMIC_ST_SUCCESS == status) && - ((bool)true == pmic_validParamCheck(gpioCfg.validParams, - PMIC_GPIO_CFG_PULL_VALID))) - { - if(gpioCfg.pullCtrl > PMIC_GPIO_PULL_UP) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == status) - { - /* setting NPWRON/Enable Pull UP/Down */ - status = Pmic_gpioSetPullCtrl(pPmicCoreHandle, - PMIC_NPWRON_ENABLE_PIN, - gpioCfg); - } - } - - return status; -} - -/*! - * \brief API to set configuration for NPWRON/Enable pin. - * - * Requirement: REQ_TAG(PDK-5808), REQ_TAG(PDK-9111), REQ_TAG(PDK-9162) - * Design: did_pmic_gpio_cfg_readback - * Architecture: aid_pmic_gpio_cfg - * - * This function is used to set the required configuration for the - * NPWRON OR ENABLE pin when corresponding validParam bit field is set - * in the Pmic_GpioCfg_t - * For more information \ref Pmic_GpioCfg_t - * NPWRON is valid only for TPS6594x Leo Device. - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param gpioCfg [IN] Set NPWRON or ENABLE GPIO pin - * configuration - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_gpioSetNPwronEnablePinConfiguration( - Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_GpioCfg_t gpioCfg) -{ - int32_t status = PMIC_ST_SUCCESS; - - /* Validation of input Parameters */ - status = Pmic_gpioValidateParams(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == status) - { - switch(pPmicCoreHandle->pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - status = Pmic_gpioLp8764xSetEnablePinConfiguration( - pPmicCoreHandle, - gpioCfg); - break; - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - status = Pmic_gpioTps6594xSetNPwronPinConfiguration( - pPmicCoreHandle, - gpioCfg); - break; - } - } - - return status; -} - -/*! - * \brief API to get configuration for NPWRON/Enable pin. - * - * Requirement: REQ_TAG(PDK-5808) - * Design: did_pmic_gpio_cfg_readback - * Architecture: aid_pmic_gpio_cfg - * - * This function is used to read the configuration for the - * NPWRON OR ENABLE pin when corresponding validParam bit field is set - * in the Pmic_GpioCfg_t - * For more information \ref Pmic_GpioCfg_t - * NPWRON is valid only for TPS6594x Leo Device. - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param pGpioCfg [IN/OUT] Pointer to store NPWRON OR ENABLE GPIO - * pin configuration - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_gpioGetNPwronEnablePinConfiguration( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_GpioCfg_t *pGpioCfg) -{ - int32_t status = PMIC_ST_SUCCESS; - - /* Parameter Validation */ - status = Pmic_gpioNpoweronEnableParamCheck(pPmicCoreHandle, pGpioCfg); - - if(PMIC_ST_SUCCESS == status) - { - switch(pPmicCoreHandle->pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - status = Pmic_gpioLp8764xGetEnablePinConfiguration( - pPmicCoreHandle, - pGpioCfg); - break; - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - status = Pmic_gpioTps6594xGetNPwronPinConfiguration( - pPmicCoreHandle, - pGpioCfg); - break; - } - } - - return status; -} diff --git a/src/pmic_gpio_priv.h b/src/pmic_gpio_priv.h deleted file mode 100644 index 2bdc43f..0000000 --- a/src/pmic_gpio_priv.h +++ /dev/null @@ -1,427 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ - -/** - * \file pmic_gpio_priv.h - * - * \brief: This file contains macro definitions, structures and function - * prototypes for driver specific PMIC gpio configuration - */ - -#ifndef PMIC_GPIO_PRIV_H_ -#define PMIC_GPIO_PRIV_H_ - -/* ========================================================================== */ -/* Include Files */ -/* ========================================================================== */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* ========================================================================== */ -/* Macros & Typedefs */ -/* ========================================================================== */ -/*! - * \brief GPIO Register Address - */ -#define PMIC_GPIO1_CONF_REGADDR (0x31U) -#define PMIC_GPIO2_CONF_REGADDR (0x32U) -#define PMIC_GPIO3_CONF_REGADDR (0x33U) -#define PMIC_GPIO4_CONF_REGADDR (0x34U) -#define PMIC_GPIO5_CONF_REGADDR (0x35U) -#define PMIC_GPIO6_CONF_REGADDR (0x36U) -#define PMIC_GPIO7_CONF_REGADDR (0x37U) -#define PMIC_GPIO8_CONF_REGADDR (0x38U) -#define PMIC_GPIO9_CONF_REGADDR (0x39U) -#define PMIC_GPIO10_CONF_REGADDR (0x3AU) -#define PMIC_GPIO_OUT_1_REGADDR (0x3DU) -#define PMIC_GPIO_OUT_2_REGADDR (0x3EU) -#define PMIC_GPIO_IN_1_REGADDR (0x3FU) -#define PMIC_GPIO_IN_2_REGADDR (0x40U) - -/*! - * \brief GPIO Interrupt Mask Register Address - */ -#define PMIC_FSM_TRIG_MASK_1_REGADDR (0x46U) -#define PMIC_FSM_TRIG_MASK_2_REGADDR (0x47U) -#define PMIC_FSM_TRIG_MASK_3_REGADDR (0x48U) - -/*! - * \brief GPIO Register bit fields for all GPIO pins - */ -#define PMIC_GPIOX_CONF_GPIO_SEL_SHIFT (0x05U) -#define PMIC_GPIOX_CONF_GPIO_DEGLITCH_EN_SHIFT (0x04U) -#define PMIC_GPIOX_CONF_GPIO_PU_PD_EN_SHIFT (0x03U) -#define PMIC_GPIOX_CONF_GPIO_PU_SEL_SHIFT (0x02U) -#define PMIC_GPIOX_CONF_GPIO_OD_SHIFT (0x01U) -#define PMIC_GPIOX_CONF_GPIO_DIR_SHIFT (0x00U) - -/*! - * \brief GPIO IN Register bit fields - */ -#define PMIC_GPIO_IN_1_GPIO1_IN_SHIFT (0x00U) -#define PMIC_GPIO_IN_1_GPIO2_IN_SHIFT (0x01U) -#define PMIC_GPIO_IN_1_GPIO3_IN_SHIFT (0x02U) -#define PMIC_GPIO_IN_1_GPIO4_IN_SHIFT (0x03U) -#define PMIC_GPIO_IN_1_GPIO5_IN_SHIFT (0x04U) -#define PMIC_GPIO_IN_1_GPIO6_IN_SHIFT (0x05U) -#define PMIC_GPIO_IN_1_GPIO7_IN_SHIFT (0x06U) -#define PMIC_GPIO_IN_1_GPIO8_IN_SHIFT (0x07U) -#define PMIC_GPIO_IN_2_GPIO9_IN_SHIFT (0x00U) -#define PMIC_GPIO_IN_2_GPIO10_IN_SHIFT (0x01U) - -/*! - * \brief GPIO OUT Register bit fields - */ -#define PMIC_GPIO_OUT_1_GPIO1_OUT_SHIFT (0x00U) -#define PMIC_GPIO_OUT_1_GPIO2_OUT_SHIFT (0x01U) -#define PMIC_GPIO_OUT_1_GPIO3_OUT_SHIFT (0x02U) -#define PMIC_GPIO_OUT_1_GPIO4_OUT_SHIFT (0x03U) -#define PMIC_GPIO_OUT_1_GPIO5_OUT_SHIFT (0x04U) -#define PMIC_GPIO_OUT_1_GPIO6_OUT_SHIFT (0x05U) -#define PMIC_GPIO_OUT_1_GPIO7_OUT_SHIFT (0x06U) -#define PMIC_GPIO_OUT_1_GPIO8_OUT_SHIFT (0x07U) -#define PMIC_GPIO_OUT_2_GPIO9_OUT_SHIFT (0x00U) -#define PMIC_GPIO_OUT_2_GPIO10_OUT_SHIFT (0x01U) - -/*! - * \brief GPIO FSM TRIG Mask Register bit fields - */ -/*! Bit fields for PMIC_FSM_TRIG_MASK_1_REG */ -#define PMIC_FSM_TRIG_MASK_1_GPIO1_FSM_MASK_SHIFT (0x0U) -#define PMIC_FSM_TRIG_MASK_1_GPIO1_FSM_MASK_POL_SHIFT (0x1U) -#define PMIC_FSM_TRIG_MASK_1_GPIO2_FSM_MASK_SHIFT (0x2U) -#define PMIC_FSM_TRIG_MASK_1_GPIO2_FSM_MASK_POL_SHIFT (0x3U) -#define PMIC_FSM_TRIG_MASK_1_GPIO3_FSM_MASK_SHIFT (0x4U) -#define PMIC_FSM_TRIG_MASK_1_GPIO3_FSM_MASK_POL_SHIFT (0x5U) -#define PMIC_FSM_TRIG_MASK_1_GPIO4_FSM_MASK_SHIFT (0x6U) -#define PMIC_FSM_TRIG_MASK_1_GPIO4_FSM_MASK_POL_SHIFT (0x7U) -/*! Bit fields for PMIC_FSM_TRIG_MASK_2_REG */ -#define PMIC_FSM_TRIG_MASK_2_GPIO5_FSM_MASK_SHIFT (0x0U) -#define PMIC_FSM_TRIG_MASK_2_GPIO5_FSM_MASK_POL_SHIFT (0x1U) -#define PMIC_FSM_TRIG_MASK_2_GPIO6_FSM_MASK_SHIFT (0x2U) -#define PMIC_FSM_TRIG_MASK_2_GPIO6_FSM_MASK_POL_SHIFT (0x3U) -#define PMIC_FSM_TRIG_MASK_2_GPIO7_FSM_MASK_SHIFT (0x4U) -#define PMIC_FSM_TRIG_MASK_2_GPIO7_FSM_MASK_POL_SHIFT (0x5U) -#define PMIC_FSM_TRIG_MASK_2_GPIO8_FSM_MASK_SHIFT (0x6U) -#define PMIC_FSM_TRIG_MASK_2_GPIO8_FSM_MASK_POL_SHIFT (0x7U) -/*! Bit fields for PMIC_FSM_TRIG_MASK_3_REG */ -#define PMIC_FSM_TRIG_MASK_3_GPIO9_FSM_MASK_SHIFT (0x0U) -#define PMIC_FSM_TRIG_MASK_3_GPIO9_FSM_MASK_POL_SHIFT (0x1U) -#define PMIC_FSM_TRIG_MASK_3_GPIO10_FSM_MASK_SHIFT (0x2U) -#define PMIC_FSM_TRIG_MASK_3_GPIO10_FSM_MASK_POL_SHIFT (0x3U) -#define PMIC_FSM_TRIG_MASK_3_GPIO11_FSM_MASK_SHIFT (0x4U) -#define PMIC_FSM_TRIG_MASK_3_GPIO11_FSM_MASK_POL_SHIFT (0x5U) - -/*! - * \brief GPIO Register bit mask values for all GPIO pins - */ -#define PMIC_GPIOX_CONF_GPIO_SEL_MASK (uint8_t) \ - (0x07U << \ - PMIC_GPIOX_CONF_GPIO_SEL_SHIFT) -#define PMIC_GPIOX_CONF_GPIO_DEGLITCH_EN_MASK \ - (uint8_t) (0x01U << \ - PMIC_GPIOX_CONF_GPIO_DEGLITCH_EN_SHIFT) -#define PMIC_GPIOX_CONF_GPIO_PU_PD_EN_MASK \ - (uint8_t) (0x01U << \ - PMIC_GPIOX_CONF_GPIO_PU_PD_EN_SHIFT) -#define PMIC_GPIOX_CONF_GPIO_PU_SEL_MASK \ - (uint8_t) (0x01U << \ - PMIC_GPIOX_CONF_GPIO_PU_SEL_SHIFT) -#define PMIC_GPIOX_CONF_GPIO_OD_MASK (uint8_t) \ - (0x01U << \ - PMIC_GPIOX_CONF_GPIO_OD_SHIFT) -#define PMIC_GPIOX_CONF_GPIO_DIR_MASK (uint8_t) \ - (0x01U << \ - PMIC_GPIOX_CONF_GPIO_DIR_SHIFT) - - -/*! - * \brief GPIO IN Register bit mask values - */ -#define PMIC_GPIO_IN_1_GPIO1_IN_MASK (uint8_t) \ - (0x01U << \ - PMIC_GPIO_IN_1_GPIO1_IN_SHIFT) -#define PMIC_GPIO_IN_1_GPIO2_IN_MASK (uint8_t) \ - (0x01U << \ - PMIC_GPIO_IN_1_GPIO2_IN_SHIFT) -#define PMIC_GPIO_IN_1_GPIO3_IN_MASK (uint8_t) \ - (0x01U << \ - PMIC_GPIO_IN_1_GPIO3_IN_SHIFT) -#define PMIC_GPIO_IN_1_GPIO4_IN_MASK (uint8_t) \ - (0x01U << \ - PMIC_GPIO_IN_1_GPIO4_IN_SHIFT) -#define PMIC_GPIO_IN_1_GPIO5_IN_MASK (uint8_t) \ - (0x01U << \ - PMIC_GPIO_IN_1_GPIO5_IN_SHIFT) -#define PMIC_GPIO_IN_1_GPIO6_IN_MASK (uint8_t) \ - (0x01U << \ - PMIC_GPIO_IN_1_GPIO6_IN_SHIFT) -#define PMIC_GPIO_IN_1_GPIO7_IN_MASK (uint8_t) \ - (0x01U << \ - PMIC_GPIO_IN_1_GPIO7_IN_SHIFT) -#define PMIC_GPIO_IN_1_GPIO8_IN_MASK (uint8_t) \ - (0x01U << \ - PMIC_GPIO_IN_1_GPIO8_IN_SHIFT) -#define PMIC_GPIO_IN_2_GPIO9_IN_MASK (uint8_t) \ - (0x01U << \ - PMIC_GPIO_IN_2_GPIO9_IN_SHIFT) -#define PMIC_GPIO_IN_2_GPIO10_IN_MASK (uint8_t) \ - (0x01U << \ - PMIC_GPIO_IN_2_GPIO10_IN_SHIFT) - -/*! - * \brief GPIO OUT Register bit mask values - */ -#define PMIC_GPIO_OUT_1_GPIO1_OUT_MASK (uint8_t) \ - (0x01U << \ - PMIC_GPIO_OUT_1_GPIO1_OUT_SHIFT) -#define PMIC_GPIO_OUT_1_GPIO2_OUT_MASK (uint8_t) \ - (0x01U << \ - PMIC_GPIO_OUT_1_GPIO2_OUT_SHIFT) -#define PMIC_GPIO_OUT_1_GPIO3_OUT_MASK (uint8_t) \ - (0x01U << \ - PMIC_GPIO_OUT_1_GPIO3_OUT_SHIFT) -#define PMIC_GPIO_OUT_1_GPIO4_OUT_MASK (uint8_t) \ - (0x01U << \ - PMIC_GPIO_OUT_1_GPIO4_OUT_SHIFT) -#define PMIC_GPIO_OUT_1_GPIO5_OUT_MASK (uint8_t) \ - (0x01U << \ - PMIC_GPIO_OUT_1_GPIO5_OUT_SHIFT) -#define PMIC_GPIO_OUT_1_GPIO6_OUT_MASK (uint8_t) \ - (0x01U << \ - PMIC_GPIO_OUT_1_GPIO6_OUT_SHIFT) -#define PMIC_GPIO_OUT_1_GPIO7_OUT_MASK (uint8_t) \ - (0x01U << \ - PMIC_GPIO_OUT_1_GPIO7_OUT_SHIFT) -#define PMIC_GPIO_OUT_1_GPIO8_OUT_MASK (uint8_t) \ - (0x01U << \ - PMIC_GPIO_OUT_1_GPIO8_OUT_SHIFT) -#define PMIC_GPIO_OUT_2_GPIO9_OUT_MASK (uint8_t) \ - (0x01U << \ - PMIC_GPIO_OUT_2_GPIO9_OUT_SHIFT) -#define PMIC_GPIO_OUT_2_GPIO10_OUT_MASK (uint8_t) \ - (0x01U << \ - PMIC_GPIO_OUT_2_GPIO10_OUT_SHIFT) - -/*! - * \brief GPIO FSM TRIG Mask Register bit mask - */ -/*! Bit Mask for PMIC_FSM_TRIG_MASK_1_REG */ -#define PMIC_FSM_TRIG_MASK_1_GPIO1_FSM_MASK_MASK \ - (uint8_t)(0x01 << \ - PMIC_FSM_TRIG_MASK_1_GPIO1_FSM_MASK_SHIFT) -#define PMIC_FSM_TRIG_MASK_1_GPIO1_FSM_MASK_POL_MASK \ - (uint8_t)(0x01 << \ - PMIC_FSM_TRIG_MASK_1_GPIO1_FSM_MASK_POL_SHIFT) -#define PMIC_FSM_TRIG_MASK_1_GPIO2_FSM_MASK_MASK \ - (uint8_t)(0x01 << \ - PMIC_FSM_TRIG_MASK_1_GPIO2_FSM_MASK_SHIFT) -#define PMIC_FSM_TRIG_MASK_1_GPIO2_FSM_MASK_POL_MASK \ - (uint8_t)(0x01 << \ - PMIC_FSM_TRIG_MASK_1_GPIO2_FSM_MASK_POL_SHIFT) -#define PMIC_FSM_TRIG_MASK_1_GPIO3_FSM_MASK_MASK \ - (uint8_t)(0x01 << \ - PMIC_FSM_TRIG_MASK_1_GPIO3_FSM_MASK_SHIFT) -#define PMIC_FSM_TRIG_MASK_1_GPIO3_FSM_MASK_POL_MASK \ - (uint8_t)(0x01 << \ - PMIC_FSM_TRIG_MASK_1_GPIO3_FSM_MASK_POL_SHIFT) -#define PMIC_FSM_TRIG_MASK_1_GPIO4_FSM_MASK_MASK \ - (uint8_t)(0x01 << \ - PMIC_FSM_TRIG_MASK_1_GPIO4_FSM_MASK_SHIFT) -#define PMIC_FSM_TRIG_MASK_1_GPIO4_FSM_MASK_POL_MASK \ - (uint8_t)(0x01 << \ - PMIC_FSM_TRIG_MASK_1_GPIO4_FSM_MASK_POL_SHIFT) -/*! Bit Mask for PMIC_FSM_TRIG_MASK_2_REG */ -#define PMIC_FSM_TRIG_MASK_2_GPIO5_FSM_MASK_MASK \ - (uint8_t)(0x01 << \ - PMIC_FSM_TRIG_MASK_2_GPIO5_FSM_MASK_SHIFT) -#define PMIC_FSM_TRIG_MASK_2_GPIO5_FSM_MASK_POL_MASK \ - (uint8_t)(0x01 << \ - PMIC_FSM_TRIG_MASK_2_GPIO5_FSM_MASK_POL_SHIFT) -#define PMIC_FSM_TRIG_MASK_2_GPIO6_FSM_MASK_MASK \ - (uint8_t)(0x01 << \ - PMIC_FSM_TRIG_MASK_2_GPIO6_FSM_MASK_SHIFT) -#define PMIC_FSM_TRIG_MASK_2_GPIO6_FSM_MASK_POL_MASK \ - (uint8_t)(0x01 << \ - PMIC_FSM_TRIG_MASK_2_GPIO6_FSM_MASK_POL_SHIFT) -#define PMIC_FSM_TRIG_MASK_2_GPIO7_FSM_MASK_MASK \ - (uint8_t)(0x01 << \ - PMIC_FSM_TRIG_MASK_2_GPIO7_FSM_MASK_SHIFT) -#define PMIC_FSM_TRIG_MASK_2_GPIO7_FSM_MASK_POL_MASK \ - (uint8_t)(0x01 << \ - PMIC_FSM_TRIG_MASK_2_GPIO7_FSM_MASK_POL_SHIFT) -#define PMIC_FSM_TRIG_MASK_2_GPIO8_FSM_MASK_MASK \ - (uint8_t)(0x01 << \ - PMIC_FSM_TRIG_MASK_2_GPIO8_FSM_MASK_SHIFT) -#define PMIC_FSM_TRIG_MASK_2_GPIO8_FSM_MASK_POL_MASK \ - (uint8_t)(0x01 << \ - PMIC_FSM_TRIG_MASK_2_GPIO8_FSM_MASK_POL_SHIFT) -/*! Bit Mask for PMIC_FSM_TRIG_MASK_3_REG */ -#define PMIC_FSM_TRIG_MASK_3_GPIO9_FSM_MASK_MASK \ - (uint8_t)(0x01 << \ - PMIC_FSM_TRIG_MASK_3_GPIO9_FSM_MASK_SHIFT) -#define PMIC_FSM_TRIG_MASK_2_GPIO9_FSM_MASK_POL_MASK \ - (uint8_t)(0x01 << \ - PMIC_FSM_TRIG_MASK_3_GPIO9_FSM_MASK_POL_SHIFT) -#define PMIC_FSM_TRIG_MASK_3_GPIO10_FSM_MASK_MASK \ - (uint8_t)(0x01 << \ - PMIC_FSM_TRIG_MASK_3_GPIO10_FSM_MASK_SHIFT) -#define PMIC_FSM_TRIG_MASK_2_GPIO10_FSM_MASK_POL_MASK \ - (uint8_t)(0x01 << \ - PMIC_FSM_TRIG_MASK_3_GPIO10_FSM_MASK_POL_SHIFT) -#define PMIC_FSM_TRIG_MASK_3_GPIO11_FSM_MASK_MASK \ - (uint8_t)(0x01 << \ - PMIC_FSM_TRIG_MASK_3_GPIO11_FSM_MASK_SHIFT) -#define PMIC_FSM_TRIG_MASK_2_GPIO11_FSM_MASK_POL_MASK \ - (uint8_t)(0x01 << \ - PMIC_FSM_TRIG_MASK_3_GPIO11_FSM_MASK_POL_SHIFT) - -/*! - * \brief GPIO NPWRON/Enable PIN - * NPWRON is valid only for TPS6594x Leo Device - */ -#define PMIC_NPWRON_ENABLE_PIN (0U) - -/*! - * \brief GPIO IN/OUT bit field - */ -#define PMIC_GPIO_IN_OUT_X_GPIOX_IN_OUT_BITFIELD (1U) - -/** \brief Max value for GPIO Pin Function */ -#define PMIC_GPIO_PINFUNC_MAX (7U) - -/** - * \anchor Pmic_GpioInterruptMask - * \name PMIC GPIO Interrupt Mask selection - * - * @{ - */ -#define PMIC_GPIO_INT_ENABLE (0U) -#define PMIC_GPIO_INT_MASK (1U) -/* @} */ - -/*==========================================================================*/ -/* Structures and Enums */ -/*==========================================================================*/ -/*! - * \brief PMIC GPIO Pins with Input Ouput Configuration - * - * \param regAddr GPIO Pin Register Address - * \param outRegAddr GPIO OUT Register Address - * \param inRegAddr GPIO IN Register Address - * \param inRegBitPos Bit position of GPIO IN Register bit position - * \param outRegBitPos Bit position of GPIO OUT Register bit position - */ -typedef struct Pmic_GpioInOutCfg_s -{ - uint8_t regAddr; - uint8_t outRegAddr; - uint8_t inRegAddr; - uint8_t inRegBitPos; - uint8_t outRegBitPos; -} Pmic_GpioInOutCfg_t; - -/*! -* \brief PMIC gpio details object structure -* -* \param intRegAddr Register Address of the gpio interrupt -* \param intRegBitPos Register bit position of gpio interrupt -* \param intRegPolBitPos Register bit position of gpio polarity -*/ -typedef struct Pmic_GpioIntRegCfg_s -{ - uint8_t intRegAddr; - uint8_t intRegBitPos; - uint8_t intRegPolBitPos; -} Pmic_GpioIntRegCfg_t; - -/*==========================================================================*/ -/* Function Declarations */ -/*==========================================================================*/ -/*! - * \brief This function is used to set the GPIO and NPWRON Pin Functionality - */ -int32_t Pmic_gpioSetPinFunc(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t pin, - const Pmic_GpioCfg_t gpioCfg); - -/*! - * \brief This function is used to set the NPWRON/Enable deglitch time and - * NPWRON/Enable Pull UP/Down configuration - * Valid only for TPS6594x PMIC - */ -int32_t Pmic_gpioSetNPwronEnableDeglitchPullCtrlCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_GpioCfg_t gpioCfg); - -/*! - * \brief This function is used to set the NPWRON Pin Polarity - */ -int32_t Pmic_gpioSetPinPolarity(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_GpioCfg_t gpioCfg); - -/*! - * \brief This function is used to get the GPIO and NPWRON Deglitch time - */ -int32_t Pmic_gpioGetDeglitchTime(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t pin, - Pmic_GpioCfg_t *pGpioCfg); - -/*! - * \brief This function is used to get the GPIO and NPWRON Pin Functionality - */ -int32_t Pmic_gpioGetPinFunc(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t pin, - Pmic_GpioCfg_t *pGpioCfg); - -/*! - * \brief This function is used to get the GPIO and NPWRON Pin Pull Control - */ -int32_t Pmic_gpioGetPullCtrl(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t pin, - Pmic_GpioCfg_t *pGpioCfg); - -/*! - * \brief This function is used to get the NPWRON Pin Polarity - */ -int32_t Pmic_gpioGetPinPolarity(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_GpioCfg_t *pGpioCfg); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif/* PMIC_GPIO_PRIV_H_ */ diff --git a/src/pmic_io.c b/src/pmic_io.c deleted file mode 100644 index 3bc668f..0000000 --- a/src/pmic_io.c +++ /dev/null @@ -1,625 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ - -/** - * \file pmic_io.c - * - * \brief This file contains LLD-Communication wrappers with CRC8 support for - * I2C/SPI - */ - -#include - -#include -#include -#include -#include -#include -#include -#include -#include - - -/** - * Used CRC Polynomial: x^8 + x^2 + x + 1 - * Evalution of CRC Polynomial value from equation: - * 1*x^8 + 0*x^7 + 0*x^6 + 0*x^5 + 0*x^4 + 0*x^3 + 1*x^2 + 1*x + 1 - * = 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 - * = 0x107(After discarding MSB bit) = 0x7 - * - * CRC Polynomial value: 0x07, Initial Value: 0x00, Final Value: 0x00 - * link to generate custom CRC table from polynomial: - * http://www.sunshine2k.de/coding/javascript/crc/crc_js.html - */ - -const uint8_t CRC_8_TABLE[] = -{ - 0x00, 0x07, 0x0e, 0x09, 0x1c, 0x1b, 0x12, 0x15, - 0x38, 0x3f, 0x36, 0x31, 0x24, 0x23, 0x2a, 0x2d, - 0x70, 0x77, 0x7e, 0x79, 0x6c, 0x6b, 0x62, 0x65, - 0x48, 0x4f, 0x46, 0x41, 0x54, 0x53, 0x5a, 0x5d, - 0xe0, 0xe7, 0xee, 0xe9, 0xfc, 0xfb, 0xf2, 0xf5, - 0xd8, 0xdf, 0xd6, 0xd1, 0xc4, 0xc3, 0xca, 0xcd, - 0x90, 0x97, 0x9e, 0x99, 0x8c, 0x8b, 0x82, 0x85, - 0xa8, 0xaf, 0xa6, 0xa1, 0xb4, 0xb3, 0xba, 0xbd, - 0xc7, 0xc0, 0xc9, 0xce, 0xdb, 0xdc, 0xd5, 0xd2, - 0xff, 0xf8, 0xf1, 0xf6, 0xe3, 0xe4, 0xed, 0xea, - 0xb7, 0xb0, 0xb9, 0xbe, 0xab, 0xac, 0xa5, 0xa2, - 0x8f, 0x88, 0x81, 0x86, 0x93, 0x94, 0x9d, 0x9a, - 0x27, 0x20, 0x29, 0x2e, 0x3b, 0x3c, 0x35, 0x32, - 0x1f, 0x18, 0x11, 0x16, 0x03, 0x04, 0x0d, 0x0a, - 0x57, 0x50, 0x59, 0x5e, 0x4b, 0x4c, 0x45, 0x42, - 0x6f, 0x68, 0x61, 0x66, 0x73, 0x74, 0x7d, 0x7a, - 0x89, 0x8e, 0x87, 0x80, 0x95, 0x92, 0x9b, 0x9c, - 0xb1, 0xb6, 0xbf, 0xb8, 0xad, 0xaa, 0xa3, 0xa4, - 0xf9, 0xfe, 0xf7, 0xf0, 0xe5, 0xe2, 0xeb, 0xec, - 0xc1, 0xc6, 0xcf, 0xc8, 0xdd, 0xda, 0xd3, 0xd4, - 0x69, 0x6e, 0x67, 0x60, 0x75, 0x72, 0x7b, 0x7c, - 0x51, 0x56, 0x5f, 0x58, 0x4d, 0x4a, 0x43, 0x44, - 0x19, 0x1e, 0x17, 0x10, 0x05, 0x02, 0x0b, 0x0c, - 0x21, 0x26, 0x2f, 0x28, 0x3d, 0x3a, 0x33, 0x34, - 0x4e, 0x49, 0x40, 0x47, 0x52, 0x55, 0x5c, 0x5b, - 0x76, 0x71, 0x78, 0x7f, 0x6a, 0x6d, 0x64, 0x63, - 0x3e, 0x39, 0x30, 0x37, 0x22, 0x25, 0x2c, 0x2b, - 0x06, 0x01, 0x08, 0x0f, 0x1a, 0x1d, 0x14, 0x13, - 0xae, 0xa9, 0xa0, 0xa7, 0xb2, 0xb5, 0xbc, 0xbb, - 0x96, 0x91, 0x98, 0x9f, 0x8a, 0x8d, 0x84, 0x83, - 0xde, 0xd9, 0xd0, 0xd7, 0xc2, 0xc5, 0xcc, 0xcb, - 0xe6, 0xe1, 0xe8, 0xef, 0xfa, 0xfd, 0xf4, 0xf3 -}; - - -/*! - * \brief: API to Get CRC8 data - * - * \param data [IN] Data for which CRC is to be determined - * \param length [IN] Length of the buffer in bytes. - * \retval crc [OUT] CRC value for data. - */ -static uint8_t Pmic_getCRC8Val(const uint8_t *data, uint8_t length) -{ - uint8_t crc = PMIC_COMM_CRC_INITIAL_VALUE; - uint8_t i; - for(i = 0; i < length; i++) - { - crc = CRC_8_TABLE[data[i] ^ crc]; - } - - return crc; -} - -/*! - * \brief: API to get the status of whether user register is write protected or - * not - */ -static int32_t Pmic_getRegWriteProtectionStatus( - Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t regAddr) -{ - uint8_t regData = 0U; - uint8_t regLockStat = 0U; - int32_t pmicStatus = PMIC_ST_SUCCESS; - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_REGISTER_LOCK_REGADDR, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - regLockStat = Pmic_getBitField( - regData, - PMIC_REGISTER_LOCK_REGISTER_LOCK_STATUS_SHIFT, - PMIC_REGISTER_LOCK_REGISTER_LOCK_STATUS_READ_MASK); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (PMIC_REGISTER_STATUS_LOCK == regLockStat)) - { - if((PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) && - ((regAddr >= PMIC_INT_TOP_REGADDR) && - (regAddr <= PMIC_INT_ESM_REGADDR))) - { - pmicStatus = PMIC_ST_SUCCESS; - } - else - { - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - if(((regAddr >= PMIC_BUCK1_CTRL_REGADDR) && - (regAddr <= PMIC_MISC_CTRL_REGADDR)) || - (regAddr == PMIC_RTC_CTRL_1_REGADDR) || - (regAddr == PMIC_RTC_CTRL_2_REGADDR) || - (regAddr == PMIC_SOFT_REBOOT_REG_REGADDR)) - { - pmicStatus = PMIC_ST_ERR_REG_LOCKED_WR_FAIL; - } - } - else - { - if(((regAddr >= PMIC_BUCK1_CTRL_REGADDR) && - (regAddr <= PMIC_BUCK4_PG_WIN_REGADDR)) || - ((regAddr >= PMIC_VCCA_VMON_CTRL_REGADDR) && - (regAddr <= PMIC_MISC_CTRL_REGADDR)) || - (regAddr == PMIC_VMON_CONF_REGADDR) || - (regAddr == PMIC_STARTUP_CTRL_REGADDR)) - { - pmicStatus = PMIC_ST_ERR_REG_LOCKED_WR_FAIL; - } - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((regAddr >= PMIC_RECOV_CNT_REG_2_REGADDR) && - (regAddr <= PMIC_USER_SPARE_REGS_REGADDR)) || - ((regAddr >= PMIC_SCRATCH_PAD_REG_1_REGADDR) && - (regAddr <= PMIC_FSM_PFSM_DELAY_REG_4_REGADDR)))) - { - pmicStatus = PMIC_ST_ERR_REG_LOCKED_WR_FAIL; - } - } - } - - return pmicStatus; -} - -/* - * \brief Function to validate pPmicCoreHandle, pCommHandle, pFnPmicCommIoWrite - * and pFnPmicCommIoRead and get Register Write Protection status - */ -static int32_t Pmic_validatePmicHandleGetRegWrProtectStat( - Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t regAddr) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle->pCommHandle) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (NULL == pPmicCoreHandle->pFnPmicCommIoWrite)) - { - pmicStatus = PMIC_ST_ERR_NULL_FPTR; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_getRegWriteProtectionStatus(pPmicCoreHandle, - regAddr); - } - - return pmicStatus; -} - -/*! - * \brief: Function call wrappers for LLD write API with CRC8 support - * This function does the following: - * 1. If CRC8 is enabled, calculates CRC8 value for given data byte - * 2. In case of SPI, forms SPI transfer header for PMIC to understand - * which register needs to be accessed - 2 byte header - * formation is as per TRM - * 3. If the register to be addressed is Watchdog register, it updates - * the Slave and Register address as per TRM to properly communicate - * with PMIC Watchdog module and access it's registers - * 4. Calls Application provided Transfer function to send the - * data byte, along with CRC8 if supported. - * 5. Works with the valid PMIC instance else does not do any operation - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param regAddr [IN] Register address - * \param txData [IN] Data to be written - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_commIntf_sendByte(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t regAddr, - uint8_t txData) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t buffLength = 1U; - uint8_t instType = PMIC_MAIN_INST; - uint8_t txBuf[PMIC_IO_BUF_SIZE] = {0}; - uint8_t crcData[PMIC_IO_BUF_SIZE] = {0}; - uint8_t crcDataLen = 0; - uint16_t pmicRegAddr = regAddr; - - pmicStatus = Pmic_validatePmicHandleGetRegWrProtectStat(pPmicCoreHandle, - regAddr); - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((PMIC_INTF_SINGLE_I2C == pPmicCoreHandle->commMode) || - (PMIC_INTF_DUAL_I2C == pPmicCoreHandle->commMode))) - { - /* Setup Tx buffer as required for I2C IO with PMIC */ - txBuf[buffLength - 1U] = txData; - - if(0U != (regAddr & PMIC_WDG_PAGEADDR)) - { - /* Update slave and register address for Watchdog write access */ - pmicRegAddr = (regAddr & PMIC_WDG_PAGEADDR_MASK); - - if(((PMIC_INTF_DUAL_I2C == pPmicCoreHandle->commMode) && - (NULL != pPmicCoreHandle->pQACommHandle)) || - (PMIC_INTF_SINGLE_I2C == pPmicCoreHandle->commMode)) - { - /* QA instance shall be used for WDOG in DUAL-I2C mode */ - instType = (uint8_t)PMIC_QA_INST; - } - } - - if(((bool)true) == pPmicCoreHandle->crcEnable) - { - if(PMIC_MAIN_INST == instType) - { - /* Store the slave address and I2C write request bit */ - crcData[crcDataLen] = (pPmicCoreHandle->slaveAddr << 1U); - crcDataLen++; - } - else - { - /* Store the slave address and I2C write request bit */ - crcData[crcDataLen] = (pPmicCoreHandle->qaSlaveAddr << 1U); - crcDataLen++; - } - - /* Store register address */ - crcData[crcDataLen] = (uint8_t)pmicRegAddr; - crcDataLen++; - /* Store the data to be transferred */ - crcData[crcDataLen] = txData; - crcDataLen++; - /* Increase 1 more byte to store CRC8 */ - txBuf[buffLength] = Pmic_getCRC8Val(crcData, crcDataLen); - buffLength++; - } - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (PMIC_INTF_SPI == pPmicCoreHandle->commMode)) - { - /* - * Frame 3 Bytes with IO header+data as per PMIC SPI IO algorithm - * explained in PMIC TRM - */ - - buffLength = 0; - /* Set ADDR to txbuf[0] with ADDR[7:0] */ - txBuf[buffLength] = (uint8_t)(pmicRegAddr & 0xFFU); - buffLength++; - - /* Set PAGE to txBuf[1] 7:5 bits with PAGE[2:0] */ - txBuf[buffLength] = (uint8_t)(((pmicRegAddr >> 8U) & 0x7U) << 5U); - - /* Set R/W in txBuf[1] as bit-4, for Write Request */ - txBuf[buffLength] &= (uint8_t)(~PMIC_IO_REQ_RW); - buffLength++; - - /* Set write data to txBuf[2], with WDATA[7:0] */ - txBuf[buffLength] = txData; - buffLength++; - - if(((bool)true) == pPmicCoreHandle->crcEnable) - { - /* Set CRC data to txBuf[3], Bits 25-32 CRC */ - txBuf[buffLength] = Pmic_getCRC8Val(txBuf, buffLength); - /* Increment 1 more byte to store CRC8 */ - buffLength++; - } - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = pPmicCoreHandle->pFnPmicCommIoWrite(pPmicCoreHandle, - instType, - pmicRegAddr, - txBuf, - buffLength); - } - - return pmicStatus; -} - -static int32_t Pmic_validateCorehandle(const Pmic_CoreHandle_t *pPmicCoreHandle) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle->pCommHandle) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (NULL == pPmicCoreHandle->pFnPmicCommIoRead)) - { - pmicStatus = PMIC_ST_ERR_NULL_FPTR; - } - - return pmicStatus; -} - -/* - * \brief Function to read data from PMIC registers based on Comm IO interface - * I2C or SPI Interface - */ -static int32_t Pmic_commIoReadData(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t *pRegAddr, - uint8_t *pBuffLength, - uint8_t *pRxBuf, - uint8_t *pInstType) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t buffLength = *pBuffLength; - uint16_t pmicRegAddr = *pRegAddr; - uint16_t regAddr = pmicRegAddr; - uint8_t instType = *pInstType; - - pmicStatus = Pmic_validateCorehandle(pPmicCoreHandle); - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((PMIC_INTF_SINGLE_I2C == pPmicCoreHandle->commMode) || - (PMIC_INTF_DUAL_I2C == pPmicCoreHandle->commMode))) - { - if(((bool)true) == pPmicCoreHandle->crcEnable) - { - /* increment 1 more byte to read CRC8 */ - buffLength++; - } - - if(0U != (regAddr & PMIC_WDG_PAGEADDR)) - { - /* If register is of Watchdog, update slave and register address */ - pmicRegAddr = (regAddr & PMIC_WDG_PAGEADDR_MASK); - - if(((PMIC_INTF_DUAL_I2C == pPmicCoreHandle->commMode) && - (NULL != pPmicCoreHandle->pQACommHandle)) || - (PMIC_INTF_SINGLE_I2C == pPmicCoreHandle->commMode)) - { - /* QACommHandle shall be used for WDOG in DUAL-I2C mode */ - instType = (uint8_t)PMIC_QA_INST; - } - } - - if(0U != (regAddr & PMIC_SERIAL_IF_CONFIG_PAGEADDR)) - { - /* Update slave and register address for SERIAL_IF_CONFIG read access */ - pmicRegAddr = (regAddr & PMIC_SERIAL_IF_CONFIG_PAGEADDR_MASK); - - /* NVM instance shall be used */ - instType = (uint8_t)PMIC_NVM_INST; - } - - *pBuffLength = buffLength; - *pRegAddr = pmicRegAddr; - *pInstType = instType; - - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (PMIC_INTF_SPI == pPmicCoreHandle->commMode)) - { - /* - * Frame 3 Bytes with IO header+data as per PMIC SPI IO algorithm - * explained in PMIC TRM - */ - buffLength = 0U; - /* Set ADDR to pRxBuf[0], with ADDR[7:0] */ - pRxBuf[buffLength] = (uint8_t)(pmicRegAddr & 0xFFU); - buffLength++; - - /* Set PAGE to pRxBuf[1] 7:5 bits, with PAGE[2:0] */ - pRxBuf[buffLength] = (uint8_t)(((pmicRegAddr >> 8U) & 0x7U) << 5U); - - /* Set R/W in pRxBuf[1] as bit-4, for read Request */ - pRxBuf[buffLength] |= PMIC_IO_REQ_RW; - buffLength++; - - /* Increment 1 more byte for 8-bit data read from PMIC register */ - buffLength++; - - if(((bool)true) == pPmicCoreHandle->crcEnable) - { - /* Increment 1 more byte to read CRC8 */ - buffLength++; - } - - *pBuffLength = buffLength; - *pRegAddr = pmicRegAddr; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = pPmicCoreHandle->pFnPmicCommIoRead(pPmicCoreHandle, - instType, - pmicRegAddr, - pRxBuf, - buffLength); - } - - return pmicStatus; -} - -/* - * \brief Function to Copy I2C data to crcData for I2C Interface - */ -static int32_t Pmic_commIoStoreI2cCrcData( - const Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pmicRegAddr, - uint8_t buffLength, - uint8_t instType, - const uint8_t *pRxBuf) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t crcDataLen = 0U; - uint8_t crcData[PMIC_IO_BUF_SIZE] = {0}; - - if(PMIC_NVM_INST == instType) - { - /* Store the slave address and I2C write request bit */ - crcData[crcDataLen] = (pPmicCoreHandle->nvmSlaveAddr << 1U); - crcDataLen++; - } - else if(PMIC_QA_INST == instType) - { - /* Store the slave address and I2C write request bit */ - crcData[crcDataLen] = (pPmicCoreHandle->qaSlaveAddr << 1U); - crcDataLen++; - } - else - { - /* Store the slave address and I2C write request bit */ - crcData[crcDataLen] = (pPmicCoreHandle->slaveAddr << 1U); - crcDataLen++; - } - - /* Store the Register address */ - crcData[crcDataLen] = (uint8_t)pmicRegAddr; - crcDataLen++; - - if(PMIC_NVM_INST == instType) - { - /* Store the slave address and I2C Read request bit */ - crcData[crcDataLen] = (pPmicCoreHandle->nvmSlaveAddr << 1U) | - (PMIC_IO_READ); - crcDataLen++; - } - else if(PMIC_QA_INST == instType) - { - /* Store the slave address and I2C Read request bit */ - crcData[crcDataLen] = (pPmicCoreHandle->qaSlaveAddr << 1U) | - (PMIC_IO_READ); - crcDataLen++; - } - else - { - /* Store the slave address and I2C Read request bit */ - crcData[crcDataLen] = (pPmicCoreHandle->slaveAddr << 1U) | - (PMIC_IO_READ); - crcDataLen++; - } - /* Store the data read */ - crcData[crcDataLen] = pRxBuf[buffLength - 2U]; - crcDataLen++; - - if((pRxBuf[buffLength - 1U]) != (Pmic_getCRC8Val(crcData, crcDataLen))) - { - pmicStatus = PMIC_ST_ERR_DATA_IO_CRC; - } - - return pmicStatus; -} - -/*! - * \brief: Function call wrappers for LLD write API with CRC8 support - * This function does the following: - * 1. If CRC8 is enabled, calculates CRC8 value for given data byte - * 2. In case of SPI, forms SPI transfer header for PMIC to understand - * which register needs to be accessed - 2 byte header - * formation is as per TRM - * 3. If the register to be addressed is Watchdog register, it updates - * the Slave and Register address as per TRM to properly communicate - * with PMIC Watchdog module and access it's registers - * 4. Calls Application provided Transfer function to recive the - * data byte, along with CRC8 if supported. - * 5. Copies received data byte into pRxBuffer byte buffer - * 6. Works with the valid PMIC instance else does not do any operation - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param regAddr [IN] Register address. - * \param pRxBuffer [OUT] BUffer to receive data - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_commIntf_recvByte(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t regAddr, - uint8_t *pRxBuffer) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t buffLength = 1U; - uint8_t rxBuf[PMIC_IO_BUF_SIZE] = {0}; - uint8_t crcData[PMIC_IO_BUF_SIZE] = {0}; - uint8_t instType = PMIC_MAIN_INST; - uint8_t crcDataLen = 0U; - uint16_t pmicRegAddr = regAddr; - - pmicStatus = Pmic_commIoReadData(pPmicCoreHandle, - &pmicRegAddr, - &buffLength, - rxBuf, - &instType); - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pPmicCoreHandle->crcEnable)) - { - if(PMIC_INTF_SPI == pPmicCoreHandle->commMode) - { - /* Copy SPI frame data to crcData */ - for(crcDataLen = 0U; - crcDataLen < (PMIC_IO_BUF_SIZE - 1U); - crcDataLen++) - { - crcData[crcDataLen] = rxBuf[crcDataLen]; - } - - if((rxBuf[buffLength - 1U]) != - (Pmic_getCRC8Val(crcData, crcDataLen))) - { - pmicStatus = PMIC_ST_ERR_DATA_IO_CRC; - } - } - else if((PMIC_INTF_SINGLE_I2C == pPmicCoreHandle->commMode) || - (PMIC_INTF_DUAL_I2C == pPmicCoreHandle->commMode)) - { - pmicStatus = Pmic_commIoStoreI2cCrcData(pPmicCoreHandle, - pmicRegAddr, - buffLength, - instType, - rxBuf); - } - else - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - buffLength--; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Copy data which shall be in rxBuf[2]/rxBuf[0] to pRxBuffer */ - *pRxBuffer = rxBuf[buffLength - 1U]; - } - - return pmicStatus; -} diff --git a/src/pmic_io_priv.h b/src/pmic_io_priv.h deleted file mode 100644 index 6e02c64..0000000 --- a/src/pmic_io_priv.h +++ /dev/null @@ -1,143 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ - -/** - * \file pmic_io_priv.h - * - * \brief This file contains LLD-Communication wrappers with CRC8 support for - * I2C/SPI - */ - -#ifndef PMIC_IO_PRIV_H_ -#define PMIC_IO_PRIV_H_ - -/* ========================================================================== */ -/* Include Files */ -/* ========================================================================== */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* ========================================================================== */ -/* Macros & Typedefs */ -/* ========================================================================== */ - -/*! - * \brief: WatchDog register I2C access - */ -#define PMIC_WDG_PAGEADDR (0x400U) -#define PMIC_WDG_PAGEADDR_MASK (0x3FFU) - -/*! - * \brief: PMIC SERIAL_IF_CONFIG register address (Bank/Page 1 Register address) - * Application can only read this register to check I2C1SPI/I2C2 CRC - * is enabled or not - */ -#define PMIC_SERIAL_IF_CONFIG_PAGEADDR (0x100U) -#define PMIC_SERIAL_IF_CONFIG_PAGEADDR_MASK (0xFFU) - -/*! - * \brief: SPI R/W bit Position - */ -#define PMIC_IO_REQ_RW (((uint32_t)1U) << 4U) - -/*! - * \brief: IO Buffer Size - */ -#define PMIC_IO_BUF_SIZE (4U) - -/*! - * \brief: Initial value for CRC - */ -#define PMIC_COMM_CRC_INITIAL_VALUE (0xFF) - -/*! - * \brief: IO READ bits - */ -#define PMIC_IO_READ (0x01U) - -/*==========================================================================*/ -/* Structures and Enums */ -/*==========================================================================*/ - -/*==========================================================================*/ -/* Function Declarations */ -/*==========================================================================*/ - -/*! - * \brief: PMIC I2C/SPI IO Wrapper function used internally by driver to send - * register values with or without CRC. - * All PMIC Driver API functions which are called after successful PMIC - * Instance Setup shall use this Send byte function to do IO with - * PMIC to control and monitor register values. - * This function will call application initilized Communication IO write - * callback functions - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param regAddr [IN] Register address - * \param txData [IN] Data to be written - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_commIntf_sendByte(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t regAddr, - uint8_t txData); - -/*! - * \brief: PMIC I2C/SPI IO Wrapper function pointers used internally by driver - * to receive register values with or without CRC. - * All PMIC Driver API functions which are called after successful PMIC - * Instance Setup shall use this receive byte function to do IO with - * PMIC to control and monitor register values. - * This function will call application initilized Communication IO read - * callback functions - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param regAddr [IN] Register address. - * \param pRxBuffer [OUT] Pointer to Buffer to receive data - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_commIntf_recvByte(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t regAddr, - uint8_t *pRxBuffer); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /*PMIC_IO_PRIV_H_*/ diff --git a/src/pmic_irq_priv.h b/src/pmic_irq_priv.h deleted file mode 100644 index 3db5339..0000000 --- a/src/pmic_irq_priv.h +++ /dev/null @@ -1,565 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ - -/** - * \file pmic_irq_priv.h - * - * \brief The macro definitions, structures and function prototypes for - * configuring PMIC IRQ. - */ - -#ifndef PMIC_IRQ_PRIV_H_ -#define PMIC_IRQ_PRIV_H_ - -/* ========================================================================= */ -/* Include Files */ -/* ========================================================================= */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* ========================================================================= */ -/* Macros & Typedefs */ -/* ========================================================================= */ -/*! - * \brief Interrupt Hierarchy Level 0 Register offsets - */ -#define PMIC_INT_TOP_REGADDR (0x5AU) - -/*! - * \brief PMIC Interrupt Hierarchy Level 1 Register offsets - */ -#define PMIC_INT_BUCK_REGADDR (0x5BU) -#define PMIC_INT_GPIO_REGADDR (0x63U) -#define PMIC_INT_STARTUP_REGADDR (0x65U) -#define PMIC_INT_MISC_REGADDR (0x66U) -#define PMIC_INT_MODERATE_ERR_REGADDR (0x67U) -#define PMIC_INT_SEVERE_ERR_REGADDR (0x68U) -#define PMIC_INT_FSM_ERR_REGADDR (0x69U) - -/*! Interrupt Hierarchy Level 2 Register offsets */ -/*! - * \brief INT_BUCK Sources - */ -#define PMIC_INT_BUCK1_2_REGADDR (0x5CU) -#define PMIC_INT_BUCK3_4_REGADDR (0x5DU) - -/*! - * \brief INT_LDO_VMON Sources - */ -#define PMIC_INT_VMON_REGADDR (0x62U) - -/*! - * \brief INT_GPIO Sources - */ -#define PMIC_INT_GPIO1_8_REGADDR (0x64U) - -/*! - * \brief INT_FSM sources - */ -#define PMIC_INT_COMM_ERR_REGADDR (0x6AU) -#define PMIC_INT_READBACK_ERR_REGADDR (0x6BU) -#define PMIC_INT_ESM_REGADDR (0x6CU) -#define PMIC_WD_ERR_STATUS_REGADDR (0x408U) - -#define PMIC_INT_UNUSED_REGADDR (0xFFU) - -/*! - * \brief PMIC Interrupt MASK register offsets - */ -#define PMIC_MASK_BUCK1_2_REGADDR (0x49U) -#define PMIC_MASK_BUCK3_4_REGADDR (0x4AU) -#define PMIC_MASK_VMON_REGADDR (0x4EU) -#define PMIC_MASK_GPIO1_8_FALL_REGADDR (0x4FU) -#define PMIC_MASK_GPIO1_8_RISE_REGADDR (0x50U) -#define PMIC_MASK_STARTUP_REGADDR (0x52U) -#define PMIC_MASK_MISC_REGADDR (0x53U) -#define PMIC_MASK_MODERATE_ERR_REGADDR (0x54U) -#define PMIC_MASK_FSM_ERR_REGADDR (0x56U) -#define PMIC_MASK_COMM_ERR_REGADDR (0x57U) -#define PMIC_MASK_READBACK_ERR_REGADDR (0x58U) -#define PMIC_MASK_ESM_REGADDR (0x59U) - -/*! - * \brief INT_TOP Register Bit Masks - */ -#define PMIC_INT_TOP_BUCK_INT_MASK (0x01U) -#define PMIC_INT_TOP_GPIO_INT_MASK (0x04U) -#define PMIC_INT_TOP_STARTUP_INT_MASK (0x08U) -#define PMIC_INT_TOP_MISC_INT_MASK (0x10U) -#define PMIC_INT_TOP_MODERATE_ERR_INT_MASK (0x20U) -#define PMIC_INT_TOP_SEVERE_ERR_INT_MASK (0x40U) -#define PMIC_INT_TOP_FSM_ERR_INT_MASK (0x80U) - -/*! Interrupt Hierarchy Level 1 Registers Bit Masks */ -/*! - * \brief Buck Interrupt Mask - */ -#define PMIC_INT_BUCK_BUCK1_2_INT_MASK (0x01U) -#define PMIC_INT_BUCK_BUCK3_4_INT_MASK (0x02U) - -/*! - * \brief GPIO Interrupt Mask - */ -#define PMIC_INT_GPIO_GPIO9_INT_MASK (0x01U) -#define PMIC_INT_GPIO_GPIO10_INT_MASK (0x02U) -#define PMIC_INT_GPIO_GPIO1_8_INT_MASK (0x08U) - -/*! - * \brief FSM Error Interrupt Mask - */ -#define PMIC_INT_FSM_ERR_IMM_SHUTDOWN_INT_MASK (0x01U) -#define PMIC_INT_FSM_ERR_ORD_SHUTDOWN_INT_MASK (0x02U) -#define PMIC_INT_FSM_ERR_MCU_PWR_ERR_INT_MASK (0x04U) -#define PMIC_INT_FSM_ERR_SOC_PWR_ERR_INT_MASK (0x08U) -#define PMIC_INT_FSM_ERR_COMM_ERR_INT_MASK (0x10U) -#define PMIC_INT_FSM_ERR_READBACK_ERR_INT_MASK (0x20U) -#define PMIC_INT_FSM_ERR_ESM_INT_MASK (0x40U) -#define PMIC_INT_FSM_ERR_WD_INT_MASK (0x80U) - -/*! Interrupt Hierarchy Level 2 Registers Bit Masks */ -/*! - * \brief PMIC_INT_BUCK1_2 Register Bit Masks - */ -#define PMIC_INT_BUCK1_2_BUCK1_OV_INT_MASK (0x01U) -#define PMIC_INT_BUCK1_2_BUCK1_UV_INT_MASK (0x02U) -#define PMIC_INT_BUCK1_2_BUCK1_SC_INT_MASK (0x04U) -#define PMIC_INT_BUCK1_2_BUCK1_ILIM_INT_MASK (0x08U) -#define PMIC_INT_BUCK1_2_BUCK2_OV_INT_MASK (0x10U) -#define PMIC_INT_BUCK1_2_BUCK2_UV_INT_MASK (0x20U) -#define PMIC_INT_BUCK1_2_BUCK2_SC_INT_MASK (0x40U) -#define PMIC_INT_BUCK1_2_BUCK2_ILIM_INT_MASK (0x80U) - -/*! - * \brief PMIC_INT_BUCK3_4 Register Bit Masks - */ -#define PMIC_INT_BUCK3_4_BUCK3_OV_INT_MASK (0x01U) -#define PMIC_INT_BUCK3_4_BUCK3_UV_INT_MASK (0x02U) -#define PMIC_INT_BUCK3_4_BUCK3_SC_INT_MASK (0x04U) -#define PMIC_INT_BUCK3_4_BUCK3_ILIM_INT_MASK (0x08U) -#define PMIC_INT_BUCK3_4_BUCK4_OV_INT_MASK (0x10U) -#define PMIC_INT_BUCK3_4_BUCK4_UV_INT_MASK (0x20U) -#define PMIC_INT_BUCK3_4_BUCK4_SC_INT_MASK (0x40U) -#define PMIC_INT_BUCK3_4_BUCK4_ILIM_INT_MASK (0x80U) - -/*! - * \brief PMIC_INT_VMON Register Bit Masks - */ -#define PMIC_INT_VMON_VCCA_OV_INT_MASK (0x01U) -#define PMIC_INT_VMON_VCCA_UV_INT_MASK (0x02U) - -/*! - * \brief PMIC_INT_GPIO1_8 Register Bit Masks - */ -#define PMIC_INT_GPIO1_8_GPIO1_INT_MASK (0x01U) -#define PMIC_INT_GPIO1_8_GPIO2_INT_MASK (0x02U) -#define PMIC_INT_GPIO1_8_GPIO3_INT_MASK (0x04U) -#define PMIC_INT_GPIO1_8_GPIO4_INT_MASK (0x08U) -#define PMIC_INT_GPIO1_8_GPIO5_INT_MASK (0x10U) -#define PMIC_INT_GPIO1_8_GPIO6_INT_MASK (0x20U) -#define PMIC_INT_GPIO1_8_GPIO7_INT_MASK (0x40U) -#define PMIC_INT_GPIO1_8_GPIO8_INT_MASK (0x80U) - -/*! - * \brief PMIC_INT_STARTUP Register Bit Masks - */ -#define PMIC_INT_STARTUP_ENABLE_INT_MASK (0x02U) -#define PMIC_INT_STARTUP_FSD_INT_MASK (0x10U) -/*! Valid only PG 2.0 */ -#define PMIC_INT_STARTUP_SOFT_REBOOT_INT_MASK (0x20U) - -/*! - * \brief PMIC_INT_MISC Register Bit Masks - */ -#define PMIC_INT_MISC_BIST_PASS_INT_MASK (0x01U) -#define PMIC_INT_MISC_EXT_CLK_INT_MASK (0x02U) -#define PMIC_INT_MISC_TWARN_INT_MASK (0x08U) - -/*! - * \brief PMIC_INT_MODERATE_ERR Register Bit Masks - */ -#define PMIC_INT_MODERATE_ERR_TSD_ORD_INT_MASK (0x01U) -#define PMIC_INT_MODERATE_ERR_BIST_FAIL_INT_MASK (0x02U) -#define PMIC_INT_MODERATE_ERR_REG_CRC_ERR_INT_MASK (0x04U) - -/** \brief PMIC_INT_MODERATE_ERR_NRSTOUT_READBACK_INT_MASK Bit Positions - * valid only for PG2.0 */ -#define PMIC_INT_MODERATE_ERR_RECOV_CNT_INT_MASK (0x08U) - -/** \brief PMIC_INT_MODERATE_ERR_PFSM_ERR_INT_MASK_PG_1_0 Bit Positions - * valid only for PG1.0 */ -#define PMIC_INT_MODERATE_ERR_PFSM_ERR_INT_MASK_PG_1_0 (0x08U) - -#define PMIC_INT_MODERATE_ERR_SPMI_ERR_INT_MASK (0x10U) - -/** \brief PMIC_INT_MODERATE_ERR_NINT_READBACK_INT_MASK Bit Positions - * valid only for PG2.0 */ -#define PMIC_INT_MODERATE_ERR_NINT_READBACK_INT_MASK (0x40U) - -/** \brief PMIC_INT_MODERATE_ERR_RECOV_CNT_INT_MASK_PG_1_0 Bit Positions - * valid only for PG1.0 */ -#define PMIC_INT_MODERATE_ERR_RECOV_CNT_INT_MASK_PG_1_0 (0x40U) - -/** \brief PMIC_INT_MODERATE_ERR_NRSTOUT_READBACK_INT_MASK Bit Positions - * valid only for PG2.0 */ -#define PMIC_INT_MODERATE_ERR_NRSTOUT_READBACK_INT_MASK (0x80U) - -/*! - * \brief PMIC_INT_SEVERE_ERR Register Bit Masks - */ -#define PMIC_INT_SEVERE_ERR_TSD_IMM_INT_MASK (0x01U) -#define PMIC_INT_SEVERE_ERR_VCCA_OVP_INT_MASK (0x02U) -#define PMIC_INT_SEVERE_ERR_PFSM_ERR_INT_MASK (0x04U) - -/*! - * \brief PMIC_INT_COMM_ERR Register Bit Masks - */ -#define PMIC_INT_COMM_ERR_COMM_FRM_ERR_INT_MASK (0x01U) -#define PMIC_INT_COMM_ERR_COMM_CRC_ERR_INT_MASK (0x02U) -#define PMIC_INT_COMM_ERR_COMM_ADR_ERR_INT_MASK (0x08U) -#define PMIC_INT_COMM_ERR_I2C2_CRC_ERR_INT_MASK (0x20U) -#define PMIC_INT_COMM_ERR_I2C2_ADR_ERR_INT_MASK (0x80U) - -/*! - * \brief PMIC_INT_READBACK_ERR Register Bit Masks - */ -#define PMIC_INT_READBACK_ERR_EN_DRV_READBACK_INT_MASK (0x01U) - -/** \brief PMIC_INT_READBACK_ERR_NINT_READBACK_INT_MASK Bit Positions - * valid only for PG1.0 */ -#define PMIC_INT_READBACK_ERR_NINT_READBACK_INT_MASK (0x02U) - -/** \brief PMIC_INT_READBACK_ERR_NRSTOUT_READBACK_INT_MASK Bit Positions - * valid only for PG1.0 */ -#define PMIC_INT_READBACK_ERR_NRSTOUT_READBACK_INT_MASK (0x04U) - -#define PMIC_INT_READBACK_ERR_NRSTOUT_SOC_READBACK_INT_MASK (0x08U) - -/*! - * \brief PMIC_INT_ESM Register Bit Masks - */ -#define PMIC_INT_ESM_ESM_SOC_PIN_INT_MASK (0x01U) -#define PMIC_INT_ESM_ESM_SOC_FAIL_INT_MASK (0x02U) -#define PMIC_INT_ESM_ESM_SOC_RST_INT_MASK (0x04U) -#define PMIC_INT_ESM_ESM_MCU_PIN_INT_MASK (0x08U) -#define PMIC_INT_ESM_ESM_MCU_FAIL_INT_MASK (0x10U) -#define PMIC_INT_ESM_ESM_MCU_RST_INT_MASK (0x20U) - -/*! - * \brief IRQ Mask Bits to validate error bits - */ -#define PMIC_INT_WD_ERR_MASK (0xC1U) - -/*! - * \brief PMIC Interrupt register Bit Positions - */ -/*! PMIC_INT_ESM Register Bit Positions */ -#define PMIC_INT_ESM_ESM_MCU_RST_INT_SHIFT (0x5U) -#define PMIC_INT_ESM_ESM_MCU_FAIL_INT_SHIFT (0x4U) -#define PMIC_INT_ESM_ESM_MCU_PIN_INT_SHIFT (0x3U) -#define PMIC_INT_ESM_ESM_SOC_RST_INT_SHIFT (0x2U) -#define PMIC_INT_ESM_ESM_SOC_FAIL_INT_SHIFT (0x1U) -#define PMIC_INT_ESM_ESM_SOC_PIN_INT_SHIFT (0x0U) - -/*! PMIC_INT_READBACK_ERR Register Bit Positions */ -#define PMIC_INT_READBACK_ERR_NRSTOUT_SOC_READBACK_INT_SHIFT (0x3U) - -/** \brief PMIC_INT_READBACK_ERR_NRSTOUT_READBACK_INT_SHIFT Bit Positions - * valid only for PG1.0 */ -#define PMIC_INT_READBACK_ERR_NRSTOUT_READBACK_INT_SHIFT (0x2U) - -/** \brief PMIC_INT_READBACK_ERR_NINT_READBACK_INT_SHIFT Bit Positions - * valid only for PG1.0 */ -#define PMIC_INT_READBACK_ERR_NINT_READBACK_INT_SHIFT (0x1U) - -#define PMIC_INT_READBACK_ERR_EN_DRV_READBACK_INT_SHIFT (0x0U) - -/*! PMIC_INT_COMM_ERR Register Bit Positions */ -#define PMIC_INT_COMM_ERR_I2C2_ADR_ERR_INT_SHIFT (0x7U) -#define PMIC_INT_COMM_ERR_I2C2_CRC_ERR_INT_SHIFT (0x5U) -#define PMIC_INT_COMM_ERR_COMM_ADR_ERR_INT_SHIFT (0x3U) -#define PMIC_INT_COMM_ERR_COMM_CRC_ERR_INT_SHIFT (0x1U) -#define PMIC_INT_COMM_ERR_COMM_FRM_ERR_INT_SHIFT (0x0U) - -/*! PMIC_INT_FSM_ERR Register Bit Positions */ -#define PMIC_INT_FSM_ERR_SOC_PWR_ERR_INT_SHIFT (0x3U) -#define PMIC_INT_FSM_ERR_MCU_PWR_ERR_INT_SHIFT (0x2U) -#define PMIC_INT_FSM_ERR_ORD_SHUTDOWN_INT_SHIFT (0x1U) -#define PMIC_INT_FSM_ERR_IMM_SHUTDOWN_INT_SHIFT (0x0U) - -/*! PMIC_INT_SEVERE_ERR Register Bit Positions */ -#define PMIC_INT_SEVERE_ERR_PFSM_ERR_INT_SHIFT (0x2U) -#define PMIC_INT_SEVERE_ERR_VCCA_OVP_INT_SHIFT (0x1U) -#define PMIC_INT_SEVERE_ERR_TSD_IMM_INT_SHIFT (0x0U) - -/*! PMIC_INT_MODERATE_ERR Register Bit Positions */ - -/** \brief PMIC_INT_MODERATE_ERR_NRSTOUT_READBACK_INT_SHIFT Bit Positions - * valid only for PG2.0 */ -#define PMIC_INT_MODERATE_ERR_NRSTOUT_READBACK_INT_SHIFT (0x7U) -/** \brief PMIC_INT_MODERATE_ERR_NINT_READBACK_INT_SHIFT Bit Positions - * valid only for PG2.0 */ -#define PMIC_INT_MODERATE_ERR_NINT_READBACK_INT_SHIFT (0x6U) - -/** \brief PMIC_INT_MODERATE_ERR_RECOV_CNT_INT_SHIFT Bit Positions - * valid only for PG1.0 */ -#define PMIC_INT_MODERATE_ERR_RECOV_CNT_INT_SHIFT_PG_1_0 (0x6U) - -#define PMIC_INT_MODERATE_ERR_SPMI_ERR_INT_SHIFT (0x4U) - -/** \brief PMIC_INT_MODERATE_ERR_PFSM_ERR_INT_SHIFT Bit Positions - * valid only for PG1.0 */ -#define PMIC_INT_MODERATE_ERR_PFSM_ERR_INT_SHIFT_PG_1_0 (0x3U) - -/** \brief PMIC_INT_MODERATE_ERR_RECOV_CNT_INT_SHIFT Bit Positions - * valid only for PG2.0 */ -#define PMIC_INT_MODERATE_ERR_RECOV_CNT_INT_SHIFT (0x3U) - -#define PMIC_INT_MODERATE_ERR_REG_CRC_ERR_INT_SHIFT (0x2U) -#define PMIC_INT_MODERATE_ERR_BIST_FAIL_INT_SHIFT (0x1U) -#define PMIC_INT_MODERATE_ERR_TSD_ORD_INT_SHIFT (0x0U) - -/*! PMIC_INT_MISC Register Bit Positions */ -#define PMIC_INT_MISC_TWARN_INT_SHIFT (0x3U) -#define PMIC_INT_MISC_EXT_CLK_INT_SHIFT (0x1U) -#define PMIC_INT_MISC_BIST_PASS_INT_SHIFT (0x0U) - -/*! PMIC_INT_STARTUP Register Bit Positions */ -/*! Valid only for PG2.0 */ -#define PMIC_INT_STARTUP_SOFT_REBOOT_INT_SHIFT (0x5U) -#define PMIC_INT_STARTUP_FSD_INT_SHIFT (0x4U) -#define PMIC_INT_STARTUP_ENABLE_INT_SHIFT (0x1U) - -/*! PMIC_INT_GPIO1_8 Register Bit Positions */ -#define PMIC_INT_GPIO1_8_GPIO8_INT_SHIFT (0x7U) -#define PMIC_INT_GPIO1_8_GPIO7_INT_SHIFT (0x6U) -#define PMIC_INT_GPIO1_8_GPIO6_INT_SHIFT (0x5U) -#define PMIC_INT_GPIO1_8_GPIO5_INT_SHIFT (0x4U) -#define PMIC_INT_GPIO1_8_GPIO4_INT_SHIFT (0x3U) -#define PMIC_INT_GPIO1_8_GPIO3_INT_SHIFT (0x2U) -#define PMIC_INT_GPIO1_8_GPIO2_INT_SHIFT (0x1U) -#define PMIC_INT_GPIO1_8_GPIO1_INT_SHIFT (0x0U) - -/*! PMIC_INT_GPIO Register Bit Positions */ -#define PMIC_INT_GPIO_GPIO10_INT_SHIFT (0x1U) -#define PMIC_INT_GPIO_GPIO9_INT_SHIFT (0x0U) - -/*! PMIC_INT_VMON Register Bit Positions */ -#define PMIC_INT_VMON_VCCA_UV_INT_SHIFT (0x1U) -#define PMIC_INT_VMON_VCCA_OV_INT_SHIFT (0x0U) - -/*! PMIC_INT_BUCK3_4 Register Bit Positions */ -#define PMIC_INT_BUCK3_4_BUCK4_ILIM_INT_SHIFT (0x7U) -#define PMIC_INT_BUCK3_4_BUCK4_SC_INT_SHIFT (0x6U) -#define PMIC_INT_BUCK3_4_BUCK4_UV_INT_SHIFT (0x5U) -#define PMIC_INT_BUCK3_4_BUCK4_OV_INT_SHIFT (0x4U) -#define PMIC_INT_BUCK3_4_BUCK3_ILIM_INT_SHIFT (0x3U) -#define PMIC_INT_BUCK3_4_BUCK3_SC_INT_SHIFT (0x2U) -#define PMIC_INT_BUCK3_4_BUCK3_UV_INT_SHIFT (0x1U) -#define PMIC_INT_BUCK3_4_BUCK3_OV_INT_SHIFT (0x0U) - -/*! PMIC_INT_BUCK1_2 Register Bit Positions */ -#define PMIC_INT_BUCK1_2_BUCK2_ILIM_INT_SHIFT (0x7U) -#define PMIC_INT_BUCK1_2_BUCK2_SC_INT_SHIFT (0x6U) -#define PMIC_INT_BUCK1_2_BUCK2_UV_INT_SHIFT (0x5U) -#define PMIC_INT_BUCK1_2_BUCK2_OV_INT_SHIFT (0x4U) -#define PMIC_INT_BUCK1_2_BUCK1_ILIM_INT_SHIFT (0x3U) -#define PMIC_INT_BUCK1_2_BUCK1_SC_INT_SHIFT (0x2U) -#define PMIC_INT_BUCK1_2_BUCK1_UV_INT_SHIFT (0x1U) -#define PMIC_INT_BUCK1_2_BUCK1_OV_INT_SHIFT (0x0U) - -/*! - * \brief PMIC Mask register Bit Positions - */ - -/*! PMIC_MASK_ESM Register Bit Positions */ -#define PMIC_MASK_ESM_ESM_MCU_RST_MASK_SHIFT (0x5U) -#define PMIC_MASK_ESM_ESM_MCU_FAIL_MASK_SHIFT (0x4U) -#define PMIC_MASK_ESM_ESM_MCU_PIN_MASK_SHIFT (0x3U) -#define PMIC_MASK_ESM_ESM_SOC_RST_MASK_SHIFT (0x2U) -#define PMIC_MASK_ESM_ESM_SOC_FAIL_MASK_SHIFT (0x1U) -#define PMIC_MASK_ESM_ESM_SOC_PIN_MASK_SHIFT (0x0U) - -/*! PMIC_MASK_READBACK_ERR Register Bit Positions */ -#define PMIC_MASK_READBACK_ERR_NRSTOUT_SOC_READBACK_MASK_SHIFT (0x3U) - -/** \brief PMIC_MASK_READBACK_ERR_NRSTOUT_READBACK_MASK_SHIFT Bit Positions - * valid only for PG1.0 */ -#define PMIC_MASK_READBACK_ERR_NRSTOUT_READBACK_MASK_SHIFT (0x2U) - -/** \brief PMIC_MASK_READBACK_ERR_NINT_READBACK_MASK_SHIFT Bit Positions - * valid only for PG1.0 */ -#define PMIC_MASK_READBACK_ERR_NINT_READBACK_MASK_SHIFT (0x1U) - -#define PMIC_MASK_READBACK_ERR_EN_DRV_READBACK_MASK_SHIFT (0x0U) - -/*! PMIC_MASK_COMM_ERR Register Bit Positions */ -#define PMIC_MASK_COMM_ERR_I2C2_ADR_ERR_MASK_SHIFT (0x7U) -#define PMIC_MASK_COMM_ERR_I2C2_CRC_ERR_MASK_SHIFT (0x5U) -#define PMIC_MASK_COMM_ERR_COMM_ADR_ERR_MASK_SHIFT (0x3U) -#define PMIC_MASK_COMM_ERR_COMM_CRC_ERR_MASK_SHIFT (0x1U) -#define PMIC_MASK_COMM_ERR_COMM_FRM_ERR_MASK_SHIFT (0x0U) - -/*! PMIC_MASK_FSM_ERR Register Bit Positions */ -#define PMIC_MASK_FSM_ERR_SOC_PWR_ERR_MASK_SHIFT (0x3U) -#define PMIC_MASK_FSM_ERR_MCU_PWR_ERR_MASK_SHIFT (0x2U) -#define PMIC_MASK_FSM_ERR_ORD_SHUTDOWN_MASK_SHIFT (0x1U) -#define PMIC_MASK_FSM_ERR_IMM_SHUTDOWN_MASK_SHIFT (0x0U) - -/*! PMIC_MASK_MODERATE_ERR Register Bit Positions */ - -/** \brief PMIC_MASK_MODERATE_ERR_NRSTOUT_READBACK_MASK_SHIFT Bit Positions - * valid only for PG2.0 */ -#define PMIC_MASK_MODERATE_ERR_NRSTOUT_READBACK_MASK_SHIFT (0x7U) -/** \brief PMIC_MASK_MODERATE_ERR_NINT_READBACK_MASK_SHIFT Bit Positions - * valid only for PG2.0 */ -#define PMIC_MASK_MODERATE_ERR_NINT_READBACK_MASK_SHIFT (0x6U) - -#define PMIC_MASK_MODERATE_ERR_SPMI_ERR_MASK_SHIFT (0x4U) -#define PMIC_MASK_MODERATE_ERR_REG_CRC_ERR_MASK_SHIFT (0x2U) -#define PMIC_MASK_MODERATE_ERR_BIST_FAIL_MASK_SHIFT (0x1U) - -/*! PMIC_MASK_MISC Register Bit Positions */ -#define PMIC_MASK_MISC_EXT_CLK_MASK_SHIFT (0x1U) -#define PMIC_MASK_MISC_BIST_PASS_MASK_SHIFT (0x0U) - -/*! PMIC_MASK_STARTUP Register Bit Positions */ -/*! Valid only for PG 2.0 */ -#define PMIC_MASK_STARTUP_SOFT_REBOOT_MASK_SHIFT (0x5U) -#define PMIC_MASK_STARTUP_FSD_MASK_SHIFT (0x4U) -#define PMIC_MASK_STARTUP_ENABLE_MASK_SHIFT (0x1U) - -/*! PMIC_MASK_GPIO1_8_RISE Register Bit Positions */ -#define PMIC_MASK_GPIO1_8_RISE_GPIO8_RISE_MASK_SHIFT (0x7U) -#define PMIC_MASK_GPIO1_8_RISE_GPIO7_RISE_MASK_SHIFT (0x6U) -#define PMIC_MASK_GPIO1_8_RISE_GPIO6_RISE_MASK_SHIFT (0x5U) -#define PMIC_MASK_GPIO1_8_RISE_GPIO5_RISE_MASK_SHIFT (0x4U) -#define PMIC_MASK_GPIO1_8_RISE_GPIO4_RISE_MASK_SHIFT (0x3U) -#define PMIC_MASK_GPIO1_8_RISE_GPIO3_RISE_MASK_SHIFT (0x2U) -#define PMIC_MASK_GPIO1_8_RISE_GPIO2_RISE_MASK_SHIFT (0x1U) -#define PMIC_MASK_GPIO1_8_RISE_GPIO1_RISE_MASK_SHIFT (0x0U) - -/*! PMIC_MASK_GPIO1_8_FALL Register Bit Positions */ -#define PMIC_MASK_GPIO1_8_FALL_GPIO8_FALL_MASK_SHIFT (0x7U) -#define PMIC_MASK_GPIO1_8_FALL_GPIO7_FALL_MASK_SHIFT (0x6U) -#define PMIC_MASK_GPIO1_8_FALL_GPIO6_FALL_MASK_SHIFT (0x5U) -#define PMIC_MASK_GPIO1_8_FALL_GPIO5_FALL_MASK_SHIFT (0x4U) -#define PMIC_MASK_GPIO1_8_FALL_GPIO4_FALL_MASK_SHIFT (0x3U) -#define PMIC_MASK_GPIO1_8_FALL_GPIO3_FALL_MASK_SHIFT (0x2U) -#define PMIC_MASK_GPIO1_8_FALL_GPIO2_FALL_MASK_SHIFT (0x1U) -#define PMIC_MASK_GPIO1_8_FALL_GPIO1_FALL_MASK_SHIFT (0x0U) - -/*! PMIC_MASK_BUCK3_4 Register Bit Positions */ -#define PMIC_MASK_BUCK3_4_BUCK4_ILIM_MASK_SHIFT (0x7U) -#define PMIC_MASK_BUCK3_4_BUCK4_UV_MASK_SHIFT (0x5U) -#define PMIC_MASK_BUCK3_4_BUCK4_OV_MASK_SHIFT (0x4U) -#define PMIC_MASK_BUCK3_4_BUCK3_ILIM_MASK_SHIFT (0x3U) -#define PMIC_MASK_BUCK3_4_BUCK3_UV_MASK_SHIFT (0x1U) -#define PMIC_MASK_BUCK3_4_BUCK3_OV_MASK_SHIFT (0x0U) - -/*! PMIC_MASK_BUCK1_2 Register Bit Positions */ -#define PMIC_MASK_BUCK1_2_BUCK2_ILIM_MASK_SHIFT (0x7U) -#define PMIC_MASK_BUCK1_2_BUCK2_UV_MASK_SHIFT (0x5U) -#define PMIC_MASK_BUCK1_2_BUCK2_OV_MASK_SHIFT (0x4U) -#define PMIC_MASK_BUCK1_2_BUCK1_ILIM_MASK_SHIFT (0x3U) -#define PMIC_MASK_BUCK1_2_BUCK1_UV_MASK_SHIFT (0x1U) -#define PMIC_MASK_BUCK1_2_BUCK1_OV_MASK_SHIFT (0x0U) - -/*! PMIC INVALID MACROS */ -#define PMIC_IRQ_INVALID_REGADDR (0x0U) -#define PMIC_IRQ_INVALID_BIT_SHIFT (0x0U) -#define PMIC_INVALID_DEVICE (0xFFU) - -/*! - * \brief Bit field Value for intrMaskBitPos/intrClrBitPos/ - * gpioRiseMaskBitPos/gpioFallMaskBitPos - */ -#define PMIC_IRQ_MASK_CLR_BITFIELD (1U) - -/*! - * \brief Mask Value of the PMIC IRQ - */ -#define PMIC_IRQ_MASK_VAL_1 (1U) - -/*==========================================================================*/ -/* Structures and Enums */ -/*==========================================================================*/ -/*! -* \brief PMIC Interrupt details object structure. -* -* \param intrClrRegAddr Interrupt Clear Register Address. -* \param intrClrBitPos Interrupt Clear Register Bit Position. -* \param intrMaskRegAddr Interrupt Mask Register Address. -* \param intrMaskBitPos Interrupt Mask Register bit position. -*/ -typedef struct Pmic_IntrCfg_s -{ - uint16_t intrClrRegAddr; - uint8_t intrClrBitPos; - uint8_t intrMaskRegAddr; - uint8_t intrMaskBitPos; -} Pmic_IntrCfg_t; - -/*! -* \brief PMIC GPIO Interrupt Mask details object structure. -* -* \param gpioRiseIntrMaskRegAddr GPIO RISE Interrupt Mask Register Address -* \param gpioRiseMaskBitPos GPIO RISE Interrupt Mask Register Bit -* position. -* \param gpioFallIntrMaskRegAddr GPIO FALL Interrupt Mask Register Address -* \param gpioFallMaskBitPos GPIO FALL Interrupt Mask Register Bit -* position. -*/ -typedef struct Pmic_GpioIntrTypeCfg_s -{ - uint8_t gpioRiseIntrMaskRegAddr; - uint8_t gpioRiseMaskBitPos; - uint8_t gpioFallIntrMaskRegAddr; - uint8_t gpioFallMaskBitPos; -} Pmic_GpioIntrTypeCfg_t; - -/*==========================================================================*/ -/* Function Declarations */ -/*==========================================================================*/ -/*! - * \brief Function to Set the intStatus bit position. - */ -void Pmic_intrBitSet(Pmic_IrqStatus_t *pErrStat, uint32_t pos); - -#ifdef __cplusplus -} - -#endif /* __cplusplus */ - -#endif /* PMIC_IRQ_PRIV_H_ */ diff --git a/src/pmic_irq_status.c b/src/pmic_irq_status.c deleted file mode 100644 index fac8d6c..0000000 --- a/src/pmic_irq_status.c +++ /dev/null @@ -1,1353 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ - -/** - * \file pmic_irq_status.c - * - * \brief This file contains APIs definitions for PMIC Interrupt IRQ Status - * Handler. - * - */ - -#include -#include -#include -#include -#include -#include -#include - -/*! - * \brief Function to Set the intStatus bit position. - */ -void Pmic_intrBitSet(Pmic_IrqStatus_t *pErrStat, uint32_t pos) -{ - uint32_t intStatSize = 0U; - - /* Size of intStatus in bits */ - intStatSize = sizeof(pErrStat->intStatus[0U]) << 3U; - - pErrStat->intStatus[pos / intStatSize] |= - (((uint32_t)1U) << (pos % intStatSize)); -} - -/*! - * \brief Function to Clear the intStatus bit position. - */ -static void Pmic_intrBitClear(Pmic_IrqStatus_t *pErrStat, - const uint8_t *pIrqNum) -{ - uint32_t intStatSize = 0U; - - /* Size of intStatus in bits */ - intStatSize = sizeof(pErrStat->intStatus[0U]) << 3U; - - pErrStat->intStatus[(*pIrqNum) / intStatSize] &= - ~(1U << ((*pIrqNum) % intStatSize)); -} - -/*! - * \brief Function to Extract the intStatus bit position. - */ -static uint8_t Pmic_intrBitExtract(const Pmic_IrqStatus_t *pErrStat, - uint8_t maxVal) -{ - uint8_t irqNum = 0U; - uint32_t intStatSize = 0U; - - /* Size of intStatus in bits */ - intStatSize = sizeof(pErrStat->intStatus[0U]) << 3U; - for(irqNum = 0U; irqNum < maxVal; irqNum++) - { - if(((pErrStat->intStatus[irqNum / intStatSize]) & - (((uint32_t)1U) << (irqNum % intStatSize))) != 0U) - { - break; - } - } - - return irqNum; -} - -/*! - * \brief Function to Check the device specific Max IrqNum. - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - */ -static int32_t Pmic_irqValidateIrqNum(const Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t irqNum) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t maxVal; - - switch(pPmicCoreHandle->pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - if(PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - /* SOFT REBOOT is not valid for PG 1.0*/ - maxVal = PMIC_LP8764X_IRQ_MAX_NUM_PG_1_0; - } - else - { - maxVal = PMIC_LP8764X_IRQ_MAX_NUM_PG_2_0; - } - - if((irqNum > maxVal) && (irqNum != PMIC_IRQ_ALL)) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - break; - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - if(PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - /* SOFT REBOOT is not valid for PG 1.0*/ - maxVal = PMIC_TPS6594X_IRQ_MAX_NUM_PG_1_0; - } - else - { - maxVal = PMIC_TPS6594X_IRQ_MAX_NUM_PG_2_0; - } - - if((irqNum > maxVal) && (irqNum != PMIC_IRQ_ALL)) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - break; - } - - return pmicStatus; -} - -/*! - * \brief Function to Check the device specific Max IrqNum - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - */ -static int32_t Pmic_irqValidateIrqNumGetMaskIntrStatus( - const Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t irqNum) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t maxVal; - - switch(pPmicCoreHandle->pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - if(PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - /* SOFT REBOOT is not valid for PG 1.0*/ - maxVal = PMIC_LP8764X_IRQ_MAX_NUM_PG_1_0; - } - else - { - maxVal = PMIC_LP8764X_IRQ_MAX_NUM_PG_2_0; - } - - if(irqNum > maxVal) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - break; - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - if(PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - /* SOFT REBOOT is not valid for PG 1.0*/ - maxVal = PMIC_TPS6594X_IRQ_MAX_NUM_PG_1_0; - } - else - { - maxVal = PMIC_TPS6594X_IRQ_MAX_NUM_PG_2_0; - } - - if(irqNum > maxVal) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - break; - } - - return pmicStatus; -} - - -/*! - * \brief Function to get the device specific Max IrqNum. - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - */ -static void Pmic_getMaxVal(const Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t *maxVal) -{ - switch(pPmicCoreHandle->pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - if(PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - /* SOFT REBOOT is not valid for PG 1.0*/ - (*maxVal) = PMIC_LP8764X_IRQ_MAX_NUM_PG_1_0; - } - else - { - (*maxVal) = PMIC_LP8764X_IRQ_MAX_NUM_PG_2_0; - } - break; - - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - if(PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - /* SOFT REBOOT is not valid for PG 1.0*/ - (*maxVal) = PMIC_TPS6594X_IRQ_MAX_NUM_PG_1_0; - } - else - { - (*maxVal) = PMIC_TPS6594X_IRQ_MAX_NUM_PG_2_0; - } - break; - } -} - -/*! - * \brief Function to get the Device specific Interrupt Configuration - * registers. - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - */ -static void Pmic_get_intrCfg(const Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_IntrCfg_t **pIntrCfg) -{ - switch(pPmicCoreHandle->pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - pmic_get_lp8764x_intrCfg(pIntrCfg); - break; - - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - pmic_get_tps6594x_intrCfg(pIntrCfg); - break; - } -} - -/*! - * \brief Function to get the Device specific GPIO Interrupt configuration - * registers. - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - */ -static void Pmic_get_gpioIntrCfg(const Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_GpioIntrTypeCfg_t **pGpioIntrCfg) -{ - switch(pPmicCoreHandle->pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - pmic_get_lp8764x_intrGpioCfg(pGpioIntrCfg); - break; - - default: - pmic_get_tps6594x_intrGpioCfg(pGpioIntrCfg); - break; - } -} - -/*! - * \brief Function to Mask/Unmask GPIO Interrupts. - */ -static int32_t Pmic_irqGpioMask(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t irqGpioNum, - const bool mask, - const uint8_t gpioIntrType) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - Pmic_GpioIntrTypeCfg_t *pGpioIntrCfg = NULL; - uint8_t bitMask = 0U; - uint8_t maskVal = 0U; - - Pmic_get_gpioIntrCfg(pPmicCoreHandle, &pGpioIntrCfg); - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - if((PMIC_IRQ_GPIO_RISE_INT_TYPE == gpioIntrType) || - (PMIC_IRQ_GPIO_RISE_FALL_INT_TYPE == gpioIntrType)) - { - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - pGpioIntrCfg[irqGpioNum].gpioRiseIntrMaskRegAddr, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(((bool)true) == mask) - { - maskVal = 1U; - } - bitMask = (PMIC_IRQ_MASK_CLR_BITFIELD << - pGpioIntrCfg[irqGpioNum].gpioRiseMaskBitPos); - Pmic_setBitField(®Data, - pGpioIntrCfg[irqGpioNum].gpioRiseMaskBitPos, - bitMask, - maskVal); - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - pGpioIntrCfg[irqGpioNum].gpioRiseIntrMaskRegAddr, - regData); - } - } - - if((PMIC_IRQ_GPIO_FALL_INT_TYPE == gpioIntrType) || - (PMIC_IRQ_GPIO_RISE_FALL_INT_TYPE == gpioIntrType)) - { - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - pGpioIntrCfg[irqGpioNum].gpioFallIntrMaskRegAddr, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(((bool)true) == mask) - { - maskVal = 1U; - } - bitMask = (PMIC_IRQ_MASK_CLR_BITFIELD << - pGpioIntrCfg[irqGpioNum].gpioFallMaskBitPos); - Pmic_setBitField(®Data, - pGpioIntrCfg[irqGpioNum].gpioFallMaskBitPos, - bitMask, - maskVal); - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - pGpioIntrCfg[irqGpioNum].gpioFallIntrMaskRegAddr, - regData); - } - } - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - return pmicStatus; -} - -/*! - * \brief Function to Mask/Unmask GPIO Interrupts. - */ -static int32_t Pmic_maskGpioIntr(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t irqGpioNum, - const bool mask, - const uint8_t gpioIntrType) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t irqGpioId = 0U; - - if(PMIC_IRQ_GPIO_ALL_INT_MASK_NUM != irqGpioNum) - { - pmicStatus = Pmic_irqGpioMask(pPmicCoreHandle, - irqGpioNum, - mask, - gpioIntrType); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (PMIC_IRQ_GPIO_ALL_INT_MASK_NUM == irqGpioNum)) - { - for(irqGpioId = 0U; - irqGpioId < (PMIC_IRQ_GPIO_ALL_INT_MASK_NUM - 1U); - irqGpioId++) - { - pmicStatus = Pmic_irqGpioMask(pPmicCoreHandle, - irqGpioId, - mask, - gpioIntrType); - } - } - - return pmicStatus; -} - -/*! - * \brief Function to clear IRQ status. - */ -static int32_t Pmic_irqClear(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t irqNum) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - Pmic_IntrCfg_t *pIntrCfg = NULL; - uint8_t bitMask = 0U; - - Pmic_get_intrCfg(pPmicCoreHandle, &pIntrCfg); - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - pIntrCfg[irqNum].intrClrRegAddr, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - bitMask = (PMIC_IRQ_MASK_CLR_BITFIELD << - pIntrCfg[irqNum].intrClrBitPos); - Pmic_setBitField(®Data, - pIntrCfg[irqNum].intrClrBitPos, - bitMask, - PMIC_IRQ_CLEAR); - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - pIntrCfg[irqNum].intrClrRegAddr, - regData); - } - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - return pmicStatus; -} - -/*! - * \brief Function to Clear Interrupt Status register. - */ -static int32_t Pmic_irqClearStatus(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t irqNum) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t irqId = 0U; - uint8_t maxVal = 0U; - - if(PMIC_IRQ_ALL != irqNum) - { - pmicStatus = Pmic_irqClear(pPmicCoreHandle, irqNum); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && (PMIC_IRQ_ALL == irqNum)) - { - Pmic_getMaxVal(pPmicCoreHandle, &maxVal); - - for(irqId = 0U; irqId < maxVal; irqId++) - { - pmicStatus = Pmic_irqClear(pPmicCoreHandle, irqId); - } - } - - return pmicStatus; -} - -/*! - * \brief Function to Mask/Unmask Interrupts. - */ -static int32_t Pmic_irqMask(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t irqNum, - const bool mask, - const Pmic_IntrCfg_t *pIntrCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t bitMask = 0U; - uint8_t maskVal = 0U; - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - pIntrCfg[irqNum].intrMaskRegAddr, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(((bool)true) == mask) - { - maskVal = 1U; - } - bitMask = (PMIC_IRQ_MASK_CLR_BITFIELD << - pIntrCfg[irqNum].intrMaskBitPos); - Pmic_setBitField(®Data, - pIntrCfg[irqNum].intrMaskBitPos, - bitMask, - maskVal); - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - pIntrCfg[irqNum].intrMaskRegAddr, - regData); - } - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - return pmicStatus; -} - -/*! - * \brief Function to Mask/Unmask PMIC Interrupts except GPIO. - */ -static int32_t Pmic_maskIntr(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t irqNum, - const bool mask) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t irqId = 0U; - uint8_t maxVal = 0U; - Pmic_IntrCfg_t *pIntrCfg = NULL; - - Pmic_get_intrCfg(pPmicCoreHandle, &pIntrCfg); - - if(PMIC_IRQ_ALL != irqNum) - { - if(PMIC_IRQ_INVALID_REGADDR == pIntrCfg[irqNum].intrMaskRegAddr) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_irqMask(pPmicCoreHandle, irqNum, mask, pIntrCfg); - } - } - - if((PMIC_ST_SUCCESS == pmicStatus) && (PMIC_IRQ_ALL == irqNum)) - { - Pmic_getMaxVal(pPmicCoreHandle, &maxVal); - - for(irqId = 0U; irqId < maxVal; irqId++) - { - if(PMIC_IRQ_INVALID_REGADDR == pIntrCfg[irqId].intrMaskRegAddr) - { - continue; - } - - pmicStatus = Pmic_irqMask(pPmicCoreHandle, irqId, mask, pIntrCfg); - } - } - - return pmicStatus; -} - -/*! - * \brief Function to get the PMIC_INT_TOP Register value. - */ -static int32_t Pmic_getIntrTopRegVal(Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t *regValue) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Read Top level Interrupt TOP register in the Hierarchy */ - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_INT_TOP_REGADDR, - ®Data); - - /* Stop Critical Section */ - Pmic_criticalSectionStop (pPmicCoreHandle); - (*regValue) = regData; - - return pmicStatus; -} - -/*! - * \brief Function to get the L1 error registers for INT_MISC, - * INT_MODERATE_ERR, INT_SEVERE_ERR, INT_FSM_ERR - * - */ -static void Pmic_irqGetMiscModerateSevereFsmErr(uint8_t regValue, - uint16_t *l1RegAddr, - uint8_t count) -{ - switch(regValue & (1U << count)) - { - case PMIC_INT_TOP_MISC_INT_MASK: - (*l1RegAddr) = PMIC_INT_MISC_REGADDR; - break; - - case PMIC_INT_TOP_MODERATE_ERR_INT_MASK: - (*l1RegAddr) = PMIC_INT_MODERATE_ERR_REGADDR; - break; - - case PMIC_INT_TOP_SEVERE_ERR_INT_MASK: - (*l1RegAddr) = PMIC_INT_SEVERE_ERR_REGADDR; - break; - - default: - (*l1RegAddr) = PMIC_INT_FSM_ERR_REGADDR; - break; - } -} - -/*! - * \brief Function to get the L1 error registers. - */ -static void Pmic_irqGetL1Reg(const Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t regValue, - uint16_t *l1RegAddr, - uint8_t count) -{ - (*l1RegAddr) = PMIC_INT_UNUSED_REGADDR; - - switch(regValue & (1U << count)) - { - case PMIC_INT_TOP_BUCK_INT_MASK: - (*l1RegAddr) = PMIC_INT_BUCK_REGADDR; - break; - - case PMIC_INT_TOP_LDO_VMON_INT_MASK: - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - (*l1RegAddr) = PMIC_INT_VMON_REGADDR; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - (*l1RegAddr) = PMIC_INT_LDO_VMON_REGADDR; - } - - break; - - case PMIC_INT_TOP_GPIO_INT_MASK: - (*l1RegAddr) = PMIC_INT_GPIO_REGADDR; - break; - - case PMIC_INT_TOP_STARTUP_INT_MASK: - (*l1RegAddr) = PMIC_INT_STARTUP_REGADDR; - break; - - case PMIC_INT_TOP_MISC_INT_MASK: - case PMIC_INT_TOP_MODERATE_ERR_INT_MASK: - case PMIC_INT_TOP_SEVERE_ERR_INT_MASK: - case PMIC_INT_TOP_FSM_ERR_INT_MASK: - Pmic_irqGetMiscModerateSevereFsmErr(regValue, l1RegAddr, count); - break; - - default: - break; - } - - if(PMIC_INT_UNUSED_REGADDR == (*l1RegAddr)) - { - (*l1RegAddr) = 0U; - } -} - -/*! - * \brief Function to decipher L2 Error. - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - */ -static int32_t Pmic_irqGetL2Error(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t l1RegAddr, - Pmic_IrqStatus_t *pErrStat) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - switch(pPmicCoreHandle->pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - pmicStatus = Pmic_lp8764x_irqGetL2Error(pPmicCoreHandle, - l1RegAddr, - pErrStat); - break; - - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - pmicStatus = Pmic_tps6594x_irqGetL2Error(pPmicCoreHandle, - l1RegAddr, - pErrStat); - break; - } - - return pmicStatus; -} - -/*! - * \brief Function to Extract Interrupts as per Hierarchy given in TRM and - * clear the bit in pErrStat. - */ -static void Pmic_extractErrStatus(const Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_IrqStatus_t *pErrStat, - uint8_t *pIrqNum) -{ - uint8_t maxVal = 0U; - - Pmic_getMaxVal(pPmicCoreHandle, &maxVal); - - *pIrqNum = Pmic_intrBitExtract(pErrStat, maxVal); - /* To clear the Error Bit position after extracting */ - Pmic_intrBitClear(pErrStat, pIrqNum); - -} - -/*! - * \brief API to read Error status. - * - * Requirement: REQ_TAG(PDK-5805), REQ_TAG(PDK-5842), REQ_TAG(PDK-5832), - * REQ_TAG(PDK-5838), REQ_TAG(PDK-5852), REQ_TAG(PDK-5834), - * REQ_TAG(PDK-5806), REQ_TAG(PDK-5828), REQ_TAG(PDK-5807), - * REQ_TAG(PDK-5846), REQ_TAG(PDK-5812), REQ_TAG(PDK-5830), - * REQ_TAG(PDK-5835), REQ_TAG(PDK-5836), REQ_TAG(PDK-5845), - * REQ_TAG(PDK-9147), REQ_TAG(PDK-9148), REQ_TAG(PDK-9149), - * REQ_TAG(PDK-9113), REQ_TAG(PDK-9120), REQ_TAG(PDK-9122), - * REQ_TAG(PDK-9159), REQ_TAG(PDK-9329) - * Design: did_pmic_irq_cfg_readback - * Architecture: aid_pmic_irq_cfg - * - * This function does the following: - * 1. This function gets the interrupt status by reading pmic - * IRQ register as per IRQ hierarchy defined in device TRM. - * 2. Decipher error from top register to actual error code. - * 3. Store the status of all Interrupts. - * 4. Support clearing interrupts depends on clearIRQ flag. - * Note: Application has to ensure to clear the interrupts after the - * interrupt has been serviced. If the interrupts are not cleared - * after the interrupt had been serviced then Application will - * not get any further interrupts which results in event miss - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pErrStat [OUT] Pointer to store Error status. - * \param clearIRQ [IN] Flag to clear Interrupt status after - * deciphering the interrupt status. - * For valid values: \ref Pmic_IrqClearFlag. - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values: \ref Pmic_ErrorCodes. - */ -int32_t Pmic_irqGetErrStatus(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_IrqStatus_t *pErrStat, - const bool clearIRQ) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regValue = 0U; - uint16_t l1RegAddr = 0U; - uint8_t count = 0U; - uint8_t clearIRQStat = 0U; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && (NULL == pErrStat)) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Clearing all Error Status structure members */ - pErrStat->intStatus[0U] = 0U; - pErrStat->intStatus[1U] = 0U; - pErrStat->intStatus[2U] = 0U; - pErrStat->intStatus[3U] = 0U; - - pmicStatus = Pmic_getIntrTopRegVal(pPmicCoreHandle, ®Value); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - for(count = 7U;; count--) - { - l1RegAddr = 0U; - Pmic_irqGetL1Reg(pPmicCoreHandle, - regValue, - &l1RegAddr, - count); - if(0U != l1RegAddr) - { - pmicStatus = Pmic_irqGetL2Error(pPmicCoreHandle, - l1RegAddr, - pErrStat); - } - if((PMIC_ST_SUCCESS != pmicStatus) || (count == 0U)) - { - break; - } - } - if(((bool)true) == clearIRQ) - { - clearIRQStat =1U; - } - - if(PMIC_IRQ_CLEAR == clearIRQStat) - { - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - PMIC_IRQ_ALL); - } - } - } - - return pmicStatus; -} - -/*! - * \brief API to clear Error status. - * - * Requirement: REQ_TAG(PDK-5805), REQ_TAG(PDK-9113), REQ_TAG(PDK-9120) - * Design: did_pmic_irq_cfg_readback - * Architecture: aid_pmic_irq_cfg - * - * This function does the following: - * 1. This function clears the IRQ status in PMIC register for a given - * IRQ Number. - * 2. Validates given IRQ Number and find the IRQ register that is - * to be cleared. - * 3. Expected to be called after an IRQ status is deciphered by - * Pmic_irqGetErrStatus(). - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param irqNum [IN] Interrupt number to clear the status. - * Valid values are: - * For TPS6594x LEO: - * \ref Pmic_tps6594x_IrqNum. - * For LP8764x HERA: - * \ref Pmic_lp8764x_IrqNum. - * For all: \ref Pmic_IrqNum. - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values: \ref Pmic_ErrorCodes. - */ -int32_t Pmic_irqClrErrStatus(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t irqNum) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_irqValidateIrqNum(pPmicCoreHandle, irqNum); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_irqClearStatus(pPmicCoreHandle, irqNum); - } - - return pmicStatus; -} - -/*! - * \brief API to mask/unmask interrupts. - * - * Requirement: REQ_TAG(PDK-5805) - * Design: did_pmic_irq_cfg_readback - * Architecture: aid_pmic_irq_cfg - * - * This function does the following: - * 1. This function mask/unmask the given IRQ Number. - * 2. Validates given IRQ Number and find the IRQ register that - * is to be masked/unmasked. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param irqNum [IN] Interrupt status to be cleared. - * Valid values are: - * For TPS6594x LEO: - * \ref Pmic_tps6594x_IrqNum. - * For LP8764x HERA: - * \ref Pmic_lp8764x_IrqNum. - * For all: \ref Pmic_IrqNum. - * \param mask [IN] Parameter to mask/unmask INTR. - * For valid values: \ref Pmic_IrqMaskFlag. - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values: \ref Pmic_ErrorCodes. - */ -int32_t Pmic_irqMaskIntr(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t irqNum, - const bool mask) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_irqValidateIrqNum(pPmicCoreHandle, irqNum); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_maskIntr(pPmicCoreHandle, irqNum, mask); - } - - return pmicStatus; -} - -/*! - * \brief API to extract each Error status. - * - * Requirement: REQ_TAG(PDK-5805) - * Design: did_pmic_irq_cfg_readback - * Architecture: aid_pmic_irq_cfg - * - * This function is used to extract each Error status from pErrStat - * as per the hierarchy given in the TRM. This function clears the - * Error status after the status is extracted. This API is expected to - * be called after Pmic_irqGetErrStatus. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pErrStat [IN] Pointer containing Error Status. - * \param pIrqNum [OUT] Pointer to store the IRQ Number extracted - * For TPS6594x LEO: - * \ref Pmic_tps6594x_IrqNum. - * For LP8764x HERA: - * \ref Pmic_lp8764x_IrqNum. - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref: Pmic_ErrorCodes. - */ -int32_t Pmic_getNextErrorStatus(const Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_IrqStatus_t *pErrStat, - uint8_t *pIrqNum) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && (NULL == pErrStat)) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && (NULL == pIrqNum)) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((pErrStat->intStatus[0U] == 0U) && (pErrStat->intStatus[1U] == 0U) && - (pErrStat->intStatus[2U] == 0U) && (pErrStat->intStatus[3U] == 0U))) - { - pmicStatus = PMIC_ST_ERR_INV_INT; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_extractErrStatus(pPmicCoreHandle, pErrStat, pIrqNum); - } - - return pmicStatus; -} - -/*! - * \brief API to mask/unmask GPIO interrupts. - * - * Requirement: REQ_TAG(PDK-5812) - * Design: did_pmic_irq_cfg_readback - * Architecture: aid_pmic_irq_cfg - * - * This function is used to Mask or Unmask GPIO Rise and Fall - * Interrupts based on the GPIO IRQ Number. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param irqGpioNum [IN] GPIO Interrupt to be masked/unmasked. - * Valid values: - * For TPS6594x LEO PMIC: - * \ref Pmic_tps6594x_IrqGpioNum. - * For LP8764x HERA PMIC: - * \ref Pmic_lp8764x_IrqGpioNum. - * For all: \ref Pmic_IrqGpioNum. - * \param mask [IN] Parameter to mask/unmask INTR. - * Valid values: \ref Pmic_IrqMaskFlag. - * \param gpioIntrType [IN] Parameter to mask GPIO RISE and FALL - * Interrupt. - * Valid values: \ref Pmic_IrqGpioIntrType. - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes. - */ -int32_t Pmic_irqGpioMaskIntr(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t irqGpioNum, - const bool mask, - const uint8_t gpioIntrType) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (gpioIntrType > PMIC_IRQ_GPIO_RISE_FALL_INT_TYPE)) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (irqGpioNum > PMIC_IRQ_GPIO_ALL_INT_MASK_NUM)) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((irqGpioNum == PMIC_TPS6594X_IRQ_GPIO_11_INT_MASK_NUM) && - (PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType))) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_maskGpioIntr(pPmicCoreHandle, - irqGpioNum, - mask, - gpioIntrType); - } - - return pmicStatus; -} - -/*! - * \brief Function to get status of the Interrupts is masked or not. - */ -static int32_t Pmic_getIrqMaskStatus(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t irqNum, - bool *pMaskStatus, - const Pmic_IntrCfg_t *pIntrCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t bitMask = 0U; - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - pIntrCfg[irqNum].intrMaskRegAddr, - ®Data); - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - bitMask = (PMIC_IRQ_MASK_CLR_BITFIELD << - pIntrCfg[irqNum].intrMaskBitPos); - *pMaskStatus = PMIC_IRQ_UNMASK; - - if((Pmic_getBitField(regData, pIntrCfg[irqNum].intrMaskBitPos, bitMask)) - == PMIC_IRQ_MASK_VAL_1) - { - *pMaskStatus = PMIC_IRQ_MASK; - } - } - - return pmicStatus; -} - -/*! - * \brief Function to get status of the Interrupts is masked or not except - * GPIO Interrupts. - */ -static int32_t Pmic_getMaskIntrStatus(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t irqNum, - bool *pMaskStatus) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_IntrCfg_t *pIntrCfg = NULL; - - Pmic_get_intrCfg(pPmicCoreHandle, &pIntrCfg); - - if(PMIC_IRQ_INVALID_REGADDR == pIntrCfg[irqNum].intrMaskRegAddr) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_getIrqMaskStatus(pPmicCoreHandle, - irqNum, - pMaskStatus, - pIntrCfg); - } - - return pmicStatus; -} - - /*! - * \brief API to read the status of PMIC interrupts is masked or not - * - * Requirement: REQ_TAG(PDK-9153) - * Design: did_pmic_irq_mask_status - * Architecture: aid_pmic_irq_cfg - * - * This function does the following: - * 1. This function reads the status of interrupt is masked or not for - * the given IRQ Number. - * 2. Validates given IRQ Number and find the IRQ register to check - * the status of interrupt is masked or not - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param irqNum [IN] Interrupt number to be masked. - * For Valid values: - * \ref Pmic_tps6594x_IrqNum - * for TPS6594x LEO PMIC, - * \ref Pmic_lp8764x_IrqNum - * for LP8764x HERA PMIC, - * \param pMaskStatus [OUT] Pointer to hold the status of interrupt is - * masked or not - * For Valid values: - * \ref Pmic_IrqMaskFlag - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values: \ref Pmic_ErrorCodes. - */ -int32_t Pmic_irqGetMaskIntrStatus(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t irqNum, - bool *pMaskStatus) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && (NULL == pMaskStatus)) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_irqValidateIrqNumGetMaskIntrStatus(pPmicCoreHandle, - irqNum); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_getMaskIntrStatus(pPmicCoreHandle, - irqNum, - pMaskStatus); - } - - return pmicStatus; -} - -/*! - * \brief Function to read the status of GPIO Interrupts is masked or not - */ -static int32_t Pmic_getIrqGpioMaskStatus(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t irqGpioNum, - const uint8_t gpioIntrType, - bool *pRiseIntrMaskStat, - bool *pFallIntrMaskStat) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - Pmic_GpioIntrTypeCfg_t *pGpioIntrCfg = NULL; - uint8_t bitMask = 0U; - - Pmic_get_gpioIntrCfg(pPmicCoreHandle, &pGpioIntrCfg); - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - if((PMIC_IRQ_GPIO_RISE_INT_TYPE == gpioIntrType) || - (PMIC_IRQ_GPIO_RISE_FALL_INT_TYPE == gpioIntrType)) - { - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - pGpioIntrCfg[irqGpioNum].gpioRiseIntrMaskRegAddr, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - bitMask = (PMIC_IRQ_MASK_CLR_BITFIELD << - pGpioIntrCfg[irqGpioNum].gpioRiseMaskBitPos); - *pRiseIntrMaskStat = PMIC_IRQ_UNMASK; - - if((Pmic_getBitField(regData, - pGpioIntrCfg[irqGpioNum].gpioRiseMaskBitPos, - bitMask)) == PMIC_IRQ_MASK_VAL_1) - { - *pRiseIntrMaskStat = PMIC_IRQ_MASK; - } - } - } - - if((PMIC_IRQ_GPIO_FALL_INT_TYPE == gpioIntrType) || - (PMIC_IRQ_GPIO_RISE_FALL_INT_TYPE == gpioIntrType)) - { - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - pGpioIntrCfg[irqGpioNum].gpioFallIntrMaskRegAddr, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - bitMask = (PMIC_IRQ_MASK_CLR_BITFIELD << - pGpioIntrCfg[irqGpioNum].gpioFallMaskBitPos); - *pFallIntrMaskStat = PMIC_IRQ_UNMASK; - - if((Pmic_getBitField(regData, - pGpioIntrCfg[irqGpioNum].gpioFallMaskBitPos, - bitMask)) == PMIC_IRQ_MASK_VAL_1) - { - *pFallIntrMaskStat = PMIC_IRQ_MASK; - } - } - } - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - return pmicStatus; -} - -/*! - * \brief Function to read the status of GPIO Interrupts is masked or not - */ -static int32_t Pmic_getMaskGpioIntrStatus(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t irqGpioNum, - const uint8_t gpioIntrType, - bool *pRiseIntrMaskStat, - bool *pFallIntrMaskStat) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - pmicStatus = Pmic_getIrqGpioMaskStatus(pPmicCoreHandle, - irqGpioNum, - gpioIntrType, - pRiseIntrMaskStat, - pFallIntrMaskStat); - - return pmicStatus; -} - -/*! - * \brief API to read the status of PMIC GPIO interrupts is masked or not - * - * Requirement: REQ_TAG(PDK-9152) - * Design: did_pmic_irq_mask_status - * Architecture: aid_pmic_irq_cfg - * - * This function reads the status of GPIO Rise and Fall interrupt is - * masked or not for the given GPIO IRQ Number - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param irqGpioNum [IN] GPIO Interrupt to be masked/unmasked. - * For Valid values: - * \ref Pmic_tps6594x_IrqGpioNum - * for TPS6594x LEO PMIC, - * \ref Pmic_lp8764x_IrqGpioNum - * for LP8764x HERA PMIC, - * \param gpioIntrType [IN] Parameter to mask GPIO RISE and FALL - * Interrupt. - * Valid values: \ref Pmic_IrqGpioIntrType. - * \param pRiseIntrMaskStat [OUT] Pointer to hold status of GPIO Rise - * Interrupt is masked or not - * Valid only when gpioIntrType is - * PMIC_IRQ_GPIO_RISE_INT_TYPE or - * PMIC_IRQ_GPIO_RISE_FALL_INT_TYPE - * For Valid values: - * \ref Pmic_IrqMaskFlag - * \param pFallIntrMaskStat [OUT] Pointer to hold status of GPIO Fall - * Interrupt is masked or not - * Valid only when gpioIntrType is - * PMIC_IRQ_GPIO_FALL_INT_TYPE or - * PMIC_IRQ_GPIO_RISE_FALL_INT_TYPE - * For Valid values: - * \ref Pmic_IrqMaskFlag - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes. - */ -int32_t Pmic_irqGetGpioMaskIntr(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t irqGpioNum, - const uint8_t gpioIntrType, - bool *pRiseIntrMaskStat, - bool *pFallIntrMaskStat) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((NULL == pRiseIntrMaskStat) || (NULL == pFallIntrMaskStat))) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (gpioIntrType > PMIC_IRQ_GPIO_RISE_FALL_INT_TYPE)) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (irqGpioNum >= PMIC_IRQ_GPIO_ALL_INT_MASK_NUM)) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((irqGpioNum == PMIC_TPS6594X_IRQ_GPIO_11_INT_MASK_NUM) && - (PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType))) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_getMaskGpioIntrStatus(pPmicCoreHandle, - irqGpioNum, - gpioIntrType, - pRiseIntrMaskStat, - pFallIntrMaskStat); - } - - return pmicStatus; -} diff --git a/src/pmic_power.c b/src/pmic_power.c deleted file mode 100644 index 6f101cd..0000000 --- a/src/pmic_power.c +++ /dev/null @@ -1,6413 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ - -/** -* \file pmic_power.c -* -* \brief This file contains the default API's for PMIC power -* configuration -* -*/ - -#include -#include - -#include - -#include -#include - -/*! - * \brief This function is used to validate BUCK power resource subtype for - * PwmMp mode. - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - */ -static int32_t Pmic_powerValidateBuckPwrRsrcPwmMpMode(uint8_t pmicDeviceType, - uint16_t pwrRsrc) -{ - int32_t status = PMIC_ST_SUCCESS; - - switch (pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - if((pwrRsrc != PMIC_LP8764X_REGULATOR_BUCK1) && - (pwrRsrc != PMIC_LP8764X_REGULATOR_BUCK3)) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - break; - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - if((pwrRsrc != PMIC_TPS6594X_REGULATOR_BUCK1) && - (pwrRsrc != PMIC_TPS6594X_REGULATOR_BUCK3)) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - break; - } - - return status; -} - -/*! - * \brief This function is used to validate LDO power resource subtype for - * bypass mode. - * - * Note: In this API, assummed that LDO power resource subtype is - * supported for TPS6594x LEO PMIC. While adding support for New - * PMIC device, developer need to update the API functionality - * for New PMIC device accordingly. - */ -static int32_t Pmic_powerValidateLdoPwrRsrcBypassMode(uint16_t pwrRsrc) -{ - int32_t status = PMIC_ST_SUCCESS; - - if((pwrRsrc != PMIC_TPS6594X_REGULATOR_LDO1) && - (pwrRsrc != PMIC_TPS6594X_REGULATOR_LDO2) && - (pwrRsrc != PMIC_TPS6594X_REGULATOR_LDO3)) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - return status; -} - -/*! - * \brief This function is used to validate the VCCA power resorce type for - * the specific PMIC device. - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - */ -static int32_t Pmic_powerValidateVccaPwrRsrcType(uint8_t pmicDeviceType, - uint8_t pwrRsrcType) -{ - int32_t status = PMIC_ST_SUCCESS; - - switch (pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - if(PMIC_LP8764X_POWER_RESOURCE_TYPE_VCCA != pwrRsrcType) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - break; - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - if(PMIC_TPS6594X_POWER_RESOURCE_TYPE_VCCA != pwrRsrcType) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - break; - } - - return status; -} - -/*! - * \brief This function is used to validate the VMON power resorce type for - * the specific PMIC device - */ -static int32_t Pmic_powerValidateVmonPwrRsrcType(uint8_t pmicDeviceType, - uint8_t pwrRsrcType) -{ - int32_t status = PMIC_ST_SUCCESS; - - switch (pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - if(PMIC_LP8764X_POWER_RESOURCE_TYPE_VMON != pwrRsrcType) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - break; - default: - status = PMIC_ST_ERR_INV_PARAM; - break; - } - - return status; -} - -/*! - * \brief This function is used to validate the LDO power resorce type for - * the specific PMIC device - */ -static int32_t Pmic_powerValidateLdoPwrRsrcType(uint8_t pmicDeviceType, - uint8_t pwrRsrcType) -{ - int32_t status = PMIC_ST_SUCCESS; - - switch (pmicDeviceType) - { - case PMIC_DEV_LEO_TPS6594X: - if(PMIC_TPS6594X_POWER_RESOURCE_TYPE_LDO != pwrRsrcType) - { - status = PMIC_ST_ERR_INV_PARAM; - } - break; - default: - status = PMIC_ST_ERR_INV_PARAM; - break; - } - - return status; -} - -/*! - * \brief This function is used to validate the BUCK power resorce type for - * the specific PMIC device - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - */ -static int32_t Pmic_powerValidateBuckPwrRsrcType(uint8_t pmicDeviceType, - uint8_t pwrRsrcType) -{ - int32_t status = PMIC_ST_SUCCESS; - - switch (pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - if(PMIC_LP8764X_POWER_RESOURCE_TYPE_BUCK != pwrRsrcType) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - break; - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - if(PMIC_TPS6594X_POWER_RESOURCE_TYPE_BUCK != pwrRsrcType) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - break; - } - - return status; -} - -/*! - * \brief This function is used to validate the BUCK/LDO/VMON power resorce - * type for the specific PMIC device - */ -static int32_t Pmic_powerValidateBuckLdoVmonPwrRsrcType(uint8_t pmicDeviceType, - uint8_t pwrRsrcType) -{ - int32_t status = PMIC_ST_SUCCESS; - - if((PMIC_ST_SUCCESS != - (Pmic_powerValidateBuckPwrRsrcType(pmicDeviceType, pwrRsrcType))) && - (PMIC_ST_SUCCESS != - (Pmic_powerValidateLdoPwrRsrcType(pmicDeviceType, pwrRsrcType))) && - (PMIC_ST_SUCCESS != - (Pmic_powerValidateVmonPwrRsrcType(pmicDeviceType, pwrRsrcType)))) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - return status; -} - -/*! - * \brief This function is used to validate the BUCK/VMON power resorce - * type for the specific PMIC device - */ -static int32_t Pmic_powerValidateBuckVmonPwrRsrcType(uint8_t pmicDeviceType, - uint8_t pwrRsrcType) -{ - int32_t status = PMIC_ST_SUCCESS; - - status = Pmic_powerValidateBuckPwrRsrcType(pmicDeviceType, pwrRsrcType); - - if(PMIC_ST_ERR_INV_PARAM == status) - { - status = Pmic_powerValidateVmonPwrRsrcType(pmicDeviceType, pwrRsrcType); - } - - return status; -} - -/*! - * \brief This function is used to validate the LDO/VMON power resorce - * type for the specific PMIC device - */ -static int32_t Pmic_powerValidateLdoVmonPwrRsrcType(uint8_t pmicDeviceType, - uint8_t pwrRsrcType) -{ - int32_t status = PMIC_ST_SUCCESS; - - status = Pmic_powerValidateLdoPwrRsrcType(pmicDeviceType, pwrRsrcType); - - if(PMIC_ST_ERR_INV_PARAM == status) - { - status = Pmic_powerValidateVmonPwrRsrcType(pmicDeviceType, pwrRsrcType); - } - - return status; -} - -/*! - * \brief This function is used to validate the BUCK/LDO power resorce - * type for the specific PMIC device - */ -static int32_t Pmic_powerValidateBuckLdoPwrRsrcType(uint8_t pmicDeviceType, - uint8_t pwrRsrcType) -{ - int32_t status = PMIC_ST_SUCCESS; - - status = Pmic_powerValidateBuckPwrRsrcType(pmicDeviceType, pwrRsrcType); - - if(PMIC_ST_ERR_INV_PARAM == status) - { - status = Pmic_powerValidateLdoPwrRsrcType(pmicDeviceType, pwrRsrcType); - } - - return status; -} - -/*! - * \brief This function is used to get validate the power resources BUCK, LDO - * VCCA and VMON based on the valid params set. - */ -static int32_t Pmic_powerValidateBuckLdoVccaVmonPwrRsrcType( - uint32_t validPrm, - uint8_t pmicDeviceType, - uint8_t pwrRsrcType) -{ - int32_t status = PMIC_ST_SUCCESS; - - switch(validPrm) - { - case PMIC_CFG_REGULATOR_EN_VALID: - status = Pmic_powerValidateBuckLdoPwrRsrcType(pmicDeviceType, - pwrRsrcType); - break; - case PMIC_CFG_VCCA_PWR_GOOD_LVL_VALID: - status = Pmic_powerValidateVccaPwrRsrcType(pmicDeviceType, - pwrRsrcType); - break; - case PMIC_CFG_VMON_RANGE_VALID: - status = Pmic_powerValidateVmonPwrRsrcType(pmicDeviceType, - pwrRsrcType); - break; - default : - status = Pmic_powerValidateBuckVmonPwrRsrcType(pmicDeviceType, - pwrRsrcType); - break; - } - - return status; -} - -/*! - * \brief This function is used to get validate the power resources and vmon - * based on the valid params set. - * - * Note: In this API, the default validPrm is assumed as - * PMIC_CFG_REGULATOR_VMON_RV_SEL_VALID and - * PMIC_CFG_REGULATOR_VMON_VOLTAGE_SET_VALID - * While adding support for New validPrm , developer need to - * update the API functionality for New validPrm accordingly. - */ -static int32_t Pmic_powerValidatecfgDataPwrRsrctype(uint32_t validPrm, - uint16_t pwrRsrc, - uint8_t pmicDeviceType) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t pwrRsrcType; - - pwrRsrcType = Pmic_powerGetPwrRsrcType(pwrRsrc); - - switch(validPrm) - { - case PMIC_CFG_REGULATOR_BUCK_PLDN_EN_VALID: - case PMIC_CFG_REGULATOR_BUCK_VOUT_SEL_VALID: - case PMIC_CFG_REGULATOR_BUCK_FPWM_VALID: - case PMIC_CFG_REGULATOR_BUCK_ILIM_VALID: - case PMIC_CFG_REGULATOR_BUCK_PWM_MP_VALID: - status = Pmic_powerValidateBuckPwrRsrcType(pmicDeviceType, - pwrRsrcType); - - if((PMIC_ST_SUCCESS == status) && - (PMIC_CFG_REGULATOR_BUCK_PWM_MP_VALID == validPrm)) - { - status = Pmic_powerValidateBuckPwrRsrcPwmMpMode(pmicDeviceType, - pwrRsrc); - } - break; - case PMIC_CFG_REGULATOR_LDO_SLOW_RAMP_EN_VALID: - case PMIC_CFG_REGULATOR_LDO_PLDN_SEL_VALID: - case PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID: - case PMIC_CFG_REGULATOR_LDO_BYPASS_MODE_EN_VALID: - status = Pmic_powerValidateLdoPwrRsrcType(pmicDeviceType, - pwrRsrcType); - - if((PMIC_ST_SUCCESS == status) && - (PMIC_CFG_REGULATOR_LDO_BYPASS_MODE_EN_VALID == validPrm)) - { - status = Pmic_powerValidateLdoPwrRsrcBypassMode(pwrRsrc); - } - break; - case PMIC_CFG_REGULATOR_EN_VALID: - case PMIC_CFG_VCCA_PWR_GOOD_LVL_VALID: - case PMIC_CFG_VMON_RANGE_VALID: - case PMIC_CFG_REGULATOR_BUCK_VMON_SLEW_RATE_VALID: - status = Pmic_powerValidateBuckLdoVccaVmonPwrRsrcType( - validPrm, - pmicDeviceType, - pwrRsrcType); - break; - default : - /* Default case is valid for PMIC_CFG_REGULATOR_VMON_RV_SEL_VALID - and PMIC_CFG_REGULATOR_VMON_VOLTAGE_SET_VALID */ - status = Pmic_powerValidateBuckLdoVmonPwrRsrcType(pmicDeviceType, - pwrRsrcType); - break; - } - - return status; -} - -/*! - * \brief This function is used to get the PMIC power resources - * register configuration for the specific PMIC device. - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - */ -static void Pmic_powerGetRsrcRegCfg(uint8_t pmicDeviceType, - Pmic_powerRsrcRegCfg_t **pPwrRsrcRegCfg) -{ - switch(pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - pmic_get_lp8764x_pwrRsrceRegCfg(pPwrRsrcRegCfg); - break; - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - pmic_get_tps6594x_pwrRsrceRegCfg(pPwrRsrcRegCfg); - break; - } -} - -/*! - * \brief This function is used to get pwrRsrcIndex and the PMIC power - resources register configuration for the specific PMIC device. - */ -static void Pmic_powerGetPwrRsrcIdxRegCfg( - uint8_t pmicDeviceType, - uint16_t pwrRsrc, - uint8_t *pPwrRsrcIndex, - Pmic_powerRsrcRegCfg_t **pPwrRsrcRegCfg) -{ - *pPwrRsrcIndex = Pmic_powerGetPwrRsrcId(pwrRsrc); - - /* Get PMIC power resources register configuration */ - Pmic_powerGetRsrcRegCfg(pmicDeviceType, pPwrRsrcRegCfg); -} - -/*! - * \brief This function is to set PMIC PwrRsrc,Pgood Register Bit field based - * on defined regAddr, regVal, bitPos and bitMask values - */ -static int32_t Pmic_setPwrRsrcPgoodRegBitfieldCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t regAddr, - uint8_t regVal, - uint8_t bitPos, - uint8_t bitMask) -{ - uint8_t regData = 0U; - int32_t status = PMIC_ST_SUCCESS; - - Pmic_criticalSectionStart(pPmicCoreHandle); - status = Pmic_commIntf_recvByte(pPmicCoreHandle, regAddr, ®Data); - - if(PMIC_ST_SUCCESS == status) - { - Pmic_setBitField(®Data, bitPos, bitMask, regVal); - status = Pmic_commIntf_sendByte(pPmicCoreHandle, regAddr, regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - return status; -} - - -/*! - * \brief This function is used to get the required BitPos and BitMask - * of residual voltage checking for BUCK/LDO/VMON pin. - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - */ -static void Pmic_powerGetRvCheckEnBitPos(uint8_t pmicDeviceType, - uint16_t pwrRsrc, - uint8_t *pBitPos, - uint8_t *pBitMask) -{ - switch (pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - if(PMIC_LP8764X_POWER_SOURCE_VMON1 == pwrRsrc) - { - *pBitPos = PMIC_POWER_VCCA_VMON_CTRL_VMON1_RV_SEL_SHIFT; - *pBitMask = PMIC_POWER_VCCA_VMON_CTRL_VMON1_RV_SEL_MASK; - - } - else if(PMIC_LP8764X_POWER_SOURCE_VMON2 == pwrRsrc) - { - *pBitPos = PMIC_POWER_VCCA_VMON_CTRL_VMON2_RV_SEL_SHIFT; - *pBitMask = PMIC_POWER_VCCA_VMON_CTRL_VMON2_RV_SEL_MASK; - } - else - { - *pBitPos = \ - PMIC_POWER_RESOURCEX_CTRL_POWER_RESOURCEX_RV_SEL_SHIFT; - *pBitMask = \ - PMIC_POWER_RESOURCEX_CTRL_POWER_RESOURCEX_RV_SEL_MASK; - } - break; - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - *pBitPos = PMIC_POWER_RESOURCEX_CTRL_POWER_RESOURCEX_RV_SEL_SHIFT; - *pBitMask = PMIC_POWER_RESOURCEX_CTRL_POWER_RESOURCEX_RV_SEL_MASK; - break; - } - -} - -/*! - * \brief This function is used to Enable/Disable residual voltage checking - * for BUCK/LDO/VMON pin. - */ -static int32_t Pmic_powerSetRvCheckEn(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - bool residualVoltCheck) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t bitPos = 0U; - uint8_t pwrRsrcIndex = 0U; - Pmic_powerRsrcRegCfg_t *pPwrRsrcRegCfg = NULL; - uint8_t bitMask = 0U; - uint8_t residualVoltCheckVal = 0U; - - /* Get PMIC power resources Index and register configuration */ - Pmic_powerGetPwrRsrcIdxRegCfg(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &pwrRsrcIndex, - &pPwrRsrcRegCfg); - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].ctrlRegAddr, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_powerGetRvCheckEnBitPos(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &bitPos, - &bitMask); - - if(((bool)true) == residualVoltCheck) - { - residualVoltCheckVal = 1U; - } - Pmic_setBitField(®Data, - bitPos, - bitMask, - residualVoltCheckVal); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_commIntf_sendByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].ctrlRegAddr, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - return pmicStatus; -} - -/*! - * \brief This function is used to get Enable/Disable status for residual - * voltage checking for BUCK/LDO/VMON pin. - */ -static int32_t Pmic_powerGetRvCheckEn(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - bool *pResidualVoltCheck) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t bitPos = 0U; - uint8_t pwrRsrcIndex = 0U; - Pmic_powerRsrcRegCfg_t *pPwrRsrcRegCfg = NULL; - uint8_t bitMask = 0U; - - /* Get PMIC power resources Index and register configuration */ - Pmic_powerGetPwrRsrcIdxRegCfg(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &pwrRsrcIndex, - &pPwrRsrcRegCfg); - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].ctrlRegAddr, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_powerGetRvCheckEnBitPos(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &bitPos, - &bitMask); - - if(Pmic_getBitField(regData, bitPos, bitMask) != 0U) - { - *pResidualVoltCheck = (bool)true; - } - else - { - *pResidualVoltCheck = (bool)false; - } - - } - - return pmicStatus; -} - -/*! - * \brief This function is used to convert the vset value to voltage in mv - for BUCK/VMON - */ -void Pmic_powerBuckVmonConvertVSetVal2Voltage(const uint8_t *pVSetVal, - uint16_t *pBaseMillivolt, - uint8_t *pMillivoltStep, - uint8_t *pBaseVoutCode) -{ - if(*pVSetVal <= PMIC_POWER_VSET_VAL_0xE) - { - *pBaseMillivolt = PMIC_POWER_VOLTAGE_300MV; - *pMillivoltStep = PMIC_POWER_VOLTAGE_STEP_20V; - *pBaseVoutCode = PMIC_POWER_VSET_VAL_0x0; - } - else if(*pVSetVal <= PMIC_POWER_VSET_VAL_0x72) - { - *pBaseMillivolt = PMIC_POWER_VOLTAGE_600MV; - *pMillivoltStep = PMIC_POWER_VOLTAGE_STEP_5V; - *pBaseVoutCode = PMIC_POWER_VSET_VAL_0xF; - } - else if(*pVSetVal <= PMIC_POWER_VSET_VAL_0xAA) - { - *pBaseMillivolt = PMIC_POWER_VOLTAGE_1100MV; - *pMillivoltStep = PMIC_POWER_VOLTAGE_STEP_10V; - *pBaseVoutCode = PMIC_POWER_VSET_VAL_0x73; - } - else - { - *pBaseMillivolt = PMIC_POWER_VOLTAGE_1660MV; - *pMillivoltStep = PMIC_POWER_VOLTAGE_STEP_20V; - *pBaseVoutCode = PMIC_POWER_VSET_VAL_0xAB; - } - -} - -/*! - * \brief This function is used to convert the vset value to voltage in mv - * when the selected voltage monitoring range for VMON is - * PMIC_LP8764X_VMON_RANGE_3V35_5V - */ -void Pmic_powerVmonRange1ConvertVSetVal2Voltage(uint16_t *pBaseMillivolt, - uint8_t *pMillivoltStep, - uint8_t *pBaseVoutCode) -{ - *pBaseMillivolt = PMIC_POWER_VOLTAGE_3350MV; - *pMillivoltStep = PMIC_POWER_VOLTAGE_STEP_25V; - *pBaseVoutCode = PMIC_POWER_VSET_VAL_0x1D; - -} - -/*! - * \brief This function is used to convert the vset value to voltage in mv - * for LDO - */ -void Pmic_powerLdoConvertVSetVal2Voltage(uint16_t pwrRsrc, - uint16_t *pBaseMillivolt, - uint8_t *pMillivoltStep, - uint8_t *pBaseVoutCode) -{ - if(PMIC_TPS6594X_REGULATOR_LDO4 == pwrRsrc) - { - *pBaseMillivolt = PMIC_POWER_VOLTAGE_1200MV; - *pMillivoltStep = PMIC_POWER_VOLTAGE_STEP_25V; - *pBaseVoutCode = PMIC_POWER_VSET_VAL_0x20; - } - else - { - /* PMIC_TPS6594X_REGULATOR_LDO1, PMIC_TPS6594X_REGULATOR_LDO2, - PMIC_TPS6594X_REGULATOR_LDO3 */ - *pBaseMillivolt = PMIC_POWER_VOLTAGE_600MV; - *pMillivoltStep = PMIC_POWER_VOLTAGE_STEP_50V; - *pBaseVoutCode = PMIC_POWER_VSET_VAL_0x4; - } - -} - -/*! - * \brief This function is used to convert the vset value to voltage in mv. - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - */ -static int32_t Pmic_powerConvertVolt(Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t vSetVal, - uint16_t pwrRsrc, - uint16_t *millivolt) -{ - int32_t status = PMIC_ST_SUCCESS; - - switch(pPmicCoreHandle->pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - status = Pmic_powerLP8764xConvertVSetVal2Voltage(pPmicCoreHandle, - &vSetVal, - pwrRsrc, - millivolt); - break; - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - Pmic_powerTPS6594xConvertVSet2Voltage(&vSetVal, - pwrRsrc, - millivolt); - break; - } - - return status; -} - -/*! - * \brief This function is used to convert the millivolt value to vset value - * for BUCK/VMON (For VMON : When range = 0) - */ -int32_t Pmic_powerBuckVmonConvertVoltage2VSetVal(uint16_t millivolt, - uint16_t *pBaseMillivolt, - uint8_t *pMillivoltStep, - uint8_t *pBaseVoutCode) -{ - int32_t status = PMIC_ST_SUCCESS; - - /* Check for millivolt >= PMIC_POWER_VOLTAGE_300MV is done as part of - * Pmic_powerValidateVoltageLevel() Function - */ - if(millivolt <= PMIC_POWER_VOLTAGE_580MV) - { - *pBaseMillivolt = PMIC_POWER_VOLTAGE_300MV; - *pMillivoltStep = PMIC_POWER_VOLTAGE_STEP_20V; - *pBaseVoutCode = PMIC_POWER_VSET_VAL_0x0; - } - else if((millivolt >= PMIC_POWER_VOLTAGE_600MV) && - (millivolt <= PMIC_POWER_VOLTAGE_1095MV)) - { - *pBaseMillivolt = PMIC_POWER_VOLTAGE_600MV; - *pMillivoltStep = PMIC_POWER_VOLTAGE_STEP_5V; - *pBaseVoutCode = PMIC_POWER_VSET_VAL_0xF; - } - else if((millivolt >= PMIC_POWER_VOLTAGE_1100MV) && - (millivolt <= PMIC_POWER_VOLTAGE_1650MV)) - { - *pBaseMillivolt = PMIC_POWER_VOLTAGE_1100MV; - *pMillivoltStep = PMIC_POWER_VOLTAGE_STEP_10V; - *pBaseVoutCode = PMIC_POWER_VSET_VAL_0x73; - } - /* Check for millivolt <= PMIC_POWER_VOLTAGE_3340MV is done as part of - * Pmic_powerValidateVoltageLevel() Function - */ - else if(millivolt >= PMIC_POWER_VOLTAGE_1660MV) - { - *pBaseMillivolt = PMIC_POWER_VOLTAGE_1660MV; - *pMillivoltStep = PMIC_POWER_VOLTAGE_STEP_20V; - *pBaseVoutCode = PMIC_POWER_VSET_VAL_0xAB; - } - else - { - status = PMIC_ST_ERR_INV_PARAM; - } - - return status; -} - -/*! - * \brief This function is used to convert the millivolt value to vset code - * when the selected voltage monitoring range for VMON is - * PMIC_LP8764X_VMON_RANGE_3V35_5V - */ -void Pmic_powerVmonRange1ConvertVoltage2VSetVal(uint16_t *pBaseMillivolt, - uint8_t *pMillivoltStep, - uint8_t *pBaseVoutCode) -{ - *pBaseMillivolt = PMIC_POWER_VOLTAGE_3350MV; - *pMillivoltStep = PMIC_POWER_VOLTAGE_STEP_25V; - *pBaseVoutCode = PMIC_POWER_VSET_VAL_0x1D; - -} - -/*! - * \brief This function is used to convert the millivolt value to vset value - * for LDO Regulators - */ -void Pmic_powerLdoConvertVoltage2VSetVal(uint16_t pwrRsrc, - uint16_t *pBaseMillivolt, - uint8_t *pMillivoltStep, - uint8_t *pBaseVoutCode) -{ - if(PMIC_TPS6594X_REGULATOR_LDO4 == pwrRsrc) - { - *pBaseMillivolt = PMIC_POWER_VOLTAGE_1200MV; - *pMillivoltStep = PMIC_POWER_VOLTAGE_STEP_25V; - *pBaseVoutCode = PMIC_POWER_VSET_VAL_0x20; - } - else - { - /* PMIC_TPS6594X_REGULATOR_LDO1, PMIC_TPS6594X_REGULATOR_LDO2, - PMIC_TPS6594X_REGULATOR_LDO3 */ - *pBaseMillivolt = PMIC_POWER_VOLTAGE_600MV; - *pMillivoltStep = PMIC_POWER_VOLTAGE_STEP_50V; - *pBaseVoutCode = PMIC_POWER_VSET_VAL_0x4; - } - -} - -/*! - * \brief This function is used to get OV/UV voltage monitoring range for - * VMON2 and VMON1 - */ -int32_t Pmic_powerGetVmonRange(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - bool *pVmonRange) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t pwrRsrcIndex = 0U; - Pmic_powerRsrcRegCfg_t *pPwrRsrcRegCfg = NULL; - - /* Get PMIC power resources Index and register configuration */ - Pmic_powerGetPwrRsrcIdxRegCfg(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &pwrRsrcIndex, - &pPwrRsrcRegCfg); - - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].pgWindowRegAddr, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(Pmic_getBitField(regData, - PMIC_VMON_PG_WINDOW_VMON_RANGE_SHIFT, - PMIC_VMON_PG_WINDOW_VMON_RANGE_MASK) != 0U) - { - *pVmonRange = (bool)true; - } - else - { - *pVmonRange = (bool)false; - } - } - - return pmicStatus; -} - -/*! - * \brief This function is used to convert the millivolt value to vset value. - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - */ -static int32_t Pmic_powerConvertVoltage2VSetVal( - Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t millivolt, - uint16_t pwrRsrc, - uint8_t *pVSetVal) -{ - int32_t status = PMIC_ST_SUCCESS; - - switch(pPmicCoreHandle->pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - status = Pmic_powerLP8764xConvertVoltage2VSetVal(pPmicCoreHandle, - millivolt, - pwrRsrc, - pVSetVal); - break; - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - status = Pmic_powerTPS6594xConvertVoltage2VSetVal(millivolt, - pwrRsrc, - pVSetVal); - break; - } - - return status; -} - -/*! - * \brief This function is used to select output voltage register for buck - */ -static int32_t Pmic_powerSetBuckVoutSel(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - bool buckVoutSel) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t pwrRsrcIndex = 0U; - Pmic_powerRsrcRegCfg_t *pPwrRsrcRegCfg = NULL; - uint8_t buckVoutSelVal = 0U; - - /* Get PMIC power resources Index and register configuration */ - Pmic_powerGetPwrRsrcIdxRegCfg(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &pwrRsrcIndex, - &pPwrRsrcRegCfg); - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].ctrlRegAddr, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(((bool)true) == buckVoutSel) - { - buckVoutSelVal = 1U; - } - Pmic_setBitField(®Data, - PMIC_BUCKX_CTRL_BUCKX_VSEL_SHIFT, - PMIC_BUCKX_CTRL_BUCKX_VSEL_MASK, - buckVoutSelVal); - - pmicStatus = Pmic_commIntf_sendByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].ctrlRegAddr, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - return pmicStatus; -} - -/*! - * \brief This function is used to get output voltage register for buck - */ -static int32_t Pmic_powerGetBuckVoutSel(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - bool *pBuckVoutSel) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t pwrRsrcIndex = 0U; - Pmic_powerRsrcRegCfg_t *pPwrRsrcRegCfg = NULL; - - /* Get PMIC power resources Index and register configuration */ - Pmic_powerGetPwrRsrcIdxRegCfg(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &pwrRsrcIndex, - &pPwrRsrcRegCfg); - - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].ctrlRegAddr, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(Pmic_getBitField(regData, - PMIC_BUCKX_CTRL_BUCKX_VSEL_SHIFT, - PMIC_BUCKX_CTRL_BUCKX_VSEL_MASK) != 0U) - { - *pBuckVoutSel = (bool)true; - } - else - { - *pBuckVoutSel = (bool)false; - } - - } - - return pmicStatus; -} - -/*! - * \brief This function is used to set PWM or Auto Mode for BUCK Regulator - */ -static int32_t Pmic_powerSetBuckFpwmMode(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - bool buckFpwmMode) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t pwrRsrcIndex = 0U; - Pmic_powerRsrcRegCfg_t *pPwrRsrcRegCfg = NULL; - uint8_t buckFpwmModeVal = 0U; - - /* Get PMIC power resources Index and register configuration */ - Pmic_powerGetPwrRsrcIdxRegCfg(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &pwrRsrcIndex, - &pPwrRsrcRegCfg); - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].ctrlRegAddr, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(((bool)true) == buckFpwmMode) - { - buckFpwmModeVal = 1U; - } - Pmic_setBitField(®Data, - PMIC_BUCKX_CTRL_BUCKX_FPWM_SHIFT, - PMIC_BUCKX_CTRL_BUCKX_FPWM_MASK, - buckFpwmModeVal); - - pmicStatus = Pmic_commIntf_sendByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].ctrlRegAddr, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - return pmicStatus; -} - -/*! - * \brief This function is used to get PWM or Auto Mode for BUCK Regulator - */ -static int32_t Pmic_powerGetBuckFpwmMode(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - bool *pBuckFpwmMode) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t pwrRsrcIndex = 0U; - Pmic_powerRsrcRegCfg_t *pPwrRsrcRegCfg = NULL; - - /* Get PMIC power resources Index and register configuration */ - Pmic_powerGetPwrRsrcIdxRegCfg(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &pwrRsrcIndex, - &pPwrRsrcRegCfg); - - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].ctrlRegAddr, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(Pmic_getBitField(regData, - PMIC_BUCKX_CTRL_BUCKX_FPWM_SHIFT, - PMIC_BUCKX_CTRL_BUCKX_FPWM_MASK) != 0U) - { - *pBuckFpwmMode = (bool)true; - } - else - { - *pBuckFpwmMode = (bool)false; - } - - } - - return pmicStatus; -} - -/*! - * \brief This function is used to select between Multi phase with PWM OR AUTO - * Mode with Automatic phase adding and shedding for BUCK. - */ -static int32_t Pmic_powerSetBuckFpwmMpMode(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - bool buckFpwmMpMode) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t pwrRsrcIndex = 0U; - Pmic_powerRsrcRegCfg_t *pPwrRsrcRegCfg = NULL; - uint8_t buckFpwmMpModeVal = 0U; - - /* Get PMIC power resources Index and register configuration */ - Pmic_powerGetPwrRsrcIdxRegCfg(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &pwrRsrcIndex, - &pPwrRsrcRegCfg); - - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].ctrlRegAddr, - ®Data); - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(((bool)true) == buckFpwmMpMode) - { - buckFpwmMpModeVal = 1U; - } - Pmic_setBitField(®Data, - PMIC_BUCKX_CTRL_BUCKX_FPWM_MP_SHIFT, - PMIC_BUCKX_CTRL_BUCKX_FPWM_MP_MASK, - buckFpwmMpModeVal); - - pmicStatus = Pmic_commIntf_sendByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].ctrlRegAddr, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - return pmicStatus; -} - -/*! - * \brief This function is used to get the Mode between Multi phase with PWM - * OR AUTO Mode with Automatic phase adding and shedding for BUCK - */ -static int32_t Pmic_powerGetBuckPwmMpMode(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - bool *pBuckFpwmMpMode) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t pwrRsrcIndex = 0U; - Pmic_powerRsrcRegCfg_t *pPwrRsrcRegCfg = NULL; - - /* Get PMIC power resources Index and register configuration */ - Pmic_powerGetPwrRsrcIdxRegCfg(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &pwrRsrcIndex, - &pPwrRsrcRegCfg); - - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].ctrlRegAddr, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(Pmic_getBitField(regData, - PMIC_BUCKX_CTRL_BUCKX_FPWM_MP_SHIFT, - PMIC_BUCKX_CTRL_BUCKX_FPWM_MP_MASK) != 0U) - { - *pBuckFpwmMpMode = (bool)true; - } - else - { - *pBuckFpwmMpMode = (bool)false; - } - - } - - return pmicStatus; -} - -/*! - * \brief This function is used to Enable/Disable Slow Ramp for LDO - */ -static int32_t Pmic_powerSetLdoSlowRampEn(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - bool ldoSlowRampEn) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t pwrRsrcIndex = 0U; - Pmic_powerRsrcRegCfg_t *pPwrRsrcRegCfg = NULL; - uint8_t ldoSlowRampEnVal = 0U; - - /* Get PMIC power resources Index and register configuration */ - Pmic_powerGetPwrRsrcIdxRegCfg(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &pwrRsrcIndex, - &pPwrRsrcRegCfg); - - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].ctrlRegAddr, - ®Data); - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(((bool)true) == ldoSlowRampEn) - { - ldoSlowRampEnVal = 1U; - } - Pmic_setBitField(®Data, - PMIC_LDOX_CTRL_LDOX_SLOW_RAMP_EN_SHIFT, - PMIC_LDOX_CTRL_LDOX_SLOW_RAMP_EN_MASK, - ldoSlowRampEnVal); - - pmicStatus = Pmic_commIntf_sendByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].ctrlRegAddr, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - return pmicStatus; -} - -/*! - * \brief Get Enable /Disable status for Slow Ramp for LDO - */ -static int32_t Pmic_powerGetLdoSlowRampEn(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - bool *pLdoSlowRampEn) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t pwrRsrcIndex = 0U; - Pmic_powerRsrcRegCfg_t *pPwrRsrcRegCfg = NULL; - - /* Get PMIC power resources Index and register configuration */ - Pmic_powerGetPwrRsrcIdxRegCfg(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &pwrRsrcIndex, - &pPwrRsrcRegCfg); - - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].ctrlRegAddr, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(Pmic_getBitField(regData, - PMIC_LDOX_CTRL_LDOX_SLOW_RAMP_EN_SHIFT, - PMIC_LDOX_CTRL_LDOX_SLOW_RAMP_EN_MASK) != 0U) - { - *pLdoSlowRampEn = (bool)true; - } - else - { - *pLdoSlowRampEn = (bool)false; - } - - } - - return pmicStatus; -} - -/*! - * \brief This function is used to enable/disable regulator. - */ -static int32_t Pmic_powerSetRegulatorEn(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - bool regulatorEn) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t pwrRsrcIndex = 0U; - Pmic_powerRsrcRegCfg_t *pPwrRsrcRegCfg = NULL; - uint8_t regulatorEnVal = 0U; - - /* Get PMIC power resources Index and register configuration */ - Pmic_powerGetPwrRsrcIdxRegCfg(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &pwrRsrcIndex, - &pPwrRsrcRegCfg); - - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].ctrlRegAddr, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(((bool)true) == regulatorEn) - { - regulatorEnVal = 1U; - } - Pmic_setBitField(®Data, - PMIC_POWER_RESOURCEX_CTRL_POWER_RESOURCEX_EN_SHIFT, - PMIC_POWER_RESOURCEX_CTRL_POWER_RESOURCEX_EN_MASK, - regulatorEnVal); - - pmicStatus = Pmic_commIntf_sendByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].ctrlRegAddr, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - return pmicStatus; -} - -/*! - * \brief This function is used to get the enable/disable status of regulator - */ -static int32_t Pmic_powerGetRegulatorEn(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - bool *pRegulatorEn) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t pwrRsrcIndex = 0U; - Pmic_powerRsrcRegCfg_t *pPwrRsrcRegCfg = NULL; - - /* Get PMIC power resources Index and register configuration */ - Pmic_powerGetPwrRsrcIdxRegCfg(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &pwrRsrcIndex, - &pPwrRsrcRegCfg); - - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].ctrlRegAddr, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(Pmic_getBitField( - regData, - PMIC_POWER_RESOURCEX_CTRL_POWER_RESOURCEX_EN_SHIFT, - PMIC_POWER_RESOURCEX_CTRL_POWER_RESOURCEX_EN_MASK) != 0U) - { - *pRegulatorEn = (bool)true; - } - else - { - *pRegulatorEn = (bool)false; - } - - } - - return pmicStatus; -} - -/** - * \brief This function is used to get the voltage register of the BUCK - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - */ -static int32_t Pmic_powerGetBuckVoutRegAddr(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - uint8_t *pRegAddr) -{ - - int32_t status = PMIC_ST_SUCCESS; - bool buckVoutSel; - uint8_t pwrRsrcIndex; - Pmic_powerRsrcRegCfg_t *pPwrRsrcRegCfg = NULL; - - /* Get PMIC power resources Index and register configuration */ - Pmic_powerGetPwrRsrcIdxRegCfg(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &pwrRsrcIndex, - &pPwrRsrcRegCfg); - - *pRegAddr = pPwrRsrcRegCfg[pwrRsrcIndex].vout1RegAddr; - /* Get the voltage register adress in case of BUCK regulator */ - status = Pmic_powerGetBuckVoutSel(pPmicCoreHandle, - pwrRsrc, - &(buckVoutSel)); - - if(PMIC_ST_SUCCESS == status) - { - switch (pPmicCoreHandle->pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - if(PMIC_LP8764X_REGULATOR_BUCK_VOUT_SEL_VOUT2 == buckVoutSel) - { - *pRegAddr = pPwrRsrcRegCfg[pwrRsrcIndex].vout2RegAddr; - } - - break; - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - if(PMIC_TPS6594X_REGULATOR_BUCK_VOUT_SEL_VOUT2 == buckVoutSel) - { - *pRegAddr = pPwrRsrcRegCfg[pwrRsrcIndex].vout2RegAddr; - } - - break; - } - } - - return status; -} - -/** - * \brief This function is used to get the voltage register of the power - * resource. - * - * Note: In this API, While adding support for New pwr resources, - * developer need to update the API functionality for New - * validate pwr resources accordingly. - */ -static int32_t Pmic_GetVoltageRegAddr(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - uint8_t *pRegAddr) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t pwrRsrcIndex; - uint8_t pwrRsrcType; - Pmic_powerRsrcRegCfg_t *pPwrRsrcRegCfg = NULL; - - pwrRsrcType = Pmic_powerGetPwrRsrcType(pwrRsrc); - /* Get PMIC power resources Index and register configuration */ - Pmic_powerGetPwrRsrcIdxRegCfg(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &pwrRsrcIndex, - &pPwrRsrcRegCfg); - - if(PMIC_ST_SUCCESS == Pmic_powerValidateLdoVmonPwrRsrcType( - pPmicCoreHandle->pmicDeviceType, - pwrRsrcType)) - { - *pRegAddr = pPwrRsrcRegCfg[pwrRsrcIndex].vout1RegAddr; - } - else - { - status = Pmic_powerGetBuckVoutRegAddr(pPmicCoreHandle, - pwrRsrc, - pRegAddr); - } - - return status; -} - -/** - * \brief This function is used to validate the voltage levels for - * Regulators/VMON - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - */ -static int32_t Pmic_powerValidateVoltageLevel( - Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - uint16_t voltage_mV) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t pwrRsrcType = 0U; - - pwrRsrcType = Pmic_powerGetPwrRsrcType(pwrRsrc); - - switch(pPmicCoreHandle->pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - status = Pmic_powerLP8764xValidateVoltageLevel(pPmicCoreHandle, - pwrRsrcType, - pwrRsrc, - voltage_mV); - break; - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - status = Pmic_powerTPS6594xValidateVoltageLevel(pwrRsrcType, - pwrRsrc, - voltage_mV); - break; - } - - return status; -} - -/** - * \brief This function is used to get the required bit position of the - * voltage levels for Regulators/VMON - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly - * While adding support for New pwrRsrcType, developer need to - * update the API functionality for New pwrRsrcType accordingly. - */ -static void Pmic_powerGetVoltageBitField(uint8_t pmicDeviceType, - uint16_t pwrRsrc, - uint8_t *pBitPos, - uint8_t *pBitMask) -{ - uint8_t pwrRsrcType; - - pwrRsrcType = Pmic_powerGetPwrRsrcType(pwrRsrc); - switch(pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - if(PMIC_LP8764X_POWER_RESOURCE_TYPE_BUCK == pwrRsrcType) - { - *pBitPos = PMIC_BUCKX_VOUT_X_BUCKX_VSETX_SHIFT; - *pBitMask = PMIC_BUCKX_VOUT_X_BUCKX_VSETX_MASK; - } - else - { - /* Else case for VMON pwrRsrcType */ - *pBitPos = PMIC_VMONX_PG_LEVEL_VMONX_PG_SET_SHIFT; - *pBitMask = PMIC_VMONX_PG_LEVEL_VMONX_PG_SET_MASK; - } - - break; - default : - /* Default case is valid only for TPS6594x LEO PMIC */ - if(PMIC_TPS6594X_POWER_RESOURCE_TYPE_LDO == pwrRsrcType) - { - if(PMIC_TPS6594X_REGULATOR_LDO4 == pwrRsrc) - { - *pBitPos = PMIC_LDO4_VOUT_LDO4_VSET_SHIFT; - *pBitMask = PMIC_LDO4_VOUT_LDO4_VSET_MASK; - } - else - { - /* Else case for LDO pwrRsrcType */ - *pBitPos = PMIC_LDO1_2_3_VOUT_LDO1_2_3_VSET_SHIFT; - *pBitMask = PMIC_LDO1_2_3_VOUT_LDO1_2_3_VSET_MASK; - } - } - else - { - *pBitPos = PMIC_BUCKX_VOUT_X_BUCKX_VSETX_SHIFT; - *pBitMask = PMIC_BUCKX_VOUT_X_BUCKX_VSETX_MASK; - } - - break; - } - -} - -/*! - * \brief This function is used to set the voltage level for the regulator - * in mv OR ppower good level for VMON in mv. - */ -static int32_t Pmic_powerSetVoltage(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - uint16_t voltage_mV) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t vSetVal = 0U; - uint8_t regAddr = 0U; - uint8_t bitPos = 0U; - uint8_t bitMask = 0U; - - /* Get the regulator voltage register address */ - status = Pmic_GetVoltageRegAddr(pPmicCoreHandle, pwrRsrc, ®Addr); - - if(PMIC_ST_SUCCESS == status) - { - status = Pmic_powerValidateVoltageLevel(pPmicCoreHandle, - pwrRsrc, - voltage_mV); - } - - if(PMIC_ST_SUCCESS == status) - { - status = Pmic_powerConvertVoltage2VSetVal(pPmicCoreHandle, - voltage_mV, - pwrRsrc, - &vSetVal); - } - - if(PMIC_ST_SUCCESS == status) - { - Pmic_powerGetVoltageBitField(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &bitPos, - &bitMask); - - status = Pmic_setPwrRsrcPgoodRegBitfieldCfg(pPmicCoreHandle, - regAddr, - vSetVal, - bitPos, - bitMask); - - } - - return status; -} - -/** - * \brief This function is used to read the voltage of the power resource. - */ -static int32_t Pmic_powerGetVoltage(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - uint16_t *pMillivolt) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t regAddr = 0U; - uint8_t vSetVal = 0U; - uint8_t bitPos = 0U; - uint8_t bitMask = 0U; - - /* Get the regulator voltage register address */ - status = Pmic_GetVoltageRegAddr(pPmicCoreHandle, pwrRsrc, ®Addr); - - if(PMIC_ST_SUCCESS == status) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - regAddr, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - if(PMIC_ST_SUCCESS == status) - { - Pmic_powerGetVoltageBitField(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &bitPos, - &bitMask); - - vSetVal = Pmic_getBitField(regData, bitPos, bitMask); - } - - if(PMIC_ST_SUCCESS == status) - { - status = Pmic_powerConvertVolt(pPmicCoreHandle, - vSetVal, - pwrRsrc, - pMillivolt); - } - - return status; -} - -/*! - * \brief This function is used to validate the current limit of BUCK. - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - */ -static int32_t Pmic_powerValidateBuckCurrentLimit(uint8_t pmicDeviceType, - uint8_t currentLimit, - uint16_t pwrRsrc) -{ - int32_t status = PMIC_ST_SUCCESS; - - switch(pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - if((currentLimit < PMIC_LP8764X_BUCK_CURRENT_LIMIT_MIN) || - (currentLimit > PMIC_LP8764X_BUCK_CURRENT_LIMIT_MAX)) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - break; - default: - /* Default case is valid only for TPS6594x LEO PMIC - * Check for pwrRsrc >= PMIC_TPS6594X_REGULATOR_BUCK4 is done as - * part of Pmic_powerParamCheck() function - */ - if(pwrRsrc <= PMIC_TPS6594X_REGULATOR_BUCK4) - { - if((currentLimit < PMIC_TPS6594X_BUCK1_4_CURRENT_LIMIT_MIN) || - (currentLimit > PMIC_TPS6594X_BUCK1_4_CURRENT_LIMIT_MAX)) - { - status = PMIC_ST_ERR_INV_PARAM; - } - } - /* else case for PMIC_TPS6594X_REGULATOR_BUCK5 */ - else - { - if((currentLimit < PMIC_TPS6594X_BUCK5_CURRENT_LIMIT_MIN) || - (currentLimit > PMIC_TPS6594X_BUCK5_CURRENT_LIMIT_MAX)) - { - status = PMIC_ST_ERR_INV_PARAM; - } - } - - break; - } - - return status; -} - -/*! - * \brief This function is used to set the switch peak current limit for BUCK. - */ -static int32_t Pmic_powerSetBuckCurrentLimit( - Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - uint8_t currentLimit) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t pwrRsrcIndex; - Pmic_powerRsrcRegCfg_t *pPwrRsrcRegCfg = NULL; - - /* Get PMIC power resources Index and register configuration */ - Pmic_powerGetPwrRsrcIdxRegCfg(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &pwrRsrcIndex, - &pPwrRsrcRegCfg); - - pmicStatus = Pmic_powerValidateBuckCurrentLimit( - pPmicCoreHandle->pmicDeviceType, - currentLimit, - pwrRsrc); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].configRegAddr, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_setBitField(®Data, - PMIC_BUCKX_CONF_BUCKX_ILIM_SHIFT, - PMIC_BUCKX_CONF_BUCKX_ILIM_MASK, - currentLimit); - - pmicStatus = Pmic_commIntf_sendByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].configRegAddr, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return pmicStatus; -} - -/*! - * \brief This function is used to get the switch peak current limit of BUCK. - */ -static int32_t Pmic_powerGetBuckCurrentLimit(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - uint8_t *pCurrentLimit) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t pwrRsrcIndex; - Pmic_powerRsrcRegCfg_t *pPwrRsrcRegCfg = NULL; - - /* Get PMIC power resources Index and register configuration */ - Pmic_powerGetPwrRsrcIdxRegCfg(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &pwrRsrcIndex, - &pPwrRsrcRegCfg); - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].configRegAddr, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - *pCurrentLimit = Pmic_getBitField(regData, - PMIC_BUCKX_CONF_BUCKX_ILIM_SHIFT, - PMIC_BUCKX_CONF_BUCKX_ILIM_MASK); - } - - return pmicStatus; -} - -/*! - * \brief This function is used to validate the slew rate for BUCK/VMON - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - */ -static int32_t Pmic_powerValidateSlewRateLimit(uint8_t pmicDeviceType, - uint8_t slewRate) -{ - int32_t status = PMIC_ST_SUCCESS; - - switch(pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - if(slewRate > PMIC_LP8764X_BUCK_SLEW_RATE_MAX) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - break; - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - if(slewRate > PMIC_TPS6594X_BUCK_SLEW_RATE_MAX) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - break; - } - return status; -} - -/*! - * \brief This function is used to get the required bit position - * of BUCK/VMON Slew rate. - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - */ -static void Pmic_powerGetBuckVmonSlewRateBitPos(uint8_t pmicDeviceType, - uint16_t pwrRsrc, - uint8_t *pBitPos, - uint8_t *pBitMask) -{ - switch (pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - if(PMIC_LP8764X_POWER_SOURCE_VMON1 == pwrRsrc) - { - *pBitPos = PMIC_VMON_CONF_VMON1_SLEW_RATE_SHIFT; - *pBitMask = PMIC_VMON_CONF_VMON1_SLEW_RATE_MASK; - } - else if(PMIC_LP8764X_POWER_SOURCE_VMON2 == pwrRsrc) - { - *pBitPos = PMIC_VMON_CONF_VMON2_SLEW_RATE_SHIFT; - *pBitMask = PMIC_VMON_CONF_VMON2_SLEW_RATE_MASK; - } - else - { - *pBitPos = PMIC_BUCKX_CONF_BUCKX_SLEW_RATE_SHIFT; - *pBitMask = PMIC_BUCKX_CONF_BUCKX_SLEW_RATE_MASK; - } - - break; - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - *pBitPos = PMIC_BUCKX_CONF_BUCKX_SLEW_RATE_SHIFT; - *pBitMask = PMIC_BUCKX_CONF_BUCKX_SLEW_RATE_MASK; - break; - } - -} - -/*! - * \brief This function is used to set the output voltage slew rate for - * BUCK/VMON - */ -static int32_t Pmic_powerSetBuckVmonSlewRate( - Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - uint8_t buckVmonSlewRate) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t bitPos = 0U; - uint8_t bitMask = 0U; - uint8_t pwrRsrcIndex; - Pmic_powerRsrcRegCfg_t *pPwrRsrcRegCfg = NULL; - - /* Get PMIC power resources Index and register configuration */ - Pmic_powerGetPwrRsrcIdxRegCfg(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &pwrRsrcIndex, - &pPwrRsrcRegCfg); - - status = Pmic_powerValidateSlewRateLimit( - pPmicCoreHandle->pmicDeviceType, - buckVmonSlewRate); - - if(PMIC_ST_SUCCESS == status) - { - Pmic_powerGetBuckVmonSlewRateBitPos(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &bitPos, - &bitMask); - - status = Pmic_setPwrRsrcPgoodRegBitfieldCfg( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].configRegAddr, - buckVmonSlewRate, - bitPos, - bitMask); - } - - return status; -} - -/*! - * \brief This function is used to get the Output voltage slew rate for - * BUCK/VMON. - */ -static int32_t Pmic_powerGetBuckVmonSlewRate(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - uint8_t *pSlewRate) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t bitPos = 0U; - uint8_t bitMask = 0U; - uint8_t pwrRsrcIndex = 0U; - Pmic_powerRsrcRegCfg_t *pPwrRsrcRegCfg = NULL; - - /* Get PMIC power resources Index and register configuration */ - Pmic_powerGetPwrRsrcIdxRegCfg(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &pwrRsrcIndex, - &pPwrRsrcRegCfg); - - Pmic_criticalSectionStart(pPmicCoreHandle); - status = Pmic_commIntf_recvByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].configRegAddr, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == status) - { - Pmic_powerGetBuckVmonSlewRateBitPos(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &bitPos, - &bitMask); - - *pSlewRate = Pmic_getBitField(regData, bitPos, bitMask); - - } - - return status; -} - -/*! - * \brief This function is used to enable/disable Buck Output Pull Down - * Resistor when BUCK is disabled. - */ -static int32_t Pmic_powerSetBuckPullDownEn(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - bool buckPullDownEn) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t pwrRsrcIndex; - Pmic_powerRsrcRegCfg_t *pPwrRsrcRegCfg = NULL; - uint8_t buckPullDownEnVal = 0U; - - /* Get PMIC power resources Index and register configuration */ - Pmic_powerGetPwrRsrcIdxRegCfg(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &pwrRsrcIndex, - &pPwrRsrcRegCfg); - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].ctrlRegAddr, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(((bool)true) == buckPullDownEn) - { - buckPullDownEnVal = 1U; - } - /* Enable/Disable output pull-down resistor for BUCK regulator */ - Pmic_setBitField(®Data, - PMIC_BUCKX_CTRL_BUCKX_PLDN_SHIFT, - PMIC_BUCKX_CTRL_BUCKX_PLDN_MASK, - buckPullDownEnVal); - pmicStatus = Pmic_commIntf_sendByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].ctrlRegAddr, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - return pmicStatus; -} - -/*! - * \brief This function is used to get enable/disable status for Buck - * Output Pull Down Resistor - */ -static int32_t Pmic_powerGetBuckPullDownEn(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - bool *pBuckPullDownEn) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t pwrRsrcIndex; - Pmic_powerRsrcRegCfg_t *pPwrRsrcRegCfg = NULL; - - /* Get PMIC power resources Index and register configuration */ - Pmic_powerGetPwrRsrcIdxRegCfg(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &pwrRsrcIndex, - &pPwrRsrcRegCfg); - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].ctrlRegAddr, - ®Data); - - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(Pmic_getBitField(regData, - PMIC_BUCKX_CTRL_BUCKX_PLDN_SHIFT, - PMIC_BUCKX_CTRL_BUCKX_PLDN_MASK) != 0U) - { - *pBuckPullDownEn = (bool)true; - } - else - { - *pBuckPullDownEn = (bool)false; - } - - } - - return pmicStatus; -} - -/*! - * \brief This function is used to validate the LDO pull down resistor value. - * - * Note: In this API, assumed that ldoPullDownSel configuration is - * supported only for the TPS6594x Leo PMIC device. While adding - * support for New PMIC device, developer need to update the API - * functionality for New PMIC device accordingly. - */ -static int32_t Pmic_powerValidateLdoPullDownSel(uint8_t ldoPullDownSel) -{ - int32_t status = PMIC_ST_SUCCESS; - - if(ldoPullDownSel > PMIC_TPS6594X_REGULATOR_LDO_PLDN_VAL_500OHM) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - return status; -} - -/*! - * \brief This function is used to select the resistor value for output - * pull-down resistor for LDO - */ -static int32_t Pmic_powerSetLdoPullDownSel(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - uint8_t ldoPullDownSel) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t pwrRsrcIndex; - Pmic_powerRsrcRegCfg_t *pPwrRsrcRegCfg = NULL; - - /* Get PMIC power resources Index and register configuration */ - Pmic_powerGetPwrRsrcIdxRegCfg(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &pwrRsrcIndex, - &pPwrRsrcRegCfg); - - pmicStatus = Pmic_powerValidateLdoPullDownSel(ldoPullDownSel); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].ctrlRegAddr, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Selects output pull-down resistor for LDO regulator */ - Pmic_setBitField(®Data, - PMIC_LDOX_CTRL_LDOX_PLDN_SHIFT, - PMIC_LDOX_CTRL_LDOX_PLDN_MASK, - ldoPullDownSel); - - pmicStatus = Pmic_commIntf_sendByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].ctrlRegAddr, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return pmicStatus; -} - -/*! - * \brief Get the resistor value for output pull-down - * resistor for LDO/VMON - */ -static int32_t Pmic_powerGetLdoPullDownSel(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - uint8_t *pLdoPullDownSel) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t pwrRsrcIndex; - Pmic_powerRsrcRegCfg_t *pPwrRsrcRegCfg = NULL; - - /* Get PMIC power resources Index and register configuration */ - Pmic_powerGetPwrRsrcIdxRegCfg(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &pwrRsrcIndex, - &pPwrRsrcRegCfg); - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].ctrlRegAddr, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Get output pull-down resistor for LDO/VMON */ - *pLdoPullDownSel = Pmic_getBitField(regData, - PMIC_LDOX_CTRL_LDOX_PLDN_SHIFT, - PMIC_LDOX_CTRL_LDOX_PLDN_MASK); - } - - return pmicStatus; -} - -/** - * \brief This function is used to set the powergood level for the - * VCCA pin. - */ -static int32_t Pmic_powerSetVccaPwrGudLvl(Pmic_CoreHandle_t *pPmicCoreHandle, - bool vccaPwrGudLvl) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t vccaPwrGudLvlVal = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Reading the Powergood level value */ - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_VCCA_PG_WINDOW_REGADDR, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(((bool)true) == vccaPwrGudLvl) - { - vccaPwrGudLvlVal = 1U; - } - - Pmic_setBitField(®Data, - PMIC_VCCA_PG_WINDOW_VCCA_PG_SET_SHIFT, - PMIC_VCCA_PG_WINDOW_VCCA_PG_SET_MASK, - vccaPwrGudLvlVal); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_VCCA_PG_WINDOW_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - return pmicStatus; -} - -/** - * \brief This function is used to validate Power Good threshold level - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - */ -static int32_t Pmic_validateThreshold(uint8_t pmicDeviceType, - uint8_t pwrGudThresholdLvl) -{ - int32_t status = PMIC_ST_SUCCESS; - - switch(pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - if(pwrGudThresholdLvl > - PMIC_LP8764X_PG_OV_UV_THRESHOLD_LVL_100_OR_10) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - break; - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - if(pwrGudThresholdLvl > - PMIC_TPS6594X_PG_OV_UV_THRESHOLD_LVL_100_OR_10) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - break; - } - - return status; -} -/*! - * \brief Set Power Good low threshold level for power resources. - */ -static int32_t Pmic_powerSetLowThreshold( - Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - uint8_t pwrGudUvThresholdLvl) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - Pmic_powerRsrcRegCfg_t *pPwrRsrcRegCfg = NULL; - - /* Get PMIC power resources register configuration */ - Pmic_powerGetRsrcRegCfg(pPmicCoreHandle->pmicDeviceType, - &pPwrRsrcRegCfg); - - pmicStatus = Pmic_validateThreshold(pPmicCoreHandle->pmicDeviceType, - pwrGudUvThresholdLvl); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - /* Setting the PGOOD LOW threshold value */ - pmicStatus = Pmic_commIntf_recvByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrc].pgWindowRegAddr, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_setBitField( - ®Data, - PMIC_POWER_RESOURCEX_PG_WINDOW_POWER_RESOURCEX_UV_THR_SHIFT, - PMIC_POWER_RESOURCEX_PG_WINDOW_POWER_RESOURCEX_UV_THR_MASK, - pwrGudUvThresholdLvl); - pmicStatus = Pmic_commIntf_sendByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrc].pgWindowRegAddr, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return pmicStatus; -} - -/*! - * \brief Get Power Good low threshold level for power resources. - */ -static int32_t Pmic_powerGetLowThreshold( - Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - uint8_t *pPwrGudUvThresholdLvl) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - Pmic_powerRsrcRegCfg_t *pPwrRsrcRegCfg = NULL; - - /* Get PMIC power resources register configuration */ - Pmic_powerGetRsrcRegCfg(pPmicCoreHandle->pmicDeviceType, - &pPwrRsrcRegCfg); - - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Getting the PGOOD LOW threshold value */ - pmicStatus = Pmic_commIntf_recvByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrc].pgWindowRegAddr, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - *pPwrGudUvThresholdLvl = - Pmic_getBitField( - regData, - PMIC_POWER_RESOURCEX_PG_WINDOW_POWER_RESOURCEX_UV_THR_SHIFT, - PMIC_POWER_RESOURCEX_PG_WINDOW_POWER_RESOURCEX_UV_THR_MASK); - } - - return pmicStatus; -} - -/*! - * \brief Set Power Good High threshold level for power resources. - */ -static int32_t Pmic_powerSetHighThreshold(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - uint8_t powerGoodOvThr) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - Pmic_powerRsrcRegCfg_t *pPwrRsrcRegCfg = NULL; - - /* Get PMIC power resources register configuration */ - Pmic_powerGetRsrcRegCfg(pPmicCoreHandle->pmicDeviceType, - &pPwrRsrcRegCfg); - - pmicStatus = Pmic_validateThreshold(pPmicCoreHandle->pmicDeviceType, - powerGoodOvThr); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Setting the PGOOD HIGH threshold value */ - pmicStatus = Pmic_commIntf_recvByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrc].pgWindowRegAddr, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_setBitField( - ®Data, - PMIC_POWER_RESOURCEX_PG_WINDOW_POWER_RESOURCEX_OV_THR_SHIFT, - PMIC_POWER_RESOURCEX_PG_WINDOW_POWER_RESOURCEX_OV_THR_MASK, - powerGoodOvThr); - pmicStatus = Pmic_commIntf_sendByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrc].pgWindowRegAddr, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - } - - return pmicStatus; -} - -/*! - * \brief Get Power Good High threshold level for power resources. - */ -static int32_t Pmic_powerGetHighThreshold(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - uint8_t *pPowerGoodOvThr) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - Pmic_powerRsrcRegCfg_t *pPwrRsrcRegCfg = NULL; - - /* Get PMIC power resources register configuration */ - Pmic_powerGetRsrcRegCfg(pPmicCoreHandle->pmicDeviceType, - &pPwrRsrcRegCfg); - - Pmic_criticalSectionStart(pPmicCoreHandle); - /* Setting the PGOOD HIGH threshold value */ - pmicStatus = Pmic_commIntf_recvByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrc].pgWindowRegAddr, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - *pPowerGoodOvThr = - Pmic_getBitField( - regData, - PMIC_POWER_RESOURCEX_PG_WINDOW_POWER_RESOURCEX_OV_THR_SHIFT, - PMIC_POWER_RESOURCEX_PG_WINDOW_POWER_RESOURCEX_OV_THR_MASK); - } - - return pmicStatus; -} - -/** - * \brief This function is used to get the powergood level for the - * VCCA pin. - */ -static int32_t Pmic_powerGetVccaPwrGudLvl(Pmic_CoreHandle_t *pPmicCoreHandle, - bool *pVccaPwrGudLvl) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Reading the Powergood level value */ - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_VCCA_PG_WINDOW_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(Pmic_getBitField( - regData, - PMIC_VCCA_PG_WINDOW_VCCA_PG_SET_SHIFT, - PMIC_VCCA_PG_WINDOW_VCCA_PG_SET_MASK) != 0U) - { - *pVccaPwrGudLvl = (bool)true; - } - else - { - *pVccaPwrGudLvl = (bool)false; - } - - } - - return pmicStatus; -} - -/*! - * \brief This function is used to get the required Bit Position and Bit Mask - * of VMON enable/disable status for all power resources - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - * While adding support for New Power Resource, developer need to - * update the API functionality for New Power Resource accordingly - */ -static void Pmic_powerGetVmonEnBitPos(uint8_t pmicDeviceType, - uint16_t pwrRsrc, - uint8_t *pBitPos, - uint8_t *pBitMask) -{ - uint8_t pwrRsrcType; - - pwrRsrcType = Pmic_powerGetPwrRsrcType(pwrRsrc); - switch(pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - if(PMIC_LP8764X_POWER_RESOURCE_TYPE_BUCK == pwrRsrcType) - { - *pBitPos = PMIC_REGULATOR_CTRL_REGULATOR_VMON_EN_SHIFT; - *pBitMask = PMIC_REGULATOR_CTRL_REGULATOR_VMON_EN_MASK; - } - else if(PMIC_LP8764X_POWER_RESOURCE_TYPE_VMON == pwrRsrcType) - { - if(PMIC_LP8764X_POWER_SOURCE_VMON1 == pwrRsrc) - { - *pBitPos = PMIC_VCCA_VMON_CTRL_VMON1_EN_SHIFT; - *pBitMask = PMIC_VCCA_VMON_CTRL_VMON1_EN_MASK; - } - else - { - /* Else case for VMON2 pwrRsrcType */ - *pBitPos = PMIC_VCCA_VMON_CTRL_VMON2_EN_SHIFT; - *pBitMask = PMIC_VCCA_VMON_CTRL_VMON2_EN_MASK; - } - } - else - { - /* Else case for VCCA pwrRsrcType */ - *pBitPos = PMIC_VCCA_VMON_CTRL_VCCA_VMON_EN_SHIFT; - *pBitMask = PMIC_VCCA_VMON_CTRL_VCCA_VMON_EN_MASK; - } - - break; - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - if((PMIC_TPS6594X_POWER_RESOURCE_TYPE_BUCK == pwrRsrcType) || - (PMIC_TPS6594X_POWER_RESOURCE_TYPE_LDO == pwrRsrcType)) - { - *pBitPos = PMIC_REGULATOR_CTRL_REGULATOR_VMON_EN_SHIFT; - *pBitMask = PMIC_REGULATOR_CTRL_REGULATOR_VMON_EN_MASK; - } - else - { - /* Else case for VCCA pwrRsrcType */ - *pBitPos = PMIC_VCCA_VMON_CTRL_VCCA_VMON_EN_SHIFT; - *pBitMask = PMIC_VCCA_VMON_CTRL_VCCA_VMON_EN_MASK; - } - - break; - } - -} - -/*! - * \brief This function is used to enable/disable the VMON for - * all power resource - */ -static int32_t Pmic_powerSetVmonEn(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - bool vmonEn) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t bitPos = 0U; - uint8_t pwrRsrcIndex = 0U; - Pmic_powerRsrcRegCfg_t *pPwrRsrcRegCfg = NULL; - uint8_t bitMask = 0U; - uint8_t vmonEnVal = 0U; - - /* Get PMIC power resources Index and register configuration */ - Pmic_powerGetPwrRsrcIdxRegCfg(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &pwrRsrcIndex, - &pPwrRsrcRegCfg); - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].ctrlRegAddr, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_powerGetVmonEnBitPos(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &bitPos, - &bitMask); - - if(((bool)true) == vmonEn) - { - vmonEnVal = 1U; - } - - Pmic_setBitField(®Data, bitPos, bitMask, vmonEnVal); - - pmicStatus = Pmic_commIntf_sendByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].ctrlRegAddr, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - return pmicStatus; -} - -/*! - * \brief This function is used to get enable/disable status of the VMON for - * all power resource - */ -static int32_t Pmic_powerGetvmonEn(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - bool *pVmonEn) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t bitPos = 0U; - uint8_t pwrRsrcIndex = 0U; - Pmic_powerRsrcRegCfg_t *pPwrRsrcRegCfg = NULL; - uint8_t bitMask = 0U; - - /* Get PMIC power resources Index and register configuration */ - Pmic_powerGetPwrRsrcIdxRegCfg(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &pwrRsrcIndex, - &pPwrRsrcRegCfg); - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].ctrlRegAddr, - ®Data); - - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_powerGetVmonEnBitPos(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &bitPos, - &bitMask); - - if(Pmic_getBitField(regData, bitPos, bitMask) != 0U) - { - *pVmonEn = (bool)true; - } - else - { - *pVmonEn = (bool)false; - } - - } - - return pmicStatus; -} - -/*! - * \brief This function is used to validate the Rail group limit for all - * power resources - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - */ -static int32_t Pmic_powerValidateRailGrpLimit(uint8_t pmicDeviceType, - uint8_t railGrpSel) -{ - int32_t status = PMIC_ST_SUCCESS; - - switch(pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - if(railGrpSel > PMIC_LP8764X_POWER_RAIL_SEL_OTHER) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - break; - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - if(railGrpSel > PMIC_TPS6594X_POWER_RAIL_SEL_OTHER) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - break; - } - - return status; -} - -/*! - * \brief This function is used to select the Rail group of power - * resource of the PMIC - */ -static int32_t Pmic_powerSetRailGrpSel(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - uint8_t railGrpSel) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regAddr = 0U; - uint8_t regData = 0U; - uint8_t pwrRsrcIndex = 0U; - uint8_t bitMask = 0U; - Pmic_powerRsrcRegCfg_t *pPwrRsrcRegCfg = NULL; - - /* Get PMIC power resources Index and register configuration */ - Pmic_powerGetPwrRsrcIdxRegCfg(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &pwrRsrcIndex, - &pPwrRsrcRegCfg); - - regAddr = pPwrRsrcRegCfg[pwrRsrcIndex].railGrpRegAddr; - pmicStatus = Pmic_powerValidateRailGrpLimit( - pPmicCoreHandle->pmicDeviceType, - railGrpSel); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - regAddr, - ®Data); - if(PMIC_ST_SUCCESS == pmicStatus) - { - bitMask = (uint8_t)(PMIC_RAIL_SEL_X_PWR_RSRC_X_GRP_SEL_BITFIELD \ - << pPwrRsrcRegCfg[pwrRsrcIndex].railGrpBitShiftVal); - - Pmic_setBitField(®Data, - pPwrRsrcRegCfg[pwrRsrcIndex].railGrpBitShiftVal, - bitMask, - railGrpSel); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - regAddr, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return pmicStatus; -} - -/*! - * \brief This function is used to get the Rail group of power - * regulator of the PMIC - */ -static int32_t Pmic_powerGetRailGrpSel(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - uint8_t *pRailGrpSel) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t pwrRsrcIndex = 0U; - uint8_t bitMask = 0U; - Pmic_powerRsrcRegCfg_t *pPwrRsrcRegCfg = NULL; - - /* Get PMIC power resources Index and register configuration */ - Pmic_powerGetPwrRsrcIdxRegCfg(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &pwrRsrcIndex, - &pPwrRsrcRegCfg); - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].railGrpRegAddr, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - bitMask = (uint8_t)(PMIC_RAIL_SEL_X_PWR_RSRC_X_GRP_SEL_BITFIELD \ - << pPwrRsrcRegCfg[pwrRsrcIndex].railGrpBitShiftVal); - - *pRailGrpSel = Pmic_getBitField( - regData, - pPwrRsrcRegCfg[pwrRsrcIndex].railGrpBitShiftVal, - bitMask); - } - - return pmicStatus; -} - -/*! - * \brief This function is used to Select OV/UV voltage monitoring range for - * VMON2/VMON1 - */ -static int32_t Pmic_powerSetVmonRange(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - bool vmonRange) - -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t pwrRsrcIndex = 0U; - Pmic_powerRsrcRegCfg_t *pPwrRsrcRegCfg = NULL; - uint8_t vmonRangeVal = 0U; - - /* Get PMIC power resources Index and register configuration */ - Pmic_powerGetPwrRsrcIdxRegCfg(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &pwrRsrcIndex, - &pPwrRsrcRegCfg); - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].pgWindowRegAddr, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(((bool)true) == vmonRange) - { - vmonRangeVal = 1U; - } - - Pmic_setBitField(®Data, - PMIC_VMON_PG_WINDOW_VMON_RANGE_SHIFT, - PMIC_VMON_PG_WINDOW_VMON_RANGE_MASK, - vmonRangeVal); - - pmicStatus = Pmic_commIntf_sendByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].pgWindowRegAddr, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - - return pmicStatus; -} - -/*! - * \brief This function is to configure the various control parameters - - * buckFpwmMpMode, ldoSlowRampEn, ldoPullDownSel - */ -static int32_t Pmic_pwrSetBuckfpwmmpLdoslowrampLdopdselCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - Pmic_PowerResourceCfg_t pwrRsrcCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(((bool)true) == pmic_validParamCheck(pwrRsrcCfg.validParams, - PMIC_CFG_REGULATOR_BUCK_PWM_MP_VALID)) - { - pmicStatus = Pmic_powerValidatecfgDataPwrRsrctype( - PMIC_CFG_REGULATOR_BUCK_PWM_MP_VALID, - pwrRsrc, - pPmicCoreHandle->pmicDeviceType); - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Select Multi phase with PWM or Auto Mode */ - pmicStatus = Pmic_powerSetBuckFpwmMpMode( - pPmicCoreHandle, - pwrRsrc, - pwrRsrcCfg.buckFpwmMpMode); - } - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pwrRsrcCfg.validParams, - PMIC_CFG_REGULATOR_LDO_SLOW_RAMP_EN_VALID))) - { - if(((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (PMIC_SILICON_REV_ID_PG_1_0 == - pPmicCoreHandle->pmicDevSiliconRev)) || - (PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType)) - { - pmicStatus = PMIC_ST_ERR_NOT_SUPPORTED; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_powerValidatecfgDataPwrRsrctype( - PMIC_CFG_REGULATOR_LDO_SLOW_RAMP_EN_VALID, - pwrRsrc, - pPmicCoreHandle->pmicDeviceType); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Enable/Disable Slow Ramp for LDO */ - pmicStatus = Pmic_powerSetLdoSlowRampEn( - pPmicCoreHandle, - pwrRsrc, - pwrRsrcCfg.ldoSlowRampEn); - } - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pwrRsrcCfg.validParams, - PMIC_CFG_REGULATOR_LDO_PLDN_SEL_VALID))) - { - pmicStatus = Pmic_powerValidatecfgDataPwrRsrctype( - PMIC_CFG_REGULATOR_LDO_PLDN_SEL_VALID, - pwrRsrc, - pPmicCoreHandle->pmicDeviceType); - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Set resistor value for output pull-down for LDO */ - pmicStatus = Pmic_powerSetLdoPullDownSel( - pPmicCoreHandle, - pwrRsrc, - pwrRsrcCfg.ldoPullDownSel); - } - } - - return pmicStatus; -} - -/*! - * \brief This function is to configure the various control parameters for - * power resources. - */ -static int32_t Pmic_powerSetPwrResourceCtrlCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - Pmic_PowerResourceCfg_t pwrRsrcCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(((bool)true) == pmic_validParamCheck(pwrRsrcCfg.validParams, - PMIC_CFG_REGULATOR_VMON_RV_SEL_VALID)) - { - pmicStatus = Pmic_powerValidatecfgDataPwrRsrctype( - PMIC_CFG_REGULATOR_VMON_RV_SEL_VALID, - pwrRsrc, - pPmicCoreHandle->pmicDeviceType); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Enable/Disable residual voltage checking */ - pmicStatus = Pmic_powerSetRvCheckEn(pPmicCoreHandle, - pwrRsrc, - pwrRsrcCfg.rvCheckEn); - } - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pwrRsrcCfg.validParams, - PMIC_CFG_REGULATOR_BUCK_PLDN_EN_VALID))) - { - pmicStatus = Pmic_powerValidatecfgDataPwrRsrctype( - PMIC_CFG_REGULATOR_BUCK_PLDN_EN_VALID, - pwrRsrc, - pPmicCoreHandle->pmicDeviceType); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Enable/Disable pull down resistor for Buck */ - pmicStatus = Pmic_powerSetBuckPullDownEn( - pPmicCoreHandle, - pwrRsrc, - pwrRsrcCfg.buckPullDownEn); - } - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pwrRsrcCfg.validParams, - PMIC_CFG_REGULATOR_BUCK_VOUT_SEL_VALID))) - { - pmicStatus = Pmic_powerValidatecfgDataPwrRsrctype( - PMIC_CFG_REGULATOR_BUCK_VOUT_SEL_VALID, - pwrRsrc, - pPmicCoreHandle->pmicDeviceType); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Select output voltage register for buck */ - pmicStatus = Pmic_powerSetBuckVoutSel(pPmicCoreHandle, - pwrRsrc, - pwrRsrcCfg.buckVoutSel); - } - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pwrRsrcCfg.validParams, - PMIC_CFG_REGULATOR_BUCK_FPWM_VALID))) - { - pmicStatus = Pmic_powerValidatecfgDataPwrRsrctype( - PMIC_CFG_REGULATOR_BUCK_FPWM_VALID, - pwrRsrc, - pPmicCoreHandle->pmicDeviceType); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Select PWM or Auto Mode */ - pmicStatus = Pmic_powerSetBuckFpwmMode( - pPmicCoreHandle, - pwrRsrc, - pwrRsrcCfg.buckFpwmMode); - } - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Set the configiration - Select Multi phase with PWM or Auto Mode , - * Enable/Disable Slow Ramp for LDO, Set resistor value for output - * pull-down for LDO */ - pmicStatus = Pmic_pwrSetBuckfpwmmpLdoslowrampLdopdselCfg( - pPmicCoreHandle, - pwrRsrc, - pwrRsrcCfg); - } - - return pmicStatus; -} - -/*! - * \brief This function is to configure the various configuration parameters - * for BUCK/VMON - */ -static int32_t Pmic_powerSetBuckVmonConfig( - Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - Pmic_PowerResourceCfg_t pwrRsrcCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(((bool)true) == pmic_validParamCheck(pwrRsrcCfg.validParams, - PMIC_CFG_REGULATOR_BUCK_ILIM_VALID)) - { - pmicStatus = Pmic_powerValidatecfgDataPwrRsrctype( - PMIC_CFG_REGULATOR_BUCK_ILIM_VALID, - pwrRsrc, - pPmicCoreHandle->pmicDeviceType); - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Set Switch peak current limit for BUCK */ - pmicStatus = Pmic_powerSetBuckCurrentLimit( - pPmicCoreHandle, - pwrRsrc, - pwrRsrcCfg.buckCurrentLimit); - } - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pwrRsrcCfg.validParams, - PMIC_CFG_REGULATOR_BUCK_VMON_SLEW_RATE_VALID))) - { - pmicStatus = Pmic_powerValidatecfgDataPwrRsrctype( - PMIC_CFG_REGULATOR_BUCK_VMON_SLEW_RATE_VALID, - pwrRsrc, - pPmicCoreHandle->pmicDeviceType); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Set Output voltage slew rate for BUCK/VMON */ - pmicStatus = Pmic_powerSetBuckVmonSlewRate( - pPmicCoreHandle, - pwrRsrc, - pwrRsrcCfg.buckVmonSlewRate); - } - } - - return pmicStatus; -} - -/*! - * \brief This function is to configure the various power-good parameters for - * power resources and vmon - */ -static int32_t Pmic_powerSetPwrRsrcePgoodConfig( - Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - Pmic_PowerResourceCfg_t pwrRsrcCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(((bool)true) == pmic_validParamCheck(pwrRsrcCfg.validParams, - PMIC_CFG_VCCA_PWR_GOOD_LVL_VALID)) - { - pmicStatus = Pmic_powerValidatecfgDataPwrRsrctype( - PMIC_CFG_VCCA_PWR_GOOD_LVL_VALID, - pwrRsrc, - pPmicCoreHandle->pmicDeviceType); - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Set Powergood level for VCCA pin */ - pmicStatus = Pmic_powerSetVccaPwrGudLvl(pPmicCoreHandle, - pwrRsrcCfg.vccaPwrGudLvl); - } - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pwrRsrcCfg.validParams, - PMIC_CFG_VMON_RANGE_VALID))) - { - pmicStatus = Pmic_powerValidatecfgDataPwrRsrctype( - PMIC_CFG_VMON_RANGE_VALID, - pwrRsrc, - pPmicCoreHandle->pmicDeviceType); - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* OV/UV voltage monitoring range selection for VMON */ - pmicStatus = Pmic_powerSetVmonRange(pPmicCoreHandle, - pwrRsrc, - pwrRsrcCfg.vmonRange); - } - } - - if(pmic_validParamCheck(pwrRsrcCfg.validParams, - PMIC_CFG_PWR_RESOURCE_PG_UV_THRESHOLD_LVL_VALID)) - { - /* Set Powergood low threshold level for power resources */ - pmicStatus = Pmic_powerSetLowThreshold(pPmicCoreHandle, - pwrRsrc, - pwrRsrcCfg.pgUvThresholdLvl); - - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (pmic_validParamCheck(pwrRsrcCfg.validParams, - PMIC_CFG_PWR_RESOURCE_PG_OV_THRESHOLD_LVL_VALID))) - { - /* Set Powergood high threshold level for power resources */ - pmicStatus = Pmic_powerSetHighThreshold(pPmicCoreHandle, - pwrRsrc, - pwrRsrcCfg.pgOvThresholdLvl); - - } - - return pmicStatus; -} - -/*! - * \brief This function is to get the various control parameters - - * regulatorEn, ldoSlowRampEn, ldoPullDownSel - */ -static int32_t Pmic_pwrGetRegulatorEnLdoslowrampLdopdselCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - Pmic_PowerResourceCfg_t *pPwrRsrcCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(((bool)true) == pmic_validParamCheck(pPwrRsrcCfg->validParams, - PMIC_CFG_REGULATOR_EN_VALID)) - { - pmicStatus = Pmic_powerValidatecfgDataPwrRsrctype( - PMIC_CFG_REGULATOR_EN_VALID, - pwrRsrc, - pPmicCoreHandle->pmicDeviceType); - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Get Enable/Disable status for Regulator */ - pmicStatus = Pmic_powerGetRegulatorEn(pPmicCoreHandle, - pwrRsrc, - &(pPwrRsrcCfg->regulatorEn)); - } - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pPwrRsrcCfg->validParams, - PMIC_CFG_REGULATOR_LDO_SLOW_RAMP_EN_VALID))) - { - if(((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (PMIC_SILICON_REV_ID_PG_1_0 == - pPmicCoreHandle->pmicDevSiliconRev)) || - (PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType)) - { - pmicStatus = PMIC_ST_ERR_NOT_SUPPORTED; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_powerValidatecfgDataPwrRsrctype( - PMIC_CFG_REGULATOR_LDO_SLOW_RAMP_EN_VALID, - pwrRsrc, - pPmicCoreHandle->pmicDeviceType); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Get Enable/Disable status of Slow Ramp for LDO */ - pmicStatus = Pmic_powerGetLdoSlowRampEn( - pPmicCoreHandle, - pwrRsrc, - &(pPwrRsrcCfg->ldoSlowRampEn)); - } - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pPwrRsrcCfg->validParams, - PMIC_CFG_REGULATOR_LDO_PLDN_SEL_VALID))) - { - pmicStatus = Pmic_powerValidatecfgDataPwrRsrctype( - PMIC_CFG_REGULATOR_LDO_PLDN_SEL_VALID, - pwrRsrc, - pPmicCoreHandle->pmicDeviceType); - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Get resistor value for output pull-down for LDO and VMON */ - pmicStatus = Pmic_powerGetLdoPullDownSel( - pPmicCoreHandle, - pwrRsrc, - &(pPwrRsrcCfg->ldoPullDownSel)); - } - } - - return pmicStatus; -} - -/*! - * \brief This function is to get the various control parameters - - * buckVoutSel, buckFpwmMode, buckFpwmMpMode - */ -static int32_t Pmic_pwrGetBuckVoutselFpwmmodeFpwmmpmodeCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - Pmic_PowerResourceCfg_t *pPwrRsrcCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(((bool)true) == pmic_validParamCheck(pPwrRsrcCfg->validParams, - PMIC_CFG_REGULATOR_BUCK_VOUT_SEL_VALID)) - { - pmicStatus = Pmic_powerValidatecfgDataPwrRsrctype( - PMIC_CFG_REGULATOR_BUCK_VOUT_SEL_VALID, - pwrRsrc, - pPmicCoreHandle->pmicDeviceType); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Get output voltage register for buck*/ - pmicStatus = Pmic_powerGetBuckVoutSel(pPmicCoreHandle, - pwrRsrc, - &(pPwrRsrcCfg->buckVoutSel)); - } - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pPwrRsrcCfg->validParams, - PMIC_CFG_REGULATOR_BUCK_FPWM_VALID))) - { - pmicStatus = Pmic_powerValidatecfgDataPwrRsrctype( - PMIC_CFG_REGULATOR_BUCK_FPWM_VALID, - pwrRsrc, - pPmicCoreHandle->pmicDeviceType); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Get PWM or Auto Mode */ - pmicStatus = Pmic_powerGetBuckFpwmMode( - pPmicCoreHandle, - pwrRsrc, - &(pPwrRsrcCfg->buckFpwmMode)); - } - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pPwrRsrcCfg->validParams, - PMIC_CFG_REGULATOR_BUCK_PWM_MP_VALID))) - { - pmicStatus = Pmic_powerValidatecfgDataPwrRsrctype( - PMIC_CFG_REGULATOR_BUCK_PWM_MP_VALID, - pwrRsrc, - pPmicCoreHandle->pmicDeviceType); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Get Multi phase with PWM or Auto Mode status */ - pmicStatus = Pmic_powerGetBuckPwmMpMode( - pPmicCoreHandle, - pwrRsrc, - &(pPwrRsrcCfg->buckFpwmMpMode)); - } - } - - return pmicStatus; -} - -/*! - * \brief This function is to get the various control parameters for - * regulators and VMON - */ -static int32_t Pmic_powerGetPwrResourceCtrlCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - Pmic_PowerResourceCfg_t *pPwrRsrcCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(((bool)true) == pmic_validParamCheck(pPwrRsrcCfg->validParams, - PMIC_CFG_REGULATOR_VMON_RV_SEL_VALID)) - { - pmicStatus = Pmic_powerValidatecfgDataPwrRsrctype( - PMIC_CFG_REGULATOR_VMON_RV_SEL_VALID, - pwrRsrc, - pPmicCoreHandle->pmicDeviceType); - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Get Enable/Disable status for residual voltage checking */ - pmicStatus = Pmic_powerGetRvCheckEn(pPmicCoreHandle, - pwrRsrc, - &(pPwrRsrcCfg->rvCheckEn)); - } - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pPwrRsrcCfg->validParams, - PMIC_CFG_REGULATOR_BUCK_PLDN_EN_VALID))) - { - pmicStatus = Pmic_powerValidatecfgDataPwrRsrctype( - PMIC_CFG_REGULATOR_BUCK_PLDN_EN_VALID, - pwrRsrc, - pPmicCoreHandle->pmicDeviceType); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Get Enable/Disable status of pull down resistor for Buck */ - pmicStatus = Pmic_powerGetBuckPullDownEn( - pPmicCoreHandle, - pwrRsrc, - &(pPwrRsrcCfg->buckPullDownEn)); - } - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pPwrRsrcCfg->validParams, - PMIC_CFG_VMON_EN_VALID))) - { - /* Get Enable/Disable status for Voltage monitor */ - pmicStatus = Pmic_powerGetvmonEn(pPmicCoreHandle, - pwrRsrc, - &(pPwrRsrcCfg->vmonEn)); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Get the configuration - output voltage register for buck , - * PWM or Auto Mode,Multi phase with PWM or Auto Mode status */ - pmicStatus = Pmic_pwrGetBuckVoutselFpwmmodeFpwmmpmodeCfg( - pPmicCoreHandle, - pwrRsrc, - pPwrRsrcCfg); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Get the configuration - Enable/Disable status for Regulator , - * Enable/Disable Slow Ramp for LDO, Set resistor value for output - * pull-down for LDO */ - pmicStatus = Pmic_pwrGetRegulatorEnLdoslowrampLdopdselCfg( - pPmicCoreHandle, - pwrRsrc, - pPwrRsrcCfg); - } - - return pmicStatus; -} - -/*! - * \brief This function is to get the various configuration parameters for - * BUCk/VMON - */ -static int32_t Pmic_powerGetBuckVmonConfig( - Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - Pmic_PowerResourceCfg_t *pPwrRsrcCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(((bool)true) == pmic_validParamCheck(pPwrRsrcCfg->validParams, - PMIC_CFG_REGULATOR_BUCK_ILIM_VALID)) - { - pmicStatus = Pmic_powerValidatecfgDataPwrRsrctype( - PMIC_CFG_REGULATOR_BUCK_ILIM_VALID, - pwrRsrc, - pPmicCoreHandle->pmicDeviceType); - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Get Switch peak current limit for BUCK */ - pmicStatus = Pmic_powerGetBuckCurrentLimit( - pPmicCoreHandle, - pwrRsrc, - &(pPwrRsrcCfg->buckCurrentLimit)); - } - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pPwrRsrcCfg->validParams, - PMIC_CFG_REGULATOR_BUCK_VMON_SLEW_RATE_VALID))) - { - pmicStatus = Pmic_powerValidatecfgDataPwrRsrctype( - PMIC_CFG_REGULATOR_BUCK_VMON_SLEW_RATE_VALID, - pwrRsrc, - pPmicCoreHandle->pmicDeviceType); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Get Output voltage slew rate for BUCK, VMON1 and VMON2 */ - pmicStatus = Pmic_powerGetBuckVmonSlewRate( - pPmicCoreHandle, - pwrRsrc, - &(pPwrRsrcCfg->buckVmonSlewRate)); - } - } - - return pmicStatus; -} - -/*! - * \brief This function is to get the various power-good parameters for - * power resources and vmon - */ -static int32_t Pmic_powerGetPwrRsrcePgoodConfig( - Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - Pmic_PowerResourceCfg_t *pPwrRsrcCfg) - -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(((bool)true) == pmic_validParamCheck(pPwrRsrcCfg->validParams, - PMIC_CFG_VCCA_PWR_GOOD_LVL_VALID)) - { - pmicStatus = Pmic_powerValidatecfgDataPwrRsrctype( - PMIC_CFG_VCCA_PWR_GOOD_LVL_VALID, - pwrRsrc, - pPmicCoreHandle->pmicDeviceType); - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* get Powergood level for VCCA pin */ - pmicStatus = Pmic_powerGetVccaPwrGudLvl( - pPmicCoreHandle, - &(pPwrRsrcCfg->vccaPwrGudLvl)); - } - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pPwrRsrcCfg->validParams, - PMIC_CFG_VMON_RANGE_VALID))) - { - pmicStatus = Pmic_powerValidatecfgDataPwrRsrctype( - PMIC_CFG_VMON_RANGE_VALID, - pwrRsrc, - pPmicCoreHandle->pmicDeviceType); - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Get OV/UV voltage monitoring range selection for VMON */ - pmicStatus = Pmic_powerGetVmonRange(pPmicCoreHandle, - pwrRsrc, - &(pPwrRsrcCfg->vmonRange)); - } - } - - if(pmic_validParamCheck(pPwrRsrcCfg->validParams, - PMIC_CFG_PWR_RESOURCE_PG_UV_THRESHOLD_LVL_VALID)) - { - /* get Powergood low threshold level for power resources */ - pmicStatus = Pmic_powerGetLowThreshold( - pPmicCoreHandle, - pwrRsrc, - &(pPwrRsrcCfg->pgUvThresholdLvl)); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (pmic_validParamCheck(pPwrRsrcCfg->validParams, - PMIC_CFG_PWR_RESOURCE_PG_OV_THRESHOLD_LVL_VALID))) - { - /* Get Powergood high threshold level for power resources */ - pmicStatus = Pmic_powerGetHighThreshold( - pPmicCoreHandle, - pwrRsrc, - &(pPwrRsrcCfg->pgOvThresholdLvl)); - } - - return pmicStatus; -} - -/*! - * \brief This function is to validate the power resource limit for the - * specific PMIC device. - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - */ -static int32_t Pmic_powerValidatePwrRsrcLimit( - const Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t pwrRsrcType, - uint16_t pwrRsrc) -{ - int32_t status = PMIC_ST_SUCCESS; - - switch(pPmicCoreHandle->pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - status = Pmic_powerLP8764xValidatePwrRsrcLimit(pPmicCoreHandle, - pwrRsrcType, - pwrRsrc); - break; - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - status = Pmic_powerTPS6594xValidatePwrRsrcLimit(pPmicCoreHandle, - pwrRsrcType, - pwrRsrc); - - break; - } - - return status; -} - -/*! - * \brief This function is to validate the parameters and power resource - * limit for the specific PMIC device. - */ -static int32_t Pmic_powerParamCheck(const Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrResource) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t pwrRsrcType; - - if(NULL == pPmicCoreHandle) - { - status = PMIC_ST_ERR_INV_HANDLE; - } - - pwrRsrcType = Pmic_powerGetPwrRsrcType(pwrResource); - - if(PMIC_ST_SUCCESS == status) - { - status = Pmic_powerValidatePwrRsrcLimit(pPmicCoreHandle, - pwrRsrcType, - pwrResource); - } - - return status; -} - -/*! - * \brief This function is used to select the bypass or linear regulator - * mode for LDO. - */ -static int32_t Pmic_powerSetLdoBypassModeEn(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - bool ldoBypassModeEn) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t pwrRsrcIndex = 0U; - Pmic_powerRsrcRegCfg_t *pPwrRsrcRegCfg = NULL; - uint8_t ldoBypassModeEnVal = 0U; - - /* Get PMIC power resources Index and register configuration */ - Pmic_powerGetPwrRsrcIdxRegCfg(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &pwrRsrcIndex, - &pPwrRsrcRegCfg); - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].vout1RegAddr, - ®Data); - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(((bool)true) == ldoBypassModeEn) - { - ldoBypassModeEnVal = 1U; - } - - Pmic_setBitField(®Data, - PMIC_LDO1_2_3_VOUT_LDO1_2_3_BYPASS_SHIFT, - PMIC_LDO1_2_3_VOUT_LDO1_2_3_BYPASS_MASK, - ldoBypassModeEnVal); - - pmicStatus = Pmic_commIntf_sendByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].vout1RegAddr, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - - return pmicStatus; -} - -/*! - * \brief Get Enable /Disable status for Slow Ramp for LDO - */ -static int32_t Pmic_powerGetLdoBypassModeEn(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - bool *pLdoBypassModeEn) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t pwrRsrcIndex = 0U; - Pmic_powerRsrcRegCfg_t *pPwrRsrcRegCfg = NULL; - - /* Get PMIC power resources Index and register configuration */ - Pmic_powerGetPwrRsrcIdxRegCfg(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &pwrRsrcIndex, - &pPwrRsrcRegCfg); - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].vout1RegAddr, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(Pmic_getBitField( - regData, - PMIC_LDO1_2_3_VOUT_LDO1_2_3_BYPASS_SHIFT, - PMIC_LDO1_2_3_VOUT_LDO1_2_3_BYPASS_MASK) != 0U) - { - *pLdoBypassModeEn = (bool)true; - } - else - { - *pLdoBypassModeEn = (bool)false; - } - - } - - return pmicStatus; -} - - /*! - * \brief This function is used to validate the ldo residual voltage timeout - * limit. - * - * Note: In this API, assumed that ldoRvTimeoutSel configuration is - * supported only for the TPS6594x Leo PMIC device. While adding - * support for New PMIC device, developer need to update the API - * functionality for New PMIC device accordingly. - */ -static int32_t Pmic_powerValidateLdoRvTimeoutLimit(uint8_t ldoRvTimeoutSel) -{ - int32_t status = PMIC_ST_SUCCESS; - - if(ldoRvTimeoutSel > PMIC_TPS6594X_REGULATOR_LDO_RV_TIMEOUT_16MS) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - return status; -} - -/*! - * \brief This function is used to set LDO residual voltage check timeout - * for LDO - */ -static int32_t Pmic_powerSetLdoRvTimeoutSel(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - uint8_t ldoRvTimeoutSel) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t regAddr = 0U; - uint8_t pwrRsrcIndex = 0U; - uint8_t bitMask = 0U; - Pmic_powerRsrcRegCfg_t *pPwrRsrcRegCfg = NULL; - - /* Get PMIC power resources Index and register configuration */ - Pmic_powerGetPwrRsrcIdxRegCfg(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &pwrRsrcIndex, - &pPwrRsrcRegCfg); - - regAddr = pPwrRsrcRegCfg[pwrRsrcIndex].ldoRvTimeOutRegAddr; - - pmicStatus = Pmic_powerValidateLdoRvTimeoutLimit(ldoRvTimeoutSel); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - bitMask = (uint8_t)(PMIC_REGULATOR_LDO_RV_TIMEOUT_SEL_BITFIELD \ - << pPwrRsrcRegCfg[pwrRsrcIndex].ldoRvTimeOutBitShiftVal); - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - regAddr, - ®Data); - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_setBitField( - ®Data, - pPwrRsrcRegCfg[pwrRsrcIndex].ldoRvTimeOutBitShiftVal, - bitMask, - ldoRvTimeoutSel); - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - regAddr, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return pmicStatus; -} - -/*! - * \brief This function is used to get LDO residual voltage check timeout - * for LDO - */ -static int32_t Pmic_powerGetLdoRvTimeoutSel( - Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - uint8_t *pLdoResVoltTimeout) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t regAddr = 0U; - uint8_t pwrRsrcIndex = 0U; - uint8_t bitMask = 0U; - Pmic_powerRsrcRegCfg_t *pPwrRsrcRegCfg = NULL; - - /* Get PMIC power resources Index and register configuration */ - Pmic_powerGetPwrRsrcIdxRegCfg(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &pwrRsrcIndex, - &pPwrRsrcRegCfg); - - regAddr = pPwrRsrcRegCfg[pwrRsrcIndex].ldoRvTimeOutRegAddr; - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - regAddr, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - bitMask = (uint8_t)(PMIC_REGULATOR_LDO_RV_TIMEOUT_SEL_BITFIELD \ - << pPwrRsrcRegCfg[pwrRsrcIndex].ldoRvTimeOutBitShiftVal); - *pLdoResVoltTimeout = - Pmic_getBitField( - regData, - pPwrRsrcRegCfg[pwrRsrcIndex].ldoRvTimeOutBitShiftVal, - bitMask); - } - - return pmicStatus; -} - -/*! - * \brief This function is used to set the Type of voltage monitoring for - * PGOOD signal - */ -static int32_t Pmic_powerSetPgoodWindow(Pmic_CoreHandle_t *pPmicCoreHandle, - bool pgoodWindow) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t pgoodWindowVal = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_PGOOD_SEL_4_REGADDR, - ®Data); - if(PMIC_ST_SUCCESS == status) - { - if(((bool)true) == pgoodWindow) - { - pgoodWindowVal = 1U; - } - - Pmic_setBitField(®Data, - PMIC_PGOOD_SEL_4_PGOOD_WINDOW_SHIFT, - PMIC_PGOOD_SEL_4_PGOOD_WINDOW_MASK, - pgoodWindowVal); - status = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_PGOOD_SEL_4_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - return status; -} - -/*! - * \brief This function is used to get the Type of voltage monitoring for - * PGOOD signal - */ -static int32_t Pmic_powerGetVoltageMonitoringPg( - Pmic_CoreHandle_t *pPmicCoreHandle, - bool *pPgoodWindow) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_PGOOD_SEL_4_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == status) - { - if(Pmic_getBitField(regData, - PMIC_PGOOD_SEL_4_PGOOD_WINDOW_SHIFT, - PMIC_PGOOD_SEL_4_PGOOD_WINDOW_MASK) != 0U) - { - *pPgoodWindow = (bool)true; - } - else - { - *pPgoodWindow = (bool)false; - } - - } - - return status; -} - -/*! - * \brief This function is used to set the PGOOD signal polarity - */ -static int32_t Pmic_powerSetPgoodPolarity(Pmic_CoreHandle_t *pPmicCoreHandle, - bool pgoodPolarity) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t pgoodPolarityVal = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_PGOOD_SEL_4_REGADDR, - ®Data); - if(PMIC_ST_SUCCESS == status) - { - if(((bool)true) == pgoodPolarity) - { - pgoodPolarityVal = 1U; - } - - Pmic_setBitField(®Data, - PMIC_PGOOD_SEL_4_PGOOD_POL_SHIFT, - PMIC_PGOOD_SEL_4_PGOOD_POL_MASK, - pgoodPolarityVal); - status = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_PGOOD_SEL_4_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - return status; -} - -/*! - * \brief This function is used to get the PGOOD signal polarity - */ -static int32_t Pmic_powerGetPgoodPolarity(Pmic_CoreHandle_t *pPmicCoreHandle, - bool *pPgoodPolarity) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_PGOOD_SEL_4_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == status) - { - if(Pmic_getBitField(regData, - PMIC_PGOOD_SEL_4_PGOOD_POL_SHIFT, - PMIC_PGOOD_SEL_4_PGOOD_POL_MASK) != 0U) - { - *pPgoodPolarity = (bool)true; - } - else - { - *pPgoodPolarity = (bool)false; - } - - } - - return status; -} - -/*! - * \brief This function is used to set Deglitch time for BUCKx_VMON/ - * LDOx_VMON/VCCA_VMON - */ -static int32_t Pmic_powerSetDeglitchTimeSel(Pmic_CoreHandle_t *pPmicCoreHandle, - bool deglitchTimeSel) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t deglitchTimeSelVal = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_VCCA_VMON_CTRL_REGADDR, - ®Data); - if(PMIC_ST_SUCCESS == status) - { - if(((bool)true) == deglitchTimeSel) - { - deglitchTimeSelVal = 1U; - } - - /* Set Deglitch time */ - Pmic_setBitField(®Data, - PMIC_VCCA_VMON_CTRL_VMON_DEGLITCH_SEL_SHIFT, - PMIC_VCCA_VMON_CTRL_VMON_DEGLITCH_SEL_MASK, - deglitchTimeSelVal); - status = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_VCCA_VMON_CTRL_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - return status; -} - -/*! - * \brief Get Deglitch time for BUCKx_VMON/LDOx_VMON/VCCA_VMON/VMONX - */ -static int32_t Pmic_powerGetDeglitchTimeSel(Pmic_CoreHandle_t *pPmicCoreHandle, - bool *pDeglitchTimeSel) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_VCCA_VMON_CTRL_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == status) - { - /* Get Deglitch time */ - if(Pmic_getBitField( - regData, - PMIC_VCCA_VMON_CTRL_VMON_DEGLITCH_SEL_SHIFT, - PMIC_VCCA_VMON_CTRL_VMON_DEGLITCH_SEL_MASK) != 0U) - { - *pDeglitchTimeSel = (bool)true; - } - else - { - *pDeglitchTimeSel = (bool)false; - } - - } - - return status; -} - -/*! - * \brief Get Trigger selection for Severe Error - */ -static int32_t Pmic_powerGetSevereErrorTrig(Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t *pSevereErrorTrig) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_FSM_TRIG_SEL_1_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == status) - { - *pSevereErrorTrig = Pmic_getBitField( - regData, - PMIC_FSM_TRIG_SEL_1_SEVERE_ERR_TRIG_SHIFT, - PMIC_FSM_TRIG_SEL_1_SEVERE_ERR_TRIG_MASK); - } - - return status; -} - -/*! - * \brief Get Trigger selection for OTHER rail group - */ -static int32_t Pmic_powerGetOtherRailTrig(Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t *pOtherRailTrig) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_FSM_TRIG_SEL_1_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == status) - { - *pOtherRailTrig = - Pmic_getBitField(regData, - PMIC_FSM_TRIG_SEL_1_OTHER_RAIL_TRIG_SHIFT, - PMIC_FSM_TRIG_SEL_1_OTHER_RAIL_TRIG_MASK); - } - - return status; -} - -/*! - * \brief Get Trigger selection for SOC rail group - */ -static int32_t Pmic_powerGetSocRailTrig(Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t *pSocRailTrig) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_FSM_TRIG_SEL_1_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == status) - { - *pSocRailTrig = - Pmic_getBitField(regData, - PMIC_FSM_TRIG_SEL_1_SOC_RAIL_TRIG_SHIFT, - PMIC_FSM_TRIG_SEL_1_SOC_RAIL_TRIG_MASK); - } - - return status; -} - -/*! - * \brief Get Trigger selection for MCU rail group - */ -static int32_t Pmic_powerGetMcuRailTrig(Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t *pMcuRailTrig) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_FSM_TRIG_SEL_1_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == status) - { - *pMcuRailTrig = - Pmic_getBitField(regData, - PMIC_FSM_TRIG_SEL_1_MCU_RAIL_TRIG_SHIFT, - PMIC_FSM_TRIG_SEL_1_MCU_RAIL_TRIG_MASK); - } - - return status; -} - -/*! - * \brief Get Trigger selection for Moderate error - */ -static int32_t Pmic_powerGetModerateRailTrig( - Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t *pModerateRailTrig) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_FSM_TRIG_SEL_2_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == status) - { - *pModerateRailTrig = Pmic_getBitField( - regData, - PMIC_FSM_TRIG_SEL_2_MODERATE_ERR_TRIG_SHIFT, - PMIC_FSM_TRIG_SEL_2_MODERATE_ERR_TRIG_MASK); - } - - return status; -} - -/*! - * \brief This function is used to validate the FSM trigger - */ -static int32_t Pmic_validateFsmTrig(uint8_t socRailTrig) -{ - int32_t status = PMIC_ST_SUCCESS; - - if(socRailTrig > PMIC_POWER_TRIG_SOC_PWR_ERR) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - return status; -} - -/*! - * \brief This function is used to Set the trigger selection for severe Error - */ -static int32_t Pmic_powerSetSevereErrorTrig(Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t severeErrorTrig) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - status = Pmic_validateFsmTrig(severeErrorTrig); - - if(PMIC_ST_SUCCESS == status) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_FSM_TRIG_SEL_1_REGADDR, - ®Data); - if(PMIC_ST_SUCCESS == status) - { - Pmic_setBitField(®Data, - PMIC_FSM_TRIG_SEL_1_SEVERE_ERR_TRIG_SHIFT, - PMIC_FSM_TRIG_SEL_1_SEVERE_ERR_TRIG_MASK, - severeErrorTrig); - status = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_FSM_TRIG_SEL_1_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return status; -} - -/*! - * \brief This function is used to Set trigger selection fro other rail group - */ -static int32_t Pmic_powerSetOtherRailTrig(Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t otherRailTrig) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - status = Pmic_validateFsmTrig(otherRailTrig); - - if(PMIC_ST_SUCCESS == status) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_FSM_TRIG_SEL_1_REGADDR, - ®Data); - if(PMIC_ST_SUCCESS == status) - { - Pmic_setBitField(®Data, - PMIC_FSM_TRIG_SEL_1_OTHER_RAIL_TRIG_SHIFT, - PMIC_FSM_TRIG_SEL_1_OTHER_RAIL_TRIG_MASK, - otherRailTrig); - status = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_FSM_TRIG_SEL_1_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return status; -} - -/*! - * \brief This function is used to Set the trigger selection for soc rail - * group - */ -static int32_t Pmic_powerSetSocRailTrig(Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t socRailTrig) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - status = Pmic_validateFsmTrig(socRailTrig); - - if(PMIC_ST_SUCCESS == status) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_FSM_TRIG_SEL_1_REGADDR, - ®Data); - if(PMIC_ST_SUCCESS == status) - { - Pmic_setBitField(®Data, - PMIC_FSM_TRIG_SEL_1_SOC_RAIL_TRIG_SHIFT, - PMIC_FSM_TRIG_SEL_1_SOC_RAIL_TRIG_MASK, - socRailTrig); - status = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_FSM_TRIG_SEL_1_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return status; -} - -/*! - * \brief This function is used to Set the trigger selection for mcu rail - * group - */ -static int32_t Pmic_powerSetMcuRailTrig(Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t mcuRailTrig) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - status = Pmic_validateFsmTrig(mcuRailTrig); - - if(PMIC_ST_SUCCESS == status) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_FSM_TRIG_SEL_1_REGADDR, - ®Data); - if(PMIC_ST_SUCCESS == status) - { - Pmic_setBitField(®Data, - PMIC_FSM_TRIG_SEL_1_MCU_RAIL_TRIG_SHIFT, - PMIC_FSM_TRIG_SEL_1_MCU_RAIL_TRIG_MASK, - mcuRailTrig); - status = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_FSM_TRIG_SEL_1_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return status; -} - -/*! - * \brief This function is used to Set the trigger selection for Moderate - * Error - */ -static int32_t Pmic_powerSetModerateRailTrig( - Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t moderateRailTrig) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - status = Pmic_validateFsmTrig(moderateRailTrig); - - if(PMIC_ST_SUCCESS == status) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_FSM_TRIG_SEL_2_REGADDR, - ®Data); - if(PMIC_ST_SUCCESS == status) - { - Pmic_setBitField(®Data, - PMIC_FSM_TRIG_SEL_2_MODERATE_ERR_TRIG_SHIFT, - PMIC_FSM_TRIG_SEL_2_MODERATE_ERR_TRIG_MASK, - moderateRailTrig); - status = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_FSM_TRIG_SEL_2_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return status; -} - -/*! - * \brief This function is to validate the power good source limit for the - * specific PMIC device. - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - */ -static int32_t Pmic_validatepGoodSrcType(uint8_t pmicDeviceType, - uint16_t pgoodSrc) -{ - int32_t status = PMIC_ST_SUCCESS; - - switch(pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - status = Pmic_validate_lp8764x_pGoodSrcType(pgoodSrc); - break; - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - status = Pmic_validate_tps6594x_pGoodSrcType(pgoodSrc); - break; - } - - return status; -} - -/*! - * \brief This function is to validate the power good source limit for the - * specific PMIC device and the core handle. - */ -static int32_t Pmic_validatePowerGoodParam( - const Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pgoodSrcSel) -{ - int32_t status = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle) - { - status = PMIC_ST_ERR_INV_HANDLE; - } - - if(status == PMIC_ST_SUCCESS) - { - status = Pmic_validatepGoodSrcType(pPmicCoreHandle->pmicDeviceType, - pgoodSrcSel); - } - - return status; -} -/*! - * \brief This function is to validate the power good signal source selection - * limit for the specific PMIC device. - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - */ -static int32_t Pmic_powerValidatePgoodSelType(uint8_t pmicDeviceType, - uint16_t pgoodSrcSel, - uint8_t pgoodSelType) -{ - int32_t status = PMIC_ST_SUCCESS; - - switch(pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - status = Pmic_validate_lp8764x_pGoodSelType(pgoodSrcSel, - pgoodSelType); - break; - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - status = Pmic_validate_tps6594x_pGoodSelType(pgoodSrcSel, - pgoodSelType); - break; - } - - return status; -} - -/*! - * \brief This function is used to get the PMIC power-good sources - * register configuration for the specific PMIC device. - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - */ -static void Pmic_powerGetPgoodSrcRegCfg( - uint8_t pmicDeviceType, - Pmic_powerPgoodSrcRegCfg_t **pPwrGoodSrcRegCfg) -{ - switch(pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - pmic_get_lp8764x_pwrPgoodSrcRegCfg(pPwrGoodSrcRegCfg); - break; - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - pmic_get_tps6594x_pwrPgoodSrcRegCfg(pPwrGoodSrcRegCfg); - break; - } -} - -/*! - * \brief This function is used to get the Bitmask value for source signal - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - * While adding support for New Power Good Src Type, developer - * need to update the API functionality for New Power Good Src - * Type accordingly. - */ -static void Pmic_getPgoodSelTypeBitmask(uint8_t pmicDeviceType, - uint16_t pgoodSrcSel, - uint8_t *pBitMask) -{ - uint8_t pGoodSrcType; - - pGoodSrcType = Pmic_powerGetPwrRsrcType(pgoodSrcSel); - switch(pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - if((PMIC_LP8764X_PGOOD_SOURCE_TYPE_NRSTOUT == pGoodSrcType) || - (PMIC_LP8764X_PGOOD_SOURCE_TYPE_NRSTOUT_SOC == - pGoodSrcType) || - (PMIC_LP8764X_PGOOD_SOURCE_TYPE_TDIE == pGoodSrcType) || - (PMIC_LP8764X_PGOOD_SOURCE_TYPE_VMON == pGoodSrcType) || - (PMIC_LP8764X_PGOOD_SOURCE_TYPE_VCCA == pGoodSrcType)) - { - *pBitMask = PMIC_PGOOD_SEL_PGOOD_SRC_BITFIELD; - } - else - { - /* Else case for Buck pGoodSrcType */ - *pBitMask = PMIC_PGOOD_SEL_PGOOD_SRC_REGULATOR_BITFIELD; - } - - break; - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - if((PMIC_TPS6594X_PGOOD_SOURCE_TYPE_NRSTOUT == pGoodSrcType) || - (PMIC_TPS6594X_PGOOD_SOURCE_TYPE_NRSTOUT_SOC == - pGoodSrcType) || - (PMIC_TPS6594X_PGOOD_SOURCE_TYPE_TDIE == pGoodSrcType) || - (PMIC_TPS6594X_PGOOD_SOURCE_TYPE_VCCA == pGoodSrcType)) - { - *pBitMask = PMIC_PGOOD_SEL_PGOOD_SRC_BITFIELD; - } - else - { - /* Else case for Buck and LDO pGoodSrcType */ - *pBitMask = PMIC_PGOOD_SEL_PGOOD_SRC_REGULATOR_BITFIELD; - } - - break; - } - -} - -/*! - * \brief This function is to set the source signal for power good signal - */ -static int32_t Pmic_setPgoodSelType(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pgoodSrcSel, - uint8_t pgoodSelType) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t pgoodSrcId = 0U; - uint8_t regAddr = 0U; - uint8_t bitMask = 0U; - uint8_t shiftVal = 0U; - - Pmic_powerPgoodSrcRegCfg_t *pPGoodSrcRegCfg = NULL; - - /* Get PMIC power-good sources register configuration */ - Pmic_powerGetPgoodSrcRegCfg(pPmicCoreHandle->pmicDeviceType, - &pPGoodSrcRegCfg); - - pgoodSrcId = Pmic_powerGetPwrRsrcId(pgoodSrcSel); - - Pmic_getPgoodSelTypeBitmask(pPmicCoreHandle->pmicDeviceType, - pgoodSrcSel, - &bitMask); - - regAddr = pPGoodSrcRegCfg[pgoodSrcId].regAddr; - shiftVal = pPGoodSrcRegCfg[pgoodSrcId].shiftValue; - bitMask = bitMask << shiftVal; - - status = Pmic_setPwrRsrcPgoodRegBitfieldCfg(pPmicCoreHandle, - regAddr, - pgoodSelType, - shiftVal, - bitMask); - - return status; -} - -/*! - * \brief This function is to get the source signal for power good signal - */ -static int32_t Pmic_getPgoodSelType(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pgoodSrcSel, - uint8_t *pPgoodSelType) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t pgoodSrcId; - uint8_t regAddr; - uint8_t bitMask; - uint8_t shiftVal; - uint8_t regData = 0U; - - Pmic_powerPgoodSrcRegCfg_t *pPGoodSrcRegCfg = NULL; - - /* Get PMIC power-good sources register configuration */ - Pmic_powerGetPgoodSrcRegCfg(pPmicCoreHandle->pmicDeviceType, - &pPGoodSrcRegCfg); - - pgoodSrcId = Pmic_powerGetPwrRsrcId(pgoodSrcSel); - - Pmic_getPgoodSelTypeBitmask(pPmicCoreHandle->pmicDeviceType, - pgoodSrcSel, - &bitMask); - - regAddr = pPGoodSrcRegCfg[pgoodSrcId].regAddr; - shiftVal = pPGoodSrcRegCfg[pgoodSrcId].shiftValue; - bitMask = bitMask << shiftVal; - - Pmic_criticalSectionStart(pPmicCoreHandle); - status = Pmic_commIntf_recvByte(pPmicCoreHandle, regAddr, ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == status) - { - *pPgoodSelType = Pmic_getBitField(regData, shiftVal, bitMask); - } - - return status; -} - -/*! - * \brief This function is used to get the thermal warning status. - */ -static int32_t Pmic_getThermalWarnStat(Pmic_CoreHandle_t *pPmicCoreHandle, - bool *pStateWarning) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regData; - - Pmic_criticalSectionStart(pPmicCoreHandle); - /* Reading the Thermal Status */ - - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_STAT_MISC_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == status) - { - *pStateWarning = (bool)true; - - if(Pmic_getBitField(regData, - PMIC_STAT_MISC_TWARN_STAT_SHIFT, - PMIC_STAT_MISC_TWARN_STAT_MASK) == 0U) - { - *pStateWarning = (bool)false; - } - - } - - return status; -} - -/*! - * \brief This function is used to get the oderly shutdown temperature status. - */ -static int32_t Pmic_getOderlyShutdownStat(Pmic_CoreHandle_t *pPmicCoreHandle, - bool *pStatOderlyShtDwn) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regData; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Reading the Thermal Status */ - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_STAT_MODERATE_ERR_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == status) - { - *pStatOderlyShtDwn = (bool)true; - - if(Pmic_getBitField( - regData, - PMIC_STAT_MODERATE_ERR_TSD_ORD_STAT_SHIFT, - PMIC_STAT_MODERATE_ERR_TSD_ORD_STAT_MASK) == 0U) - { - *pStatOderlyShtDwn = (bool)false; - } - - } - - return status; -} - -/*! - * \brief This function is used to get the immediate shutdown status. - */ -static int32_t Pmic_getImmediateShutdownStat( - Pmic_CoreHandle_t *pPmicCoreHandle, - bool *pStatImmShtDwn) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regData; - - Pmic_criticalSectionStart(pPmicCoreHandle); - /* Reading the Thermal Status */ - - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_STAT_SEVERE_ERR_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == status) - { - *pStatImmShtDwn = (bool)true; - - if(Pmic_getBitField(regData, - PMIC_STAT_SEVERE_ERR_TSD_IMM_STAT_SHIFT, - PMIC_STAT_SEVERE_ERR_TSD_IMM_STAT_MASK) == 0U) - { - *pStatImmShtDwn = (bool)false; - } - - } - - return status; -} - -/*! - * \brief This function is used to get the status for current limit for - * BUCK/LDO - */ -static int32_t Pmic_powerGetCurrentLimitLvlStat( - Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - bool *pCurrentLimitLvlStat) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t pwrRsrcIndex = 0U; - uint8_t bitMask = 0U; - Pmic_powerRsrcRegCfg_t *pPwrRsrcRegCfg = NULL; - - /* Get PMIC power resources Index and register configuration */ - Pmic_powerGetPwrRsrcIdxRegCfg(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &pwrRsrcIndex, - &pPwrRsrcRegCfg); - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].statusRegAddr, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - bitMask = (uint8_t)(PMIC_POWER_RESOURCE_STATUS_BITFIELD \ - << pPwrRsrcRegCfg[pwrRsrcIndex].iLimStatBitShift); - - *pCurrentLimitLvlStat = (bool)true; - - if(Pmic_getBitField( - regData, - pPwrRsrcRegCfg[pwrRsrcIndex].iLimStatBitShift, - bitMask) == 0U) - { - *pCurrentLimitLvlStat = (bool)false; - } - - } - - return pmicStatus; -} - -/*! - * \brief This function is used to get the status for under voltage threshold - */ -static int32_t Pmic_powerGetUnderVoltageTholdStat( - Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - bool *pUvTholdStat) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t pwrRsrcIndex = 0U; - uint8_t bitMask = 0U; - Pmic_powerRsrcRegCfg_t *pPwrRsrcRegCfg = NULL; - - /* Get PMIC power resources Index and register configuration */ - Pmic_powerGetPwrRsrcIdxRegCfg(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &pwrRsrcIndex, - &pPwrRsrcRegCfg); - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].statusRegAddr, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - bitMask = (uint8_t)(PMIC_POWER_RESOURCE_STATUS_BITFIELD \ - << pPwrRsrcRegCfg[pwrRsrcIndex].uvStatBitShift); - - *pUvTholdStat = (bool)true; - - if(Pmic_getBitField( - regData, - pPwrRsrcRegCfg[pwrRsrcIndex].uvStatBitShift, - bitMask) == 0U) - { - *pUvTholdStat = (bool)false; - } - - } - - return pmicStatus; -} - -/*! - * \brief This function is used to get the status for Over voltage threshold - */ -static int32_t Pmic_powerGetOverVoltageTholdStat( - Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - bool *pOvTholdStat) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t pwrRsrcIndex = 0U; - uint8_t bitMask = 0U; - Pmic_powerRsrcRegCfg_t *pPwrRsrcRegCfg = NULL; - - /* Get PMIC power resources Index and register configuration */ - Pmic_powerGetPwrRsrcIdxRegCfg(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &pwrRsrcIndex, - &pPwrRsrcRegCfg); - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte( - pPmicCoreHandle, - pPwrRsrcRegCfg[pwrRsrcIndex].statusRegAddr, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - bitMask = (uint8_t)(PMIC_POWER_RESOURCE_STATUS_BITFIELD \ - << pPwrRsrcRegCfg[pwrRsrcIndex].ovStatBitShift); - - *pOvTholdStat = (bool)true; - - if(Pmic_getBitField( - regData, - pPwrRsrcRegCfg[pwrRsrcIndex].ovStatBitShift, - bitMask) == 0U) - { - *pOvTholdStat = (bool)false; - } - - } - - return pmicStatus; -} - -/*! - * \brief This function is used to get the status for Over voltage Level for - * VCCA - */ -static int32_t Pmic_powerGetOverVoltageProtectionLvlStat( - Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - bool *pOvProtectionLvlStat) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t pwrRsrcIndex = 0U; - uint8_t bitMask = 0U; - Pmic_powerRsrcRegCfg_t *pPwrRsrcRegCfg = NULL; - - /* Get PMIC power resources Index and register configuration */ - Pmic_powerGetPwrRsrcIdxRegCfg(pPmicCoreHandle->pmicDeviceType, - pwrRsrc, - &pwrRsrcIndex, - &pPwrRsrcRegCfg); - - Pmic_criticalSectionStart(pPmicCoreHandle); - pmicStatus = Pmic_commIntf_recvByte( - pPmicCoreHandle, - PMIC_STAT_SEVERE_ERR_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - bitMask = (uint8_t)(PMIC_POWER_RESOURCE_STATUS_BITFIELD \ - << PMIC_STAT_SEVERE_ERR_VCCA_OVP_STAT_SHIFT); - - *pOvProtectionLvlStat = (bool)true; - - if(Pmic_getBitField( - regData, - PMIC_STAT_SEVERE_ERR_VCCA_OVP_STAT_SHIFT, - bitMask) == 0U) - { - *pOvProtectionLvlStat = (bool)false; - } - - } - - return pmicStatus; -} - -/*! - * \brief This function is used to write the Thermal Threshold value. - */ -static int32_t Pmic_writeThermalThreshold(Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t thermalTholdVal) -{ - int32_t status = PMIC_ST_SUCCESS; - - Pmic_criticalSectionStart(pPmicCoreHandle); - status = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_CONFIG_1_REGADDR, - thermalTholdVal); - Pmic_criticalSectionStop(pPmicCoreHandle); - - return status; -} - -/*! - * \brief This function is used to read the Thermal Threshold value. - */ -static int32_t Pmic_readThermalThreshold(Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t *pThermalTholdVal) -{ - int32_t status = PMIC_ST_SUCCESS; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Reading the thermal threshold register */ - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_CONFIG_1_REGADDR, - pThermalTholdVal); - - Pmic_criticalSectionStop(pPmicCoreHandle); - - return status; -} - -/*! - * \brief This function is used to set the thermal warning threshold - temperature value - */ -static int32_t Pmic_setThermalWarnThold(Pmic_CoreHandle_t *pPmicCoreHandle, - bool thermalWarnThold) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t thresholdRegvalue; - uint8_t thermalWarnTholdVal = 0U; - - status = Pmic_readThermalThreshold(pPmicCoreHandle, &thresholdRegvalue); - if(PMIC_ST_SUCCESS == status) - { - if(((bool)true) == thermalWarnThold) - { - thermalWarnTholdVal = 1U; - } - - Pmic_setBitField(&thresholdRegvalue, - PMIC_CONFIG_1_TWARN_LEVEL_SHIFT, - PMIC_CONFIG_1_TWARN_LEVEL_MASK, - thermalWarnTholdVal); - } - - if(PMIC_ST_SUCCESS == status) - { - status = Pmic_writeThermalThreshold(pPmicCoreHandle, thresholdRegvalue); - } - - return status; -} - -/*! - * \brief This function is used to set the thermal shutdown threshold - temperature value - */ -static int32_t Pmic_setThermalShutdownThold( - Pmic_CoreHandle_t *pPmicCoreHandle, - bool thermalShutdownThold) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t thresholdRegvalue; - uint8_t thermalShutdownTholdVal = 0U; - - status = Pmic_readThermalThreshold(pPmicCoreHandle, - &thresholdRegvalue); - if(((bool)true) == thermalShutdownThold) - { - thermalShutdownTholdVal = 1U; - } - - if(PMIC_ST_SUCCESS == status) - { - Pmic_setBitField(&thresholdRegvalue, - PMIC_CONFIG_1_TSD_ORD_LEVEL_SHIFT, - PMIC_CONFIG_1_TSD_ORD_LEVEL_MASK, - thermalShutdownTholdVal); - } - - if(PMIC_ST_SUCCESS == status) - { - status = Pmic_writeThermalThreshold(pPmicCoreHandle, - thresholdRegvalue); - } - - return status; -} - -/*! - * \brief This function is used to get the thermal warning threshold - temperature value - */ -static int32_t Pmic_getThermalWarnThold(Pmic_CoreHandle_t *pPmicCoreHandle, - bool *pThermalWarnThold) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t thresholdRegvalue; - - status = Pmic_readThermalThreshold(pPmicCoreHandle, &thresholdRegvalue); - if(PMIC_ST_SUCCESS == status) - { - if(Pmic_getBitField(thresholdRegvalue, - PMIC_CONFIG_1_TWARN_LEVEL_SHIFT, - PMIC_CONFIG_1_TWARN_LEVEL_MASK) !=0U) - { - *pThermalWarnThold = (bool)true; - } - else - { - *pThermalWarnThold = (bool)false; - } - - } - - return status; -} - -/*! - * \brief This function is used to get the thermal shutdown threshold - temperature value - */ -static int32_t Pmic_getThermalShutdownThold( - Pmic_CoreHandle_t *pPmicCoreHandle, - bool *pThermalShutdownThold) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t thresholdRegvalue; - - status = Pmic_readThermalThreshold(pPmicCoreHandle, - &thresholdRegvalue); - if(PMIC_ST_SUCCESS == status) - { - if(Pmic_getBitField( - thresholdRegvalue, - PMIC_CONFIG_1_TSD_ORD_LEVEL_SHIFT, - PMIC_CONFIG_1_TSD_ORD_LEVEL_MASK) != 0U) - { - *pThermalShutdownThold = (bool)true; - } - else - { - *pThermalShutdownThold = (bool)false; - } - - } - - return status; -} - -/*! - * \brief This function is to validate the power resource interrupt type - * for the specific PMIC device. - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - */ -static int32_t Pmic_powerValidateIntrType(uint8_t pmicDeviceType, - uint16_t pwrResource, - uint8_t intrType) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t pwrResourceType; - - pwrResourceType = Pmic_powerGetPwrRsrcType(pwrResource); - - switch(pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - status = Pmic_powerLP8764xValidateIntrType(pwrResourceType, - intrType); - break; - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - status = Pmic_powerTPS6594xValidateIntrType(pwrResourceType, - intrType); - break; - } - - return status; -} - -/*! - * \brief This function is to validate the Power interrupt - * range for the specific PMIC device. - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - */ -static int32_t Pmic_validateIntr(const Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t intrType) -{ - int32_t status = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle) - { - status = PMIC_ST_ERR_INV_HANDLE; - } - - if(PMIC_ST_SUCCESS == status) - { - switch(pPmicCoreHandle->pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - if(intrType > PMIC_LP8764X_POWER_COMMON_INTERRUPT_MAX) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - break; - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - if(intrType > PMIC_TPS6594X_POWER_COMMON_INTERRUPT_MAX) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - break; - } - } - - return status; -} - -/*! - * \brief This function is used to Enable/Disable Power resource Interrupt - */ -static int32_t Pmic_powerRsrcIntrEnable(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint16_t pwrResource, - bool intrEnable, - const uint8_t intrType) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t irqNum; - uint8_t pwrRsrcIndex; - Pmic_powerRsrcRegCfg_t *pPwrRsrcRegCfg = NULL; - - /* Get PMIC power resources Index and register configuration */ - Pmic_powerGetPwrRsrcIdxRegCfg(pPmicCoreHandle->pmicDeviceType, - pwrResource, - &pwrRsrcIndex, - &pPwrRsrcRegCfg); - - irqNum = pPwrRsrcRegCfg[pwrRsrcIndex].irqNumber; - irqNum = irqNum - intrType; - status = Pmic_irqMaskIntr(pPmicCoreHandle, irqNum, intrEnable); - - return status; -} - -/*! - * \brief This function is used to get the PMIC interrupt - * configuration for the specific PMIC device - * - * Note: In this API, the default PMIC device is assumed as TPS6594x - * LEO PMIC. While adding support for New PMIC device, developer - * need to update the API functionality for New PMIC device - * accordingly. - */ -static void Pmic_powerIntCfg(uint8_t pmicDeviceType, - Pmic_powerIntCfg_t **pPwrCommonIntCfg) -{ - switch(pmicDeviceType) - { - case PMIC_DEV_HERA_LP8764X: - pmic_get_lp8764x_pwrCommonIntCfg(pPwrCommonIntCfg); - break; - default: - /* Default case is valid only for TPS6594x LEO PMIC */ - pmic_get_tps6594x_pwrCommonIntCfg(pPwrCommonIntCfg); - break; - } -} - -/*! - * \brief This function is used to Enable/Disable Power Interrupt - */ -static int32_t Pmic_powerIntrEnable(Pmic_CoreHandle_t *pPmicCoreHandle, - bool intrEnable, - const uint8_t intrType) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_powerIntCfg_t *pPwrIntCfg = NULL; - - /* Get PMIC power interrupt configuration */ - Pmic_powerIntCfg(pPmicCoreHandle->pmicDeviceType, - &pPwrIntCfg); - - status = Pmic_irqMaskIntr(pPmicCoreHandle, - pPwrIntCfg[intrType].irqNum, - intrEnable); - - return status; -} - -/*! - * \brief This function is to configure the various control parameters - - * ldoBypassModeEn, ldoRvTimeoutSel, railGrpSel - */ -static int32_t Pmic_powerSetLdobypassenLdorvtoselRailgrpselCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrResource, - Pmic_PowerResourceCfg_t pwrResourceCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(((bool)true) == pmic_validParamCheck(pwrResourceCfg.validParams, - PMIC_CFG_REGULATOR_LDO_BYPASS_MODE_EN_VALID)) - { - pmicStatus = Pmic_powerValidatecfgDataPwrRsrctype( - PMIC_CFG_REGULATOR_LDO_BYPASS_MODE_EN_VALID, - pwrResource, - pPmicCoreHandle->pmicDeviceType); - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Set the mode for LDO regulator */ - pmicStatus = Pmic_powerSetLdoBypassModeEn( - pPmicCoreHandle, - pwrResource, - pwrResourceCfg.ldoBypassModeEn); - } - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pwrResourceCfg.validParams, - PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID))) - { - pmicStatus = Pmic_powerValidatecfgDataPwrRsrctype( - PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID, - pwrResource, - pPmicCoreHandle->pmicDeviceType); - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Set the residual voltage check timeout for LDO regulator */ - pmicStatus = Pmic_powerSetLdoRvTimeoutSel( - pPmicCoreHandle, - pwrResource, - pwrResourceCfg.ldoRvTimeoutSel); - } - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pwrResourceCfg.validParams, - PMIC_CFG_PWR_RESOURCE_RAIL_GRP_SEL_VALID))) - { - /* Rail selection for power resources */ - pmicStatus = Pmic_powerSetRailGrpSel(pPmicCoreHandle, - pwrResource, - pwrResourceCfg.railGrpSel); - } - - return pmicStatus; -} - -/*! - * \brief This function is to configure the various control parameters - - * regulatorEn, vmonEn, voltage_mV - */ -static int32_t Pmic_powerSetRegulatorenVmonenVoltagemvCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrResource, - Pmic_PowerResourceCfg_t pwrResourceCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(((bool)true) == pmic_validParamCheck(pwrResourceCfg.validParams, - PMIC_CFG_REGULATOR_EN_VALID)) - { - pmicStatus = Pmic_powerValidatecfgDataPwrRsrctype( - PMIC_CFG_REGULATOR_EN_VALID, - pwrResource, - pPmicCoreHandle->pmicDeviceType); - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Enable/Disable Regulator */ - pmicStatus = Pmic_powerSetRegulatorEn(pPmicCoreHandle, - pwrResource, - pwrResourceCfg.regulatorEn); - } - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pwrResourceCfg.validParams, - PMIC_CFG_VMON_EN_VALID))) - { - /* Enable/Disable Voltage monitor for all power resources */ - pmicStatus = Pmic_powerSetVmonEn(pPmicCoreHandle, - pwrResource, - pwrResourceCfg.vmonEn); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pwrResourceCfg.validParams, - PMIC_CFG_REGULATOR_VMON_VOLTAGE_SET_VALID))) - { - pmicStatus = Pmic_powerValidatecfgDataPwrRsrctype( - PMIC_CFG_REGULATOR_VMON_VOLTAGE_SET_VALID, - pwrResource, - pPmicCoreHandle->pmicDeviceType); - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Set the voltage level for regulator/ powergood voltage level - for VMON */ - pmicStatus = Pmic_powerSetVoltage(pPmicCoreHandle, - pwrResource, - pwrResourceCfg.voltage_mV); - } - } - - return pmicStatus; -} - -/** - * \brief API to set power resources configurations. - * - * Requirement: REQ_TAG(PDK-5829), REQ_TAG(PDK-5841), REQ_TAG(PDK-5848), - * REQ_TAG(PDK-9111), REQ_TAG(PDK-9163), REQ_TAG(PDK-9149), - * REQ_TAG(PDK-9159), REQ_TAG(PDK-9329) - * Design: did_pmic_power_cfg_readback - * Architecture: aid_pmic_power_cfg - * - * This function can be used to configure the various control and - * configuration parameters for BUCK/LDO/VCCA/VMON power resources and - * also used to set the various control and configuration of - * voltage monitor parameters for BUCK/LDO/VCCA/VMON power resources - * - * To set control and configuration params for BUCK, the application - * has to configure the below defined structure members of - * Pmic_PowerResourceCfg_t: - * rvCheckEn, buckPullDownEn, vmonEn, buckVoutRegSel, buckFpwmMode, - * buckFpwmMpMode, regulatorEn, buckCurrentLimit, - * buckVmonSlewRate, voltage_mV, pgUvThresholdLvl, - * pgOvThresholdLvl, railGrpSel - * - * To set control and configuration params for LDO, the application - * has to configure the below defined structure members of - * Pmic_PowerResourceCfg_t: - * rvCheckEn, vmonEn, regulatorEn, ldoPullDownSel, ldoSlowRampEn, - * ldoBypassModeEn, ldoRvTimeoutSel, voltage_mV, - * pgUvThresholdLvl, pgOvThresholdLvl, railGrpSel - * - * To set control and configuration params for VCCA, the application - * has to configure the below defined structure members of - * Pmic_PowerResourceCfg_t: - * vmonEn, vccaPwrGudLvl, pgUvThresholdLvl, - * pgOvThresholdLvl, railGrpSel - * - * To set control and configuration params for VMON, the application - * has to configure the below defined structure members of - * Pmic_PowerResourceCfg_t: - * rvCheckEn, vmonEn, vccaPwrGudLvl, vmonRange, - * pgUvThresholdLvl, pgOvThresholdLvl, railGrpSel, voltage_mV - * Valid only for LP8764x HERA Device - * Note: Application has to ensure configured regulator voltage is - * within the operating voltages of the connected component.If - * not configured properly then it may break the system or - * component - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pwrResource [IN] PMIC Power resource - * Valid values for TPS6594x Leo Device - * \ref Pmic_Tps6594xLeo_Power_Resource. - * Valid values for LP8764x HERA Device - * \ref Pmic_Lp8764xHera_Power_Resource. - * \param pwrResourceCfg [IN] Power Resource configuration for - * BUCK/LDO/VMON/VCCA - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_powerSetPwrResourceCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - const uint16_t pwrResource, - const Pmic_PowerResourceCfg_t pwrResourceCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - pmicStatus = Pmic_powerParamCheck(pPmicCoreHandle, pwrResource); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_powerSetPwrResourceCtrlCfg(pPmicCoreHandle, - pwrResource, - pwrResourceCfg); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_powerSetBuckVmonConfig(pPmicCoreHandle, - pwrResource, - pwrResourceCfg); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_powerSetPwrRsrcePgoodConfig(pPmicCoreHandle, - pwrResource, - pwrResourceCfg); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_powerSetLdobypassenLdorvtoselRailgrpselCfg( - pPmicCoreHandle, - pwrResource, - pwrResourceCfg); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_powerSetRegulatorenVmonenVoltagemvCfg( - pPmicCoreHandle, - pwrResource, - pwrResourceCfg); - } - - - return pmicStatus; -} - -/** - * \brief API to get power resources configurations - ldoBypassModeEn, - * ldoRvTimeoutSel, railGrpSel, voltage_mV - */ -static int32_t Pmic_powerGetLdobypassLdorvtoselRailgrpselVoltagemvCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - const uint16_t pwrResource, - Pmic_PowerResourceCfg_t *pPwrResourceCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(((bool)true) == pmic_validParamCheck(pPwrResourceCfg->validParams, - PMIC_CFG_REGULATOR_LDO_BYPASS_MODE_EN_VALID)) - { - pmicStatus = Pmic_powerValidatecfgDataPwrRsrctype( - PMIC_CFG_REGULATOR_LDO_BYPASS_MODE_EN_VALID, - pwrResource, - pPmicCoreHandle->pmicDeviceType); - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Get the mode for LDO regulator */ - pmicStatus = Pmic_powerGetLdoBypassModeEn( - pPmicCoreHandle, - pwrResource, - &(pPwrResourceCfg->ldoBypassModeEn)); - } - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pPwrResourceCfg->validParams, - PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID))) - { - pmicStatus = Pmic_powerValidatecfgDataPwrRsrctype( - PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID, - pwrResource, - pPmicCoreHandle->pmicDeviceType); - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Get the residual voltage check timeout for LDO regulator */ - pmicStatus = Pmic_powerGetLdoRvTimeoutSel( - pPmicCoreHandle, - pwrResource, - &(pPwrResourceCfg->ldoRvTimeoutSel)); - } - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pPwrResourceCfg->validParams, - PMIC_CFG_PWR_RESOURCE_RAIL_GRP_SEL_VALID))) - { - /* Get Rail selection for power resources */ - pmicStatus = Pmic_powerGetRailGrpSel( - pPmicCoreHandle, - pwrResource, - &(pPwrResourceCfg->railGrpSel)); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pPwrResourceCfg->validParams, - PMIC_CFG_REGULATOR_VMON_VOLTAGE_SET_VALID))) - { - pmicStatus = Pmic_powerValidatecfgDataPwrRsrctype( - PMIC_CFG_REGULATOR_VMON_VOLTAGE_SET_VALID, - pwrResource, - pPmicCoreHandle->pmicDeviceType); - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Get the voltage level of the regulator */ - pmicStatus = Pmic_powerGetVoltage(pPmicCoreHandle, - pwrResource, - &(pPwrResourceCfg->voltage_mV)); - } - } - - return pmicStatus; -} - -/** - * \brief API to get power resources configurations. - * - * Requirement: REQ_TAG(PDK-5829), REQ_TAG(PDK-5848), REQ_TAG(PDK-5850), - * REQ_TAG(PDK-9163) - * Design: did_pmic_power_cfg_readback - * Architecture: aid_pmic_power_cfg - * - * This function can be used to get the various control and - * configuration parameters for BUCK/LDO/VCCA/VMON power resources and - * also used to get the various control and configuration of - * voltage monitor parameters for BUCK/LDO/VCCA/VMON power resources - * - * Application can get these control and configuration params for BUCK, - * which is stored in the below defined structure members of - * Pmic_PowerResourceCfg_t: - * rvCheckEn, buckPullDownEn, vmonEn, buckVoutRegSel, buckFpwmMode, - * buckFpwmMpMode, regulatorEn, buckCurrentLimit, - * buckVmonSlewRate, voltage_mV, pgUvThresholdLvl, - * pgOvThresholdLvl, railGrpSel - * - * Application can get these control and configuration params for LDO, - * which is stored in the below defined structure members of - * Pmic_PowerResourceCfg_t: - * rvCheckEn, vmonEn, regulatorEn, ldoPullDownSel, ldoSlowRampEn, - * ldoBypassModeEn, ldoRvTimeoutSel, voltage_mV, - * pgUvThresholdLvl, pgOvThresholdLvl, railGrpSel - * - * Application can get these control and configuration params for VCCA, - * which is stored in the below defined structure members of - * Pmic_PowerResourceCfg_t: - * vmonEn, vccaPwrGudLvl, pgUvThresholdLvl, - * pgOvThresholdLvl, railGrpSel - * - * Application can get these control and configuration params for VMON, - * which is stored in the below defined structure members of - * Pmic_PowerResourceCfg_t: - * rvCheckEn, vmonEn, vccaPwrGudLvl, vmonRange, - * pgUvThresholdLvl, pgOvThresholdLvl, railGrpSel, voltage_mV - * Valid only for LP8764x HERA Device - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pwrResource [IN] PMIC Power resource - * Valid values for TPS6594x Leo Device - * \ref Pmic_Tps6594xLeo_Power_Resource. - * Valid values for LP8764x HERA Device - * \ref Pmic_Lp8764xHera_Power_Resource. - * \param pPwrResourceCfg [IN/OUT] Pointer to store Power Resource - * configuration for BUCK/LDO/VMON/VCCA - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_powerGetPwrResourceCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - const uint16_t pwrResource, - Pmic_PowerResourceCfg_t *pPwrResourceCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - pmicStatus = Pmic_powerParamCheck(pPmicCoreHandle, pwrResource); - - if(NULL == pPwrResourceCfg) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_powerGetPwrResourceCtrlCfg(pPmicCoreHandle, - pwrResource, - pPwrResourceCfg); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_powerGetBuckVmonConfig(pPmicCoreHandle, - pwrResource, - pPwrResourceCfg); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_powerGetPwrRsrcePgoodConfig(pPmicCoreHandle, - pwrResource, - pPwrResourceCfg); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_powerGetLdobypassLdorvtoselRailgrpselVoltagemvCfg( - pPmicCoreHandle, - pwrResource, - pPwrResourceCfg); - } - - return pmicStatus; -} - -/*! - * \brief This function is used to trigger selection for severe error, moderate - * error, soc rail group, mcu rail group and other rail group - */ -static int32_t Pmic_powerSetTriggerSelCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_PowerCommonCfg_t powerCommonCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(((bool)true) == pmic_validParamCheck(powerCommonCfg.validParams, - PMIC_SEVERE_ERR_TRIG_VALID)) - { - /* Set the trigger selection for severe Error */ - pmicStatus = Pmic_powerSetSevereErrorTrig( - pPmicCoreHandle, - powerCommonCfg.severeErrorTrig); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(powerCommonCfg.validParams, - PMIC_OTHER_RAIL_TRIG_VALID))) - { - /* Set trigger selection for other rail group */ - pmicStatus = Pmic_powerSetOtherRailTrig(pPmicCoreHandle, - powerCommonCfg.otherRailTrig); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(powerCommonCfg.validParams, - PMIC_SOC_RAIL_TRIG_VALID))) - { - /* Set the trigger selection for soc rail group */ - pmicStatus = Pmic_powerSetSocRailTrig(pPmicCoreHandle, - powerCommonCfg.socRailTrig); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(powerCommonCfg.validParams, - PMIC_MCU_RAIL_TRIG_VALID))) - { - /* Set the trigger selection for mcu rail group */ - pmicStatus = Pmic_powerSetMcuRailTrig(pPmicCoreHandle, - powerCommonCfg.mcuRailTrig); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(powerCommonCfg.validParams, - PMIC_MODERATE_ERR_TRIG_VALID))) - { - /* Set the trigger selection for Moderate Error */ - pmicStatus = Pmic_powerSetModerateRailTrig( - pPmicCoreHandle, - powerCommonCfg.moderateRailTrig); - } - - return pmicStatus; -} - - -/** - * \brief API to Set Power configuration - * - * Requirement: REQ_TAG(PDK-5829), REQ_TAG(PDK-5848), REQ_TAG(PDK_5847), - * REQ_TAG(PDK-9111), REQ_TAG(PDK-9149), REQ_TAG(PDK-9159), - * REQ_TAG(PDK-9329) - * Design: did_pmic_power_cfg_readback, did_pmic_power_pgood_cfg_readback - * Architecture: aid_pmic_power_cfg - * - * This function is used to set the power configuration - * parameters such as selection of type of voltage monitoring, and - * polarity of the power-good signal, deglitch time select for all - * power resources. - * - * Application can set the voltage monitoring for PGOOD - * by configuring the following structure members of - * Pmic_PowerCommonCfg_t: - * pgoodWindow - * - * Application can set the PGOOD signal polarity - * by configuring the following structure members of - * Pmic_PowerCommonCfg_t: - * pgoodPolarity - * - * Application can set the Deglitch time select for all power resources - * by configuring the following structure members of - * Pmic_PowerCommonCfg_t: - * deglitchTimeSel - * - * Application can set/select trigger selection for : - * severe Error, other rail group, soc rail group, mcu rail group and - * Moderate Error - * by configuring the following structure members of - * Pmic_PowerCommonCfg_t: - * severeErrorTrig, otherRailTrig, socRailTrig, mcuRailTrig - * moderateRailTrig - * - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param powerCommonCfg [IN] Power configuration. - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_powerSetCommonConfig(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_PowerCommonCfg_t powerCommonCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(powerCommonCfg.validParams, - PMIC_POWER_PGOOD_WINDOW_VALID))) - { - pmicStatus = Pmic_powerSetPgoodWindow(pPmicCoreHandle, - powerCommonCfg.pgoodWindow); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(powerCommonCfg.validParams, - PMIC_POWER_PGOOD_POL_VALID))) - { - /* Set PGOOD signal polarity */ - pmicStatus = Pmic_powerSetPgoodPolarity(pPmicCoreHandle, - powerCommonCfg.pgoodPolarity); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(powerCommonCfg.validParams, - PMIC_CFG_DEGLITCH_TIME_SEL_VALID))) - { - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev)) - { - pmicStatus = PMIC_ST_ERR_NOT_SUPPORTED; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Set Deglitch time select for BUCKx_VMON/LDOx_VMON/VCCA_VMON/VMONX */ - pmicStatus = Pmic_powerSetDeglitchTimeSel( - pPmicCoreHandle, - powerCommonCfg.deglitchTimeSel); - } - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Set Trigger selection for severe error, moderate error, soc rail - * group, mcu rail group and other rail group */ - pmicStatus = Pmic_powerSetTriggerSelCfg(pPmicCoreHandle, - powerCommonCfg); - } - - return pmicStatus; -} - -/*! - * \brief This function is used to get trigger selection for severe error, - * moderate error, soc rail group, mcu rail group and other rail group - */ -static int32_t Pmic_powerGetTriggerSelCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_PowerCommonCfg_t *pPowerCommonCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(((bool)true) == pmic_validParamCheck(pPowerCommonCfg->validParams, - PMIC_SEVERE_ERR_TRIG_VALID)) - { - /* get Trigger selection for Severe Error */ - pmicStatus = Pmic_powerGetSevereErrorTrig( - pPmicCoreHandle, - &(pPowerCommonCfg->severeErrorTrig)); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pPowerCommonCfg->validParams, - PMIC_OTHER_RAIL_TRIG_VALID))) - { - /* get Trigger selection for OTHER rail group */ - pmicStatus = Pmic_powerGetOtherRailTrig( - pPmicCoreHandle, - &(pPowerCommonCfg->otherRailTrig)); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pPowerCommonCfg->validParams, - PMIC_SOC_RAIL_TRIG_VALID))) - { - /* get Trigger selection for SOC rail group */ - pmicStatus = Pmic_powerGetSocRailTrig(pPmicCoreHandle, - &(pPowerCommonCfg->socRailTrig)); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pPowerCommonCfg->validParams, - PMIC_MCU_RAIL_TRIG_VALID))) - { - /* get Trigger selection for MCU rail group */ - pmicStatus = Pmic_powerGetMcuRailTrig(pPmicCoreHandle, - &(pPowerCommonCfg->mcuRailTrig)); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pPowerCommonCfg->validParams, - PMIC_MODERATE_ERR_TRIG_VALID))) - { - /* get Trigger selection for Moderate Error */ - pmicStatus = Pmic_powerGetModerateRailTrig( - pPmicCoreHandle, - &(pPowerCommonCfg->moderateRailTrig)); - } - - return pmicStatus; -} - -/** - * \brief API to Get Power configuration - * - * Requirement: REQ_TAG(PDK-5829), REQ_TAG(PDK-5848), REQ_TAG(PDK_5847) - * Design: did_pmic_power_cfg_readback, did_pmic_power_pgood_cfg_readback - * Architecture: aid_pmic_power_cfg - * - * This function is used to get the power configuration - * parameters such as selection of type of voltage monitoring, and - * polarity of the power-good signal, deglitch time select for all - * power resources. - * - * Application can get the voltage monitoring for PGOOD - * by configuring the following structure members of - * Pmic_PowerCommonCfg_t: - * pgoodWindow - * - * Application can get the PGOOD signal polarity - * by configuring the following structure members of - * Pmic_PowerCommonCfg_t: - * pgoodPolarity - * - * Application can get the Deglitch time select for all power resources - * by configuring the following structure members of - * Pmic_PowerCommonCfg_t: - * deglitchTimeSel - * - * Application can get trigger selection for : - * severe Error, other rail group, soc rail group, mcu rail group and - * Moderate Error - * by configuring the following structure members of - * Pmic_PowerCommonCfg_t: - * severeErrorTrig, otherRailTrig, socRailTrig, mcuRailTrig - * moderateRailTrig - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pPowerCommonCfg [IN/OUT] Pointer to hold Power configuration. - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_powerGetCommonConfig(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_PowerCommonCfg_t *pPowerCommonCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (NULL == pPowerCommonCfg)) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pPowerCommonCfg->validParams, - PMIC_POWER_PGOOD_WINDOW_VALID))) - { - /* Type of voltage monitoring for PGOOD signal */ - pmicStatus = Pmic_powerGetVoltageMonitoringPg( - pPmicCoreHandle, - &(pPowerCommonCfg->pgoodWindow)); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pPowerCommonCfg->validParams, - PMIC_POWER_PGOOD_POL_VALID))) - { - /* Get PGOOD signal polarity */ - pmicStatus = Pmic_powerGetPgoodPolarity( - pPmicCoreHandle, - &(pPowerCommonCfg->pgoodPolarity)); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pPowerCommonCfg->validParams, - PMIC_CFG_DEGLITCH_TIME_SEL_VALID))) - { - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev)) - { - pmicStatus = PMIC_ST_ERR_NOT_SUPPORTED; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* get Deglitch time select for BUCKx_VMON, LDOx_VMON and VCCA_VMON */ - pmicStatus = Pmic_powerGetDeglitchTimeSel( - pPmicCoreHandle, - &(pPowerCommonCfg->deglitchTimeSel)); - } - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Get Trigger selection for severe error, moderate error, - * soc rail group, mcu rail group and other rail group */ - pmicStatus = Pmic_powerGetTriggerSelCfg(pPmicCoreHandle, - pPowerCommonCfg); - } - - return pmicStatus; -} - -/** - * \brief API to Set Power good configuration - * - * Requirement: REQ_TAG(PDK-5847), REQ_TAG(PDK-9111) - * Design: did_pmic_power_pgood_cfg_readback - * Architecture: aid_pmic_power_cfg - * - * This function is used to control and configure the power good - * source control. For the - * following, power good signal control can be selected: - * All supported Bucks and Ldo by the PMIC, VCCA , thermal warning, - * nRSTOUT pin and nRSTOUT_SOC pin. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pgoodSrcSel [IN] Power Good Source. - * Valid values for TPS6594x Leo Device - * \ref Pmic_Tps6594xLeo_Pgood_Source. - * Valid values for LP8764x HERA Device - * \ref Pmic_Lp8764xHera_Pgood_Source. - * \param pgoodSelType [IN] Power Good configuration. - * Valid values for TPS6594x Leo Device - * For LDO/BUCK - * \ref Pmic_TPS6594x_Power_Good_Regulator_Signal - * For VCCA - * \ref Pmic_TPS6594x_Power_Good_Vcca - * For Thermal Warning - * \ref Pmic_TPS6594x_Power_Good_Thermal_Warn - * For nRSTOUT - * \ref Pmic_TPS6594x_Power_Good_Nrstout - * For nRSTOUT_SOC - * \ref Pmic_TPS6594x_Power_Good_Nrstout_Soc - * Valid values for LP8764x HERA Device - * For BUCK - * \ref Pmic_LP8764x_Power_Good_Buck_Signal - * For VCCA/VMON - * \ref Pmic_LP8764x_Power_Good_Vcca_Vmon - * For : Thermal Warning - * \ref Pmic_LP8764x_Power_Good_Thermal_Warn - * For nRSTOUT - * \ref Pmic_LP8764x_Power_Good_Nrstout - * For nRSTOUT_SOC - * \ref Pmic_LP8764x_Power_Good_Nrstout_Soc - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_powerSetConfigPowerGood(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint16_t pgoodSrcSel, - const uint8_t pgoodSelType) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - pmicStatus = Pmic_validatePowerGoodParam(pPmicCoreHandle, pgoodSrcSel); - - if(pmicStatus == PMIC_ST_SUCCESS) - { - pmicStatus = Pmic_powerValidatePgoodSelType( - pPmicCoreHandle->pmicDeviceType, - pgoodSrcSel, - pgoodSelType); - } - - if(pmicStatus == PMIC_ST_SUCCESS) - { - pmicStatus = Pmic_setPgoodSelType(pPmicCoreHandle, - pgoodSrcSel, - pgoodSelType); - } - - return pmicStatus; -} - -/** - * \brief Get Power good configuration - * - * Requirement: REQ_TAG(PDK-5847) - * Design: did_pmic_power_pgood_cfg_readback - * Architecture: aid_pmic_power_cfg - * - * This function is used to get various power good conifg. - * This funci=tion also provides the pgood source control for - * different power resources and pins. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pgoodSrcSel [IN] Power Good Source. - * Valid values for TPS6594x Leo Device - * \ref Pmic_Tps6594xLeo_Pgood_Source. - * Valid values for LP8764x HERA Device - * \ref Pmic_Lp8764xHera_Pgood_Source. - * \param pPgoodSelType [OUT] Power Good configuration. - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_powerGetConfigPowerGood(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint16_t pgoodSrcSel, - uint8_t *pPgoodSelType) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - pmicStatus = Pmic_validatePowerGoodParam(pPmicCoreHandle, pgoodSrcSel); - - if((pmicStatus == PMIC_ST_SUCCESS) && - (NULL == pPgoodSelType)) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - if(pmicStatus == PMIC_ST_SUCCESS) - { - pmicStatus = Pmic_getPgoodSelType(pPmicCoreHandle, - pgoodSrcSel, - pPgoodSelType); - } - - return pmicStatus; -} - -/** - * \brief API to get output under voltage, over voltage and VCCA Voltage level - * status - */ -static int32_t Pmic_powerGetUvOvVccaVoltageStat( - Pmic_CoreHandle_t *pPmicCoreHandle, - const uint16_t pwrResource, - uint8_t pwrRsrcType, - Pmic_PowerResourceStat_t *pPwrRsrcStatCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(((bool)true) == pmic_validParamCheck(pPwrRsrcStatCfg->validParams, - PMIC_POWER_RESOURCE_UV_STAT_VALID)) - { - /* Get the output under voltage status */ - pmicStatus = Pmic_powerGetUnderVoltageTholdStat( - pPmicCoreHandle, - pwrResource, - &(pPwrRsrcStatCfg->underVoltageTholdStat)); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pPwrRsrcStatCfg->validParams, - PMIC_POWER_RESOURCE_OV_STAT_VALID))) - { - /* Get the output over voltage status */ - pmicStatus = Pmic_powerGetOverVoltageTholdStat( - pPmicCoreHandle, - pwrResource, - &(pPwrRsrcStatCfg->overVoltageTholdStat)); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pPwrRsrcStatCfg->validParams, - PMIC_POWER_VCCA_OV_LVL_STAT_VALID))) - { - pmicStatus = Pmic_powerValidateVccaPwrRsrcType( - pPmicCoreHandle->pmicDeviceType, - pwrRsrcType); - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Get the voltage level status for VCCA */ - pmicStatus = Pmic_powerGetOverVoltageProtectionLvlStat( - pPmicCoreHandle, - pwrResource, - &(pPwrRsrcStatCfg->overVoltageProtectionLvlStat)); - } - } - - return pmicStatus; -} - -/** - * \brief API to get power resources status. - * - * Requirement: REQ_TAG(PDK-5829), REQ_TAG(PDK-5848), REQ_TAG(PDK-5850) - * Design: did_pmic_power_cfg_readback - * Architecture: aid_pmic_power_cfg - * - * This function can be used to get the status related to current limit - * , voltage over and under limit for BUCK/LDO/VCCA/VMON power - * resources - * - * Application can get the current limit status that if the output - * current is above current limit level for BUCK by configuring the - * following structure members of - * Pmic_PowerResourceStat_t: - * currentLimitLvlStat - * - * Application can get the output voltage status that if the - * output voltage is below undervoltage threshold for BUCK/LDO by - * configuring the following structure members of - * Pmic_PowerResourceStat_t : - * underVoltageTholdStat - * For VMON/VCCA the same member is used to get the input voltage - * status that if input voltage is below undervoltage level. - * - * Application can get the output voltage status that if the - * output voltage is above overvoltage threshold for BUCK/LDO by - * configuring the following structure members of - * Pmic_PowerResourceStat_t : - * overVoltageTholdStat - * For VMON/VCCA the same member is used to get the input voltage - * status that if input voltage is above overvoltage level. - * - * Application can get the VCCA voltage status that if the VCCA - * voltage is above overvoltage protection level by configuring the - * following structure members of - * Pmic_PowerResourceStat_t : - * overVoltageProtectionLvlStat - * - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pwrResource [IN] PMIC Power resource - * Valid values for TPS6594x Leo Device - * \ref Pmic_Tps6594xLeo_Power_Resource. - * Valid values for LP8764x HERA Device - * \ref Pmic_Lp8764xHera_Power_Resource. - * \param pPwrRsrcStatCfg [IN/OUT] Pointer to store Power Resource - * Status for BUCK/LDO/VMON/VCCA - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_powerGetPwrRsrcStat(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint16_t pwrResource, - Pmic_PowerResourceStat_t *pPwrRsrcStatCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t pwrRsrcType; - - pmicStatus = Pmic_powerParamCheck(pPmicCoreHandle, pwrResource); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pwrRsrcType = Pmic_powerGetPwrRsrcType(pwrResource); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (NULL == pPwrRsrcStatCfg)) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pPwrRsrcStatCfg->validParams, - PMIC_POWER_REGULATOR_ILIM_STAT_VALID))) - { - pmicStatus = Pmic_powerValidateBuckLdoPwrRsrcType( - pPmicCoreHandle->pmicDeviceType, - pwrRsrcType); - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Get the current limit level. */ - pmicStatus = Pmic_powerGetCurrentLimitLvlStat( - pPmicCoreHandle, - pwrResource, - &(pPwrRsrcStatCfg->currentLimitLvlStat)); - } - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Get the output under voltage and over voltage status */ - pmicStatus = Pmic_powerGetUvOvVccaVoltageStat(pPmicCoreHandle, - pwrResource, - pwrRsrcType, - pPwrRsrcStatCfg); - } - - return pmicStatus; -} - -/** - * \brief API to get PMIC die temperature thermal status. - * - * Requirement: REQ_TAG(PDK-5840) - * Design: did_pmic_power_thermal_cfg_readback - * Architecture: aid_pmic_power_cfg - * - * This function is used to get the thermal status of the PMIC - * (die temperature) - * - * Application can get the thermal status that if the die junction - * above the thermal warning level by - * configuring the following structure members of - * Pmic_PowerThermalStat_t: - * thermalStateWarning - * - * Application can get the thermal status that if the die junction - * above the thermal level causing a sequenced shutdown by - * configuring the following structure members of - * Pmic_PowerThermalStat_t: - * thermalStateOderlyShtDwn - * - * Application can get the thermal status that if the die junction - * above the thermal level causing an immediate shutdown by - * configuring the following structure members of - * Pmic_PowerThermalStat_t: - * thermalStateImmShtDwn - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pPwrThermalStatCfg [IN/OUT] Pointer to store Thermal - * configuration for PMIC - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_powerGetPwrThermalStat(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_PowerThermalStat_t *pPwrThermalStatCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (NULL == pPwrThermalStatCfg)) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pPwrThermalStatCfg->validParams, - PMIC_THERMAL_STAT_WARN_VALID))) - { - /* Get the thermal warning status */ - pmicStatus = Pmic_getThermalWarnStat( - pPmicCoreHandle, - &(pPwrThermalStatCfg->thermalStateWarning)); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pPwrThermalStatCfg->validParams, - PMIC_THERMAL_STAT_ORD_SHTDWN_VALID))) - { - /* Get the thermal oderly shutdown status */ - pmicStatus = Pmic_getOderlyShutdownStat( - pPmicCoreHandle, - &(pPwrThermalStatCfg->thermalStateOderlyShtDwn)); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pPwrThermalStatCfg->validParams, - PMIC_THERMAL_STAT_IMM_SHTDWN_VALID))) - { - /* Get the thermal immediate shutdown status */ - pmicStatus = Pmic_getImmediateShutdownStat( - pPmicCoreHandle, - &(pPwrThermalStatCfg->thermalStateImmShtDwn)); - } - - return pmicStatus; -} - -/** - * \brief API to configure the thermal temperature threshold level for PMIC. - * - * Requirement: REQ_TAG(PDK-5840), REQ_TAG(PDK-9111), REQ_TAG(PDK-9117) - * Design: did_pmic_power_thermal_cfg_readback - * Architecture: aid_pmic_power_cfg - * - * To configure the the thermal wrarning threshold temperature level, - * the application has to configure the below defined structure - * member of the Pmic_PowerThermalCfg_t: - * thermalWarnThold - * - * To configure the the thermal shutdown threshold temperature level, - * the application has to configure the below defined structure member - * of the Pmic_PowerThermalCfg_t: - * thermalShutdownThold - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param thermalThreshold [IN] Thermal Configuration. - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_powerSetThermalConfig( - Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_PowerThermalCfg_t thermalThreshold) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(thermalThreshold.validParams, - PMIC_THERMAL_WARN_VALID))) - { - /* Set the thermal warning threshold temperature value */ - pmicStatus = Pmic_setThermalWarnThold( - pPmicCoreHandle, - thermalThreshold.thermalWarnThold); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(thermalThreshold.validParams, - PMIC_THERMAL_SHTDWN_VALID))) - { - - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev)) - { - pmicStatus = PMIC_ST_ERR_NOT_SUPPORTED; - } - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Set the thermal shutdown threshold temperature value */ - pmicStatus = Pmic_setThermalShutdownThold( - pPmicCoreHandle, - thermalThreshold.thermalShutdownThold); - } - } - - return pmicStatus; -} - -/** - * \brief Get the PMIC thermal threshold value function. - * - * Requirement: REQ_TAG(PDK-5840), REQ_TAG(PDK-9117) - * Design: did_pmic_power_thermal_cfg_readback - * Architecture: aid_pmic_power_cfg - * - * This function is used to get the thermal temperature threshold - * value for the PMIC. - * - * To get the the thermal wrarning threshold temperature level, - * the application has to configure the below defined structure - * member of the Pmic_PowerThermalCfg_t: - * thermalWarnThold - * - * To get the the thermal shutdown threshold temperature level, - * the application has to configure the below defined structure member - * of the Pmic_PowerThermalCfg_t: - * thermalShutdownThold - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pThermalThreshold [IN/OUT] Pointer to hold Thermal Cfg - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_powerGetThermalConfig(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_PowerThermalCfg_t *pThermalThreshold) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (NULL == pThermalThreshold)) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pThermalThreshold->validParams, - PMIC_THERMAL_WARN_VALID))) - { - /* Get the thermal warning threshold temperature value */ - pmicStatus = Pmic_getThermalWarnThold( - pPmicCoreHandle, - &(pThermalThreshold->thermalWarnThold)); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)true) == pmic_validParamCheck(pThermalThreshold->validParams, - PMIC_THERMAL_SHTDWN_VALID))) - { - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev)) - { - pmicStatus = PMIC_ST_ERR_NOT_SUPPORTED; - } - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Get the thermal shutdown threshold temperature value */ - pmicStatus = Pmic_getThermalShutdownThold( - pPmicCoreHandle, - &(pThermalThreshold->thermalShutdownThold)); - } - } - - return pmicStatus; -} - -/*! - * \brief API to enable/disable Power interrupt. - * - * Requirement: REQ_TAG(PDK-5829), REQ_TAG(PDK-5848) - * Design: did_pmic_power_cfg_readback - * Architecture: aid_pmic_power_cfg - * - * This function is used to enable/disable thermal Interrupts - * - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pwrResource [IN] PMIC Power resource - * Valid values for TPS6594x Leo Device - * \ref Pmic_Tps6594xLeo_Power_Resource. - * Valid values for LP8764x HERA Device - * \ref Pmic_Lp8764xHera_Power_Resource - * \param intrType [IN] Interrupt type - * Valid values for TPS6594x Leo Device - * \ref Pmic_Tps6594x_PowerInterruptType - * Valid values for LP8764x HERA Device - * \ref Pmic_LP8764x_PowerInterruptType - * \param intrEnable [IN] Enable/Disable the interrupt. - * For Vaild values: - * \ref Pmic_PowerInterruptCfg - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_powerSetPwrRsrcIntr(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint16_t pwrResource, - const uint8_t intrType, - const bool intrEnable) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - pmicStatus = Pmic_powerParamCheck(pPmicCoreHandle, pwrResource); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_powerValidateIntrType(pPmicCoreHandle->pmicDeviceType, - pwrResource, - intrType); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_powerRsrcIntrEnable(pPmicCoreHandle, - pwrResource, - intrEnable, - intrType); - } - - return pmicStatus; -} - -/*! - * \brief API to enable/disable Power interrupt. - * - * Requirement: REQ_TAG(PDK-5841), REQ_TAG(PDK-5840) - * Design: did_pmic_power_cfg_readback, did_pmic_power_thermal_cfg_readback - * Architecture: aid_pmic_power_cfg - * - * This function is used to enable/disable power Interrupts - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param intrType [IN] Interrupt type - * Valid values for TPS6594x Leo Device - * \ref Pmic_Tps6594x_PowerInterruptCommonType - * Valid values for LP8764x HERA Device - * \ref Pmic_LP8764x_PowerInterruptCommonType - * \param intrEnable [IN] Enable/Disable the interrupt. - * For Vaild values: - * \ref Pmic_PowerInterruptCfg - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_powerSetIntr(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t intrType, - const bool intrEnable) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - pmicStatus = Pmic_validateIntr(pPmicCoreHandle, intrType); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_powerIntrEnable(pPmicCoreHandle, - intrEnable, - intrType); - } - - return pmicStatus; -} diff --git a/src/pmic_power_priv.h b/src/pmic_power_priv.h deleted file mode 100644 index 269461a..0000000 --- a/src/pmic_power_priv.h +++ /dev/null @@ -1,1018 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ - -/** - * \file pmic_power_priv.h - * - * \brief: This file contains macro definitions, structures and function - * prototypes for driver specific PMIC power configuration - */ - -#ifndef PMIC_POWER_PRIV_H_ -#define PMIC_POWER_PRIV_H_ - -/* ========================================================================== */ -/* Include Files */ -/* ========================================================================== */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* ========================================================================== */ -/* Macros & Typedefs */ -/* ========================================================================== */ - -/*! - * \brief BUCK Control Register Address - */ -#define PMIC_BUCK1_CTRL_REGADDR (0x04U) -#define PMIC_BUCK2_CTRL_REGADDR (0x06U) -#define PMIC_BUCK3_CTRL_REGADDR (0x08U) -#define PMIC_BUCK4_CTRL_REGADDR (0x0AU) -#define PMIC_BUCK5_CTRL_REGADDR (0x0CU) - -/*! - * \brief BUCK configuration Register Address - */ -#define PMIC_BUCK1_CONF_REGADDR (0x05U) -#define PMIC_BUCK2_CONF_REGADDR (0x07U) -#define PMIC_BUCK3_CONF_REGADDR (0x09U) -#define PMIC_BUCK4_CONF_REGADDR (0x0BU) -#define PMIC_BUCK5_CONF_REGADDR (0x0DU) - -/*! - * \brief BUCK voltage selection Register Address - */ -#define PMIC_BUCK1_VOUT_1_REGADDR (0x0EU) -#define PMIC_BUCK1_VOUT_2_REGADDR (0x0FU) -#define PMIC_BUCK2_VOUT_1_REGADDR (0x10U) -#define PMIC_BUCK2_VOUT_2_REGADDR (0x11U) -#define PMIC_BUCK3_VOUT_1_REGADDR (0x12U) -#define PMIC_BUCK3_VOUT_2_REGADDR (0x13U) -#define PMIC_BUCK4_VOUT_1_REGADDR (0x14U) -#define PMIC_BUCK4_VOUT_2_REGADDR (0x15U) -#define PMIC_BUCK5_VOUT_1_REGADDR (0x16U) -#define PMIC_BUCK5_VOUT_2_REGADDR (0x17U) - -/*! - * \brief BUCK power-good window Register Address - */ -#define PMIC_BUCK1_PG_WIN_REGADDR (0x18U) -#define PMIC_BUCK2_PG_WIN_REGADDR (0x19U) -#define PMIC_BUCK3_PG_WIN_REGADDR (0x1AU) -#define PMIC_BUCK4_PG_WIN_REGADDR (0x1BU) -#define PMIC_BUCK5_PG_WIN_REGADDR (0x1CU) - -/*! - * \brief LDO control Register Address - */ -#define PMIC_LDO1_CTRL_REGADDR (0x1DU) -#define PMIC_LDO2_CTRL_REGADDR (0x1EU) -#define PMIC_LDO3_CTRL_REGADDR (0x1FU) -#define PMIC_LDO4_CTRL_REGADDR (0x20U) - -/*! - * \brief LDORTC control Register Address - */ -#define PMIC_LDORTC_CTRL_REGADDR (0x22U) - -/*! - * \brief LDO voltage selection Register Address - */ -#define PMIC_LDO1_VOUT_REGADDR (0x23U) -#define PMIC_LDO2_VOUT_REGADDR (0x24U) -#define PMIC_LDO3_VOUT_REGADDR (0x25U) -#define PMIC_LDO4_VOUT_REGADDR (0x26U) - -/*! - * \brief LDO power-good window Register Address - */ -#define PMIC_LDO1_PG_WIN_REGADDR (0x27U) -#define PMIC_LDO2_PG_WIN_REGADDR (0x28U) -#define PMIC_LDO3_PG_WIN_REGADDR (0x29U) -#define PMIC_LDO4_PG_WIN_REGADDR (0x2AU) - -/*! - * \brief VCCA Vmon control and power-good window Register Address - */ -#define PMIC_VCCA_VMON_CTRL_REGADDR (0x2BU) -#define PMIC_VCCA_PG_WINDOW_REGADDR (0x2CU) - -/*! - * \brief PMIC PGOOD SEL Register Address - */ -#define PMIC_PGOOD_SEL_1_REGADDR (0x78U) -#define PMIC_PGOOD_SEL_2_REGADDR (0x79U) -#define PMIC_PGOOD_SEL_3_REGADDR (0x7AU) -#define PMIC_PGOOD_SEL_4_REGADDR (0x7BU) - -/*! - * \brief PMIC Power Interrupt Mask Register Address - */ -#define PMIC_MASK_BUCK1_2_REGADDR (0x49U) -#define PMIC_MASK_BUCK3_4_REGADDR (0x4AU) -#define PMIC_MASK_BUCK5_REGADDR (0x4BU) -#define PMIC_MASK_LDO1_2_REGADDR (0x4CU) -#define PMIC_MASK_LDO3_4_REGADDR (0x4DU) -#define PMIC_MASK_VMON_REGADDR (0x4EU) -#define PMIC_MASK_MISC_REGADDR (0x53U) - -/*! - * \brief PMIC Power status Register Address - */ -#define PMIC_STAT_BUCK1_2_REGADDR (0x6DU) -#define PMIC_STAT_BUCK3_4_REGADDR (0x6EU) -#define PMIC_STAT_BUCK5_REGADDR (0x6FU) -#define PMIC_STAT_LDO1_2_REGADDR (0x70U) -#define PMIC_STAT_LDO3_4_REGADDR (0x71U) -#define PMIC_STAT_VMON_REGADDR (0x72U) -#define PMIC_STAT_MISC_REGADDR (0x74U) -#define PMIC_STAT_MODERATE_ERR_REGADDR (0x75U) -#define PMIC_STAT_SEVERE_ERR_REGADDR (0x76U) - -/*! - * \brief PMIC RAIL SEL Register Address - */ -#define PMIC_RAIL_SEL_1_REGADDR (0x41U) -#define PMIC_RAIL_SEL_2_REGADDR (0x42U) -#define PMIC_RAIL_SEL_3_REGADDR (0x43U) - -/*! - * \brief PMIC LDO residual voltage timeout Register Address - */ -#define PMIC_LDO_RV_TIMEOUT_REG_1_REGADDR (0x8CU) -#define PMIC_LDO_RV_TIMEOUT_REG_2_REGADDR (0x8DU) - -/*! - * \brief FSM Register Address - */ -#define PMIC_FSM_TRIG_SEL_1_REGADDR (0x44U) -#define PMIC_FSM_TRIG_SEL_2_REGADDR (0x45U) - -/*! - * \brief FSM MASK Register Address - */ -#define PMIC_FSM_TRIG_MASK_1_REGADDR (0x46U) -#define PMIC_FSM_TRIG_MASK_2_REGADDR (0x47U) -#define PMIC_FSM_TRIG_MASK_3_REGADDR (0x48U) - -/*! - * \brief PMIC power voltage levels - */ -#define PMIC_POWER_VOLTAGE_300MV (uint16_t) (300U) -#define PMIC_POWER_VOLTAGE_580MV (uint16_t) (580U) -#define PMIC_POWER_VOLTAGE_600MV (uint16_t) (600U) -#define PMIC_POWER_VOLTAGE_1095MV (uint16_t) (1095U) -#define PMIC_POWER_VOLTAGE_1100MV (uint16_t) (1100U) -#define PMIC_POWER_VOLTAGE_1200MV (uint16_t) (1200U) -#define PMIC_POWER_VOLTAGE_1650MV (uint16_t) (1650U) -#define PMIC_POWER_VOLTAGE_1660MV (uint16_t) (1660U) -#define PMIC_POWER_VOLTAGE_3300MV (uint16_t) (3300U) -#define PMIC_POWER_VOLTAGE_3340MV (uint16_t) (3340U) -#define PMIC_POWER_VOLTAGE_3350MV (uint16_t) (3350U) -#define PMIC_POWER_VOLTAGE_5000MV (uint16_t) (5000U) - -/*! - * \brief PMIC power voltage step levels - */ -#define PMIC_POWER_VOLTAGE_STEP_5V (5U) -#define PMIC_POWER_VOLTAGE_STEP_10V (10U) -#define PMIC_POWER_VOLTAGE_STEP_20V (20U) -#define PMIC_POWER_VOLTAGE_STEP_25V (25U) -#define PMIC_POWER_VOLTAGE_STEP_50V (50U) - -/*! - * \brief PMIC power voltage minimum and maximum levels - */ -#define PMIC_POWER_BUCK_MIN_VOLTAGE (300U) -#define PMIC_POWER_BUCK_MAX_VOLTAGE (3340U) -#define PMIC_POWER_LDO1_2_3_MIN_VOLTAGE (600U) -#define PMIC_POWER_LDO4_MIN_VOLTAGE (1200U) -#define PMIC_POWER_LDO_MAX_VOLTAGE (3300U) - -/*! - * \brief PMIC power resources and vmon control bit fields. - */ -#define PMIC_POWER_RESOURCEX_CTRL_POWER_RESOURCEX_RV_SEL_SHIFT (7U) -#define PMIC_POWER_VCCA_VMON_CTRL_VMON1_RV_SEL_SHIFT (2U) -#define PMIC_POWER_VCCA_VMON_CTRL_VMON2_RV_SEL_SHIFT (4U) -#define PMIC_BUCKX_CTRL_BUCKX_PLDN_SHIFT (5U) -#define PMIC_LDOX_CTRL_LDOX_PLDN_SHIFT (5U) -#define PMIC_VCCA_VMON_CTRL_VMON_DEGLITCH_SEL_SHIFT (5U) -#define PMIC_REGULATOR_CTRL_REGULATOR_VMON_EN_SHIFT (4U) -#define PMIC_VCCA_VMON_CTRL_VCCA_VMON_EN_SHIFT (0U) -#define PMIC_VCCA_VMON_CTRL_VMON2_EN_SHIFT (3U) -#define PMIC_VCCA_VMON_CTRL_VMON1_EN_SHIFT (1U) -#define PMIC_BUCKX_CTRL_BUCKX_VSEL_SHIFT (3U) -#define PMIC_BUCKX_CTRL_BUCKX_FPWM_MP_SHIFT (2U) -#define PMIC_BUCKX_CTRL_BUCKX_FPWM_SHIFT (1U) -#define PMIC_LDOX_CTRL_LDOX_SLOW_RAMP_EN_SHIFT (1U) -#define PMIC_POWER_RESOURCEX_CTRL_POWER_RESOURCEX_EN_SHIFT (0U) - -/*! - * \brief PMIC power resources and vmon bit fields. - */ -#define PMIC_BUCKX_CONF_BUCKX_ILIM_SHIFT (3U) -#define PMIC_BUCKX_CONF_BUCKX_SLEW_RATE_SHIFT (0U) - -/*! - * \brief BUCK voltage selection bit fields - */ -#define PMIC_BUCKX_VOUT_X_BUCKX_VSETX_SHIFT (0U) - -/*! - * \brief PMIC Over and Under Voltage Threshold bit fields - */ -#define PMIC_POWER_RESOURCEX_PG_WINDOW_POWER_RESOURCEX_UV_THR_SHIFT (3U) -#define PMIC_POWER_RESOURCEX_PG_WINDOW_POWER_RESOURCEX_OV_THR_SHIFT (0U) - -/*! - * \brief PMIC LDORTC control bit fields - */ -#define PMIC_LDORTC_CTRL_LDORTC_DIS_SHIFT (0U) - -/*! - * \brief LDO VOUT register bit fields - */ -#define PMIC_LDO1_2_3_VOUT_LDO1_2_3_BYPASS_SHIFT (7U) -#define PMIC_LDO1_2_3_VOUT_LDO1_2_3_VSET_SHIFT (1U) -#define PMIC_LDO4_VOUT_LDO4_VSET_SHIFT (0U) - -/*! - * \brief PMIC Power-good level for VCCA pin bit fields - */ -#define PMIC_VCCA_PG_WINDOW_VCCA_PG_SET_SHIFT (6U) - -/*! - * \brief PMIC Rail select bit fields - */ -#define PMIC_RAIL_SEL_1_BUCK1_GRP_SEL_SHIFT (0U) -#define PMIC_RAIL_SEL_1_BUCK2_GRP_SEL_SHIFT (2U) -#define PMIC_RAIL_SEL_1_BUCK3_GRP_SEL_SHIFT (4U) -#define PMIC_RAIL_SEL_1_BUCK4_GRP_SEL_SHIFT (6U) -#define PMIC_RAIL_SEL_2_BUCK5_GRP_SEL_SHIFT (0U) -#define PMIC_RAIL_SEL_2_LDO1_GRP_SEL_SHIFT (2U) -#define PMIC_RAIL_SEL_2_LDO2_GRP_SEL_SHIFT (4U) -#define PMIC_RAIL_SEL_2_LDO3_GRP_SEL_SHIFT (6U) -#define PMIC_RAIL_SEL_3_LDO4_GRP_SEL_SHIFT (0U) -#define PMIC_RAIL_SEL_3_VCCA_GRP_SEL_SHIFT (2U) -#define PMIC_RAIL_SEL_3_VMON1_GRP_SEL_SHIFT (4U) -#define PMIC_RAIL_SEL_3_VMON2_GRP_SEL_SHIFT (6U) - -/*! - * \brief PMIC Rail bit field - */ -#define PMIC_RAIL_SEL_X_PWR_RSRC_X_GRP_SEL_BITFIELD (0x3U) - -/*! - * \brief PMIC Interrupt masking bit fields - */ -#define PMIC_MASK_BUCKX_Y_BUCK2_4_ILIM_MASK_SHIFT (7U) -#define PMIC_MASK_BUCKX_Y_BUCK2_4_UV_MASK_SHIFT (5U) -#define PMIC_MASK_BUCKX_Y_BUCK2_4_OV_MASK_SHIFT (4U) - -#define PMIC_MASK_BUCKX_Y_BUCK1_3_ILIM_MASK_SHIFT (3U) -#define PMIC_MASK_BUCKX_Y_BUCK1_3_UV_MASK_SHIFT (1U) -#define PMIC_MASK_BUCKX_Y_BUCK1_3_OV_MASK_SHIFT (0U) - -#define PMIC_MASK_BUCK5_BUCK5_ILIM_MASK_SHIFT (3U) -#define PMIC_MASK_BUCK5_BUCK5_UV_MASK_SHIFT (1U) -#define PMIC_MASK_BUCK5_BUCK5_OV_MASK_SHIFT (0U) - -#define PMIC_MASK_LDOX_Y_LDO2_4_ILIM_MASK_SHIFT (7U) -#define PMIC_MASK_LDOX_Y_LDO2_4_UV_MASK_SHIFT (5U) -#define PMIC_MASK_LDOX_Y_LDO2_4_OV_MASK_SHIFT (4U) - -#define PMIC_MASK_LDOX_Y_LDO1_3_ILIM_MASK_SHIFT (3U) -#define PMIC_MASK_LDOX_Y_LDO1_3_UV_MASK_SHIFT (1U) -#define PMIC_MASK_LDOX_Y_LDO1_3_OV_MASK_SHIFT (0U) - -#define PMIC_MASK_VMON_VCCA_UV_MASK_SHIFT (1U) -#define PMIC_MASK_VMON_VCCA_OV_MASK_SHIFT (0U) - -#define PMIC_MASK_VMON_VMON2_UV_MASK_SHIFT (6U) -#define PMIC_MASK_VMON_VMON2_OV_MASK_SHIFT (5U) - -#define PMIC_MASK_VMON_VMON1_UV_MASK_SHIFT (3U) -#define PMIC_MASK_VMON_VMON1_OV_MASK_SHIFT (2U) - -#define PMIC_MASK_MISC_TWARN_MASK_SHIFT (3U) - -/*! - * \brief PMIC Power Resource Interrupt bit field - */ -#define PMIC_PWR_RSRC_INTR_MASK_BITFIELD (1U) - -/*! - * \brief PMIC Power Resources Status bit fields - */ -#define PMIC_STAT_BUCKX_Y_BUCK2_4_ILIM_STAT_SHIFT (7U) -#define PMIC_STAT_BUCKX_Y_BUCK2_4_UV_STAT_SHIFT (5U) -#define PMIC_STAT_BUCKX_Y_BUCK2_4_OV_STAT_SHIFT (4U) - -#define PMIC_STAT_BUCKX_Y_BUCK1_3_ILIM_STAT_SHIFT (3U) -#define PMIC_STAT_BUCKX_Y_BUCK1_3_UV_STAT_SHIFT (1U) -#define PMIC_STAT_BUCKX_Y_BUCK1_3_OV_STAT_SHIFT (0U) - -#define PMIC_STAT_BUCK5_BUCK5_ILIM_STAT_SHIFT (3U) -#define PMIC_STAT_BUCK5_BUCK5_UV_STAT_SHIFT (1U) -#define PMIC_STAT_BUCK5_BUCK5_OV_STAT_SHIFT (0U) - -#define PMIC_STAT_LDOX_Y_LDO2_4_ILIM_STAT_SHIFT (7U) -#define PMIC_STAT_LDOX_Y_LDO2_4_UV_STAT_SHIFT (5U) -#define PMIC_STAT_LDOX_Y_LDO2_4_OV_STAT_SHIFT (4U) - -#define PMIC_STAT_LDOX_Y_LDO1_3_ILIM_STAT_SHIFT (3U) -#define PMIC_STAT_LDOX_Y_LDO1_3_UV_STAT_SHIFT (1U) -#define PMIC_STAT_LDOX_Y_LDO1_3_OV_STAT_SHIFT (0U) - -#define PMIC_STAT_VMON_VCCA_UV_STAT_SHIFT (1U) -#define PMIC_STAT_VMON_VCCA_OV_STAT_SHIFT (0U) - -#define PMIC_STAT_VMON_VMON2_UV_STAT_SHIFT (6U) -#define PMIC_STAT_VMON_VMON2_OV_STAT_SHIFT (5U) - -#define PMIC_STAT_VMON_VMON1_UV_STAT_SHIFT (3U) -#define PMIC_STAT_VMON_VMON1_OV_STAT_SHIFT (2U) -/*! - * \brief PMIC Power Resources Status bit field - */ -#define PMIC_POWER_RESOURCE_STATUS_BITFIELD (1U) -/*! - * \brief PMIC Thermal status for die bit fields - */ -#define PMIC_STAT_MISC_TWARN_STAT_SHIFT (3U) -#define PMIC_STAT_MODERATE_ERR_TSD_ORD_STAT_SHIFT (0U) -#define PMIC_STAT_SEVERE_ERR_TSD_IMM_STAT_SHIFT (0U) - -/*! - * \brief PMIC severe error for VCCA OV bit field - */ -#define PMIC_STAT_SEVERE_ERR_VCCA_OVP_STAT_SHIFT (1U) - -/*! - * \brief PMIC Power-good signal source control bit fields - */ -#define PMIC_PGOOD_SEL_1_PGOOD_SEL_BUCK1_SHIFT (0U) -#define PMIC_PGOOD_SEL_1_PGOOD_SEL_BUCK2_SHIFT (2U) -#define PMIC_PGOOD_SEL_1_PGOOD_SEL_BUCK3_SHIFT (4U) -#define PMIC_PGOOD_SEL_1_PGOOD_SEL_BUCK4_SHIFT (6U) -#define PMIC_PGOOD_SEL_2_PGOOD_SEL_BUCK5_SHIFT (0U) -#define PMIC_PGOOD_SEL_3_PGOOD_SEL_LDO1_SHIFT (0U) -#define PMIC_PGOOD_SEL_3_PGOOD_SEL_LDO2_SHIFT (2U) -#define PMIC_PGOOD_SEL_3_PGOOD_SEL_LDO3_SHIFT (4U) -#define PMIC_PGOOD_SEL_3_PGOOD_SEL_LDO4_SHIFT (6U) -#define PMIC_PGOOD_SEL_4_PGOOD_WINDOW_SHIFT (7U) -#define PMIC_PGOOD_SEL_4_PGOOD_POL_SHIFT (6U) -#define PMIC_PGOOD_SEL_4_PGOOD_SEL_NRSTOUT_SOC_SHIFT (5U) -#define PMIC_PGOOD_SEL_4_PGOOD_SEL_NRSTOUT_SHIFT (4U) -#define PMIC_PGOOD_SEL_4_PGOOD_SEL_TDIE_WARN_SHIFT (3U) -#define PMIC_PGOOD_SEL_4_PGOOD_SEL_VMON2_SHIFT (2U) -#define PMIC_PGOOD_SEL_4_PGOOD_SEL_VMON1_SHIFT (1U) -#define PMIC_PGOOD_SEL_4_PGOOD_SEL_VCCA_SHIFT (0U) - -/*! - * \brief PMIC Power-good signal source control bit field - */ -#define PMIC_PGOOD_SEL_PGOOD_SRC_BITFIELD (0x1U) -#define PMIC_PGOOD_SEL_PGOOD_SRC_REGULATOR_BITFIELD (0x3U) - -/*! - * \brief PMIC LDO residual voltage bit fields - */ -#define PMIC_LDO_RV_TIMEOUT_REG_LDO2_4_RV_TIMEOUT_SHIFT (4U) -#define PMIC_LDO_RV_TIMEOUT_REG_LDO1_3_RV_TIMEOUT_SHIFT (0U) - -/*! - * \brief PMIC FSM TRIG bit fields - */ -#define PMIC_FSM_TRIG_SEL_1_SEVERE_ERR_TRIG_SHIFT (6U) -#define PMIC_FSM_TRIG_SEL_1_OTHER_RAIL_TRIG_SHIFT (4U) -#define PMIC_FSM_TRIG_SEL_1_SOC_RAIL_TRIG_SHIFT (2U) -#define PMIC_FSM_TRIG_SEL_1_MCU_RAIL_TRIG_SHIFT (0U) -#define PMIC_FSM_TRIG_SEL_2_MODERATE_ERR_TRIG_SHIFT (0U) - -/*! - * \brief PMIC power resources and vmon control bit masks. - */ -#define PMIC_POWER_RESOURCEX_CTRL_POWER_RESOURCEX_RV_SEL_MASK \ - (uint8_t)(0x01U << \ - PMIC_POWER_RESOURCEX_CTRL_POWER_RESOURCEX_RV_SEL_SHIFT) -#define PMIC_POWER_VCCA_VMON_CTRL_VMON1_RV_SEL_MASK \ - (uint8_t)(0x01U << \ - PMIC_POWER_VCCA_VMON_CTRL_VMON1_RV_SEL_SHIFT) -#define PMIC_POWER_VCCA_VMON_CTRL_VMON2_RV_SEL_MASK \ - (uint8_t)(0x01U << \ - PMIC_POWER_VCCA_VMON_CTRL_VMON2_RV_SEL_SHIFT) -#define PMIC_BUCKX_CTRL_BUCKX_PLDN_MASK \ - (uint8_t)(0x01U << \ - PMIC_BUCKX_CTRL_BUCKX_PLDN_SHIFT) -#define PMIC_LDOX_CTRL_LDOX_PLDN_MASK \ - (uint8_t)(0x3U << \ - PMIC_LDOX_CTRL_LDOX_PLDN_SHIFT) -#define PMIC_VCCA_VMON_CTRL_VMON_DEGLITCH_SEL_MASK \ - (uint8_t)(0x01U << \ - PMIC_VCCA_VMON_CTRL_VMON_DEGLITCH_SEL_SHIFT) -#define PMIC_REGULATOR_CTRL_REGULATOR_VMON_EN_MASK \ - (uint8_t)(0x01U << \ - PMIC_REGULATOR_CTRL_REGULATOR_VMON_EN_SHIFT) -#define PMIC_VCCA_VMON_CTRL_VCCA_VMON_EN_MASK \ - (uint8_t)(0x01U << \ - PMIC_VCCA_VMON_CTRL_VCCA_VMON_EN_SHIFT) -#define PMIC_VCCA_VMON_CTRL_VMON2_EN_MASK \ - (uint8_t)(0x01U << \ - PMIC_VCCA_VMON_CTRL_VMON2_EN_SHIFT) -#define PMIC_VCCA_VMON_CTRL_VMON1_EN_MASK \ - (uint8_t)(0x01U << \ - PMIC_VCCA_VMON_CTRL_VMON1_EN_SHIFT) -#define PMIC_BUCKX_CTRL_BUCKX_VSEL_MASK \ - (uint8_t)(0x01U << \ - PMIC_BUCKX_CTRL_BUCKX_VSEL_SHIFT) -#define PMIC_BUCKX_CTRL_BUCKX_FPWM_MP_MASK \ - (uint8_t)(0x01U << \ - PMIC_BUCKX_CTRL_BUCKX_FPWM_MP_SHIFT) -#define PMIC_BUCKX_CTRL_BUCKX_FPWM_MASK \ - (uint8_t)(0x01U << \ - PMIC_BUCKX_CTRL_BUCKX_FPWM_SHIFT) -#define PMIC_LDOX_CTRL_LDOX_SLOW_RAMP_EN_MASK \ - (uint8_t)(0x01U << \ - PMIC_LDOX_CTRL_LDOX_SLOW_RAMP_EN_SHIFT) -#define PMIC_POWER_RESOURCEX_CTRL_POWER_RESOURCEX_EN_MASK \ - (uint8_t)(0x01U << \ - PMIC_POWER_RESOURCEX_CTRL_POWER_RESOURCEX_EN_SHIFT) - -/*! - * \brief PMIC power resources and vmon bit masks. - */ -#define PMIC_BUCKX_CONF_BUCKX_ILIM_MASK \ - (uint8_t)(0x07U << \ - PMIC_BUCKX_CONF_BUCKX_ILIM_SHIFT) -#define PMIC_BUCKX_CONF_BUCKX_SLEW_RATE_MASK \ - (uint8_t)(0x07U << \ - PMIC_BUCKX_CONF_BUCKX_SLEW_RATE_SHIFT) - -/*! - * \brief BUCK voltage selection bit masks - */ -#define PMIC_BUCKX_VOUT_X_BUCKX_VSETX_MASK \ - (uint8_t)(0xFFU << \ - PMIC_BUCKX_VOUT_X_BUCKX_VSETX_SHIFT) - -/*! - * \brief PMIC Over and Under Voltage Threshold bit masks - */ -#define PMIC_POWER_RESOURCEX_PG_WINDOW_POWER_RESOURCEX_UV_THR_MASK \ - (uint8_t)(0x7U << \ - PMIC_POWER_RESOURCEX_PG_WINDOW_POWER_RESOURCEX_UV_THR_SHIFT) -#define PMIC_POWER_RESOURCEX_PG_WINDOW_POWER_RESOURCEX_OV_THR_MASK \ - (uint8_t)(0x7U << \ - PMIC_POWER_RESOURCEX_PG_WINDOW_POWER_RESOURCEX_OV_THR_SHIFT) - -/*! - * \brief PMIC LDORTC control bit masks - */ -#define PMIC_LDORTC_CTRL_LDORTC_DIS_MASK \ - (uint8_t)(0x01U << \ - PMIC_LDORTC_CTRL_LDORTC_DIS_SHIFT) - -/*! - * \brief LDO VOUT register bit masks - */ -#define PMIC_LDO1_2_3_VOUT_LDO1_2_3_BYPASS_MASK \ - (uint8_t)(0x01U << \ - PMIC_LDO1_2_3_VOUT_LDO1_2_3_BYPASS_SHIFT) -#define PMIC_LDO1_2_3_VOUT_LDO1_2_3_VSET_MASK \ - (uint8_t)(0x3FU << \ - PMIC_LDO1_2_3_VOUT_LDO1_2_3_VSET_SHIFT) -#define PMIC_LDO4_VOUT_LDO4_VSET_MASK \ - (uint8_t)(0x7FU << \ - PMIC_LDO4_VOUT_LDO4_VSET_SHIFT) - -/*! - * \brief PMIC Power-good level for VCCA pin bit masks - */ -#define PMIC_VCCA_PG_WINDOW_VCCA_PG_SET_MASK \ - (uint8_t)(0x01U << \ - PMIC_VCCA_PG_WINDOW_VCCA_PG_SET_SHIFT) - -/*! - * \brief PMIC Rail select bit masks - */ -#define PMIC_RAIL_SEL_1_BUCK1_GRP_SEL_MASK (uint8_t)(0x03U << \ - PMIC_RAIL_SEL_1_BUCK1_GRP_SEL_SHIFT) -#define PMIC_RAIL_SEL_1_BUCK2_GRP_SEL_MASK (uint8_t)(0x03U << \ - PMIC_RAIL_SEL_1_BUCK2_GRP_SEL_SHIFT) -#define PMIC_RAIL_SEL_1_BUCK3_GRP_SEL_MASK (uint8_t)(0x03U << \ - PMIC_RAIL_SEL_1_BUCK3_GRP_SEL_SHIFT) -#define PMIC_RAIL_SEL_1_BUCK4_GRP_SEL_MASK (uint8_t)(0x03U << \ - PMIC_RAIL_SEL_1_BUCK4_GRP_SEL_SHIFT) -#define PMIC_RAIL_SEL_2_BUCK5_GRP_SEL_MASK (uint8_t)(0x03U << \ - PMIC_RAIL_SEL_2_BUCK5_GRP_SEL_SHIFT) -#define PMIC_RAIL_SEL_2_LDO1_GRP_SEL_MASK (uint8_t)(0x03U << \ - PMIC_RAIL_SEL_2_LDO1_GRP_SEL_SHIFT) -#define PMIC_RAIL_SEL_2_LDO2_GRP_SEL_MASK (uint8_t)(0x03U << \ - PMIC_RAIL_SEL_2_LDO2_GRP_SEL_SHIFT) -#define PMIC_RAIL_SEL_2_LDO3_GRP_SEL_MASK (uint8_t)(0x03U << \ - PMIC_RAIL_SEL_2_LDO3_GRP_SEL_SHIFT) -#define PMIC_RAIL_SEL_3_LDO4_GRP_SEL_MASK (uint8_t)(0x03U << \ - PMIC_RAIL_SEL_3_LDO4_GRP_SEL_SHIFT) -#define PMIC_RAIL_SEL_3_VCCA_GRP_SEL_MASK (uint8_t)(0x03U << \ - PMIC_RAIL_SEL_3_VCCA_GRP_SEL_SHIFT) -#define PMIC_RAIL_SEL_3_VMON1_GRP_SEL_MASK (uint8_t)(0x03U << \ - PMIC_RAIL_SEL_3_VMON1_GRP_SEL_SHIFT) -#define PMIC_RAIL_SEL_3_VMON2_GRP_SEL_MASK (uint8_t)(0x03U << \ - PMIC_RAIL_SEL_3_VMON2_GRP_SEL_SHIFT) - -/*! - * \brief PMIC Interrupt masking bit masks - */ - #define PMIC_MASK_BUCKX_Y_BUCK2_4_ILIM_MASK_MASK \ - (uint8_t)(0x01U << \ - PMIC_MASK_BUCKX_Y_BUCK2_4_ILIM_MASK_SHIFT) -#define PMIC_MASK_BUCKX_Y_BUCK2_4_UV_MASK_MASK \ - (uint8_t)(0x01U << \ - PMIC_MASK_BUCKX_Y_BUCK2_4_UV_MASK_SHIFT) -#define PMIC_MASK_BUCKX_Y_BUCK2_4_OV_MASK_MASK \ - (uint8_t)(0x01U << \ - PMIC_MASK_BUCKX_Y_BUCK2_4_OV_MASK_SHIFT) - -#define PMIC_MASK_BUCKX_Y_BUCK1_3_ILIM_MASK_MASK \ - (uint8_t)(0x01U << \ - PMIC_MASK_BUCKX_Y_BUCK1_3_ILIM_MASK_SHIFT) -#define PMIC_MASK_BUCKX_Y_BUCK1_3_UV_MASK_MASK \ - (uint8_t)(0x01U << \ - PMIC_MASK_BUCKX_Y_BUCK1_3_UV_MASK_SHIFT) -#define PMIC_MASK_BUCKX_Y_BUCK1_3_OV_MASK_MASK \ - (uint8_t)(0x01U << \ - PMIC_MASK_BUCKX_Y_BUCK1_3_OV_MASK_SHIFT) - -#define PMIC_MASK_BUCK5_BUCK5_ILIM_MASK_MASK \ - (uint8_t)(0x01U << \ - PMIC_MASK_BUCK5_BUCK5_ILIM_MASK_SHIFT) -#define PMIC_MASK_BUCK5_BUCK5_UV_MASK_MASK \ - (uint8_t)(0x01U << \ - PMIC_MASK_BUCK5_BUCK5_UV_MASK_SHIFT) -#define PMIC_MASK_BUCK5_BUCK5_OV_MASK_MASK \ - (uint8_t)(0x01U << \ - PMIC_MASK_BUCK5_BUCK5_OV_MASK_SHIFT - -#define PMIC_MASK_LDOX_Y_LDO2_4_ILIM_MASK_MASK \ - (uint8_t)(0x01U << \ - PMIC_MASK_LDOX_Y_LDO2_4_ILIM_MASK_SHIFT) -#define PMIC_MASK_LDOX_Y_LDO2_4_UV_MASK_MASK \ - (uint8_t)(0x01U << \ - PMIC_MASK_LDOX_Y_LDO2_4_UV_MASK_SHIFT) -#define PMIC_MASK_LDOX_Y_LDO2_4_OV_MASK_MASK \ - (uint8_t)(0x01U << \ - PMIC_MASK_LDOX_Y_LDO2_4_OV_MASK_SHIFT) - -#define PMIC_MASK_LDOX_Y_LDO1_3_ILIM_MASK_MASK \ - (uint8_t)(0x01U << \ - PMIC_MASK_LDOX_Y_LDO1_3_ILIM_MASK_SHIFT) -#define PMIC_MASK_LDOX_Y_LDO1_3_UV_MASK_MASK \ - (uint8_t)(0x01U << \ - PMIC_MASK_LDOX_Y_LDO1_3_UV_MASK_SHIFT) -#define PMIC_MASK_LDOX_Y_LDO1_3_OV_MASK_MASK \ - (uint8_t)(0x01U << \ - PMIC_MASK_LDOX_Y_LDO1_3_OV_MASK_SHIFT) - -#define PMIC_MASK_VMON_VCCA_UV_MASK_MASK \ - (uint8_t)(0x01U << \ - PMIC_MASK_VMON_VCCA_UV_MASK_SHIFT) -#define PMIC_MASK_VMON_VCCA_OV_MASK_MASK \ - (uint8_t)(0x01U << \ - PMIC_MASK_VMON_VCCA_OV_MASK_SHIFT) -#define PMIC_MASK_VMON_VMON2_UV_MASK_MASK \ - (uint8_t)(0x01U << \ - PMIC_MASK_VMON_VMON2_UV_MASK_SHIFT) -#define PMIC_MASK_VMON_VMON2_OV_MASK_MASK \ - (uint8_t)(0x01U << \ - PMIC_MASK_VMON_VMON2_OV_MASK_SHIFT) - -#define PMIC_MASK_VMON_VMON1_UV_MASK_MASK \ - (uint8_t)(0x01U << \ - PMIC_MASK_VMON_VMON1_UV_MASK_SHIFT) -#define PMIC_MASK_VMON_VMON1_OV_MASK_MASK \ - (uint8_t)(0x01U << \ - PMIC_MASK_VMON_VMON1_OV_MASK_SHIFT) - -#define PMIC_MASK_MISC_TWARN_MASK_MASK \ - (uint8_t)(0x01U << \ - PMIC_MASK_MISC_TWARN_MASK_SHIFT) -/*! - * \brief PMIC Power Resources Status bit masks - */ - #define PMIC_STAT_BUCKX_Y_BUCK2_4_ILIM_STAT_MASK \ - (uint8_t)(0x01U << \ - PMIC_STAT_BUCKX_Y_BUCK2_4_ILIM_STAT_SHIFT) -#define PMIC_STAT_BUCKX_Y_BUCK2_4_UV_STAT_MASK \ - (uint8_t)(0x01U << \ - PMIC_STAT_BUCKX_Y_BUCK2_4_UV_STAT_SHIFT) -#define PMIC_STAT_BUCKX_Y_BUCK2_4_OV_STAT_MASK \ - (uint8_t)(0x01U << \ - PMIC_STAT_BUCKX_Y_BUCK2_4_OV_STAT_SHIFT) - -#define PMIC_STAT_BUCKX_Y_BUCK1_3_ILIM_STAT_MASK \ - (uint8_t)(0x01U << \ - PMIC_STAT_BUCKX_Y_BUCK1_3_ILIM_STAT_SHIFT) -#define PMIC_STAT_BUCKX_Y_BUCK1_3_UV_STAT_MASK \ - (uint8_t)(0x01U << \ - PMIC_STAT_BUCKX_Y_BUCK1_3_UV_STAT_SHIFT) -#define PMIC_STAT_BUCKX_Y_BUCK1_3_OV_STAT_MASK \ - (uint8_t)(0x01U << \ - PMIC_STAT_BUCKX_Y_BUCK1_3_OV_STAT_SHIFT) - -#define PMIC_STAT_BUCK5_BUCK5_ILIM_STAT_MASK \ - (uint8_t)(0x01U << \ - PMIC_STAT_BUCK5_BUCK5_ILIM_STAT_SHIFT) -#define PMIC_STAT_BUCK5_BUCK5_UV_STAT_MASK \ - (uint8_t)(0x01U << \ - PMIC_STAT_BUCK5_BUCK5_UV_STAT_SHIFT) -#define PMIC_STAT_BUCK5_BUCK5_OV_STAT_MASK \ - (uint8_t)(0x01U << \ - PMIC_STAT_BUCK5_BUCK5_OV_STAT_SHIFT) - -#define PMIC_STAT_LDOX_Y_LDO2_4_ILIM_STAT_MASK \ - (uint8_t)(0x01U << \ - PMIC_STAT_LDOX_Y_LDO2_4_ILIM_STAT_SHIFT) -#define PMIC_STAT_LDOX_Y_LDO2_4_UV_STAT_MASK \ - (uint8_t)(0x01U << \ - PMIC_STAT_LDOX_Y_LDO2_4_UV_STAT_SHIFT) -#define PMIC_STAT_LDOX_Y_LDO2_4_OV_STAT_MASK \ - (uint8_t)(0x01U << \ - PMIC_STAT_LDOX_Y_LDO2_4_OV_STAT_SHIFT) - -#define PMIC_STAT_LDOX_Y_LDO1_3_ILIM_STAT_MASK \ - (uint8_t)(0x01U << \ - PMIC_STAT_LDOX_Y_LDO1_3_ILIM_STAT_SHIFT) -#define PMIC_STAT_LDOX_Y_LDO1_3_UV_STAT_MASK \ - (uint8_t)(0x01U << \ - PMIC_STAT_LDOX_Y_LDO1_3_UV_STAT_SHIFT) -#define PMIC_STAT_LDOX_Y_LDO1_3_OV_STAT_MASK \ - (uint8_t)(0x01U << \ - PMIC_STAT_LDOX_Y_LDO1_3_OV_STAT_SHIFT) - -#define PMIC_STAT_VMON_VCCA_UV_STAT_MASK \ - (uint8_t)(0x01U << \ - PMIC_STAT_VMON_VCCA_UV_STAT_SHIFT) -#define PMIC_STAT_VMON_VCCA_OV_STAT_MASK \ - (uint8_t)(0x01U << \ - PMIC_STAT_VMON_VCCA_OV_STAT_SHIFT) - -#define PMIC_STAT_VMON_VMON2_UV_STAT_MASK \ - (uint8_t)(0x01U << \ - PMIC_STAT_VMON_VMON2_UV_STAT_SHIFT) -#define PMIC_STAT_VMON_VMON2_OV_STAT_MASK \ - (uint8_t)(0x01U << \ - PMIC_STAT_VMON_VMON2_OV_STAT_SHIFT) - -#define PMIC_STAT_VMON_VMON1_UV_STAT_MASK \ - (uint8_t)(0x01U << \ - PMIC_STAT_VMON_VMON1_UV_STAT_SHIFT) -#define PMIC_STAT_VMON_VMON1_OV_STAT_MASK \ - (uint8_t)(0x01U << \ - PMIC_STAT_VMON_VMON1_OV_STAT_SHIFT) - -/*! - * \brief PMIC Thermal status for die bit masks - */ -#define PMIC_STAT_MISC_TWARN_STAT_MASK \ - (uint8_t)(0x01U << \ - PMIC_STAT_MISC_TWARN_STAT_SHIFT) -#define PMIC_STAT_MODERATE_ERR_TSD_ORD_STAT_MASK \ - (uint8_t)(0x01U << \ - PMIC_STAT_MODERATE_ERR_TSD_ORD_STAT_SHIFT) -#define PMIC_STAT_SEVERE_ERR_TSD_IMM_STAT_MASK \ - (uint8_t)(0x01U << \ - PMIC_STAT_SEVERE_ERR_TSD_IMM_STAT_SHIFT) -/*! - * \brief PMIC severe error for VCCA OV bit masks - */ -#define PMIC_STAT_SEVERE_ERR_VCCA_OVP_STAT_MASK \ - (uint8_t)(0x01U << \ - PMIC_STAT_SEVERE_ERR_VCCA_OVP_STAT_SHIFT) - -/*! - * \brief PMIC Power-good signal source control bit mask - */ -#define PMIC_PGOOD_SEL_1_PGOOD_SEL_BUCK1_MASK \ - (uint8_t)(0x03U << \ - PMIC_PGOOD_SEL_1_PGOOD_SEL_BUCK1_SHIFT) -#define PMIC_PGOOD_SEL_1_PGOOD_SEL_BUCK2_MASK \ - (uint8_t)(0x03U << \ - PMIC_PGOOD_SEL_1_PGOOD_SEL_BUCK2_SHIFT) -#define PMIC_PGOOD_SEL_1_PGOOD_SEL_BUCK3_MASK \ - (uint8_t)(0x03U << \ - PMIC_PGOOD_SEL_1_PGOOD_SEL_BUCK3_SHIFT) -#define PMIC_PGOOD_SEL_1_PGOOD_SEL_BUCK4_MASK \ - (uint8_t)(0x03U << \ - PMIC_PGOOD_SEL_1_PGOOD_SEL_BUCK4_SHIFT) -#define PMIC_PGOOD_SEL_2_PGOOD_SEL_BUCK5_MASK \ - (uint8_t)(0x03U << \ - PMIC_PGOOD_SEL_2_PGOOD_SEL_BUCK5_SHIFT) -#define PMIC_PGOOD_SEL_3_PGOOD_SEL_LDO1_MASK \ - (uint8_t)(0x03U << \ - PMIC_PGOOD_SEL_3_PGOOD_SEL_LDO1_SHIFT) -#define PMIC_PGOOD_SEL_3_PGOOD_SEL_LDO2_MASK \ - (uint8_t)(0x03U << \ - PMIC_PGOOD_SEL_3_PGOOD_SEL_LDO2_SHIFT) -#define PMIC_PGOOD_SEL_3_PGOOD_SEL_LDO3_MASK \ - (uint8_t)(0x03U << \ - PMIC_PGOOD_SEL_3_PGOOD_SEL_LDO3_SHIFT) -#define PMIC_PGOOD_SEL_3_PGOOD_SEL_LDO4_MASK \ - (uint8_t)(0x03U << \ - PMIC_PGOOD_SEL_3_PGOOD_SEL_LDO4_SHIFT) -#define PMIC_PGOOD_SEL_4_PGOOD_WINDOW_MASK \ - (uint8_t)(0x01U << \ - PMIC_PGOOD_SEL_4_PGOOD_WINDOW_SHIFT) -#define PMIC_PGOOD_SEL_4_PGOOD_POL_MASK \ - (uint8_t)(0x01U << \ - PMIC_PGOOD_SEL_4_PGOOD_POL_SHIFT) -#define PMIC_PGOOD_SEL_4_PGOOD_SEL_NRSTOUT_SOC_MASK \ - (uint8_t)(0x01U << \ - PMIC_PGOOD_SEL_4_PGOOD_SEL_NRSTOUT_SOC_SHIFT) -#define PMIC_PGOOD_SEL_4_PGOOD_SEL_NRSTOUT_MASK \ - (uint8_t)(0x01U << \ - PMIC_PGOOD_SEL_4_PGOOD_SEL_NRSTOUT_SHIFT) -#define PMIC_PGOOD_SEL_4_PGOOD_SEL_TDIE_WARN_MASK \ - (uint8_t)(0x01U << \ - PMIC_PGOOD_SEL_4_PGOOD_SEL_TDIE_WARN_SHIFT) -#define PMIC_PGOOD_SEL_4_PGOOD_SEL_VMON2_MASK \ - (uint8_t)(0x01U << \ - PMIC_PGOOD_SEL_4_PGOOD_SEL_VMON2_SHIFT) -#define PMIC_PGOOD_SEL_4_PGOOD_SEL_VMON1_MASK \ - (uint8_t)(0x01U << \ - PMIC_PGOOD_SEL_4_PGOOD_SEL_VMON1_SHIFT) -#define PMIC_PGOOD_SEL_4_PGOOD_SEL_VCCA_MASK \ - (uint8_t)(0x01U << \ - PMIC_PGOOD_SEL_4_PGOOD_SEL_VCCA_SHIFT) - -/*! - * \brief PMIC LDO residual voltage bit masks - */ -#define PMIC_LDO_RV_TIMEOUT_REG_LDO2_4_RV_TIMEOUT_MASK \ - (uint8_t)(0x0FU << \ - PMIC_LDO_RV_TIMEOUT_REG_LDO2_4_RV_TIMEOUT_SHIFT) -#define PMIC_LDO_RV_TIMEOUT_REG_LDO1_3_RV_TIMEOUT_MASK \ - (uint8_t)(0x0FU << \ - PMIC_LDO_RV_TIMEOUT_REG_LDO1_3_RV_TIMEOUT_SHIFT) - -/*! - * \brief PMIC FSM TRIG bit fields masks - */ -#define PMIC_FSM_TRIG_SEL_1_SEVERE_ERR_TRIG_MASK \ - (uint8_t)(0x03U << \ - PMIC_FSM_TRIG_SEL_1_SEVERE_ERR_TRIG_SHIFT) -#define PMIC_FSM_TRIG_SEL_1_OTHER_RAIL_TRIG_MASK \ - (uint8_t)(0x03U << \ - PMIC_FSM_TRIG_SEL_1_OTHER_RAIL_TRIG_SHIFT) -#define PMIC_FSM_TRIG_SEL_1_SOC_RAIL_TRIG_MASK \ - (uint8_t)(0x03FU << \ - PMIC_FSM_TRIG_SEL_1_SOC_RAIL_TRIG_SHIFT) -#define PMIC_FSM_TRIG_SEL_1_MCU_RAIL_TRIG_MASK \ - (uint8_t)(0x03U << \ - PMIC_FSM_TRIG_SEL_1_MCU_RAIL_TRIG_SHIFT) -#define PMIC_FSM_TRIG_SEL_2_MODERATE_ERR_TRIG_MASK \ - (uint8_t)(0x03U << \ - PMIC_FSM_TRIG_SEL_2_MODERATE_ERR_TRIG_SHIFT) - -/*! - * \brief PMIC power VSET Range Values - */ -#define PMIC_POWER_VSET_VAL_0xE (0xEU) -#define PMIC_POWER_VSET_VAL_0xF (0xFU) -#define PMIC_POWER_VSET_VAL_0x1D (0x1DU) -#define PMIC_POWER_VSET_VAL_0x72 (0x72U) -#define PMIC_POWER_VSET_VAL_0x73 (0x73U) -#define PMIC_POWER_VSET_VAL_0xAA (0xAAU) -#define PMIC_POWER_VSET_VAL_0xAB (0xABU) -#define PMIC_POWER_VSET_VAL_0xFF (0xFFU) - -/*! - * \brief PMIC power VSET Values - */ -#define PMIC_POWER_VSET_VAL_0x0 (0x0U) -#define PMIC_POWER_VSET_VAL_0x4 (0x4U) -#define PMIC_POWER_VSET_VAL_0x20 (0x20U) - -/*! - * \brief Bit field Value for buckFreq - */ -#define PMIC_POWER_BUCKX_FREQ_SEL_BITFIELD (1U) - -/*==========================================================================*/ -/* Structures and Enums */ -/*==========================================================================*/ -/** - * \brief PMIC power resource details object structure - * - * \param ctrlRegAddr Control Register address of the power resources - * - * \param configRegAddr Configuration Register address of the power - * resources - * - * \param vout1RegAddr Register address of the power resource to set - * the Voltage when output voltage register is - * selected as VOUT1 - * - * \param vout2RegAddr Register address of the power resource to set - * the Voltage when output voltage register is - * selected as VOUT2 - * - * \param pgWindowRegAddr Register address of the power resource to - * configure PowerGood Window configuration values. - * - * \param irqRegAddr Interrupt masking/unmasking register address of - * the power resource - * - * \param statusRegAddr Status Register address of the power resource - * which indicates when output volatage is above - * over volatge, below under voltage and above - * current limit level - * - * \param railGrpRegAddr Rail group selection Register address of the - * power resources - * - * \param railGrpBitShiftVal Shift bits for the rail group selection of - * the power resources - * - * \param ldoRvTimeOutRegAddr Residual voltage timeout register address of - * the LDO power regulator. - * - * \param ldoRvTimeOutBitShiftVal - * Shift bits for the Residual voltage timeout for - * the LDO power regulator. - * - */ -typedef struct Pmic_powerResourceRegCfg_s -{ - uint8_t ctrlRegAddr; - uint8_t configRegAddr; - uint8_t vout1RegAddr; - uint8_t vout2RegAddr; - uint8_t pgWindowRegAddr; - uint8_t irqNumber; - uint8_t statusRegAddr; - uint8_t railGrpRegAddr; - uint8_t railGrpBitShiftVal; - uint8_t ldoRvTimeOutRegAddr; - uint8_t ldoRvTimeOutBitShiftVal; - uint8_t iLimStatBitShift; - uint8_t uvStatBitShift; - uint8_t ovStatBitShift; -}Pmic_powerRsrcRegCfg_t; - -/** - * \brief PMIC power resource details object structure - * - * \param regAddr Register address of the Pgood sources. - * - * \param maskValue Register mask value for the Pgood sources. - * - * \param shiftValue Shift bits for the Pgood sources. - * - * - */ -typedef struct Pmic_powerPgoodSrcRegCfg_s -{ - uint8_t regAddr; - uint8_t shiftValue; -}Pmic_powerPgoodSrcRegCfg_t; - -/** - * \brief PMIC power interrupts Numbers - * - * \param inqNum Interrupt number for respective interrupt - */ -typedef struct Pmic_powerIntCfg_s -{ - uint8_t irqNum; - -}Pmic_powerIntCfg_t; - -/*==========================================================================*/ -/* Function Declarations */ -/*==========================================================================*/ - -/*! - * \brief This function is used to get the id of power resource. - * BUCK1/BUCK2/LDO1...etc - */ -static inline uint8_t Pmic_powerGetPwrRsrcId(uint16_t pwrRsrc) -{ - uint8_t pwrRsrcId; - pwrRsrcId = (uint8_t)(pwrRsrc & 0xFFU); - - return pwrRsrcId; -} - -/*! - * \brief This function is used to get the type of power resource. - * BUCK/LDO/VCCA/VMON - */ -static inline uint8_t Pmic_powerGetPwrRsrcType(uint16_t pwrRsrc) -{ - uint8_t pwrRsrcType; - pwrRsrcType = (uint8_t)((pwrRsrc >> 0x8U) & 0xFFU); - - return pwrRsrcType; -} - -/*! - * \brief This function is used to get OV/UV voltage monitoring range for - * VMON2 and VMON1 - */ -int32_t Pmic_powerGetVmonRange(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t pwrRsrc, - bool *pVmonRange); - -/*! - * \brief This function is used to convert the millivolt value to vset value - * for BUCK/VMON (For VMON : When range = 0) - */ -int32_t Pmic_powerBuckVmonConvertVoltage2VSetVal(uint16_t millivolt, - uint16_t *pBaseMillivolt, - uint8_t *pMillivoltStep, - uint8_t *pBaseVoutCode); - -/*! - * \brief This function is used to convert the millivolt value to vset value - * for LDO Regulators - */ -void Pmic_powerLdoConvertVoltage2VSetVal(uint16_t pwrRsrc, - uint16_t *pBaseMillivolt, - uint8_t *pMillivoltStep, - uint8_t *pBaseVoutCode); - -/*! - * \brief This function is used to convert the millivolt value to vset code - * when the selected voltage monitoring range for VMON is - * PMIC_LP8764X_VMON_RANGE_3V35_5V - */ -void Pmic_powerVmonRange1ConvertVoltage2VSetVal(uint16_t *pBaseMillivolt, - uint8_t *pMillivoltStep, - uint8_t *pBaseVoutCode); - -/*! - * \brief This function is used to convert the vset value to voltage in mv - for BUCK/VMON - */ -void Pmic_powerBuckVmonConvertVSetVal2Voltage(const uint8_t *pVSetVal, - uint16_t *pBaseMillivolt, - uint8_t *pMillivoltStep, - uint8_t *pBaseVoutCode); - -/*! - * \brief This function is used to convert the vset value to voltage in mv - * for LDO - */ -void Pmic_powerLdoConvertVSetVal2Voltage(uint16_t pwrRsrc, - uint16_t *pBaseMillivolt, - uint8_t *pMillivoltStep, - uint8_t *pBaseVoutCode); - -/*! - * \brief This function is used to convert the vset value to voltage in mv - * when the selected voltage monitoring range for VMON is - * PMIC_LP8764X_VMON_RANGE_3V35_5V - */ -void Pmic_powerVmonRange1ConvertVSetVal2Voltage(uint16_t *pBaseMillivolt, - uint8_t *pMillivoltStep, - uint8_t *pBaseVoutCode); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif/* PMIC_POWER_PRIV_H_ */ diff --git a/src/pmic_rtc.c b/src/pmic_rtc.c deleted file mode 100644 index 16a3145..0000000 --- a/src/pmic_rtc.c +++ /dev/null @@ -1,3450 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ - -/** - * \file pmic_rtc.c - * - * \brief This file contains APIs definitions for PMIC Real Time Clock(RTC) - * to set/get time calendar register, set/get alarm/timer interrupt - * and to enable/disable RTC. - */ -#include -#include -#include - -/*! - * \brief This function is used to set the RTC/Alarm seconds. - */ -static int32_t Pmic_rtcSetSeconds(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_RtcTime_t timeCfg, - bool operation_type) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Operation for Alarm */ - if(PMIC_RTC_OPS_FOR_ALARM == operation_type) - { - /* Writing seconds to PMIC */ - Pmic_setBitField(®Data, - PMIC_ALARM_SECONDS_ALR_SECOND_1_SHIFT, - PMIC_ALARM_SECONDS_ALR_SECOND_1_MASK, - (timeCfg.seconds / - PMIC_RTC_CONVERT_4BIT_MSB_TO_DEC)); - Pmic_setBitField(®Data, - PMIC_ALARM_SECONDS_ALR_SECOND_0_SHIFT, - PMIC_ALARM_SECONDS_ALR_SECOND_0_MASK, - (timeCfg.seconds % - PMIC_RTC_CONVERT_4BIT_MSB_TO_DEC)); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_ALARM_SECONDS_REGADDR, - regData); - } - /* Operation for RTC */ - else - { - /* Writing seconds to PMIC */ - Pmic_setBitField(®Data, - PMIC_RTC_SECONDS_SECOND_1_SHIFT, - PMIC_RTC_SECONDS_SECOND_1_MASK, - (timeCfg.seconds / - PMIC_RTC_CONVERT_4BIT_MSB_TO_DEC)); - Pmic_setBitField(®Data, - PMIC_RTC_SECONDS_SECOND_0_SHIFT, - PMIC_RTC_SECONDS_SECOND_0_MASK, - (timeCfg.seconds % - PMIC_RTC_CONVERT_4BIT_MSB_TO_DEC)); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_RTC_SECONDS_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - return pmicStatus; -} - -/*! - * \brief This function is used to get the RTC/Alarm Seconds. - */ -static int32_t Pmic_rtcGetSeconds(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_RtcTime_t *pTimeCfg, - bool operation_type) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Operation for Alarm */ - if(PMIC_RTC_OPS_FOR_ALARM == operation_type) - { - /* Reading the seconds */ - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_ALARM_SECONDS_REGADDR, - ®Data); - } - /* Operation for RTC */ - else - { - /* Reading the seconds */ - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RTC_SECONDS_REGADDR, - ®Data); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Operation for Alarm */ - if(PMIC_RTC_OPS_FOR_ALARM == operation_type) - { - /* Update Seconds to pTimeCfg */ - pTimeCfg->seconds = PMIC_RTC_CONVERT_4BIT_MSB_TO_DEC * - (Pmic_getBitField( - regData, - PMIC_ALARM_SECONDS_ALR_SECOND_1_SHIFT, - PMIC_ALARM_SECONDS_ALR_SECOND_1_MASK)); - pTimeCfg->seconds = pTimeCfg->seconds + - (Pmic_getBitField( - regData, - PMIC_ALARM_SECONDS_ALR_SECOND_0_SHIFT, - PMIC_ALARM_SECONDS_ALR_SECOND_0_MASK)); - } - else - { - /* Update Seconds to pTimeCfg */ - pTimeCfg->seconds = PMIC_RTC_CONVERT_4BIT_MSB_TO_DEC * - (Pmic_getBitField( - regData, - PMIC_RTC_SECONDS_SECOND_1_SHIFT, - PMIC_RTC_SECONDS_SECOND_1_MASK)); - pTimeCfg->seconds = pTimeCfg->seconds + - (Pmic_getBitField( - regData, - PMIC_RTC_SECONDS_SECOND_0_SHIFT, - PMIC_RTC_SECONDS_SECOND_0_MASK)); - } - } - - return pmicStatus; -} - -/*! - * \brief This function is used to set the RTC/Alarm Minutes. - */ -static int32_t Pmic_rtcSetMinutes(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_RtcTime_t timeCfg, - bool operation_type) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Operation for Alarm */ - if(PMIC_RTC_OPS_FOR_ALARM == operation_type) - { - /* Writing minutes to PMIC */ - Pmic_setBitField(®Data, - PMIC_ALARM_MINUTES_ALR_MINUTE_1_SHIFT, - PMIC_ALARM_MINUTES_ALR_MINUTE_1_MASK, - (timeCfg.minutes / - PMIC_RTC_CONVERT_4BIT_MSB_TO_DEC)); - Pmic_setBitField(®Data, - PMIC_ALARM_MINUTES_ALR_MINUTE_0_SHIFT, - PMIC_ALARM_MINUTES_ALR_MINUTE_0_MASK, - (timeCfg.minutes % - PMIC_RTC_CONVERT_4BIT_MSB_TO_DEC)); - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_ALARM_MINUTES_REGADDR, - regData); - } - /* Operation for RTC */ - else - { - /* Writing minutes to PMIC */ - Pmic_setBitField(®Data, - PMIC_RTC_MINUTES_MINUTE_1_SHIFT, - PMIC_RTC_MINUTES_MINUTE_1_MASK, - (timeCfg.minutes / - PMIC_RTC_CONVERT_4BIT_MSB_TO_DEC)); - Pmic_setBitField(®Data, - PMIC_RTC_MINUTES_MINUTE_0_SHIFT, - PMIC_RTC_MINUTES_MINUTE_0_MASK, - (timeCfg.minutes % - PMIC_RTC_CONVERT_4BIT_MSB_TO_DEC)); - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_RTC_MINUTES_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - return pmicStatus; -} - -/*! - * \brief This function is used to get the RTC/Alarm Minutes. - */ -static int32_t Pmic_rtcGetMinutes(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_RtcTime_t *pTimeCfg, - bool operation_type) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Operation for Alarm */ - if(PMIC_RTC_OPS_FOR_ALARM == operation_type) - { - /* Reading the minutes */ - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_ALARM_MINUTES_REGADDR, - ®Data); - } - /* Operation for RTC */ - else - { - /* Reading the minutes */ - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RTC_MINUTES_REGADDR, - ®Data); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Operation for Alarm */ - if(PMIC_RTC_OPS_FOR_ALARM == operation_type) - { - /* Update Minutes to pTimeCfg */ - pTimeCfg->minutes = PMIC_RTC_CONVERT_4BIT_MSB_TO_DEC * - (Pmic_getBitField( - regData, - PMIC_ALARM_MINUTES_ALR_MINUTE_1_SHIFT, - PMIC_ALARM_MINUTES_ALR_MINUTE_1_MASK)); - pTimeCfg->minutes = pTimeCfg->minutes + - (Pmic_getBitField( - regData, - PMIC_ALARM_MINUTES_ALR_MINUTE_0_SHIFT, - PMIC_ALARM_MINUTES_ALR_MINUTE_0_MASK)); - } - else - { - /* Update Minutes to pTimeCfg */ - pTimeCfg->minutes = PMIC_RTC_CONVERT_4BIT_MSB_TO_DEC * - (Pmic_getBitField( - regData, - PMIC_RTC_MINUTES_MINUTE_1_SHIFT, - PMIC_RTC_MINUTES_MINUTE_1_MASK)); - pTimeCfg->minutes = pTimeCfg->minutes + - (Pmic_getBitField( - regData, - PMIC_RTC_MINUTES_MINUTE_0_SHIFT, - PMIC_RTC_MINUTES_MINUTE_0_MASK)); - } - } - - return pmicStatus; -} - -/*! - * \brief This function is used to set the RTC/Alarm TimeMode. - */ -static int32_t Pmic_rtcSetTimeMode(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_RtcTime_t timeCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Setting hour mode to PMIC */ - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RTC_CTRL_1_REGADDR, - ®Data); - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_setBitField(®Data, - PMIC_RTC_CTRL_1_MODE_12_24_SHIFT, - PMIC_RTC_CTRL_1_MODE_12_24_MASK, - timeCfg.timeMode); - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_RTC_CTRL_1_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - return pmicStatus; -} - -/*! - * \brief This function is used to get the RTC/Alarm TimeMode. - */ -static int32_t Pmic_rtcGetTimeMode(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_RtcTime_t *pTimeCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Getting the hour mode */ - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RTC_CTRL_1_REGADDR, - ®Data); - - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Update TimeMode to pTimeCfg */ - pTimeCfg->timeMode = Pmic_getBitField(regData, - PMIC_RTC_CTRL_1_MODE_12_24_SHIFT, - PMIC_RTC_CTRL_1_MODE_12_24_MASK); - } - - return pmicStatus; -} - -/*! - * \brief This function is used to set the RTC/Alarm Meridian Mode. - */ -static int32_t Pmic_rtcSetMeridianMode(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_RtcTime_t timeCfg, - bool operation_type) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RTC_CTRL_1_REGADDR, - ®Data); - if((PMIC_ST_SUCCESS == pmicStatus) && - (PMIC_RTC_12_HOUR_MODE == Pmic_getBitField( - regData, - PMIC_RTC_CTRL_1_MODE_12_24_SHIFT, - PMIC_RTC_CTRL_1_MODE_12_24_MASK))) - { - /* Operation for Alarm */ - if(PMIC_RTC_OPS_FOR_ALARM == operation_type) - { - /* Writing Meridian Mode to PMIC */ - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_ALARM_HOURS_REGADDR, - ®Data); - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_setBitField(®Data, - PMIC_ALARM_HOURS_ALR_PM_NAM_SHIFT, - PMIC_ALARM_HOURS_ALR_PM_NAM_MASK, - timeCfg.meridianMode); - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_ALARM_HOURS_REGADDR, - regData); - } - } - /* Operation for RTC */ - else - { - /* Writing Meridian Mode to PMIC */ - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RTC_HOURS_REGADDR, - ®Data); - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_setBitField(®Data, - PMIC_ALARM_HOURS_ALR_PM_NAM_SHIFT, - PMIC_ALARM_HOURS_ALR_PM_NAM_MASK, - timeCfg.meridianMode); - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_RTC_HOURS_REGADDR, - regData); - } - } - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - return pmicStatus; -} - -/*! - * \brief This function is used to get the RTC/Alarm Meridian Mode. - */ -static int32_t Pmic_rtcGetMeridianMode(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_RtcTime_t *pTimeCfg, - bool operation_type) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RTC_CTRL_1_REGADDR, - ®Data); - if((PMIC_ST_SUCCESS == pmicStatus) && - (PMIC_RTC_12_HOUR_MODE == Pmic_getBitField( - regData, - PMIC_RTC_CTRL_1_MODE_12_24_SHIFT, - PMIC_RTC_CTRL_1_MODE_12_24_MASK))) - { - /* Operation for Alarm */ - if(PMIC_RTC_OPS_FOR_ALARM == operation_type) - { - /* Reading the hour */ - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_ALARM_HOURS_REGADDR, - ®Data); - } - /* Operation for RTC */ - else - { - /* Reading the hour */ - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RTC_HOURS_REGADDR, - ®Data); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Operation for Alarm */ - if(PMIC_RTC_OPS_FOR_ALARM == operation_type) - { - /* Update Time Meridian to pTimeCfg */ - pTimeCfg->meridianMode = Pmic_getBitField( - regData, - PMIC_ALARM_HOURS_ALR_PM_NAM_SHIFT, - PMIC_ALARM_HOURS_ALR_PM_NAM_MASK); - } - else - { - /* Update Time Meridian to pTimeCfg */ - pTimeCfg->meridianMode = Pmic_getBitField( - regData, - PMIC_ALARM_HOURS_ALR_PM_NAM_SHIFT, - PMIC_ALARM_HOURS_ALR_PM_NAM_MASK); - } - } - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - return pmicStatus; -} - -/*! - * \brief This function is used to set the RTC/Alarm Hours. - */ -static int32_t Pmic_rtcSetHours(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_RtcTime_t timeCfg, - bool operation_type) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Operation for Alarm */ - if(PMIC_RTC_OPS_FOR_ALARM == operation_type) - { - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_ALARM_HOURS_REGADDR, - ®Data); - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Writing hour to PMIC */ - Pmic_setBitField(®Data, - PMIC_ALARM_HOURS_ALR_HOUR_1_SHIFT, - PMIC_ALARM_HOURS_ALR_HOUR_1_MASK, - (timeCfg.hour / - PMIC_RTC_CONVERT_4BIT_MSB_TO_DEC)); - Pmic_setBitField(®Data, - PMIC_ALARM_HOURS_ALR_HOUR_0_SHIFT, - PMIC_ALARM_HOURS_ALR_HOUR_0_MASK, - (timeCfg.hour % - PMIC_RTC_CONVERT_4BIT_MSB_TO_DEC)); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_ALARM_HOURS_REGADDR, - regData); - } - } - /* Operation for RTC */ - else - { - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RTC_HOURS_REGADDR, - ®Data); - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Writing hour to PMIC */ - Pmic_setBitField(®Data, - PMIC_RTC_HOURS_HOUR_1_SHIFT, - PMIC_RTC_HOURS_HOUR_1_MASK, - (timeCfg.hour / - PMIC_RTC_CONVERT_4BIT_MSB_TO_DEC)); - Pmic_setBitField(®Data, - PMIC_RTC_HOURS_HOUR_0_SHIFT, - PMIC_RTC_HOURS_HOUR_0_MASK, - (timeCfg.hour % - PMIC_RTC_CONVERT_4BIT_MSB_TO_DEC)); - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_RTC_HOURS_REGADDR, - regData); - } - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - return pmicStatus; -} - -/*! - * \brief This function is used to get the RTC/Alarm Hours. - */ -static int32_t Pmic_rtcGetHours(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_RtcTime_t *pTimeCfg, - bool operation_type) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Operation for Alarm */ - if(PMIC_RTC_OPS_FOR_ALARM == operation_type) - { - /* Reading the hour */ - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_ALARM_HOURS_REGADDR, - ®Data); - } - /* Operation for RTC */ - else - { - /* Reading the hour */ - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RTC_HOURS_REGADDR, - ®Data); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Operation for Alarm */ - if(PMIC_RTC_OPS_FOR_ALARM == operation_type) - { - /* Update Hours to pTimeCfg */ - pTimeCfg->hour = PMIC_RTC_CONVERT_4BIT_MSB_TO_DEC * - (Pmic_getBitField( - regData, - PMIC_ALARM_HOURS_ALR_HOUR_1_SHIFT, - PMIC_ALARM_HOURS_ALR_HOUR_1_MASK)); - pTimeCfg->hour = pTimeCfg->hour + - (Pmic_getBitField( - regData, - PMIC_ALARM_HOURS_ALR_HOUR_0_SHIFT, - PMIC_ALARM_HOURS_ALR_HOUR_0_MASK)); - } - else - { - /* Update Hours to pTimeCfg */ - pTimeCfg->hour = PMIC_RTC_CONVERT_4BIT_MSB_TO_DEC * - (Pmic_getBitField(regData, - PMIC_RTC_HOURS_HOUR_1_SHIFT, - PMIC_RTC_HOURS_HOUR_1_MASK)); - pTimeCfg->hour = pTimeCfg->hour + - (Pmic_getBitField(regData, - PMIC_RTC_HOURS_HOUR_0_SHIFT, - PMIC_RTC_HOURS_HOUR_0_MASK)); - } - } - - return pmicStatus; -} - -/*! - * \brief This function is used to set the RTC/Alarm Day. - */ -static int32_t Pmic_rtcSetDay(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_RtcDate_t dateCfg, - bool operation_type) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Operation for Alarm */ - if(PMIC_RTC_OPS_FOR_ALARM == operation_type) - { - /* Setting the day to PMIC */ - Pmic_setBitField(®Data, - PMIC_ALARM_DAYS_ALR_DAY_1_SHIFT, - PMIC_ALARM_DAYS_ALR_DAY_1_MASK, - (dateCfg.day / - PMIC_RTC_CONVERT_4BIT_MSB_TO_DEC)); - Pmic_setBitField(®Data, - PMIC_ALARM_DAYS_ALR_DAY_0_SHIFT, - PMIC_ALARM_DAYS_ALR_DAY_0_MASK, - (dateCfg.day % - PMIC_RTC_CONVERT_4BIT_MSB_TO_DEC)); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_ALARM_DAYS_REGADDR, - regData); - } - /* Operation for RTC */ - else - { - /* Setting the day to PMIC */ - Pmic_setBitField(®Data, - PMIC_RTC_DAYS_DAY_1_SHIFT, - PMIC_RTC_DAYS_DAY_1_MASK, - (dateCfg.day / - PMIC_RTC_CONVERT_4BIT_MSB_TO_DEC)); - Pmic_setBitField(®Data, - PMIC_RTC_DAYS_DAY_0_SHIFT, - PMIC_RTC_DAYS_DAY_0_MASK, - (dateCfg.day % - PMIC_RTC_CONVERT_4BIT_MSB_TO_DEC)); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_RTC_DAYS_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - return pmicStatus; -} - -/*! - * \brief This function is used to get the RTC/Alarm Day. - */ -static int32_t Pmic_rtcGetDay(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_RtcDate_t *pDateCfg, - bool operation_type) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Operation for Alarm */ - if(PMIC_RTC_OPS_FOR_ALARM == operation_type) - { - /* Reading the day */ - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_ALARM_DAYS_REGADDR, - ®Data); - } - /* Operation for RTC */ - else - { - /* Reading the day */ - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RTC_DAYS_REGADDR, - ®Data); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Operation for Alarm */ - if(PMIC_RTC_OPS_FOR_ALARM == operation_type) - { - /* Update Day of the Date to pDateCfg */ - pDateCfg->day = PMIC_RTC_CONVERT_4BIT_MSB_TO_DEC * - (Pmic_getBitField( - regData, - PMIC_ALARM_DAYS_ALR_DAY_1_SHIFT, - PMIC_ALARM_DAYS_ALR_DAY_1_MASK)); - pDateCfg->day = pDateCfg->day + - (Pmic_getBitField( - regData, - PMIC_ALARM_DAYS_ALR_DAY_0_SHIFT, - PMIC_ALARM_DAYS_ALR_DAY_0_MASK)); - } - else - { - /* Update Day of the Date to pDateCfg */ - pDateCfg->day = PMIC_RTC_CONVERT_4BIT_MSB_TO_DEC * - (Pmic_getBitField( - regData, - PMIC_RTC_DAYS_DAY_1_SHIFT, - PMIC_RTC_DAYS_DAY_1_MASK)); - pDateCfg->day = pDateCfg->day + - (Pmic_getBitField( - regData, - PMIC_RTC_DAYS_DAY_0_SHIFT, - PMIC_RTC_DAYS_DAY_0_MASK)); - } - } - - return pmicStatus; -} - -/*! - * \brief This function is used to set the RTC/Alarm Month. - */ -static int32_t Pmic_rtcSetMonth(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_RtcDate_t dateCfg, - bool operation_type) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Operation for Alarm */ - if(PMIC_RTC_OPS_FOR_ALARM == operation_type) - { - /* Setting the month to PMIC */ - Pmic_setBitField(®Data, - PMIC_ALARM_MONTHS_ALR_MONTH_1_SHIFT, - PMIC_ALARM_MONTHS_ALR_MONTH_1_MASK, - (dateCfg.month / - PMIC_RTC_CONVERT_4BIT_MSB_TO_DEC)); - Pmic_setBitField(®Data, - PMIC_ALARM_MONTHS_ALR_MONTH_0_SHIFT, - PMIC_ALARM_MONTHS_ALR_MONTH_0_MASK, - (dateCfg.month % - PMIC_RTC_CONVERT_4BIT_MSB_TO_DEC)); - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_ALARM_MONTHS_REGADDR, - regData); - } - /* Operation for RTC */ - else - { - /* Setting the month to PMIC */ - Pmic_setBitField(®Data, - PMIC_RTC_MONTHS_MONTH_1_SHIFT, - PMIC_RTC_MONTHS_MONTH_1_MASK, - (dateCfg.month / - PMIC_RTC_CONVERT_4BIT_MSB_TO_DEC)); - Pmic_setBitField(®Data, - PMIC_RTC_MONTHS_MONTH_0_SHIFT, - PMIC_RTC_MONTHS_MONTH_0_MASK, - (dateCfg.month % - PMIC_RTC_CONVERT_4BIT_MSB_TO_DEC)); - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_RTC_MONTHS_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - return pmicStatus; -} - -/*! - * \brief This function is used to get the RTC/Alarm Month. - */ -static int32_t Pmic_rtcGetMonth(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_RtcDate_t *pDateCfg, - bool operation_type) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Operation for Alarm */ - if(PMIC_RTC_OPS_FOR_ALARM == operation_type) - { - /* Reading the month */ - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_ALARM_MONTHS_REGADDR, - ®Data); - } - /* Operation for RTC */ - else - { - /* Reading the month */ - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RTC_MONTHS_REGADDR, - ®Data); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Operation for Alarm */ - if(PMIC_RTC_OPS_FOR_ALARM == operation_type) - { - /* Update Month of the Date to pDateCfg */ - pDateCfg->month = PMIC_RTC_CONVERT_4BIT_MSB_TO_DEC * - (Pmic_getBitField( - regData, - PMIC_ALARM_MONTHS_ALR_MONTH_1_SHIFT, - PMIC_ALARM_MONTHS_ALR_MONTH_1_MASK)); - pDateCfg->month = pDateCfg->month + - (Pmic_getBitField( - regData, - PMIC_ALARM_MONTHS_ALR_MONTH_0_SHIFT, - PMIC_ALARM_MONTHS_ALR_MONTH_0_MASK)); - } - else - { - /* Update Month of the Date to pDateCfg */ - pDateCfg->month = PMIC_RTC_CONVERT_4BIT_MSB_TO_DEC * - (Pmic_getBitField( - regData, - PMIC_RTC_MONTHS_MONTH_1_SHIFT, - PMIC_RTC_MONTHS_MONTH_1_MASK)); - pDateCfg->month = pDateCfg->month + - (Pmic_getBitField( - regData, - PMIC_RTC_MONTHS_MONTH_0_SHIFT, - PMIC_RTC_MONTHS_MONTH_0_MASK)); - } - } - - return pmicStatus; -} - -/*! - * \brief This function is used to set the RTC/Alarm Year. - */ -static int32_t Pmic_rtcSetYear(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_RtcDate_t dateCfg, - bool operation_type) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint16_t year = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - year = (dateCfg.year % PMIC_RTC_EXTRACT_YEAR_DECIMAL_0_99); - - /* Operation for Alarm */ - if(PMIC_RTC_OPS_FOR_ALARM == operation_type) - { - /* Setting the year to PMIC */ - Pmic_setBitField(®Data, - PMIC_ALARM_YEARS_ALR_YEAR_1_SHIFT, - PMIC_ALARM_YEARS_ALR_YEAR_1_MASK, - ((uint8_t)(year / PMIC_RTC_CONVERT_4BIT_MSB_TO_DEC))); - Pmic_setBitField(®Data, - PMIC_ALARM_YEARS_ALR_YEAR_0_SHIFT, - PMIC_ALARM_YEARS_ALR_YEAR_0_MASK, - ((uint8_t)(year % PMIC_RTC_CONVERT_4BIT_MSB_TO_DEC))); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_ALARM_YEARS_REGADDR, - regData); - } - /* Operation for RTC */ - else - { - /* Setting the year to PMIC */ - Pmic_setBitField(®Data, - PMIC_RTC_YEARS_YEAR_1_SHIFT, - PMIC_RTC_YEARS_YEAR_1_MASK, - ((uint8_t)(year / PMIC_RTC_CONVERT_4BIT_MSB_TO_DEC))); - Pmic_setBitField(®Data, - PMIC_RTC_YEARS_YEAR_0_SHIFT, - PMIC_RTC_YEARS_YEAR_0_MASK, - ((uint8_t)(year % PMIC_RTC_CONVERT_4BIT_MSB_TO_DEC))); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_RTC_YEARS_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - return pmicStatus; -} - -/*! - * \brief This function is used to get the RTC/Alarm Year. - */ -static int32_t Pmic_rtcGetYear(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_RtcDate_t *pDateCfg, - bool operation_type) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t regVal = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Operation for Alarm */ - if(PMIC_RTC_OPS_FOR_ALARM == operation_type) - { - /* Reading the year */ - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_ALARM_YEARS_REGADDR, - ®Data); - } - /* Operation for RTC */ - else - { - /* Reading the year */ - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RTC_YEARS_REGADDR, - ®Data); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Operation for Alarm */ - if(PMIC_RTC_OPS_FOR_ALARM == operation_type) - { - regVal = Pmic_getBitField(regData, - PMIC_ALARM_YEARS_ALR_YEAR_1_SHIFT, - PMIC_ALARM_YEARS_ALR_YEAR_1_MASK); - - /* Update Year of the Date to pDateCfg */ - pDateCfg->year = ((uint16_t)PMIC_RTC_CONVERT_4BIT_MSB_TO_DEC) * - regVal; - - regVal = Pmic_getBitField(regData, - PMIC_ALARM_YEARS_ALR_YEAR_0_SHIFT, - PMIC_ALARM_YEARS_ALR_YEAR_0_MASK); - - pDateCfg->year = pDateCfg->year + regVal; - } - else - { - regVal = Pmic_getBitField(regData, - PMIC_RTC_YEARS_YEAR_1_SHIFT, - PMIC_RTC_YEARS_YEAR_1_MASK); - /* Update Year of the Date to pDateCfg */ - pDateCfg->year = ((uint16_t)PMIC_RTC_CONVERT_4BIT_MSB_TO_DEC) * - regVal; - - regVal = Pmic_getBitField(regData, - PMIC_RTC_YEARS_YEAR_0_SHIFT, - PMIC_RTC_YEARS_YEAR_0_MASK); - - pDateCfg->year = pDateCfg->year + regVal; - } - pDateCfg->year += PMIC_RTC_YEAR_MIN; - } - - return pmicStatus; -} - -/*! - * \brief This function is used to set the RTC Weekday. - */ -static int32_t Pmic_rtcSetWeekday(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_RtcDate_t dateCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - Pmic_setBitField(®Data, - PMIC_RTC_WEEKS_WEEK_SHIFT, - PMIC_RTC_WEEKS_WEEK_MASK, - dateCfg.weekday); - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_RTC_WEEKS_REGADDR, - regData); - - Pmic_criticalSectionStop(pPmicCoreHandle); - - return pmicStatus; -} - -/*! - * \brief This function is used to get the RTC Weekday. - */ -static int32_t Pmic_rtcGetWeekday(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_RtcDate_t *pDateCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Reading the weekday */ - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RTC_WEEKS_REGADDR, - ®Data); - - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Update Weekday of the Date to pDateCfg */ - pDateCfg->weekday = Pmic_getBitField(regData, - PMIC_RTC_WEEKS_WEEK_SHIFT, - PMIC_RTC_WEEKS_WEEK_MASK); - } - - return pmicStatus; -} - -/*! - * \brief Check RTC time hours mode - */ -static int32_t Pmic_rtcCheckHoursMode(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_RtcTime_t timeCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_RtcTime_t rtcTimeCfg = {0U}; - uint8_t timeMode = 0U; - - /* Get current TimeMode */ - if((bool)false == pmic_validParamCheck(timeCfg.validParams, - PMIC_RTC_TIME_CFG_TIMEMODE_VALID)) - { - pmicStatus = Pmic_rtcGetTimeMode(pPmicCoreHandle, - &rtcTimeCfg); - timeMode = rtcTimeCfg.timeMode; - } - else - { - timeMode = timeCfg.timeMode; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - if((PMIC_RTC_12_HOUR_MODE == timeMode) && - (pmic_validParamCheck(timeCfg.validParams, - PMIC_RTC_TIME_CFG_MERIDIAN_VALID)) && - (timeCfg.meridianMode > PMIC_RTC_PM_MODE)) - { - pmicStatus = PMIC_ST_ERR_INV_TIME; - } - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (pmic_validParamCheck(timeCfg.validParams, - PMIC_RTC_TIME_CFG_HRS_VALID))) - { - if(PMIC_RTC_12_HOUR_MODE == timeMode) - { - if((timeCfg.hour > PMIC_RTC_12HFMT_HR_MAX) || - (timeCfg.hour < PMIC_RTC_12HFMT_HR_MIN)) - { - pmicStatus = PMIC_ST_ERR_INV_TIME; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (timeCfg.meridianMode > PMIC_RTC_PM_MODE)) - { - pmicStatus = PMIC_ST_ERR_INV_TIME; - } - } - else - { - if(timeCfg.hour > PMIC_RTC_24HFMT_HR_MAX) - { - pmicStatus = PMIC_ST_ERR_INV_TIME; - } - } - } - - return pmicStatus; -} - -/*! - * \brief This function is used to check for errors in time values - */ -static int32_t Pmic_rtcCheckTime(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_RtcTime_t timeCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(pmic_validParamCheck(timeCfg.validParams, - PMIC_RTC_TIME_CFG_SEC_VALID) && - (timeCfg.seconds > PMIC_RTC_MINUTE_SEC_MAX)) - { - pmicStatus = PMIC_ST_ERR_INV_TIME; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - pmic_validParamCheck(timeCfg.validParams, - PMIC_RTC_TIME_CFG_MIN_VALID) && - (timeCfg.minutes > PMIC_RTC_MINUTE_SEC_MAX)) - { - pmicStatus = PMIC_ST_ERR_INV_TIME; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - pmic_validParamCheck(timeCfg.validParams, - PMIC_RTC_TIME_CFG_TIMEMODE_VALID) && - (timeCfg.timeMode > PMIC_RTC_12_HOUR_MODE)) - { - pmicStatus = PMIC_ST_ERR_INV_TIME; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_rtcCheckHoursMode(pPmicCoreHandle, timeCfg); - } - - return pmicStatus; -} - -/*! - * \brief This function is used to check for errors in date values - * w.r.to month - */ -static int32_t Pmic_rtcCheckMonthDays(const Pmic_RtcDate_t dateCfg, - bool leap, - uint8_t month) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - /* Check months having 30 days */ - if((PMIC_RTC_MONTH_APR == month) || - (PMIC_RTC_MONTH_JUN == month) || - (PMIC_RTC_MONTH_SEP == month) || - (PMIC_RTC_MONTH_NOV == month)) - { - if((dateCfg.day < PMIC_RTC_DAY_MIN) || - (dateCfg.day > PMIC_RTC_MNTH_DAY_MAX_30)) - { - pmicStatus = PMIC_ST_ERR_INV_DATE; - } - } - /* Check February days in year */ - else if(PMIC_RTC_MONTH_FEB == month) - { - /* February days in leap year */ - if((bool)true == leap) - { - if((dateCfg.day < PMIC_RTC_DAY_MIN) || - (dateCfg.day > PMIC_RTC_LPY_FEB_MNTH_DAY_MAX)) - { - pmicStatus = PMIC_ST_ERR_INV_DATE; - } - } - /* February days in non-leap year */ - else - { - if((dateCfg.day < PMIC_RTC_DAY_MIN) || - (dateCfg.day > PMIC_RTC_NLPY_FEB_MNTH_DAY_MAX)) - { - pmicStatus = PMIC_ST_ERR_INV_DATE; - } - } - } - /* Check months having 31 days */ - else - { - if((dateCfg.day < PMIC_RTC_DAY_MIN) || - (dateCfg.day > PMIC_RTC_MNTH_DAY_MAX_31)) - { - pmicStatus = PMIC_ST_ERR_INV_DATE; - } - } - - return pmicStatus; -} - -/*! - * \brief This function is used to check for errors in date values. - */ -static int32_t Pmic_rtcCheckDate(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_RtcDate_t dateCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool leapyear = (bool)false; - Pmic_RtcDate_t rtcDateCfg = {0U}; - uint8_t month = 0U; - - if(pmic_validParamCheck(dateCfg.validParams, - PMIC_RTC_DATE_CFG_MONTH_VALID) && - ((dateCfg.month > PMIC_RTC_MONTH_DEC) || - (dateCfg.month < PMIC_RTC_MONTH_JAN))) - { - pmicStatus = PMIC_ST_ERR_INV_DATE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (pmic_validParamCheck(dateCfg.validParams, - PMIC_RTC_DATE_CFG_YEAR_VALID)) && - ((dateCfg.year > PMIC_RTC_YEAR_MAX) || - (dateCfg.year < PMIC_RTC_YEAR_MIN))) - { - pmicStatus = PMIC_ST_ERR_INV_DATE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (pmic_validParamCheck(dateCfg.validParams, - PMIC_RTC_DATE_CFG_WEEKDAY_VALID)) && - ((dateCfg.weekday > PMIC_RTC_WEEKDAY_SATURDAY) || - (dateCfg.weekday < PMIC_RTC_WEEKDAY_SUNDAY))) - { - pmicStatus = PMIC_ST_ERR_INV_DATE; - } - - /* Get RTC Current leap Status */ - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(pmic_validParamCheck(dateCfg.validParams, - PMIC_RTC_DATE_CFG_YEAR_VALID)) - { - leapyear = (0U == (dateCfg.year % 4U)); - } - else - { - pmicStatus = Pmic_rtcGetYear(pPmicCoreHandle, - &rtcDateCfg, - PMIC_RTC_OPS_FOR_RTC); - if(PMIC_ST_SUCCESS == pmicStatus) - { - leapyear = (0U == (rtcDateCfg.year % 4U)); - } - } - } - - /* Get RTC Current Month */ - if(PMIC_ST_SUCCESS == pmicStatus) - { - if((bool)false == pmic_validParamCheck(dateCfg.validParams, - PMIC_RTC_DATE_CFG_MONTH_VALID)) - { - pmicStatus = Pmic_rtcGetMonth(pPmicCoreHandle, - &rtcDateCfg, - PMIC_RTC_OPS_FOR_RTC); - month = rtcDateCfg.month; - } - else - { - month = dateCfg.month; - } - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - pmic_validParamCheck(dateCfg.validParams, - PMIC_RTC_DATE_CFG_DAY_VALID)) - { - pmicStatus = Pmic_rtcCheckMonthDays(dateCfg, - leapyear, - month); - } - - return pmicStatus; -} - -/*! - * \brief This function is used to check Date and Time values. - */ -static int32_t Pmic_rtcCheckDateTime(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_RtcTime_t timeCfg, - const Pmic_RtcDate_t dateCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - pmicStatus = Pmic_rtcCheckTime(pPmicCoreHandle, timeCfg); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_rtcCheckDate(pPmicCoreHandle, dateCfg); - } - - return (pmicStatus); -} - -/*! - * \brief This function is used to set the RTC Alarm Time. - */ -static int32_t Pmic_alarmSetTime(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_RtcTime_t timeCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(pmic_validParamCheck(timeCfg.validParams, - PMIC_RTC_TIME_CFG_SEC_VALID)) - { - /* Writing seconds to PMIC */ - pmicStatus = Pmic_rtcSetSeconds(pPmicCoreHandle, - timeCfg, - PMIC_RTC_OPS_FOR_ALARM); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (pmic_validParamCheck(timeCfg.validParams, - PMIC_RTC_TIME_CFG_MIN_VALID))) - { - /* Writing minutes to PMIC */ - pmicStatus = Pmic_rtcSetMinutes(pPmicCoreHandle, - timeCfg, - PMIC_RTC_OPS_FOR_ALARM); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (pmic_validParamCheck(timeCfg.validParams, - PMIC_RTC_TIME_CFG_TIMEMODE_VALID))) - { - /* Setting Timemode to PMIC */ - pmicStatus = Pmic_rtcSetTimeMode(pPmicCoreHandle, - timeCfg); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (pmic_validParamCheck(timeCfg.validParams, - PMIC_RTC_TIME_CFG_MERIDIAN_VALID))) - { - /* Setting Meridian mode to PMIC */ - pmicStatus = Pmic_rtcSetMeridianMode(pPmicCoreHandle, - timeCfg, - PMIC_RTC_OPS_FOR_ALARM); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (pmic_validParamCheck(timeCfg.validParams, - PMIC_RTC_TIME_CFG_HRS_VALID))) - { - /* Setting hour to PMIC */ - pmicStatus = Pmic_rtcSetHours(pPmicCoreHandle, - timeCfg, - PMIC_RTC_OPS_FOR_ALARM); - } - - return pmicStatus; -} - -/*! - * \brief This function is used to set the RTC Alarm Date. - */ -static int32_t Pmic_alarmSetDate(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_RtcDate_t dateCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(pmic_validParamCheck(dateCfg.validParams, - PMIC_RTC_DATE_CFG_DAY_VALID)) - { - /* Setting the day to PMIC */ - pmicStatus = Pmic_rtcSetDay(pPmicCoreHandle, - dateCfg, - PMIC_RTC_OPS_FOR_ALARM); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (pmic_validParamCheck(dateCfg.validParams, - PMIC_RTC_DATE_CFG_MONTH_VALID))) - { - /* Setting the month to PMIC */ - pmicStatus = Pmic_rtcSetMonth(pPmicCoreHandle, - dateCfg, - PMIC_RTC_OPS_FOR_ALARM); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (pmic_validParamCheck(dateCfg.validParams, - PMIC_RTC_DATE_CFG_YEAR_VALID))) - { - /* Setting the year to PMIC */ - pmicStatus = Pmic_rtcSetYear(pPmicCoreHandle, - dateCfg, - PMIC_RTC_OPS_FOR_ALARM); - } - - return pmicStatus; -} - -/*! - * \brief This function is used to En/Disable the Alarm Interrupt. - */ -static int32_t Pmic_setAlarmIntr(Pmic_CoreHandle_t *pPmicCoreHandle, - bool enableIntr) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RTC_INTERRUPTS_REGADDR, - ®Data); - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(((bool)PMIC_RTC_ALARM_INTR_ENABLE) == enableIntr) - { - Pmic_setBitField(®Data, - PMIC_RTC_INTERRUPTS_IT_ALARM_SHIFT, - PMIC_RTC_INTERRUPTS_IT_ALARM_MASK, - PMIC_RTC_ALARM_INTR_ENABLE); - } - else - { - Pmic_setBitField(®Data, - PMIC_RTC_INTERRUPTS_IT_ALARM_SHIFT, - PMIC_RTC_INTERRUPTS_IT_ALARM_MASK, - PMIC_RTC_ALARM_INTR_DISABLE); - } - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_RTC_INTERRUPTS_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - return pmicStatus; -} - -/*! - * \brief This function is used to get the RTC Alarm Time. - */ -static int32_t Pmic_alarmGetTime(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_RtcTime_t *pTimeCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(pmic_validParamCheck(pTimeCfg->validParams, - PMIC_RTC_TIME_CFG_SEC_VALID)) - { - /* Reading the seconds */ - pmicStatus = Pmic_rtcGetSeconds(pPmicCoreHandle, - pTimeCfg, - PMIC_RTC_OPS_FOR_ALARM); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (pmic_validParamCheck(pTimeCfg->validParams, - PMIC_RTC_TIME_CFG_MIN_VALID))) - { - /* Reading the minutes */ - pmicStatus = Pmic_rtcGetMinutes(pPmicCoreHandle, - pTimeCfg, - PMIC_RTC_OPS_FOR_ALARM); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (pmic_validParamCheck(pTimeCfg->validParams, - PMIC_RTC_TIME_CFG_TIMEMODE_VALID))) - { - /* Getting the TimeMode */ - pmicStatus = Pmic_rtcGetTimeMode(pPmicCoreHandle, - pTimeCfg); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (pmic_validParamCheck(pTimeCfg->validParams, - PMIC_RTC_TIME_CFG_MERIDIAN_VALID))) - { - /* Getting the Meridian Mode */ - pmicStatus = Pmic_rtcGetMeridianMode(pPmicCoreHandle, - pTimeCfg, - PMIC_RTC_OPS_FOR_ALARM); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (pmic_validParamCheck(pTimeCfg->validParams, - PMIC_RTC_TIME_CFG_HRS_VALID))) - { - /* Reading the hour */ - pmicStatus = Pmic_rtcGetHours(pPmicCoreHandle, - pTimeCfg, - PMIC_RTC_OPS_FOR_ALARM); - } - - return pmicStatus; -} - -/*! - * \brief This function is used to get the RTC Alarm Date. - */ -static int32_t Pmic_alarmGetDate(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_RtcDate_t *pDateCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(pmic_validParamCheck(pDateCfg->validParams, - PMIC_RTC_DATE_CFG_DAY_VALID)) - { - /* Reading the day */ - pmicStatus = Pmic_rtcGetDay(pPmicCoreHandle, - pDateCfg, - PMIC_RTC_OPS_FOR_ALARM); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (pmic_validParamCheck(pDateCfg->validParams, - PMIC_RTC_DATE_CFG_MONTH_VALID))) - { - /* Reading the month */ - pmicStatus = Pmic_rtcGetMonth(pPmicCoreHandle, - pDateCfg, - PMIC_RTC_OPS_FOR_ALARM); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (pmic_validParamCheck(pDateCfg->validParams, - PMIC_RTC_DATE_CFG_YEAR_VALID))) - { - /* Reading the year */ - pmicStatus = Pmic_rtcGetYear(pPmicCoreHandle, - pDateCfg, - PMIC_RTC_OPS_FOR_ALARM); - } - - return pmicStatus; -} - -/*! - * \brief This function is used to set the RTC Time. - */ -static int32_t Pmic_rtcSetTime(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_RtcTime_t timeCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(pmic_validParamCheck(timeCfg.validParams, - PMIC_RTC_TIME_CFG_SEC_VALID)) - { - /* Writing seconds to PMIC */ - pmicStatus = Pmic_rtcSetSeconds(pPmicCoreHandle, - timeCfg, - PMIC_RTC_OPS_FOR_RTC); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (pmic_validParamCheck(timeCfg.validParams, - PMIC_RTC_TIME_CFG_MIN_VALID))) - { - /* Writing minutes to PMIC */ - pmicStatus = Pmic_rtcSetMinutes(pPmicCoreHandle, - timeCfg, - PMIC_RTC_OPS_FOR_RTC); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (pmic_validParamCheck(timeCfg.validParams, - PMIC_RTC_TIME_CFG_TIMEMODE_VALID))) - { - /* Setting TimeMode to PMIC */ - pmicStatus = Pmic_rtcSetTimeMode(pPmicCoreHandle, - timeCfg); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (pmic_validParamCheck(timeCfg.validParams, - PMIC_RTC_TIME_CFG_MERIDIAN_VALID))) - { - /* Setting Meridian Mode to PMIC */ - pmicStatus = Pmic_rtcSetMeridianMode(pPmicCoreHandle, - timeCfg, - PMIC_RTC_OPS_FOR_RTC); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (pmic_validParamCheck(timeCfg.validParams, - PMIC_RTC_TIME_CFG_HRS_VALID))) - { - /* Setting Hours to PMIC */ - pmicStatus = Pmic_rtcSetHours(pPmicCoreHandle, - timeCfg, - PMIC_RTC_OPS_FOR_RTC); - } - - return pmicStatus; -} - -/*! - * \brief This function is used to set the RTC Date. - */ -static int32_t Pmic_rtcSetDate(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_RtcDate_t dateCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(pmic_validParamCheck(dateCfg.validParams, - PMIC_RTC_DATE_CFG_DAY_VALID)) - { - /* Setting the day to PMIC */ - pmicStatus = Pmic_rtcSetDay(pPmicCoreHandle, - dateCfg, - PMIC_RTC_OPS_FOR_RTC); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (pmic_validParamCheck(dateCfg.validParams, - PMIC_RTC_DATE_CFG_MONTH_VALID))) - { - /* Setting the month to PMIC */ - pmicStatus = Pmic_rtcSetMonth(pPmicCoreHandle, - dateCfg, - PMIC_RTC_OPS_FOR_RTC); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (pmic_validParamCheck(dateCfg.validParams, - PMIC_RTC_DATE_CFG_YEAR_VALID))) - { - /* Setting the year to PMIC */ - pmicStatus = Pmic_rtcSetYear(pPmicCoreHandle, - dateCfg, - PMIC_RTC_OPS_FOR_RTC); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (pmic_validParamCheck(dateCfg.validParams, - PMIC_RTC_DATE_CFG_WEEKDAY_VALID))) - { - /* Setting the weekday to PMIC */ - pmicStatus = Pmic_rtcSetWeekday(pPmicCoreHandle, dateCfg); - } - - return pmicStatus; -} - - -/*! - * \brief Set RTC dynamic registers to static shadowed registers. - */ -static int32_t Pmic_rtcTriggerShadowRegisters( - Pmic_CoreHandle_t *pPmicCoreHandle) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Setting GET_TIME */ - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RTC_CTRL_1_REGADDR, - ®Data); - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* RESETTING the register by writing 0 */ - Pmic_setBitField(®Data, - PMIC_RTC_CTRL_1_GET_TIME_SHIFT, - PMIC_RTC_CTRL_1_GET_TIME_MASK, - 0U); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_RTC_CTRL_1_REGADDR, - regData); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Writing 1 to copy data from dynamic register to shadowed register */ - Pmic_setBitField(®Data, - PMIC_RTC_CTRL_1_GET_TIME_SHIFT, - PMIC_RTC_CTRL_1_GET_TIME_MASK, - 1U); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_RTC_CTRL_1_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - return pmicStatus; -} - -/*! - * \brief This function is used to get the RTC Time. - */ -static int32_t Pmic_rtcGetTime(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_RtcTime_t *pTimeCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(pmic_validParamCheck(pTimeCfg->validParams, - PMIC_RTC_TIME_CFG_SEC_VALID)) - { - /* Reading the seconds */ - pmicStatus = Pmic_rtcGetSeconds(pPmicCoreHandle, - pTimeCfg, - PMIC_RTC_OPS_FOR_RTC); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (pmic_validParamCheck(pTimeCfg->validParams, - PMIC_RTC_TIME_CFG_MIN_VALID))) - { - /* Reading the minutes */ - pmicStatus = Pmic_rtcGetMinutes(pPmicCoreHandle, - pTimeCfg, - PMIC_RTC_OPS_FOR_RTC); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (pmic_validParamCheck(pTimeCfg->validParams, - PMIC_RTC_TIME_CFG_TIMEMODE_VALID))) - { - /* Getting the TimeMode */ - pmicStatus = Pmic_rtcGetTimeMode(pPmicCoreHandle, - pTimeCfg); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (pmic_validParamCheck(pTimeCfg->validParams, - PMIC_RTC_TIME_CFG_MERIDIAN_VALID))) - { - /* Getting the Meridian mode */ - pmicStatus = Pmic_rtcGetMeridianMode(pPmicCoreHandle, - pTimeCfg, - PMIC_RTC_OPS_FOR_RTC); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (pmic_validParamCheck(pTimeCfg->validParams, - PMIC_RTC_TIME_CFG_HRS_VALID))) - { - /* Reading the hour */ - pmicStatus = Pmic_rtcGetHours(pPmicCoreHandle, - pTimeCfg, - PMIC_RTC_OPS_FOR_RTC); - } - - return pmicStatus; -} - -/*! - * \brief This function is used to get the RTC Date. - */ -static int32_t Pmic_rtcGetDate(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_RtcDate_t *pDateCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(pmic_validParamCheck(pDateCfg->validParams, - PMIC_RTC_DATE_CFG_DAY_VALID)) - { - /* Reading the day */ - pmicStatus = Pmic_rtcGetDay(pPmicCoreHandle, - pDateCfg, - PMIC_RTC_OPS_FOR_RTC); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (pmic_validParamCheck(pDateCfg->validParams, - PMIC_RTC_DATE_CFG_MONTH_VALID))) - { - /* Reading the month */ - pmicStatus = Pmic_rtcGetMonth(pPmicCoreHandle, - pDateCfg, - PMIC_RTC_OPS_FOR_RTC); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (pmic_validParamCheck(pDateCfg->validParams, - PMIC_RTC_DATE_CFG_YEAR_VALID))) - { - /* Reading the year */ - pmicStatus = Pmic_rtcGetYear(pPmicCoreHandle, - pDateCfg, - PMIC_RTC_OPS_FOR_RTC); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (pmic_validParamCheck(pDateCfg->validParams, - PMIC_RTC_DATE_CFG_WEEKDAY_VALID))) - { - /* Reading the weekday */ - pmicStatus = Pmic_rtcGetWeekday(pPmicCoreHandle, pDateCfg); - } - - return pmicStatus; -} - -/*! - * \brief Set the RTC frequency compensation. - */ -static int32_t Pmic_rtcSetFreqCompensateVal(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint16_t compensation) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart (pPmicCoreHandle); - - /* Writing the LSB */ - regData = (uint8_t)(compensation & PMIC_RTC_COMP_LSB_COMP_LSB_RTC_MASK); - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_RTC_COMP_LSB_REGADDR, - regData); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Writing the MSB register */ - regData = (uint8_t)((compensation & PMIC_RTC_COMP_MSB_COMP_MSB_RTC_MASK) - >> PMIC_RTC_COMP_MSB_COMP_MSB_RTC_SHIFT); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_RTC_COMP_MSB_REGADDR, - regData); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Enable auto compensation */ - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RTC_CTRL_1_REGADDR, - ®Data); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_setBitField(®Data, - PMIC_RTC_CTRL_1_AUTO_COMP_SHIFT, - PMIC_RTC_CTRL_1_AUTO_COMP_MASK, - PMIC_RTC_AUTO_COMP_ON); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_RTC_CTRL_1_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - return pmicStatus; -} - -/*! - * \brief Get the RTC frequency compensation. - */ -static int32_t Pmic_rtcGetFreqCompensateVal(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t *pCompensation) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - *pCompensation = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Reading the MSB register */ - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RTC_COMP_MSB_REGADDR, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - *pCompensation = regData; - *pCompensation = (*pCompensation << - PMIC_RTC_COMP_MSB_COMP_MSB_RTC_SHIFT); - - /* Reading the LSB Register */ - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RTC_COMP_LSB_REGADDR, - ®Data); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - *pCompensation = *pCompensation | regData; - return pmicStatus; -} - -/*! - * \brief This function is used to en/disable the TImer Interrupt. - */ -static int32_t Pmic_setTimerIntr(Pmic_CoreHandle_t *pPmicCoreHandle, - bool enableIntr) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Enabling the RTC Timer Intr */ - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RTC_INTERRUPTS_REGADDR, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(((bool)PMIC_RTC_TIMER_INTR_DISABLE) == enableIntr) - { - Pmic_setBitField(®Data, - PMIC_RTC_INTERRUPTS_IT_TIMER_SHIFT, - PMIC_RTC_INTERRUPTS_IT_TIMER_MASK, - PMIC_RTC_TIMER_INTR_DISABLE); - } - else - { - Pmic_setBitField(®Data, - PMIC_RTC_INTERRUPTS_IT_TIMER_SHIFT, - PMIC_RTC_INTERRUPTS_IT_TIMER_MASK, - PMIC_RTC_TIMER_INTR_ENABLE); - } - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_RTC_INTERRUPTS_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - return pmicStatus; -} - -/*! - * \brief This function is used to start/stop the RTC present in the PMIC. - */ -static int32_t Pmic_rtcEnableRtc(Pmic_CoreHandle_t *pPmicCoreHandle, - bool enableRtc) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - uint8_t regVal = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RTC_CTRL_1_REGADDR, - ®Data); - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(((bool)PMIC_RTC_STOP) == enableRtc) - { - /* Stopping the RTC */ - regData &= (uint8_t)(~(PMIC_RTC_CTRL_1_STOP_RTC_MASK)); - } - else - { - /* Start RTC */ - Pmic_setBitField(®Data, - PMIC_RTC_CTRL_1_STOP_RTC_SHIFT, - PMIC_RTC_CTRL_1_STOP_RTC_MASK, - PMIC_RTC_START); - } - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_RTC_CTRL_1_REGADDR, - regData); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Checking RTC status */ - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RTC_STATUS_REGADDR, - ®Data); - - if((bool)true == enableRtc) - { - regVal = 1U; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Enable/Disable RTC is failed */ - pmicStatus = PMIC_ST_ERR_RTC_STOP_FAIL; - - if(regVal == Pmic_getBitField(regData, - PMIC_RTC_STATUS_RUN_SHIFT, - PMIC_RTC_STATUS_RUN_MASK)) - { - /* RTC is Enabled/Disabled */ - pmicStatus = PMIC_ST_SUCCESS; - } - } - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - return pmicStatus; -} - -/*! - * \brief API to Set the alarm Time and Date to PMIC RTC. - * - * Requirement: REQ_TAG(PDK-5855) - * Design: did_pmic_rtc_cfg_readback - * Architecture: aid_pmic_rtc_cfg - * - * This function is used to set the alarm Date and Time parameters - * depending upon the bit fields set in validParams of Time and Date - * structures in RTC of PMIC Device. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param timeCfg [IN] PMIC RTC time configuration - * \param dateCfg [IN] PMIC RTC date configuration - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes. - */ -int32_t Pmic_rtcSetAlarmInfo(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_RtcTime_t timeCfg, - const Pmic_RtcDate_t dateCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)false == pPmicCoreHandle->pPmic_SubSysInfo->rtcEnable)) - { - pmicStatus = PMIC_ST_ERR_INV_DEVICE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((0U == timeCfg.validParams) && - (0U == dateCfg.validParams))) - { - pmicStatus = PMIC_ST_ERR_INSUFFICIENT_CFG; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Verify time and date */ - pmicStatus = Pmic_rtcCheckDateTime(pPmicCoreHandle, - timeCfg, - dateCfg); - } - - /* Set Alarm Time */ - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_alarmSetTime(pPmicCoreHandle, timeCfg); - } - - /* Set Alarmr Date */ - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_alarmSetDate(pPmicCoreHandle, dateCfg); - } - - return (pmicStatus); -} - -/*! - * \brief API to Get the alarm Time and Date from PMIC RTC function. - * - * Requirement: REQ_TAG(PDK-5855) - * Design: did_pmic_rtc_cfg_readback - * Architecture: aid_pmic_rtc_cfg - * - * This function is used to Get the alarm date and time parameters - * depending upon the bit fields set in validParams of Time and Date - * structures in RTC of the PMIC Device. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pTimeCfg [OUT] PMIC RTC time configuration - * \param pDateCfg [OUT] PMIC RTC date configuration - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_rtcGetAlarmInfo(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_RtcTime_t *pTimeCfg, - Pmic_RtcDate_t *pDateCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)false == pPmicCoreHandle->pPmic_SubSysInfo->rtcEnable)) - { - pmicStatus = PMIC_ST_ERR_INV_DEVICE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((NULL == pTimeCfg) || (NULL == pDateCfg))) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((0U == pTimeCfg->validParams) && - (0U == pDateCfg->validParams))) - { - pmicStatus = PMIC_ST_ERR_INSUFFICIENT_CFG; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_alarmGetTime(pPmicCoreHandle, pTimeCfg); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_alarmGetDate(pPmicCoreHandle, pDateCfg); - } - - return (pmicStatus); -} - -/*! - * \brief API to Set the timer interrupt Period to PMIC RTC. - * - * Requirement: REQ_TAG(PDK-5855) - * Design: did_pmic_rtc_cfg_readback - * Architecture: aid_pmic_rtc_cfg - * - * This function is used to set the timer interrupt Period to - * the RTC present in the PMIC. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param timerPeriod [IN] Timer interrupt periods. - * For Valid values: - * \ref Pmic_RtcTimerIntrPeriod. - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_rtcSetTimerPeriod(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t timerPeriod) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)false == pPmicCoreHandle->pPmic_SubSysInfo->rtcEnable)) - { - pmicStatus = PMIC_ST_ERR_INV_DEVICE; - } - - if(timerPeriod > PMIC_RTC_DAY_INTR_PERIOD) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Setting timer period for timer interrupt */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RTC_INTERRUPTS_REGADDR, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_setBitField(®Data, - PMIC_RTC_INTERRUPTS_EVERY_SHIFT, - PMIC_RTC_INTERRUPTS_EVERY_MASK, - timerPeriod); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_RTC_INTERRUPTS_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return pmicStatus; -} - -/*! - * \brief API to Get the timer interrupt period from PMIC RTC. - * - * Requirement: REQ_TAG(PDK-5855) - * Design: did_pmic_rtc_cfg_readback - * Architecture: aid_pmic_rtc_cfg - * - * This function is used to get the timer interrupt period from RTC - * present in the PMIC. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pTimerPeriod [OUT] Timer interrupt period - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_rtcGetTimerPeriod(Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t *pTimerPeriod) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)false == pPmicCoreHandle->pPmic_SubSysInfo->rtcEnable)) - { - pmicStatus = PMIC_ST_ERR_INV_DEVICE; - } - - if(NULL == pTimerPeriod) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Getiing timer period for timer interrupt */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RTC_INTERRUPTS_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - *pTimerPeriod = Pmic_getBitField(regData, - PMIC_RTC_INTERRUPTS_EVERY_SHIFT, - PMIC_RTC_INTERRUPTS_EVERY_MASK); - } - } - - return pmicStatus; -} - -/*! - * \brief API to Set the RTC Time and Date to PMIC RTC. - * - * Requirement: REQ_TAG(PDK-5855) - * Design: did_pmic_rtc_cfg_readback - * Architecture: aid_pmic_rtc_cfg - * - * This function is used to set the RTC Date and Time parameters - * depending upon the bit fields set in validParams of Time and Date - * structures in RTC of PMIC Device. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param timeCfg [IN] PMIC RTC time configuration - * \param dateCfg [IN] PMIC RTC date configuration - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes. - */ -int32_t Pmic_rtcSetTimeDateInfo(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_RtcTime_t timeCfg, - const Pmic_RtcDate_t dateCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)false == pPmicCoreHandle->pPmic_SubSysInfo->rtcEnable)) - { - pmicStatus = PMIC_ST_ERR_INV_DEVICE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((0U == timeCfg.validParams) && - (0U == dateCfg.validParams))) - { - pmicStatus = PMIC_ST_ERR_INSUFFICIENT_CFG; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Calling the function to validate the time and date for errors */ - pmicStatus = Pmic_rtcCheckDateTime(pPmicCoreHandle, timeCfg, dateCfg); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Stop RTC */ - pmicStatus = Pmic_rtcEnable(pPmicCoreHandle, ((bool)PMIC_RTC_STOP)); - } - - /* Set PMIC RTC Time */ - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_rtcSetTime(pPmicCoreHandle, timeCfg); - } - - /* Set PMIC RTC Date */ - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_rtcSetDate(pPmicCoreHandle, dateCfg); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Restarting the RTC */ - pmicStatus = Pmic_rtcEnable(pPmicCoreHandle, ((bool)PMIC_RTC_START)); - } - - return pmicStatus; -} - -/*! - * \brief API to Get the RTC Time and Date from PMIC RTC function. - * - * Requirement: REQ_TAG(PDK-5855) - * Design: did_pmic_rtc_cfg_readback - * Architecture: aid_pmic_rtc_cfg - * - * This function is used to Get the RTC date and time parameters - * depending upon the bit fields set in validParams of Time and Date - * structures in RTC of the PMIC Device. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pTimeCfg [OUT] PMIC RTC time configuration - * \param pDateCfg [OUT] PMIC RTC date configuration - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_rtcGetTimeDateInfo(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_RtcTime_t *pTimeCfg, - Pmic_RtcDate_t *pDateCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_RtcCfg_t rtcCfg; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)false == pPmicCoreHandle->pPmic_SubSysInfo->rtcEnable)) - { - pmicStatus = PMIC_ST_ERR_INV_DEVICE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((NULL == pTimeCfg) || (NULL == pDateCfg))) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((0U == pTimeCfg->validParams) && - (0U == pDateCfg->validParams))) - { - pmicStatus = PMIC_ST_ERR_INSUFFICIENT_CFG; - } - - /* Set RTC dynamic registers to static shadowed registers */ - if(PMIC_ST_SUCCESS == pmicStatus) - { - rtcCfg.validParams = PMIC_RTC_CFG_TIME_DATE_REG_SEL_VALID_SHIFT ; - pmicStatus = Pmic_rtcGetConfiguration(pPmicCoreHandle, &rtcCfg); - - if(PMIC_RTC_STATIC_SHADOWED_REG_SEL == rtcCfg.timeDateRegSel) - { - pmicStatus = Pmic_rtcTriggerShadowRegisters(pPmicCoreHandle); - } - } - - /* Get RTC time */ - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_rtcGetTime(pPmicCoreHandle, pTimeCfg); - } - - /* Get RTC Date */ - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_rtcGetDate(pPmicCoreHandle, pDateCfg); - } - - return (pmicStatus); -} - -/*! - * \brief API to Set the RTC frequency compensation value. - * - * Requirement: REQ_TAG(PDK-5855) - * Design: did_pmic_rtc_cfg_readback - * Architecture: aid_pmic_rtc_cfg - * - * This function is used to set the frequency compensation - * value in the RTC of the PMIC Device. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param compensation [IN] PMIC RTC frequency compensation value - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ - -int32_t Pmic_rtcSetFreqComp(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint16_t compensation) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)false == pPmicCoreHandle->pPmic_SubSysInfo->rtcEnable)) - { - pmicStatus = PMIC_ST_ERR_INV_DEVICE; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_rtcSetFreqCompensateVal(pPmicCoreHandle, - compensation); - } - - return pmicStatus; -} - -/*! - * \brief API to Get the RTC frequency compensation value. - * - * Requirement: REQ_TAG(PDK-5855) - * Design: did_pmic_rtc_cfg_readback - * Architecture: aid_pmic_rtc_cfg - * - * This function is used to get the frequency compensation - * value from the RTC of the PMIC Device. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pCompensation [OUT] Pointer to store frequency compensation - * value - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_rtcGetFreqComp(Pmic_CoreHandle_t *pPmicCoreHandle, - uint16_t *pCompensation) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)false == pPmicCoreHandle->pPmic_SubSysInfo->rtcEnable)) - { - pmicStatus = PMIC_ST_ERR_INV_DEVICE; - } - - if(NULL == pCompensation) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - /* Get RTC compensation value */ - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_rtcGetFreqCompensateVal(pPmicCoreHandle, - pCompensation); - } - - return pmicStatus; -} - -/*! - * \brief API to Enable/Disable the RTC. - * - * Requirement: REQ_TAG(PDK-5855) - * Design: did_pmic_rtc_cfg_readback - * Architecture: aid_pmic_rtc_cfg - * - * This function is used to Start/Stop the RTC present in PMIC. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param enableRtc [IN] Parameter to start/stop RTC. - * Valid values: \ref Pmic_RtcState - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_rtcEnable(Pmic_CoreHandle_t *pPmicCoreHandle, - const bool enableRtc) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)false == pPmicCoreHandle->pPmic_SubSysInfo->rtcEnable)) - { - pmicStatus = PMIC_ST_ERR_INV_DEVICE; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_rtcEnableRtc(pPmicCoreHandle, enableRtc); - } - - return pmicStatus; -} - -/*! - * \brief API to Enable/Disable the RTC Alarm Interrupt. - * - * Requirement: REQ_TAG(PDK-5855), REQ_TAG(PDK-5831) - * Design: did_pmic_rtc_cfg_readback, did_pmic_lpstandby_wkup_cfg - * Architecture: aid_pmic_rtc_cfg - * - * This function is used to enable/disable the RTC alarm interrupt. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param enableIntr [IN] Parameter to enable/disable Alarm - * Interrupt. - * For Valid values: - * \ref Pmic_RtcAlramIntrEnable - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_rtcEnableAlarmIntr(Pmic_CoreHandle_t *pPmicCoreHandle, - const bool enableIntr) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - /* Flag to define Critical section started or not */ - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)false == pPmicCoreHandle->pPmic_SubSysInfo->rtcEnable)) - { - pmicStatus = PMIC_ST_ERR_INV_DEVICE; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* En/Disabling the RTC Alarm Intr */ - pmicStatus = Pmic_setAlarmIntr(pPmicCoreHandle, enableIntr); - } - - return pmicStatus; -} - -/*! - * \brief API to Enable/Disable the RTC Timer Interrupt. - * - * Requirement: REQ_TAG(PDK-5855), REQ_TAG(PDK-5831) - * Design: did_pmic_rtc_cfg_readback, did_pmic_lpstandby_wkup_cfg - * Architecture: aid_pmic_rtc_cfg - * - * This function is used to enable/disable the RTC timer interrupt. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param enableIntr [IN] Parameter to enable/disable Timer - * Interrupt. - * For Valid values: - * \ref Pmic_RtcTimerIntrEnable - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_rtcEnableTimerIntr(Pmic_CoreHandle_t *pPmicCoreHandle, - const bool enableIntr) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)false == pPmicCoreHandle->pPmic_SubSysInfo->rtcEnable)) - { - pmicStatus = PMIC_ST_ERR_INV_DEVICE; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* En/Disabling the RTC Timer Intr */ - pmicStatus = Pmic_setTimerIntr(pPmicCoreHandle, enableIntr); - } - - return pmicStatus; -} - -/*! - * \brief API to Get the RTC Powerup status - */ -static int32_t Pmic_rtcGetPowerupStatus(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_RtcRstStatus_t *pRtcRstStatus) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - /* Get RTC POWER-UP status */ - if((bool)false != (pmic_validParamCheck(pRtcRstStatus->validParams, - PMIC_RTC_POWERUP_STATUS_VALID))) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Checking RTC status */ - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RTC_STATUS_REGADDR, - ®Data); - - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(Pmic_getBitField(regData, - PMIC_RTC_STATUS_POWER_UP_SHIFT, - PMIC_RTC_STATUS_POWER_UP_MASK) == 0U) - { - pRtcRstStatus->powerupStatus = (bool)false; - } - else - { - pRtcRstStatus->powerupStatus = (bool)true; - } - } - } - - return pmicStatus; -} - -/*! - * \brief API to Get the Reset status of RTC. - * - * Requirement: REQ_TAG(PDK-9145), REQ_TAG(PDK-9142) - * Design: did_pmic_rtc_rst_status - * Architecture: aid_pmic_rtc_cfg - * - * This function is used to get the Reset status of the RTC - * depending on the bit fields set in validParams of - * struct Pmic_RtcRstStatus_t structures. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pRtcRstStatus [IN/OUT] Pointer to hold RTC Reset status. - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_rtcGetRstStatus(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_RtcRstStatus_t *pRtcRstStatus) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regVal = 0U; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)false == pPmicCoreHandle->pPmic_SubSysInfo->rtcEnable)) - { - pmicStatus = PMIC_ST_ERR_INV_DEVICE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && (NULL == pRtcRstStatus)) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && (0U == pRtcRstStatus->validParams)) - { - pmicStatus = PMIC_ST_ERR_INSUFFICIENT_CFG; - } - - /* Get RTC Status */ - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)false != (pmic_validParamCheck(pRtcRstStatus->validParams, - PMIC_RTC_RESET_STATUS_VALID)))) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Checking RTC Reset status */ - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RTC_RESET_STATUS_REGADDR, - ®Val); - - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(Pmic_getBitField( - regVal, - PMIC_RTC_RESET_STATUS_RESET_STATUS_RTC_SHIFT, - PMIC_RTC_RESET_STATUS_RESET_STATUS_RTC_MASK) == 0U) - { - pRtcRstStatus->rtcRstStatus = (bool)false; - } - else - { - pRtcRstStatus->rtcRstStatus = (bool)true; - } - } - } - - /* Get RTC POWER-UP status */ - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_rtcGetPowerupStatus(pPmicCoreHandle, pRtcRstStatus); - } - - return pmicStatus; -} - -/*! - * \brief API to read RTC status which defines RTC is started or not - * - * Requirement: REQ_TAG(PDK-9155) - * Design: did_pmic_rtc_status - * Architecture: aid_pmic_rtc_cfg - * - * This function is read RTC status which defines RTC is started or not - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pRtcstatus [IN] Pointer to store the RTC status which - * defines RTC is started or not - * Valid values: \ref Pmic_RtcStatus - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_rtcGetStatus(Pmic_CoreHandle_t *pPmicCoreHandle, - bool *pRtcstatus) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)false == pPmicCoreHandle->pPmic_SubSysInfo->rtcEnable)) - { - pmicStatus = PMIC_ST_ERR_INV_DEVICE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && (NULL == pRtcstatus)) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Checking RTC status */ - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RTC_STATUS_REGADDR, - ®Data); - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Get RTC Status */ - if(Pmic_getBitField(regData, - PMIC_RTC_STATUS_RUN_SHIFT, - PMIC_RTC_STATUS_RUN_MASK) == 0U) - { - *pRtcstatus = (bool)false; - } - else - { - *pRtcstatus = (bool)true; - } - } - - return pmicStatus; -} - -/*! - * \brief API to clear the Reset status of RTC. - * - * Requirement: REQ_TAG(PDK-9142), REQ_TAG(PDK-9145) - * Design: did_pmic_rtc_clr_rst_status - * Architecture: aid_pmic_rtc_cfg - * - * This function is used to clear the Reset status of the RTC - * depending on the Pmic_RtcRstStatusType - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param rtcRstStatType [IN] RTC Reset Status Type - * For Valid values: - * \ref Pmic_RtcRstStatusType - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_rtcClrRstStatus(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t rtcRstStatType) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)false == pPmicCoreHandle->pPmic_SubSysInfo->rtcEnable)) - { - pmicStatus = PMIC_ST_ERR_INV_DEVICE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - (rtcRstStatType > PMIC_RTC_POWERUP_STATUS)) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - - /* Clear RTC Reset Status */ - if(PMIC_RTC_RST_STATUS == rtcRstStatType) - { - /* Checking RTC Reset status */ - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RTC_RESET_STATUS_REGADDR, - ®Data); - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_setBitField( - ®Data, - PMIC_RTC_RESET_STATUS_RESET_STATUS_RTC_SHIFT, - PMIC_RTC_RESET_STATUS_RESET_STATUS_RTC_MASK, - 1U); - pmicStatus = Pmic_commIntf_sendByte( - pPmicCoreHandle, - PMIC_RTC_RESET_STATUS_REGADDR, - regData); - } - } - else /* clear RTC POWER-UP status */ - { - /* Checking RTC status */ - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RTC_STATUS_REGADDR, - ®Data); - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_setBitField(®Data, - PMIC_RTC_STATUS_POWER_UP_SHIFT, - PMIC_RTC_STATUS_POWER_UP_MASK, - 1U); - pmicStatus = Pmic_commIntf_sendByte( - pPmicCoreHandle, - PMIC_RTC_STATUS_REGADDR, - regData); - } - - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return pmicStatus; -} - -/*! - * \brief API to Set 32K counter with compensation values - */ -static int32_t Pmic_rtcSet32KCounterCompVal( - Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_RtcCfg_t rtcCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - bool rtcStatus; - - if(rtcCfg.set32KCounterCompVal != PMIC_RTC_32K_COUNTER_COMP_VAL_SET) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_rtcGetStatus(pPmicCoreHandle, &rtcStatus); - - if((PMIC_ST_SUCCESS == pmicStatus) && - (((bool)PMIC_RTC_STOP) != rtcStatus)) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RTC_CTRL_1_REGADDR, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_setBitField(®Data, - PMIC_RTC_CTRL_1_SET_32_COUNTER_SHIFT, - PMIC_RTC_CTRL_1_SET_32_COUNTER_MASK, - rtcCfg.set32KCounterCompVal); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_RTC_CTRL_1_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - } - - return pmicStatus; -} - -/*! - * \brief API to Get RTC configuration of 32K counter with compensation value - * is set or not - */ -static int32_t Pmic_rtcGet32KCounterCompValCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_RtcCfg_t *pRtcCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RTC_CTRL_1_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pRtcCfg->set32KCounterCompVal = Pmic_getBitField( - regData, - PMIC_RTC_CTRL_1_SET_32_COUNTER_SHIFT, - PMIC_RTC_CTRL_1_SET_32_COUNTER_MASK); - - } - - return pmicStatus; -} - -/*! - * \brief API to Enable/Disable Crystal Oscillator - */ -static int32_t Pmic_rtcEnableCrystalOsc( - Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_RtcCfg_t rtcCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RTC_CTRL_2_REGADDR, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(((bool)PMIC_RTC_CRYSTAL_OSC_ENABLE) == rtcCfg.crystalOScEn) - { - Pmic_setBitField(®Data, - PMIC_RTC_CTRL_2_XTAL_EN_SHIFT, - PMIC_RTC_CTRL_2_XTAL_EN_MASK, - PMIC_RTC_CRYSTAL_OSC_ENABLE); - } - else - { - Pmic_setBitField(®Data, - PMIC_RTC_CTRL_2_XTAL_EN_SHIFT, - PMIC_RTC_CTRL_2_XTAL_EN_MASK, - PMIC_RTC_CRYSTAL_OSC_DISABLE); - } - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_RTC_CTRL_2_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - return pmicStatus; -} - -/*! - * \brief API to Get Crystal Oscillator is enabled or not - */ -static int32_t Pmic_rtcGetCrystalOscEnCfg(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_RtcCfg_t *pRtcCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RTC_CTRL_2_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pRtcCfg->crystalOScEn = (bool)false; - - if(Pmic_getBitField(regData, - PMIC_RTC_CTRL_2_XTAL_EN_SHIFT, - PMIC_RTC_CTRL_2_XTAL_EN_MASK) == 1U) - { - pRtcCfg->crystalOScEn = (bool)true; - } - } - - return pmicStatus; -} - -/*! - * \brief API to Set RTC time config to Round the time to closest minute - */ -static int32_t Pmic_rtcSetRtcTimeRound30s(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_RtcCfg_t rtcCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - if(rtcCfg.setRtcTimeRound30s != PMIC_RTC_ROUND_TIME_SET) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RTC_CTRL_1_REGADDR, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_setBitField(®Data, - PMIC_RTC_CTRL_1_ROUND_30S_SHIFT, - PMIC_RTC_CTRL_1_ROUND_30S_MASK, - rtcCfg.setRtcTimeRound30s); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_RTC_CTRL_1_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return pmicStatus; -} - -/*! - * \brief API to Get the status of RTC time config to Round the time to closest - * minute is set or not - */ -static int32_t Pmic_rtcGetRtcTimeRound30s(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_RtcCfg_t *pRtcCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RTC_CTRL_1_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pRtcCfg->setRtcTimeRound30s = Pmic_getBitField( - regData, - PMIC_RTC_CTRL_1_ROUND_30S_SHIFT, - PMIC_RTC_CTRL_1_ROUND_30S_MASK); - - } - - return pmicStatus; -} - -/*! - * \brief API to Select RTC Time and Date Register read from Dynamic or - * Static Shadowed Registers - */ -static int32_t Pmic_rtcSelectTimeDateReg(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_RtcCfg_t rtcCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - if(rtcCfg.timeDateRegSel > PMIC_RTC_STATIC_SHADOWED_REG_SEL) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RTC_CTRL_1_REGADDR, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_setBitField(®Data, - PMIC_RTC_CTRL_1_RTC_V_OPT_SHIFT, - PMIC_RTC_CTRL_1_RTC_V_OPT_MASK, - rtcCfg.timeDateRegSel); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_RTC_CTRL_1_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return pmicStatus; -} - -/*! - * \brief API to Get config of RTC Time and Date Register read from Dynamic or - Static Shadowed Registers - */ -static int32_t Pmic_rtcGetTimeDateRegCfg(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_RtcCfg_t *pRtcCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RTC_CTRL_1_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pRtcCfg->timeDateRegSel = Pmic_getBitField( - regData, - PMIC_RTC_CTRL_1_RTC_V_OPT_SHIFT, - PMIC_RTC_CTRL_1_RTC_V_OPT_MASK); - - } - - return pmicStatus; -} - -/*! - * \brief API to Select Crystal Oscillator type - */ -static int32_t Pmic_rtcSelectCrystalOscType( - Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_RtcCfg_t rtcCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - if(rtcCfg.crystalOScType > PMIC_RTC_CRYSTAL_OSC_TYPE_12_5PF) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RTC_CTRL_2_REGADDR, - ®Data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - Pmic_setBitField(®Data, - PMIC_RTC_CTRL_2_XTAL_SEL_SHIFT, - PMIC_RTC_CTRL_2_XTAL_SEL_MASK, - rtcCfg.crystalOScType); - - pmicStatus = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_RTC_CTRL_2_REGADDR, - regData); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return pmicStatus; -} - -/*! - * \brief API to Get Crystal Oscillator type configuration - */ -static int32_t Pmic_rtcGetCrystalOscTypeCfg( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_RtcCfg_t *pRtcCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t regData = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - pmicStatus = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_RTC_CTRL_2_REGADDR, - ®Data); - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pRtcCfg->crystalOScType = Pmic_getBitField( - regData, - PMIC_RTC_CTRL_2_XTAL_SEL_SHIFT, - PMIC_RTC_CTRL_2_XTAL_SEL_MASK); - - } - - return pmicStatus; -} - -/*! - * \brief API to Set Enable/Disable Crystal Oscillator and Select Crystal - * Oscillator type Configuration - */ -static int32_t Pmic_rtcSetCrystalOscCfg(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_RtcCfg_t rtcCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(((bool)true == pmic_validParamCheck( - rtcCfg.validParams, - PMIC_RTC_CFG_CRYSTAL_OSC_EN_VALID))) - { - /* Enable/Disable Crystal Oscillator */ - pmicStatus = Pmic_rtcEnableCrystalOsc(pPmicCoreHandle, rtcCfg); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck( - rtcCfg.validParams, - PMIC_RTC_CFG_CRYSTAL_OSC_TYPE_VALID))) - { - /* Select Crystal Oscillator type */ - pmicStatus = Pmic_rtcSelectCrystalOscType(pPmicCoreHandle, rtcCfg); - } - - return pmicStatus; -} - -/*! - * \brief API to Set PMIC RTC Configuration - * - * Requirement: REQ_TAG(PDK-9141), REQ_TAG(PDK-9135), REQ_TAG(PDK-9111) - * Design: did_pmic_rtc_cfg_readback - * Architecture: aid_pmic_rtc_cfg - * - * This function is used to set RTC configuration depending upon the - * bit fields set in validParams of Pmic_RtcCfg_t structure. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param rtcCfg [IN] Set required RTC configuration - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes. - */ -int32_t Pmic_rtcSetConfiguration(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_RtcCfg_t rtcCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)false == pPmicCoreHandle->pPmic_SubSysInfo->rtcEnable)) - { - pmicStatus = PMIC_ST_ERR_INV_DEVICE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck( - rtcCfg.validParams, - PMIC_RTC_CFG_32K_COUNTER_COMP_VAL_SET_VALID))) - { - /* Set 32K counter with compensation values */ - pmicStatus = Pmic_rtcSet32KCounterCompVal(pPmicCoreHandle, rtcCfg); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Set Enable/Disable Crystal Oscillator / Select Crystal Oscillator type Cfg*/ - pmicStatus = Pmic_rtcSetCrystalOscCfg(pPmicCoreHandle, rtcCfg); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck( - rtcCfg.validParams, - PMIC_RTC_CFG_RTC_TIME_ROUND_30S_SET_VALID))) - { - /* Set RTC time config to Round the time to closest minute */ - pmicStatus = Pmic_rtcSetRtcTimeRound30s(pPmicCoreHandle, rtcCfg); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck( - rtcCfg.validParams, - PMIC_RTC_CFG_TIME_DATE_REG_SEL_VALID))) - { - /* Select RTC Time and Date Register read from Dynamic or - Static Shadowed Registers */ - pmicStatus = Pmic_rtcSelectTimeDateReg(pPmicCoreHandle, rtcCfg); - } - - return pmicStatus; -} - -/*! - * \brief API to Get PMIC RTC Configuration - * - * Requirement: REQ_TAG(PDK-9141), REQ_TAG(PDK-9135) - * Design: did_pmic_rtc_cfg_readback - * Architecture: aid_pmic_rtc_cfg - * - * This function is used to Get RTC configuration depending upon the - * bit fields set in validParams of Pmic_RtcCfg_t structure. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param pRtcCfg [IN/OUT] Pointer to store required RTC - * configuration - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values \ref Pmic_ErrorCodes. - */ -int32_t Pmic_rtcGetConfiguration(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_RtcCfg_t *pRtcCfg) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - if(NULL == pPmicCoreHandle) - { - pmicStatus = PMIC_ST_ERR_INV_HANDLE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)false == pPmicCoreHandle->pPmic_SubSysInfo->rtcEnable)) - { - pmicStatus = PMIC_ST_ERR_INV_DEVICE; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && (NULL == pRtcCfg)) - { - pmicStatus = PMIC_ST_ERR_NULL_PARAM; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck( - pRtcCfg->validParams, - PMIC_RTC_CFG_32K_COUNTER_COMP_VAL_SET_VALID))) - { - /* Get RTC configuration of 32K counter with compensation value is set - * or not */ - pmicStatus = Pmic_rtcGet32KCounterCompValCfg(pPmicCoreHandle, pRtcCfg); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck(pRtcCfg->validParams, - PMIC_RTC_CFG_CRYSTAL_OSC_EN_VALID))) - { - /* Get Crystal Oscillator is enabled or not*/ - pmicStatus = Pmic_rtcGetCrystalOscEnCfg(pPmicCoreHandle, pRtcCfg); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck( - pRtcCfg->validParams, - PMIC_RTC_CFG_RTC_TIME_ROUND_30S_SET_VALID))) - { - /* Get the status of RTC time config to Round the time to closest - * minute is set or not */ - pmicStatus = Pmic_rtcGetRtcTimeRound30s(pPmicCoreHandle, pRtcCfg); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck( - pRtcCfg->validParams, - PMIC_RTC_CFG_TIME_DATE_REG_SEL_VALID))) - { - /* Get config of RTC Time and Date Register read from Dynamic or - Static Shadowed Registers */ - pmicStatus = Pmic_rtcGetTimeDateRegCfg(pPmicCoreHandle, pRtcCfg); - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((bool)true == pmic_validParamCheck( - pRtcCfg->validParams, - PMIC_RTC_CFG_CRYSTAL_OSC_TYPE_VALID))) - { - /* Get Crystal Oscillator type configuration */ - pmicStatus = Pmic_rtcGetCrystalOscTypeCfg(pPmicCoreHandle, pRtcCfg); - } - - return pmicStatus; -} - diff --git a/src/pmic_rtc_priv.h b/src/pmic_rtc_priv.h deleted file mode 100644 index db67237..0000000 --- a/src/pmic_rtc_priv.h +++ /dev/null @@ -1,139 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ - -/** - * \file pmic_rtc_priv.h - * - * \brief The macro definitions, structures and function prototypes for - * configuring PMIC RTC - */ - -#ifndef PMIC_RTC_PRIV_H_ -#define PMIC_RTC_PRIV_H_ - -/* ========================================================================= */ -/* Include Files */ -/* ========================================================================= */ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* ========================================================================= */ -/* Macros & Typedefs */ -/* ========================================================================= */ -/*! - * \brief RTC max value for Minutes and Seconds - */ -#define PMIC_RTC_MINUTE_SEC_MAX (59U) - -/*! - * \brief RTC 12 Hour Time values limit - */ -#define PMIC_RTC_12HFMT_HR_MIN (1U) -#define PMIC_RTC_12HFMT_HR_MAX (12U) - -/*! - * \brief RTC 24 Hour Time values limit - */ -#define PMIC_RTC_24HFMT_HR_MAX (23U) - -/*! - * \brief RTC month min values - */ -#define PMIC_RTC_DAY_MIN (1U) - -/*! - * \brief RTC years values limit - */ -#define PMIC_RTC_YEAR_MIN (2000U) -#define PMIC_RTC_YEAR_MAX (2099U) - -/*! - * \brief RTC month max value for - * February month in a Non-leap year. - */ -#define PMIC_RTC_NLPY_FEB_MNTH_DAY_MAX (28U) - -/*! - * \brief RTC month max value for - * February month in a leap year. - */ -#define PMIC_RTC_LPY_FEB_MNTH_DAY_MAX (29U) - -/*! - * \brief RTC month max value for - * general months. - */ -#define PMIC_RTC_MNTH_DAY_MAX_30 (30U) -#define PMIC_RTC_MNTH_DAY_MAX_31 (31U) - -/*! - * \brief Used to Extract the First and Second - * digits of RTC Timer/Alarm decimal Values - * - */ -#define PMIC_RTC_CONVERT_4BIT_MSB_TO_DEC (10U) - -/*! - * \brief Used to Extract last two decimal digits of given Year. - */ -#define PMIC_RTC_EXTRACT_YEAR_DECIMAL_0_99 (100U) - -/*! - * \brief RTC Auto Compensation ON Value - */ -#define PMIC_RTC_AUTO_COMP_ON (0x1U) - -/** - * \brief PMIC RTC Operations for RTC/ALARM - */ -#define PMIC_RTC_OPS_FOR_RTC ((bool)false) -#define PMIC_RTC_OPS_FOR_ALARM ((bool)true) - -/*==========================================================================*/ -/* Structures and Enums */ -/*==========================================================================*/ - -/*==========================================================================*/ -/* Function Declarations */ -/*==========================================================================*/ - -#ifdef __cplusplus -} - -#endif /* __cplusplus */ - -#endif /* PMIC_RTC_PRIV_H_ */ diff --git a/src/pmic_wdg.c b/src/pmic_wdg.c deleted file mode 100644 index 22a632c..0000000 --- a/src/pmic_wdg.c +++ /dev/null @@ -1,2407 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ - -/** - * @file pmic_wdg.c - * - * @brief This file contains the API definitions for PMIC Watchdog - * configuration - * - */ - -#include -#include - -/* - * \brief Function to Check pmic core handle - */ -static int32_t Pmic_checkPmicCoreHandle( - const Pmic_CoreHandle_t *pPmicCoreHandle) -{ - int32_t status = PMIC_ST_SUCCESS; - uint32_t drvInitStatus = 0U; - - /* Validate pPmicCoreHandle */ - if(NULL == pPmicCoreHandle) - { - status = PMIC_ST_ERR_INV_HANDLE; - } - - if(PMIC_ST_SUCCESS == status) - { - if(PMIC_INTF_SINGLE_I2C == pPmicCoreHandle->commMode) - { - drvInitStatus = DRV_INIT_SUCCESS | PMIC_MAIN_INST; - } - else if(PMIC_INTF_DUAL_I2C == pPmicCoreHandle->commMode) - { - drvInitStatus = DRV_INIT_SUCCESS | PMIC_MAIN_INST | PMIC_QA_INST; - } - else if(PMIC_INTF_SPI == pPmicCoreHandle->commMode) - { - drvInitStatus = DRV_INIT_SUCCESS | PMIC_MAIN_INST; - } - else - { - drvInitStatus = 0x00U; - } - - if(drvInitStatus != pPmicCoreHandle->drvInitStatus) - { - status = PMIC_ST_ERR_INV_HANDLE; - } - } - - return status; -} - -/* - * \brief Function to Check watchdog subsystem and pmic core handle - */ -static int32_t Pmic_WdgValidatePmicCoreHandle( - const Pmic_CoreHandle_t *pPmicCoreHandle) -{ - int32_t status = PMIC_ST_SUCCESS; - - status = Pmic_checkPmicCoreHandle(pPmicCoreHandle); - - /* Check the watch dog sub-system supported by pmic device */ - if(PMIC_ST_SUCCESS == status) - { - if(((bool)true) != pPmicCoreHandle->pPmic_SubSysInfo->wdgEnable) - { - status = PMIC_ST_ERR_INV_DEVICE; - } - } - - return status; -} - -/* - * \brief Function to covert wdg Long window time interval to WD_LONGWIN[7:0] - * bits for TPS6594x PMIC PG2.0 or LP8764x PMIC PG2.0 - */ -static uint8_t Pmic_WdgCovertLongWinTimeIntervaltoRegBits( - const Pmic_WdgCfg_t wdgCfg) -{ - uint8_t regVal = 0U, baseVal = 0U; - - if(PMIG_WD_LONGWIN_80_MILLISEC == wdgCfg.longWinDuration_ms) - { - regVal = PMIG_WD_LONGWIN_REG_VAL_0; - } - else if(wdgCfg.longWinDuration_ms <= - PMIG_WD_LONGWIN_8000_MILLISEC) - { - regVal = (uint8_t)(wdgCfg.longWinDuration_ms / - PMIG_WD_LONGWIN_MILLISEC_DIV_125); - } - else - { - baseVal = (uint8_t)(PMIG_WD_LONGWIN_8000_MILLISEC / - PMIG_WD_LONGWIN_MILLISEC_DIV_125); - regVal = baseVal + - ((uint8_t)((wdgCfg.longWinDuration_ms - - PMIG_WD_LONGWIN_8000_MILLISEC) / - PMIG_WD_LONGWIN_MILLISEC_DIV_4000)); - } - - return regVal; -} - -/* - * \brief Function to Set wdg window1 and window2 time interval - */ -static int32_t Pmic_WdgSetWindow1Window2TimeIntervals( - Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_WdgCfg_t wdgCfg) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regVal = 0U; - - /* Set wdg window1 time interval */ - if(((bool)true) == pmic_validParamCheck(wdgCfg.validParams, - PMIC_CFG_WDG_WIN1DURATION_VALID)) - { - if((PMIG_WD_WIN1_2_MICROSEC_MIN > wdgCfg.win1Duration_us) || - (PMIG_WD_WIN1_2_MICROSEC_MAX < wdgCfg.win1Duration_us)) - { - status = PMIC_ST_ERR_INV_WDG_WINDOW; - } - if(PMIC_ST_SUCCESS == status) - { - regVal = ((uint8_t)(wdgCfg.win1Duration_us / - PMIG_WD_WIN1_2_MICROSEC_DIV) - 1U); - regVal &= PMIC_WD_WIN1_CFG_WD_WIN1_MASK; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - status = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_WD_WIN1_CFG_REGADDR, - regVal); - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - } - - /* Set wdg window2 time interval */ - if((PMIC_ST_SUCCESS == status) && - (((bool)true) == pmic_validParamCheck(wdgCfg.validParams, - PMIC_CFG_WDG_WIN2DURATION_VALID))) - { - if((PMIG_WD_WIN1_2_MICROSEC_MIN > wdgCfg.win2Duration_us) || - (PMIG_WD_WIN1_2_MICROSEC_MAX < wdgCfg.win2Duration_us)) - { - status = PMIC_ST_ERR_INV_WDG_WINDOW; - } - if(PMIC_ST_SUCCESS == status) - { - regVal = ((uint8_t)(wdgCfg.win2Duration_us / - PMIG_WD_WIN1_2_MICROSEC_DIV) - 1U); - regVal &= PMIC_WD_WIN2_CFG_WD_WIN2_MASK; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - status = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_WD_WIN2_CFG_REGADDR, - regVal); - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - } - - return status; -} - -/* - * \brief Function to set watchdog windows time intervals - * Note: In this API, the default PMIC Revision is assumed as PG2.0 - * for LEO and HERA PMIC. While adding support for New PMIC - * Revision, developer need to update the API functionality for - * New PMIC Revision accordingly. - */ -static int32_t Pmic_WdgSetWindowsTimeIntervals( - Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_WdgCfg_t wdgCfg) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regVal = 0U; - - /* Set wdg long window time interval */ - if(((bool)true) == pmic_validParamCheck(wdgCfg.validParams, - PMIC_CFG_WDG_LONGWINDURATION_VALID)) - { - if(PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - if((PMIG_WD_LONGWIN_100_MILLISEC != wdgCfg.longWinDuration_ms) && - ((PMIG_WD_LONGWIN_MILLISEC_MIN > wdgCfg.longWinDuration_ms) || - (PMIG_WD_LONGWIN_MILLISEC_MAX < wdgCfg.longWinDuration_ms))) - { - status = PMIC_ST_ERR_INV_WDG_WINDOW; - } - - if(PMIC_ST_SUCCESS == status) - { - if(PMIG_WD_LONGWIN_100_MILLISEC == wdgCfg.longWinDuration_ms) - { - regVal = PMIG_WD_LONGWIN_REG_VAL_0; - } - else - { - regVal = (uint8_t)(wdgCfg.longWinDuration_ms / - PMIG_WD_LONGWIN_MILLISEC_DIV); - } - } - } - else - { - if((PMIG_WD_LONGWIN_80_MILLISEC != wdgCfg.longWinDuration_ms) && - ((PMIG_WD_LONGWIN_MILLISEC_MIN_PG_2_0 > - wdgCfg.longWinDuration_ms) || - (PMIG_WD_LONGWIN_MILLISEC_MAX_PG_2_0 < - wdgCfg.longWinDuration_ms))) - { - status = PMIC_ST_ERR_INV_WDG_WINDOW; - } - - if(PMIC_ST_SUCCESS == status) - { - regVal = Pmic_WdgCovertLongWinTimeIntervaltoRegBits(wdgCfg); - } - } - if(PMIC_ST_SUCCESS == status) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - - status = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_WD_LONGWIN_CFG_REGADDR, - regVal); - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - } - - if(PMIC_ST_SUCCESS == status) - { - /* Set wdg window1 and window2 time interval */ - status = Pmic_WdgSetWindow1Window2TimeIntervals(pPmicCoreHandle, - wdgCfg); - } - - return status; -} - -/* - * \brief Function to Get wdg window1 and window2 time interval - */ -static int32_t Pmic_WdgGetWindow1Window2TimeIntervals( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_WdgCfg_t *pWdgCfg) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regVal = 0U; - - /* Get wdg window1 time interval */ - if(((bool)true) == pmic_validParamCheck(pWdgCfg->validParams, - PMIC_CFG_WDG_WIN1DURATION_VALID)) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_WD_WIN1_CFG_REGADDR, - ®Val); - - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == status) - { - regVal &= PMIC_WD_WIN1_CFG_WD_WIN1_MASK; - - pWdgCfg->win1Duration_us = (((uint32_t)regVal) + 1U) * - ((uint32_t)PMIG_WD_WIN1_2_MICROSEC_DIV); - } - } - - /* Get wdg window2 time interval */ - if((PMIC_ST_SUCCESS == status) && - (((bool)true) == pmic_validParamCheck(pWdgCfg->validParams, - PMIC_CFG_WDG_WIN2DURATION_VALID))) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_WD_WIN2_CFG_REGADDR, - ®Val); - - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == status) - { - regVal &= PMIC_WD_WIN2_CFG_WD_WIN2_MASK; - - pWdgCfg->win2Duration_us = (((uint32_t)regVal) + 1U) * - ((uint32_t)PMIG_WD_WIN1_2_MICROSEC_DIV); - } - } - - return status; -} - -/* - * \brief Function to get watchdog windows time intervals - * Note: In this API, the default PMIC Revision is assumed as PG2.0 - * for LEO and HERA PMIC. While adding support for New PMIC - * Revision, developer need to update the API functionality for - * New PMIC Revision accordingly. - */ -static int32_t Pmic_WdgGetWindowsTimeIntervals( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_WdgCfg_t *pWdgCfg) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regVal = 0U; - - /* Get wdg long window time interval */ - if(((bool)true) == pmic_validParamCheck(pWdgCfg->validParams, - PMIC_CFG_WDG_LONGWINDURATION_VALID)) - { - Pmic_criticalSectionStart(pPmicCoreHandle); - - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_WD_LONGWIN_CFG_REGADDR, - ®Val); - - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == status) - { - if(PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - if(PMIG_WD_LONGWIN_REG_VAL_0 == regVal) - { - pWdgCfg->longWinDuration_ms = PMIG_WD_LONGWIN_100_MILLISEC; - } - else - { - pWdgCfg->longWinDuration_ms = ((uint32_t)regVal * - PMIG_WD_LONGWIN_MILLISEC_DIV); - } - } - else - { - if(PMIG_WD_LONGWIN_REG_VAL_0 == regVal) - { - pWdgCfg->longWinDuration_ms = PMIG_WD_LONGWIN_80_MILLISEC; - } - else if(regVal <= PMIG_WD_LONGWIN_REG_VAL_64) - { - pWdgCfg->longWinDuration_ms = ((uint32_t)regVal * - PMIG_WD_LONGWIN_MILLISEC_DIV_125); - } - else - { - pWdgCfg->longWinDuration_ms = - ((uint32_t)((((uint32_t)regVal) - - ((uint32_t)PMIG_WD_LONGWIN_REG_VAL_64)) * - ((uint32_t)PMIG_WD_LONGWIN_MILLISEC_DIV_4000))) + - PMIG_WD_LONGWIN_8000_MILLISEC; - } - } - } - } - - if(PMIC_ST_SUCCESS == status) - { - /* Get wdg window1 and window2 time interval */ - status = Pmic_WdgGetWindow1Window2TimeIntervals(pPmicCoreHandle, - pWdgCfg); - } - - return status; -} - -/* - * \brief Function to set watchdog Threshold values - */ -static int32_t Pmic_WdgSetThresholdValues(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_WdgCfg_t wdgCfg) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regVal = 0U; - - /* Set wdg fail threshold value */ - if(((bool)true) == pmic_validParamCheck(wdgCfg.validParams, - PMIC_CFG_WDG_FAILTHRESHOLD_VALID)) - { - if(wdgCfg.failThreshold > PMIC_WDG_FAIL_THRESHOLD_COUNT_7) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - Pmic_criticalSectionStart(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == status) - { - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_WD_THR_CFG_REGADDR, - ®Val); - } - if(PMIC_ST_SUCCESS == status) - { - Pmic_setBitField(®Val, - PMIC_WD_THR_CFG_WD_FAIL_TH_SHIFT, - PMIC_WD_THR_CFG_WD_FAIL_TH_MASK, - wdgCfg.failThreshold); - - status = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_WD_THR_CFG_REGADDR, - regVal); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - /* Set wdg reset threshold value */ - if((PMIC_ST_SUCCESS == status) && - (((bool)true) == pmic_validParamCheck(wdgCfg.validParams, - PMIC_CFG_WDG_RSTTHRESHOLD_VALID))) - { - if(wdgCfg.rstThreshold > PMIC_WDG_RESET_THRESHOLD_COUNT_7) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - Pmic_criticalSectionStart(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == status) - { - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_WD_THR_CFG_REGADDR, - ®Val); - } - - if(PMIC_ST_SUCCESS == status) - { - Pmic_setBitField(®Val, - PMIC_WD_THR_CFG_WD_RST_TH_SHIFT, - PMIC_WD_THR_CFG_WD_RST_TH_MASK, - wdgCfg.rstThreshold); - - status = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_WD_THR_CFG_REGADDR, - regVal); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return status; -} - -/* - * \brief Function to get watchdog Threshold values - */ -static int32_t Pmic_WdgGetThresholdValues(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_WdgCfg_t *pWdgCfg) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regVal = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_WD_THR_CFG_REGADDR, - ®Val); - - Pmic_criticalSectionStop(pPmicCoreHandle); - - /* Get wdg fail threshold value */ - if((PMIC_ST_SUCCESS == status) && - (((bool)true) == pmic_validParamCheck(pWdgCfg->validParams, - PMIC_CFG_WDG_FAILTHRESHOLD_VALID))) - { - pWdgCfg->failThreshold = Pmic_getBitField( - regVal, - PMIC_WD_THR_CFG_WD_FAIL_TH_SHIFT, - PMIC_WD_THR_CFG_WD_FAIL_TH_MASK); - - } - - /* Get wdg reset threshold value */ - if((PMIC_ST_SUCCESS == status) && - (((bool)true) == pmic_validParamCheck(pWdgCfg->validParams, - PMIC_CFG_WDG_RSTTHRESHOLD_VALID))) - { - pWdgCfg->rstThreshold = Pmic_getBitField( - regVal, - PMIC_WD_THR_CFG_WD_RST_TH_SHIFT, - PMIC_WD_THR_CFG_WD_RST_TH_MASK); - } - - /* Get wdg warm reset value */ - if((PMIC_ST_SUCCESS == status) && - (((bool)true) == pmic_validParamCheck(pWdgCfg->validParams, - PMIC_CFG_WDG_RSTENABLE_VALID))) - { - if(Pmic_getBitField( - regVal, - PMIC_WD_THR_CFG_WD_RST_EN_SHIFT, - PMIC_WD_THR_CFG_WD_RST_EN_MASK) != 0U) - { - pWdgCfg->rstEnable = (bool)true; - } - else - { - pWdgCfg->rstEnable = (bool)false; - } - - } - - return status; -} - -/* - * \brief Function to set watchdog return long window control - */ -static int32_t Pmic_WdgSetRetToLongWindowCfg(Pmic_CoreHandle_t *pPmicCoreHandle, - bool enable) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regVal = 0U; - uint8_t enableVal = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_WD_MODE_REG_REGADDR, - ®Val); - - if(PMIC_ST_SUCCESS == status) - { - if(((bool)true) == enable) - { - enableVal = 1U; - } - - Pmic_setBitField(®Val, - PMIC_WD_MODE_REG_WD_RETURN_LONGWIN_SHIFT, - PMIC_WD_MODE_REG_WD_RETURN_LONGWIN_MASK, - enableVal); - - status = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_WD_MODE_REG_REGADDR, - regVal); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - return status; -} - -/* - * \brief Function to set wdg warm reset enable value - */ -static int32_t Pmic_WdgSetWarmRstEnableCfg(Pmic_CoreHandle_t *pPmicCoreHandle, - bool enable) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regVal = 0U; - uint8_t rstEnableVal = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_WD_THR_CFG_REGADDR, - ®Val); - - if(PMIC_ST_SUCCESS == status) - { - if(((bool)true) == enable) - { - rstEnableVal = 1U; - } - - Pmic_setBitField(®Val, - PMIC_WD_THR_CFG_WD_RST_EN_SHIFT, - PMIC_WD_THR_CFG_WD_RST_EN_MASK, - rstEnableVal); - - status = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_WD_THR_CFG_REGADDR, - regVal); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - return status; -} - -/* - * \brief Function to set wdg power hold value - */ -static int32_t Pmic_WdgSetPwrHoldCfg(Pmic_CoreHandle_t *pPmicCoreHandle, - bool enable) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regVal = 0U; - uint8_t pwrHoldVal = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_WD_MODE_REG_REGADDR, - ®Val); - - if(PMIC_ST_SUCCESS == status) - { - if(((bool)true) == enable) - { - pwrHoldVal = 1U; - } - - Pmic_setBitField(®Val, - PMIC_WD_MODE_REG_WD_PWRHOLD_SHIFT, - PMIC_WD_MODE_REG_WD_PWRHOLD_MASK, - pwrHoldVal); - - status = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_WD_MODE_REG_REGADDR, - regVal); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - return status; -} - -/* - * \brief Function to set wdg Mode - */ -static int32_t Pmic_WdgSetModeCfg(Pmic_CoreHandle_t *pPmicCoreHandle, - bool enable) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regVal = 0U; - uint8_t wdgModeVal = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_WD_MODE_REG_REGADDR, - ®Val); - if(PMIC_ST_SUCCESS == status) - { - if(((bool)true) == enable) - { - wdgModeVal = 1U; - } - - Pmic_setBitField(®Val, - PMIC_WD_MODE_REG_WD_MODE_SELECT_SHIFT, - PMIC_WD_MODE_REG_WD_MODE_SELECT_MASK, - wdgModeVal); - - status = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_WD_MODE_REG_REGADDR, - regVal); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - return status; -} - -/* - * \brief Function to set watchdog control parameters - */ -static int32_t Pmic_WdgSetCtrlParams(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_WdgCfg_t wdgCfg) -{ - int32_t status = PMIC_ST_SUCCESS; - - /* Set wdg mode */ - if(((bool)true) == pmic_validParamCheck(wdgCfg.validParams, - PMIC_CFG_WDG_WDGMODE_VALID)) - { - status = Pmic_WdgSetModeCfg(pPmicCoreHandle, - wdgCfg.wdgMode); - } - - /* Set wdg power hold value */ - if((PMIC_ST_SUCCESS == status) && - (((bool)true) == pmic_validParamCheck(wdgCfg.validParams, - PMIC_CFG_WDG_PWRHOLD_VALID))) - { - status = Pmic_WdgSetPwrHoldCfg(pPmicCoreHandle, - wdgCfg.pwrHold); - } - - /* Set wdg warm reset enable value */ - if((PMIC_ST_SUCCESS == status) && - (((bool)true) == pmic_validParamCheck(wdgCfg.validParams, - PMIC_CFG_WDG_RSTENABLE_VALID))) - { - status = Pmic_WdgSetWarmRstEnableCfg(pPmicCoreHandle, - wdgCfg.rstEnable); - } - - /* Set wdg return to long window bit */ - if((PMIC_ST_SUCCESS == status) && - (((bool)true) == pmic_validParamCheck(wdgCfg.validParams, - PMIC_CFG_WDG_RETLONGWIN_VALID))) - { - - status = Pmic_WdgSetRetToLongWindowCfg(pPmicCoreHandle, - wdgCfg.retLongWin); - } - - return status; -} - -/* - * \brief Function to get watchdog control parameters - */ -static int32_t Pmic_WdgGetCtrlParams(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_WdgCfg_t *pWdgCfg) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regVal = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_WD_MODE_REG_REGADDR, - ®Val); - - Pmic_criticalSectionStop(pPmicCoreHandle); - - /* Get wdg mode */ - if((PMIC_ST_SUCCESS == status) && - (((bool)true) == pmic_validParamCheck(pWdgCfg->validParams, - PMIC_CFG_WDG_WDGMODE_VALID))) - { - if(Pmic_getBitField(regVal, - PMIC_WD_MODE_REG_WD_MODE_SELECT_SHIFT, - PMIC_WD_MODE_REG_WD_MODE_SELECT_MASK) != 0U) - { - pWdgCfg->wdgMode = (bool)true; - } - else - { - pWdgCfg->wdgMode = (bool)false; - } - - } - - /* Get wdg power hold value */ - if((PMIC_ST_SUCCESS == status) && - (((bool)true) == pmic_validParamCheck(pWdgCfg->validParams, - PMIC_CFG_WDG_PWRHOLD_VALID))) - { - if(Pmic_getBitField(regVal, - PMIC_WD_MODE_REG_WD_PWRHOLD_SHIFT, - PMIC_WD_MODE_REG_WD_PWRHOLD_MASK) != 0U) - { - pWdgCfg->pwrHold = (bool)true; - } - else - { - pWdgCfg->pwrHold = (bool)false; - } - - } - - /* Get wdg return to long window bit */ - if((PMIC_ST_SUCCESS == status) && - (((bool)true) == pmic_validParamCheck(pWdgCfg->validParams, - PMIC_CFG_WDG_RETLONGWIN_VALID))) - { - if(Pmic_getBitField(regVal, - PMIC_WD_MODE_REG_WD_RETURN_LONGWIN_SHIFT, - PMIC_WD_MODE_REG_WD_RETURN_LONGWIN_MASK) != 0U) - { - pWdgCfg->retLongWin = (bool)true; - } - else - { - pWdgCfg->retLongWin = (bool)false; - } - - } - - return status; -} - -/* - * \brief Function to set watchdog QA Question Seed value - */ -static int32_t Pmic_wdgSetQaQuesSeedValue(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_WdgCfg_t wdgCfg) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regVal = 0U; - - /* Set wdg QA Question Seed value */ - if(((bool)true) == pmic_validParamCheck(wdgCfg.validParams, - PMIC_CFG_WDG_QA_QUES_SEED_VALID)) - { - if(wdgCfg.qaQuesSeed > PMIC_WDG_QA_QUES_SEED_VALUE_15) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - Pmic_criticalSectionStart(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == status) - { - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_WD_QA_CFG_REGADDR, - ®Val); - } - - if(PMIC_ST_SUCCESS == status) - { - Pmic_setBitField(®Val, - PMIC_WD_QA_CFG_WD_QUESTION_SEED_SHIFT, - PMIC_WD_QA_CFG_WD_QUESTION_SEED_MASK, - wdgCfg.qaQuesSeed); - - status = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_WD_QA_CFG_REGADDR, - regVal); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return status; -} - - -/* - * \brief Function to set watchdog QA configurations - */ -static int32_t Pmic_WdgSetQaConfigurations( - Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_WdgCfg_t wdgCfg) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regVal = 0U; - - /* Set wdg QA Feedback value */ - if(((bool)true) == pmic_validParamCheck(wdgCfg.validParams, - PMIC_CFG_WDG_QA_FDBK_VALID)) - { - if(wdgCfg.qaFdbk > PMIC_WDG_QA_FEEDBACK_VALUE_3) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - Pmic_criticalSectionStart(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == status) - { - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_WD_QA_CFG_REGADDR, - ®Val); - } - if(PMIC_ST_SUCCESS == status) - { - Pmic_setBitField(®Val, - PMIC_WD_QA_CFG_WD_QA_FDBK_SHIFT, - PMIC_WD_QA_CFG_WD_QA_FDBK_MASK, - wdgCfg.qaFdbk); - - status = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_WD_QA_CFG_REGADDR, - regVal); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - /* Set wdg QA LFSR value */ - if((PMIC_ST_SUCCESS == status) && - (((bool)true) == pmic_validParamCheck(wdgCfg.validParams, - PMIC_CFG_WDG_QA_LFSR_VALID))) - { - if(wdgCfg.qaLfsr > PMIC_WDG_QA_LFSR_VALUE_3) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - Pmic_criticalSectionStart(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == status) - { - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_WD_QA_CFG_REGADDR, - ®Val); - } - - if(PMIC_ST_SUCCESS == status) - { - Pmic_setBitField(®Val, - PMIC_WD_QA_CFG_WD_QA_LFSR_SHIFT, - PMIC_WD_QA_CFG_WD_QA_LFSR_MASK, - wdgCfg.qaLfsr); - - status = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_WD_QA_CFG_REGADDR, - regVal); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - if(PMIC_ST_SUCCESS == status) - { - /* Set wdg QA Question Seed value */ - status = Pmic_wdgSetQaQuesSeedValue(pPmicCoreHandle, wdgCfg); - } - - return status; -} - -/* - * \brief Function to get watchdog QA configurations - */ -static int32_t Pmic_WdgGetQaConfigurations( - Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_WdgCfg_t *pWdgCfg) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regVal = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_WD_QA_CFG_REGADDR, - ®Val); - - Pmic_criticalSectionStop(pPmicCoreHandle); - - /* Get wdg QA Feedback value */ - if((PMIC_ST_SUCCESS == status) && - (((bool)true) == pmic_validParamCheck(pWdgCfg->validParams, - PMIC_CFG_WDG_QA_FDBK_VALID))) - { - pWdgCfg->qaFdbk = - Pmic_getBitField(regVal, - PMIC_WD_QA_CFG_WD_QA_FDBK_SHIFT, - PMIC_WD_QA_CFG_WD_QA_FDBK_MASK); - } - - /* Get wdg QA LFSR value */ - if((PMIC_ST_SUCCESS == status) && - (((bool)true) == pmic_validParamCheck(pWdgCfg->validParams, - PMIC_CFG_WDG_QA_LFSR_VALID))) - { - pWdgCfg->qaLfsr = - Pmic_getBitField(regVal, - PMIC_WD_QA_CFG_WD_QA_LFSR_SHIFT, - PMIC_WD_QA_CFG_WD_QA_LFSR_MASK); - } - - /* Get wdg QA Question Seed value */ - if((PMIC_ST_SUCCESS == status) && - (((bool)true) == pmic_validParamCheck(pWdgCfg->validParams, - PMIC_CFG_WDG_QA_QUES_SEED_VALID))) - { - pWdgCfg->qaQuesSeed = - Pmic_getBitField(regVal, - PMIC_WD_QA_CFG_WD_QUESTION_SEED_SHIFT, - PMIC_WD_QA_CFG_WD_QUESTION_SEED_MASK); - } - - return status; -} - -/* - * \brief Function to Enable/Disable Watchdog Timer - */ -static int32_t Pmic_wdgEnDisState(Pmic_CoreHandle_t *pPmicCoreHandle, - bool enable) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regVal = 0U; - uint8_t enableVal = 0U; - - Pmic_criticalSectionStart(pPmicCoreHandle); - - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_WD_THR_CFG_REGADDR, - ®Val); - - if(PMIC_ST_SUCCESS == status) - { - if(((bool)true) == enable) - { - enableVal = 1U; - } - - Pmic_setBitField(®Val, - PMIC_WD_THR_CFG_WD_EN_SHIFT, - PMIC_WD_THR_CFG_WD_EN_MASK, - enableVal); - - status = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_WD_THR_CFG_REGADDR, - regVal); - } - - Pmic_criticalSectionStop(pPmicCoreHandle); - - return status; -} - -/* - * \brief Function to get watchdog QA answer count and question value - */ -static int32_t Pmic_wdgReadQuesandAnswerCount( - Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t *pQaAnsCnt, - uint8_t *pQaQuesCnt) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regVal = 0U; - - /*! Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - /*! Reading answer count and question value */ - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_WD_QUESTION_ANSW_CNT_REGADDR, - ®Val); - - /*! Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == status) - { - *pQaAnsCnt = Pmic_getBitField( - regVal, - PMIC_WD_QUESTION_ANSW_CNT_WD_ANSW_CNT_SHIFT, - PMIC_WD_QUESTION_ANSW_CNT_WD_ANSW_CNT_MASK); - *pQaQuesCnt = Pmic_getBitField( - regVal, - PMIC_WD_QUESTION_ANSW_CNT_WD_QUESTION_SHIFT, - PMIC_WD_QUESTION_ANSW_CNT_WD_QUESTION_MASK); - } - - return status; -} - -/* - * \brief Function to get watchdog bad event - */ -static bool is_wdgBadEventDetected(Pmic_CoreHandle_t *pPmicCoreHandle) -{ - uint8_t regVal = 0U; - bool bitFieldVal = (bool)false; - int32_t status = PMIC_ST_SUCCESS; - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_WD_FAIL_CNT_REG_REGADDR, - ®Val); - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if((PMIC_ST_SUCCESS == status) && - (Pmic_getBitField(regVal, - PMIC_WD_FAIL_CNT_REG_WD_BAD_EVENT_SHIFT, - PMIC_WD_FAIL_CNT_REG_WD_BAD_EVENT_MASK) != 0U)) - { - bitFieldVal = (bool)true; - } - - return bitFieldVal; -} - -/* - * \brief Function to get 4X1 mux output. - * - * Note: In this API, the default case is for qaFdbk value is 3U. - */ -static uint8_t mux_4x1(uint8_t x0, - uint8_t x1, - uint8_t x2, - uint8_t x3, - uint8_t qaFdbk) -{ - uint8_t y = 0U; - - switch(qaFdbk) - { - case 0U: - y = x0; - break; - case 1U: - y = x1; - break; - case 2U: - y = x2; - break; - default: - y = x3; - break; - } - - return y; -} - -/* - * \brief Function to Evaluate Watchdog Answers - */ -static uint8_t Pmic_getAnswerByte(uint8_t qaQuesCnt, - uint8_t qaAnsCnt, - uint8_t qaFdbk) -{ - uint8_t q0 = 0U, q1 = 0U, q2 = 0U, q3 = 0U; - uint8_t a0 = 0U, a1 = 0U; - uint8_t qaAns = 0U; - - q0 = ((qaQuesCnt >> 0U) & 1U); - q1 = ((qaQuesCnt >> 1U) & 1U); - q2 = ((qaQuesCnt >> 2U) & 1U); - q3 = ((qaQuesCnt >> 3U) & 1U); - - a0 = ((qaAnsCnt >> 0U) & 1U); - a1 = ((qaAnsCnt >> 1U) & 1U); - - /* Reference-Answer-X[0] */ - qaAns = (mux_4x1(q0, q1, q2, q3, qaFdbk) - ^ mux_4x1(q3, q0, q1, q2, qaFdbk) - ^ a1); - /* Reference-Answer-X[1] */ - qaAns |= (((mux_4x1(q0, q1, q2, q3, qaFdbk) - ^ mux_4x1(q2, q0, q1, q3, qaFdbk) - ^ a1 ^ q1)) << 1U); - /* Reference-Answer-X[2] */ - qaAns |= (((mux_4x1(q0, q1, q2, q3, qaFdbk) - ^ mux_4x1(q3, q0, q1, q2, qaFdbk) - ^ a1 ^ q1)) << 2U); - /* Reference-Answer-X[3] */ - qaAns |= (((mux_4x1(q0, q1, q2, q3, qaFdbk) - ^ mux_4x1(q2, q0, q1, q3, qaFdbk) - ^ a1 ^ q3)) << 3U); - /* Reference-Answer-X[4] */ - qaAns |= (((mux_4x1(q1, q0, q2, q3, qaFdbk) - ^ a0)) << 4U); - /* Reference-Answer-X[5] */ - qaAns |= (((mux_4x1(q3, q0, q1, q2, qaFdbk) - ^ a0)) << 5U); - /* Reference-Answer-X[6] */ - qaAns |= (((mux_4x1(q0, q1, q2, q3, qaFdbk) - ^ a0)) << 6U); - /* Reference-Answer-X[7] */ - qaAns |= (((mux_4x1(q2, q0, q1, q2, qaFdbk) - ^ a0)) << 7U); - - return qaAns; -} - -/* - * \brief Function to Evaluate and write Watchdog Answer based on - * qaFdbk, qaAnsCnt and qaQuesCnt Value - */ -static int32_t Pmic_wdgQaEvaluateAndWriteAnswer( - Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t qaAnsCnt, - uint8_t qaQuesCnt, - uint8_t qaFdbk) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t answer = 0U; - - answer = Pmic_getAnswerByte(qaQuesCnt, qaAnsCnt, qaFdbk); - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - /*! Writing watch dog four Answers */ - status = Pmic_commIntf_sendByte( - pPmicCoreHandle, - PMIC_WD_ANSWER_REG_REGADDR, - answer); - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - return status; -} - -/* - * \brief Function to Evaluate and write Watchdog Four Answers based on - * qaFdbk Value - */ -static int32_t Pmic_wdgQaEvaluateAndWriteAnswers( - Pmic_CoreHandle_t *pPmicCoreHandle, - uint8_t qaFdbk) -{ - int32_t status = PMIC_ST_SUCCESS; - int8_t ansIndex = 0; - uint8_t qaAnsCnt = 0U; - uint8_t qaQuesCnt = 0U; - - for(ansIndex = 3; ansIndex >= 0; ansIndex--) - { - if(PMIC_ST_SUCCESS == status) - { - status = Pmic_wdgReadQuesandAnswerCount(pPmicCoreHandle, - &qaAnsCnt, - &qaQuesCnt); - } - - if((PMIC_ST_SUCCESS == status) && (qaAnsCnt == ((uint8_t)ansIndex))) - { - status = Pmic_wdgQaEvaluateAndWriteAnswer(pPmicCoreHandle, - qaAnsCnt, - qaQuesCnt, - qaFdbk); - - if((PMIC_ST_SUCCESS == status) && - (((bool)true) == is_wdgBadEventDetected(pPmicCoreHandle))) - { - status = PMIC_ST_ERR_INV_WDG_ANSWER; - break; - } - } - } - - return status; -} - -/* - * \brief Function to Evaluate and write Watchdog Four Answers - */ -static int32_t Pmic_wdgQaWriteAnswers(Pmic_CoreHandle_t *pPmicCoreHandle) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t qaFdbk = 0U; - - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_WD_QA_CFG_REGADDR, - &qaFdbk); - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - /* Get wdg QA Feedback value */ - if(PMIC_ST_SUCCESS == status) - { - qaFdbk = Pmic_getBitField(qaFdbk, - PMIC_WD_QA_CFG_WD_QA_FDBK_SHIFT, - PMIC_WD_QA_CFG_WD_QA_FDBK_MASK); - } - - if(PMIC_ST_SUCCESS == status) - { - /* Evaluate and write Watchdog Four Answers based on qaFdbk Value*/ - status = Pmic_wdgQaEvaluateAndWriteAnswers(pPmicCoreHandle, qaFdbk); - } - - return status; -} - -/*! - * \brief API to Enable Watchdog timer. - * - * Requirement: REQ_TAG(PDK-5839), REQ_TAG(PDK-5854) - * Design: did_pmic_wdg_cfg_readback - * Architecture: aid_pmic_wdg_cfg - * - * This function is used to Enable the PMIC watchdog. User ensure - * that, this function needs to be called to enable watchdog timer - * before configuring or starting watchdog trigger or QA mode. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_wdgEnable(Pmic_CoreHandle_t *pPmicCoreHandle) -{ - int32_t status = PMIC_ST_SUCCESS; - - /* Validate pPmicCoreHandle and WDG subsystem */ - status = Pmic_WdgValidatePmicCoreHandle(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == status) - { - status = Pmic_wdgEnDisState(pPmicCoreHandle, PMIC_WDG_ENABLE); - } - - return status; -} - -/*! - * \brief API to Disable Watchdog timer. - * - * Requirement: REQ_TAG(PDK-5839), REQ_TAG(PDK-5854) - * Design: did_pmic_wdg_cfg_readback - * Architecture: aid_pmic_wdg_cfg - * - * This function is used to Disable the PMIC watchdog. User ensure - * that, after using this function, complete watchdog functionality - * and configuration will be deactivated. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_wdgDisable(Pmic_CoreHandle_t *pPmicCoreHandle) -{ - int32_t status = PMIC_ST_SUCCESS; - - /* Validate pPmicCoreHandle and WDG subsystem */ - status = Pmic_WdgValidatePmicCoreHandle(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == status) - { - status = Pmic_wdgEnDisState(pPmicCoreHandle, PMIC_WDG_DISABLE); - } - - return status; -} - -/*! - * \brief API to set PMIC watchdog configurations. - * - * Requirement: REQ_TAG(PDK-5839), REQ_TAG(PDK-5854) REQ_TAG(PDK-9115), - * REQ_TAG(PDK-9116) - * Design: did_pmic_wdg_cfg_readback - * Architecture: aid_pmic_wdg_cfg - * - * This function is used to configure the watchdog parameters - * in the PMIC for trigger mode or Q&A(question and answer) mode, - * when corresponding validParam bit fields are set in - * Pmic_WdgCfg_t structure. - * User has to call Pmic_wdgEnable() before set the configuration. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param wdgCfg [IN] Watchdog configuration - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_wdgSetCfg(Pmic_CoreHandle_t *pPmicCoreHandle, - const Pmic_WdgCfg_t wdgCfg) -{ - int32_t status = PMIC_ST_SUCCESS; - - /* Validate pPmicCoreHandle and WDG subsystem */ - status = Pmic_WdgValidatePmicCoreHandle(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == status) - { - status = Pmic_WdgSetWindowsTimeIntervals(pPmicCoreHandle, wdgCfg); - } - - if(PMIC_ST_SUCCESS == status) - { - status = Pmic_WdgSetThresholdValues(pPmicCoreHandle, wdgCfg); - } - - if(PMIC_ST_SUCCESS == status) - { - status = Pmic_WdgSetCtrlParams(pPmicCoreHandle, wdgCfg); - } - - if(PMIC_ST_SUCCESS == status) - { - status = Pmic_WdgSetQaConfigurations(pPmicCoreHandle, wdgCfg); - } - - return status; -} - -/*! - * \brief API to get PMIC watchdog configurations. - * - * Requirement: REQ_TAG(PDK-5839), REQ_TAG(PDK-5854), REQ_TAG(PDK-9115), - * REQ_TAG(PDK-9116) - * Design: did_pmic_wdg_cfg_readback - * Architecture: aid_pmic_wdg_cfg - * - * This function is used to get configuration of the watchdog - * from the PMIC for trigger mode or Q&A(question and answer) mode, - * when corresponding validParam bit fields are set in - * Pmic_WdgCfg_t structure. - * User has to call Pmic_wdgEnable() before get the configuration. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param pWdgCfg [IN/OUT] Watchdog configuration pointer - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_wdgGetCfg(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_WdgCfg_t *pWdgCfg) -{ - int32_t status = PMIC_ST_SUCCESS; - - /* Validate pPmicCoreHandle and WDG subsystem */ - status = Pmic_WdgValidatePmicCoreHandle(pPmicCoreHandle); - - if((PMIC_ST_SUCCESS == status) && (NULL == pWdgCfg)) - { - status = PMIC_ST_ERR_NULL_PARAM; - } - - if(PMIC_ST_SUCCESS == status) - { - status = Pmic_WdgGetWindowsTimeIntervals(pPmicCoreHandle, pWdgCfg); - } - - if(PMIC_ST_SUCCESS == status) - { - status = Pmic_WdgGetThresholdValues(pPmicCoreHandle, pWdgCfg); - } - - if(PMIC_ST_SUCCESS == status) - { - status = Pmic_WdgGetCtrlParams(pPmicCoreHandle, pWdgCfg); - } - - if(PMIC_ST_SUCCESS == status) - { - status = Pmic_WdgGetQaConfigurations(pPmicCoreHandle, pWdgCfg); - } - - return status; -} - -/* - * \brief API to set Watch Dog QA Mode, Disable ret to Long Window and - * Write Answers for Long Window - */ -static int32_t Pmic_wdgQaSetModeRetlongwinCfgWriteAnswersLongwindow( - Pmic_CoreHandle_t *pPmicCoreHandle) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regVal = 0x0U; - - /*! Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - /*! Reading watchdog mode value */ - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_WD_MODE_REG_REGADDR, - ®Val); - - if(PMIC_ST_SUCCESS == status) - { - Pmic_setBitField(®Val, - PMIC_WD_MODE_REG_WD_MODE_SELECT_SHIFT, - PMIC_WD_MODE_REG_WD_MODE_SELECT_MASK, - PMIC_WDG_QA_MODE); - /*! Set watchdog mode to QA mode */ - status = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_WD_MODE_REG_REGADDR, - regVal); - } - - /*! Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - /* Disable ret to Long Window */ - if(PMIC_ST_SUCCESS == status) - { - status = Pmic_WdgSetRetToLongWindowCfg(pPmicCoreHandle, - PMIC_WDG_RETLONGWIN_DISABLE); - } - - /* Clear WDG Error bits */ - if(PMIC_ST_SUCCESS == status) - { - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_WD_ERR_STATUS_REGADDR, - ®Val); - if(PMIC_ST_SUCCESS == status) - { - status = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_WD_ERR_STATUS_REGADDR, - regVal); - } - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - /* Write Answers for Long Window */ - if(PMIC_ST_SUCCESS == status) - { - status = Pmic_wdgQaWriteAnswers(pPmicCoreHandle); - if(PMIC_ST_ERR_INV_WDG_ANSWER == status) - { - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_WD_ERR_STATUS_REGADDR, - ®Val); - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == status) - { - if(0U != (regVal & 0x01U)) - { - status = PMIC_ST_ERR_INV_WDG_WINDOW; - } - } - } - } - - return status; -} - -/* - * \brief API to Write QA Answers for given numbers of sequences - */ -static int32_t Pmic_wdgQaWriteAnswersNumSequence( - Pmic_CoreHandle_t *pPmicCoreHandle, - uint32_t sequences, - uint32_t maxCnt) -{ - int32_t status = PMIC_ST_SUCCESS; - uint32_t loopCount = 0U; - uint8_t failCnt = 0U; - int8_t flag = 0; - uint8_t regVal = 0x0U; - uint32_t qaSequences = sequences; - - /* Write QA Answers for given numbers of sequences */ - while((PMIC_ST_SUCCESS == status) && - ((PMIC_WD_QA_INFINITE_SEQ == qaSequences) || - (qaSequences > 0U))) - { - /*! Write Answer to WDOG for the sequence */ - status = Pmic_wdgQaWriteAnswers(pPmicCoreHandle); - - if(PMIC_ST_ERR_INV_WDG_ANSWER == status) - { - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_WD_ERR_STATUS_REGADDR, - ®Val); - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == status) - { - if(0U != (regVal & 0x10U)) - { - status = PMIC_ST_ERR_INV_WDG_WINDOW; - break; - } - } - } - - /* Update loopCount value for while loop */ - loopCount = maxCnt; - while((PMIC_ST_SUCCESS == status) && (loopCount > 0U)) - { - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_WD_FAIL_CNT_REG_REGADDR, - &failCnt); - - if((PMIC_ST_SUCCESS == status) && (0U != (failCnt & 0x40U))) - { - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_WD_ERR_STATUS_REGADDR, - ®Val); - if((PMIC_ST_SUCCESS == status) && (0U != (regVal & 0x08U))) - { - status = PMIC_ST_ERR_WDG_EARLY_ANSWER; - } - - qaSequences = 0U; - flag = 1; - } - else - { - if((PMIC_ST_SUCCESS == status) && (0U != (failCnt & 0x20U))) - { - qaSequences--; - flag = 1; - } - } - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - - if(flag == 1) - { - break; - } - - loopCount--; - } - } - - return status; -} - -/*! - * \brief API to Start watchdog QA mode. - * - * Requirement: REQ_TAG(PDK-5839) - * Design: did_pmic_wdg_cfg_readback - * Architecture: aid_pmic_wdg_cfg - * - * This function is used to start watchdog sequence and continues - * till the given num_of_sequences. User has to ensure, configure - * all Watchdog QA parameters properly using Pmic_wdgSetCfg() API, - * before starting QA sequence using this API. User can use - * Pmic_wdgSetCfg() API to stop watchdog trigger mode. - * - * Note: To perform QA sequences, user has to adjust Long window - * time interval, Window1 time interval and Window2 time - * intervals depends on errors given by API. If user gets - * PMIC_ST_ERR_INV_WDG_WINDOW, then user has to increase the - * Long window or window1 time interval. If user gets - * PMIC_ST_ERR_WDG_EARLY_ANSWER, then user has to reduce - * the Window1 time interval. - * Application has to ensure to do proper configuration of WDG - * window time intervals. If not configured properly then WDG - * will trigger the warm reset to the PMIC device. This may cause - * system reset if PMIC is connected to SOC/MCU - * Application has to ensure to do proper configuration of WDG - * parameters. If not configured properly then API doesn't - * receive good or bad event from the PMIC FSM. Due to this API - * returns timeout error - * API receive bad event due to wrong answer then API detects and - * returns an error - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param num_of_sequences [IN] number of QA sequences. - * If PMIC_WD_QA_INFINITE_SEQ is used, - * then API runs for infinite sequence. - * \param maxCnt [IN] Number of iterations to wait for an - * Good/Bad event. The value should be greater - * than or equal to PMIC_WDG_WAIT_CNT_MIN_VAL. - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_wdgStartQaSequence(Pmic_CoreHandle_t *pPmicCoreHandle, - uint32_t num_of_sequences, - uint32_t maxCnt) -{ - int32_t status = PMIC_ST_SUCCESS; - uint32_t sequences = num_of_sequences; - uint8_t regVal = 0x0U; - - /* Validate pPmicCoreHandle and WDG subsystem */ - status = Pmic_WdgValidatePmicCoreHandle(pPmicCoreHandle); - - if((PMIC_ST_SUCCESS == status) && - (maxCnt < PMIC_WDG_WAIT_CNT_MIN_VAL)) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - /* Set Watch Dog QA Mode , Disable ret to Long Window and - * Write Answers for Long Window */ - if(PMIC_ST_SUCCESS == status) - { - status = Pmic_wdgQaSetModeRetlongwinCfgWriteAnswersLongwindow( - pPmicCoreHandle); - } - - /* Dummy Read operations to sync the WatchDog */ - if(PMIC_ST_SUCCESS == status) - { - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_WD_ERR_STATUS_REGADDR, - ®Val); - - if(PMIC_ST_SUCCESS == status) - { - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_WD_FAIL_CNT_REG_REGADDR, - ®Val); - } - - if(PMIC_ST_SUCCESS == status) - { - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_WD_FAIL_CNT_REG_REGADDR, - ®Val); - } - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - /* Write QA Answers for given numbers of sequences */ - if(PMIC_ST_SUCCESS == status) - { - status = Pmic_wdgQaWriteAnswersNumSequence(pPmicCoreHandle, - sequences, - maxCnt); - } - - if(PMIC_ST_SUCCESS == status) - { - /* Enable Return long window Enable */ - status = Pmic_WdgSetRetToLongWindowCfg(pPmicCoreHandle, - PMIC_WDG_RETLONGWIN_ENABLE); - } - - return status; -} - -/* - * \brief API to Get watchdog error status - SEQ_ERR, ANSW_ERR, FAIL_INT, - * RST_INT - */ -static void Pmic_wdgGetSeqAnswErrFailRstIntStat( - Pmic_WdgErrStatus_t *pErrStatus, - uint8_t regVal) -{ - - if(((bool)true) == pmic_validParamCheck(pErrStatus->validParams, - PMIC_CFG_WD_SEQ_ERR_ERRSTAT_VALID)) - { - if(Pmic_getBitField(regVal, - PMIC_WD_ERR_STATUS_WD_SEQ_ERR_SHIFT, - PMIC_WD_ERR_STATUS_WD_SEQ_ERR_MASK) != 0U) - { - pErrStatus->wdSeqErr = (bool)true; - } - else - { - pErrStatus->wdSeqErr = (bool)false; - } - - } - - if(((bool)true) == pmic_validParamCheck(pErrStatus->validParams, - PMIC_CFG_WD_ANSW_ERR_ERRSTAT_VALID)) - { - if(Pmic_getBitField(regVal, - PMIC_WD_ERR_STATUS_WD_ANSW_ERR_SHIFT, - PMIC_WD_ERR_STATUS_WD_ANSW_ERR_MASK) != 0U) - { - pErrStatus->wdAnswErr = (bool)true; - } - else - { - pErrStatus->wdAnswErr = (bool)false; - } - - } - if(((bool)true) == pmic_validParamCheck(pErrStatus->validParams, - PMIC_CFG_WD_FAIL_INT_ERRSTAT_VALID)) - { - if(Pmic_getBitField(regVal, - PMIC_WD_ERR_STATUS_WD_FAIL_INT_SHIFT, - PMIC_WD_ERR_STATUS_WD_FAIL_INT_MASK) != 0U) - { - pErrStatus->wdFailInt = (bool)true; - } - else - { - pErrStatus->wdFailInt = (bool)false; - } - - } - - if(((bool)true) == pmic_validParamCheck(pErrStatus->validParams, - PMIC_CFG_WD_RST_INT_ERRSTAT_VALID)) - { - if(Pmic_getBitField(regVal, - PMIC_WD_ERR_STATUS_WD_RST_INT_SHIFT, - PMIC_WD_ERR_STATUS_WD_RST_INT_MASK) != 0U) - { - pErrStatus->wdRstInt = (bool)true; - } - else - { - pErrStatus->wdRstInt = (bool)false; - } - - } -} - -/* - * \brief API to Get watchdog error status - TRIG_EARLY, TIMEOUT, - * LONGWIN_TIMEOUT_INT, ANSW_EARLY - */ -static void Pmic_wdgGetLongwintointTimeoutTrigAnswEarlyErrStat( - Pmic_WdgErrStatus_t *pErrStatus, - uint8_t regVal) -{ - - if(((bool)true) == pmic_validParamCheck(pErrStatus->validParams, - PMIC_CFG_WD_LONGWIN_TIMEOUT_ERRSTAT_VALID)) - { - if(Pmic_getBitField(regVal, - PMIC_WD_ERR_STATUS_WD_LONGWIN_TIMEOUT_INT_SHIFT, - PMIC_WD_ERR_STATUS_WD_LONGWIN_TIMEOUT_INT_MASK) != 0U) - { - pErrStatus->wdLongWinTimeout = (bool)true; - } - else - { - pErrStatus->wdLongWinTimeout = (bool)false; - } - - } - - if(((bool)true) == pmic_validParamCheck(pErrStatus->validParams, - PMIC_CFG_WD_TIMEOUT_ERRSTAT_VALID)) - { - if(Pmic_getBitField(regVal, - PMIC_WD_ERR_STATUS_WD_TIMEOUT_SHIFT, - PMIC_WD_ERR_STATUS_WD_TIMEOUT_MASK) != 0U) - { - pErrStatus->wdTimeout = (bool)true; - } - else - { - pErrStatus->wdTimeout = (bool)false; - } - - } - - if(((bool)true) == pmic_validParamCheck(pErrStatus->validParams, - PMIC_CFG_WD_TRIG_EARLY_ERRSTAT_VALID)) - { - if(Pmic_getBitField(regVal, - PMIC_WD_ERR_STATUS_WD_TRIG_EARLY_SHIFT, - PMIC_WD_ERR_STATUS_WD_TRIG_EARLY_MASK) != 0U) - { - pErrStatus->wdTrigEarly = (bool)true; - } - else - { - pErrStatus->wdTrigEarly = (bool)false; - } - - } - - /* Get watchdog error status */ - if(((bool)true) == pmic_validParamCheck(pErrStatus->validParams, - PMIC_CFG_WD_ANSW_EARLY_ERRSTAT_VALID)) - { - if(Pmic_getBitField(regVal, - PMIC_WD_ERR_STATUS_WD_ANSW_EARLY_SHIFT, - PMIC_WD_ERR_STATUS_WD_ANSW_EARLY_MASK) != 0U) - { - pErrStatus->wdAnswearly = (bool)true; - } - else - { - pErrStatus->wdAnswearly = (bool)false; - } - - } - -} - -/*! - * \brief API to get PMIC watchdog error status. - * - * Requirement: REQ_TAG(PDK-5839), REQ_TAG(PDK-5854) - * Design: did_pmic_wdg_cfg_readback - * Architecture: aid_pmic_wdg_cfg - * - * This function is used to get the watchdog error status from the - * PMIC for trigger mode or Q&A(question and answer) mode, - * when corresponding validParam bit fields are set in - * Pmic_WdgErrStatus_t structure. - * User has to call Pmic_wdgEnable() before getting the error status. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param pErrStatus [IN/OUT] Watchdog error status pointer - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_wdgGetErrorStatus(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_WdgErrStatus_t *pErrStatus) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regVal = 0x0U; - - /* Validate pPmicCoreHandle and WDG subsystem */ - status = Pmic_WdgValidatePmicCoreHandle(pPmicCoreHandle); - - if((PMIC_ST_SUCCESS == status) && (NULL == pErrStatus)) - { - status = PMIC_ST_ERR_NULL_PARAM; - } - - if(PMIC_ST_SUCCESS == status) - { - /*! Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - /*! Reading error status register */ - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_WD_ERR_STATUS_REGADDR, - ®Val); - - /*! Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - /* Get watchdog error status */ - if(PMIC_ST_SUCCESS == status) - { - /* Get watchdog error status - TRIG_EARLY, TIMEOUT, LONGWIN_TIMEOUT_INT, - * ANSW_EARLY*/ - Pmic_wdgGetLongwintointTimeoutTrigAnswEarlyErrStat(pErrStatus, regVal); - - /* Get watchdog error status - SEQ_ERR, ANSW_ERR, FAIL_INT, RST_INT */ - Pmic_wdgGetSeqAnswErrFailRstIntStat(pErrStatus, regVal); - } - - return status; -} - -/*! - * \brief API to get PMIC watchdog fail count status. - * - * Requirement: REQ_TAG(PDK-5839), REQ_TAG(PDK-5854) - * Design: did_pmic_wdg_cfg_readback - * Architecture: aid_pmic_wdg_cfg - * - * This function is used to get the watchdog fail count status from the - * PMIC for trigger mode or Q&A(question and answer) mode. - * User has to call Pmic_wdgEnable() before getting the fail count. - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param pFailCount [IN/OUT] Watchdog fail count pointer - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_wdgGetFailCntStat(Pmic_CoreHandle_t *pPmicCoreHandle, - Pmic_WdgFailCntStat_t *pFailCount) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regVal = 0x00U; - - /* Validate pPmicCoreHandle and WDG subsystem */ - status = Pmic_WdgValidatePmicCoreHandle(pPmicCoreHandle); - - if((PMIC_ST_SUCCESS == status) && (NULL == pFailCount)) - { - status = PMIC_ST_ERR_NULL_PARAM; - } - - if(PMIC_ST_SUCCESS == status) - { - /*! Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - /*! Reading error status register */ - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_WD_FAIL_CNT_REG_REGADDR, - ®Val); - - /*! Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - /* Get watchdog Bad Event status */ - if((PMIC_ST_SUCCESS == status) && - (((bool)true) == pmic_validParamCheck(pFailCount->validParams, - PMIC_CFG_WD_BAD_EVENT_STAT_VALID))) - { - if(Pmic_getBitField(regVal, - PMIC_WD_FAIL_CNT_REG_WD_BAD_EVENT_SHIFT, - PMIC_WD_FAIL_CNT_REG_WD_BAD_EVENT_MASK) != 0U) - { - pFailCount->wdBadEvent = (bool)true; - } - else - { - pFailCount->wdBadEvent = (bool)false; - } - - } - - /* Get watchdog Good Event status */ - if((PMIC_ST_SUCCESS == status) && - (((bool)true) == pmic_validParamCheck(pFailCount->validParams, - PMIC_CFG_WD_GOOD_EVENT_STAT_VALID))) - { - if(Pmic_getBitField(regVal, - PMIC_WD_FAIL_CNT_REG_WD_FIRST_OK_SHIFT, - PMIC_WD_FAIL_CNT_REG_WD_FIRST_OK_MASK) != 0U) - { - pFailCount->wdGudEvent = (bool)true; - } - else - { - pFailCount->wdGudEvent = (bool)false; - } - - } - - /* Get watchdog Fail count Value */ - if((PMIC_ST_SUCCESS == status) && - (((bool)true) == pmic_validParamCheck(pFailCount->validParams, - PMIC_CFG_WD_FAIL_CNT_VAL_VALID))) - { - pFailCount->wdFailCnt = Pmic_getBitField(regVal, - PMIC_WD_FAIL_CNT_REG_WD_FAIL_CNT_SHIFT, - PMIC_WD_FAIL_CNT_REG_WD_FAIL_CNT_MASK); - } - - return status; -} - -/*! - * \brief API to Start watchdog Trigger mode. - * - * Requirement: REQ_TAG(PDK-5854) - * Design: did_pmic_wdg_cfg_readback - * Architecture: aid_pmic_wdg_cfg - * - * This function is used to start watchdog trigger mode. - * User has to ensure, configure all Watchdog trigger parameters - * properly using Pmic_wdgSetCfg() API, before starting watchdog - * trigger mode using this API. User can use Pmic_wdgSetCfg() API - * to stop watchdog trigger mode. - * - * Note: To perform watchdog trigger mode, user has to - * adjust Long window time interval, Window1 time interval - * and Window2 time inervals as below, depends on the - * time-period of the trigger pulse provided by other - * device. - * 1. Longwindow time interval must be greater than Trigger - * pulse time period. - * 2. Window1 time interval must be less than T-off time of - * the Trigger pulse time period. - * 3. Window2 time interval must be greater than T-on time - * of the Trigger pulse time period. - * 4. (Window1 time interval + Window2 time interval) - * approximately equal to the Trigger pulse time period. - * Application has to ensure to do proper configuration of WDG - * window time intervals. If not configured properly in Trigger - * mode then WDG will trigger the warm reset to the PMIC device. - * This may cause system reset if PMIC is connected to SOC/MCU - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_wdgStartTriggerSequence(Pmic_CoreHandle_t *pPmicCoreHandle) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regVal = 0x0U; - - /* Validate pPmicCoreHandle and WDG subsystem */ - status = Pmic_WdgValidatePmicCoreHandle(pPmicCoreHandle); - - if(PMIC_ST_SUCCESS == status) - { - /*! Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - /*! Reading watchdog mode value */ - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_WD_MODE_REG_REGADDR, - ®Val); - - if(PMIC_ST_SUCCESS == status) - { - Pmic_setBitField(®Val, - PMIC_WD_MODE_REG_WD_MODE_SELECT_SHIFT, - PMIC_WD_MODE_REG_WD_MODE_SELECT_MASK, - PMIC_WDG_TRIGGER_MODE); - /*! Set watchdog mode to trigger mode */ - status = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_WD_MODE_REG_REGADDR, - regVal); - } - - /*! Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return status; -} - -/*! - * \brief API to clear PMIC watchdog error status based on wdgErrType - */ -static int32_t Pmic_wdgClrErrStatusWdgErrType( - Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t wdgErrType, - uint8_t regVal) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t errStatus = 1U, regData = 0U; - - if((PMIC_WDG_ERR_LONG_WIN_TIMEOUT == wdgErrType) && - (Pmic_getBitField( - regVal, - PMIC_WD_ERR_STATUS_WD_LONGWIN_TIMEOUT_INT_SHIFT, - PMIC_WD_ERR_STATUS_WD_LONGWIN_TIMEOUT_INT_MASK) != 0U)) - { - Pmic_setBitField(®Data, - PMIC_WD_ERR_STATUS_WD_LONGWIN_TIMEOUT_INT_SHIFT, - PMIC_WD_ERR_STATUS_WD_LONGWIN_TIMEOUT_INT_MASK, - errStatus); - } - else if((PMIC_WDG_ERR_TIMEOUT == wdgErrType) && - (Pmic_getBitField(regVal, - PMIC_WD_ERR_STATUS_WD_TIMEOUT_SHIFT, - PMIC_WD_ERR_STATUS_WD_TIMEOUT_MASK) != 0U)) - { - Pmic_setBitField(®Data, - PMIC_WD_ERR_STATUS_WD_TIMEOUT_SHIFT, - PMIC_WD_ERR_STATUS_WD_TIMEOUT_MASK, - errStatus); - } - else if((PMIC_WDG_ERR_TRIGGER_EARLY == wdgErrType) && - (Pmic_getBitField(regVal, - PMIC_WD_ERR_STATUS_WD_TRIG_EARLY_SHIFT, - PMIC_WD_ERR_STATUS_WD_TRIG_EARLY_MASK) != 0U)) - { - Pmic_setBitField(®Data, - PMIC_WD_ERR_STATUS_WD_TRIG_EARLY_SHIFT, - PMIC_WD_ERR_STATUS_WD_TRIG_EARLY_MASK, - errStatus); - } - else if((PMIC_WDG_ERR_ANSWER_EARLY == wdgErrType) && - (Pmic_getBitField(regVal, - PMIC_WD_ERR_STATUS_WD_ANSW_EARLY_SHIFT, - PMIC_WD_ERR_STATUS_WD_ANSW_EARLY_MASK) != 0U)) - { - Pmic_setBitField(®Data, - PMIC_WD_ERR_STATUS_WD_ANSW_EARLY_SHIFT, - PMIC_WD_ERR_STATUS_WD_ANSW_EARLY_MASK, - errStatus); - } - else if((PMIC_WDG_ERR_SEQ_ERR == wdgErrType) && - (Pmic_getBitField(regVal, - PMIC_WD_ERR_STATUS_WD_SEQ_ERR_SHIFT, - PMIC_WD_ERR_STATUS_WD_SEQ_ERR_MASK) != 0U)) - { - Pmic_setBitField(®Data, - PMIC_WD_ERR_STATUS_WD_SEQ_ERR_SHIFT, - PMIC_WD_ERR_STATUS_WD_SEQ_ERR_MASK, - errStatus); - } - else if((PMIC_WDG_ERR_ANS_ERR == wdgErrType) && - (Pmic_getBitField(regVal, - PMIC_WD_ERR_STATUS_WD_ANSW_ERR_SHIFT, - PMIC_WD_ERR_STATUS_WD_ANSW_ERR_MASK) != 0U)) - { - Pmic_setBitField(®Data, - PMIC_WD_ERR_STATUS_WD_ANSW_ERR_SHIFT, - PMIC_WD_ERR_STATUS_WD_ANSW_ERR_MASK, - errStatus); - } - else if((PMIC_WDG_ERR_FAIL_INT == wdgErrType) && - (Pmic_getBitField(regVal, - PMIC_WD_ERR_STATUS_WD_FAIL_INT_SHIFT, - PMIC_WD_ERR_STATUS_WD_FAIL_INT_MASK) != 0U)) - { - Pmic_setBitField(®Data, - PMIC_WD_ERR_STATUS_WD_FAIL_INT_SHIFT, - PMIC_WD_ERR_STATUS_WD_FAIL_INT_MASK, - errStatus); - } - else - { - if(Pmic_getBitField(regVal, - PMIC_WD_ERR_STATUS_WD_RST_INT_SHIFT, - PMIC_WD_ERR_STATUS_WD_RST_INT_MASK) != 0U) - { - Pmic_setBitField(®Data, - PMIC_WD_ERR_STATUS_WD_RST_INT_SHIFT, - PMIC_WD_ERR_STATUS_WD_RST_INT_MASK, - errStatus); - } - } - - if(0U != regData) - { - /*! Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - status = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_WD_ERR_STATUS_REGADDR, - regData); - /*! Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - return status; -} - -/*! - * \brief API to clear PMIC watchdog error status. - * - * Requirement: REQ_TAG(PDK-5839), REQ_TAG(PDK-5854) - * Design: did_pmic_wdg_cfg_readback - * Architecture: aid_pmic_wdg_cfg - * - * This function is used to clear the watchdog error status from the - * PMIC for trigger mode or Q&A(question and answer) mode, - * Note: User has to clear the WDG Error status only when Error status - * bit is set for the corresponding wdgErrType - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * \param wdgErrType [IN] Watchdog error type to clear the status - * For Valid values: - * \ref Pmic_WdgErrType - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_wdgClrErrStatus(Pmic_CoreHandle_t *pPmicCoreHandle, - const uint8_t wdgErrType) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t regVal = 0x0U; - - /* Validate pPmicCoreHandle and WDG subsystem */ - status = Pmic_WdgValidatePmicCoreHandle(pPmicCoreHandle); - - if((PMIC_ST_SUCCESS == status) && (wdgErrType > PMIC_WDG_ERR_ALL)) - { - status = PMIC_ST_ERR_INV_PARAM; - } - - if(PMIC_ST_SUCCESS == status) - { - /*! Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - /*! Reading error status register */ - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_WD_ERR_STATUS_REGADDR, - ®Val); - if(0U == regVal) - { - status = PMIC_ST_ERR_FAIL; - } - - if((PMIC_ST_SUCCESS == status) && (PMIC_WDG_ERR_ALL == wdgErrType)) - { - status = Pmic_commIntf_sendByte(pPmicCoreHandle, - PMIC_WD_ERR_STATUS_REGADDR, - regVal); - } - - /*! Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - if((PMIC_ST_SUCCESS == status) && (PMIC_WDG_ERR_ALL != wdgErrType)) - { - status = Pmic_wdgClrErrStatusWdgErrType(pPmicCoreHandle, - wdgErrType, - regVal); - } - - return status; -} - - -/*! - * \brief API to Write Answers in Long Window/ Window1/ Window2 Interval for - * watchdog QA Sequence. - * - * Requirement: REQ_TAG(PDK-5839), REQ_TAG(PDK-9115), REQ_TAG(PDK-9116) - * Design: did_pmic_wdg_cfg_readback - * Architecture: aid_pmic_wdg_cfg - * - * This function is used to write Answers in Long Window/ Window1/ - * Window2 Interval for the WDG QA Sequence - * User has to ensure, configure all Watchdog QA parameters properly - * using Pmic_wdgSetCfg() API, before writing Answers using this API - * for the QA Sequence - * - * Note: To perform QA sequences, user has to adjust Long window - * time interval, Window1 time interval and Window2 time - * intervals If the Pmic_wdgQaWriteAnswer API returns - * PMIC_ST_ERR_INV_WDG_ANSWER error - * If the Pmic_wdgQaWriteAnswer API returns - * PMIC_ST_ERR_INV_WDG_ANSWER error user has - * to call Pmic_wdgGetErrorStatus API to read the WDG error. - * If the WDG error is Long Window Timeout or Timeout, user has - * to increase the Long window or window1 time interval - * accordingly - * If the WDG error is Answer early, user has to reduce the - * Window1 time interval - * For other WDG errors, user has to take action accordingly - * Application has to ensure to do proper configuration of WDG - * window time intervals. If not configured properly in QA mode - * then WDG will trigger the warm reset to the PMIC device. This - * may cause system reset if PMIC is connected to SOC/MCU - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * - * \return PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values \ref Pmic_ErrorCodes - */ -int32_t Pmic_wdgQaSequenceWriteAnswer(Pmic_CoreHandle_t *pPmicCoreHandle) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t qaAnsCnt = 0U; - uint8_t qaQuesCnt = 0U; - uint8_t qaFdbk = 0U; - - /* Validate pPmicCoreHandle and WDG subsystem */ - status = Pmic_WdgValidatePmicCoreHandle(pPmicCoreHandle); - - /* Write Answers for Long Window */ - if(PMIC_ST_SUCCESS == status) - { - /* Start Critical Section */ - Pmic_criticalSectionStart(pPmicCoreHandle); - - status = Pmic_commIntf_recvByte(pPmicCoreHandle, - PMIC_WD_QA_CFG_REGADDR, - &qaFdbk); - - /* Stop Critical Section */ - Pmic_criticalSectionStop(pPmicCoreHandle); - } - - /* Get wdg QA Feedback value */ - if(PMIC_ST_SUCCESS == status) - { - qaFdbk = Pmic_getBitField(qaFdbk, - PMIC_WD_QA_CFG_WD_QA_FDBK_SHIFT, - PMIC_WD_QA_CFG_WD_QA_FDBK_MASK); - } - - if(PMIC_ST_SUCCESS == status) - { - status = Pmic_wdgReadQuesandAnswerCount(pPmicCoreHandle, - &qaAnsCnt, - &qaQuesCnt); - } - - if(PMIC_ST_SUCCESS == status) - { - status = Pmic_wdgQaEvaluateAndWriteAnswer(pPmicCoreHandle, - qaAnsCnt, - qaQuesCnt, - qaFdbk); - } - - return status; -} diff --git a/src/pmic_wdg_priv.h b/src/pmic_wdg_priv.h deleted file mode 100644 index e6d1fb8..0000000 --- a/src/pmic_wdg_priv.h +++ /dev/null @@ -1,247 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ - -/** - * \file pmic_wdg_priv.h - * - * \brief This file contains PMIC WDG Driver specific Macros. - * - */ - -#ifndef PMIC_WDG_PRIV_H_ -#define PMIC_WDG_PRIV_H_ - -/* ========================================================================== */ -/* Include Files */ -/* ========================================================================== */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* ========================================================================== */ -/* Macros & Typedefs */ -/* ========================================================================== */ - -/*! - * \brief PMIC Watch Dog Register Offsets - */ -#define PMIC_WD_ANSWER_REG_REGADDR (0x401U) -#define PMIC_WD_QUESTION_ANSW_CNT_REGADDR (0x402U) -#define PMIC_WD_WIN1_CFG_REGADDR (0x403U) -#define PMIC_WD_WIN2_CFG_REGADDR (0x404U) -#define PMIC_WD_LONGWIN_CFG_REGADDR (0x405U) -#define PMIC_WD_MODE_REG_REGADDR (0x406U) -#define PMIC_WD_QA_CFG_REGADDR (0x407U) -#define PMIC_WD_ERR_STATUS_REGADDR (0x408U) -#define PMIC_WD_THR_CFG_REGADDR (0x409U) -#define PMIC_WD_FAIL_CNT_REG_REGADDR (0x40AU) - -/*! - * \brief WD_QUESTION_ANSW_CNT Register bit shift values - */ -#define PMIC_WD_QUESTION_ANSW_CNT_WD_ANSW_CNT_SHIFT (0x04U) -#define PMIC_WD_QUESTION_ANSW_CNT_WD_QUESTION_SHIFT (0x00U) - -/*! - * \brief WD_WIN1_CFG Register bit shift values - */ -#define PMIC_WD_WIN1_CFG_WD_WIN1_SHIFT (0x00U) - -/*! - * \brief WD_WIN2_CFG Register bit shift values - */ -#define PMIC_WD_WIN2_CFG_WD_WIN2_SHIFT (0x00U) - -/*! - * \brief WD_MODE_REG Register bit shift values - */ -#define PMIC_WD_MODE_REG_WD_RETURN_LONGWIN_SHIFT (0x00U) -#define PMIC_WD_MODE_REG_WD_MODE_SELECT_SHIFT (0x01U) -#define PMIC_WD_MODE_REG_WD_PWRHOLD_SHIFT (0x02U) - -/*! - * \brief WD_QA_CFG Register bit shift values - */ -#define PMIC_WD_QA_CFG_WD_QUESTION_SEED_SHIFT (0x00U) -#define PMIC_WD_QA_CFG_WD_QA_LFSR_SHIFT (0x04U) -#define PMIC_WD_QA_CFG_WD_QA_FDBK_SHIFT (0x06U) - -/*! - * \brief WD_ERR_STATUS Register bit shift values - */ -#define PMIC_WD_ERR_STATUS_WD_LONGWIN_TIMEOUT_INT_SHIFT (0x00U) -#define PMIC_WD_ERR_STATUS_WD_TIMEOUT_SHIFT (0x01U) -#define PMIC_WD_ERR_STATUS_WD_TRIG_EARLY_SHIFT (0x02U) -#define PMIC_WD_ERR_STATUS_WD_ANSW_EARLY_SHIFT (0x03U) -#define PMIC_WD_ERR_STATUS_WD_SEQ_ERR_SHIFT (0x04U) -#define PMIC_WD_ERR_STATUS_WD_ANSW_ERR_SHIFT (0x05U) -#define PMIC_WD_ERR_STATUS_WD_FAIL_INT_SHIFT (0x06U) -#define PMIC_WD_ERR_STATUS_WD_RST_INT_SHIFT (0x07U) - -/*! - * \brief WD_THR_CFG Register bit shift values - */ -#define PMIC_WD_THR_CFG_WD_RST_TH_SHIFT (0x00U) -#define PMIC_WD_THR_CFG_WD_FAIL_TH_SHIFT (0x03U) -#define PMIC_WD_THR_CFG_WD_EN_SHIFT (0x06U) -#define PMIC_WD_THR_CFG_WD_RST_EN_SHIFT (0x07U) - -/*! - * \brief WD_FAIL_CNT_REG Register bit shift values - */ -#define PMIC_WD_FAIL_CNT_REG_WD_FAIL_CNT_SHIFT (0x00U) -#define PMIC_WD_FAIL_CNT_REG_WD_FIRST_OK_SHIFT (0x05U) -#define PMIC_WD_FAIL_CNT_REG_WD_BAD_EVENT_SHIFT (0x06U) - -/*! - * \brief WD_QUESTION_ANSW_CNT Register bit mask values - */ -#define PMIC_WD_QUESTION_ANSW_CNT_WD_ANSW_CNT_MASK \ - (0x3U << PMIC_WD_QUESTION_ANSW_CNT_WD_ANSW_CNT_SHIFT) -#define PMIC_WD_QUESTION_ANSW_CNT_WD_QUESTION_MASK \ - (0xFU << PMIC_WD_QUESTION_ANSW_CNT_WD_QUESTION_SHIFT) - -/*! - * \brief WD_WIN1_CFG Register bit mask values - */ -#define PMIC_WD_WIN1_CFG_WD_WIN1_MASK \ - (0x7FU << PMIC_WD_WIN1_CFG_WD_WIN1_SHIFT) - -/*! - * \brief WD_WIN2_CFG Register bit mask values - */ -#define PMIC_WD_WIN2_CFG_WD_WIN2_MASK \ - (0x7FU << PMIC_WD_WIN2_CFG_WD_WIN2_SHIFT) - -/*! - * \brief WD_MODE_REG Register bit mask values - */ -#define PMIC_WD_MODE_REG_WD_RETURN_LONGWIN_MASK \ - (0x1U << PMIC_WD_MODE_REG_WD_RETURN_LONGWIN_SHIFT) -#define PMIC_WD_MODE_REG_WD_MODE_SELECT_MASK \ - (0x1U << PMIC_WD_MODE_REG_WD_MODE_SELECT_SHIFT) -#define PMIC_WD_MODE_REG_WD_PWRHOLD_MASK \ - (0x1U << PMIC_WD_MODE_REG_WD_PWRHOLD_SHIFT) - -/*! - * \brief WD_QA_CFG Register bit mask values - */ -#define PMIC_WD_QA_CFG_WD_QUESTION_SEED_MASK \ - (0xFU << PMIC_WD_QA_CFG_WD_QUESTION_SEED_SHIFT) -#define PMIC_WD_QA_CFG_WD_QA_LFSR_MASK \ - (0x3U << PMIC_WD_QA_CFG_WD_QA_LFSR_SHIFT) -#define PMIC_WD_QA_CFG_WD_QA_FDBK_MASK \ - (0x3U << PMIC_WD_QA_CFG_WD_QA_FDBK_SHIFT) - -/*! - * \brief WD_ERR_STATUS Register bit mask values - */ -#define PMIC_WD_ERR_STATUS_WD_LONGWIN_TIMEOUT_INT_MASK \ - (0x1U << PMIC_WD_ERR_STATUS_WD_LONGWIN_TIMEOUT_INT_SHIFT) -#define PMIC_WD_ERR_STATUS_WD_TIMEOUT_MASK \ - (0x1U << PMIC_WD_ERR_STATUS_WD_TIMEOUT_SHIFT) -#define PMIC_WD_ERR_STATUS_WD_TRIG_EARLY_MASK \ - (0x1U << PMIC_WD_ERR_STATUS_WD_TRIG_EARLY_SHIFT) -#define PMIC_WD_ERR_STATUS_WD_ANSW_EARLY_MASK \ - (0x1U << PMIC_WD_ERR_STATUS_WD_ANSW_EARLY_SHIFT) -#define PMIC_WD_ERR_STATUS_WD_SEQ_ERR_MASK \ - (0x1U << PMIC_WD_ERR_STATUS_WD_SEQ_ERR_SHIFT) -#define PMIC_WD_ERR_STATUS_WD_ANSW_ERR_MASK \ - (0x1U << PMIC_WD_ERR_STATUS_WD_ANSW_ERR_SHIFT) -#define PMIC_WD_ERR_STATUS_WD_FAIL_INT_MASK \ - (0x1U << PMIC_WD_ERR_STATUS_WD_FAIL_INT_SHIFT) -#define PMIC_WD_ERR_STATUS_WD_RST_INT_MASK \ - (0x1U << PMIC_WD_ERR_STATUS_WD_RST_INT_SHIFT) - -/*! - * \brief WD_THR_CFG Register bit mask values - */ -#define PMIC_WD_THR_CFG_WD_RST_TH_MASK \ - (0x7U << PMIC_WD_THR_CFG_WD_RST_TH_SHIFT) -#define PMIC_WD_THR_CFG_WD_FAIL_TH_MASK \ - (0x7U << PMIC_WD_THR_CFG_WD_FAIL_TH_SHIFT) -#define PMIC_WD_THR_CFG_WD_EN_MASK \ - (0x1U << PMIC_WD_THR_CFG_WD_EN_SHIFT) -#define PMIC_WD_THR_CFG_WD_RST_EN_MASK \ - (0x1U << PMIC_WD_THR_CFG_WD_RST_EN_SHIFT) - -/*! - * \brief WD_FAIL_CNT_REG Register bit mask values - */ -#define PMIC_WD_FAIL_CNT_REG_WD_FAIL_CNT_MASK \ - (0xFU << PMIC_WD_FAIL_CNT_REG_WD_FAIL_CNT_SHIFT) -#define PMIC_WD_FAIL_CNT_REG_WD_FIRST_OK_MASK \ - (0x1U << PMIC_WD_FAIL_CNT_REG_WD_FIRST_OK_SHIFT) -#define PMIC_WD_FAIL_CNT_REG_WD_BAD_EVENT_MASK \ - (0x1U << PMIC_WD_FAIL_CNT_REG_WD_BAD_EVENT_SHIFT) - -/*! - * \brief Watchdog Long Window Max, Min and Divisor macros - */ -/*! \brief Valid only for PG2.0 */ -#define PMIG_WD_LONGWIN_80_MILLISEC (80U) -#define PMIG_WD_LONGWIN_125_MILLISEC (125U) -#define PMIG_WD_LONGWIN_8000_MILLISEC (8000U) - -#define PMIG_WD_LONGWIN_MILLISEC_DIV_125 (125U) -#define PMIG_WD_LONGWIN_MILLISEC_DIV_4000 (4000U) - - -#define PMIG_WD_LONGWIN_MILLISEC_MIN_PG_2_0 (125U) -#define PMIG_WD_LONGWIN_MILLISEC_MAX_PG_2_0 (772000U) - - -#define PMIG_WD_LONGWIN_REG_VAL_0 (0x0U) -#define PMIG_WD_LONGWIN_REG_VAL_1 (0x1U) -#define PMIG_WD_LONGWIN_REG_VAL_64 (0x40U) - -/*! \brief Valid only for PG1.0 */ -#define PMIG_WD_LONGWIN_100_MILLISEC (100U) -#define PMIG_WD_LONGWIN_MILLISEC_MIN (3000U) -#define PMIG_WD_LONGWIN_MILLISEC_MAX (765000U) -#define PMIG_WD_LONGWIN_MILLISEC_DIV (3000U) - -/*! - * \brief Watchdog Window1 Max, Min and Divisor macros - */ -#define PMIG_WD_WIN1_2_MICROSEC_MIN (550U) -#define PMIG_WD_WIN1_2_MICROSEC_MAX (70400U) -#define PMIG_WD_WIN1_2_MICROSEC_DIV (550U) - -#endif /* PMIC_WDG_PRIV_H_ */ - -#ifdef __cplusplus -} -#endif /* __cplusplus */ diff --git a/test/benchmark_test/makefile b/test/benchmark_test/makefile deleted file mode 100644 index 8b905bb..0000000 --- a/test/benchmark_test/makefile +++ /dev/null @@ -1,85 +0,0 @@ -# Filename: Makefile -# -# This file is the makefile for building PMIC miscellaneous Test Code. -# -# Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com/ -# -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# -# Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the -# distribution. -# -# Neither the name of Texas Instruments Incorporated nor the names of -# its contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -#File - pmic_lld\test\benchmark_test\makefile - -APP_NAME = pmic_benchmark_testapp - -include $(PDK_INSTALL_PATH)/ti/build/Rules.make - -BUILD_OS_TYPE = baremetal - -SRCDIR = . ../common -INCDIR = . ../../include/ ../../include/cfg/tps6594x ../../include/cfg/lp8764x -INCDIR += ../common ../../src/ - -# Common source files across all platforms and cores -SRCS_COMMON += pmic_ut_benchmark.c pmic_ut_common.c - -SRCDIR += $(PDK_INSTALL_PATH)/ti/build/unit-test/Unity/src $(PDK_INSTALL_PATH)/ti/build/unit-test/config -INCDIR += $(PDK_INSTALL_PATH)/ti/build/unit-test/Unity/src $(PDK_INSTALL_PATH)/ti/build/unit-test/config -SRCS_COMMON += unity.c - -# List all the external components/interfaces, whose interface header files -# need to be included for this component -INCLUDE_EXTERNAL_INTERFACES = pdk i2c -INCLUDE_INTERNAL_INTERFACES = pmic - -# List all the components required by the application -COMP_LIST_COMMON = $(PDK_COMMON_BAREMETAL_COMP) - -# Common source files and CFLAGS across all platforms and cores -PACKAGE_SRCS_COMMON = . ../common - -CFLAGS_LOCAL_COMMON += -DUNITY_INCLUDE_CONFIG_V2_H $(PMIC_CFLAGS) -CFLAGS_LOCAL_COMMON += -DPMIC_PERFORM_BENCHMARK - -# Core/SoC/platform specific source files and CFLAGS -# Example: -# SRCS_ = -# CFLAGS_LOCAL_ = - -# Include common make files -ifeq ($(MAKERULEDIR), ) -#Makerule path not defined, define this and assume relative path from ROOTDIR - MAKERULEDIR := $(ROOTDIR)/ti/build/makerules - export MAKERULEDIR -endif -include $(MAKERULEDIR)/common.mk - -# OBJs and libraries are built by using rule defined in rules_.mk -# and need not be explicitly specified here - -# Nothing beyond this point diff --git a/test/benchmark_test/pmic_ut_benchmark.c b/test/benchmark_test/pmic_ut_benchmark.c deleted file mode 100644 index 8db809d..0000000 --- a/test/benchmark_test/pmic_ut_benchmark.c +++ /dev/null @@ -1,883 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ -/** - * \file pmic_ut_benchmark.c - * - * \brief PMIC Unit Test for testing PMIC Benchmark APIs - * - */ - -#include - -/* Pointer holds the pPmicCoreHandle */ -Pmic_CoreHandle_t *pPmicCoreHandle = NULL; - -extern uint16_t pmic_device_info; -extern uint8_t enableBenchMark; -extern int32_t gCrcTestFlag_J721E; -extern int32_t gCrcTestFlag_J7VCL; - -/*! - * \brief PMIC BenchMark Test Cases - */ -static Pmic_Ut_Tests_t pmic_benchmark_tests[] = -{ - /*! testID - * testDesc - */ - { - 8234, - "Pmic_wdgStartQaSequence : Profiling PMIC WDG QA API" - }, - { - 8240, - "Pmic_init : Profiling PMIC Dual I2C Init API" - }, - { - 8233, - "Pmic_init : Profiling PMIC Single I2C Init API" - }, - { - 10415, - "Pmic_wdgQaSequenceWriteAnswer : Profiling PMIC WDG Answer Computation" - }, -}; - -/*! - * \brief : Profiling PMIC WDG QA API - */ -static void test_Pmic_wdg_QA_API_profiling(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint32_t maxCnt = PMIC_WDG_WAIT_CNT_MIN_VAL; - Pmic_WdgCfg_t wdgCfg = - { - PMIC_WDG_CFG_SETPARAMS_FORALL, - 750000U, - 6600U, - 4950U, - PMIC_WDG_FAIL_THRESHOLD_COUNT_7, - PMIC_WDG_RESET_THRESHOLD_COUNT_7, - PMIC_WDG_QA_MODE, - PMIC_WDG_PWRHOLD_DISABLE, - PMIC_WDG_RESET_DISABLE, - PMIC_WDG_RETLONGWIN_DISABLE, - PMIC_WDG_QA_FEEDBACK_VALUE_0, - PMIC_WDG_QA_LFSR_VALUE_0, - PMIC_WDG_QA_QUES_SEED_VALUE_10, - }; - uint64_t t1 = 0U; - - if((gCrcTestFlag_J721E == PMIC_STATUS_CRC_ENABLED)|| - (gCrcTestFlag_J7VCL == PMIC_STATUS_CRC_ENABLED)) - { - wdgCfg.win1Duration_us = 8350U; - } - - test_pmic_print_unity_testcase_info(8234, - pmic_benchmark_tests, - PMIC_BENCHMARK_NUM_OF_TESTCASES); - pmic_log("\n"); - /* Enable WDG Timer */ - pmicStatus = Pmic_wdgEnable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* WDG Set parameters */ - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Profiling Start Watchdog QA sequence */ - t1 = print_timeTakenInUsecs(0U, NULL); - pmicStatus = Pmic_wdgStartQaSequence(pPmicCoreHandle, 1U, maxCnt); - t1 = print_timeTakenInUsecs(t1, "Pmic_wdgStartQaSequence API"); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Disable WDG Timer */ - pmicStatus = Pmic_wdgDisable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(8234, - pmic_benchmark_tests, - PMIC_BENCHMARK_NUM_OF_TESTCASES); -} - -/*! - * \brief : Profiling PMIC Dual I2C Init API - */ -static void test_Pmic_init_Dual_i2c_profiling(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(8240, - pmic_benchmark_tests, - PMIC_BENCHMARK_NUM_OF_TESTCASES); - pmic_log("\n"); - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - enableBenchMark = true; - pmicStatus = test_pmic_leo_pmicA_benchmark_testApp(); - enableBenchMark = false; - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(8240, - pmic_benchmark_tests, - PMIC_BENCHMARK_NUM_OF_TESTCASES); -} - -/*! - * \brief : Profiling PMIC Single I2C Init API - */ -static void test_Pmic_init_single_i2c_profiling(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(8233, - pmic_benchmark_tests, - PMIC_BENCHMARK_NUM_OF_TESTCASES); - pmic_log("\n"); - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - enableBenchMark = true; - pmicStatus = test_pmic_leo_pmicA_benchmark_single_i2c_testApp(); - enableBenchMark = false; - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(8233, - pmic_benchmark_tests, - PMIC_BENCHMARK_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_wdgQaSequenceWriteAnswer : Profiling PMIC WDG Answer Computation - */ -static void test_Pmic_wdg_answer_computation(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint64_t delta = 0; - int8_t ansIndex = 0; - int32_t test_failure = PMIC_ST_SUCCESS; - uint32_t numSequences = 1U, sequenceId; - Pmic_WdgErrStatus_t errStatus = {0U}; - Pmic_WdgFailCntStat_t failCntStat = {0U}; - bool wdgBadEventStat = false; - bool wdgGudEventStat = true; - uint32_t failCntVal = 0; - Pmic_WdgCfg_t wdgCfg = - { - PMIC_WDG_CFG_SETPARAMS_FORALL, - 750000U, - 6050U, - 8250U, - PMIC_WDG_FAIL_THRESHOLD_COUNT_7, - PMIC_WDG_RESET_THRESHOLD_COUNT_7, - PMIC_WDG_QA_MODE, - PMIC_WDG_PWRHOLD_DISABLE, - PMIC_WDG_RESET_DISABLE, - PMIC_WDG_RETLONGWIN_DISABLE, - PMIC_WDG_QA_FEEDBACK_VALUE_0, - PMIC_WDG_QA_LFSR_VALUE_0, - PMIC_WDG_QA_QUES_SEED_VALUE_10, - }; - uint64_t t1 = 0U; - - if((gCrcTestFlag_J721E == PMIC_STATUS_CRC_ENABLED)|| - (gCrcTestFlag_J7VCL == PMIC_STATUS_CRC_ENABLED)) - { - wdgCfg.win1Duration_us = 8350U; - } - - test_pmic_print_unity_testcase_info(10415, - pmic_benchmark_tests, - PMIC_BENCHMARK_NUM_OF_TESTCASES); - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - wdgCfg.longWinDuration_ms = 752000U; - wdgCfg.win1Duration_us = 7150U; - } - - pmic_log("\n"); - /* Enable WDG Timer */ - pmicStatus = Pmic_wdgEnable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* WDG Set parameters */ - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - errStatus.validParams = PMIC_CFG_WD_ALL_ERRSTAT_VALID_PARAMS; - /* Get watchdog error Status */ - pmicStatus = Pmic_wdgGetErrorStatus(pPmicCoreHandle, &errStatus); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Clear WDG Error bits */ - if((errStatus.wdLongWinTimeout != 0U) || - (errStatus.wdTimeout != 0U) || - (errStatus.wdTrigEarly != 0U) || - (errStatus.wdAnswearly != 0U) || - (errStatus.wdSeqErr != 0U) || - (errStatus.wdAnswErr != 0U) || - (errStatus.wdFailInt != 0U) || - (errStatus.wdRstInt != 0U)) - { - pmicStatus = Pmic_wdgClrErrStatus(pPmicCoreHandle, PMIC_WDG_ERR_ALL); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - - /* Write Answers for Long Window */ - for(ansIndex = 3; ansIndex >= 0; ansIndex--) - { - pmicStatus = Pmic_wdgQaSequenceWriteAnswer(pPmicCoreHandle); - if(PMIC_ST_SUCCESS != pmicStatus) - { - errStatus.validParams = PMIC_CFG_WD_ALL_ERRSTAT_VALID_PARAMS; - /* Get watchdog error Status */ - pmicStatus = Pmic_wdgGetErrorStatus(pPmicCoreHandle, &errStatus); - TEST_ASSERT_EQUAL(0U, errStatus.wdLongWinTimeout); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - - /* Start Watchdog QA sequence */ - for(sequenceId = 0; sequenceId < numSequences; sequenceId++) - { - for(ansIndex = 3; ansIndex >= 0; ansIndex--) - { - if(ansIndex == 3) - { - /* Profiling WDG Answer Computation */ - t1 = print_timeTakenInUsecs(0U, NULL); - pmicStatus = Pmic_wdgQaSequenceWriteAnswer(pPmicCoreHandle); - delta = print_timeTakenInUsecs(t1, NULL); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - else - { - pmicStatus = Pmic_wdgQaSequenceWriteAnswer(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - } - - errStatus.validParams = PMIC_CFG_WD_ALL_ERRSTAT_VALID_PARAMS; - /* Get watchdog error Status */ - pmicStatus = Pmic_wdgGetErrorStatus(pPmicCoreHandle, &errStatus); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - failCntStat.validParams = PMIC_CFG_WD_ALL_FAILCNTSTAT_VALID_PARAMS; - /* Get watchdog Fail Count Status */ - pmicStatus = Pmic_wdgGetFailCntStat(pPmicCoreHandle, &failCntStat); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - if((errStatus.wdTimeout != 0U) || (errStatus.wdAnswearly != 0U) || - (errStatus.wdSeqErr != 0U) || (errStatus.wdAnswErr != 0U) || - (errStatus.wdFailInt != 0U)) - { - test_failure = PMIC_ST_ERR_FAIL; - break; - } - - if((failCntStat.wdBadEvent != false) || (failCntStat.wdFailCnt != 0U)) - { - test_failure = PMIC_ST_ERR_FAIL; - break; - } - } - - if(failCntStat.wdGudEvent != true) - { - test_failure = PMIC_ST_ERR_FAIL; - } - - /* Set QA parameters */ - wdgCfg.retLongWin = PMIC_WDG_RETLONGWIN_ENABLE; - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Disable WDG Timer */ - pmicStatus = Pmic_wdgDisable(pPmicCoreHandle); - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, test_failure); - TEST_ASSERT_EQUAL(wdgGudEventStat, failCntStat.wdGudEvent); - TEST_ASSERT_EQUAL(wdgBadEventStat, failCntStat.wdBadEvent); - TEST_ASSERT_EQUAL(failCntVal, failCntStat.wdFailCnt); - - pmic_log("--------------------------------------\n"); - pmic_log("Time taken for %50s: %6d usec\n", - "Pmic_wdgQaSequenceWriteAnswer API for single instance", - (uint32_t)delta); - pmic_log("--------------------------------------\n"); - - - pmic_testResultUpdate_pass(10415, - pmic_benchmark_tests, - PMIC_BENCHMARK_NUM_OF_TESTCASES); -} - -#if defined(UNITY_INCLUDE_CONFIG_V2_H) && \ - (defined(SOC_J721E) || defined(SOC_J7200)) -/*! - * \brief Run benchmark unity test cases - */ -static void test_pmic_run_testcases(void) -{ - pmic_log("\n\n%s(): %d: Begin Unity Test Cases...\n", __func__, __LINE__); - UNITY_BEGIN(); - - pmic_testResult_init(pmic_benchmark_tests, - PMIC_BENCHMARK_NUM_OF_TESTCASES); - - RUN_TEST(test_Pmic_wdg_QA_API_profiling); - RUN_TEST(test_Pmic_init_Dual_i2c_profiling); - RUN_TEST(test_Pmic_init_single_i2c_profiling); - RUN_TEST(test_Pmic_wdg_answer_computation); - - pmic_updateTestResults(pmic_benchmark_tests, - PMIC_BENCHMARK_NUM_OF_TESTCASES); - - UNITY_END(); -} - -/*! - * \brief BenchMark Unity Test App wrapper Function for LEO PMIC-A - */ -static int32_t test_pmic_leo_pmicA_benchmark_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_LEO_TPS6594X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_DUAL_I2C; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.i2c1Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C1_SPEED_VALID_SHIFT; - - pmicConfigData.i2c2Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C2_SPEED_VALID_SHIFT; - - if(J721E_LEO_PMICA_DEVICE == pmic_device_info) - { - pmicConfigData.slaveAddr = J721E_LEO_PMICA_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J721E_LEO_PMICA_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J721E_LEO_PMICA_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - } - if(J7VCL_LEO_PMICA_DEVICE == pmic_device_info) - { - pmicConfigData.slaveAddr = J7VCL_LEO_PMICA_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J7VCL_LEO_PMICA_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J7VCL_LEO_PMICA_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - } - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; -} - -/*! - * \brief BenchMark Unity Test App wrapper Function for LEO PMIC-A - */ -static int32_t test_pmic_leo_pmicA_benchmark_single_i2c_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_LEO_TPS6594X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_SINGLE_I2C; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.i2c1Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C1_SPEED_VALID_SHIFT; - - pmicConfigData.slaveAddr = J721E_LEO_PMICA_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J721E_LEO_PMICA_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J721E_LEO_PMICA_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; -} - -/*! - * \brief BenchMark Unity Test App wrapper Function for LEO PMIC-B - */ -static int32_t test_pmic_leo_pmicB_benchmark_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_LEO_TPS6594X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_SINGLE_I2C; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.i2c1Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C1_SPEED_VALID_SHIFT; - - pmicConfigData.slaveAddr = J721E_LEO_PMICB_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J721E_LEO_PMICB_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J721E_LEO_PMICB_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; -} - -/*! - * \brief BenchMark Unity Test App wrapper Function for HERA PMIC - */ -static int32_t test_pmic_hera_benchmark_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_HERA_LP8764X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_SINGLE_I2C; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.i2c1Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C1_SPEED_VALID_SHIFT; - - pmicConfigData.slaveAddr = J7VCL_HERA_PMIC_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J7VCL_HERA_PMIC_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J7VCL_HERA_PMIC_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; -} - -/*! - * \brief BenchMark Unity Test App wrapper Function for LEO PMIC-A - */ -static int32_t test_pmic_leo_pmicA_spiStub_benchmark_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_LEO_TPS6594X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_SPI; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; -} - -static int32_t setup_pmic_interrupt(uint32_t board) -{ - int32_t status = PMIC_ST_SUCCESS; - - if(J721E_BOARD == board) - { - if(PMIC_STATUS_CRC_INIT_VAL == gCrcTestFlag_J721E) - { - gCrcTestFlag_J721E = PMIC_CFG_TO_ENABLE_CRC; - } - - pmic_device_info = J721E_LEO_PMICA_DEVICE; - status = test_pmic_leo_pmicA_benchmark_testApp(); - /* Deinit pmic handle */ - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - - if(PMIC_ST_SUCCESS == status) - { - pmic_device_info = J721E_LEO_PMICB_DEVICE; - status = test_pmic_leo_pmicB_benchmark_testApp(); - /* Deinit pmic handle */ - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } - } - else if(J7VCL_BOARD == board) - { - if(PMIC_STATUS_CRC_INIT_VAL == gCrcTestFlag_J7VCL) - { - gCrcTestFlag_J7VCL = PMIC_CFG_TO_ENABLE_CRC; - } - - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - status = test_pmic_leo_pmicA_benchmark_testApp(); - /* Deinit pmic handle */ - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - - if(PMIC_ST_SUCCESS == status) - { - pmic_device_info = J7VCL_HERA_PMICB_DEVICE; - status = test_pmic_hera_benchmark_testApp(); - /* Deinit pmic handle */ - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } - } - else - { - status = PMIC_ST_ERR_INV_DEVICE; - } - return status; -} - -static const char pmicTestMenu[] = -{ - " \r\n =================================================================" - " \r\n Test Menu:" - " \r\n =================================================================" - " \r\n 0: Automatic run for all board specific BenchMark options" - " \r\n 1: Manual run for BenchMark options" - " \r\n 2: quit" - " \r\n" - " \r\n Enter option: " -}; - -volatile static const char pmicTestAppMenu[] = -{ - " \r\n =================================================================" - " \r\n Menu:" - " \r\n =================================================================" - " \r\n 0: Pmic Leo device(PMIC A on J721E EVM)" - " \r\n 1: Pmic Leo device(PMIC A on J7VCL EVM)" - " \r\n 2: Pmic Leo device(PMIC A on J721E EVM Using SPI Stub Functions)" - " \r\n 3: Pmic Leo device(PMIC A on J7VCL EVM Using SPI Stub Functions)" - " \r\n 4: Back to Test Menu" - " \r\n" - " \r\n Enter option: " -}; - -volatile int8_t g_option = 0; -static void test_pmic_benchmark_testapp_run_options() -{ - int8_t num = -1; - int8_t idx = 0; -#if defined(SOC_J721E) - int8_t automatic_options[] = {0, 2}; -#elif defined(SOC_J7200) - int8_t automatic_options[] = {1, 3}; -#endif - - while(1U) - { - if(idx >= (sizeof(automatic_options)/sizeof(automatic_options[0]))) - { - pmic_printTestResult(pmic_benchmark_tests, PMIC_BENCHMARK_NUM_OF_TESTCASES); - } - pmic_log("%s", pmicTestAppMenu); - if(g_option == PMIC_UT_AUTOMATE_OPTION) - { - if(idx < (sizeof(automatic_options)/sizeof(automatic_options[0]))) - { - num = automatic_options[idx++]; - } - else - { - num = 4; - } - pmic_log("%d\n", num); - } - else - { - if(UART_scanFmt("%d", &num) != 0U) - { - pmic_log("Read from UART Console failed\n"); - return; - } - } - switch(num) - { - case 0U: -#if defined(SOC_J721E) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J721E_BOARD)) - { - pmic_device_info = J721E_LEO_PMICA_DEVICE; - - /* BenchMark Unity Test App wrapper Function for LEO PMIC-A */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_benchmark_testApp()) - { - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 1U: -#if defined(SOC_J7200) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J721E_BOARD)) - { - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - - /* BenchMark Unity Test App wrapper Function for LEO PMIC-A */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_benchmark_testApp()) - { - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 2U: -#if defined(SOC_J721E) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J721E_BOARD)) - { - pmic_device_info = J721E_LEO_PMICA_DEVICE; - - /* BenchMark Unity Test App wrapper Function for LEO PMIC-A - * using SPI stub functions */ - if(PMIC_ST_SUCCESS == - test_pmic_leo_pmicA_spiStub_benchmark_testApp()) - { - /* Run benchmark test cases for Leo PMIC-A */ - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 3U: -#if defined(SOC_J7200) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J7VCL_BOARD)) - { - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - /* BenchMark Unity Test App wrapper Function for LEO PMIC-A - * using SPI stub functions */ - if(PMIC_ST_SUCCESS == - test_pmic_leo_pmicA_spiStub_benchmark_testApp()) - { - /* Run benchmark test cases for Leo PMIC-A */ - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 4U: - pmic_log(" \r\n Back to Test Menu options\n"); - return; - default: - pmic_log(" \r\n Invalid option... Try Again!!!\n"); - break; - } - } -} - -/*! - * \brief Function to register BenchMark Unity Test App wrapper - * to Unity framework - */ -static void test_pmic_benchmark_testapp_runner(void) -{ - /* @description : Test runner for benchmark Test App - * - * @requirements: XXXX - * - * @cores : mcu1_0, mcu1_1 - */ - - while(1U) - { - pmic_log("%s", pmicTestMenu); - if(UART_scanFmt("%d", &g_option) != 0U) - { - pmic_log("Read from UART Console failed\n"); - return; - } - - switch(g_option) - { - case PMIC_UT_AUTOMATE_OPTION: - case PMIC_UT_MANUAL_OPTION: - test_pmic_benchmark_testapp_run_options(); - break; - case 2U: - pmic_log(" \r\n Quit from application\n"); - return; - default: - pmic_log(" \r\n Invalid option... Try Again!!!\n"); - break; - } - } -} -#endif - -/*! - * \brief TI RTOS specific BenchMark TEST APP main Function - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values see \ref Pmic_ErrorCodes - */ -int main() -{ - Board_initUART(); - - pmic_print_banner("PMIC BenchMark Unity Test Application"); - -#if defined(UNITY_INCLUDE_CONFIG_V2_H) && \ - (defined(SOC_J721E) || \ - defined(SOC_J7200)) - test_pmic_benchmark_testapp_runner(); -#endif -} diff --git a/test/benchmark_test/pmic_ut_benchmark.h b/test/benchmark_test/pmic_ut_benchmark.h deleted file mode 100644 index f2a2a73..0000000 --- a/test/benchmark_test/pmic_ut_benchmark.h +++ /dev/null @@ -1,87 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ -/** - * \file pmic_ut_benchmark.h - * - * \brief Header file for PMIC BenchMark Unit Tests - * - */ - -#include - -/*! - * \brief Numbers of miscellaneous testcases - */ -#define PMIC_BENCHMARK_NUM_OF_TESTCASES \ - (sizeof(pmic_benchmark_tests)/sizeof(pmic_benchmark_tests[0])) - -/*! - * \brief PMIC WDG Valid Params configuration for all - */ -#define PMIC_WDG_CFG_SETPARAMS_FORALL \ - (PMIC_CFG_WDG_LONGWINDURATION_VALID_SHIFT | \ - PMIC_CFG_WDG_WIN1DURATION_VALID_SHIFT | \ - PMIC_CFG_WDG_WIN2DURATION_VALID_SHIFT | \ - PMIC_CFG_WDG_FAILTHRESHOLD_VALID_SHIFT | \ - PMIC_CFG_WDG_RSTTHRESHOLD_VALID_SHIFT | \ - PMIC_CFG_WDG_RSTENABLE_VALID_SHIFT | \ - PMIC_CFG_WDG_WDGMODE_VALID_SHIFT | \ - PMIC_CFG_WDG_PWRHOLD_VALID_SHIFT | \ - PMIC_CFG_WDG_RETLONGWIN_VALID_SHIFT | \ - PMIC_CFG_WDG_QA_FDBK_VALID_SHIFT | \ - PMIC_CFG_WDG_QA_LFSR_VALID_SHIFT | \ - PMIC_CFG_WDG_QA_QUES_SEED_VALID_SHIFT) - -/*! - * \brief PMIC WDG Valid Params configuration for all error status - */ -#define PMIC_CFG_WD_ALL_ERRSTAT_VALID_PARAMS \ - (PMIC_CFG_WD_LONGWIN_TIMEOUT_ERRSTAT_VALID_SHIFT | \ - PMIC_CFG_WD_TIMEOUT_ERRSTAT_VALID_SHIFT | \ - PMIC_CFG_WD_TRIG_EARLY_ERRSTAT_VALID_SHIFT | \ - PMIC_CFG_WD_ANSW_EARLY_ERRSTAT_VALID_SHIFT | \ - PMIC_CFG_WD_SEQ_ERR_ERRSTAT_VALID_SHIFT | \ - PMIC_CFG_WD_ANSW_ERR_ERRSTAT_VALID_SHIFT | \ - PMIC_CFG_WD_FAIL_INT_ERRSTAT_VALID_SHIFT | \ - PMIC_CFG_WD_RST_INT_ERRSTAT_VALID_SHIFT) - -/*! - * \brief PMIC WDG Valid Params configuration for all Fail Count status - */ -#define PMIC_CFG_WD_ALL_FAILCNTSTAT_VALID_PARAMS \ - (PMIC_CFG_WD_BAD_EVENT_STAT_VALID_SHIFT | \ - PMIC_CFG_WD_GOOD_EVENT_STAT_VALID_SHIFT | \ - PMIC_CFG_WD_FAIL_CNT_VAL_VALID_SHIFT) - -static int32_t test_pmic_leo_pmicA_benchmark_testApp(void); -static int32_t test_pmic_leo_pmicA_benchmark_single_i2c_testApp(void); diff --git a/test/common/pmic_ut_common.c b/test/common/pmic_ut_common.c deleted file mode 100644 index c4dee25..0000000 --- a/test/common/pmic_ut_common.c +++ /dev/null @@ -1,2718 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ -/** - * \file pmic_ut_common.h - * - * \brief Unit test related common APIs - * - */ - -#include - -/* Pointer holds the pPmicCoreHandle for I2C */ -Pmic_CoreHandle_t *pPmicCoreHandleI2C = NULL; - -uint8_t startup_type = 0U; -uint8_t enableBenchMark = 0U; - -uint16_t pmic_device_info = 0U; - -int8_t gMissionStateTestFlag = 0U; -int8_t gLdoBypassModeEnTestFlag = 0U; -int8_t gThermalStatusTestFlag = 0U; -int8_t gPwrRsrcStatusTestFlag = 0U; -int8_t gFailCntStatTestFlag = 0U; -int8_t gErrorStatusTestFlag = 0U; -int8_t gEnableRtcTestFlag = 0U; -int8_t gRecoveryCntCfgTestFlag = 0U; -int8_t gEnableDrvPinCfgTestFlag = 0U; -int8_t gI2c1CrcEnableTestFlag = 0U; -int8_t gI2c2CrcEnableTestFlag = 0U; -int8_t gSpmiLpmStatTestFlag = 0U; -int8_t gIntrTopRegTestFlag = 0U; -int8_t girqGetL1RegTestFlag_Leo = 0U; -int8_t girqGetL2RegTestFlag_Leo = 0U; -int8_t girqGetL1RegTestFlag_Leo_PMICB = 0U; -int8_t girq1L1RegTestFlag = 0U; -int8_t girq2L1RegTestFlag = 0U; -int8_t girq1L2RegTestFlag = 0U; -int8_t girq2L2RegTestFlag = 0U; -int8_t girqGetL1RegTestFlag_Hera = 0U; -int8_t girqGetL2RegTestFlag_Hera = 0U; - -int8_t gErrStatusCount = 0U; -int8_t gSkipErrStatusCount = 0U; -int8_t gFailCount = 0U; -int8_t gSkipFailStatusCount = 0U; - -Pmic_Ut_FaultInject_t gPmic_faultInjectCfg = {0U, 0U, 0U, 0U, 0U, 0U}; -int8_t gWdgErrStatusTestFlag = 0U; - -/* CRC8 Table with polynomial value:0x7 */ -uint8_t crc8_tlb[] = -{ - 0x00, 0x07, 0x0e, 0x09, 0x1c, 0x1b, 0x12, 0x15, - 0x38, 0x3f, 0x36, 0x31, 0x24, 0x23, 0x2a, 0x2d, - 0x70, 0x77, 0x7e, 0x79, 0x6c, 0x6b, 0x62, 0x65, - 0x48, 0x4f, 0x46, 0x41, 0x54, 0x53, 0x5a, 0x5d, - 0xe0, 0xe7, 0xee, 0xe9, 0xfc, 0xfb, 0xf2, 0xf5, - 0xd8, 0xdf, 0xd6, 0xd1, 0xc4, 0xc3, 0xca, 0xcd, - 0x90, 0x97, 0x9e, 0x99, 0x8c, 0x8b, 0x82, 0x85, - 0xa8, 0xaf, 0xa6, 0xa1, 0xb4, 0xb3, 0xba, 0xbd, - 0xc7, 0xc0, 0xc9, 0xce, 0xdb, 0xdc, 0xd5, 0xd2, - 0xff, 0xf8, 0xf1, 0xf6, 0xe3, 0xe4, 0xed, 0xea, - 0xb7, 0xb0, 0xb9, 0xbe, 0xab, 0xac, 0xa5, 0xa2, - 0x8f, 0x88, 0x81, 0x86, 0x93, 0x94, 0x9d, 0x9a, - 0x27, 0x20, 0x29, 0x2e, 0x3b, 0x3c, 0x35, 0x32, - 0x1f, 0x18, 0x11, 0x16, 0x03, 0x04, 0x0d, 0x0a, - 0x57, 0x50, 0x59, 0x5e, 0x4b, 0x4c, 0x45, 0x42, - 0x6f, 0x68, 0x61, 0x66, 0x73, 0x74, 0x7d, 0x7a, - 0x89, 0x8e, 0x87, 0x80, 0x95, 0x92, 0x9b, 0x9c, - 0xb1, 0xb6, 0xbf, 0xb8, 0xad, 0xaa, 0xa3, 0xa4, - 0xf9, 0xfe, 0xf7, 0xf0, 0xe5, 0xe2, 0xeb, 0xec, - 0xc1, 0xc6, 0xcf, 0xc8, 0xdd, 0xda, 0xd3, 0xd4, - 0x69, 0x6e, 0x67, 0x60, 0x75, 0x72, 0x7b, 0x7c, - 0x51, 0x56, 0x5f, 0x58, 0x4d, 0x4a, 0x43, 0x44, - 0x19, 0x1e, 0x17, 0x10, 0x05, 0x02, 0x0b, 0x0c, - 0x21, 0x26, 0x2f, 0x28, 0x3d, 0x3a, 0x33, 0x34, - 0x4e, 0x49, 0x40, 0x47, 0x52, 0x55, 0x5c, 0x5b, - 0x76, 0x71, 0x78, 0x7f, 0x6a, 0x6d, 0x64, 0x63, - 0x3e, 0x39, 0x30, 0x37, 0x22, 0x25, 0x2c, 0x2b, - 0x06, 0x01, 0x08, 0x0f, 0x1a, 0x1d, 0x14, 0x13, - 0xae, 0xa9, 0xa0, 0xa7, 0xb2, 0xb5, 0xbc, 0xbb, - 0x96, 0x91, 0x98, 0x9f, 0x8a, 0x8d, 0x84, 0x83, - 0xde, 0xd9, 0xd0, 0xd7, 0xc2, 0xc5, 0xcc, 0xcb, - 0xe6, 0xe1, 0xe8, 0xef, 0xfa, 0xfd, 0xf4, 0xf3 -}; - -/*! - * \brief OS specific Critical section locking Variable - * Should be OS specific locking varaible to - * use OS locking system for PMIC - */ -static SemaphoreP_Handle pmic_Sem = NULL; - -/*! - * \brief GPIO Driver board specific pin configuration structure - */ -GPIO_PinConfig gpioPinConfigs[] = -{ -#if defined(SOC_J721E) - /* Input pin with interrupt enabled */ - GPIO_DEVICE_CONFIG(J7_WAKEUP_GPIO0_PORT_NUM, J7_WAKEUP_GPIO0_9_PIN_NUM) | - GPIO_CFG_IN_INT_FALLING | GPIO_CFG_INPUT -#endif -# if defined(SOC_J7200) - /* Input pin with interrupt enabled */ - GPIO_DEVICE_CONFIG(J7_WAKEUP_GPIO0_PORT_NUM, J7_WAKEUP_GPIO0_84_PIN_NUM) | - GPIO_CFG_IN_INT_FALLING | GPIO_CFG_INPUT -#endif -}; - -/*! - * \brief GPIO Driver call back functions - */ -GPIO_CallbackFxn gpioCallbackFunctions[] = -{ - NULL -}; - -/*! - * \brief GPIO Driver configuration structure - */ -GPIO_v0_Config GPIO_v0_config = -{ - gpioPinConfigs, - gpioCallbackFunctions, - sizeof(gpioPinConfigs) / sizeof(GPIO_PinConfig), - sizeof(gpioCallbackFunctions) / sizeof(GPIO_CallbackFxn), -#if ((__ARM_ARCH == 7) && (__ARM_ARCH_PROFILE == 'R')) - 0x8U -#else -#if defined(BUILD_C7X) - 0x01U -#else - 0x20U -#endif -#endif -}; - -/** - * \brief This API Set Config for TI HW I2C instances - * - * \param instance [IN] I2C instance number - * \param baseAddr [IN] Register base address of the I2C instance - */ -static void test_pmic_setConfigI2C(uint8_t instance, uint32_t baseAddr) -{ - I2C_HwAttrs i2cCfg; - - I2C_socGetInitCfg(instance, &i2cCfg); - i2cCfg.baseAddr = baseAddr; - i2cCfg.enableIntr = 0U; - I2C_socSetInitCfg(instance, &i2cCfg); -} - -/** - * - * \brief Function to calculate CRC8 for given data using below values - * CRC Polynomial value: 0x07, Initial Value: 0xFF, Final Value: 0x00 - */ -static int32_t test_pmic_getcrc8Val(uint8_t *data, uint8_t len) -{ - uint8_t crc = 0xFFU; - uint8_t i; - - for(i = 0; i < len; i++) - { - crc = crc8_tlb[data[i] ^ crc]; - } - - return crc; -} - -/** - * - * \brief Initalize SPI stub function to access PMIC registers using - * I2C Communication Handle - */ -static int32_t test_pmic_spi_stubInit(Pmic_CoreCfg_t *pPmicConfigData) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigDataI2c = {0U}; - - /* Fill parameters to pmicConfigDataI2C */ - pmicConfigDataI2c.pmicDeviceType = pPmicConfigData->pmicDeviceType; - pmicConfigDataI2c.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigDataI2c.commMode = PMIC_INTF_DUAL_I2C; - pmicConfigDataI2c.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - if(J721E_LEO_PMICA_DEVICE == pmic_device_info) - { - pmicConfigDataI2c.slaveAddr = J721E_LEO_PMICA_SLAVE_ADDR; - pmicConfigDataI2c.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigDataI2c.qaSlaveAddr = J721E_LEO_PMICA_WDG_SLAVE_ADDR; - pmicConfigDataI2c.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigDataI2c.nvmSlaveAddr = J721E_LEO_PMICA_PAGE1_SLAVE_ADDR; - pmicConfigDataI2c.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - } - - if(J7VCL_LEO_PMICA_DEVICE == pmic_device_info) - { - pmicConfigDataI2c.slaveAddr = J7VCL_LEO_PMICA_SLAVE_ADDR; - pmicConfigDataI2c.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigDataI2c.qaSlaveAddr = J7VCL_LEO_PMICA_WDG_SLAVE_ADDR; - pmicConfigDataI2c.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigDataI2c.nvmSlaveAddr = J7VCL_LEO_PMICA_PAGE1_SLAVE_ADDR; - pmicConfigDataI2c.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - } - - pmicConfigDataI2c.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigDataI2c.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigDataI2c.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigDataI2c.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigDataI2c.pFnPmicCritSecStart = - pPmicConfigData->pFnPmicCritSecStart; - pmicConfigDataI2c.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigDataI2c.pFnPmicCritSecStop = pPmicConfigData->pFnPmicCritSecStop; - pmicConfigDataI2c.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - /* - * Recalling appInit function to initialize I2C PMIC Core handle - * for Stub Operations - */ - pmicStatus = test_pmic_appInit(&pPmicCoreHandleI2C, &pmicConfigDataI2c); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* - * Update Valid Communication Handle to make SPI stub - * PMIC core handle Init Success - */ - pPmicConfigData->pCommHandle = pPmicCoreHandleI2C->pCommHandle; - pPmicConfigData->validParams |= PMIC_CFG_COMM_HANDLE_VALID_SHIFT; - } - return pmicStatus; -} - -/** - * \brief Deinitalize SPI stub function - */ -static int32_t test_pmic_spi_stubDeinit(void **pCommHandle) -{ - test_pmic_appDeInit(pPmicCoreHandleI2C); - - if(NULL == (I2C_Handle)*pCommHandle) - { - return PMIC_ST_ERR_NULL_PARAM; - } - - *pCommHandle = NULL; - return PMIC_ST_SUCCESS; -} - -/** - * \brief SPI stub function read operation to read PMIC registers - * using I2C interface - */ -int32_t test_pmic_spi_stubRead(Pmic_CoreHandle_t *pPmicCorehandle, - uint8_t *pBuf, - uint8_t bufLen) -{ - int32_t pmicStatus = 0; - uint8_t instType = 0U; - uint16_t regAddr = 0U; - bool wdgopn = 0, crcopn = 0; - uint8_t rxBuf[4U] = {0U}; - - /* Check for WatchDog Operation */ - if(0U != (pBuf[1U] & (0x04 << 5U))) - { - wdgopn = true; - } - - /* Check for CRC Operation */ - if(0U != (pBuf[1U] & (0x01 << 5U))) - { - crcopn = true; - } - - /* Update register Address from spi buffer */ - regAddr = (uint16_t)pBuf[0U]; - bufLen = 1U; - - /* Find Instance type from wdg or crc operation */ - if(true == wdgopn) - { - instType = PMIC_QA_INST; - } - else if(true == crcopn) - { - instType = PMIC_NVM_INST; - } - else - { - instType = PMIC_MAIN_INST; - } - - /* Increase buffer lenth 1 more to get CRC, if CRC is Enabled */ - if(true == pPmicCorehandle->crcEnable) - { - bufLen++; - } - - /* Call PMIC read with I2C Instance */ - pmicStatus = test_pmic_regRead(pPmicCoreHandleI2C, - instType, - regAddr, - rxBuf, - bufLen); - - /* Updating the Recieved Reg Value to SPI Buffer */ - pBuf[2U] = rxBuf[0U]; - - /* Updating the Recieved CRC to SPI Buffer */ - if(true == pPmicCorehandle->crcEnable) - { - pBuf[3U] = test_pmic_getcrc8Val(pBuf, 3U); - } - - return pmicStatus; -} - -/** - * \brief SPI stub function write operation to write PMIC registers - * using I2C interface - */ -int32_t test_pmic_spi_write(Pmic_CoreHandle_t *pPmicCorehandle, - uint8_t *pBuf, - uint8_t bufLen) -{ - int32_t pmicStatus = 0; - uint8_t instType = 0U; - bool wdgopn = 0; - uint16_t regAddr = 0U; - uint8_t txBuf[4U] = {0U}; - - /* Update register Address from spi buffer */ - regAddr = (uint16_t)pBuf[0U]; - - /* Check for WatchDog Operation */ - if(0U != (pBuf[1U] & (0x04 << 5U))) - { - wdgopn = true; - } - - /* Find Instance type from wdg operation */ - if(true == wdgopn) - { - instType = PMIC_QA_INST; - } - else - { - instType = PMIC_MAIN_INST; - } - - /* Updating the SPI Buffer Reg Value to I2C Buffer */ - txBuf[0U] = pBuf[2U]; - bufLen = 1U; - - /* Updating the Recieved CRC to SPI Buffer */ - if(true == pPmicCorehandle->crcEnable) - { - uint8_t crcbuf[4U] = {0U}; - if(true == wdgopn) - { - crcbuf[0U] = pPmicCoreHandleI2C->qaSlaveAddr << 1U; - } - else - { - crcbuf[0U] = pPmicCoreHandleI2C->slaveAddr << 1U; - } - crcbuf[1U] = regAddr; - crcbuf[2U] = pBuf[2U]; - txBuf[1U] = test_pmic_getcrc8Val(crcbuf, 3U); - bufLen++; - } - - /* Call PMIC write with I2C Instance */ - pmicStatus = test_pmic_regWrite(pPmicCoreHandleI2C, - instType, - regAddr, - txBuf, - bufLen); - - return pmicStatus; -} - -/** - * \brief Function to probe PMIC slave devices on I2C instance - */ -static int32_t test_pmic_i2c_devices(Pmic_CoreHandle_t *pPmicCorehandle, - uint32_t instType) -{ - int32_t status = PMIC_ST_SUCCESS; - uint16_t slaveAddr; - I2C_Handle i2cHandle; - - if(PMIC_INTF_SINGLE_I2C == pPmicCorehandle->commMode) - { - i2cHandle = pPmicCorehandle->pCommHandle; - /* For Main PAGE SLAVE ID */ - slaveAddr = pPmicCorehandle->slaveAddr; - if(I2C_STATUS_SUCCESS == - I2C_control(i2cHandle, I2C_CMD_PROBE, &slaveAddr)) - { - pmic_log("I2C%d: Passed for address 0x%X !!! \r\n", - instType, slaveAddr); - } - else - { - status = PMIC_ST_ERR_I2C_COMM_FAIL; - } - /* For WD PAGE SLAVE ID */ - slaveAddr = pPmicCorehandle->qaSlaveAddr; - if(I2C_STATUS_SUCCESS == - I2C_control(i2cHandle, I2C_CMD_PROBE, &slaveAddr)) - { - pmic_log("I2C%d: Passed for address 0x%X !!! \r\n", - instType, slaveAddr); - } - else - { - status = PMIC_ST_ERR_I2C_COMM_FAIL; - } - } - if(PMIC_INTF_DUAL_I2C == pPmicCorehandle->commMode) - { - /* Main I2c BUS */ - if(PMIC_MAIN_INST == instType) - { - slaveAddr = pPmicCorehandle->slaveAddr; - i2cHandle = pPmicCorehandle->pCommHandle; - } - /* For WDG QA I2C BUS */ - else if(PMIC_QA_INST == instType) - { - slaveAddr = pPmicCorehandle->qaSlaveAddr; - i2cHandle = pPmicCorehandle->pQACommHandle; - } - if(I2C_STATUS_SUCCESS == - I2C_control(i2cHandle, I2C_CMD_PROBE, &slaveAddr)) - { - pmic_log("I2C%d: Passed for address 0x%X !!! \r\n", - instType, slaveAddr); - } - else - { - status = PMIC_ST_ERR_I2C_COMM_FAIL; - } - } - - return status; -} - -/*! - * \brief Function to setup the I2C lld interface for PMIC - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle. - * \param instType [IN] Instance Type - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values see \ref Pmic_ErrorCodes - */ -static int32_t test_pmic_i2c_lld_intf_setup(Pmic_CoreCfg_t *pPmicConfigData, - uint8_t instType) -{ - I2C_Params i2cParams; - I2C_Handle i2cHandle = NULL; - uint8_t i2c_instance = 0U; - - pmic_log("%s(): %d: %s I2C Setup...\n", __func__, __LINE__, - (instType == PMIC_MAIN_INST)? "PMIC_MAIN_INST": "PMIC_QA_INST"); - - /* Main I2c BUS */ - if(instType == PMIC_MAIN_INST) - { - /* Initialize i2c core instances */ - I2C_init(); - - i2c_instance = 0U; - test_pmic_setConfigI2C(i2c_instance, CSL_WKUP_I2C0_CFG_BASE); - } - /* For WDG QA I2C BUS */ - else if(PMIC_QA_INST == instType) - { - i2c_instance = 1U; - test_pmic_setConfigI2C(i2c_instance, CSL_MCU_I2C0_CFG_BASE); - } - - /* Configured i2cParams.bitRate with standard I2C_100kHz */ - I2C_Params_init(&i2cParams); - - i2cHandle = I2C_open(i2c_instance, &i2cParams); - if(NULL == i2cHandle) - { - pmic_log("I2C_open is failed!!!\n"); - return PMIC_ST_ERR_COMM_INTF_INIT_FAIL; - } - - /* Main I2c BUS */ - if(instType == PMIC_MAIN_INST) - { - pPmicConfigData->pCommHandle = i2cHandle; - } - /* For WDOG QA I2C BUS */ - else if(PMIC_QA_INST == instType) - { - pPmicConfigData->pQACommHandle = i2cHandle; - } - - pmic_log("%s(): %d: done...\n", __func__, __LINE__); - return PMIC_ST_SUCCESS; -} - -/*! - * \brief Function to setup the QA I2c interface for LEO PMIC depending - * upon i2c mode - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values see \ref Pmic_ErrorCodes - */ -static int32_t test_pmic_leo_dual_i2c_pin_setup(Pmic_CoreHandle_t *pPmicHandle) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_GpioCfg_t gpioCfg = {0U}; - - gpioCfg.validParams = PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | - PMIC_GPIO_CFG_OD_VALID_SHIFT; - - pmicStatus = Pmic_gpioGetConfiguration(pPmicHandle, - PMIC_TPS6594X_GPIO1_PIN, - &gpioCfg); - - if(PMIC_INTF_SINGLE_I2C == pPmicHandle->commMode) - { - if(gpioCfg.pinFunc == PMIC_TPS6594X_GPIO_PINFUNC_GPIO1_SCL_I2C2_CS_SPI) - { - gpioCfg.pinFunc = PMIC_TPS6594X_GPIO_PINFUNC_GPIO; - } - } - if(PMIC_INTF_DUAL_I2C == pPmicHandle->commMode) - { - gpioCfg.outputSignalType = PMIC_GPIO_OPEN_DRAIN_OUTPUT; - gpioCfg.pinFunc = PMIC_TPS6594X_GPIO_PINFUNC_GPIO1_SCL_I2C2_CS_SPI; - } - - pmicStatus = Pmic_gpioSetConfiguration(pPmicHandle, - PMIC_TPS6594X_GPIO1_PIN, - gpioCfg); - - gpioCfg.validParams = PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | - PMIC_GPIO_CFG_OD_VALID_SHIFT; - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_gpioGetConfiguration(pPmicHandle, - PMIC_TPS6594X_GPIO2_PIN, - &gpioCfg); - } - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(PMIC_INTF_SINGLE_I2C == pPmicHandle->commMode) - { - if(gpioCfg.pinFunc == - PMIC_TPS6594X_GPIO_PINFUNC_GPIO2_SDA_I2C2_SDO_SPI) - { - gpioCfg.pinFunc = PMIC_TPS6594X_GPIO_PINFUNC_GPIO; - } - } - if(PMIC_INTF_DUAL_I2C == pPmicHandle->commMode) - { - gpioCfg.outputSignalType = PMIC_GPIO_OPEN_DRAIN_OUTPUT; - gpioCfg.pinFunc = PMIC_TPS6594X_GPIO_PINFUNC_GPIO2_SDA_I2C2_SDO_SPI; - } - - pmicStatus = Pmic_gpioSetConfiguration(pPmicHandle, - PMIC_TPS6594X_GPIO2_PIN, - gpioCfg); - } - - return pmicStatus; -} - -/*! - * \brief Function to setup the QA I2c interface for HERA PMIC depending - * upon i2c mode - * - * \param pPmicCoreHandle [IN] PMIC Interface Handle - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values see \ref Pmic_ErrorCodes - */ -static int32_t test_pmic_hera_dual_i2c_pin_setup(Pmic_CoreHandle_t *pPmicHandle) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_GpioCfg_t gpioCfg = {0U}; - - gpioCfg.validParams = PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | - PMIC_GPIO_CFG_OD_VALID_SHIFT; - - pmicStatus = Pmic_gpioGetConfiguration(pPmicHandle, - PMIC_LP8764X_GPIO2_PIN, - &gpioCfg); - - if(PMIC_INTF_SINGLE_I2C == pPmicHandle->commMode) - { - if(gpioCfg.pinFunc == PMIC_LP8764X_GPIO_PINFUNC_GPIO2_SCL_I2C2) - { - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO; - } - } - if(PMIC_INTF_DUAL_I2C == pPmicHandle->commMode) - { - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO2_SCL_I2C2; - gpioCfg.outputSignalType = PMIC_GPIO_OPEN_DRAIN_OUTPUT; - } - - pmicStatus = Pmic_gpioSetConfiguration(pPmicHandle, - PMIC_LP8764X_GPIO2_PIN, - gpioCfg); - - gpioCfg.validParams = PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | - PMIC_GPIO_CFG_OD_VALID_SHIFT; - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_gpioGetConfiguration(pPmicHandle, - PMIC_LP8764X_GPIO3_PIN, - &gpioCfg); - } - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(PMIC_INTF_SINGLE_I2C == pPmicHandle->commMode) - { - if(gpioCfg.pinFunc == PMIC_LP8764X_GPIO_PINFUNC_GPIO3_SDA_I2C2) - { - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO; - } - } - if(PMIC_INTF_DUAL_I2C == pPmicHandle->commMode) - { - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO3_SDA_I2C2; - gpioCfg.outputSignalType = PMIC_GPIO_OPEN_DRAIN_OUTPUT; - } - - pmicStatus = Pmic_gpioSetConfiguration(pPmicHandle, - PMIC_LP8764X_GPIO3_PIN, - gpioCfg); - } - - return pmicStatus; -} - -/*! - * \brief Function to release the I2C lld interface for PMIC - * - * \param pCommHandle [OUT] PMIC Interface Handle. - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values see \ref Pmic_ErrorCodes - */ -static int32_t test_pmic_i2c_lld_intf_release(void **pCommHandle) -{ - if(NULL == (I2C_Handle)*pCommHandle) - { - return PMIC_ST_ERR_NULL_PARAM; - } - - I2C_close((I2C_Handle)*pCommHandle); - - *pCommHandle = NULL; - - return PMIC_ST_SUCCESS; -} - -/*! - * \brief PMIC I2C read function. - * - * \param pmicCorehandle [IN] PMIC Interface Handle. - * \param commMode [IN] Communication Mode - * \param slaveAddr [IN] I2c device slave address - * \param regAddr [OUT] Register address to read from. - * \param pBuf [IN] Buffer to store data - * \param bufLen [IN] Length of data to read. - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values see \ref Pmic_ErrorCodes - */ -int32_t test_pmic_regRead(Pmic_CoreHandle_t *pmicCorehandle, - uint8_t instType, - uint16_t regAddr, - uint8_t *pBuf, - uint8_t bufLen) -{ - int8_t ret = 0U; - - if((PMIC_INTF_SINGLE_I2C == pmicCorehandle->commMode) || - (PMIC_INTF_DUAL_I2C == pmicCorehandle->commMode)) - { - I2C_Transaction transaction; - I2C_transactionInit(&transaction); - - /* Set register offset for read and write */ - transaction.readBuf = pBuf; - transaction.readCount = bufLen; - transaction.writeBuf = ®Addr; - transaction.writeCount = 1U; - - /* Main I2c BUS */ - if(PMIC_MAIN_INST == instType) - { - transaction.slaveAddress = pmicCorehandle->slaveAddr; - ret = I2C_transfer((I2C_Handle)pmicCorehandle->pCommHandle, - &transaction); - if(ret != I2C_STS_SUCCESS) - { - return PMIC_ST_ERR_I2C_COMM_FAIL; - } - } - - /* For WDOG QA I2C BUS */ - if(PMIC_QA_INST == instType) - { - transaction.slaveAddress = pmicCorehandle->qaSlaveAddr; - if(PMIC_INTF_SINGLE_I2C == pmicCorehandle->commMode) - { - ret = I2C_transfer((I2C_Handle) - pmicCorehandle->pCommHandle, - &transaction); - } - if(PMIC_INTF_DUAL_I2C == pmicCorehandle->commMode) - { - ret = I2C_transfer((I2C_Handle) - pmicCorehandle->pQACommHandle, - &transaction); - } - if(ret != I2C_STS_SUCCESS) - { - return PMIC_ST_ERR_I2C_COMM_FAIL; - } - } - - if(1U == gWdgErrStatusTestFlag) - { - /* Stub test for code coverage- Set WD_ERR_STATUS bitfields */ - if(PMIC_UT_WD_ERR_STATUS_REGADDR == regAddr) - { - pBuf[0] = 0xA5U; - } - } - - if(1U == gLdoBypassModeEnTestFlag) - { - /* Stub test for code coverage- Set 7th bit to enable Ldo bypass - * mode (read operation) */ - if(PMIC_UT_LDO3_VOUT_REGADDR == regAddr) - { - pBuf[0] = 0x80U; - } - } - - if(1U == gThermalStatusTestFlag) - { - /* Stub test for code coverage- Set 3rd bit to enable Thermal warn - * status (read operation) */ - if(PMIC_UT_STAT_MISC_REGADDR == regAddr) - { - pBuf[0] = 0x8U; - } - - /* Stub test for code coverage- Set 1st bit to enable Orderly - * shutdown status (read operation) */ - if(PMIC_UT_STAT_MODERATE_ERR_REGADDR == regAddr) - { - pBuf[0] = 0x1U; - } - - /* Stub test for code coverage- Set 1st bit to enable Immediate - * shutdown status (read operation) */ - if(PMIC_UT_STAT_SEVERE_ERR_REGADDR == regAddr) - { - pBuf[0] = 0x1U; - } - } - - if(1U == gPwrRsrcStatusTestFlag) - { - /* Stub test for code coverage- Set 1st and 3rd bit to get the - * status for current limit and under voltage threshold */ - if(PMIC_UT_STAT_BUCK1_2_REGADDR == regAddr) - { - pBuf[0] = 0xAU; - } - - /* Stub test for code coverage- Set 2nd bit to get the status for - * Over voltage Level for VCCA */ - if(PMIC_UT_STAT_SEVERE_ERR_REGADDR == regAddr) - { - pBuf[0] = 0x2U; - } - } - - if((PMIC_UT_WD_FAIL_CNT_REG_REGADDR == regAddr) && (1U == gFailCntStatTestFlag)) - { - gFailCount++; - if(gSkipFailStatusCount == gFailCount) - { - /* Stub test for code coverage- Set 0th to 3rd bit and 6th bit - * to get the watchdog fail count status */ - pBuf[0U] = 0x4FU; - } - } - - if((PMIC_UT_WD_ERR_STATUS_REGADDR == regAddr) && (1U == gErrorStatusTestFlag)) - { - gErrStatusCount++; - if(gSkipErrStatusCount == gErrStatusCount) - { - /* Stub test for code coverage- Set 0th to 7th bit and to get - * the watchdog error status */ - pBuf[0U] = 0xFFU; - } - } - - if(1U == gEnableRtcTestFlag) - { - /* Stub test for code coverage- Set 2nd bit to start the RTC present - * in the PMIC */ - if(PMIC_UT_RTC_STATUS_REGADDR == regAddr) - { - pBuf[0] = 0x2U; - } - } - - if(1U == gRecoveryCntCfgTestFlag) - { - /* Stub test for code coverage- Set 4th bit get clear Recovery - * Counter value */ - if(PMIC_UT_RECOV_CNT_REG_2_REGADDR == regAddr) - { - pBuf[0] = 0x10U; - } - } - - if(1U == gEnableDrvPinCfgTestFlag) - { - /* Stub test for code coverage- Set 3rd bit to ENABLE_DRV bit is - * forced low */ - if(PMIC_UT_ENABLE_DRV_STAT_REGADDR == regAddr) - { - pBuf[0] = 0x8U; - } - } - - if(1U == gSpmiLpmStatTestFlag) - { - /* Stub test for code coverage- Set 4th bit to ENABLE SPMI LPM - * Control */ - if(PMIC_UT_ENABLE_DRV_STAT_REGADDR == regAddr) - { - pBuf[0] = 0x10U; - } - } - - /* Enable Top Register */ - if(1U == gIntrTopRegTestFlag) - { - /* Stub test for code coverage- Set All bit to get the PMIC_INT_TOP - * Register value */ - if(PMIC_UT_INT_TOP_REGADDR == regAddr) - { - pBuf[0] = 0xFFU; - } - } - - /* Enable L1 Register */ - if(1U == girqGetL1RegTestFlag_Leo) - { - /* Stub test for code coverage- Set All valid bit to get buck L1 error - * registers value */ - if(PMIC_UT_INT_BUCK_REGADDR == regAddr) - { - pBuf[0] = 0x7U; - } - - /* Stub test for code coverage- Set All valid bit to get Ldo L1 error - * registers value */ - if(PMIC_UT_INT_LDO_VMON_REGADDR == regAddr) - { - pBuf[0] = 0x13U; - } - - /* Stub test for code coverage- Set All valid bit to get Gpio L1 error - * registers value */ - if(PMIC_UT_INT_GPIO_REGADDR == regAddr) - { - pBuf[0] = 0xFU; - } - - /* Stub test for code coverage- Set All valid bit to get STARTUP L1 error - * registers value */ - if(PMIC_UT_INT_STARTUP_REGADDR == regAddr) - { - pBuf[0] = 0x37U; - } - - /* Stub test for code coverage- Set All valid bit to get MISC L1 error - * registers value */ - if(PMIC_UT_INT_MISC_REGADDR == regAddr) - { - pBuf[0] = 0xBU; - } - - /* Stub test for code coverage- Set All bit to get MODERATE L1 error - * registers value */ - if(PMIC_UT_INT_MODERATE_ERR_REGADDR == regAddr) - { - pBuf[0] = 0xFFU; - } - - /* Stub test for code coverage- Set All bit to get SEVERE L1 error - * registers value */ - if(PMIC_UT_INT_SEVERE_ERR_REGADDR == regAddr) - { - pBuf[0] = 0x7U; - } - - /* Stub test for code coverage- Set All bit to get FSM L1 error - * registers value */ - if(PMIC_UT_INT_FSM_ERR_REGADDR == regAddr) - { - pBuf[0] = 0x7FU; - } - } - - /* Enable L1 Register */ - if(1U == girqGetL1RegTestFlag_Leo_PMICB) - { - /* Stub test for code coverage- Set All bit to get FSM L1 error - * registers value */ - if(PMIC_UT_INT_FSM_ERR_REGADDR == regAddr) - { - pBuf[0] = 0xFFU; - } - } - - /* Enable L2 Register */ - if(1U == girqGetL2RegTestFlag_Leo) - { - /* Stub test for code coverage- Set All valid bit to get buck5 L2 error - * registers value */ - if(PMIC_UT_INT_BUCK5_REGADDR == regAddr) - { - pBuf[0] = 0xFU; - } - - /* Stub test for code coverage- Set All bit to get buck1_2 L2 error - * registers value */ - if(PMIC_UT_INT_BUCK1_2_REGADDR == regAddr) - { - pBuf[0] = 0xFFU; - } - - /* Stub test for code coverage- Set All bit to get buck3_4 L2 error - * registers value */ - if(PMIC_UT_INT_BUCK3_4_REGADDR == regAddr) - { - pBuf[0] = 0xFFU; - } - - /* Stub test for code coverage- Set All valid bit to get Vmon L1 error - * registers value */ - if(PMIC_UT_INT_VMON_REGADDR == regAddr) - { - pBuf[0] = 0x3U; // Bit ebnabled for Leo. For Hera 0xFFU - } - - /* Stub test for code coverage- Set All valid bit to get Gpio1_8 L2 error - * registers value */ - if(PMIC_UT_INT_GPIO1_8_REGADDR == regAddr) - { - pBuf[0] = 0xFFU; - } - - /* Stub test for code coverage- Set All valid bit to get LDO1_2 L2 error - * registers value */ - if(PMIC_UT_INT_LDO1_2_REGADDR == regAddr) - { - pBuf[0] = 0xFFU; - } - - /* Stub test for code coverage- Set All valid bit to get LDO1_2 L2 error - * registers value */ - if(PMIC_UT_INT_LDO3_4_REGADDR == regAddr) - { - pBuf[0] = 0xFFU; - } - - /* Stub test for code coverage- Set All valid bit to get COMM L2 error - * registers value */ - if(PMIC_UT_INT_COMM_ERR_REGADDR == regAddr) - { - pBuf[0] = 0xABU; - } - - /* Stub test for code coverage- Set All valid bit to get READBACK L2 error - * registers value */ - if(PMIC_UT_INT_READBACK_ERR_REGADDR == regAddr) - { - pBuf[0] = 0xFU; - } - - /* Stub test for code coverage- Set All valid bit to get READBACK L2 error - * registers value */ - if(PMIC_UT_INT_ESM_REGADDR == regAddr) - { - pBuf[0] = 0x3FU; - } - - /* Stub test for code coverage- Set All bit to get FSM L1 error - * registers value */ - if(PMIC_UT_WD_ERR_STATUS_REGADDR == regAddr) - { - pBuf[0] = 0xC1U; - } - } - - /* Enable L1 Register 1st bit */ - if(1U == girq1L1RegTestFlag) - { - /* Stub test for code coverage- Set 1st valid bit to get buck L1 error - * registers value */ - if(PMIC_UT_INT_BUCK_REGADDR == regAddr) - { - pBuf[0] = 0x1U; - } - - /* Stub test for code coverage- Set 1st valid bit to get Ldo L1 error - * registers value */ - if(PMIC_UT_INT_LDO_VMON_REGADDR == regAddr) - { - pBuf[0] = 0x1U; - } - - /* Stub test for code coverage- Set 2nd bit to get Gpio L1 error - * registers value */ - if(PMIC_UT_INT_GPIO_REGADDR == regAddr) - { - pBuf[0] = 0x1U; - } - - /* Stub test for code coverage- Set 1st bit to get MODERATE L1 error - * registers value */ - if(PMIC_UT_INT_MODERATE_ERR_REGADDR == regAddr) - { - pBuf[0] = 0x1U; - } - - /* Stub test for code coverage- Set 1st bit to get SEVERE L1 error - * registers value */ - if(PMIC_UT_INT_SEVERE_ERR_REGADDR == regAddr) - { - pBuf[0] = 0x1U; - } - - /* Stub test for code coverage- Set All bit to get FSM L1 error - * registers value */ - if(PMIC_UT_INT_FSM_ERR_REGADDR == regAddr) - { - pBuf[0] = 0x1U; - } - } - - /* Enable L1 Register 2nd bit */ - if(1U == girq2L1RegTestFlag) - { - /* Stub test for code coverage- Set 2nd bit to get buck L1 error - * registers value */ - if(PMIC_UT_INT_BUCK_REGADDR == regAddr) - { - pBuf[0] = 0x2U; - } - - /* Stub test for code coverage- Set 2nd bit to get Ldo L1 error - * registers value */ - if(PMIC_UT_INT_LDO_VMON_REGADDR == regAddr) - { - pBuf[0] = 0x2U; - } - - /* Stub test for code coverage- Set 2nd bit to get Gpio L1 error - * registers value */ - if(PMIC_UT_INT_GPIO_REGADDR == regAddr) - { - pBuf[0] = 0x2U; - } - - /* Stub test for code coverage- Set 2nd bit to get STARTUP L1 error - * registers value */ - if(PMIC_UT_INT_STARTUP_REGADDR == regAddr) - { - pBuf[0] = 0x2U; - } - - /* Stub test for code coverage- Set 2nd bit to get MISC L1 error - * registers value */ - if(PMIC_UT_INT_MISC_REGADDR == regAddr) - { - pBuf[0] = 0x2U; - } - - /* Stub test for code coverage- Set 2nd bit to get MODERATE L1 error - * registers value */ - if(PMIC_UT_INT_MODERATE_ERR_REGADDR == regAddr) - { - pBuf[0] = 0x2U; - } - - /* Stub test for code coverage- Set 2nd bit to get SEVERE L1 error - * registers value */ - if(PMIC_UT_INT_SEVERE_ERR_REGADDR == regAddr) - { - pBuf[0] = 0x2U; - } - - /* Stub test for code coverage- Set All bit to get FSM L1 error - * registers value */ - if(PMIC_UT_INT_FSM_ERR_REGADDR == regAddr) - { - pBuf[0] = 0x2U; - } - - } - - /* Enable L2 Register 1st bit */ - if(1U == girq1L2RegTestFlag) - { - /* Stub test for code coverage- Set 1st bit to get buck1_2 L2 error - * registers value */ - if(PMIC_UT_INT_BUCK1_2_REGADDR == regAddr) - { - pBuf[0] = 0x1U; - } - - /* Stub test for code coverage- Set 1st bit to get buck3_4 L2 error - * registers value */ - if(PMIC_UT_INT_BUCK3_4_REGADDR == regAddr) - { - pBuf[0] = 0x1U; - } - - /* Stub test for code coverage- Set 1st bit to get buck5 L2 error - * registers value */ - if(PMIC_UT_INT_BUCK5_REGADDR == regAddr) - { - pBuf[0] = 0x1U; - } - - /* Stub test for code coverage- Set 1st bit to get Vmon L2 error - * registers value */ - if(PMIC_UT_INT_VMON_REGADDR == regAddr) - { - pBuf[0] = 0x1U; // Bit ebnabled for Leo. For Hera 0xFFU - } - - /* Stub test for code coverage- Set 1st bit to get LDO1_2 L2 error - * registers value */ - if(PMIC_UT_INT_LDO1_2_REGADDR == regAddr) - { - pBuf[0] = 0x1U; - } - - /* Stub test for code coverage- Set 1st bit to get LDO1_2 L2 error - * registers value */ - if(PMIC_UT_INT_LDO3_4_REGADDR == regAddr) - { - pBuf[0] = 0x1U; - } - - /* Stub test for code coverage- Set 1st bit to get COMM L2 error - * registers value */ - if(PMIC_UT_INT_COMM_ERR_REGADDR == regAddr) - { - pBuf[0] = 0x1U; - } - - /* Stub test for code coverage- Set 1st bit to get READBACK L2 error - * registers value */ - if(PMIC_UT_INT_READBACK_ERR_REGADDR == regAddr) - { - pBuf[0] = 0x1U; - } - - /* Stub test for code coverage- Set 1st bit to get READBACK L2 error - * registers value */ - if(PMIC_UT_INT_ESM_REGADDR == regAddr) - { - pBuf[0] = 0x1U; - } - - /* Stub test for code coverage- Set 1st bit to get FSM L2 error - * registers value */ - if(PMIC_UT_WD_ERR_STATUS_REGADDR == regAddr) - { - pBuf[0] = 0x1U; - } - } - - /* Enable L2 Register 2nd bit */ - if(1U == girq2L2RegTestFlag) - { - /* Stub test for code coverage- Set 2nd bit to get buck1_2 L2 error - * registers value */ - if(PMIC_UT_INT_BUCK1_2_REGADDR == regAddr) - { - pBuf[0] = 0x2U; - } - - /* Stub test for code coverage- Set 2nd bit to get buck3_4 L2 error - * registers value */ - if(PMIC_UT_INT_BUCK3_4_REGADDR == regAddr) - { - pBuf[0] = 0x2U; - } - - /* Stub test for code coverage- Set 2nd bit to get buck5 L2 error - * registers value */ - if(PMIC_UT_INT_BUCK5_REGADDR == regAddr) - { - pBuf[0] = 0x2U; - } - - /* Stub test for code coverage- Set 2nd bit to get Vmon L2 error - * registers value */ - if(PMIC_UT_INT_VMON_REGADDR == regAddr) - { - pBuf[0] = 0x2U; // Bit ebnabled for Leo. For Hera 0xFFU - } - - /* Stub test for code coverage- Set 2nd bit to get LDO1_2 L2 error - * registers value */ - if(PMIC_UT_INT_LDO1_2_REGADDR == regAddr) - { - pBuf[0] = 0x2U; - } - - /* Stub test for code coverage- Set 2nd bit to get LDO1_2 L2 error - * registers value */ - if(PMIC_UT_INT_LDO3_4_REGADDR == regAddr) - { - pBuf[0] = 0x2U; - } - - /* Stub test for code coverage- Set 2nd bit to get COMM L2 error - * registers value */ - if(PMIC_UT_INT_COMM_ERR_REGADDR == regAddr) - { - pBuf[0] = 0x2U; - } - - /* Stub test for code coverage- Set 3rd bit to get READBACK L2 error - * registers value */ - if(PMIC_UT_INT_READBACK_ERR_REGADDR == regAddr) - { - pBuf[0] = 0x8U; - } - - /* Stub test for code coverage- Set 2nd bit to get READBACK L2 error - * registers value */ - if(PMIC_UT_INT_ESM_REGADDR == regAddr) - { - pBuf[0] = 0x2U; - } - - /* Stub test for code coverage- Set 6th bit to get FSM L2 error - * registers value */ - if(PMIC_UT_WD_ERR_STATUS_REGADDR == regAddr) - { - pBuf[0] = 0x40U; - } - } - -/* Hera Part */ - - if(1U == girqGetL1RegTestFlag_Hera) - { - /* Stub test for code coverage- Set All valid bit to get buck L1 error - * registers value */ - if(PMIC_UT_INT_BUCK_REGADDR == regAddr) - { - pBuf[0] = 0x3U; - } - - /* Stub test for code coverage- Set All valid bit to get Vmon L1 error - * registers value */ - if(PMIC_UT_INT_VMON_REGADDR == regAddr) - { - pBuf[0] = 0xFFU; - } - - /* Stub test for code coverage- Set All valid bit to get Gpio L1 error - * registers value */ - if(PMIC_UT_INT_GPIO_REGADDR == regAddr) - { - pBuf[0] = 0xBU; - } - - /* Stub test for code coverage- Set All valid bit to get STARTUP L1 error - * registers value */ - if(PMIC_UT_INT_STARTUP_REGADDR == regAddr) - { - pBuf[0] = 0x12U; - } - - /* Stub test for code coverage- Set All valid bit to get MISC L1 error - * registers value */ - if(PMIC_UT_INT_MISC_REGADDR == regAddr) - { - pBuf[0] = 0xBU; - } - - /* Stub test for code coverage- Set All bit to get MODERATE L1 error - * registers value */ - if(PMIC_UT_INT_MODERATE_ERR_REGADDR == regAddr) - { - pBuf[0] = 0xDFU; - } - - /* Stub test for code coverage- Set All bit to get SEVERE L1 error - * registers value */ - if(PMIC_UT_INT_SEVERE_ERR_REGADDR == regAddr) - { - pBuf[0] = 0x7U; - } - - /* Stub test for code coverage- Set All bit to get FSM L1 error - * registers value */ - if(PMIC_UT_INT_FSM_ERR_REGADDR == regAddr) - { - pBuf[0] = 0xFFU; - } - } - - if(1U == girqGetL2RegTestFlag_Hera) - { - /* Stub test for code coverage- Set All bit to get buck1_2 L2 error - * registers value */ - if(PMIC_UT_INT_BUCK1_2_REGADDR == regAddr) - { - pBuf[0] = 0xFFU; - } - - /* Stub test for code coverage- Set All bit to get buck3_4 L2 error - * registers value */ - if(PMIC_UT_INT_BUCK3_4_REGADDR == regAddr) - { - pBuf[0] = 0xFFU; - } - - /* Stub test for code coverage- Set All valid bit to get Gpio1_8 L2 error - * registers value */ - if(PMIC_UT_INT_GPIO1_8_REGADDR == regAddr) - { - pBuf[0] = 0xFFU; - } - - /* Stub test for code coverage- Set All valid bit to get COMM L2 error - * registers value */ - if(PMIC_UT_INT_COMM_ERR_REGADDR == regAddr) - { - pBuf[0] = 0xABU; - } - - /* Stub test for code coverage- Set All valid bit to get READBACK L2 error - * registers value */ - if(PMIC_UT_INT_READBACK_ERR_REGADDR == regAddr) - { - pBuf[0] = 0x9U; - } - - /* Stub test for code coverage- Set All valid bit to get READBACK L2 error - * registers value */ - if(PMIC_UT_INT_ESM_REGADDR == regAddr) - { - pBuf[0] = 0x38U; - } - - /* Stub test for code coverage- Set All bit to get FSM L1 error - * registers value */ - if(PMIC_UT_WD_ERR_STATUS_REGADDR == regAddr) - { - pBuf[0] = 0xC1U; - } - } - - /* NVM Instance */ - if(PMIC_NVM_INST == instType) - { - transaction.slaveAddress = pmicCorehandle->nvmSlaveAddr; - ret = I2C_transfer((I2C_Handle)pmicCorehandle->pCommHandle, - &transaction); - if(ret != I2C_STS_SUCCESS) - { - return PMIC_ST_ERR_I2C_COMM_FAIL; - } - - if(1U == gI2c1CrcEnableTestFlag) - { - /* Stub test for code coverage */ - if(0x1AU == regAddr) - { - pBuf[0] = 0x2U; - } - } - - if(1U == gI2c2CrcEnableTestFlag) - { - /* Stub test for code coverage */ - if(0x1AU == regAddr) - { - pBuf[0] = 0x4U; - } - } - } - } - - if(PMIC_INTF_SPI == pmicCorehandle->commMode) - { - if(PMIC_ST_SUCCESS != - test_pmic_spi_stubRead(pmicCorehandle, pBuf, bufLen)) - { - /* For Fault Injection Tests */ - if(1U == gPmic_faultInjectCfg.enableFaultInjectionRead) - { - gPmic_faultInjectCfg.commError = PMIC_ST_ERR_SPI_COMM_FAIL; - } - - return PMIC_ST_ERR_SPI_COMM_FAIL; - } - } - - /* Added for Branch Coverage */ - gPmic_faultInjectCfg.readCount++; - if((1U == gPmic_faultInjectCfg.enableFaultInjectionRead) && - (gPmic_faultInjectCfg.skipReadCount == gPmic_faultInjectCfg.readCount)) - { - gPmic_faultInjectCfg.commError = PMIC_ST_ERR_I2C_COMM_FAIL; - return PMIC_ST_ERR_I2C_COMM_FAIL; - } - - return PMIC_ST_SUCCESS; -} - -/*! - * \brief PMIC I2C write function. - * - * \param pmicCorehandle [IN] PMIC Interface Handle. - * \param commMode [IN] Communication Mode - * \param slaveAddr [IN] I2c device slave address - * \param regAddr [IN] Register address to write. - * \param pBuf [IN] Buffer to store data to write - * \param bufLen [IN] Length of data to write. - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values see \ref Pmic_ErrorCodes - */ -int32_t test_pmic_regWrite(Pmic_CoreHandle_t *pmicCorehandle, - uint8_t instType, - uint16_t regAddr, - uint8_t *pBuf, - uint8_t bufLen) -{ - int8_t ret = 0U; - - if((PMIC_INTF_SINGLE_I2C == pmicCorehandle->commMode) || - (PMIC_INTF_DUAL_I2C == pmicCorehandle->commMode)) - { - I2C_Transaction transaction; - - /* regAddr, 8-bit-Data, 8-bit-CRC(optional) => max 3 bytes - * Taking a databuff of size 3 only as it is enough - */ - uint8_t dataBuff[16U] = {0U}; - - /* Initializes the I2C transaction structure with default values */ - I2C_transactionInit(&transaction); - - if(PMIC_MAIN_INST == instType) - { - transaction.slaveAddress = pmicCorehandle->slaveAddr; - } - if(PMIC_QA_INST == instType) - { - transaction.slaveAddress = pmicCorehandle->qaSlaveAddr; - } - - dataBuff[0U] = regAddr; - memcpy(&dataBuff[1U], pBuf, bufLen); - - if(1U == gMissionStateTestFlag) - { - /* Stub test for code coverage- configure dataBuff[1U] value as 0x3 - * while configuring the PMIC statue as S2R/MCU state - */ - if(PMIC_UT_FSM_NSLEEP_TRIGGERS_REGADDR == regAddr) - { - dataBuff[1U] = 3U; - } - /* Stub test for code coverage- avoid i2c1 trigger (write operation) - * while configuring the PMIC state as Standby and LPstandby state */ - if(PMIC_UT_FSM_I2C_TRIGGERS_REGADDR == regAddr) - { - return PMIC_ST_SUCCESS; - } - } - - if(1U == gLdoBypassModeEnTestFlag) - { - /* Stub test for code coverage- avoid Ldo bypass mode enable - * (write operation) */ - if(PMIC_UT_LDO3_VOUT_REGADDR == regAddr) - { - return PMIC_ST_SUCCESS; - } - } - - /* Control Byte followed by write bit */ - transaction.writeBuf = dataBuff; - transaction.writeCount = bufLen + 1U; - transaction.readCount = 0U; - transaction.readBuf = NULL; - - /* Main I2c BUS */ - if(PMIC_MAIN_INST == instType) - { - ret = I2C_transfer((I2C_Handle)pmicCorehandle->pCommHandle, - &transaction); - if(ret != I2C_STS_SUCCESS) - { - return PMIC_ST_ERR_I2C_COMM_FAIL; - } - } - - /* For WDOG QA I2C BUS */ - if(PMIC_QA_INST == instType) - { - if(PMIC_INTF_SINGLE_I2C == pmicCorehandle->commMode) - { - ret = I2C_transfer((I2C_Handle) - pmicCorehandle->pCommHandle, - &transaction); - } - if(PMIC_INTF_DUAL_I2C == pmicCorehandle->commMode) - { - ret = I2C_transfer((I2C_Handle) - pmicCorehandle->pQACommHandle, - &transaction); - } - if(ret != I2C_STS_SUCCESS) - { - return PMIC_ST_ERR_I2C_COMM_FAIL; - } - } - } - - if(PMIC_INTF_SPI == pmicCorehandle->commMode) - { - if(PMIC_ST_SUCCESS != - test_pmic_spi_write(pmicCorehandle, pBuf, bufLen)) - { - /* For Fault Injection Tests */ - if(1U == gPmic_faultInjectCfg.enableFaultInjectionWrite) - { - gPmic_faultInjectCfg.commError = PMIC_ST_ERR_SPI_COMM_FAIL; - } - - return PMIC_ST_ERR_SPI_COMM_FAIL; - } - } - - /* Added for Branch Coverage */ - gPmic_faultInjectCfg.writeCount++; - if((1U == gPmic_faultInjectCfg.enableFaultInjectionWrite) && - (gPmic_faultInjectCfg.skipWriteCount == gPmic_faultInjectCfg.writeCount)) - { - gPmic_faultInjectCfg.commError = PMIC_ST_ERR_I2C_COMM_FAIL; - return PMIC_ST_ERR_I2C_COMM_FAIL; - } - - - return PMIC_ST_SUCCESS; -} - -/*! - * \brief Interface setup function for PMIC to create instance and - * initialise the SPI Bus for PMIC Communication - * - * \param pmicCorehandle [IN] PMIC Interface Handle. - * \param commMode [IN] Communication Mode - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values see \ref Pmic_ErrorCodes - */ -static int32_t test_pmic_spi_lld_intf_setup(Pmic_CoreCfg_t *pPmicConfigData) -{ - int32_t ret = PMIC_ST_SUCCESS; - - ret = test_pmic_spi_stubInit(pPmicConfigData); - - return ret; -} - -/*! - * \brief Interface release function for PMIC to release the SPI Bus - * - * \param pCommHandle [IN] PMIC Interface Handle. - * \param commMode [IN] Communication Mode - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values see \ref Pmic_ErrorCodes - */ -static int32_t test_pmic_spi_lld_intf_release(void **pCommHandle) -{ - int32_t ret = PMIC_ST_SUCCESS; - - ret = test_pmic_spi_stubDeinit(pCommHandle); - - return ret; -} - -/*! - * \brief Initialize Semaphore Handle - */ -static void test_pmic_osalSemaphoreInit(void) -{ - SemaphoreP_Params pmic_SemParams; - - /* Create call back semaphore */ - SemaphoreP_Params_init(&pmic_SemParams); - pmic_SemParams.mode = SemaphoreP_Mode_BINARY; - pmic_Sem = SemaphoreP_create(1U, &pmic_SemParams); -} - -/*! - * \brief DeInit Semaphore Handle - */ -static void test_pmic_osalSemaphoreDeInit(void) -{ - if(pmic_Sem) - { - SemaphoreP_delete(pmic_Sem); - pmic_Sem = NULL; - } -} - -/*! - * \brief PMIC Critical section Lock function - * This function should have OS specific locking setup and should - * assigned to 'pmicConfigData->pFnPmicCritSecStart' - */ -void test_pmic_criticalSectionStartFn(void) -{ - - if(SemaphoreP_OK != SemaphoreP_pend(pmic_Sem, - SemaphoreP_WAIT_FOREVER)) - { - pmic_log("%s(): Invalid Semaphore Handle\n", __func__); - } -} - -/*! - * \brief PMIC Critical section Unlock function - * This function should have OS specific locking setup and should - * assigned to 'pmicConfigData->pFnPmicCritSecStop' - */ -void test_pmic_criticalSectionStopFn(void) -{ - if(SemaphoreP_OK != SemaphoreP_post(pmic_Sem)) - { - pmic_log("%s(): Invalid Semaphore Handle\n", __func__); - } -} - -/*! - * \brief Get PMIC StartUp Interrupt Type. - * This function deciphers all interrupts and find startup type. - */ -static uint32_t get_startup_type(Pmic_CoreHandle_t *pPmicCoreHandle) -{ - Pmic_IrqStatus_t errStat = {0U}; - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t type = 0U; - - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, false); - switch(pPmicCoreHandle->pmicDeviceType) - { - case PMIC_DEV_LEO_TPS6594X: - switch(startup_type) - { - case PMIC_ENABLE_STARTUP_TYPE: - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_ENABLE_INT/32U] & - (1U << (PMIC_TPS6594X_ENABLE_INT % 32U))) != 0U)) - { - type = PMIC_ENABLE_STARTUP_TYPE; - } - break; - case PMIC_NPWRON_STARTUP_TYPE: - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_NPWRON_START_INT/32U] & - (1U << (PMIC_TPS6594X_NPWRON_START_INT % 32U))) != 0U)) - { - type = PMIC_NPWRON_STARTUP_TYPE; - } - break; - case PMIC_FSD_STARTUP_TYPE: - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_FSD_INT/32U] & - (1U << (PMIC_TPS6594X_FSD_INT % 32U))) != 0U)) - { - type = PMIC_FSD_STARTUP_TYPE; - } - break; - default: - type = 0U; - break; - } - break; - case PMIC_DEV_HERA_LP8764X: - switch(startup_type) - { - case PMIC_ENABLE_STARTUP_TYPE: - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_LP8764X_ENABLE_INT/32U] & - (1U << (PMIC_LP8764X_ENABLE_INT % 32U))) != 0U)) - { - type = PMIC_ENABLE_STARTUP_TYPE; - } - break; - case PMIC_FSD_STARTUP_TYPE: - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_LP8764X_FSD_INT/32U] & - (1U << (PMIC_LP8764X_FSD_INT % 32U))) != 0U)) - { - type = PMIC_FSD_STARTUP_TYPE; - } - break; - default: - type = 0U; - break; - } - break; - } - - startup_type = type; - - return pmicStatus; -} -/*! - * \brief PMIC Interrupt decipher and clear function - * This function deciphers all interrupts and clears the status - */ -static int32_t Pmic_intrClr(Pmic_CoreHandle_t *pmicHandle) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CoreHandle_t handle = *(Pmic_CoreHandle_t *)pmicHandle; - Pmic_IrqStatus_t errStat = {0U}; - uint8_t irqNum; - - if(startup_type != 0U) - { - pmicStatus = get_startup_type(pmicHandle); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_irqGetErrStatus(&handle, &errStat, false); - { - int i = 0; - for(i=0;i<4; i++) - { - pmic_log("INT STAT[%d]: 0x%08x\n", i, errStat.intStatus[i]); - } - } - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - while(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_getNextErrorStatus(&handle, &errStat, &irqNum); - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_irqClrErrStatus(&handle, irqNum); - } - - } - } - - if(PMIC_ST_ERR_INV_INT == pmicStatus) - { - pmicStatus = PMIC_ST_SUCCESS; - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_irqGetErrStatus(&handle, &errStat, false); - { - int i = 0; - for(i=0;i<4; i++) - { - pmic_log("INT STAT[%d]: 0x%08x\n", i, errStat.intStatus[i]); - } - } - } - - - pmic_log("\r\n"); - return pmicStatus; -} - -int32_t gCrcTestFlag_J721E = PMIC_STATUS_CRC_INIT_VAL; -int32_t gCrcTestFlag_J7VCL = PMIC_STATUS_CRC_INIT_VAL; - -/*! - * \brief Initialize PMIC Instance and corresponding Interface. - * - * \param pmicCoreHandle [OUT] PMIC Core Handle. - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values see \ref Pmic_ErrorCodes - */ -int32_t test_pmic_appInit(Pmic_CoreHandle_t **pmicCoreHandle, - Pmic_CoreCfg_t *pmicConfigData) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CoreHandle_t *pmicHandle = NULL; - uint8_t i2c1SpiCrcStatus = 0xFF, i2c2CrcStatus = 0xFF; - uint8_t i2c1Speed, i2c2Speed; - - /* Initialize Pmic Semaphore */ - test_pmic_osalSemaphoreInit(); - - if(pmicCoreHandle == NULL) - { - pmic_log("Invalid PMIC core Handle Reference\n"); - return PMIC_ST_ERR_INV_HANDLE; - } - - if(pmicConfigData == NULL) - { - pmic_log("Invalid PMIC config Data - NULL \n"); - return PMIC_ST_ERR_NULL_PARAM; - } - - - /* Allocate memory for PMIC core Handle */ - pmicHandle = malloc(sizeof(Pmic_CoreHandle_t)); - if(pmicHandle == NULL) - { - pmic_log("Failed to allocate memory to pmicHandle\n"); - return PMIC_ST_ERR_INV_HANDLE; - } - - memset(pmicHandle, 0, sizeof(Pmic_CoreHandle_t)); - - /* For single I2C Instance */ - if(PMIC_INTF_SINGLE_I2C == pmicConfigData->commMode) - { - uint64_t delta = 0; - /* Get PMIC valid Main I2C Instance */ - pmicStatus = test_pmic_i2c_lld_intf_setup(pmicConfigData, - PMIC_MAIN_INST); - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicConfigData->validParams |= PMIC_CFG_COMM_HANDLE_VALID_SHIFT; - /* Update instance type to pmicConfigData */ - pmicConfigData->instType = PMIC_MAIN_INST; - if(true == enableBenchMark) - { - uint64_t t1 = 0; - t1 = print_timeTakenInUsecs(0U, NULL); - /* Get PMIC core Handle for Main Instance */ - pmicStatus = Pmic_init(pmicConfigData, pmicHandle); - delta = print_timeTakenInUsecs(t1, NULL); - pmic_log("--------------------------------------\n"); - pmic_log("Time taken for %50s: %6d usec\n", - "Pmic_init API for single instance", - (uint32_t)delta); - pmic_log("--------------------------------------\n"); - } - else - { - /* Get PMIC core Handle for Main Instance */ - pmicStatus = Pmic_init(pmicConfigData, pmicHandle); - } - - /* - * Check for Warning message due to Invalid Device ID. - * And continue the application with WARNING message. - */ - if(PMIC_ST_WARN_INV_DEVICE_ID == pmicStatus) - { - pmic_log("\n*** WARNING: Found Invalid DEVICE ID ***\n\n"); - pmicStatus = PMIC_ST_SUCCESS; - } - } -#if defined(SOC_J721E) - if((PMIC_ST_SUCCESS == pmicStatus) && - (PMIC_CFG_TO_ENABLE_CRC == gCrcTestFlag_J721E)) - { - if(PMIC_SILICON_REV_ID_PG_2_0 == pmicHandle->pmicDevSiliconRev) - { - pmicStatus = Pmic_enableCRC(pmicHandle); - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmic_log("\r\n enableCRC - pmicStatus %d crcEnable %d \r\n",pmicStatus, pmicHandle->crcEnable); - Osal_delay(10); - gCrcTestFlag_J721E = PMIC_STATUS_CRC_ENABLED; - } - } - else - { - gCrcTestFlag_J721E = PMIC_STATUS_CRC_INIT_VAL; - } - } -#endif - -#if defined(SOC_J7200) - if((PMIC_ST_SUCCESS == pmicStatus) && - (PMIC_CFG_TO_ENABLE_CRC == gCrcTestFlag_J7VCL)) - { - if(PMIC_SILICON_REV_ID_PG_2_0 == pmicHandle->pmicDevSiliconRev) - { - pmicStatus = Pmic_enableCRC(pmicHandle); - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmic_log("\r\n enableCRC - pmicStatus %d crcEnable %d \r\n",pmicStatus, pmicHandle->crcEnable); - Osal_delay(10); - gCrcTestFlag_J7VCL = PMIC_STATUS_CRC_ENABLED; - } - } - else - { - gCrcTestFlag_J7VCL = PMIC_STATUS_CRC_INIT_VAL; - } - } -#endif - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_getCrcStatus(pmicHandle, - &i2c1SpiCrcStatus, - &i2c2CrcStatus); - pmic_log("\r\n pmicStatus %d i2c1SpiCrcStatus %d i2c2CrcStatus %d \r\n",pmicStatus, i2c1SpiCrcStatus, i2c2CrcStatus); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Probe connected PMIC device on given i2c Instance */ - test_pmic_i2c_devices(pmicHandle, PMIC_MAIN_INST); - } - if(PMIC_DEV_LEO_TPS6594X == pmicHandle->pmicDeviceType) - { - /* Check and De-select I2C2 PINFUNC for GPIO-1 and GPIO-2 */ - pmicStatus = test_pmic_leo_dual_i2c_pin_setup(pmicHandle); - } - if(PMIC_DEV_HERA_LP8764X == pmicHandle->pmicDeviceType) - { - /* Check and De-select I2C2 PINFUNC for GPIO-2 and GPIO-3 */ - pmicStatus = test_pmic_hera_dual_i2c_pin_setup(pmicHandle); - } - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Setup nSLEEP signals */ - pmicStatus = Pmic_fsmDeviceOnRequest(pmicHandle); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_intrClr(pmicHandle); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Setup I2C1 Speed based on commMode */ - pmicStatus = Pmic_setI2CSpeedCfg(pmicHandle); - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Get configured value for I2C1 Speed based on commMode */ - pmicStatus = Pmic_getI2CSpeed(pmicHandle, &i2c1Speed, - &i2c2Speed); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(PMIC_I2C_STANDARD_MODE == i2c1Speed) - { - pmicStatus = PMIC_ST_SUCCESS; - } - else - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - } - } - - } - /* For DUAL I2C Instance */ - else if(PMIC_INTF_DUAL_I2C == pmicConfigData->commMode) - { - uint64_t delta = 0; - /* Get PMIC valid Main I2C Instance */ - pmicStatus = test_pmic_i2c_lld_intf_setup(pmicConfigData, - PMIC_MAIN_INST); - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicConfigData->validParams |= PMIC_CFG_COMM_HANDLE_VALID_SHIFT; - /* Update instance type to pmicConfigData */ - pmicConfigData->instType = PMIC_MAIN_INST; - if(true == enableBenchMark) - { - uint64_t t1 = 0; - t1 = print_timeTakenInUsecs(0U, NULL); - /* Get PMIC core Handle for Main Instance */ - pmicStatus = Pmic_init(pmicConfigData, pmicHandle); - delta = print_timeTakenInUsecs(t1, NULL); - } - else - { - /* Get PMIC core Handle for Main Instance */ - pmicStatus = Pmic_init(pmicConfigData, pmicHandle); - } - /* - * Check for Warning message due to Invalid Device ID. - * And continue the application with WARNING message. - */ - if(PMIC_ST_WARN_INV_DEVICE_ID == pmicStatus) - { - pmic_log("\n*** WARNING: Found Invalid DEVICE ID ***\n\n"); - pmicStatus = PMIC_ST_SUCCESS; - } - } -#if defined(SOC_J721E) - if((PMIC_ST_SUCCESS == pmicStatus) && - (PMIC_CFG_TO_ENABLE_CRC == gCrcTestFlag_J721E)) - { - if(PMIC_SILICON_REV_ID_PG_2_0 == pmicHandle->pmicDevSiliconRev) - { - pmicStatus = Pmic_enableCRC(pmicHandle); - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmic_log("\r\n enableCRC - pmicStatus %d crcEnable %d \r\n",pmicStatus, pmicHandle->crcEnable); - Osal_delay(10); - gCrcTestFlag_J721E = PMIC_STATUS_CRC_ENABLED; - } - } - else - { - gCrcTestFlag_J721E = PMIC_STATUS_CRC_INIT_VAL; - } - } -#endif - -#if defined(SOC_J7200) - if((PMIC_ST_SUCCESS == pmicStatus) && - (PMIC_CFG_TO_ENABLE_CRC == gCrcTestFlag_J7VCL)) - { - if(PMIC_SILICON_REV_ID_PG_2_0 == pmicHandle->pmicDevSiliconRev) - { - pmicStatus = Pmic_enableCRC(pmicHandle); - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmic_log("\r\n enableCRC - pmicStatus %d crcEnable %d \r\n",pmicStatus, pmicHandle->crcEnable); - Osal_delay(10); - gCrcTestFlag_J7VCL = PMIC_STATUS_CRC_ENABLED; - } - } - else - { - gCrcTestFlag_J7VCL = PMIC_STATUS_CRC_INIT_VAL; - } - } -#endif - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_getCrcStatus(pmicHandle, - &i2c1SpiCrcStatus, - &i2c2CrcStatus); - pmic_log("\r\n pmicStatus %d i2c1SpiCrcStatus %d i2c2CrcStatus %d \r\n",pmicStatus, i2c1SpiCrcStatus, i2c2CrcStatus); - - - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Probe connected PMIC device on given i2c Instance */ - test_pmic_i2c_devices(pmicHandle, PMIC_MAIN_INST); - } - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Setup nSLEEP signals */ - pmicStatus = Pmic_fsmDeviceOnRequest(pmicHandle); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_intrClr(pmicHandle); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - if(PMIC_DEV_LEO_TPS6594X == pmicHandle->pmicDeviceType) - { - /* Setup leo pmic Dual I2C functionality to GPIO-1 & GPIO-2 */ - pmicStatus = test_pmic_leo_dual_i2c_pin_setup(pmicHandle); - } - if(PMIC_DEV_HERA_LP8764X == pmicHandle->pmicDeviceType) - { - /* Setup hera pmic Dual I2C functionality to GPIO-2 & GPIO-3 */ - pmicStatus = test_pmic_hera_dual_i2c_pin_setup(pmicHandle); - } - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Get PMIC valid QA I2C Instance */ - pmicStatus = test_pmic_i2c_lld_intf_setup(pmicConfigData, - PMIC_QA_INST); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicConfigData->validParams |= PMIC_CFG_QACOMM_HANDLE_VALID_SHIFT; - /* Update instance type to pmicConfigData */ - pmicConfigData->instType = PMIC_QA_INST; - if(true == enableBenchMark) - { - uint64_t t1 = 0; - t1 = print_timeTakenInUsecs(0U, NULL); - /* Get PMIC core Handle for QA Instances */ - pmicStatus = Pmic_init(pmicConfigData, pmicHandle); - delta += print_timeTakenInUsecs(t1, NULL); - pmic_log("--------------------------------------\n"); - pmic_log("Time taken for %50s: %6d usec\n", - "Pmic_init API for Dual instance", - (uint32_t)delta); - pmic_log("--------------------------------------\n"); - } - else - { - /* Get PMIC core Handle for QA Instances */ - pmicStatus = Pmic_init(pmicConfigData, pmicHandle); - } - } - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Probe connected PMIC device on given i2c Instance */ - test_pmic_i2c_devices(pmicHandle, PMIC_QA_INST); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Setup I2C1 Speed based on commMode */ - pmicStatus = Pmic_setI2CSpeedCfg(pmicHandle); - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Get configured value for I2C1 Speed based on commMode */ - pmicStatus = Pmic_getI2CSpeed(pmicHandle, &i2c1Speed, - &i2c2Speed); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - if((PMIC_I2C_STANDARD_MODE == i2c1Speed) && - (PMIC_I2C_STANDARD_MODE == i2c2Speed)) - { - pmicStatus = PMIC_ST_SUCCESS; - } - else - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - } - } - - } - /* For SPI Instance */ - else if(PMIC_INTF_SPI == pmicConfigData->commMode) - { - /* Get PMIC valid Main SPI Communication Handle */ - pmicStatus = test_pmic_spi_lld_intf_setup(pmicConfigData); - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Update MAIN instance type to pmicConfigData for SPI */ - pmicConfigData->instType = PMIC_MAIN_INST; - pmicStatus = Pmic_init(pmicConfigData, pmicHandle); - /* - * Check for Warning message due to Invalid Device ID. - * And continue the application with WARNING message. - */ - if(PMIC_ST_WARN_INV_DEVICE_ID == pmicStatus) - { - pmic_log("\n*** WARNING: Found Invalid DEVICE ID ***\n\n"); - pmicStatus = PMIC_ST_SUCCESS; - } - } -#if defined(SOC_J721E) - if((PMIC_ST_SUCCESS == pmicStatus) && - (PMIC_CFG_TO_ENABLE_CRC == gCrcTestFlag_J721E)) - { - if(PMIC_SILICON_REV_ID_PG_2_0 == pmicHandle->pmicDevSiliconRev) - { - pmicStatus = Pmic_enableCRC(pmicHandle); - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmic_log("\r\n enableCRC - pmicStatus %d crcEnable %d \r\n",pmicStatus, pmicHandle->crcEnable); - Osal_delay(10); - gCrcTestFlag_J721E = PMIC_STATUS_CRC_ENABLED; - } - } - else - { - gCrcTestFlag_J721E = PMIC_STATUS_CRC_INIT_VAL; - } - } -#endif - -#if defined(SOC_J7200) - if((PMIC_ST_SUCCESS == pmicStatus) && - (PMIC_CFG_TO_ENABLE_CRC == gCrcTestFlag_J7VCL)) - { - if(PMIC_SILICON_REV_ID_PG_2_0 == pmicHandle->pmicDevSiliconRev) - { - pmicStatus = Pmic_enableCRC(pmicHandle); - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmic_log("\r\n enableCRC - pmicStatus %d crcEnable %d \r\n",pmicStatus, pmicHandle->crcEnable); - Osal_delay(10); - gCrcTestFlag_J7VCL = PMIC_STATUS_CRC_ENABLED; - } - } - else - { - gCrcTestFlag_J7VCL = PMIC_STATUS_CRC_INIT_VAL; - } - } -#endif - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_getCrcStatus(pmicHandle, - &i2c1SpiCrcStatus, - &i2c2CrcStatus); - pmic_log("\r\n pmicStatus %d i2c1SpiCrcStatus %d i2c2CrcStatus %d \r\n",pmicStatus, i2c1SpiCrcStatus, i2c2CrcStatus); - - - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* Setup nSLEEP signals */ - pmicStatus = Pmic_fsmDeviceOnRequest(pmicHandle); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmicStatus = Pmic_intrClr(pmicHandle); - } - } - - if(PMIC_ST_SUCCESS != pmicStatus) - { - pmic_log("%s(): %d: FAILED with status: %d\n", - __func__, __LINE__, pmicStatus); - } - - *pmicCoreHandle = pmicHandle; - - return pmicStatus; -} - -void test_pmic_appDeInit(Pmic_CoreHandle_t *pmicCoreHandle) -{ - if(PMIC_INTF_SINGLE_I2C == pmicCoreHandle->commMode) - { - test_pmic_i2c_lld_intf_release(&pmicCoreHandle->pCommHandle); - } - else if(PMIC_INTF_DUAL_I2C == pmicCoreHandle->commMode) - { - test_pmic_i2c_lld_intf_release(&pmicCoreHandle->pCommHandle); - test_pmic_i2c_lld_intf_release(&pmicCoreHandle->pQACommHandle); - } - else if(PMIC_INTF_SPI == pmicCoreHandle->commMode) - { - test_pmic_spi_lld_intf_release(&pmicCoreHandle->pCommHandle); - } - - Pmic_deinit(pmicCoreHandle); - - free(pmicCoreHandle); - - /* PMIC Semaphore Clean-up */ - test_pmic_osalSemaphoreDeInit(); -} - -/*! - * \brief Unity setUp Function - */ -void setUp(void) -{ - /* Do nothing */ -} - -/*! - * \brief Unity tearDown Function - */ -void tearDown(void) -{ - /* Do nothing */ -} - -/*! - * \brief GPIO Interrupt Router Configuration - */ -void GPIO_configIntRouter(uint32_t portNum, uint32_t pinNum, uint32_t gpioIntRtrOutIntNum, GPIO_v0_HwAttrs *cfg) -{ - GPIO_IntCfg *intCfg; - uint32_t bankNum; - - intCfg = cfg->intCfg; - - cfg->baseAddr = CSL_WKUP_GPIO0_BASE; - - bankNum = pinNum/16; /* Each GPIO bank has 16 pins */ - - /* WKUP GPIO int router input interrupt is the GPIO bank interrupt */ -#if defined (SOC_J721E) -#if defined (BUILD_MCU1_0) - intCfg[pinNum].intNum = 124 + bankNum; -#elif defined (BUILD_MCU1_1) - intCfg[pinNum].intNum = 132 + bankNum; -#elif defined (BUILD_MCU2_0) - intCfg[pinNum].intNum = 260 + bankNum; -#elif defined (BUILD_MCU2_1) - intCfg[pinNum].intNum = 384 + bankNum; -#elif defined (BUILD_MCU3_0) - /* Need to check 256 intNum(256 + 0(bankNum)) is working or not after the BugFix - PDK-10394 */ - intCfg[pinNum].intNum = 256 + bankNum; -#elif defined (BUILD_MCU3_1) - /* Need to check 384 intNum(384 + 0(bankNum)) is working or not after the BugFix - PDK-10394 */ - intCfg[pinNum].intNum = 384 + bankNum; -#endif -#elif defined (SOC_J7200) -#if defined (BUILD_MCU1_0) - intCfg[pinNum].intNum = 124 + bankNum; -#elif defined (BUILD_MCU1_1) -intCfg[pinNum].intNum = 127 + bankNum; -#elif defined (BUILD_MCU2_0) - /* Need to check 488 intNum(483 + 5(bankNum)) is working or not after the BugFix - PDK-10394 */ - intCfg[pinNum].intNum = 488 + bankNum; -#elif defined (BUILD_MCU2_1) - /* Need to check 496 intNum(491 + 5(bankNum)) is working or not after the BugFix - PDK-10394 */ - intCfg[pinNum].intNum = 491 + bankNum; -#endif -#endif - - intCfg[pinNum].intcMuxNum = INVALID_INTC_MUX_NUM; - intCfg[pinNum].intcMuxInEvent = 0; - intCfg[pinNum].intcMuxOutEvent = 0; -} - -/*! - * \brief UART Configurations - */ -void Board_initUART(void) -{ - Board_initCfg boardCfg; - - boardCfg = BOARD_INIT_PINMUX_CONFIG | - BOARD_INIT_MODULE_CLOCK | - BOARD_INIT_UART_STDIO; - - Board_init(boardCfg); -} - -/*! - * \brief GPIO Configurations. - * This API is required for Asynchronous Interrupts only - */ -void App_initGPIO(GPIO_CallbackFxn callback) -{ - GPIO_v0_HwAttrs gpio_cfg; - - /* Get the default SPI init configurations */ - GPIO_socGetInitCfg(J7_WAKEUP_GPIO0_PORT_NUM, &gpio_cfg); - - /* change default GPIO port from MAIN GPIO0 to WAKEUP GPIO0 for Intrrupts */ - gpio_cfg.baseAddr = CSL_WKUP_GPIO0_BASE; - -#if defined(SOC_J721E) - GPIO_configIntRouter(J7_WAKEUP_GPIO0_PORT_NUM, J7_WAKEUP_GPIO0_9_PIN_NUM, 0, &gpio_cfg); -#endif -# if defined(SOC_J7200) - GPIO_configIntRouter(J7_WAKEUP_GPIO0_PORT_NUM, J7_WAKEUP_GPIO0_84_PIN_NUM, 0, &gpio_cfg); -#endif - - /* Set as the default GPIO init configurations */ - GPIO_socSetInitCfg(J7_WAKEUP_GPIO0_PORT_NUM, &gpio_cfg); - - /* GPIO initialization */ - GPIO_init(); - - /* Set the callback function */ - GPIO_setCallback(0, callback); -} - -#if defined(BUILD_MPU) || defined (BUILD_C7X) -extern void Osal_initMmuDefault(void); -void InitMmu(void) -{ - Osal_initMmuDefault(); -} -#endif - -static uint32_t test_pmic_get_unity_testcase_index( - uint32_t testId, - Pmic_Ut_Tests_t *pTest, - uint32_t num_testcases) -{ - uint32_t i; - int32_t status = PMIC_ST_SUCCESS; - - for (i = 0U; ; i++) - { - if(pTest->testId == testId) - { - pTest->testValid = true; - break; - } - else if(i >= num_testcases) - { - status = PMIC_ST_ERR_FAIL; - /* Print test Result */ - pmic_log("\n |TEST RESULT|:: %d ::", testId); - TEST_ASSERT_EQUAL_MESSAGE(PMIC_ST_SUCCESS, - status, - "Invalid Test ID"); - } - pTest++; - } - - return i; -} - -/*! - * \brief Function to print testcase info - */ -void test_pmic_print_unity_testcase_info(uint32_t testId, - Pmic_Ut_Tests_t *pTest, - uint32_t num_testcases) -{ - uint32_t index = 0U; - - /* Print unit test ID */ - pmic_log("\n\n |TEST ID|:: %d ::\n", testId); - - index = test_pmic_get_unity_testcase_index(testId, pTest, num_testcases); - - /* Print test description */ - pmic_log("\n |TEST NAME|:: %s ::\n", pTest[index].testDesc); - - /* Print test Result */ - pmic_log("\n |TEST_RESULT|:: %d ::", testId); -} - -static void pmic_testResultUpdate(uint32_t testId, - uint8_t result, - Pmic_Ut_Tests_t *pTest, - uint32_t num_testcases) -{ - uint32_t idx = 0U; - - while(idx < num_testcases) - { - if(pTest[idx].testId == testId) - { - pTest[idx].testValid = true; - pTest[idx].testResult = result; - } - - idx++; - } -} - -void pmic_testResultUpdate_ignore(uint32_t testId, - Pmic_Ut_Tests_t *pTest, - uint32_t num_testcases) -{ - uint8_t result = PMIC_TEST_RESULT_IGNORE; - - pmic_testResultUpdate(testId, result, pTest, num_testcases); - TEST_IGNORE(); -} - -void pmic_testResultUpdate_pass(uint32_t testId, - Pmic_Ut_Tests_t *pTest, - uint32_t num_testcases) -{ - uint8_t result = PMIC_TEST_RESULT_PASS; - - pmic_testResultUpdate(testId, result, pTest, num_testcases); -} - -void pmic_testResult_init(Pmic_Ut_Tests_t *pTest, uint32_t num_testcases) -{ - uint32_t idx = 0; - - for(idx = 0; idx < num_testcases; idx++) - { - pTest[idx].testValid = false; - pTest[idx].testResult = PMIC_TEST_RESULT_FAIL; - } -} - -void pmic_updateTestResults(Pmic_Ut_Tests_t *pTest, uint32_t num_testcases) -{ - uint32_t idx = 0; - - /* Print test Result */ - for(idx = 0; idx < num_testcases; idx++) - { - if(true == pTest[idx].testValid) - { - if(true == pTest[idx].finalTestValid) - { - if((PMIC_TEST_RESULT_FAIL == pTest[idx].testResult) || - (PMIC_TEST_RESULT_FAIL == pTest[idx].finalTestResult)) - { - pTest[idx].finalTestResult = PMIC_TEST_RESULT_FAIL; - } - else if(PMIC_TEST_RESULT_PASS == pTest[idx].testResult) - { - pTest[idx].finalTestResult = pTest[idx].testResult; - } - } - else - { - pTest[idx].finalTestValid = pTest[idx].testValid; - pTest[idx].finalTestResult = pTest[idx].testResult; - } - } - } -} - -void pmic_printTestResult(Pmic_Ut_Tests_t *pTest, uint32_t num_testcases) -{ - uint32_t idx = 0; - uint8_t testResult = 0; - char *result_str[3] = {"FAIL", "PASS", "IGNORE"}; - uint32_t testCnt = 0; - uint32_t failCnt = 0; - - pmic_log("\n\r"); - - pmic_log("Test Results\n"); - pmic_log("-----------------------\n\n"); - - /* Print test Result */ - for(idx = 0; idx < num_testcases; idx++) - { - if(true == pTest[idx].finalTestValid) - { - testResult = pTest[idx].finalTestResult; - if(PMIC_TEST_RESULT_FAIL == pTest[idx].finalTestResult) - { - failCnt++; - } - else if(PMIC_TEST_RESULT_IGNORE == pTest[idx].finalTestResult) - { - continue; - } - testCnt++; - pmic_log("|TEST RESULT|%s|%d|\n", - result_str[testResult], pTest[idx].testId); - } - } - - pmic_log("-----------------------\n"); - pmic_log("%d Tests %d Failures\n", - testCnt, failCnt); - if(0U == failCnt) - { - pmic_log("All tests have passed\n"); - } - else - { - pmic_log("Few tests are Failed\n"); - } - -} - -/*! - * \brief : Prints time taken for a given Valid string and returns delta. - */ -uint64_t print_timeTakenInUsecs(uint64_t t1, const char *str) -{ - uint64_t t2 = 0; - uint64_t delta = 0; - - t2 = TimerP_getTimeInUsecs(); - delta = t2 - t1; - - if(NULL != str) - { - pmic_log("Time taken for %50s: %6d usec\n", str, (uint32_t)delta); - } - - return delta; -} - -/*! - * \brief print Banner Message - */ -void pmic_print_banner(const char *str) -{ - pmic_log("\n\n%s running on %s of %s(%s %s)\n", - str, -#if defined (BUILD_MCU1_0) - "MCU1_0", -#elif defined (BUILD_MCU1_1) - "MCU1_1", -#elif defined (BUILD_MCU2_0) - "MCU2_0", -#elif defined (BUILD_MCU2_1) - "MCU2_1", -#elif defined (BUILD_MCU3_0) - "MCU3_0", -#elif defined (BUILD_MCU3_1) - "MCU3_1", -#endif -#if defined(SOC_J721E) - "J721E_EVM", -#elif defined(SOC_J7200) - "J7VCL_EVM", -#endif - __TIME__, - __DATE__); -} - -#if defined(SOC_J721E) -void test_pmic_rtc_setCfg_xtalOScEnType(Pmic_CoreHandle_t *pPmicCorehandle) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CoreHandle_t *pHandle = NULL; - pHandle = pPmicCorehandle; - Pmic_RtcCfg_t rtcCfg_rd = {PMIC_RTC_CFG_CRYSTAL_OSC_EN_VALID_SHIFT | - PMIC_RTC_CFG_CRYSTAL_OSC_TYPE_VALID_SHIFT,}; - Pmic_RtcCfg_t rtcCfg = - { - PMIC_RTC_CFG_CRYSTAL_OSC_EN_VALID_SHIFT | - PMIC_RTC_CFG_CRYSTAL_OSC_TYPE_VALID_SHIFT, - PMIC_RTC_CRYSTAL_OSC_ENABLE, - PMIC_RTC_32K_COUNTER_COMP_VAL_SET, - PMIC_RTC_ROUND_TIME_SET, - PMIC_RTC_STATIC_SHADOWED_REG_SEL, - PMIC_RTC_CRYSTAL_OSC_TYPE_9PF - }; - - pmicStatus = Pmic_rtcSetConfiguration(pHandle, rtcCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_rtcGetConfiguration(pHandle, &rtcCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(rtcCfg.crystalOScEn, rtcCfg_rd.crystalOScEn); - TEST_ASSERT_EQUAL(rtcCfg.crystalOScType, rtcCfg_rd.crystalOScType); -} -#endif diff --git a/test/common/pmic_ut_common.h b/test/common/pmic_ut_common.h deleted file mode 100644 index 5eff444..0000000 --- a/test/common/pmic_ut_common.h +++ /dev/null @@ -1,470 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ -/** - * \file pmic_ut_common.h - * - * \brief Haeder file for unit test related common APIs - * - */ - -#include -#include -#include - - -/* CSL Header files */ -#include -#include -#include -#include -#include - -/* OSAL Header files */ -#include - -/* Board Header files */ -#include -#include -#include - -/* I2C Header files */ -#include -#include - -/* GPIO Header Files */ -#include -#include - -/* Timer specific headers */ -#if defined(SOC_J721E) -#include -#endif -#if defined(SOC_J7200) -#include -#endif - -#if defined(UNITY_INCLUDE_CONFIG_V2_H) && \ - (defined(SOC_J721E) || defined(SOC_J7200)) -#include -#endif - -/*! - * \brief Slave addresses of J721E LEO PMIC-A and PMIC-B devices - */ -#define J721E_LEO_PMICA_SLAVE_ADDR (0x48U) -#define J721E_LEO_PMICA_PAGE1_SLAVE_ADDR (0x49U) -#define J721E_LEO_PMICA_WDG_SLAVE_ADDR (0x12U) - -#define J721E_LEO_PMICB_SLAVE_ADDR (0x4CU) -#define J721E_LEO_PMICB_PAGE1_SLAVE_ADDR (0x4DU) -#define J721E_LEO_PMICB_WDG_SLAVE_ADDR (0x13U) - -/*! - * \brief Slave addresses of J7VCL LEO PMIC-A and PMIC-B devices(Wakeup SoMs) - */ -#define J7VCL_WAKEUP_SOM_LEO_PMICA_SLAVE_ADDR (0x48U) -#define J7VCL_WAKEUP_SOM_LEO_PMICA_PAGE1_SLAVE_ADDR (0x49U) -#define J7VCL_WAKEUP_SOM_LEO_PMICA_WDG_SLAVE_ADDR (0x12U) - -#define J7VCL_WAKEUP_SOM_LEO_PMICB_SLAVE_ADDR (0x4CU) -#define J7VCL_WAKEUP_SOM_LEO_PMICB_PAGE1_SLAVE_ADDR (0x4DU) -#define J7VCL_WAKEUP_SOM_LEO_PMICB_WDG_SLAVE_ADDR (0x13U) - -/*! - * \brief Slave addresses of J7VCL HERA PMIC devices - */ -#define J7VCL_LEO_PMICA_SLAVE_ADDR (0x48U) -#define J7VCL_LEO_PMICA_PAGE1_SLAVE_ADDR (0x49U) -#define J7VCL_LEO_PMICA_WDG_SLAVE_ADDR (0x12U) - -#define J7VCL_HERA_PMIC_SLAVE_ADDR (0x4CU) -#define J7VCL_HERA_PMIC_PAGE1_SLAVE_ADDR (0x4DU) -#define J7VCL_HERA_PMIC_WDG_SLAVE_ADDR (0x13U) - -/*! - * \brief PMIC devices Definitions - */ -#define PMICA_DEVICE (0x01U) -#define PMICB_DEVICE (0x02U) -#define PMIC_DEVICE_MASK (0xFFU) - -/*! - * \brief Supported Board definition - */ -#define J721E_BOARD (0x01U << 8U) -#define J7VCL_BOARD (0x02U << 8U) - -/*! - * \brief LEO PMIC devices on J721E - */ -#define J721E_LEO_PMICA_DEVICE (J721E_BOARD + PMICA_DEVICE) -#define J721E_LEO_PMICB_DEVICE (J721E_BOARD + PMICB_DEVICE) - -/*! - * \brief PMIC devices on J7VCL EVM - */ -#define J7VCL_LEO_PMICA_DEVICE (J7VCL_BOARD + PMICA_DEVICE) -#define J7VCL_HERA_PMICB_DEVICE (J7VCL_BOARD + PMICB_DEVICE) - -/*! - * \brief PMIC Startup type - */ -#define PMIC_ENABLE_STARTUP_TYPE (0x01U) -#define PMIC_NPWRON_STARTUP_TYPE (0x02U) -#define PMIC_FSD_STARTUP_TYPE (0x03U) - -/*! - * \brief CRC Status - */ -#define PMIC_STATUS_CRC_INIT_VAL (0x0U) -#define PMIC_CFG_TO_ENABLE_CRC (0x1U) -#define PMIC_STATUS_CRC_ENABLED (0x2U) - -extern uint8_t startup_type; - -/*! - * \brief PMIC UT test status - */ -#define PMIC_UT_SUCCESS (true) -#define PMIC_UT_FAILURE (false) - -/*! - * \brief PMIC UT test Options - */ -#define PMIC_UT_AUTOMATE_OPTION (0U) -#define PMIC_UT_MANUAL_OPTION (1U) - -#define pmic_log (UART_printf) - -/*! - * \brief J7ES: use WAKEUP GPIO0_9 - */ -#define J7_WAKEUP_GPIO0_PORT_NUM 0U /* use WAKEUP GPIO0 */ -#define J7_WAKEUP_GPIO0_9_PIN_NUM 9U /* Pin 9 for J721E PMIC Intr */ -#define J7_WAKEUP_GPIO0_84_PIN_NUM 84U /* Pin 84 for J7VCL PMIC Intr */ - -/*! - * \brief J7ES: use WAKEUP GPIO0_9 - */ -#define PMIC_TEST_RESULT_FAIL 0U /* For Failed tests */ -#define PMIC_TEST_RESULT_PASS 1U /* For Passed tests */ -#define PMIC_TEST_RESULT_IGNORE 2U /* For Ignored tests */ - -/*! - * \brief PMIC FSM NSLEEP TRIGGER Register Address - */ -#define PMIC_UT_FSM_NSLEEP_TRIGGERS_REGADDR (0x86U) - -/*! - * \brief PMIC FSM I2C TRIGGER Register Address - */ -#define PMIC_UT_FSM_I2C_TRIGGERS_REGADDR (0x85U) - -/*! - * \brief PMIC Watch Dog Register Offsets - */ -#define PMIC_UT_WD_ERR_STATUS_REGADDR (0x8U) -#define PMIC_UT_WD_FAIL_CNT_REG_REGADDR (0xAU) - -/*! - * \brief LDO voltage selection Register Address - */ -#define PMIC_UT_LDO3_VOUT_REGADDR (0x25U) - -/*! - * \brief PMIC Power status Register Address - */ -#define PMIC_UT_STAT_MISC_REGADDR (0x74U) -#define PMIC_UT_STAT_MODERATE_ERR_REGADDR (0x75U) -#define PMIC_UT_STAT_SEVERE_ERR_REGADDR (0x76U) - -/*! - * \brief PMIC Power status Register Address - */ -#define PMIC_UT_STAT_BUCK1_2_REGADDR (0x6DU) - -/*! - * \brief INT_STARTUP Sources - */ -#define PMIC_UT_RTC_STATUS_REGADDR (0xC4U) - -/*! - * \brief: PMIC Recovery Counter Control and Status Registers - */ -#define PMIC_UT_RECOV_CNT_REG_2_REGADDR (0x84U) - -/*! - * \brief PMIC ENABLE_DRV_STAT register Addresses - */ -#define PMIC_UT_ENABLE_DRV_STAT_REGADDR (0x82U) - - -/*! - * \brief Interrupt Hierarchy Level 0 Register offsets - */ -#define PMIC_UT_INT_TOP_REGADDR (0x5AU) - -/*! - * \brief PMIC Interrupt Hierarchy Level 1 Register offsets - */ -#define PMIC_UT_INT_BUCK_REGADDR (0x5BU) -#define PMIC_UT_INT_GPIO_REGADDR (0x63U) -#define PMIC_UT_INT_STARTUP_REGADDR (0x65U) -#define PMIC_UT_INT_MISC_REGADDR (0x66U) -#define PMIC_UT_INT_MODERATE_ERR_REGADDR (0x67U) -#define PMIC_UT_INT_SEVERE_ERR_REGADDR (0x68U) -#define PMIC_UT_INT_FSM_ERR_REGADDR (0x69U) - -/*! - * \brief PMIC Interrupt Hierarchy Level 1 Register offsets. - */ -#define PMIC_UT_INT_LDO_VMON_REGADDR (0x5FU) - -/** Interrupt Hierarchy Level 2 Register offsets */ -/*! - * \brief INT_BUCK Sources - */ -#define PMIC_UT_INT_BUCK5_REGADDR (0x5EU) -#define PMIC_UT_INT_BUCK1_2_REGADDR (0x5CU) -#define PMIC_UT_INT_BUCK3_4_REGADDR (0x5DU) - -/*! - * \brief INT_GPIO Sources - */ -#define PMIC_UT_INT_GPIO1_8_REGADDR (0x64U) - -/*! - * \brief INT_LDO_VMON Sources - */ -#define PMIC_UT_INT_VMON_REGADDR (0x62U) - -/*! - * \brief Interrupt MASK registers address - */ -#define PMIC_UT_INT_LDO1_2_REGADDR (0x60U) -#define PMIC_UT_INT_LDO3_4_REGADDR (0x61U) - -/*! - * \brief INT_FSM sources - */ -#define PMIC_UT_INT_COMM_ERR_REGADDR (0x6AU) -#define PMIC_UT_INT_READBACK_ERR_REGADDR (0x6BU) -#define PMIC_UT_INT_ESM_REGADDR (0x6CU) - -/*! - * \brief Define the Pmic UT test interface - * - * \param testId Test ID - * \param testDesc Test Description - * - */ -typedef struct Pmic_Ut_Tests_s -{ - uint32_t testId; - char testDesc[140U]; - uint8_t testResult; - bool testValid; - uint8_t finalTestResult; - bool finalTestValid; -} Pmic_Ut_Tests_t; - -/*! - * \brief PMIC Fault Injection Test flags structure - * - * \param enableFaultInjectionRead Flag to enable/disable Fault - * Injection in PMIC Register Read. - * \param enableFaultInjectionWrite Flag to enable/disable Fault - * Injection in PMIC Register Write. - * \param readCount Flag to store current the Read - * Count value. - * \param writeCount Flag to store current the Write - * Count value. - * \param skipReadCount Count to skip fault injection for - * read. - * \param skipWriteCount Count to skip fault injection for - * write. - * \param commError Flag to return SPI/I2C - * communication error. - */ -typedef struct Pmic_Ut_FaultInject_s -{ - uint8_t enableFaultInjectionRead; - uint8_t enableFaultInjectionWrite; - uint8_t readCount; - uint8_t writeCount; - uint8_t skipReadCount; - uint8_t skipWriteCount; - int32_t commError; -} Pmic_Ut_FaultInject_t; - -/*! - * \brief PMIC I2C read function. - * - * \param pmicCorehandle [IN] PMIC Interface Handle. - * \param commMode [IN] Communication Mode - * \param slaveAddr [IN] I2c device slave address - * \param regAddr [OUT] Register address to read from. - * \param pBuf [IN] Buffer to store data - * \param bufLen [IN] Length of data to read. - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values see \ref Pmic_ErrorCodes - */ -int32_t test_pmic_regRead(Pmic_CoreHandle_t *pmicCorehandle, - uint8_t instType, - uint16_t regAddr, - uint8_t *pBuf, - uint8_t bufLen); - - /*! - * \brief PMIC I2C write function. - * - * \param pmicCorehandle [IN] PMIC Interface Handle. - * \param commMode [IN] Communication Mode - * \param slaveAddr [IN] I2c device slave address - * \param regAddr [IN] Register address to write. - * \param pBuf [IN] Buffer to store data to write - * \param bufLen [IN] Length of data to write. - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code - * For valid values see \ref Pmic_ErrorCodes - */ -int32_t test_pmic_regWrite(Pmic_CoreHandle_t *pmicCorehandle, - uint8_t instType, - uint16_t regAddr, - uint8_t *pBuf, - uint8_t bufLen); - -/*! - * \brief PMIC Critical section Lock function - * This function should have OS specific locking setup and should - * assigned to 'pmicConfigData.pFnPmicCritSecStart' - */ -void test_pmic_criticalSectionStartFn(void); - -/*! - * \brief PMIC Critical section Unlock function - * This function should have OS specific locking setup and should - * assigned to 'pmicConfigData.pFnPmicCritSecStop' - */ -void test_pmic_criticalSectionStopFn(void); - -/*! - * \brief Initialize PMIC Instance and corresponding Interface. - * - * \param pmicCoreHandle [OUT] PMIC Core Handle. - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values see \ref Pmic_ErrorCodes - */ -int32_t test_pmic_appInit(Pmic_CoreHandle_t **pmicCoreHandle, - Pmic_CoreCfg_t *pmicConfigData); - -/*! - * \brief Deinitialize PMIC Instance and corresponding Interface. - * - * \param pmicCoreHandle [OUT] PMIC Core Handle. - */ -void test_pmic_appDeInit(Pmic_CoreHandle_t *pmicCoreHandle); - -/*! - * \brief UART Configurations - */ -void Board_initUART(void); - -/*! - * \brief GPIO Configurations. - * This API is required for Asynchronous Interrupts only - */ -void App_initGPIO(GPIO_CallbackFxn callback); - -/*! - * \brief Function to print testcase info - */ -void test_pmic_print_unity_testcase_info(uint32_t testId, - Pmic_Ut_Tests_t *pTest, - uint32_t num_testcases); - -/*! - * \brief GPIO Interrupt Router Configuration - */ -void GPIO_configIntRouter(uint32_t portNum, - uint32_t pinNum, - uint32_t gpioIntRtrOutIntNum, - GPIO_v0_HwAttrs *cfg); - -/*! - * \brief Wrapper to update ignore infofrmation and Ignore the test - */ -void pmic_testResultUpdate_ignore(uint32_t testId, - Pmic_Ut_Tests_t *pTest, - uint32_t num_testcases); - -/*! - * \brief Wrapper to update pass infofrmation - */ -void pmic_testResultUpdate_pass(uint32_t testId, - Pmic_Ut_Tests_t *pTest, - uint32_t num_testcases); - -/*! - * \brief initialize test results with default values - */ -void pmic_testResult_init(Pmic_Ut_Tests_t *pTest, uint32_t num_testcases); - -/*! - * \brief Update final test results - */ -void pmic_updateTestResults(Pmic_Ut_Tests_t *pTest, uint32_t num_testcases); - -/*! - * \brief print all tests resuluts in required pattern - */ -void pmic_printTestResult(Pmic_Ut_Tests_t *pTest, uint32_t num_testcases); - -/*! - * \brief : Prints time taken for a given Valid string and returns delta. - */ -uint64_t print_timeTakenInUsecs(uint64_t t1, const char *str); - -/*! - * \brief print Banner Message - */ -void pmic_print_banner(const char *str); - -#if defined(SOC_J721E) -/*! - * \brief To Enable Crystal Oscillator for RTC on J721E PG2.0 - */ -void test_pmic_rtc_setCfg_xtalOScEnType(Pmic_CoreHandle_t *pPmicCorehandle); -#endif diff --git a/test/esm_test/makefile b/test/esm_test/makefile deleted file mode 100644 index 9066bf2..0000000 --- a/test/esm_test/makefile +++ /dev/null @@ -1,84 +0,0 @@ -# Filename: Makefile -# -# This file is the makefile for building PMIC ESM Test Code. -# -# Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com/ -# -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# -# Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the -# distribution. -# -# Neither the name of Texas Instruments Incorporated nor the names of -# its contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -#File - pmic_lld\test\esm_test\makefile - -APP_NAME = pmic_esm_testapp - -include $(PDK_INSTALL_PATH)/ti/build/Rules.make - -BUILD_OS_TYPE = baremetal - -SRCDIR = . ../common -INCDIR = . ../../include/ ../../include/cfg/tps6594x ../../include/cfg/lp8764x -INCDIR += ../common - -# Common source files across all platforms and cores -SRCS_COMMON += pmic_ut_esm.c pmic_ut_common.c - -SRCDIR += $(PDK_INSTALL_PATH)/ti/build/unit-test/Unity/src $(PDK_INSTALL_PATH)/ti/build/unit-test/config -INCDIR += $(PDK_INSTALL_PATH)/ti/build/unit-test/Unity/src $(PDK_INSTALL_PATH)/ti/build/unit-test/config -SRCS_COMMON += unity.c - -# List all the external components/interfaces, whose interface header files -# need to be included for this component -INCLUDE_EXTERNAL_INTERFACES = pdk i2c -INCLUDE_INTERNAL_INTERFACES = pmic - -# List all the components required by the application -COMP_LIST_COMMON = $(PDK_COMMON_BAREMETAL_COMP) - -# Common source files and CFLAGS across all platforms and cores -PACKAGE_SRCS_COMMON = . ../common - -CFLAGS_LOCAL_COMMON += -DUNITY_INCLUDE_CONFIG_V2_H $(PMIC_CFLAGS) - -# Core/SoC/platform specific source files and CFLAGS -# Example: -# SRCS_ = -# CFLAGS_LOCAL_ = - -# Include common make files -ifeq ($(MAKERULEDIR), ) -#Makerule path not defined, define this and assume relative path from ROOTDIR - MAKERULEDIR := $(ROOTDIR)/ti/build/makerules - export MAKERULEDIR -endif -include $(MAKERULEDIR)/common.mk - -# OBJs and libraries are built by using rule defined in rules_.mk -# and need not be explicitly specified here - -# Nothing beyond this point diff --git a/test/esm_test/pmic_ut_esm.c b/test/esm_test/pmic_ut_esm.c deleted file mode 100644 index f9b6dc6..0000000 --- a/test/esm_test/pmic_ut_esm.c +++ /dev/null @@ -1,5700 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ -/** - * \file pmic_ut_esm.c - * - * \brief PMIC Unit Test for testing PMIC ESM APIs - * - */ - -#include - -/* Pointer holds the pPmicCoreHandle */ -Pmic_CoreHandle_t *pPmicCoreHandle = NULL; - -extern uint16_t pmic_device_info; -extern int32_t gCrcTestFlag_J721E; -extern int32_t gCrcTestFlag_J7VCL; -extern Pmic_Ut_FaultInject_t gPmic_faultInjectCfg; - -/*! - * \brief PMIC ESM Test Cases - */ -static Pmic_Ut_Tests_t pmic_esm_tests[] = -{ - /*! TestID - * TestDesc - */ - { - 7769, - "Pmic_esmStart: Test to Start and Stop ESM MCU" - }, - { - 7770, - "Pmic_esmStart: Test to Start and Stop ESM SOC" - }, - { - 7771, - "Pmic_esmStart: Parameter validation for handle" - }, - { - 7772, - "Pmic_esmEnable: Test to Enable and Disable ESM MCU" - }, - { - 7773, - "Pmic_esmEnable: Test to Enable and Disable ESM SOC" - }, - { - 7774, - "Pmic_esmEnable: Parameter validation for handle" - }, - { - 7775, - "Pmic_esmGetEnableState: Test to verify ESM MCU Enable readback" - }, - { - 7776, - "Pmic_esmGetEnableState: Test to verify ESM SOC Enable readback" - }, - { - 7777, - "Pmic_esmGetEnableState: Parameter validation for handle" - }, - { - 7778, - "Pmic_esmGetEnableState: Parameter validation for pEsmState" - }, - { - 7779, - "Pmic_esmSetConfiguration: Test to configure ESM MCU in Level Mode" - }, - { - 7780, - "Pmic_esmSetConfiguration: Test to configure ESM SOC in Level Mode" - }, - { - 7781, - "Pmic_esmSetConfiguration: Test to configure ESM MCU in PWM Mode" - }, - { - 7782, - "Pmic_esmSetConfiguration: Test to configure ESM SOC in PWM Mode" - }, - { - 7783, - "Pmic_esmSetConfiguration: Parameter validation for handle" - }, - { - 7784, - "Pmic_esmSetConfiguration: Parameter validation for esmDelay1" - }, - { - 7785, - "Pmic_esmSetConfiguration: Parameter validation for esmDelay2" - }, - { - 7786, - "Pmic_esmSetConfiguration: Parameter validation for esmHMAX" - }, - { - 7787, - "Pmic_esmSetConfiguration: Parameter validation for esmHMIN" - }, - { - 7789, - "Pmic_esmSetConfiguration: Parameter validation for esmLMAX" - }, - { - 7790, - "Pmic_esmSetConfiguration: Parameter validation for esmLMIN" - }, - { - 7791, - "Pmic_esmSetConfiguration: Parameter validation for esmErrCntThr" - }, - { - 7792, - "Pmic_esmGetConfiguration: Test to verify PMIC ESM MCU Get Configuration" - }, - { - 7793, - "Pmic_esmGetConfiguration: Test to verify PMIC ESM SOC Get Configuration" - }, - { - 7794, - "Pmic_esmGetConfiguration: Parameter validation for handle" - }, - { - 7795, - "Pmic_esmGetConfiguration: Parameter validation for pEsmCfg" - }, - { - 7796, - "Pmic_esmGetErrCnt: Test to read the current ESM MCU Error Count Value" - }, - { - 7797, - "Pmic_esmGetErrCnt: Test to read the current ESM SOC Error Count Value" - }, - { - 7798, - "Pmic_esmGetErrCnt: Parameter validation for handle" - }, - { - 7799, - "Pmic_esmGetErrCnt: Parameter validation for pEsmErrCnt" - }, - { - 7836, - "Pmic_esmSetInterrupt: Test to verify ESM MCU Level Mode RST Interrupt" - }, - { - 7837, - "Pmic_esmSetInterrupt: Test to verify ESM MCU PWM Mode RST Interrupt" - }, - { - 7838, - "Pmic_esmSetInterrupt: Test to verify ESM MCU Level Mode FAIL Interrupt" - }, - { - 7839, - "Pmic_esmSetInterrupt: Test to verify ESM MCU PWM Mode FAIL Interrupt" - }, - { - 7840, - "Pmic_esmSetInterrupt: Test to verify ESM MCU Level Mode PIN Interrupt" - }, - { - 7841, - "Pmic_esmSetInterrupt: Test to verify ESM MCU PWM Mode PIN Interrupt" - }, - { - 0xAB22, - "Pmic_esmSetInterrupt: Test to verify ESM SOC Level Mode RST Interrupt" - }, - { - 0xAB23, - "Pmic_esmSetInterrupt: Test to verify ESM SOC PWM Mode RST Interrupt" - }, - { - 0xAB24, - "Pmic_esmSetInterrupt: Test to verify ESM SOC Level Mode FAIL Interrupt" - }, - { - 0xAB25, - "Pmic_esmSetInterrupt: Test to verify ESM SOC PWM Mode FAIL Interrupt" - }, - { - 0xAB26, - "Pmic_esmSetInterrupt: Test to verify ESM SOC Level Mode PIN Interrupt" - }, - { - 0xAB27, - "Pmic_esmSetInterrupt: Test to verify ESM SOC PWM Mode PIN Interrupt" - }, - { - 0xAB28, - "Pmic_esmSetInterrupt: Test to verify ESM SOC PWM Mode PIN, Fail and RST Interrupts" - }, - { - 7849, - "Pmic_esmSetInterrupt: Test to verify ESM MCU Level Mode PIN, Fail and RST Interrupts" - }, - { - 7850, - "Pmic_esmSetInterrupt: Test to verify ESM MCU Level Mode PIN, Fail and RST Interrupts disabled" - }, - { - 0xAB29, - "Pmic_esmSetInterrupt: Test to verify ESM SOC PWM Mode PIN, Fail and RST Interrupts disabled" - }, - { - 7852, - "Pmic_esmSetInterrupt: Parameter validation for handle" - }, - { - 7853, - "Pmic_esmStart : Negative test to verify ESM SOC Start for HERA" - }, - { - 7854, - "Pmic_esmEnable : Negative test to verify ESM SOC Enable for HERA" - }, - { - 7855, - "Pmic_esmSetConfiguration : Negative test to verify PMIC ESM SOC Set configuration for ESM SOC Level Mode for HERA" - }, - { - 7856, - "Pmic_esmGetConfiguration : Negative test to verify PMIC ESM SOC Get configuration for ESM SOC Level Mode for HERA" - }, - { - 7857, - "Pmic_esmGetErrCnt : Negative test to verify Error count value for HERA" - }, - { - 7858, - "Pmic_esmSetInterrupt : Negative test to verify ESM interrupt enable for HERA" - }, - { - 7859, - "Pmic_esmGetEnableState : Negative test to verify ESM get state for HERA" - }, - { - 0xAB2A, - "Pmic_esmSetInterrupt: Test to verify ESM SOC Level Mode PIN, Fail and RST Interrupts" - }, - { - 8009, - "Pmic_esmSetInterrupt: Test to verify ESM MCU PWM Mode PIN, Fail and RST Interrupts" - }, - { - 0xAB2B, - "Pmic_esmSetInterrupt: Test to verify ESM SOC Level Mode PIN, Fail and RST Interrupts disabled" - }, - { - 8011, - "Pmic_esmSetInterrupt: Test to verify ESM MCU PWM Mode PIN, Fail and RST Interrupts disabled" - }, - { - 9876, - "Pmic_esmGetStatus: Test to verify PMIC ESM MCU Get Status for Start and Stop functionality" - }, - { - 9877, - "Pmic_esmGetStatus: Test to verify PMIC ESM SOC Get Status for Start and Stop functionality" - }, - { - 9878, - "Pmic_esmGetStatus: Parameter validation for handle" - }, - { - 9879, - "Pmic_esmGetStatus: Parameter validation for pEsmState" - }, - { - 9880, - "Pmic_esmGetStatus: Negative test to verify ESM SOC Get Status for HERA" - }, - { - 10550, - "Pmic_esmSetInterrupt : Test to disable PMIC ESM SOC Mode PIN, FAIL, RST Interrupts" - }, - { - 10551, - "Pmic_esmSetConfiguration : Parameter validation for ESM HMAX Value" - }, - { - 10552, - "Pmic_esmSetConfiguration : Parameter validation for ESM HMIN Value" - }, - { - 10553, - "Pmic_esmSetConfiguration : Parameter validation for ESM LMAX Value" - }, - { - 10554, - "Pmic_esmSetConfiguration : Parameter validation for ESM LMIN Value" - }, - { - 10555, - "Pmic_esmSetConfiguration : Test to Disable DRV clear configuration" - }, - { - 10556, - "Pmic_esmSetConfiguration : Parameter validation for ValidParams" - }, - { - 10557, - "Pmic_esmGetConfiguration : Parameter validation for ValidParams" - }, - { - 9004, - "Pmic_esmTests: Dynamic Coverage Gaps and Fault Injection Tests" - }, -}; - -/*! - * \brief Test to verify ESM MCU Start and Stop functionality - */ -static void test_pmic_esm_startEsm_esmMcuStart(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_MCU; - bool esmState = PMIC_ESM_START; - - test_pmic_print_unity_testcase_info(7769, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, esmState); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmEnable(pPmicCoreHandle, esmType, PMIC_ESM_ENABLE); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_ESM_STARTED, pmicStatus); - - esmState = PMIC_ESM_STOP; - pmicStatus = Pmic_esmStart(pPmicCoreHandle,esmType, esmState); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmEnable(pPmicCoreHandle, esmType, PMIC_ESM_ENABLE); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(7769, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Test to verify ESM SOC Start and Stop functionality - */ -static void test_pmic_esm_startEsm_esmSocStart(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_SOC; - bool esmState = PMIC_ESM_START; - - test_pmic_print_unity_testcase_info(7770, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(7770, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, esmState); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmEnable(pPmicCoreHandle, esmType, PMIC_ESM_ENABLE); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_ESM_STARTED, pmicStatus); - - esmState = PMIC_ESM_STOP; - pmicStatus = Pmic_esmStart(pPmicCoreHandle,esmType, esmState); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmEnable(pPmicCoreHandle, esmType, PMIC_ESM_ENABLE); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(7770, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for handle - */ -static void test_pmic_esm_startEsmPrmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_SOC; - bool esmState = PMIC_ESM_STOP; - - test_pmic_print_unity_testcase_info(7771, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - pmicStatus = Pmic_esmStart(NULL, esmType, esmState); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(7771, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Test to verify ESM MCU Enable and Disable functionality - */ -static void test_pmic_esm_enableEsm_esmMcuEnable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_MCU; - bool esmToggle = PMIC_ESM_ENABLE; - bool esmState = false; - - test_pmic_print_unity_testcase_info(7772, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmEnable(pPmicCoreHandle, esmType, esmToggle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmGetEnableState(pPmicCoreHandle, esmType, &esmState); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(PMIC_ESM_ENABLE, esmState); - - esmToggle = PMIC_ESM_DISABLE; - pmicStatus = Pmic_esmEnable(pPmicCoreHandle, esmType, esmToggle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmGetEnableState(pPmicCoreHandle, esmType, &esmState); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(PMIC_ESM_DISABLE, esmState); - - pmic_testResultUpdate_pass(7772, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Test to verify ESM SOC Enable and Disable functionality - */ -static void test_pmic_esm_enableEsm_esmSocEnable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_SOC; - bool esmToggle = PMIC_ESM_ENABLE; - bool esmState = false; - - test_pmic_print_unity_testcase_info(7773, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(7773, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmEnable(pPmicCoreHandle, esmType, esmToggle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmGetEnableState(pPmicCoreHandle, esmType, &esmState); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(PMIC_ESM_ENABLE, esmState); - - esmToggle = PMIC_ESM_DISABLE; - pmicStatus = Pmic_esmEnable(pPmicCoreHandle, esmType, esmToggle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmGetEnableState(pPmicCoreHandle, esmType, &esmState); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(PMIC_ESM_DISABLE, esmState); - - pmic_testResultUpdate_pass(7773, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for handle - */ -static void test_pmic_esm_enableEsmPrmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_SOC; - bool esmToggle = PMIC_ESM_ENABLE; - - test_pmic_print_unity_testcase_info(7774, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - pmicStatus = Pmic_esmEnable(NULL, esmType, esmToggle); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(7774, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Test to verify ESM MCU Enable readback - */ -static void test_pmic_esm_getEnableState_esmMcu(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_MCU; - bool esmToggle = PMIC_ESM_ENABLE; - bool esmState = false; - - test_pmic_print_unity_testcase_info(7775, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmEnable(pPmicCoreHandle, esmType, esmToggle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmGetEnableState(pPmicCoreHandle, esmType, &esmState); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(true, esmState); - - esmToggle = PMIC_ESM_DISABLE; - pmicStatus = Pmic_esmEnable(pPmicCoreHandle, esmType, esmToggle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmGetEnableState(pPmicCoreHandle, esmType, &esmState); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(false, esmState); - - pmic_testResultUpdate_pass(7775, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Test to verify ESM SOC Enable readback - */ -static void test_pmic_esm_getEnableState_esmSoc(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_SOC; - bool esmToggle = PMIC_ESM_ENABLE; - bool esmState = false; - - test_pmic_print_unity_testcase_info(7776, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(7776, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmEnable(pPmicCoreHandle, esmType, esmToggle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmGetEnableState(pPmicCoreHandle, esmType, &esmState); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(true, esmState); - - esmToggle = PMIC_ESM_DISABLE; - pmicStatus = Pmic_esmEnable(pPmicCoreHandle, esmType, esmToggle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmGetEnableState(pPmicCoreHandle, esmType, &esmState); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(false, esmState); - - pmic_testResultUpdate_pass(7776, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter Validation for handle - */ -static void test_pmic_esm_getEnableStatePrmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_SOC; - bool esmState = false; - - test_pmic_print_unity_testcase_info(7777, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - pmicStatus = Pmic_esmGetEnableState(NULL, esmType, &esmState); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(7777, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter Validation for pEsmState - */ -static void test_pmic_esm_getEnableStatePrmValTest_esmState(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_SOC; - - test_pmic_print_unity_testcase_info(7778, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - pmicStatus = Pmic_esmGetEnableState(pPmicCoreHandle, esmType, NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(7778, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Test to verify PMIC ESM MCU Set configuration for ESM MCU - * Level Mode - */ -static void test_pmic_esm_setConfiguration_esmMcuLevelMode(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_MCU; - Pmic_EsmCfg_t esmCfg_rd = {PMIC_ESM_CFG_DELAY1_VALID_SHIFT | - PMIC_ESM_CFG_DELAY2_VALID_SHIFT | - PMIC_ESM_CFG_MODE_VALID_SHIFT,}; - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_DELAY1_VALID_SHIFT | PMIC_ESM_CFG_DELAY2_VALID_SHIFT | PMIC_ESM_CFG_MODE_VALID_SHIFT, - 4096U, - 2048U, - 30U, - 30U, - 30U, - 30U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_LEVEL_MODE - }; - - test_pmic_print_unity_testcase_info(7779, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmGetConfiguration(pPmicCoreHandle, - esmType, - &esmCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(esmCfg.esmDelay1_us, esmCfg_rd.esmDelay1_us); - TEST_ASSERT_EQUAL(esmCfg.esmDelay2_us, esmCfg_rd.esmDelay2_us); - TEST_ASSERT_EQUAL(esmCfg.esmMode, esmCfg_rd.esmMode); - - pmic_testResultUpdate_pass(7779, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Test to verify PMIC ESM SOC Set configuration for ESM SOC - * Level Mode - */ -static void test_pmic_esm_setConfiguration_esmSocLevelMode(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_SOC; - Pmic_EsmCfg_t esmCfg_rd = {PMIC_ESM_CFG_DELAY1_VALID_SHIFT | - PMIC_ESM_CFG_DELAY2_VALID_SHIFT | - PMIC_ESM_CFG_MODE_VALID_SHIFT,}; - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_DELAY1_VALID_SHIFT | PMIC_ESM_CFG_DELAY2_VALID_SHIFT | PMIC_ESM_CFG_MODE_VALID_SHIFT, - 4096U, - 2048U, - 30U, - 30U, - 30U, - 30U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_LEVEL_MODE - }; - - test_pmic_print_unity_testcase_info(7780, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(7780, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmGetConfiguration(pPmicCoreHandle, - esmType, - &esmCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(esmCfg.esmDelay1_us, esmCfg_rd.esmDelay1_us); - TEST_ASSERT_EQUAL(esmCfg.esmDelay2_us, esmCfg_rd.esmDelay2_us); - TEST_ASSERT_EQUAL(esmCfg.esmMode, esmCfg_rd.esmMode); - - pmic_testResultUpdate_pass(7780, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Test to verify PMIC ESM MCU Set configuration for ESM MCU - * PWM Mode and readback the ESM configuration - */ -static void test_pmic_esm_setConfiguration_esmMcuPwmMode(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_MCU; - Pmic_EsmCfg_t esmCfg_rd = {PMIC_ESM_CFG_DELAY1_VALID_SHIFT | - PMIC_ESM_CFG_DELAY2_VALID_SHIFT | - PMIC_ESM_CFG_HMAX_VALID_SHIFT | - PMIC_ESM_CFG_HMIN_VALID_SHIFT | - PMIC_ESM_CFG_LMAX_VALID_SHIFT | - PMIC_ESM_CFG_LMIN_VALID_SHIFT | - PMIC_ESM_CFG_MODE_VALID_SHIFT | - PMIC_ESM_CFG_ERR_CNT_THR_VALID_SHIFT,}; - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_DELAY1_VALID_SHIFT | PMIC_ESM_CFG_DELAY2_VALID_SHIFT | PMIC_ESM_CFG_HMAX_VALID_SHIFT | PMIC_ESM_CFG_HMIN_VALID_SHIFT | PMIC_ESM_CFG_LMAX_VALID_SHIFT | PMIC_ESM_CFG_LMIN_VALID_SHIFT | PMIC_ESM_CFG_MODE_VALID_SHIFT | PMIC_ESM_CFG_ERR_CNT_THR_VALID_SHIFT, - 4096U, - 2048U, - 30U, - 30U, - 30U, - 30U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_PWM_MODE - }; - - test_pmic_print_unity_testcase_info(7781, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmGetConfiguration(pPmicCoreHandle, - esmType, - &esmCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(esmCfg.esmDelay1_us, esmCfg_rd.esmDelay1_us); - TEST_ASSERT_EQUAL(esmCfg.esmDelay2_us, esmCfg_rd.esmDelay2_us); - TEST_ASSERT_EQUAL(esmCfg.esmHmax_us, esmCfg_rd.esmHmax_us); - TEST_ASSERT_EQUAL(esmCfg.esmHmin_us, esmCfg_rd.esmHmin_us); - TEST_ASSERT_EQUAL(esmCfg.esmLmax_us, esmCfg_rd.esmLmax_us); - TEST_ASSERT_EQUAL(esmCfg.esmLmin_us, esmCfg_rd.esmLmin_us); - TEST_ASSERT_EQUAL(esmCfg.esmMode, esmCfg_rd.esmMode); - TEST_ASSERT_EQUAL(esmCfg.esmErrCntThr, esmCfg_rd.esmErrCntThr); - - pmic_testResultUpdate_pass(7781, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Test to verify PMIC ESM SOC Set configuration for ESM SOC - * PWM Mode and read back the ESM configuration. - */ -static void test_pmic_esm_setConfiguration_esmSocPwmMode(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_SOC; - Pmic_EsmCfg_t esmCfg_rd = {PMIC_ESM_CFG_DELAY1_VALID_SHIFT | - PMIC_ESM_CFG_DELAY2_VALID_SHIFT | - PMIC_ESM_CFG_HMAX_VALID_SHIFT | - PMIC_ESM_CFG_HMIN_VALID_SHIFT | - PMIC_ESM_CFG_LMAX_VALID_SHIFT | - PMIC_ESM_CFG_LMIN_VALID_SHIFT | - PMIC_ESM_CFG_MODE_VALID_SHIFT | - PMIC_ESM_CFG_ERR_CNT_THR_VALID_SHIFT,}; - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_DELAY1_VALID_SHIFT | PMIC_ESM_CFG_DELAY2_VALID_SHIFT | PMIC_ESM_CFG_HMAX_VALID_SHIFT | PMIC_ESM_CFG_HMIN_VALID_SHIFT | PMIC_ESM_CFG_LMAX_VALID_SHIFT | PMIC_ESM_CFG_LMIN_VALID_SHIFT | PMIC_ESM_CFG_MODE_VALID_SHIFT | PMIC_ESM_CFG_ERR_CNT_THR_VALID_SHIFT, - 4096U, - 2048U, - 30U, - 30U, - 30U, - 30U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_PWM_MODE - }; - - test_pmic_print_unity_testcase_info(7782, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(7782, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmGetConfiguration(pPmicCoreHandle, - esmType, - &esmCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(esmCfg.esmDelay1_us, esmCfg_rd.esmDelay1_us); - TEST_ASSERT_EQUAL(esmCfg.esmDelay2_us, esmCfg_rd.esmDelay2_us); - TEST_ASSERT_EQUAL(esmCfg.esmHmax_us, esmCfg_rd.esmHmax_us); - TEST_ASSERT_EQUAL(esmCfg.esmHmin_us, esmCfg_rd.esmHmin_us); - TEST_ASSERT_EQUAL(esmCfg.esmLmax_us, esmCfg_rd.esmLmax_us); - TEST_ASSERT_EQUAL(esmCfg.esmLmin_us, esmCfg_rd.esmLmin_us); - TEST_ASSERT_EQUAL(esmCfg.esmMode, esmCfg_rd.esmMode); - TEST_ASSERT_EQUAL(esmCfg.esmErrCntThr, esmCfg_rd.esmErrCntThr); - - pmic_testResultUpdate_pass(7782, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for handle - */ -static void test_pmic_esm_setConfigurationPrmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_MCU; - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_DELAY1_VALID_SHIFT | PMIC_ESM_CFG_DELAY2_VALID_SHIFT | PMIC_ESM_CFG_MODE_VALID_SHIFT, - 4096U, - 2048U, - 30U, - 30U, - 30U, - 30U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_LEVEL_MODE - }; - - test_pmic_print_unity_testcase_info(7783, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetConfiguration(NULL, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(7783, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for esmDelay1 - */ -static void test_pmic_esm_setConfigurationPrmValTest_esmDelay1(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_MCU; - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_DELAY1_VALID_SHIFT | PMIC_ESM_CFG_DELAY2_VALID_SHIFT | PMIC_ESM_CFG_MODE_VALID_SHIFT, - 522401, - 2048U, - 30U, - 30U, - 30U, - 30U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_LEVEL_MODE - }; - - test_pmic_print_unity_testcase_info(7784, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_ESM_VAL, pmicStatus); - - pmic_testResultUpdate_pass(7784, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for esmDelay2 - */ -static void test_pmic_esm_setConfigurationPrmValTest_esmDelay2(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_MCU; - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_DELAY1_VALID_SHIFT | PMIC_ESM_CFG_DELAY2_VALID_SHIFT | PMIC_ESM_CFG_MODE_VALID_SHIFT, - 2048U, - 522401U, - 30U, - 30U, - 30U, - 30U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_LEVEL_MODE - }; - - test_pmic_print_unity_testcase_info(7785, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_ESM_VAL, pmicStatus); - - pmic_testResultUpdate_pass(7785, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for HMAX - */ -static void test_pmic_esm_setConfigurationPrmValTest_esmHmax(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_MCU; - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_DELAY1_VALID_SHIFT | PMIC_ESM_CFG_DELAY2_VALID_SHIFT | PMIC_ESM_CFG_HMAX_VALID_SHIFT | PMIC_ESM_CFG_HMIN_VALID_SHIFT | PMIC_ESM_CFG_LMAX_VALID_SHIFT | PMIC_ESM_CFG_LMIN_VALID_SHIFT | PMIC_ESM_CFG_MODE_VALID_SHIFT , - 4096U, - 2048U, - 0U, - 30U, - 30U, - 30U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_PWM_MODE - }; - - test_pmic_print_unity_testcase_info(7786, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_ESM_VAL, pmicStatus); - - pmic_testResultUpdate_pass(7786, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for HMIN - */ -static void test_pmic_esm_setConfigurationPrmValTest_esmHmin(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_MCU; - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_DELAY1_VALID_SHIFT | PMIC_ESM_CFG_DELAY2_VALID_SHIFT | PMIC_ESM_CFG_HMAX_VALID_SHIFT | PMIC_ESM_CFG_HMIN_VALID_SHIFT | PMIC_ESM_CFG_LMAX_VALID_SHIFT | PMIC_ESM_CFG_LMIN_VALID_SHIFT | PMIC_ESM_CFG_MODE_VALID_SHIFT , - 4096U, - 2048U, - 30U, - 0U, - 30U, - 30U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_PWM_MODE - }; - - test_pmic_print_unity_testcase_info(7787, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_ESM_VAL, pmicStatus); - - pmic_testResultUpdate_pass(7787, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for LMAX - */ -static void test_pmic_esm_setConfigurationPrmValTest_esmLmax(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_MCU; - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_DELAY1_VALID_SHIFT | PMIC_ESM_CFG_DELAY2_VALID_SHIFT | PMIC_ESM_CFG_HMAX_VALID_SHIFT | PMIC_ESM_CFG_HMIN_VALID_SHIFT | PMIC_ESM_CFG_LMAX_VALID_SHIFT | PMIC_ESM_CFG_LMIN_VALID_SHIFT | PMIC_ESM_CFG_MODE_VALID_SHIFT , - 4096U, - 2048U, - 30U, - 30U, - 0U, - 30U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_PWM_MODE - }; - - test_pmic_print_unity_testcase_info(7789, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_ESM_VAL, pmicStatus); - - pmic_testResultUpdate_pass(7789, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for LMIN - */ -static void test_pmic_esm_setConfigurationPrmValTest_esmLmin(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_MCU; - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_DELAY1_VALID_SHIFT | PMIC_ESM_CFG_DELAY2_VALID_SHIFT | PMIC_ESM_CFG_HMAX_VALID_SHIFT | PMIC_ESM_CFG_HMIN_VALID_SHIFT | PMIC_ESM_CFG_LMAX_VALID_SHIFT | PMIC_ESM_CFG_LMIN_VALID_SHIFT | PMIC_ESM_CFG_MODE_VALID_SHIFT , - 4096U, - 2048U, - 30U, - 30U, - 30U, - 0U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_PWM_MODE - }; - - test_pmic_print_unity_testcase_info(7790, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_ESM_VAL, pmicStatus); - - pmic_testResultUpdate_pass(7790, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for ErrCntThr - */ -static void test_pmic_esm_setConfigurationPrmValTest_esmErrCntThr(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_MCU; - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_DELAY1_VALID_SHIFT | PMIC_ESM_CFG_DELAY2_VALID_SHIFT | PMIC_ESM_CFG_HMAX_VALID_SHIFT | PMIC_ESM_CFG_HMIN_VALID_SHIFT | PMIC_ESM_CFG_LMAX_VALID_SHIFT | PMIC_ESM_CFG_LMIN_VALID_SHIFT | PMIC_ESM_CFG_MODE_VALID_SHIFT | PMIC_ESM_CFG_ERR_CNT_THR_VALID_SHIFT, - 4096U, - 2048U, - 30U, - 30U, - 30U, - 30U, - 16U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_PWM_MODE - }; - - test_pmic_print_unity_testcase_info(7791, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(7791, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Test to verify PMIC ESM MCU Get configuration - */ -static void test_pmic_esm_getConfiguration_esmMcuPwmMode(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_MCU; - Pmic_EsmCfg_t esmCfg_rd = {PMIC_ESM_CFG_DELAY1_VALID_SHIFT | - PMIC_ESM_CFG_DELAY2_VALID_SHIFT | - PMIC_ESM_CFG_HMAX_VALID_SHIFT | - PMIC_ESM_CFG_HMIN_VALID_SHIFT | - PMIC_ESM_CFG_LMAX_VALID_SHIFT | - PMIC_ESM_CFG_LMIN_VALID_SHIFT | - PMIC_ESM_CFG_MODE_VALID_SHIFT | - PMIC_ESM_CFG_EN_DRV_VALID_SHIFT | - PMIC_ESM_CFG_ERR_CNT_THR_VALID_SHIFT,}; - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_DELAY1_VALID_SHIFT | PMIC_ESM_CFG_DELAY2_VALID_SHIFT | PMIC_ESM_CFG_HMAX_VALID_SHIFT | PMIC_ESM_CFG_HMIN_VALID_SHIFT | PMIC_ESM_CFG_LMAX_VALID_SHIFT | PMIC_ESM_CFG_LMIN_VALID_SHIFT | PMIC_ESM_CFG_MODE_VALID_SHIFT | PMIC_ESM_CFG_EN_DRV_VALID_SHIFT | PMIC_ESM_CFG_ERR_CNT_THR_VALID_SHIFT, - 4096U, - 2048U, - 30U, - 30U, - 30U, - 30U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_PWM_MODE - }; - - test_pmic_print_unity_testcase_info(7792, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmGetConfiguration(pPmicCoreHandle, - esmType, - &esmCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(esmCfg.esmDelay1_us, esmCfg_rd.esmDelay1_us); - TEST_ASSERT_EQUAL(esmCfg.esmDelay2_us, esmCfg_rd.esmDelay2_us); - TEST_ASSERT_EQUAL(esmCfg.esmHmax_us, esmCfg_rd.esmHmax_us); - TEST_ASSERT_EQUAL(esmCfg.esmHmin_us, esmCfg_rd.esmHmin_us); - TEST_ASSERT_EQUAL(esmCfg.esmLmax_us, esmCfg_rd.esmLmax_us); - TEST_ASSERT_EQUAL(esmCfg.esmLmin_us, esmCfg_rd.esmLmin_us); - TEST_ASSERT_EQUAL(esmCfg.esmMode, esmCfg_rd.esmMode); - TEST_ASSERT_EQUAL(esmCfg.esmEnDrv, esmCfg_rd.esmEnDrv); - TEST_ASSERT_EQUAL(esmCfg.esmErrCntThr, esmCfg_rd.esmErrCntThr); - - pmic_testResultUpdate_pass(7792, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Test to verify PMIC ESM SOC Get configuration - */ -static void test_pmic_esm_getConfiguration_esmSocPwmMode(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_SOC; - Pmic_EsmCfg_t esmCfg_rd = {PMIC_ESM_CFG_DELAY1_VALID_SHIFT | - PMIC_ESM_CFG_DELAY2_VALID_SHIFT | - PMIC_ESM_CFG_HMAX_VALID_SHIFT | - PMIC_ESM_CFG_HMIN_VALID_SHIFT | - PMIC_ESM_CFG_LMAX_VALID_SHIFT | - PMIC_ESM_CFG_LMIN_VALID_SHIFT | - PMIC_ESM_CFG_MODE_VALID_SHIFT | - PMIC_ESM_CFG_EN_DRV_VALID_SHIFT | - PMIC_ESM_CFG_ERR_CNT_THR_VALID_SHIFT,}; - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_DELAY1_VALID_SHIFT | PMIC_ESM_CFG_DELAY2_VALID_SHIFT | PMIC_ESM_CFG_HMAX_VALID_SHIFT | PMIC_ESM_CFG_HMIN_VALID_SHIFT | PMIC_ESM_CFG_LMAX_VALID_SHIFT | PMIC_ESM_CFG_LMIN_VALID_SHIFT | PMIC_ESM_CFG_MODE_VALID_SHIFT | PMIC_ESM_CFG_EN_DRV_VALID_SHIFT | PMIC_ESM_CFG_ERR_CNT_THR_VALID_SHIFT, - 4096U, - 2048U, - 30U, - 30U, - 30U, - 30U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_PWM_MODE - }; - - test_pmic_print_unity_testcase_info(7793, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(7793, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmGetConfiguration(pPmicCoreHandle, - esmType, - &esmCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(esmCfg.esmDelay1_us, esmCfg_rd.esmDelay1_us); - TEST_ASSERT_EQUAL(esmCfg.esmDelay2_us, esmCfg_rd.esmDelay2_us); - TEST_ASSERT_EQUAL(esmCfg.esmHmax_us, esmCfg_rd.esmHmax_us); - TEST_ASSERT_EQUAL(esmCfg.esmHmin_us, esmCfg_rd.esmHmin_us); - TEST_ASSERT_EQUAL(esmCfg.esmLmax_us, esmCfg_rd.esmLmax_us); - TEST_ASSERT_EQUAL(esmCfg.esmLmin_us, esmCfg_rd.esmLmin_us); - TEST_ASSERT_EQUAL(esmCfg.esmMode, esmCfg_rd.esmMode); - TEST_ASSERT_EQUAL(esmCfg.esmEnDrv, esmCfg_rd.esmEnDrv); - TEST_ASSERT_EQUAL(esmCfg.esmErrCntThr, esmCfg_rd.esmErrCntThr); - - pmic_testResultUpdate_pass(7793, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for handle - */ -static void test_esm_getConfigurationPrmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_MCU; - Pmic_EsmCfg_t esmCfg_rd = {PMIC_ESM_CFG_DELAY1_VALID_SHIFT | - PMIC_ESM_CFG_DELAY2_VALID_SHIFT | - PMIC_ESM_CFG_HMAX_VALID_SHIFT | - PMIC_ESM_CFG_HMIN_VALID_SHIFT | - PMIC_ESM_CFG_LMAX_VALID_SHIFT | - PMIC_ESM_CFG_LMIN_VALID_SHIFT | - PMIC_ESM_CFG_MODE_VALID_SHIFT | - PMIC_ESM_CFG_EN_DRV_VALID_SHIFT | - PMIC_ESM_CFG_ERR_CNT_THR_VALID_SHIFT,}; - - test_pmic_print_unity_testcase_info(7794, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - pmicStatus = Pmic_esmGetConfiguration(NULL, esmType, &esmCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(7794, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for pEsmCfg - */ -static void test_esm_getConfigurationPrmValTest_pEsmCfg(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_MCU; - - test_pmic_print_unity_testcase_info(7795, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - pmicStatus = Pmic_esmGetConfiguration(pPmicCoreHandle, esmType, NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(7795, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Test to read to current ESM MCU Error Count value - */ -static void test_esm_getErrCnt_esmMcu(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t esmErrCnt = 0U; - bool esmType = PMIC_ESM_MODE_MCU; - - test_pmic_print_unity_testcase_info(7796, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - pmicStatus = Pmic_esmGetErrCnt(pPmicCoreHandle, esmType, &esmErrCnt); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(7796, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Test to read to current ESM SOC Error Count value - */ -static void test_esm_getErrCnt_esmSoc(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t esmErrCnt = 0U; - bool esmType = PMIC_ESM_MODE_SOC; - - test_pmic_print_unity_testcase_info(7797, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(7797, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - } - pmicStatus = Pmic_esmGetErrCnt(pPmicCoreHandle, esmType, &esmErrCnt); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(7797, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for handle - */ -static void test_esm_getErrCntPrmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t esmErrCnt = 0U; - bool esmType = PMIC_ESM_MODE_SOC; - - test_pmic_print_unity_testcase_info(7798, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - pmicStatus = Pmic_esmGetErrCnt(NULL, esmType, &esmErrCnt); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(7798, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for pEsmErrCnt - */ -static void test_esm_getErrCntPrmValTest_pEsmErrCnt(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_SOC; - - test_pmic_print_unity_testcase_info(7799, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(7799, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_esmGetErrCnt(pPmicCoreHandle, esmType, NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(7799, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Test to verify PMIC ESM MCU Level Mode RST Interrupt - */ -static void test_esm_setInterrupt_esmMcuRstIntr_levelMode(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_MCU; - bool esmToggle = PMIC_ESM_ENABLE; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - uint8_t pin = 7U; - int8_t timeout = 10U; - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_DELAY1_VALID_SHIFT | PMIC_ESM_CFG_DELAY2_VALID_SHIFT | PMIC_ESM_CFG_MODE_VALID_SHIFT, - 4096U, - 2048U, - 30U, - 30U, - 30U, - 30U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_LEVEL_MODE - }; - - Pmic_EsmIntrCfg_t esmIntrCfg = - { - false, - false, - true - }; - - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO7_NERR_MCU, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(7836, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - TEST_IGNORE(); - } - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - TEST_IGNORE(); - } - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetInterrupt(pPmicCoreHandle, esmType, esmIntrCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmEnable(pPmicCoreHandle, esmType, esmToggle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_START); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_ESM_MCU_RST_INT/32U] & - (1U << (PMIC_TPS6594X_ESM_MCU_RST_INT % 32U))) != 0U)) - { - while(PMIC_TPS6594X_ESM_MCU_RST_INT != irqNum) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - PMIC_TPS6594X_ESM_MCU_RST_INT); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); -} - -/*! - * \brief Test to verify PMIC ESM MCU PWM Mode RST Interrupt - */ -static void test_esm_setInterrupt_esmMcuRstIntr_pwmMode(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_MCU; - bool esmToggle = PMIC_ESM_ENABLE; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - uint8_t pin = 7U; - uint8_t esmErrCnt = 0U; - int8_t timeout = 10U; - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_DELAY1_VALID_SHIFT | PMIC_ESM_CFG_DELAY2_VALID_SHIFT | PMIC_ESM_CFG_HMAX_VALID_SHIFT | PMIC_ESM_CFG_HMIN_VALID_SHIFT | PMIC_ESM_CFG_LMAX_VALID_SHIFT | PMIC_ESM_CFG_LMIN_VALID_SHIFT | PMIC_ESM_CFG_MODE_VALID_SHIFT , - 4096U, - 0U, - 30U, - 30U, - 30U, - 30U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_PWM_MODE - }; - - Pmic_EsmIntrCfg_t esmIntrCfg = - { - false, - false, - true - }; - - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO7_NERR_MCU, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(7837, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - TEST_IGNORE(); - } - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - TEST_IGNORE(); - } - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetInterrupt(pPmicCoreHandle, esmType, esmIntrCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmEnable(pPmicCoreHandle, esmType, esmToggle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_START); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_esmGetErrCnt(pPmicCoreHandle, esmType, &esmErrCnt); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_ESM_MCU_RST_INT/32U] & - (1U << (PMIC_TPS6594X_ESM_MCU_RST_INT % 32U))) != 0U)) - { - while(PMIC_TPS6594X_ESM_MCU_RST_INT != irqNum) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - PMIC_TPS6594X_ESM_MCU_RST_INT); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); -} - -/*! - * \brief Test to verify PMIC ESM MCU Level Mode FAIL Interrupt - */ -static void test_esm_setInterrupt_esmMcuFailIntr_levelMode(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_MCU; - bool esmToggle = PMIC_ESM_ENABLE; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - uint8_t pin = 7U; - int8_t timeout = 10U; - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_DELAY1_VALID_SHIFT | PMIC_ESM_CFG_DELAY2_VALID_SHIFT | PMIC_ESM_CFG_MODE_VALID_SHIFT, - 4096U, - 2048U, - 30U, - 30U, - 30U, - 30U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_LEVEL_MODE - }; - - Pmic_EsmIntrCfg_t esmIntrCfg = - { - false, - true, - false - }; - - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO7_NERR_MCU, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(7838, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetInterrupt(pPmicCoreHandle, esmType, esmIntrCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmEnable(pPmicCoreHandle, esmType, esmToggle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_START); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_ESM_MCU_FAIL_INT/32U] & - (1U << (PMIC_TPS6594X_ESM_MCU_FAIL_INT % 32U))) != 0U)) - { - while(PMIC_TPS6594X_ESM_MCU_FAIL_INT != irqNum) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - PMIC_TPS6594X_ESM_MCU_FAIL_INT); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); -} - -/*! - * \brief Test to verify PMIC ESM MCU PWM Mode FAIL Interrupt - */ -static void test_esm_setInterrupt_esmMcuFailIntr_pwmMode(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_MCU; - bool esmToggle = PMIC_ESM_ENABLE; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - uint8_t pin = 7U; - uint8_t esmErrCnt = 0U; - int8_t timeout = 10U; - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_DELAY1_VALID_SHIFT | PMIC_ESM_CFG_DELAY2_VALID_SHIFT | PMIC_ESM_CFG_HMAX_VALID_SHIFT | PMIC_ESM_CFG_HMIN_VALID_SHIFT | PMIC_ESM_CFG_LMAX_VALID_SHIFT | PMIC_ESM_CFG_LMIN_VALID_SHIFT | PMIC_ESM_CFG_MODE_VALID_SHIFT , - 4096U, - 2048U, - 30U, - 30U, - 30U, - 30U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_PWM_MODE - }; - - Pmic_EsmIntrCfg_t esmIntrCfg = - { - false, - true, - false - }; - - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO7_NERR_MCU, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(7839, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - TEST_IGNORE(); - } - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - TEST_IGNORE(); - } - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetInterrupt(pPmicCoreHandle, esmType, esmIntrCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmEnable(pPmicCoreHandle, esmType, esmToggle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_START); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_esmGetErrCnt(pPmicCoreHandle, esmType, &esmErrCnt); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_ESM_MCU_FAIL_INT/32U] & - (1U << (PMIC_TPS6594X_ESM_MCU_FAIL_INT % 32U))) != 0U)) - { - while(PMIC_TPS6594X_ESM_MCU_FAIL_INT != irqNum) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - PMIC_TPS6594X_ESM_MCU_FAIL_INT); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); -} - -/*! - * \brief Test to verify PMIC ESM MCU Level Mode PIN Interrupt - */ -static void test_esm_setInterrupt_esmMcuPinIntr_levelMode(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_MCU; - bool esmToggle = PMIC_ESM_ENABLE; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - uint8_t pin = 7U; - int8_t timeout = 10U; - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_DELAY1_VALID_SHIFT | PMIC_ESM_CFG_DELAY2_VALID_SHIFT | PMIC_ESM_CFG_MODE_VALID_SHIFT, - 4096U, - 2048U, - 30U, - 30U, - 30U, - 30U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_LEVEL_MODE - }; - - Pmic_EsmIntrCfg_t esmIntrCfg = - { - true, - false, - false - }; - - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO7_NERR_MCU, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(7840, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - TEST_IGNORE(); - } - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - TEST_IGNORE(); - } - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetInterrupt(pPmicCoreHandle, esmType, esmIntrCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmEnable(pPmicCoreHandle, esmType, esmToggle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_START); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_ESM_MCU_PIN_INT/32U] & - (1U << (PMIC_TPS6594X_ESM_MCU_PIN_INT % 32U))) != 0U)) - { - while(PMIC_TPS6594X_ESM_MCU_PIN_INT != irqNum) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - PMIC_TPS6594X_ESM_MCU_PIN_INT); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); -} - -/*! - * \brief Test to verify PMIC ESM MCU PWM Mode PIN Interrupt - */ -static void test_esm_setInterrupt_esmMcuPinIntr_pwmMode(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_MCU; - bool esmToggle = PMIC_ESM_ENABLE; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - uint8_t pin = 7U; - uint8_t esmErrCnt = 0U; - int8_t timeout = 10U; - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_DELAY1_VALID_SHIFT | PMIC_ESM_CFG_DELAY2_VALID_SHIFT | PMIC_ESM_CFG_HMAX_VALID_SHIFT | PMIC_ESM_CFG_HMIN_VALID_SHIFT | PMIC_ESM_CFG_LMAX_VALID_SHIFT | PMIC_ESM_CFG_LMIN_VALID_SHIFT | PMIC_ESM_CFG_MODE_VALID_SHIFT , - 4096U, - 0U, - 30U, - 30U, - 30U, - 30U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_PWM_MODE - }; - - Pmic_EsmIntrCfg_t esmIntrCfg = - { - true, - false, - false - }; - - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO7_NERR_MCU, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(7841, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - TEST_IGNORE(); - } - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - TEST_IGNORE(); - } - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetInterrupt(pPmicCoreHandle, esmType, esmIntrCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmEnable(pPmicCoreHandle, esmType, esmToggle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_START); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_esmGetErrCnt(pPmicCoreHandle, esmType, &esmErrCnt); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_ESM_MCU_PIN_INT/32U] & - (1U << (PMIC_TPS6594X_ESM_MCU_PIN_INT % 32U))) != 0U)) - { - while(PMIC_TPS6594X_ESM_MCU_PIN_INT != irqNum) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - PMIC_TPS6594X_ESM_MCU_PIN_INT); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); -} - -/*! - * \brief Test to verify PMIC ESM MCU Level Mode PIN, FAIL and RST Interrupts - */ -static void test_esm_setInterrupt_esmMcuAllIntr_levelMode(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_MCU; - bool esmToggle = PMIC_ESM_ENABLE; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - uint8_t pin = 7U; - int8_t timeout = 10U; - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_DELAY1_VALID_SHIFT | PMIC_ESM_CFG_DELAY2_VALID_SHIFT | PMIC_ESM_CFG_MODE_VALID_SHIFT, - 4096U, - 2048U, - 30U, - 30U, - 30U, - 30U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_LEVEL_MODE - }; - - Pmic_EsmIntrCfg_t esmIntrCfg = - { - true, - true, - true - }; - - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO7_NERR_MCU, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(7849, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - TEST_IGNORE(); - } - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - TEST_IGNORE(); - } - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetInterrupt(pPmicCoreHandle, esmType, esmIntrCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmEnable(pPmicCoreHandle, esmType, esmToggle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_START); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_ESM_MCU_PIN_INT/32U] & - (1U << (PMIC_TPS6594X_ESM_MCU_PIN_INT % 32U))) != 0U)) - { - while(PMIC_TPS6594X_ESM_MCU_PIN_INT != irqNum) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - PMIC_TPS6594X_ESM_MCU_PIN_INT); - break; - } - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_ESM_MCU_FAIL_INT/32U] & - (1U << (PMIC_TPS6594X_ESM_MCU_FAIL_INT % 32U))) != 0U)) - { - while(PMIC_TPS6594X_ESM_MCU_FAIL_INT != irqNum) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - PMIC_TPS6594X_ESM_MCU_FAIL_INT); - break; - } - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_ESM_MCU_RST_INT/32U] & - (1U << (PMIC_TPS6594X_ESM_MCU_RST_INT % 32U))) != 0U)) - { - while(PMIC_TPS6594X_ESM_MCU_RST_INT != irqNum) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - PMIC_TPS6594X_ESM_MCU_RST_INT); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); -} - -/*! - * \brief Test to verify PMIC ESM MCU Level Mode PIN, FAIL and RST Interrupts - * disabled - */ -static void test_esm_setInterrupt_esmMcuAllIntrDisabled_levelMode(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_MCU; - bool esmToggle = PMIC_ESM_ENABLE; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t pin = 7U; - int8_t timeout = 10U; - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_DELAY1_VALID_SHIFT | PMIC_ESM_CFG_DELAY2_VALID_SHIFT | PMIC_ESM_CFG_MODE_VALID_SHIFT, - 4096U, - 2048U, - 30U, - 30U, - 30U, - 30U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_LEVEL_MODE - }; - - Pmic_EsmIntrCfg_t esmIntrCfg = - { - false, - false, - false - }; - - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO7_NERR_MCU, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(7850, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetInterrupt(pPmicCoreHandle, esmType, esmIntrCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmEnable(pPmicCoreHandle, esmType, esmToggle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_START); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_ESM_MCU_PIN_INT/32U] & - (1U << (PMIC_TPS6594X_ESM_MCU_PIN_INT % 32U))) == 0U)) - { - pmicStatus = PMIC_ST_SUCCESS; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_ESM_MCU_FAIL_INT/32U] & - (1U << (PMIC_TPS6594X_ESM_MCU_FAIL_INT % 32U))) == 0U)) - { - pmicStatus = PMIC_ST_SUCCESS; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_ESM_MCU_RST_INT/32U] & - (1U << (PMIC_TPS6594X_ESM_MCU_RST_INT % 32U))) == 0U)) - { - pmicStatus = PMIC_ST_SUCCESS; - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_SUCCESS; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); -} - -/*! - * \brief Test to verify PMIC ESM MCU PWM Mode PIN, FAIL, RST Interrupt - */ -static void test_esm_setInterrupt_esmMcuAllIntr_pwmMode(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_MCU; - bool esmToggle = PMIC_ESM_ENABLE; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - uint8_t pin = 7U; - uint8_t esmErrCnt = 0U; - int8_t timeout = 10U; - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_DELAY1_VALID_SHIFT | PMIC_ESM_CFG_DELAY2_VALID_SHIFT | PMIC_ESM_CFG_HMAX_VALID_SHIFT | PMIC_ESM_CFG_HMIN_VALID_SHIFT | PMIC_ESM_CFG_LMAX_VALID_SHIFT | PMIC_ESM_CFG_LMIN_VALID_SHIFT | PMIC_ESM_CFG_MODE_VALID_SHIFT , - 4096U, - 0U, - 30U, - 30U, - 30U, - 30U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_PWM_MODE - }; - - Pmic_EsmIntrCfg_t esmIntrCfg = - { - true, - true, - true - }; - - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO7_NERR_MCU, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(8009, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetInterrupt(pPmicCoreHandle, esmType, esmIntrCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmEnable(pPmicCoreHandle, esmType, esmToggle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_START); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_esmGetErrCnt(pPmicCoreHandle, esmType, &esmErrCnt); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_ESM_MCU_PIN_INT/32U] & - (1U << (PMIC_TPS6594X_ESM_MCU_PIN_INT % 32U))) != 0U)) - { - while(PMIC_TPS6594X_ESM_MCU_PIN_INT != irqNum) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - PMIC_TPS6594X_ESM_MCU_PIN_INT); - break; - } - } - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_ESM_MCU_FAIL_INT/32U] & - (1U << (PMIC_TPS6594X_ESM_MCU_FAIL_INT % 32U))) != 0U)) - { - while(PMIC_TPS6594X_ESM_MCU_FAIL_INT != irqNum) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - PMIC_TPS6594X_ESM_MCU_FAIL_INT); - break; - } - } - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_ESM_MCU_RST_INT/32U] & - (1U << (PMIC_TPS6594X_ESM_MCU_RST_INT % 32U))) != 0U)) - { - while(PMIC_TPS6594X_ESM_MCU_RST_INT != irqNum) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - PMIC_TPS6594X_ESM_MCU_RST_INT); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); -} - -/*! - * \brief Test to verify PMIC ESM MCU PWM Mode PIN, FAIL, RST Interrupts - * disabled - */ -static void test_esm_setInterrupt_esmMcuAllIntrDisabled_pwmMode(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_MCU; - bool esmToggle = PMIC_ESM_ENABLE; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t pin = 7U; - int8_t timeout = 10U; - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_DELAY1_VALID_SHIFT | PMIC_ESM_CFG_DELAY2_VALID_SHIFT | PMIC_ESM_CFG_HMAX_VALID_SHIFT | PMIC_ESM_CFG_HMIN_VALID_SHIFT | PMIC_ESM_CFG_LMAX_VALID_SHIFT | PMIC_ESM_CFG_LMIN_VALID_SHIFT | PMIC_ESM_CFG_MODE_VALID_SHIFT , - 4096U, - 0U, - 30U, - 30U, - 30U, - 30U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_PWM_MODE - }; - - Pmic_EsmIntrCfg_t esmIntrCfg = - { - false, - false, - false - }; - - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO7_NERR_MCU, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(8011, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetInterrupt(pPmicCoreHandle, esmType, esmIntrCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmEnable(pPmicCoreHandle, esmType, esmToggle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_START); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_ESM_MCU_PIN_INT/32U] & - (1U << (PMIC_TPS6594X_ESM_MCU_PIN_INT % 32U))) == 0U)) - { - pmicStatus = PMIC_ST_SUCCESS; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_ESM_MCU_FAIL_INT/32U] & - (1U << (PMIC_TPS6594X_ESM_MCU_FAIL_INT % 32U))) == 0U)) - { - pmicStatus = PMIC_ST_SUCCESS; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_ESM_MCU_RST_INT/32U] & - (1U << (PMIC_TPS6594X_ESM_MCU_RST_INT % 32U))) == 0U)) - { - pmicStatus = PMIC_ST_SUCCESS; - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_SUCCESS; - } - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); -} - -/*! - * \brief Parameter validation for handle - */ -static void test_esm_setInterruptPrmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_SOC; - - Pmic_EsmIntrCfg_t esmIntrCfg = - { - true, - false, - false - }; - - test_pmic_print_unity_testcase_info(7852, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - pmicStatus = Pmic_esmSetInterrupt(NULL, esmType, esmIntrCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(7852, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - - -/*! - * \brief Pmic_esmStart : Negative test to verify ESM SOC Start for HERA - */ -static void test_pmic_esm_startEsm_esmSocStart_hera(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_SOC; - bool esmState = PMIC_ESM_STOP; - - test_pmic_print_unity_testcase_info(7853, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(7853, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, esmState); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, pmicStatus); - - pmic_testResultUpdate_pass(7853, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_esmEnable : Negative test to verify ESM SOC Enable for HERA - */ -static void test_pmic_esm_startEsm_esmSocEnable_hera(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_SOC; - - test_pmic_print_unity_testcase_info(7854, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(7854, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_esmEnable(pPmicCoreHandle, esmType, PMIC_ESM_ENABLE); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, pmicStatus); - - pmic_testResultUpdate_pass(7854, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_esmSetConfiguration : Negative test to verify PMIC ESM SOC Set configuration for ESM SOC - * Level Mode for HERA - */ -static void test_pmic_esm_setConfiguration_esmSocLevelMode_hera(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_SOC; - - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_DELAY1_VALID_SHIFT | PMIC_ESM_CFG_DELAY2_VALID_SHIFT | PMIC_ESM_CFG_MODE_VALID_SHIFT, - 4096U, - 2048U, - 30U, - 30U, - 30U, - 30U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_LEVEL_MODE - }; - - test_pmic_print_unity_testcase_info(7855, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(7855, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, pmicStatus); - - pmic_testResultUpdate_pass(7855, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_esmGetConfiguration : Negative test to verify PMIC ESM SOC Get configuration for ESM SOC - * Level Mode for HERA - */ -static void test_pmic_esm_getConfiguration_esmSocLevelMode_hera(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_SOC; - Pmic_EsmCfg_t esmCfg_rd = {PMIC_ESM_CFG_DELAY1_VALID_SHIFT | - PMIC_ESM_CFG_DELAY2_VALID_SHIFT | - PMIC_ESM_CFG_MODE_VALID_SHIFT,}; - - - test_pmic_print_unity_testcase_info(7856, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(7856, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_esmGetConfiguration(pPmicCoreHandle, - esmType, - &esmCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, pmicStatus); - - pmic_testResultUpdate_pass(7856, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - - -/*! - * \brief Pmic_esmGetErrCnt : Negative test to verify Error count value for HERA - */ -static void test_Pmic_esmGetErrCnt_hera(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS;; - uint8_t esmErrCnt = 0U; - bool esmType = PMIC_ESM_MODE_SOC; - - test_pmic_print_unity_testcase_info(7857, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(7857, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_esmGetErrCnt(pPmicCoreHandle, esmType, &esmErrCnt); - - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, pmicStatus); - - pmic_testResultUpdate_pass(7857, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - - -/*! - * \brief Pmic_esmSetInterrupt : Negative test to verify ESM interrupt enable for HERA - */ -static void test_Pmic_esmSetInterrupt_hera(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_SOC; - Pmic_EsmIntrCfg_t esmIntrCfg = - { - false, - true, - false - }; - - test_pmic_print_unity_testcase_info(7858, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(7858, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_esmSetInterrupt(pPmicCoreHandle, esmType, esmIntrCfg); - - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, pmicStatus); - - pmic_testResultUpdate_pass(7858, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_esmGetEnableState : Negative test to verify ESM get state for HERA - */ -static void test_Pmic_esmGetEnableState_hera(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_SOC; - bool esmState = PMIC_ESM_STOP; - - test_pmic_print_unity_testcase_info(7859, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(7859, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_esmGetEnableState(pPmicCoreHandle, esmType, &esmState); - - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, pmicStatus); - - pmic_testResultUpdate_pass(7859, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Test to verify PMIC ESM MCU Get Status for Start and Stop - * functionality - */ -static void test_pmic_esm_getStatusEsmMcu(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_MCU; - bool esmState = PMIC_ESM_START; - bool esmState_rd; - - test_pmic_print_unity_testcase_info(9876, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, esmState); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmEnable(pPmicCoreHandle, esmType, PMIC_ESM_ENABLE); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_ESM_STARTED, pmicStatus); - - pmicStatus = Pmic_esmGetStatus(pPmicCoreHandle, esmType, &esmState_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(PMIC_ESM_START, esmState_rd); - - esmState = PMIC_ESM_STOP; - pmicStatus = Pmic_esmStart(pPmicCoreHandle,esmType, esmState); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmEnable(pPmicCoreHandle, esmType, PMIC_ESM_ENABLE); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmGetStatus(pPmicCoreHandle, esmType, &esmState_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(PMIC_ESM_STOP, esmState_rd); - - pmic_testResultUpdate_pass(9876, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Test to verify ESM SOC Get Status for Start and Stop - * functionality - */ -static void test_pmic_esm_getStatusEsmSoc(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_SOC; - bool esmState = PMIC_ESM_START; - bool esmState_rd; - - test_pmic_print_unity_testcase_info(9877, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(9877, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, esmState); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmEnable(pPmicCoreHandle, esmType, PMIC_ESM_ENABLE); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_ESM_STARTED, pmicStatus); - - pmicStatus = Pmic_esmGetStatus(pPmicCoreHandle, esmType, &esmState_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(PMIC_ESM_START, esmState_rd); - - esmState = PMIC_ESM_STOP; - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, esmState); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmEnable(pPmicCoreHandle, esmType, PMIC_ESM_ENABLE); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmGetStatus(pPmicCoreHandle, esmType, &esmState_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(PMIC_ESM_STOP, esmState_rd); - - pmic_testResultUpdate_pass(9877, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for handle - */ -static void test_pmic_esm_getStatusPrmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_SOC; - bool esmState; - - test_pmic_print_unity_testcase_info(9878, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - pmicStatus = Pmic_esmGetStatus(NULL, esmType, &esmState); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(9878, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for pEsmState - */ -static void test_pmic_esm_getStatusPrmValTest_pEsmState(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType; - - test_pmic_print_unity_testcase_info(9879, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - esmType = PMIC_ESM_MODE_SOC; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - esmType = PMIC_ESM_MODE_MCU; - } - - pmicStatus = Pmic_esmGetStatus(pPmicCoreHandle, esmType, NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(9879, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Negative Test to verify ESM SOC Get Status for HERA - */ -static void test_pmic_esm_getStatusEsmSoc_hera(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_SOC; - bool esmState; - - test_pmic_print_unity_testcase_info(9880, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(9880, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_esmGetStatus(pPmicCoreHandle, esmType, &esmState); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, pmicStatus); - - pmic_testResultUpdate_pass(9880, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_esmSetInterrupt : Test to disable PMIC ESM SOC Mode PIN, FAIL - * RST Interrupts - * Functionality is not tested due to Known issue - PDK-8333 - */ -static void test_pmic_esm_setInterrupt_esmSocAllIntrDisabled(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_SOC; - Pmic_EsmIntrCfg_t esmIntrCfg = - { - false, - false, - false - }; - bool maskStatus; - - test_pmic_print_unity_testcase_info(10550, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmicStatus = Pmic_esmSetInterrupt(pPmicCoreHandle, esmType, esmIntrCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus =Pmic_irqGetMaskIntrStatus(pPmicCoreHandle, - PMIC_TPS6594X_ESM_SOC_RST_INT, - &maskStatus); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(maskStatus, PMIC_IRQ_MASK); - - pmicStatus =Pmic_irqGetMaskIntrStatus(pPmicCoreHandle, - PMIC_TPS6594X_ESM_SOC_FAIL_INT, - &maskStatus); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(maskStatus, PMIC_IRQ_MASK); - - pmicStatus =Pmic_irqGetMaskIntrStatus(pPmicCoreHandle, - PMIC_TPS6594X_ESM_SOC_PIN_INT, - &maskStatus); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(maskStatus, PMIC_IRQ_MASK); - - } - - pmic_testResultUpdate_pass(10550, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for ESM HMAX Value - */ -static void test_pmic_esm_setConfigurationPrmValTest_hmaxValue(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_MCU; - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_DELAY1_VALID_SHIFT, - 4096U, - 2048U, - 30U, - 30U, - 30U, - 30U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_LEVEL_MODE - }; - - test_pmic_print_unity_testcase_info(10551, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - esmCfg.validParams = PMIC_ESM_CFG_HMAX_VALID_SHIFT; - esmCfg.esmHmax_us = 3850U; - pmicStatus = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_ESM_VAL, pmicStatus); - - pmic_testResultUpdate_pass(10551, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for ESM HMIN Value - */ -static void test_pmic_esm_setConfigurationPrmValTest_hminValue(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_MCU; - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_DELAY1_VALID_SHIFT, - 4096U, - 2048U, - 30U, - 30U, - 30U, - 30U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_LEVEL_MODE - }; - - test_pmic_print_unity_testcase_info(10552, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - esmCfg.validParams = PMIC_ESM_CFG_HMIN_VALID_SHIFT; - esmCfg.esmHmin_us = 3850U; - pmicStatus = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_ESM_VAL, pmicStatus); - - pmic_testResultUpdate_pass(10552, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for ESM LMAX Value - */ -static void test_pmic_esm_setConfigurationPrmValTest_lmaxValue(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_MCU; - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_DELAY1_VALID_SHIFT, - 4096U, - 2048U, - 30U, - 30U, - 30U, - 30U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_LEVEL_MODE - }; - - test_pmic_print_unity_testcase_info(10553, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - esmCfg.validParams = PMIC_ESM_CFG_LMAX_VALID_SHIFT; - esmCfg.esmLmax_us = 3850U; - pmicStatus = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_ESM_VAL, pmicStatus); - - pmic_testResultUpdate_pass(10553, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for ESM LMIN Value - */ -static void test_pmic_esm_setConfigurationPrmValTest_lminValue(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_MCU; - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_DELAY1_VALID_SHIFT, - 4096U, - 2048U, - 30U, - 30U, - 30U, - 30U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_LEVEL_MODE - }; - - test_pmic_print_unity_testcase_info(10554, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - esmCfg.validParams = PMIC_ESM_CFG_LMIN_VALID_SHIFT; - esmCfg.esmLmin_us = 3850U; - pmicStatus = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_ESM_VAL, pmicStatus); - - pmic_testResultUpdate_pass(10554, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_esmSetConfiguration : Test to Disable DRV clear configuration - */ -static void test_pmic_esm_setConfiguration_disableDrvClear(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_MCU; - Pmic_EsmCfg_t esmCfg_rd = {PMIC_ESM_CFG_EN_DRV_VALID_SHIFT}; - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_EN_DRV_VALID_SHIFT, - 4096U, - 2048U, - 30U, - 30U, - 30U, - 30U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_DISABLE, - PMIC_ESM_LEVEL_MODE - }; - - test_pmic_print_unity_testcase_info(10555, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - pmicStatus = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmGetConfiguration(pPmicCoreHandle, esmType, &esmCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(esmCfg.esmEnDrv, esmCfg_rd.esmEnDrv); - - pmic_testResultUpdate_pass(10555, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_esmSetConfiguration : Parameter validation for ValidParams - */ -static void test_pmic_esm_setconfiguration_PrmValTest_validParams(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_MCU; - Pmic_EsmCfg_t esmCfg = - { - 0U, - 4096U, - 2048U, - 30U, - 30U, - 30U, - 30U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_LEVEL_MODE - }; - - test_pmic_print_unity_testcase_info(10556, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - pmicStatus = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INSUFFICIENT_CFG, pmicStatus); - - pmic_testResultUpdate_pass(10556, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_esmGetConfiguration : Parameter validation for ValidParams - */ -static void test_pmic_esm_getconfiguration_PrmValTest_validParams(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_MCU; - Pmic_EsmCfg_t esmCfg_rd = {0U}; - - test_pmic_print_unity_testcase_info(10557, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - pmicStatus = Pmic_esmGetConfiguration(pPmicCoreHandle, esmType, &esmCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INSUFFICIENT_CFG, pmicStatus); - - pmic_testResultUpdate_pass(10557, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -#if defined(ENABLE_SAMPLE_TESTCASES) -/*! - * Below test cases are not tested because of HW limitation. - * Added below test cases as sample for reference. - */ - -/*! - * \brief Test to verify PMIC ESM SOC Level Mode RST Interrupt - */ -static void test_esm_setInterrupt_esmSocRstIntr_levelMode(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_SOC; - bool esmToggle = PMIC_ESM_ENABLE; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - uint8_t pin = 3U; - int8_t timeout = 10U; - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_DELAY1_VALID_SHIFT | PMIC_ESM_CFG_DELAY2_VALID_SHIFT | PMIC_ESM_CFG_MODE_VALID_SHIFT, - 4096U, - 2048U, - 30U, - 30U, - 30U, - 30U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_LEVEL_MODE - }; - - Pmic_EsmIntrCfg_t esmIntrCfg = - { - false, - false, - true - }; - - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO3_NERR_SOC, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(0xAB22, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - TEST_IGNORE(); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetInterrupt(pPmicCoreHandle, esmType, esmIntrCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmEnable(pPmicCoreHandle, esmType, esmToggle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_START); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_ESM_SOC_RST_INT/32U] & - (1U << (PMIC_TPS6594X_ESM_SOC_RST_INT % 32U))) != 0U)) - { - while(PMIC_TPS6594X_ESM_SOC_RST_INT != irqNum) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - PMIC_TPS6594X_ESM_SOC_RST_INT); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); -} - -/*! - * Below test cases are not tested because of HW limitation. - * Added below test cases as sample for reference. - */ - -/*! - * \brief Test to verify PMIC ESM SOC PWM Mode RST Interrupt - */ -static void test_esm_setInterrupt_esmSocRstIntr_pwmMode(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_SOC; - bool esmToggle = PMIC_ESM_ENABLE; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - uint8_t pin = 3U; - uint8_t esmErrCnt = 0U; - int8_t timeout = 10U; - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_DELAY1_VALID_SHIFT | PMIC_ESM_CFG_DELAY2_VALID_SHIFT | PMIC_ESM_CFG_HMAX_VALID_SHIFT | PMIC_ESM_CFG_HMIN_VALID_SHIFT | PMIC_ESM_CFG_LMAX_VALID_SHIFT | PMIC_ESM_CFG_LMIN_VALID_SHIFT | PMIC_ESM_CFG_MODE_VALID_SHIFT , - 4096U, - 0U, - 30U, - 30U, - 30U, - 30U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_PWM_MODE - }; - - Pmic_EsmIntrCfg_t esmIntrCfg = - { - false, - false, - true - }; - - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO3_NERR_SOC, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(0xAB23, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - TEST_IGNORE(); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetInterrupt(pPmicCoreHandle, esmType, esmIntrCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmEnable(pPmicCoreHandle, esmType, esmToggle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_START); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_esmGetErrCnt(pPmicCoreHandle, esmType, &esmErrCnt); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_ESM_SOC_RST_INT/32U] & - (1U << (PMIC_TPS6594X_ESM_SOC_RST_INT % 32U))) != 0U)) - { - while(PMIC_TPS6594X_ESM_SOC_RST_INT != irqNum) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - PMIC_TPS6594X_ESM_SOC_RST_INT); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); -} - -/*! - * Below test cases are not tested because of HW limitation. - * Added below test cases as sample for reference. - */ - -/*! - * \brief Test to verify PMIC ESM SOC Level Mode FAIL Interrupt - */ -static void test_esm_setInterrupt_esmSocFailIntr_levelMode(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_SOC; - bool esmToggle = PMIC_ESM_ENABLE; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - uint8_t pin = 3U; - int8_t timeout = 10U; - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_DELAY1_VALID_SHIFT | PMIC_ESM_CFG_DELAY2_VALID_SHIFT | PMIC_ESM_CFG_MODE_VALID_SHIFT, - 4096U, - 2048U, - 30U, - 30U, - 30U, - 30U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_LEVEL_MODE - }; - - Pmic_EsmIntrCfg_t esmIntrCfg = - { - false, - true, - false - }; - - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO3_NERR_SOC, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(0xAB24, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - TEST_IGNORE(); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetInterrupt(pPmicCoreHandle, esmType, esmIntrCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmEnable(pPmicCoreHandle, esmType, esmToggle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_START); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_ESM_SOC_FAIL_INT/32U] & - (1U << (PMIC_TPS6594X_ESM_SOC_FAIL_INT % 32U))) != 0U)) - { - while(PMIC_TPS6594X_ESM_SOC_FAIL_INT != irqNum) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - PMIC_TPS6594X_ESM_SOC_FAIL_INT); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); -} - -/*! - * Below test cases are not tested because of HW limitation. - * Added below test cases as sample for reference. - */ - -/*! - * \brief Test to verify PMIC ESM SOC PWM Mode FAIL Interrupt - */ -static void test_esm_setInterrupt_esmSocFailIntr_pwmMode(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_SOC; - bool esmToggle = PMIC_ESM_ENABLE; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - uint8_t pin = 3U; - uint8_t esmErrCnt = 0U; - int8_t timeout = 10U; - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_DELAY1_VALID_SHIFT | PMIC_ESM_CFG_DELAY2_VALID_SHIFT | PMIC_ESM_CFG_HMAX_VALID_SHIFT | PMIC_ESM_CFG_HMIN_VALID_SHIFT | PMIC_ESM_CFG_LMAX_VALID_SHIFT | PMIC_ESM_CFG_LMIN_VALID_SHIFT | PMIC_ESM_CFG_MODE_VALID_SHIFT , - 4096U, - 0U, - 30U, - 30U, - 30U, - 30U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_PWM_MODE - }; - - Pmic_EsmIntrCfg_t esmIntrCfg = - { - false, - true, - false - }; - - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO3_NERR_SOC, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(0xAB25, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - TEST_IGNORE(); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetInterrupt(pPmicCoreHandle, esmType, esmIntrCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmEnable(pPmicCoreHandle, esmType, esmToggle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_START); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_esmGetErrCnt(pPmicCoreHandle, esmType, &esmErrCnt); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_ESM_SOC_FAIL_INT/32U] & - (1U << (PMIC_TPS6594X_ESM_SOC_FAIL_INT % 32U))) != 0U)) - { - while(PMIC_TPS6594X_ESM_SOC_FAIL_INT != irqNum) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - PMIC_TPS6594X_ESM_SOC_FAIL_INT); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); -} - -/*! - * Below test cases are not tested because of HW limitation. - * Added below test cases as sample for reference. - */ - -/*! - * \brief Test to verify PMIC ESM SOC Level Mode PIN Interrupt - */ -static void test_esm_setInterrupt_esmSocPinIntr_levelMode(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_SOC; - bool esmToggle = PMIC_ESM_ENABLE; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - uint8_t pin = 3U; - int8_t timeout = 10U; - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_DELAY1_VALID_SHIFT | PMIC_ESM_CFG_DELAY2_VALID_SHIFT | PMIC_ESM_CFG_MODE_VALID_SHIFT, - 4096U, - 2048U, - 30U, - 30U, - 30U, - 30U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_LEVEL_MODE - }; - - Pmic_EsmIntrCfg_t esmIntrCfg = - { - true, - false, - false - }; - - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO3_NERR_SOC, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(0xAB26, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - TEST_IGNORE(); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetInterrupt(pPmicCoreHandle, esmType, esmIntrCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmEnable(pPmicCoreHandle, esmType, esmToggle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_START); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_ESM_SOC_PIN_INT/32U] & - (1U << (PMIC_TPS6594X_ESM_SOC_PIN_INT % 32U))) != 0U)) - { - while(PMIC_TPS6594X_ESM_SOC_PIN_INT != irqNum) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - PMIC_TPS6594X_ESM_SOC_PIN_INT); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); -} - -/*! - * Below test cases are not tested because of HW limitation. - * Added below test cases as sample for reference. - */ - -/*! - * \brief Test to verify PMIC ESM SOC PWM Mode PIN Interrupt - */ -static void test_esm_setInterrupt_esmSocPinIntr_pwmMode(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_SOC; - bool esmToggle = PMIC_ESM_ENABLE; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - uint8_t pin = 3U; - uint8_t esmErrCnt = 0U; - int8_t timeout = 10U; - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_DELAY1_VALID_SHIFT | PMIC_ESM_CFG_DELAY2_VALID_SHIFT | PMIC_ESM_CFG_HMAX_VALID_SHIFT | PMIC_ESM_CFG_HMIN_VALID_SHIFT | PMIC_ESM_CFG_LMAX_VALID_SHIFT | PMIC_ESM_CFG_LMIN_VALID_SHIFT | PMIC_ESM_CFG_MODE_VALID_SHIFT , - 4096U, - 0U, - 30U, - 30U, - 30U, - 30U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_PWM_MODE - }; - - Pmic_EsmIntrCfg_t esmIntrCfg = - { - true, - false, - false - }; - - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO3_NERR_SOC, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(0xAB27, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - TEST_IGNORE(); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetInterrupt(pPmicCoreHandle, esmType, esmIntrCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmEnable(pPmicCoreHandle, esmType, esmToggle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_START); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_esmGetErrCnt(pPmicCoreHandle, esmType, &esmErrCnt); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_ESM_SOC_PIN_INT/32U] & - (1U << (PMIC_TPS6594X_ESM_SOC_PIN_INT % 32U))) != 0U)) - { - while(PMIC_TPS6594X_ESM_SOC_PIN_INT != irqNum) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - PMIC_TPS6594X_ESM_SOC_PIN_INT); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); -} - -/*! - * Below test cases are not tested because of HW limitation. - * Added below test cases as sample for reference. - */ - -/*! - * \brief Test to verify PMIC ESM SOC PWM Mode PIN, FAIL and RST Interrupts - */ -static void test_esm_setInterrupt_esmSocAllIntr_pwmMode(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_SOC; - bool esmToggle = PMIC_ESM_ENABLE; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - uint8_t pin = 3U; - int8_t timeout = 10U; - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_DELAY1_VALID_SHIFT | PMIC_ESM_CFG_DELAY2_VALID_SHIFT | PMIC_ESM_CFG_HMAX_VALID_SHIFT | PMIC_ESM_CFG_HMIN_VALID_SHIFT | PMIC_ESM_CFG_LMAX_VALID_SHIFT | PMIC_ESM_CFG_LMIN_VALID_SHIFT | PMIC_ESM_CFG_MODE_VALID_SHIFT , - 4096U, - 0U, - 30U, - 30U, - 30U, - 30U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_PWM_MODE - }; - - Pmic_EsmIntrCfg_t esmIntrCfg = - { - true, - true, - true - }; - - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO3_NERR_SOC, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(0xAB28, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - TEST_IGNORE(); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetInterrupt(pPmicCoreHandle, esmType, esmIntrCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmEnable(pPmicCoreHandle, esmType, esmToggle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_START); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_ESM_SOC_PIN_INT/32U] & - (1U << (PMIC_TPS6594X_ESM_SOC_PIN_INT % 32U))) != 0U)) - { - while(PMIC_TPS6594X_ESM_SOC_PIN_INT != irqNum) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - PMIC_TPS6594X_ESM_SOC_PIN_INT); - break; - } - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_ESM_SOC_FAIL_INT/32U] & - (1U << (PMIC_TPS6594X_ESM_SOC_FAIL_INT % 32U))) != 0U)) - { - while(PMIC_TPS6594X_ESM_SOC_FAIL_INT != irqNum) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - PMIC_TPS6594X_ESM_SOC_FAIL_INT); - break; - } - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_ESM_SOC_RST_INT/32U] & - (1U << (PMIC_TPS6594X_ESM_SOC_RST_INT % 32U))) != 0U)) - { - while(PMIC_TPS6594X_ESM_SOC_RST_INT != irqNum) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - PMIC_TPS6594X_ESM_SOC_RST_INT); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); -} - -/*! - * Below test cases are not tested because of HW limitation. - * Added below test cases as sample for reference. - */ - -/*! - * \brief Test to verify PMIC ESM SOC PWM Mode PIN, FAIL and RST Interrupts - * disabled - */ -static void test_esm_setInterrupt_esmSocAllIntrDisable_pwmMode(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_SOC; - bool esmToggle = PMIC_ESM_ENABLE; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t pin = 3U; - int8_t timeout = 10U; - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_DELAY1_VALID_SHIFT | PMIC_ESM_CFG_DELAY2_VALID_SHIFT | - PMIC_ESM_CFG_HMAX_VALID_SHIFT | PMIC_ESM_CFG_HMIN_VALID_SHIFT | - PMIC_ESM_CFG_LMAX_VALID_SHIFT | PMIC_ESM_CFG_LMIN_VALID_SHIFT | - PMIC_ESM_CFG_MODE_VALID_SHIFT , - 4096U, - 0U, - 30U, - 30U, - 30U, - 30U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_PWM_MODE - }; - - Pmic_EsmIntrCfg_t esmIntrCfg = - { - false, - false, - false - }; - - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO3_NERR_SOC, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(0xAB29, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - TEST_IGNORE(); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetInterrupt(pPmicCoreHandle, esmType, esmIntrCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmEnable(pPmicCoreHandle, esmType, esmToggle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_START); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_ESM_SOC_PIN_INT/32U] & - (1U << (PMIC_TPS6594X_ESM_SOC_PIN_INT % 32U))) == 0U)) - { - pmicStatus = PMIC_ST_SUCCESS; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_ESM_SOC_FAIL_INT/32U] & - (1U << (PMIC_TPS6594X_ESM_SOC_FAIL_INT % 32U))) == 0U)) - { - pmicStatus = PMIC_ST_SUCCESS; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_ESM_SOC_RST_INT/32U] & - (1U << (PMIC_TPS6594X_ESM_SOC_RST_INT % 32U))) == 0U)) - { - pmicStatus = PMIC_ST_SUCCESS; - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); -} - -/*! - * Below test cases are not tested because of HW limitation. - * Added below test cases as sample for reference. - */ - -/*! - * \brief Test to verify PMIC ESM SOC Level Mode PIN, FAIL and RST Interrupt - */ -static void test_esm_setInterrupt_esmSocAllIntr_levelMode(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_SOC; - bool esmToggle = PMIC_ESM_ENABLE; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - uint8_t pin = 3U; - int8_t timeout = 10U; - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_DELAY1_VALID_SHIFT | PMIC_ESM_CFG_DELAY2_VALID_SHIFT | - PMIC_ESM_CFG_MODE_VALID_SHIFT, - 4096U, - 2048U, - 30U, - 30U, - 30U, - 30U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_LEVEL_MODE - }; - - Pmic_EsmIntrCfg_t esmIntrCfg = - { - true, - true, - true - }; - - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO3_NERR_SOC, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(0xAB2A, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - TEST_IGNORE(); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetInterrupt(pPmicCoreHandle, esmType, esmIntrCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmEnable(pPmicCoreHandle, esmType, esmToggle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_START); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_ESM_SOC_PIN_INT/32U] & - (1U << (PMIC_TPS6594X_ESM_SOC_PIN_INT % 32U))) != 0U)) - { - while(PMIC_TPS6594X_ESM_SOC_PIN_INT != irqNum) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - PMIC_TPS6594X_ESM_SOC_PIN_INT); - break; - } - } - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_ESM_SOC_FAIL_INT/32U] & - (1U << (PMIC_TPS6594X_ESM_SOC_FAIL_INT % 32U))) != 0U)) - { - while(PMIC_TPS6594X_ESM_SOC_FAIL_INT != irqNum) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - PMIC_TPS6594X_ESM_SOC_FAIL_INT); - break; - } - } - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_ESM_SOC_RST_INT/32U] & - (1U << (PMIC_TPS6594X_ESM_SOC_RST_INT % 32U))) != 0U)) - { - while(PMIC_TPS6594X_ESM_SOC_RST_INT != irqNum) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - PMIC_TPS6594X_ESM_SOC_RST_INT); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); -} - -/*! - * Below test cases are not tested because of HW limitation. - * Added below test cases as sample for reference. - */ - -/*! - * \brief Test to verify PMIC ESM SOC Level Mode PIN, FAIL and RST Interrupts - * disabled - */ -static void test_esm_setInterrupt_esmSocAllIntrDisabled_levelMode(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_SOC; - bool esmToggle = PMIC_ESM_ENABLE; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t pin = 3U; - int8_t timeout = 10U; - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_DELAY1_VALID_SHIFT | PMIC_ESM_CFG_DELAY2_VALID_SHIFT | - PMIC_ESM_CFG_MODE_VALID_SHIFT, - 4096U, - 2048U, - 30U, - 30U, - 30U, - 30U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_LEVEL_MODE - }; - - Pmic_EsmIntrCfg_t esmIntrCfg = - { - false, - false, - false - }; - - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO3_NERR_SOC, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(0xAB2B, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - TEST_IGNORE(); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetInterrupt(pPmicCoreHandle, esmType, esmIntrCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmEnable(pPmicCoreHandle, esmType, esmToggle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_START); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_ESM_SOC_PIN_INT/32U] & - (1U << (PMIC_TPS6594X_ESM_SOC_PIN_INT % 32U))) == 0U)) - { - pmicStatus = PMIC_ST_SUCCESS; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_ESM_SOC_FAIL_INT/32U] & - (1U << (PMIC_TPS6594X_ESM_SOC_FAIL_INT % 32U))) == 0U)) - { - pmicStatus = PMIC_ST_SUCCESS; - } - - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_ESM_SOC_RST_INT/32U] & - (1U << (PMIC_TPS6594X_ESM_SOC_RST_INT % 32U))) == 0U)) - { - pmicStatus = PMIC_ST_SUCCESS; - } - } - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); -} -#endif - -/*! - * \brief Added for Coverage - */ -static void test_pmic_esm_coverageGaps(void) -{ - int32_t status = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_MCU; - bool esmState = PMIC_ESM_START; - bool esmSt_rd; - Pmic_EsmIntrCfg_t esmIntrCfg = - { - false, - false, - false - }; - - Pmic_EsmCfg_t esmCfg_rd = {0U}; - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_DELAY1_VALID_SHIFT, - 4096U, - 2048U, - 30U, - 30U, - 30U, - 30U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_LEVEL_MODE - }; - - test_pmic_print_unity_testcase_info(9004, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); - - // Fault Injection Tests - gPmic_faultInjectCfg.enableFaultInjectionRead = 1U; - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - status = Pmic_esmEnable(pPmicCoreHandle, esmType, PMIC_ESM_ENABLE); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - status = Pmic_esmStart(pPmicCoreHandle, esmType, esmState); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 2; - status = Pmic_esmEnable(pPmicCoreHandle, esmType, PMIC_ESM_ENABLE); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - status = Pmic_esmSetInterrupt(pPmicCoreHandle, esmType, esmIntrCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - esmType = PMIC_ESM_MODE_SOC; - status = Pmic_esmSetInterrupt(pPmicCoreHandle, esmType, esmIntrCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - esmType = PMIC_ESM_MODE_MCU; - } - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 2; - esmCfg.validParams = PMIC_ESM_CFG_ERR_CNT_THR_VALID_SHIFT; - status = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 2; - esmCfg.validParams = PMIC_ESM_CFG_EN_DRV_VALID_SHIFT; - status = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 2; - esmCfg.validParams = PMIC_ESM_CFG_MODE_VALID_SHIFT; - status = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - esmCfg_rd.validParams = PMIC_ESM_CFG_DELAY1_VALID_SHIFT; - status = Pmic_esmGetConfiguration(pPmicCoreHandle, esmType, &esmCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - esmCfg_rd.validParams = PMIC_ESM_CFG_DELAY2_VALID_SHIFT; - status = Pmic_esmGetConfiguration(pPmicCoreHandle, esmType, &esmCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - esmCfg_rd.validParams = PMIC_ESM_CFG_ERR_CNT_THR_VALID_SHIFT; - status = Pmic_esmGetConfiguration(pPmicCoreHandle, esmType, &esmCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - esmCfg_rd.validParams = PMIC_ESM_CFG_HMAX_VALID_SHIFT; - status = Pmic_esmGetConfiguration(pPmicCoreHandle, esmType, &esmCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - esmCfg_rd.validParams = PMIC_ESM_CFG_HMIN_VALID_SHIFT; - status = Pmic_esmGetConfiguration(pPmicCoreHandle, esmType, &esmCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - esmCfg_rd.validParams = PMIC_ESM_CFG_LMAX_VALID_SHIFT; - status = Pmic_esmGetConfiguration(pPmicCoreHandle, esmType, &esmCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - esmCfg_rd.validParams = PMIC_ESM_CFG_LMIN_VALID_SHIFT; - status = Pmic_esmGetConfiguration(pPmicCoreHandle, esmType, &esmCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - esmCfg_rd.validParams = PMIC_ESM_CFG_EN_DRV_VALID_SHIFT; - status = Pmic_esmGetConfiguration(pPmicCoreHandle, esmType, &esmCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - esmCfg_rd.validParams = PMIC_ESM_CFG_MODE_VALID_SHIFT; - status = Pmic_esmGetConfiguration(pPmicCoreHandle, esmType, &esmCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - status = Pmic_esmGetEnableState(pPmicCoreHandle, esmType, &esmSt_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.enableFaultInjectionRead = 0U; - - Pmic_DevSubSysInfo_t pmicDevSubSysInfo = - { - .gpioEnable = (bool)true, - .rtcEnable = (bool)true, - .wdgEnable = (bool)true, - .buckEnable = (bool)true, - .ldoEnable = (bool)true, - .esmEnable = (bool)false - }; - - pPmicCoreHandle->pPmic_SubSysInfo = (&pmicDevSubSysInfo); - status = Pmic_esmStart(pPmicCoreHandle, esmType, esmState); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, status); - - pmic_testResultUpdate_pass(9004, - pmic_esm_tests, - PMIC_ESM_NUM_OF_TESTCASES); -} - -#if defined(UNITY_INCLUDE_CONFIG_V2_H) && \ - (defined(SOC_J721E) || defined(SOC_J7200)) - -/*! - * \brief Run esm unity test cases - */ -static void test_pmic_run_testcases(void) -{ - pmic_log("\n\n%s(): %d: Begin Unity Test Cases...\n", __func__, __LINE__); - UNITY_BEGIN(); - - pmic_testResult_init(pmic_esm_tests, PMIC_ESM_NUM_OF_TESTCASES); - - RUN_TEST(test_pmic_esm_startEsm_esmMcuStart); - RUN_TEST(test_pmic_esm_startEsm_esmSocStart); - RUN_TEST(test_pmic_esm_startEsmPrmValTest_handle); - RUN_TEST(test_pmic_esm_enableEsm_esmMcuEnable); - RUN_TEST(test_pmic_esm_enableEsm_esmSocEnable); - RUN_TEST(test_pmic_esm_enableEsmPrmValTest_handle); - RUN_TEST(test_pmic_esm_getEnableState_esmMcu); - RUN_TEST(test_pmic_esm_getEnableState_esmSoc); - RUN_TEST(test_pmic_esm_getEnableStatePrmValTest_handle); - RUN_TEST(test_pmic_esm_getEnableStatePrmValTest_esmState); - RUN_TEST(test_pmic_esm_setConfiguration_esmMcuLevelMode); - RUN_TEST(test_pmic_esm_setConfiguration_esmSocLevelMode); - RUN_TEST(test_pmic_esm_setConfiguration_esmMcuPwmMode); - RUN_TEST(test_pmic_esm_setConfiguration_esmSocPwmMode); - RUN_TEST(test_pmic_esm_setConfigurationPrmValTest_handle); - RUN_TEST(test_pmic_esm_setConfigurationPrmValTest_esmDelay1); - RUN_TEST(test_pmic_esm_setConfigurationPrmValTest_esmDelay2); - RUN_TEST(test_pmic_esm_setConfigurationPrmValTest_esmHmax); - RUN_TEST(test_pmic_esm_setConfigurationPrmValTest_esmHmin); - RUN_TEST(test_pmic_esm_setConfigurationPrmValTest_esmLmax); - RUN_TEST(test_pmic_esm_setConfigurationPrmValTest_esmLmin); - RUN_TEST(test_pmic_esm_setConfigurationPrmValTest_esmErrCntThr); - RUN_TEST(test_pmic_esm_getConfiguration_esmMcuPwmMode); - RUN_TEST(test_pmic_esm_getConfiguration_esmSocPwmMode); - RUN_TEST(test_esm_getConfigurationPrmValTest_handle); - RUN_TEST(test_esm_getConfigurationPrmValTest_pEsmCfg); - RUN_TEST(test_esm_getErrCnt_esmMcu); - RUN_TEST(test_esm_getErrCnt_esmSoc); - RUN_TEST(test_esm_getErrCntPrmValTest_handle); - RUN_TEST(test_esm_getErrCntPrmValTest_pEsmErrCnt); - RUN_TEST(test_esm_setInterruptPrmValTest_handle); - RUN_TEST(test_pmic_esm_startEsm_esmSocStart_hera); - RUN_TEST(test_pmic_esm_startEsm_esmSocEnable_hera); - RUN_TEST(test_pmic_esm_setConfiguration_esmSocLevelMode_hera); - RUN_TEST(test_pmic_esm_getConfiguration_esmSocLevelMode_hera); - RUN_TEST(test_Pmic_esmGetErrCnt_hera); - RUN_TEST(test_Pmic_esmSetInterrupt_hera); - RUN_TEST(test_Pmic_esmGetEnableState_hera); - RUN_TEST(test_pmic_esm_getStatusEsmMcu); - RUN_TEST(test_pmic_esm_getStatusEsmSoc); - RUN_TEST(test_pmic_esm_getStatusPrmValTest_handle); - RUN_TEST(test_pmic_esm_getStatusPrmValTest_pEsmState); - RUN_TEST(test_pmic_esm_getStatusEsmSoc_hera); - - RUN_TEST(test_pmic_esm_setInterrupt_esmSocAllIntrDisabled); - RUN_TEST(test_pmic_esm_setConfigurationPrmValTest_hmaxValue); - RUN_TEST(test_pmic_esm_setConfigurationPrmValTest_hminValue); - RUN_TEST(test_pmic_esm_setConfigurationPrmValTest_lmaxValue); - RUN_TEST(test_pmic_esm_setConfigurationPrmValTest_lminValue); - RUN_TEST(test_pmic_esm_setConfiguration_disableDrvClear); - RUN_TEST(test_pmic_esm_setconfiguration_PrmValTest_validParams); - RUN_TEST(test_pmic_esm_getconfiguration_PrmValTest_validParams); - RUN_TEST(test_pmic_esm_coverageGaps); - - pmic_updateTestResults(pmic_esm_tests, PMIC_ESM_NUM_OF_TESTCASES); - - UNITY_END(); -} - -/*! - * \brief Run esm unity test cases - */ -static void test_pmic_run_slave_testcases(void) -{ - pmic_log("\n\n%s(): %d: Begin Unity Test Cases...\n", __func__, __LINE__); - UNITY_BEGIN(); - - pmic_testResult_init(pmic_esm_tests, PMIC_ESM_NUM_OF_TESTCASES); - - RUN_TEST(test_pmic_esm_startEsmPrmValTest_handle); - RUN_TEST(test_pmic_esm_enableEsm_esmMcuEnable); - RUN_TEST(test_pmic_esm_enableEsm_esmSocEnable); - RUN_TEST(test_pmic_esm_enableEsmPrmValTest_handle); - RUN_TEST(test_pmic_esm_getEnableState_esmMcu); - RUN_TEST(test_pmic_esm_getEnableState_esmSoc); - RUN_TEST(test_pmic_esm_getEnableStatePrmValTest_handle); - RUN_TEST(test_pmic_esm_getEnableStatePrmValTest_esmState); - RUN_TEST(test_pmic_esm_setConfiguration_esmMcuLevelMode); - RUN_TEST(test_pmic_esm_setConfiguration_esmSocLevelMode); - RUN_TEST(test_pmic_esm_setConfiguration_esmMcuPwmMode); - RUN_TEST(test_pmic_esm_setConfiguration_esmSocPwmMode); - RUN_TEST(test_pmic_esm_setConfigurationPrmValTest_handle); - RUN_TEST(test_pmic_esm_setConfigurationPrmValTest_esmDelay1); - RUN_TEST(test_pmic_esm_setConfigurationPrmValTest_esmDelay2); - RUN_TEST(test_pmic_esm_setConfigurationPrmValTest_esmHmax); - RUN_TEST(test_pmic_esm_setConfigurationPrmValTest_esmHmin); - RUN_TEST(test_pmic_esm_setConfigurationPrmValTest_esmLmax); - RUN_TEST(test_pmic_esm_setConfigurationPrmValTest_esmLmin); - RUN_TEST(test_pmic_esm_setConfigurationPrmValTest_esmErrCntThr); - RUN_TEST(test_pmic_esm_getConfiguration_esmMcuPwmMode); - RUN_TEST(test_pmic_esm_getConfiguration_esmSocPwmMode); - RUN_TEST(test_esm_getConfigurationPrmValTest_handle); - RUN_TEST(test_esm_getConfigurationPrmValTest_pEsmCfg); - RUN_TEST(test_esm_getErrCnt_esmMcu); - RUN_TEST(test_esm_getErrCnt_esmSoc); - RUN_TEST(test_esm_getErrCntPrmValTest_handle); - RUN_TEST(test_esm_getErrCntPrmValTest_pEsmErrCnt); - RUN_TEST(test_esm_setInterruptPrmValTest_handle); - RUN_TEST(test_pmic_esm_startEsm_esmSocStart_hera); - RUN_TEST(test_pmic_esm_startEsm_esmSocEnable_hera); - RUN_TEST(test_pmic_esm_setConfiguration_esmSocLevelMode_hera); - RUN_TEST(test_pmic_esm_getConfiguration_esmSocLevelMode_hera); - RUN_TEST(test_Pmic_esmGetErrCnt_hera); - RUN_TEST(test_Pmic_esmSetInterrupt_hera); - RUN_TEST(test_Pmic_esmGetEnableState_hera); - RUN_TEST(test_pmic_esm_getStatusPrmValTest_handle); - RUN_TEST(test_pmic_esm_getStatusPrmValTest_pEsmState); - RUN_TEST(test_pmic_esm_getStatusEsmSoc_hera); - - RUN_TEST(test_pmic_esm_setInterrupt_esmSocAllIntrDisabled); - RUN_TEST(test_pmic_esm_setConfigurationPrmValTest_hmaxValue); - RUN_TEST(test_pmic_esm_setConfigurationPrmValTest_hminValue); - RUN_TEST(test_pmic_esm_setConfigurationPrmValTest_lmaxValue); - RUN_TEST(test_pmic_esm_setConfigurationPrmValTest_lminValue); - RUN_TEST(test_pmic_esm_setConfiguration_disableDrvClear); - RUN_TEST(test_pmic_esm_setconfiguration_PrmValTest_validParams); - RUN_TEST(test_pmic_esm_getconfiguration_PrmValTest_validParams); - RUN_TEST(test_pmic_esm_coverageGaps); - - pmic_updateTestResults(pmic_esm_tests, PMIC_ESM_NUM_OF_TESTCASES); - - UNITY_END(); -} - -/*! - * \brief ESM Unity Test App wrapper Function for LEO PMIC-A - */ -static int32_t test_pmic_leo_pmicA_esm_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_LEO_TPS6594X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_DUAL_I2C; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.i2c1Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C1_SPEED_VALID_SHIFT; - - pmicConfigData.i2c2Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C2_SPEED_VALID_SHIFT; - - if(J721E_LEO_PMICA_DEVICE == pmic_device_info) - { - pmicConfigData.slaveAddr = J721E_LEO_PMICA_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J721E_LEO_PMICA_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J721E_LEO_PMICA_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - } - if(J7VCL_LEO_PMICA_DEVICE == pmic_device_info) - { - pmicConfigData.slaveAddr = J7VCL_LEO_PMICA_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J7VCL_LEO_PMICA_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J7VCL_LEO_PMICA_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - } - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; -} - -/*! - * \brief ESM Unity Test App wrapper Function for LEO PMIC-B - */ -static int32_t test_pmic_leo_pmicB_esm_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_LEO_TPS6594X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_SINGLE_I2C; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.i2c1Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C1_SPEED_VALID_SHIFT; - - pmicConfigData.slaveAddr = J721E_LEO_PMICB_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J721E_LEO_PMICB_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J721E_LEO_PMICB_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; - -} - -/*! - * \brief ESM Unity Test App wrapper Function for LEO PMIC-A - */ -static int32_t test_pmic_leo_pmicA_spiStub_esm_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_LEO_TPS6594X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_SPI; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; -} - -/*! - * \brief ESM Unity Test App wrapper Function for HERA PMIC - */ -static int32_t test_pmic_hera_esm_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_HERA_LP8764X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_SINGLE_I2C; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.i2c1Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C1_SPEED_VALID_SHIFT; - - pmicConfigData.slaveAddr = J7VCL_HERA_PMIC_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J7VCL_HERA_PMIC_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J7VCL_HERA_PMIC_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; - -} - -static int32_t setup_pmic_interrupt(uint32_t board) -{ - int32_t status = PMIC_ST_SUCCESS; - - if(J721E_BOARD == board) - { - if(PMIC_STATUS_CRC_INIT_VAL == gCrcTestFlag_J721E) - { - gCrcTestFlag_J721E = PMIC_CFG_TO_ENABLE_CRC; - } - - pmic_device_info = J721E_LEO_PMICA_DEVICE; - status = test_pmic_leo_pmicA_esm_testApp(); - /* Deinit pmic handle */ - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - - if(PMIC_ST_SUCCESS == status) - { - pmic_device_info = J721E_LEO_PMICB_DEVICE; - status = test_pmic_leo_pmicB_esm_testApp(); - /* Deinit pmic handle */ - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } - } - else if(J7VCL_BOARD == board) - { - if(PMIC_STATUS_CRC_INIT_VAL == gCrcTestFlag_J7VCL) - { - gCrcTestFlag_J7VCL = PMIC_CFG_TO_ENABLE_CRC; - } - - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - status = test_pmic_leo_pmicA_esm_testApp(); - /* Deinit pmic handle */ - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - - if(PMIC_ST_SUCCESS == status) - { - pmic_device_info = J7VCL_HERA_PMICB_DEVICE; - status = test_pmic_hera_esm_testApp(); - /* Deinit pmic handle */ - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } - } - else - { - status = PMIC_ST_ERR_INV_DEVICE; - } - return status; -} - -static const char pmicTestMenu[] = -{ - " \r\n =================================================================" - " \r\n Test Menu:" - " \r\n =================================================================" - " \r\n 0: Automatic run for all board specific ESM options" - " \r\n 1: Manual run for ESM options" - " \r\n 2: quit" - " \r\n" - " \r\n Enter option: " -}; - -volatile static const char pmicTestAppMenu[] = -{ - " \r\n =================================================================" - " \r\n Menu:" - " \r\n =================================================================" - " \r\n 0: Pmic Leo device(PMIC A on J721E EVM Using I2C Interface)" - " \r\n 1: Pmic Leo device(PMIC B on J721E EVM Using I2C Interface)" - " \r\n 2: Pmic Leo device(PMIC A on J7VCL EVM Using I2C Interface)" - " \r\n 3: Pmic Hera device(PMIC B on J7VCL EVM Using I2C Interface)" - " \r\n 4: Pmic Leo device(PMIC A on J721E EVM Using SPI Stub Functions)" - " \r\n 5: Pmic Leo device(PMIC A on J7VCL EVM Using SPI Stub Functions)" - " \r\n 6: Pmic Leo device(PMIC A on J721E EVM Manual Testcase for ESM Interrupts)" - " \r\n 7: Pmic Leo device(PMIC A on J7VCL EVM Manual Testcase for ESM Interrupts)" - " \r\n 8: Pmic Hera device(PMIC B on J7VCL EVM Manual Testcase for ESM Interrupts)" - " \r\n 9: Back to Test Menu" - " \r\n" - " \r\n Enter option: " -}; - -static const char pmicTestAppManualTestSubMenu[] = -{ - " \r\n =================================================================" - " \r\n Sub Menu:" - " \r\n =================================================================" - " \r\n 0: ESM PIN Interrupt Test" - " \r\n 1: ESM FAIL Interrupt Test" - " \r\n 2: ESM RST Interrupt Test" - " \r\n 3: ESM ALL Interrupt Test" - " \r\n 4: ESM Disable Interrupt Test" - " \r\n 5: Back to Manual tests Menu" - " \r\n" - " \r\n Enter option: " -}; - -static void print_pmicTestAppManualTestMenu(uint32_t board) -{ - char board_name[10] = {0}; - - if(J721E_BOARD == board) - { - strcpy(board_name, "J721E"); - } - else if(J7VCL_BOARD == board) - { - strcpy(board_name, "J7VCL"); - } - - pmic_log(" \r\n ================================================================="); - pmic_log(" \r\n Manual Testcase Menu:"); - pmic_log(" \r\n ================================================================="); - pmic_log(" \r\n 0: Pmic Leo device(PMIC A on %s EVM for ESM MCU Level Mode)", board_name); - pmic_log(" \r\n 1: Pmic Leo device(PMIC A on %s EVM for ESM MCU PWM Mode)", board_name); - pmic_log(" \r\n 2: Back to Main Menu"); - pmic_log(" \r\n"); - pmic_log(" \r\n Enter option: "); -} - -/*! - * \brief Run ESM manual test cases for MCU Level mode - */ -static void test_pmic_run_testcases_mcuLevelMode(void) -{ - int8_t subMenuOption = -1; - - while(1U) - { - pmic_log("%s", pmicTestAppManualTestSubMenu); - if(UART_scanFmt("%d", &subMenuOption) != 0U) - { - pmic_log("Read from UART Console failed\n"); - return; - } - - pmic_log("\n\n%s(): %d: Begin Unity Test Cases...\n", __func__, __LINE__); - UNITY_BEGIN(); - - switch(subMenuOption) - { - case 0U: - RUN_TEST(test_esm_setInterrupt_esmMcuPinIntr_levelMode); - break; - case 1U: - RUN_TEST(test_esm_setInterrupt_esmMcuFailIntr_levelMode); - break; - case 2U: - RUN_TEST(test_esm_setInterrupt_esmMcuRstIntr_levelMode); - break; - case 3U: - RUN_TEST(test_esm_setInterrupt_esmMcuAllIntr_levelMode); - break; - case 4U: - RUN_TEST(test_esm_setInterrupt_esmMcuAllIntrDisabled_levelMode); - break; - case 5U: - pmic_log(" \r\n Back to Manual tests Menu\n"); - return; - default: - pmic_log(" \r\n Invalid option... Try Again!!!\n"); - break; - } - UNITY_END(); - } -} - -/*! - * \brief Run ESM manual test cases for MCU PWM mode - */ -static void test_pmic_run_testcases_mcuPwmMode(void) -{ - int8_t subMenuOption = -1; - - while(1U) - { - pmic_log("%s", pmicTestAppManualTestSubMenu); - if(UART_scanFmt("%d", &subMenuOption) != 0U) - { - pmic_log("Read from UART Console failed\n"); - return; - } - - pmic_log("\n\n%s(): %d: Begin Unity Test Cases...\n", __func__, __LINE__); - UNITY_BEGIN(); - - switch(subMenuOption) - { - case 0U: - RUN_TEST(test_esm_setInterrupt_esmMcuPinIntr_pwmMode); - break; - case 1U: - RUN_TEST(test_esm_setInterrupt_esmMcuFailIntr_pwmMode); - break; - case 2U: - RUN_TEST(test_esm_setInterrupt_esmMcuRstIntr_pwmMode); - break; - case 3U: - RUN_TEST(test_esm_setInterrupt_esmMcuAllIntr_pwmMode); - break; - case 4U: - RUN_TEST(test_esm_setInterrupt_esmMcuAllIntrDisabled_pwmMode); - break; - case 5U: - pmic_log(" \r\n Back to Manual tests Menu\n"); - return; - default: - pmic_log(" \r\n Invalid option... Try Again!!!\n"); - break; - } - UNITY_END(); - } -} - -/*! - * \brief Run ESM manual test cases - */ -static void test_pmic_run_testcases_manual(uint32_t board) -{ - int8_t menuOption = -1; - - while(1U) - { - print_pmicTestAppManualTestMenu(board); - if(UART_scanFmt("%d", &menuOption) != 0U) - { - pmic_log("Read from UART Console failed\n"); - return; - } - - switch(menuOption) - { - case 0U: - RUN_TEST(test_pmic_run_testcases_mcuLevelMode); - break; - case 1U: - RUN_TEST(test_pmic_run_testcases_mcuPwmMode); - break; - case 2U: - pmic_log(" \r\n Back to Test Menu\n"); - return; - default: - pmic_log(" \r\n Invalid option... Try Again!!!\n"); - break; - } - } -} - -static void test_pmic_esm_testapp_run_options(int8_t option) -{ - int8_t num = -1; - int8_t idx = 0; -#if defined(SOC_J721E) - int8_t automatic_options[] = {0, 1, 4}; -#elif defined(SOC_J7200) - int8_t automatic_options[] = {2, 3, 5}; -#endif - - while(1U) - { - if(idx >= (sizeof(automatic_options)/sizeof(automatic_options[0]))) - { - pmic_printTestResult(pmic_esm_tests, PMIC_ESM_NUM_OF_TESTCASES); - } - pmic_log("%s", pmicTestAppMenu); - if(option == PMIC_UT_AUTOMATE_OPTION) - { - if(idx < (sizeof(automatic_options)/sizeof(automatic_options[0]))) - { - num = automatic_options[idx++]; - } - else - { - num = 9; - } - pmic_log("%d\n", num); - } - else - { - if(UART_scanFmt("%d", &num) != 0U) - { - pmic_log("Read from UART Console failed\n"); - return; - } - } - switch(num) - { - case 0U: -#if defined(SOC_J721E) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J721E_BOARD)) - { - pmic_device_info = J721E_LEO_PMICA_DEVICE; - - /* ESM Unity Test App wrapper Function for LEO PMIC-A */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_esm_testApp()) - { - /* Run esm test cases for Leo PMIC-A */ - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 1U: -#if defined(SOC_J721E) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J721E_BOARD)) - { - pmic_device_info = J721E_LEO_PMICB_DEVICE; - - /* ESM Unity Test App wrapper Function for LEO PMIC-B */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicB_esm_testApp()) - { - pmic_log( - " \r\n ESM feature cannot be tested on PMIC-B\n"); - test_pmic_run_slave_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 2U: -#if defined(SOC_J7200) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J7VCL_BOARD)) - { - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - - /* ESM Unity Test App wrapper Function for LEO PMIC-A */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_esm_testApp()) - { - /* Run esm test cases for Leo PMIC-A */ - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 3U: -#if defined(SOC_J7200) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J7VCL_BOARD)) - { - pmic_device_info = J7VCL_HERA_PMICB_DEVICE; - - /* ESM Unity Test App wrapper Function for HERA PMIC */ - if(PMIC_ST_SUCCESS == test_pmic_hera_esm_testApp()) - { - /* Run esm test cases for Hera PMIC */ - test_pmic_run_slave_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 4U: -#if defined(SOC_J721E) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J721E_BOARD)) - { - pmic_device_info = J721E_LEO_PMICA_DEVICE; - - /* ESM Unity Test App wrapper Function for LEO PMIC-A using - * SPI stub functions */ - if(PMIC_ST_SUCCESS == - test_pmic_leo_pmicA_spiStub_esm_testApp()) - { - /* Run esm test cases for Leo PMIC-A */ - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 5U: -#if defined(SOC_J7200) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J7VCL_BOARD)) - { - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - /* ESM Unity Test App wrapper Function for LEO PMIC-A - * using SPI stub functions */ - if(PMIC_ST_SUCCESS == - test_pmic_leo_pmicA_spiStub_esm_testApp()) - { - /* Run esm test cases for Leo PMIC-A */ - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 6U: -#if defined(SOC_J721E) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J721E_BOARD)) - { - pmic_device_info = J721E_LEO_PMICA_DEVICE; - - /* ESM Unity Test App wrapper Function for LEO PMIC-A */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_esm_testApp()) - { - /* Run ESM manual test cases */ - test_pmic_run_testcases_manual(J721E_BOARD); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - return; - case 7U: -#if defined(SOC_J7200) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J7VCL_BOARD)) - { - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - - /* ESM Unity Test App wrapper Function for LEO PMIC-A */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_esm_testApp()) - { - /* Run ESM manual test cases */ - test_pmic_run_testcases_manual(J7VCL_BOARD); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - return; - case 8U: -#if defined(SOC_J7200) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J7VCL_BOARD)) - { - pmic_device_info = J7VCL_HERA_PMICB_DEVICE; - - /* ESM Unity Test App wrapper Function for HERA PMIC */ - if(PMIC_ST_SUCCESS == test_pmic_hera_esm_testApp()) - { - /* Run ESM manual test cases */ - test_pmic_run_testcases_manual(J7VCL_BOARD); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - return; - case 9U: - pmic_log(" \r\n Back to Test Menu options\n"); - return; - default: - pmic_log(" \r\n Invalid option... Try Again!!!\n"); - break; - } - } -} - -/*! - * \brief Function to register ESM Unity Test App wrapper to Unity framework - */ -static void test_pmic_esm_testapp_runner(void) -{ - /* @description : Test runner for ESM Test App - * - * @requirements: 5833, 5846 - * - * @cores : mcu1_0, mcu1_1 - */ - - int8_t option = -1; - - while(1U) - { - pmic_log("%s", pmicTestMenu); - if(UART_scanFmt("%d", &option) != 0U) - { - pmic_log("Read from UART Console failed\n"); - return; - } - - switch(option) - { - case PMIC_UT_AUTOMATE_OPTION: - test_pmic_esm_testapp_run_options(PMIC_UT_AUTOMATE_OPTION); - break; - case PMIC_UT_MANUAL_OPTION: - test_pmic_esm_testapp_run_options(PMIC_UT_MANUAL_OPTION); - break; - case 2U: - pmic_log(" \r\n Quit from application\n"); - return; - default: - pmic_log(" \r\n Invalid option... Try Again!!!\n"); - break; - } - } -} -#endif - -/*! - * \brief TI RTOS specific ESM TEST APP main Function - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values see \ref Pmic_ErrorCodes - */ -int main() -{ - Board_initUART(); - - pmic_print_banner("PMIC ESM Unity Test Application"); -#if defined(UNITY_INCLUDE_CONFIG_V2_H) && \ - (defined(SOC_J721E) || \ - defined(SOC_J7200)) - test_pmic_esm_testapp_runner(); -#endif -} diff --git a/test/esm_test/pmic_ut_esm.h b/test/esm_test/pmic_ut_esm.h deleted file mode 100644 index aeae2ea..0000000 --- a/test/esm_test/pmic_ut_esm.h +++ /dev/null @@ -1,51 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ -/** - * \file pmic_ut_esm.h - * - * \brief Header file for PMIC ESM Unit Tests - * - */ - -#include - -/* ========================================================================= */ -/* Macros & Typedefs */ -/* ========================================================================= */ - -/*! - * \brief Numbers of GPIO testcases - */ -#define PMIC_ESM_NUM_OF_TESTCASES \ - (sizeof(pmic_esm_tests)/sizeof(pmic_esm_tests[0])) -/* None */ diff --git a/test/fsm_mcu_test/j7200/linker_mcu1_0.lds b/test/fsm_mcu_test/j7200/linker_mcu1_0.lds deleted file mode 100644 index 20078b0..0000000 --- a/test/fsm_mcu_test/j7200/linker_mcu1_0.lds +++ /dev/null @@ -1,102 +0,0 @@ -/* Linker Settings */ ---retain="*(.bootCode)" ---retain="*(.startupCode)" ---retain="*(.startupData)" ---retain="*(.intvecs)" ---retain="*(.intc_text)" ---retain="*(.rstvectors)" ---retain="*(.irqStack)" ---retain="*(.fiqStack)" ---retain="*(.abortStack)" ---retain="*(.undStack)" ---retain="*(.svcStack)" ---fill_value=0 ---stack_size=0x1000 ---heap_size=0x1000 ---entry_point=_resetvectors /* Default C RTS boot.asm */ - --stack 0x1000 /* SOFTWARE STACK SIZE */ --heap 0x1000 /* HEAP AREA SIZE */ - -/* Stack Sizes for various modes */ -__IRQ_STACK_SIZE = 0x500; -__FIQ_STACK_SIZE = 0x500; -__ABORT_STACK_SIZE = 0x500; -__UND_STACK_SIZE = 0x500; -__SVC_STACK_SIZE = 0x500; - -/* Memory Map */ -MEMORY -{ - /* MCU0_R5F_0 local view */ - MCU0_R5F_TCMA_SBL_RSVD (X) : origin=0x0 length=0x100 - MCU0_R5F_TCMA (X) : origin=0x100 length=0x8000 - 0x100 - MCU0_R5F_TCMB0 (RWIX) : origin=0x41010000 length=0x8000 - - /* MCU0_R5F_1 SoC view */ - MCU0_R5F1_ATCM (RWIX) : origin=0x41400000 length=0x8000 - MCU0_R5F1_BTCM (RWIX) : origin=0x41410000 length=0x8000 - - /* Refer the user guide for details on persistence of these sections */ - OCMC_RAM_BOARD_CFG (RWIX) : origin=0x41C80000 length=0x2000 - OCMC_RAM_SCISERVER (RWIX) : origin=0x41C82000 length=0x60000 - VECTORS (X) : origin=0x41CE2000 length=0x1000 - RESET_VECTORS (X) : origin=0x41CE3000 length=0x100 - OCMC_RAM (RWIX) : origin=0x41CE3100 length=0x1CA00 - OCMC_RAM_X509_HEADER (RWIX) : origin=0x41CFFB00 length=0x500 - - /* j7200 MCMS3 locations */ - /* j7200 Reserved Memory for ARM Trusted Firmware */ - MSMC3_ARM_FW (RWIX) : origin=0x70000000 length=0x40000 /* 256KB */ - MSMC3 (RWIX) : origin=0x70040000 length=0xB0000 /* 1MB - 320KB */ - /* j7200 Reserved Memory for DMSC Firmware */ - MSMC3_DMSC_FW (RWIX) : origin=0x700F0000 length=0x10000 /* 64KB */ - - DDR0 (RWIX) : origin=0x80000000 length=0x80000000 /* 2GB */ -} - -/* Section Configuration */ -SECTIONS -{ - /* 'intvecs' and 'intc_text' sections shall be placed within */ - /* a range of +\- 16 MB */ - .intvecs : {} palign(8) > VECTORS - .intc_text : {} palign(8) > VECTORS - .rstvectors : {} palign(8) > RESET_VECTORS - .bootCode : {} palign(8) > OCMC_RAM - .startupCode : {} palign(8) > OCMC_RAM - .startupData : {} palign(8) > OCMC_RAM, type = NOINIT - .text : {} palign(8) > OCMC_RAM_SCISERVER - .const : {} palign(8) > OCMC_RAM - .rodata : {} palign(8) > OCMC_RAM - .cinit : {} palign(8) > MCU0_R5F_TCMB0 - .pinit : {} palign(8) > OCMC_RAM - .bss : {} align(4) > MCU0_R5F_TCMB0 - .far : {} align(4) > OCMC_RAM - .data : {} palign(128) > OCMC_RAM - .sysmem : {} > OCMC_RAM - .data_buffer : {} palign(128) > OCMC_RAM - .bss.devgroup* : {} align(4) > MCU0_R5F_TCMB0 - .const.devgroup*: {} align(4) > MCU0_R5F_TCMA - .boardcfg_data : {} align(4) > OCMC_RAM - - /* USB or any other LLD buffer for benchmarking */ - .benchmark_buffer (NOLOAD) {} ALIGN (8) > OCMC_RAM_SCISERVER - - .stack : {} align(4) > MCU0_R5F_TCMA (HIGH) - .irqStack : {. = . + __IRQ_STACK_SIZE;} align(4) > MCU0_R5F_TCMA (HIGH) - RUN_START(__IRQ_STACK_START) - RUN_END(__IRQ_STACK_END) - .fiqStack : {. = . + __FIQ_STACK_SIZE;} align(4) > MCU0_R5F_TCMA (HIGH) - RUN_START(__FIQ_STACK_START) - RUN_END(__FIQ_STACK_END) - .abortStack : {. = . + __ABORT_STACK_SIZE;} align(4) > MCU0_R5F_TCMA (HIGH) - RUN_START(__ABORT_STACK_START) - RUN_END(__ABORT_STACK_END) - .undStack : {. = . + __UND_STACK_SIZE;} align(4) > MCU0_R5F_TCMA (HIGH) - RUN_START(__UND_STACK_START) - RUN_END(__UND_STACK_END) - .svcStack : {. = . + __SVC_STACK_SIZE;} align(4) > MCU0_R5F_TCMA (HIGH) - RUN_START(__SVC_STACK_START) - RUN_END(__SVC_STACK_END) -} diff --git a/test/fsm_mcu_test/j7200/linker_mcu1_1.lds b/test/fsm_mcu_test/j7200/linker_mcu1_1.lds deleted file mode 100644 index 41e0c4e..0000000 --- a/test/fsm_mcu_test/j7200/linker_mcu1_1.lds +++ /dev/null @@ -1,102 +0,0 @@ -/* Linker Settings */ ---retain="*(.bootCode)" ---retain="*(.startupCode)" ---retain="*(.startupData)" ---retain="*(.intvecs)" ---retain="*(.intc_text)" ---retain="*(.rstvectors)" ---retain="*(.irqStack)" ---retain="*(.fiqStack)" ---retain="*(.abortStack)" ---retain="*(.undStack)" ---retain="*(.svcStack)" ---fill_value=0 ---stack_size=0x1000 ---heap_size=0x1000 ---entry_point=_resetvectors /* Default C RTS boot.asm */ - --stack 0x1000 /* SOFTWARE STACK SIZE */ --heap 0x1000 /* HEAP AREA SIZE */ - -/* Stack Sizes for various modes */ -__IRQ_STACK_SIZE = 0x500; -__FIQ_STACK_SIZE = 0x500; -__ABORT_STACK_SIZE = 0x500; -__UND_STACK_SIZE = 0x500; -__SVC_STACK_SIZE = 0x500; - -/* Memory Map */ -MEMORY -{ - /* MCU0_R5F_0 local view */ - MCU0_R5F_TCMA_SBL_RSVD (X) : origin=0x0 length=0x100 - MCU0_R5F_TCMA (X) : origin=0x100 length=0x8000 - 0x100 - MCU0_R5F_TCMB0 (RWIX) : origin=0x41010000 length=0x8000 - - /* MCU0_R5F_1 SoC view */ - MCU0_R5F1_ATCM (RWIX) : origin=0x41400000 length=0x8000 - MCU0_R5F1_BTCM (RWIX) : origin=0x41410000 length=0x8000 - - /* Refer the user guide for details on persistence of these sections */ - OCMC_RAM_BOARD_CFG (RWIX) : origin=0x41C80000 length=0x2000 - OCMC_RAM_SCISERVER (RWIX) : origin=0x41C82000 length=0x60000 - VECTORS (X) : origin=0x41CE2000 length=0x1000 - RESET_VECTORS (X) : origin=0x41CE3000 length=0x100 - OCMC_RAM (RWIX) : origin=0x41CE3100 length=0x1CA00 - OCMC_RAM_X509_HEADER (RWIX) : origin=0x41CFFB00 length=0x500 - - /* j7200 MCMS3 locations */ - /* j7200 Reserved Memory for ARM Trusted Firmware */ - MSMC3_ARM_FW (RWIX) : origin=0x70000000 length=0x40000 /* 256KB */ - MSMC3 (RWIX) : origin=0x70040000 length=0xB0000 /* 1MB - 320KB */ - /* j7200 Reserved Memory for DMSC Firmware */ - MSMC3_DMSC_FW (RWIX) : origin=0x700F0000 length=0x10000 /* 64KB */ - - DDR0 (RWIX) : origin=0x80000000 length=0x80000000 /* 2GB */ -} - -/* Section Configuration */ -SECTIONS -{ - /* 'intvecs' and 'intc_text' sections shall be placed within */ - /* a range of +\- 16 MB */ - .intvecs : {} palign(8) > VECTORS - .intc_text : {} palign(8) > VECTORS - .rstvectors : {} palign(8) > RESET_VECTORS - .bootCode : {} palign(8) > OCMC_RAM - .startupCode : {} palign(8) > OCMC_RAM - .startupData : {} palign(8) > OCMC_RAM, type = NOINIT - .text : {} palign(8) > OCMC_RAM - .const : {} palign(8) > OCMC_RAM - .rodata : {} palign(8) > OCMC_RAM - .cinit : {} palign(8) > MCU0_R5F_TCMB0 - .pinit : {} palign(8) > OCMC_RAM - .bss : {} align(4) > MCU0_R5F_TCMB0 - .far : {} align(4) > OCMC_RAM - .data : {} palign(128) > OCMC_RAM - .sysmem : {} > OCMC_RAM - .data_buffer : {} palign(128) > OCMC_RAM - .bss.devgroup* : {} align(4) > MCU0_R5F_TCMB0 - .const.devgroup*: {} align(4) > MCU0_R5F_TCMA - .boardcfg_data : {} align(4) > OCMC_RAM - - /* USB or any other LLD buffer for benchmarking */ - .benchmark_buffer (NOLOAD) {} ALIGN (8) > OCMC_RAM - - .stack : {} align(4) > MCU0_R5F_TCMA (HIGH) - .irqStack : {. = . + __IRQ_STACK_SIZE;} align(4) > MCU0_R5F_TCMA (HIGH) - RUN_START(__IRQ_STACK_START) - RUN_END(__IRQ_STACK_END) - .fiqStack : {. = . + __FIQ_STACK_SIZE;} align(4) > MCU0_R5F_TCMA (HIGH) - RUN_START(__FIQ_STACK_START) - RUN_END(__FIQ_STACK_END) - .abortStack : {. = . + __ABORT_STACK_SIZE;} align(4) > MCU0_R5F_TCMA (HIGH) - RUN_START(__ABORT_STACK_START) - RUN_END(__ABORT_STACK_END) - .undStack : {. = . + __UND_STACK_SIZE;} align(4) > MCU0_R5F_TCMA (HIGH) - RUN_START(__UND_STACK_START) - RUN_END(__UND_STACK_END) - .svcStack : {. = . + __SVC_STACK_SIZE;} align(4) > MCU0_R5F_TCMA (HIGH) - RUN_START(__SVC_STACK_START) - RUN_END(__SVC_STACK_END) -} diff --git a/test/fsm_mcu_test/j721e/linker_mcu1_0.lds b/test/fsm_mcu_test/j721e/linker_mcu1_0.lds deleted file mode 100644 index 4746905..0000000 --- a/test/fsm_mcu_test/j721e/linker_mcu1_0.lds +++ /dev/null @@ -1,102 +0,0 @@ -/* Linker Settings */ ---retain="*(.bootCode)" ---retain="*(.startupCode)" ---retain="*(.startupData)" ---retain="*(.intvecs)" ---retain="*(.intc_text)" ---retain="*(.rstvectors)" ---retain="*(.irqStack)" ---retain="*(.fiqStack)" ---retain="*(.abortStack)" ---retain="*(.undStack)" ---retain="*(.svcStack)" ---fill_value=0 ---stack_size=0x1000 ---heap_size=0x1000 ---entry_point=_resetvectors /* Default C RTS boot.asm */ - --stack 0x1000 /* SOFTWARE STACK SIZE */ --heap 0x1000 /* HEAP AREA SIZE */ - -/* Stack Sizes for various modes */ -__IRQ_STACK_SIZE = 0x500; -__FIQ_STACK_SIZE = 0x500; -__ABORT_STACK_SIZE = 0x500; -__UND_STACK_SIZE = 0x500; -__SVC_STACK_SIZE = 0x500; - -/* Memory Map */ -MEMORY -{ - /* MCU0_R5F_0 local view */ - MCU0_R5F_TCMA_SBL_RSVD (X) : origin=0x0 length=0x100 - MCU0_R5F_TCMA (X) : origin=0x100 length=0x8000 - 0x100 - MCU0_R5F_TCMB0 (RWIX) : origin=0x41010000 length=0x8000 - - /* MCU0_R5F_1 SoC view */ - MCU0_R5F1_ATCM (RWIX) : origin=0x41400000 length=0x8000 - MCU0_R5F1_BTCM (RWIX) : origin=0x41410000 length=0x8000 - - /* Refer the user guide for details on persistence of these sections */ - OCMC_RAM_BOARD_CFG (RWIX) : origin=0x41C80000 length=0x2000 - OCMC_RAM_SCISERVER (RWIX) : origin=0x41C82000 length=0x60000 - VECTORS (X) : origin=0x41CE2000 length=0x1000 - RESET_VECTORS (X) : origin=0x41CE3000 length=0x100 - OCMC_RAM (RWIX) : origin=0x41CE3100 length=0x1CA00 - OCMC_RAM_X509_HEADER (RWIX) : origin=0x41CFFB00 length=0x500 - - /* j721e MCMS3 locations */ - /* j721e Reserved Memory for ARM Trusted Firmware */ - MSMC3_ARM_FW (RWIX) : origin=0x70000000 length=0x40000 /* 256KB */ - MSMC3 (RWIX) : origin=0x70040000 length=0x7B0000 /* 8MB - 320KB */ - /* j721e Reserved Memory for DMSC Firmware */ - MSMC3_DMSC_FW (RWIX) : origin=0x707F0000 length=0x10000 /* 64KB */ - - DDR0 (RWIX) : origin=0x80000000 length=0x80000000 /* 2GB */ -} - -/* Section Configuration */ -SECTIONS -{ - /* 'intvecs' and 'intc_text' sections shall be placed within */ - /* a range of +\- 16 MB */ - .intvecs : {} palign(8) > VECTORS - .intc_text : {} palign(8) > VECTORS - .rstvectors : {} palign(8) > RESET_VECTORS - .bootCode : {} palign(8) > OCMC_RAM - .startupCode : {} palign(8) > OCMC_RAM - .startupData : {} palign(8) > OCMC_RAM, type = NOINIT - .text : {} palign(8) > OCMC_RAM_SCISERVER - .const : {} palign(8) > OCMC_RAM - .rodata : {} palign(8) > OCMC_RAM_SCISERVER - .cinit : {} palign(8) > MCU0_R5F_TCMB0 - .pinit : {} palign(8) > OCMC_RAM - .bss : {} align(4) > MCU0_R5F_TCMB0 - .far : {} align(4) > OCMC_RAM - .data : {} palign(128) > OCMC_RAM - .sysmem : {} > OCMC_RAM - .data_buffer : {} palign(128) > OCMC_RAM - .bss.devgroup* : {} align(4) > MCU0_R5F_TCMB0 - .const.devgroup*: {} align(4) > MCU0_R5F_TCMA - .boardcfg_data : {} align(4) > OCMC_RAM - - /* USB or any other LLD buffer for benchmarking */ - .benchmark_buffer (NOLOAD) {} ALIGN (8) > OCMC_RAM_SCISERVER - - .stack : {} align(4) > MCU0_R5F_TCMA (HIGH) - .irqStack : {. = . + __IRQ_STACK_SIZE;} align(4) > MCU0_R5F_TCMA (HIGH) - RUN_START(__IRQ_STACK_START) - RUN_END(__IRQ_STACK_END) - .fiqStack : {. = . + __FIQ_STACK_SIZE;} align(4) > MCU0_R5F_TCMA (HIGH) - RUN_START(__FIQ_STACK_START) - RUN_END(__FIQ_STACK_END) - .abortStack : {. = . + __ABORT_STACK_SIZE;} align(4) > MCU0_R5F_TCMA (HIGH) - RUN_START(__ABORT_STACK_START) - RUN_END(__ABORT_STACK_END) - .undStack : {. = . + __UND_STACK_SIZE;} align(4) > MCU0_R5F_TCMA (HIGH) - RUN_START(__UND_STACK_START) - RUN_END(__UND_STACK_END) - .svcStack : {. = . + __SVC_STACK_SIZE;} align(4) > MCU0_R5F_TCMA (HIGH) - RUN_START(__SVC_STACK_START) - RUN_END(__SVC_STACK_END) -} diff --git a/test/fsm_mcu_test/j721e/linker_mcu1_1.lds b/test/fsm_mcu_test/j721e/linker_mcu1_1.lds deleted file mode 100644 index 055044b..0000000 --- a/test/fsm_mcu_test/j721e/linker_mcu1_1.lds +++ /dev/null @@ -1,102 +0,0 @@ -/* Linker Settings */ ---retain="*(.bootCode)" ---retain="*(.startupCode)" ---retain="*(.startupData)" ---retain="*(.intvecs)" ---retain="*(.intc_text)" ---retain="*(.rstvectors)" ---retain="*(.irqStack)" ---retain="*(.fiqStack)" ---retain="*(.abortStack)" ---retain="*(.undStack)" ---retain="*(.svcStack)" ---fill_value=0 ---stack_size=0x1000 ---heap_size=0x1000 ---entry_point=_resetvectors /* Default C RTS boot.asm */ - --stack 0x1000 /* SOFTWARE STACK SIZE */ --heap 0x1000 /* HEAP AREA SIZE */ - -/* Stack Sizes for various modes */ -__IRQ_STACK_SIZE = 0x500; -__FIQ_STACK_SIZE = 0x500; -__ABORT_STACK_SIZE = 0x500; -__UND_STACK_SIZE = 0x500; -__SVC_STACK_SIZE = 0x500; - -/* Memory Map */ -MEMORY -{ - /* MCU0_R5F_0 local view */ - MCU0_R5F_TCMA_SBL_RSVD (X) : origin=0x0 length=0x100 - MCU0_R5F_TCMA (X) : origin=0x100 length=0x8000 - 0x100 - MCU0_R5F_TCMB0 (RWIX) : origin=0x41010000 length=0x8000 - - /* MCU0_R5F_1 SoC view */ - MCU0_R5F1_ATCM (RWIX) : origin=0x41400000 length=0x8000 - MCU0_R5F1_BTCM (RWIX) : origin=0x41410000 length=0x8000 - - /* Refer the user guide for details on persistence of these sections */ - OCMC_RAM_BOARD_CFG (RWIX) : origin=0x41C80000 length=0x2000 - OCMC_RAM_SCISERVER (RWIX) : origin=0x41C82000 length=0x60000 - VECTORS (X) : origin=0x41CE2000 length=0x1000 - RESET_VECTORS (X) : origin=0x41CE3000 length=0x100 - OCMC_RAM (RWIX) : origin=0x41CE3100 length=0x1CA00 - OCMC_RAM_X509_HEADER (RWIX) : origin=0x41CFFB00 length=0x500 - - /* j721e MCMS3 locations */ - /* j721e Reserved Memory for ARM Trusted Firmware */ - MSMC3_ARM_FW (RWIX) : origin=0x70000000 length=0x40000 /* 256KB */ - MSMC3 (RWIX) : origin=0x70040000 length=0x7B0000 /* 8MB - 320KB */ - /* j721e Reserved Memory for DMSC Firmware */ - MSMC3_DMSC_FW (RWIX) : origin=0x707F0000 length=0x10000 /* 64KB */ - - DDR0 (RWIX) : origin=0x80000000 length=0x80000000 /* 2GB */ -} - -/* Section Configuration */ -SECTIONS -{ - /* 'intvecs' and 'intc_text' sections shall be placed within */ - /* a range of +\- 16 MB */ - .intvecs : {} palign(8) > VECTORS - .intc_text : {} palign(8) > VECTORS - .rstvectors : {} palign(8) > RESET_VECTORS - .bootCode : {} palign(8) > OCMC_RAM - .startupCode : {} palign(8) > OCMC_RAM - .startupData : {} palign(8) > OCMC_RAM, type = NOINIT - .text : {} palign(8) > OCMC_RAM - .const : {} palign(8) > OCMC_RAM - .rodata : {} palign(8) > MCU0_R5F_TCMB0 - .cinit : {} palign(8) > MCU0_R5F_TCMA - .pinit : {} palign(8) > OCMC_RAM - .bss : {} align(4) > MCU0_R5F_TCMB0 - .far : {} align(4) > OCMC_RAM - .data : {} palign(128) > OCMC_RAM - .sysmem : {} > OCMC_RAM - .data_buffer : {} palign(128) > OCMC_RAM - .bss.devgroup* : {} align(4) > MCU0_R5F_TCMA - .const.devgroup*: {} align(4) > MCU0_R5F_TCMA - .boardcfg_data : {} align(4) > MCU0_R5F_TCMA - - /* USB or any other LLD buffer for benchmarking */ - .benchmark_buffer (NOLOAD) {} ALIGN (8) > OCMC_RAM_SCISERVER - - .stack : {} align(4) > MCU0_R5F_TCMA (HIGH) - .irqStack : {. = . + __IRQ_STACK_SIZE;} align(4) > MCU0_R5F_TCMA (HIGH) - RUN_START(__IRQ_STACK_START) - RUN_END(__IRQ_STACK_END) - .fiqStack : {. = . + __FIQ_STACK_SIZE;} align(4) > MCU0_R5F_TCMA (HIGH) - RUN_START(__FIQ_STACK_START) - RUN_END(__FIQ_STACK_END) - .abortStack : {. = . + __ABORT_STACK_SIZE;} align(4) > MCU0_R5F_TCMA (HIGH) - RUN_START(__ABORT_STACK_START) - RUN_END(__ABORT_STACK_END) - .undStack : {. = . + __UND_STACK_SIZE;} align(4) > MCU0_R5F_TCMA (HIGH) - RUN_START(__UND_STACK_START) - RUN_END(__UND_STACK_END) - .svcStack : {. = . + __SVC_STACK_SIZE;} align(4) > MCU0_R5F_TCMA (HIGH) - RUN_START(__SVC_STACK_START) - RUN_END(__SVC_STACK_END) -} diff --git a/test/fsm_mcu_test/makefile b/test/fsm_mcu_test/makefile deleted file mode 100644 index f8ea53e..0000000 --- a/test/fsm_mcu_test/makefile +++ /dev/null @@ -1,85 +0,0 @@ -# Filename: Makefile -# -# This file is the makefile for building PMIC miscellaneous Test Code. -# -# Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com/ -# -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# -# Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the -# distribution. -# -# Neither the name of Texas Instruments Incorporated nor the names of -# its contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -#File - pmic_lld\test\fsm_mcu_test\makefile - -APP_NAME = pmic_fsm_mcu_testapp - -include $(PDK_INSTALL_PATH)/ti/build/Rules.make - -BUILD_OS_TYPE = baremetal - -SRCDIR = . ../common -INCDIR = . ../../include/ ../../include/cfg/tps6594x ../../include/cfg/lp8764x -INCDIR += ../common ../../src/ - -# Common source files across all platforms and cores -SRCS_COMMON += pmic_ut_fsm_mcu.c pmic_ut_common.c - -SRCDIR += $(PDK_INSTALL_PATH)/ti/build/unit-test/Unity/src $(PDK_INSTALL_PATH)/ti/build/unit-test/config -INCDIR += $(PDK_INSTALL_PATH)/ti/build/unit-test/Unity/src $(PDK_INSTALL_PATH)/ti/build/unit-test/config -SRCS_COMMON += unity.c - -# List all the external components/interfaces, whose interface header files -# need to be included for this component -INCLUDE_EXTERNAL_INTERFACES = pdk i2c -INCLUDE_INTERNAL_INTERFACES = pmic - -# List all the components required by the application -COMP_LIST_COMMON = $(PDK_COMMON_BAREMETAL_COMP) -EXTERNAL_LNKCMD_FILE_LOCAL = $(SOC)/linker_$(CORE).lds - -# Common source files and CFLAGS across all platforms and cores -PACKAGE_SRCS_COMMON = . ../common - -CFLAGS_LOCAL_COMMON += -DUNITY_INCLUDE_CONFIG_V2_H $(PMIC_CFLAGS) - -# Core/SoC/platform specific source files and CFLAGS -# Example: -# SRCS_ = -# CFLAGS_LOCAL_ = - -# Include common make files -ifeq ($(MAKERULEDIR), ) -#Makerule path not defined, define this and assume relative path from ROOTDIR - MAKERULEDIR := $(ROOTDIR)/ti/build/makerules - export MAKERULEDIR -endif -include $(MAKERULEDIR)/common.mk - -# OBJs and libraries are built by using rule defined in rules_.mk -# and need not be explicitly specified here - -# Nothing beyond this point diff --git a/test/fsm_mcu_test/pmic_ut_fsm_mcu.c b/test/fsm_mcu_test/pmic_ut_fsm_mcu.c deleted file mode 100644 index cd4fbc6..0000000 --- a/test/fsm_mcu_test/pmic_ut_fsm_mcu.c +++ /dev/null @@ -1,559 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ -/** - * \file pmic_ut_fsm_mcu.c - * - * \brief PMIC Unit Test for testing PMIC FSM MCU State APIs - * - */ - -#include - -/* Pointer holds the pPmicCoreHandle */ -Pmic_CoreHandle_t *pPmicCoreHandle = NULL; - -extern uint16_t pmic_device_info; -extern int32_t gCrcTestFlag_J721E; -extern int32_t gCrcTestFlag_J7VCL; - -/*! - * \brief PMIC FSM MCU State Test Cases - */ -static Pmic_Ut_Tests_t pmic_fsm_mcu_tests[] = -{ - /*! testID - * testDesc - */ - { - 7697, - "Pmic_fsmSetMissionState : Test Set State to MCU." - }, - { - 10384, - "Pmic_fsmSetMissionState : Switch PMIC state from Active to MCU and then back to Active state using NSLEEP signals." - }, -}; - - -/*! - * \brief Pmic_fsmSetMissionState : Test Set State to MCU. - */ -static void test_pmic_fsmSetMissionState_mcu(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t pmicState = 0U; - - pmicState = PMIC_FSM_MCU_ONLY_STATE; - - test_pmic_print_unity_testcase_info(7697, - pmic_fsm_mcu_tests, - PMIC_FSM_MCU_NUM_OF_TESTCASES); - - status = Pmic_fsmSetNsleepSignalMask(pPmicCoreHandle, - PMIC_NSLEEP1_SIGNAL, - PMIC_NSLEEPX_UNMASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmSetNsleepSignalMask(pPmicCoreHandle, - PMIC_NSLEEP2_SIGNAL, - PMIC_NSLEEPX_UNMASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmSetMissionState(pPmicCoreHandle, pmicState); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - pmic_log("\r\n FSM state to switched to MCU State\n"); - -#if defined(SOC_J721E) - pmic_log("\r\n Probe TP134 and it should change from High to Low."); - pmic_log("\r\n Probe TP133 and it should continue to be in HIGH"); -#endif -#if defined(SOC_J7200) - pmic_log("\r\n Probe TP46 and it should change from High to Low."); - pmic_log("\r\n Probe TP29 and it should continue to be in HIGH"); -#endif - - pmic_testResultUpdate_pass(7697, - pmic_fsm_mcu_tests, - PMIC_FSM_MCU_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmSetMissionState : Switch PMIC state from Active to MCU and - * then back to Active state using NSLEEP signals - */ -static void test_pmic_fsmSetMissionState_mcu_active_nsleep(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t pmicState = 0U; - int8_t num = 0; - - pmicState = PMIC_FSM_MCU_ONLY_STATE; - - test_pmic_print_unity_testcase_info(10384, - pmic_fsm_mcu_tests, - PMIC_FSM_MCU_NUM_OF_TESTCASES); - - /* Switch PMIC state from MCU to Active state using NSLEEP signals is not - * supported for PG1.0 */ - if(PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - pmic_testResultUpdate_ignore(10384, - pmic_fsm_mcu_tests, - PMIC_FSM_MCU_NUM_OF_TESTCASES); - } - - status = Pmic_fsmSetNsleepSignalMask(pPmicCoreHandle, - PMIC_NSLEEP1_SIGNAL, - PMIC_NSLEEPX_UNMASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmSetNsleepSignalMask(pPmicCoreHandle, - PMIC_NSLEEP2_SIGNAL, - PMIC_NSLEEPX_UNMASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmSetMissionState(pPmicCoreHandle, pmicState); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - pmic_log("\r\n FSM state to switched to MCU State\n"); - -#if defined(SOC_J721E) - pmic_log("\r\n Probe TP134 and it should change from High to Low."); - pmic_log("\r\n Probe TP133 and it should continue to be in HIGH"); -#endif -#if defined(SOC_J7200) - pmic_log("\r\n Probe TP46 and it should change from High to Low."); - pmic_log("\r\n Probe TP29 and it should continue to be in HIGH"); -#endif - - pmic_log("\r\n Enter 1 to continue"); - UART_scanFmt("%d", &num); - - /* Set the NSlEEP2 & NSlEEP1 Signal change to 10*/ - status = Pmic_fsmRecoverSocPwrErr(pPmicCoreHandle, - PMIC_NSLEEP_LOW); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - Osal_delay(1); - - /* Set the NSlEEP2 & NSlEEP1 Signal change to 11*/ - status = Pmic_fsmRecoverSocPwrErr(pPmicCoreHandle, - PMIC_NSLEEP_HIGH); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - -#if defined(SOC_J721E) - pmic_log("\r\n Probe TP134 and it should change from Low to High."); - pmic_log("\r\n Probe TP133 and it should continue to be in HIGH"); -#endif -#if defined(SOC_J7200) - pmic_log("\r\n Probe TP46 and it should change from Low to High."); - pmic_log("\r\n Probe TP29 and it should continue to be in HIGH"); -#endif - pmic_log("\r\n Enter 1 to continue"); - UART_scanFmt("%d", &num); - - pmic_testResultUpdate_pass(10384, - pmic_fsm_mcu_tests, - PMIC_FSM_MCU_NUM_OF_TESTCASES); -} - - -#if defined(UNITY_INCLUDE_CONFIG_V2_H) && \ - (defined(SOC_J721E) || defined(SOC_J7200)) - -/*! - * \brief FSM MCU State Unity Test App wrapper Function for LEO PMIC-A - */ -static int32_t test_pmic_leo_pmicA_fsm_mcu_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_LEO_TPS6594X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_DUAL_I2C; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.i2c1Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C1_SPEED_VALID_SHIFT; - - pmicConfigData.i2c2Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C2_SPEED_VALID_SHIFT; - - if(J721E_LEO_PMICA_DEVICE == pmic_device_info) - { - pmicConfigData.slaveAddr = J721E_LEO_PMICA_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J721E_LEO_PMICA_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J721E_LEO_PMICA_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - } - if(J7VCL_LEO_PMICA_DEVICE == pmic_device_info) - { - pmicConfigData.slaveAddr = J7VCL_LEO_PMICA_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J7VCL_LEO_PMICA_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J7VCL_LEO_PMICA_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - } - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; -} - -/*! - * \brief FSM MCU State Unity Test App wrapper Function for LEO PMIC-B - */ -static int32_t test_pmic_leo_pmicB_fsm_mcu_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_LEO_TPS6594X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_SINGLE_I2C; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.i2c1Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C1_SPEED_VALID_SHIFT; - - pmicConfigData.slaveAddr = J721E_LEO_PMICB_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J721E_LEO_PMICB_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J721E_LEO_PMICB_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; -} - -/*! - * \brief FSM MCU State Unity Test App wrapper Function for HERA PMIC - */ -static int32_t test_pmic_hera_fsm_mcu_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_HERA_LP8764X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_SINGLE_I2C; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.i2c1Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C1_SPEED_VALID_SHIFT; - - pmicConfigData.slaveAddr = J7VCL_HERA_PMIC_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J7VCL_HERA_PMIC_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J7VCL_HERA_PMIC_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; -} - -static int32_t setup_pmic_interrupt(uint32_t board) -{ - int32_t status = PMIC_ST_SUCCESS; - - if(J721E_BOARD == board) - { - if(PMIC_STATUS_CRC_INIT_VAL == gCrcTestFlag_J721E) - { - gCrcTestFlag_J721E = PMIC_CFG_TO_ENABLE_CRC; - } - - pmic_device_info = J721E_LEO_PMICA_DEVICE; - status = test_pmic_leo_pmicA_fsm_mcu_testApp(); - /* Deinit pmic handle */ - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - - if(PMIC_ST_SUCCESS == status) - { - pmic_device_info = J721E_LEO_PMICB_DEVICE; - status = test_pmic_leo_pmicB_fsm_mcu_testApp(); - /* Deinit pmic handle */ - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } - } - else if(J7VCL_BOARD == board) - { - if(PMIC_STATUS_CRC_INIT_VAL == gCrcTestFlag_J7VCL) - { - gCrcTestFlag_J7VCL = PMIC_CFG_TO_ENABLE_CRC; - } - - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - status = test_pmic_leo_pmicA_fsm_mcu_testApp(); - /* Deinit pmic handle */ - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - - if(PMIC_ST_SUCCESS == status) - { - pmic_device_info = J7VCL_HERA_PMICB_DEVICE; - status = test_pmic_hera_fsm_mcu_testApp(); - /* Deinit pmic handle */ - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } - } - else - { - status = PMIC_ST_ERR_INV_DEVICE; - } - return status; -} - -volatile static const char pmicTestAppMenu[] = -{ - " \r\n =================================================================" - " \r\n Manual Testcase Menu:" - " \r\n =================================================================" - " \r\n 0: Pmic Leo device(PMIC A on J721E EVM - Set FSM Mission States - MCU)" - " \r\n 1: Pmic Leo device(PMIC A on J721E EVM - Set FSM Mission States - Active to MCU and then MCU to Active state using NSLEEP signals)" - " \r\n 2: Pmic Leo device(PMIC A on J7VCL EVM - Set FSM Mission States - MCU)" - " \r\n 3: Pmic Leo device(PMIC A on J7VCL EVM - Set FSM Mission States - Active to MCU and then MCU to Active state using NSLEEP signals)" - " \r\n 4: Quit" - " \r\n" - " \r\n Enter option: " -}; - -volatile int8_t g_option = 0; -/*! - * \brief Function to register FSM MCU State Unity Test App wrapper to Unity - * framework - */ -static void test_pmic_fsm_mcu_testapp_runner(void) -{ - /* @description : Test runner for Fsm MCU State Test App - * - * @requirements: XXXX - * - * @cores : mcu1_0, mcu1_1 - */ - - while(1U) - { - pmic_log("%s", pmicTestAppMenu); - if(UART_scanFmt("%d", &g_option) != 0U) - { - pmic_log("Read from UART Console failed\n"); - return; - } - - switch(g_option) - { - case 0U: -#if defined(SOC_J721E) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J721E_BOARD)) - { - pmic_device_info = J721E_LEO_PMICA_DEVICE; - - /* FSM MCU State Manual Test App wrapper Function for LEO PMIC-A*/ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_fsm_mcu_testApp()) - { - /* Run FSM MCU State manual test cases for mcu*/ - test_pmic_fsmSetMissionState_mcu(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 1U: -#if defined(SOC_J721E) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J721E_BOARD)) - { - pmic_device_info = J721E_LEO_PMICA_DEVICE; - - /* FSM MCU State Manual Test App wrapper Function for LEO PMIC-A*/ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_fsm_mcu_testApp()) - { - /* Run fsm mcu state manual test cases for switch the mcu to active state*/ - test_pmic_fsmSetMissionState_mcu_active_nsleep(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 2U: -#if defined(SOC_J7200) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J7VCL_BOARD)) - { - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - - /* FSM MCU State Manual Test App wrapper Function for LEO PMIC-A*/ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_fsm_mcu_testApp()) - { - /* Run fsm mcu state manual test cases for mcu*/ - test_pmic_fsmSetMissionState_mcu(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 3U: -#if defined(SOC_J7200) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J7VCL_BOARD)) - { - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - - /* FSM MCU State Manual Test App wrapper Function for LEO PMIC-A*/ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_fsm_mcu_testApp()) - { - /* Run fsm_mcu state manual test cases for switch the mcu to active state*/ - test_pmic_fsmSetMissionState_mcu_active_nsleep(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 4U: - pmic_log(" \r\n Quit from application\n"); - return; - default: - pmic_log(" \r\n Invalid option... Try Again!!!\n"); - break; - } - } -} -#endif - -/*! - * \brief TI RTOS specific FSM MCU State TEST APP main Function - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values see \ref Pmic_ErrorCodes - */ -int main() -{ - Board_initUART(); - - pmic_print_banner("PMIC FSM MCU State Unity Test Application"); - -#if defined(UNITY_INCLUDE_CONFIG_V2_H) && \ - (defined(SOC_J721E) || \ - defined(SOC_J7200)) - test_pmic_fsm_mcu_testapp_runner(); -#endif -} diff --git a/test/fsm_mcu_test/pmic_ut_fsm_mcu.h b/test/fsm_mcu_test/pmic_ut_fsm_mcu.h deleted file mode 100644 index a2bcbb8..0000000 --- a/test/fsm_mcu_test/pmic_ut_fsm_mcu.h +++ /dev/null @@ -1,46 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ -/** - * \file pmic_ut_fsm_mcu.h - * - * \brief Header file for PMIC FSM MCU State Unit Tests - * - */ - -#include - -/*! - * \brief Numbers of miscellaneous testcases - */ -#define PMIC_FSM_MCU_NUM_OF_TESTCASES \ - (sizeof(pmic_fsm_mcu_tests)/sizeof(pmic_fsm_mcu_tests[0])) diff --git a/test/fsm_test/makefile b/test/fsm_test/makefile deleted file mode 100644 index 68b44ac..0000000 --- a/test/fsm_test/makefile +++ /dev/null @@ -1,84 +0,0 @@ -# Filename: Makefile -# -# This file is the makefile for building PMIC miscellaneous Test Code. -# -# Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com/ -# -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# -# Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the -# distribution. -# -# Neither the name of Texas Instruments Incorporated nor the names of -# its contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -#File - pmic_lld\test\fsm_test\makefile - -APP_NAME = pmic_fsm_testapp - -include $(PDK_INSTALL_PATH)/ti/build/Rules.make - -BUILD_OS_TYPE = baremetal - -SRCDIR = . ../common -INCDIR = . ../../include/ ../../include/cfg/tps6594x ../../include/cfg/lp8764x -INCDIR += ../common ../../src/ - -# Common source files across all platforms and cores -SRCS_COMMON += pmic_ut_fsm.c pmic_ut_common.c - -SRCDIR += $(PDK_INSTALL_PATH)/ti/build/unit-test/Unity/src $(PDK_INSTALL_PATH)/ti/build/unit-test/config -INCDIR += $(PDK_INSTALL_PATH)/ti/build/unit-test/Unity/src $(PDK_INSTALL_PATH)/ti/build/unit-test/config -SRCS_COMMON += unity.c - -# List all the external components/interfaces, whose interface header files -# need to be included for this component -INCLUDE_EXTERNAL_INTERFACES = pdk i2c -INCLUDE_INTERNAL_INTERFACES = pmic - -# List all the components required by the application -COMP_LIST_COMMON = $(PDK_COMMON_BAREMETAL_COMP) - -# Common source files and CFLAGS across all platforms and cores -PACKAGE_SRCS_COMMON = . ../common - -CFLAGS_LOCAL_COMMON += -DUNITY_INCLUDE_CONFIG_V2_H $(PMIC_CFLAGS) - -# Core/SoC/platform specific source files and CFLAGS -# Example: -# SRCS_ = -# CFLAGS_LOCAL_ = - -# Include common make files -ifeq ($(MAKERULEDIR), ) -#Makerule path not defined, define this and assume relative path from ROOTDIR - MAKERULEDIR := $(ROOTDIR)/ti/build/makerules - export MAKERULEDIR -endif -include $(MAKERULEDIR)/common.mk - -# OBJs and libraries are built by using rule defined in rules_.mk -# and need not be explicitly specified here - -# Nothing beyond this point diff --git a/test/fsm_test/pmic_ut_fsm.c b/test/fsm_test/pmic_ut_fsm.c deleted file mode 100644 index cfe7e5d..0000000 --- a/test/fsm_test/pmic_ut_fsm.c +++ /dev/null @@ -1,3417 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ -/** - * \file pmic_ut_fsm.c - * - * \brief PMIC Unit Test for testing PMIC FSM APIs - * - */ - -#include - -/* Pointer holds the pPmicCoreHandle */ -Pmic_CoreHandle_t *pPmicCoreHandle = NULL; - -extern uint16_t pmic_device_info; -extern int32_t gCrcTestFlag_J721E; -extern int32_t gCrcTestFlag_J7VCL; - -extern Pmic_Ut_FaultInject_t gPmic_faultInjectCfg; -extern int8_t gMissionStateTestFlag ; - -/*! - * \brief PMIC FSM Test Cases - */ -static Pmic_Ut_Tests_t pmic_fsm_tests[] = -{ - /*! testID - * testDesc - */ - { - 7693, - "Pmic_fsmSetNsleepSignalMask : Test Mask Nsleep1." - }, - { - 7694, - "Pmic_fsmSetNsleepSignalMask : Test Unmask Nsleep1." - }, - { - 7695, - "Pmic_fsmSetNsleepSignalMask : Test Mask Nsleep2." - }, - { - 7696, - "Pmic_fsmSetNsleepSignalMask : Test Unmask Nsleep2." - }, - { - 7698, - "Pmic_fsmSetMissionState : Test Set State to Active." - }, - { - 7699, - "Pmic_fsmSetMissionState : Test Set State to S2R/Deep Sleep." - }, - { - 7700, - "Pmic_fsmSetMissionState : Manual Test Set State to LP-Standby." - }, - { - 7701, - "Pmic_fsmSetMissionState : Manual Test Set State to Standby." - }, - { - 7702, - "Pmic_fsmSetMissionState : Parameter range validation for handle." - }, - { - 7703, - "Pmic_fsmSetMissionState : Parameter range validation for state." - }, - { - 7704, - "Pmic_fsmSetNsleepSignalMask : Parameter range validation for handle." - }, - { - 7360, - "Pmic_fsmDeviceOffRequestCfg : Parameter validation for handle" - }, - { - 7361, - "Pmic_fsmDeviceOffRequestCfg : Parameter validation for eventType" - }, - { - 7705, - "Pmic_fsmDeviceOffRequestCfg : Parameter validation for fsmState" - }, - { - 7706, - "Pmic_fsmRuntimeBistRequest : Parameter validation for handle." - }, - { - 7364, - "Pmic_fsmDeviceOnRequest : Parameter validation for handle." - }, - { - 10078, - "Pmic_fsmGetNsleepSignalMaskStat : Parameter validation for handle." - }, - { - 10079, - "Pmic_fsmGetNsleepSignalMaskStat : Parameter validation for nsleepStat." - }, - { - 10080, - "Pmic_fsmSetConfiguration/Pmic_fsmGetConfiguration : Enable Fast BIST" - }, - { - 10081, - "Pmic_fsmSetConfiguration/Pmic_fsmGetConfiguration : Select LpStandby State" - }, - { - 10082, - "Pmic_fsmSetConfiguration/Pmic_fsmGetConfiguration : Select Standby State" - }, - { - 10083, - "Pmic_fsmSetConfiguration/Pmic_fsmGetConfiguration : Enable Buck/LDO regulators ILIM" - }, - { - 10084, - "Pmic_fsmSetConfiguration/Pmic_fsmGetConfiguration : Disable Buck/LDO regulators ILIM" - }, - { - 10085, - "Pmic_fsmSetConfiguration/Pmic_fsmGetConfiguration : Select FSM Startup Destination as ACTIVE" - }, - { - 10086, - "Pmic_fsmSetConfiguration/Pmic_fsmGetConfiguration : Select FSM Startup Destination as MCUONLY" - }, - { - 10087, - "Pmic_fsmSetConfiguration/Pmic_fsmGetConfiguration : Select FSM Startup Destination as STANDBY/LPSTANDBY" - }, - { - 10088, - "Pmic_fsmSetConfiguration : Parameter validation for handle." - }, - { - 10089, - "Pmic_fsmSetConfiguration : Parameter Range validation for fsmStarupDestSel Param." - }, - { - 10090, - "Pmic_fsmGetConfiguration : Parameter validation for handle." - }, - { - 10091, - "Pmic_fsmGetConfiguration : Parameter validation for fsmCfg ." - }, - { - 10092, - "Pmic_fsmSetPfsmDelay/Pmic_fsmGetPfsmDelay : Configure Delay for PFSM Delay1" - }, - { - 10093, - "Pmic_fsmSetPfsmDelay : Parameter validation for handle." - }, - { - 10094, - "Pmic_fsmSetPfsmDelay : Parameter Range validation for pFsmDelayType Param." - }, - { - 10095, - "Pmic_fsmGetPfsmDelay : Parameter validation for handle." - }, - { - 10096, - "Pmic_fsmGetPfsmDelay : Parameter Range validation for pFsmDelayType Param." - }, - { - 10097, - "Pmic_fsmGetPfsmDelay : Parameter validation for PfsmDelay Param." - }, - { - 10098, - "Pmic_fsmSetNsleepSignalVal/Pmic_fsmGetNsleepSignalVal : Configure NSleep1 Signal as Low" - }, - { - 10099, - "Pmic_fsmSetNsleepSignalVal/Pmic_fsmGetNsleepSignalVal : Configure NSleep1 Signal as High" - }, - { - 10101, - "Pmic_fsmSetNsleepSignalVal/Pmic_fsmGetNsleepSignalVal : Configure NSleep2 Signal as Low" - }, - { - 10102, - "Pmic_fsmSetNsleepSignalVal/Pmic_fsmGetNsleepSignalVal : Configure NSleep2 Signal as High" - }, - { - 10103, - "Pmic_fsmSetNsleepSignalVal : Parameter validation for handle." - }, - { - 10104, - "Pmic_fsmSetNsleepSignalVal : Parameter Range validation for nsleepVal Param." - }, - { - 10105, - "Pmic_fsmGetNsleepSignalVal : Parameter validation for handle." - }, - { - 10106, - "Pmic_fsmGetNsleepSignalVal : Parameter validation for NsleepVal." - }, - { - 10109, - "Pmic_fsmRecoverSocPwrErr: Configure NSleep1 Signal as Low and NSleep2 Signal to High" - }, - { - 10110, - "Pmic_fsmRecoverSocPwrErr: Configure NSleep1 Signal as High and NSleep2 Signal to High" - }, - { - 10111, - "Pmic_fsmRecoverSocPwrErr : Parameter validation for handle." - }, - { - 10112, - "Pmic_fsmRecoverSocPwrErr : Parameter Range validation for nsleepVal Param." - }, - { - 10113, - "Pmic_fsmEnableI2cTrigger: Trigger i2C4 with trigger value as '1' and '0'" - }, - { - 10114, - "Pmic_fsmEnableI2cTrigger: Trigger i2C5 with trigger value as '1' and '0'" - }, - { - 10118, - "Pmic_fsmEnableI2cTrigger: Trigger i2C6 with trigger value as '1' and '0' " - }, - { - 10120, - "Pmic_fsmGetI2cTriggerVal: Get FSM i2C0/i2C1/i2C2/i2c3 trigger value" - }, - { - 10119, - "Pmic_fsmEnableI2cTrigger: Trigger i2C7 with trigger value as '1' and '0'" - }, - { - 10115, - "Pmic_fsmEnableI2cTrigger : Parameter validation for handle." - }, - { - 10116, - "Pmic_fsmEnableI2cTrigger : Parameter Range validation for i2cTriggerVal param for i2C0/i2C1/i2C2/i2C3/i2C4/i2C5/i2C6/i2C7 Trigger type" - }, - { - 10117, - "Pmic_fsmEnableI2cTrigger : Parameter Range validation for i2c Trigger type" - }, - { - 10122, - "Pmic_fsmRequestDdrGpioRetentionMode : Parameter validation for handle." - }, - { - 10123, - "Pmic_fsmRequestDdrGpioRetentionMode : Parameter Range validation for retentionMode" - }, - { - 10124, - "Pmic_fsmRequestDdrGpioRetentionMode : Parameter Range validation for i2cTriggerVal" - }, - { - 10125, - "Pmic_fsmSetConfiguration/Pmic_fsmGetConfiguration : Disable Fast BIST" - }, - { - 10740, - "Pmic_fsmRuntimeBistRequest : Negative test for Runtime BIST on PG1.0 Silicon Revision" - }, - { - 10741, - "Pmic_fsmDeviceOffRequestCfg : configure eventType as PMIC_FSM_ENABLE_PIN_TYPE" - }, - { - 10742, - "Pmic_fsmEnableI2cTrigger: Parameter validation for i2c3 Trigger Value" - }, - { - 10743, - "Pmic_fsmEnableI2cTrigger: Negative test to trigger i2c2 Trigger type for FSM I2C trigger on PG1.0 Silicon Revision" - }, - { - 10744, - "Pmic_fsmEnableI2cTrigger: Parameter validation for i2c0 Trigger Value" - }, - { - 10745, - "Pmic_fsmGetI2cTriggerVal: Parameter validation for handle" - }, - { - 10746, - "Pmic_fsmGetI2cTriggerVal: Parameter validation for pI2cTriggerVal" - }, - { - 10747, - "Pmic_fsmGetI2cTriggerVal: Parameter validation for i2cTriggerType" - }, - { - 10748, - "Pmic_fsmRequestDdrGpioRetentionMode : Configure DDR Retention mode with trigger value as '1'" - }, - { - 10749, - "Pmic_fsmRecoverSocPwrErr: Negative test to configure nsleepVal as Low for PG1.0 Silicon Revision" - }, - { - 10750, - "Pmic_fsmTests : Fault Injection and Coverage Gaps" - }, -}; - -/*! - * \brief Pmic_fsmSetNsleepSignalMask : Test Mask Nsleep1. - */ -static void test_pmic_fsmSetNsleepSignalMask_mask_nsleep1(void) -{ - int32_t status = PMIC_ST_SUCCESS; - bool nsleepType = 0U; - bool maskEnable = 0U; - bool nsleepMaskStat = 0U; - - nsleepType = PMIC_NSLEEP1_SIGNAL; - maskEnable = PMIC_NSLEEPX_MASK; - - test_pmic_print_unity_testcase_info(7693, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmSetNsleepSignalMask(pPmicCoreHandle, nsleepType, maskEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmGetNsleepSignalMaskStat(pPmicCoreHandle, - nsleepType, - &nsleepMaskStat); - TEST_ASSERT_EQUAL(PMIC_NSLEEPX_MASK, nsleepMaskStat); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - pmic_testResultUpdate_pass(7693, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - -} - -/*! - * \brief Pmic_fsmSetNsleepSignalMask : Test Unmask Nsleep1. - */ -static void test_pmic_fsmSetNsleepSignalMask_unmask_nsleep1(void) -{ - int32_t status = PMIC_ST_SUCCESS; - bool nsleepType = 0U; - bool maskEnable = 0U; - bool nsleepMaskStat = 0U; - - nsleepType = PMIC_NSLEEP1_SIGNAL; - maskEnable = PMIC_NSLEEPX_UNMASK; - - test_pmic_print_unity_testcase_info(7694, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmSetNsleepSignalMask(pPmicCoreHandle, nsleepType, maskEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmGetNsleepSignalMaskStat(pPmicCoreHandle, - nsleepType, - &nsleepMaskStat); - TEST_ASSERT_EQUAL(PMIC_NSLEEPX_UNMASK, nsleepMaskStat); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - pmic_testResultUpdate_pass(7694, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - -} - -/*! - * \brief Pmic_fsmSetNsleepSignalMask : Test Mask Nsleep2. - */ -static void test_pmic_fsmSetNsleepSignalMask_mask_nsleep2(void) -{ - int32_t status = PMIC_ST_SUCCESS; - bool nsleepType = 0U; - bool maskEnable = 0U; - bool nsleepMaskStat = 0U; - - nsleepType = PMIC_NSLEEP2_SIGNAL; - maskEnable = PMIC_NSLEEPX_MASK; - - test_pmic_print_unity_testcase_info(7695, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmSetNsleepSignalMask(pPmicCoreHandle, nsleepType, maskEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmGetNsleepSignalMaskStat(pPmicCoreHandle, - nsleepType, - &nsleepMaskStat); - TEST_ASSERT_EQUAL(PMIC_NSLEEPX_MASK, nsleepMaskStat); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - pmic_testResultUpdate_pass(7695, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - -} - -/*! - * \brief Pmic_fsmSetNsleepSignalMask : Test Unmask Nsleep2. - */ -static void test_pmic_fsmSetNsleepSignalMask_unmask_nsleep2(void) -{ - int32_t status = PMIC_ST_SUCCESS; - bool nsleepType = 0U; - bool maskEnable = 0U; - bool nsleepMaskStat = 0U; - - nsleepType = PMIC_NSLEEP2_SIGNAL; - maskEnable = PMIC_NSLEEPX_UNMASK; - - test_pmic_print_unity_testcase_info(7696, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmSetNsleepSignalMask(pPmicCoreHandle, nsleepType, maskEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmGetNsleepSignalMaskStat(pPmicCoreHandle, - nsleepType, - &nsleepMaskStat); - TEST_ASSERT_EQUAL(PMIC_NSLEEPX_UNMASK, nsleepMaskStat); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - pmic_testResultUpdate_pass(7696, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - -} - -/*! - * \brief Pmic_fsmSetMissionState : Test Set State to Active. - */ -static void test_pmic_fsmSetMissionState_active(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t pmicState = 0U; - - pmicState = PMIC_FSM_ACTIVE_STATE; - - test_pmic_print_unity_testcase_info(7698, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmSetNsleepSignalMask(pPmicCoreHandle, - PMIC_NSLEEP1_SIGNAL, - PMIC_NSLEEPX_UNMASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmSetNsleepSignalMask(pPmicCoreHandle, - PMIC_NSLEEP2_SIGNAL, - PMIC_NSLEEPX_UNMASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - -#if defined(SOC_J721E) - pmic_log("\r\n Probe TP134 and it should change from High"); - pmic_log("\r\n Probe TP133 and it should continue to be in HIGH"); -#endif -#if defined(SOC_J7200) - pmic_log("\r\n Probe TP46 and it should change from High"); - pmic_log("\r\n Probe TP29 and it should continue to be in HIGH"); -#endif - status = Pmic_fsmSetMissionState(pPmicCoreHandle, pmicState); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - pmic_testResultUpdate_pass(7698, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmSetMissionState : Test Set State to S2R/Deep Sleep. - */ -static void test_pmic_fsmSetMissionState_s2r(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t pmicState = 0U; - - pmicState = PMIC_FSM_S2R_STATE; - - test_pmic_print_unity_testcase_info(7699, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmSetNsleepSignalMask(pPmicCoreHandle, - PMIC_NSLEEP1_SIGNAL, - PMIC_NSLEEPX_UNMASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmSetNsleepSignalMask(pPmicCoreHandle, - PMIC_NSLEEP2_SIGNAL, - PMIC_NSLEEPX_UNMASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - -#if defined(SOC_J721E) - pmic_log("\r\n Probe TP134 and TP133 and it should change from High to Low."); -#endif -#if defined(SOC_J7200) - pmic_log("\r\n Probe TP46 and TP29 and it should change from High to Low."); -#endif - status = Pmic_fsmSetMissionState(pPmicCoreHandle, pmicState); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); -} - -/*! - * \brief Pmic_fsmSetMissionState : Manual Test Set State to LP-Standby. - */ -static void test_pmic_fsmSetMissionState_lpstandby(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t pmicState = 0U; - - pmicState = PMIC_FSM_LP_STANBY_STATE; - - test_pmic_print_unity_testcase_info(7700, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmSetNsleepSignalMask(pPmicCoreHandle, - PMIC_NSLEEP1_SIGNAL, - PMIC_NSLEEPX_MASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmSetNsleepSignalMask(pPmicCoreHandle, - PMIC_NSLEEP2_SIGNAL, - PMIC_NSLEEPX_MASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - -#if defined(SOC_J721E) - pmic_log("\r\n Probe TP134 and TP133 and it should change from High to Low."); -#endif -#if defined(SOC_J7200) - pmic_log("\r\n Probe TP46 and TP29 and it should change from High to Low."); -#endif - - status = Pmic_fsmSetMissionState(pPmicCoreHandle, pmicState); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); -} - -/*! - * \brief Pmic_fsmSetMissionState : Manual Test Set State to Standby. - */ -static void test_pmic_fsmSetMissionState_standby(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t pmicState = 0U; - - pmicState = PMIC_FSM_STANBY_STATE; - - test_pmic_print_unity_testcase_info(7701, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmSetNsleepSignalMask(pPmicCoreHandle, - PMIC_NSLEEP1_SIGNAL, - PMIC_NSLEEPX_MASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmSetNsleepSignalMask(pPmicCoreHandle, - PMIC_NSLEEP2_SIGNAL, - PMIC_NSLEEPX_MASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - Osal_delay(5U); - -#if defined(SOC_J721E) - pmic_log("\r\n Probe TP134 and TP133 and it should change from High to Low."); -#endif -#if defined(SOC_J7200) - pmic_log("\r\n Probe TP46 and TP29 and it should change from High to Low."); -#endif - status = Pmic_fsmSetMissionState(pPmicCoreHandle, pmicState); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); -} - -/*! - * \brief Pmic_fsmSetMissionState : Parameter range validation for handle. - */ -static void test_pmic_fsmSetMissionStatePrmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t pmicState = 0U; - - pmicState = PMIC_FSM_S2R_STATE; - - test_pmic_print_unity_testcase_info(7702, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmSetMissionState(NULL, pmicState); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - pmic_testResultUpdate_pass(7702, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - -} - -/*! - * \brief Pmic_fsmSetMissionState : Parameter range validation for state. - */ -static void test_pmic_fsmSetMissionStatePrmValTest_state(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t pmicState = 0U; - - pmicState = PMIC_FSM_STATE_MAX + 1; - - test_pmic_print_unity_testcase_info(7703, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmSetMissionState(pPmicCoreHandle, pmicState); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, status); - - pmic_testResultUpdate_pass(7703, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - -} - -/*! - * \brief Pmic_fsmSetNsleepSignalMask : Parameter range validation for handle. - */ -static void test_pmic_fsmSetNsleepSignalMaskStatePrmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - bool nsleepType = 0U; - bool maskEnable = 0U; - - nsleepType = PMIC_NSLEEP1_SIGNAL; - maskEnable = PMIC_NSLEEPX_MASK; - - test_pmic_print_unity_testcase_info(7704, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmSetNsleepSignalMask(NULL, nsleepType, maskEnable); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - pmic_testResultUpdate_pass(7704, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - -} - -/*! - * \brief Pmic_fsmGetNsleepSignalMaskStat : Parameter validation for handle. - */ -static void test_pmic_fsmGetNsleepSignalMaskStatePrmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - bool nsleepType = 0U; - bool maskEnable = 0U; - - nsleepType = PMIC_NSLEEP1_SIGNAL; - - test_pmic_print_unity_testcase_info(10078, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmGetNsleepSignalMaskStat(NULL, nsleepType, &maskEnable); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - pmic_testResultUpdate_pass(10078, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - -} - -/*! - * \brief Pmic_fsmGetNsleepSignalMaskStat : Parameter validation for nsleepStat. - */ -static void test_pmic_fsmGetNsleepSignalMaskStatePrmValTest_nsleepStat(void) -{ - int32_t status = PMIC_ST_SUCCESS; - bool nsleepType = 0U; - - nsleepType = PMIC_NSLEEP1_SIGNAL; - - test_pmic_print_unity_testcase_info(10079, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmGetNsleepSignalMaskStat(pPmicCoreHandle, nsleepType, NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, status); - - pmic_testResultUpdate_pass(10079, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - -} - -/*! - * \brief Parameter validation for handle - */ -static void test_pmic_fsmDevOffReqCfg_PrmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - bool standByState = PMIC_FSM_STANBY_STATE; - - test_pmic_print_unity_testcase_info(7360, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmDeviceOffRequestCfg(NULL, - PMIC_FSM_I2C_TRIGGER0_TYPE, - standByState); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - pmic_testResultUpdate_pass(7360, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmDeviceOffRequestCfg : Parameter validation for eventType - */ -static void test_pmic_fsmDevOffReqCfg_PrmValTest_eventType(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t fsmState = 0; - uint8_t eventType; - - eventType = PMIC_FSM_NPWRON_PIN_TYPE + 0x1; - test_pmic_print_unity_testcase_info(7361, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmDeviceOffRequestCfg(pPmicCoreHandle, - eventType, - fsmState); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, status); - - pmic_testResultUpdate_pass(7361, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmDeviceOffRequestCfg : Parameter validation for fsmState - */ -static void test_pmic_fsmDevOffReqCfg_PrmValTest_fsmState(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t fsmState = 0U; - uint8_t eventType = 1U; - - fsmState = PMIC_FSM_LP_STANBY_STATE + 1; - test_pmic_print_unity_testcase_info(7705, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmDeviceOffRequestCfg(pPmicCoreHandle, - eventType, - fsmState); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, status); - - pmic_testResultUpdate_pass(7705, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmRuntimeBistRequest : Parameter validation for handle. - */ -static void test_pmic_fsmRuntimeBistRequestPrmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(7706, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - if(PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - pmic_testResultUpdate_ignore(7706, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - } - - status = Pmic_fsmRequestRuntimeBist(NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - pmic_testResultUpdate_pass(7706, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmDeviceOnRequest : Parameter validation for handle. - */ -static void test_pmic_fsmDeviceOnRequestPrmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(7364, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmDeviceOnRequest(NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - pmic_testResultUpdate_pass(7364, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmSetConfiguration/Pmic_fsmGetConfiguration : Enable Fast BIST - */ -static void test_pmic_fsmSetConfiguration_fastBistEnable(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - Pmic_FsmCfg_t fsmCfg_rd = {PMIC_FSM_CFG_FAST_BIST_EN_VALID_SHIFT,}; - Pmic_FsmCfg_t fsmCfg = - { - PMIC_FSM_CFG_FAST_BIST_EN_VALID_SHIFT, - PMIC_FSM_FAST_BIST_ENABLE, - PMIC_FSM_SELECT_STANDBY_STATE, - PMIC_FSM_ILIM_INT_FSMCTRL_DISABLE, - PMIC_FSM_STARTUPDEST_ACTIVE - }; - - test_pmic_print_unity_testcase_info(10080, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmSetConfiguration(pPmicCoreHandle, fsmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmGetConfiguration(pPmicCoreHandle, &fsmCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - TEST_ASSERT_EQUAL(fsmCfg.fastBistEn, fsmCfg_rd.fastBistEn); - - pmic_testResultUpdate_pass(10080, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmSetConfiguration/Pmic_fsmGetConfiguration : Select LpStandby State - */ -static void test_pmic_fsmSetConfiguration_selectLpStandbyState(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - Pmic_FsmCfg_t fsmCfg_rd = {PMIC_FSM_CFG_LP_STANDBYSEL_VALID_SHIFT,}; - Pmic_FsmCfg_t fsmCfg = - { - PMIC_FSM_CFG_LP_STANDBYSEL_VALID_SHIFT, - PMIC_FSM_FAST_BIST_DISABLE, - PMIC_FSM_SELECT_LPSTANDBY_STATE, - PMIC_FSM_ILIM_INT_FSMCTRL_DISABLE, - PMIC_FSM_STARTUPDEST_ACTIVE - }; - - test_pmic_print_unity_testcase_info(10081, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmSetConfiguration(pPmicCoreHandle, fsmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmGetConfiguration(pPmicCoreHandle, &fsmCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - TEST_ASSERT_EQUAL(fsmCfg.lpStandbySel, fsmCfg_rd.lpStandbySel); - - pmic_testResultUpdate_pass(10081, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmSetConfiguration/Pmic_fsmGetConfiguration : Select Standby State - */ -static void test_pmic_fsmSetConfiguration_selectStandbyState(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - Pmic_FsmCfg_t fsmCfg_rd = {PMIC_FSM_CFG_LP_STANDBYSEL_VALID_SHIFT,}; - Pmic_FsmCfg_t fsmCfg = - { - PMIC_FSM_CFG_LP_STANDBYSEL_VALID_SHIFT, - PMIC_FSM_FAST_BIST_DISABLE, - PMIC_FSM_SELECT_STANDBY_STATE, - PMIC_FSM_ILIM_INT_FSMCTRL_DISABLE, - PMIC_FSM_STARTUPDEST_ACTIVE - }; - - test_pmic_print_unity_testcase_info(10082, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmSetConfiguration(pPmicCoreHandle, fsmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmGetConfiguration(pPmicCoreHandle, &fsmCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - TEST_ASSERT_EQUAL(fsmCfg.lpStandbySel, fsmCfg_rd.lpStandbySel); - - pmic_testResultUpdate_pass(10082, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmSetConfiguration/Pmic_fsmGetConfiguration : Enable Buck/LDO regulators ILIM - */ -static void test_pmic_fsmSetConfiguration_ilimIntfsmCtrlEnable(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - Pmic_FsmCfg_t fsmCfg_rd = {PMIC_FSM_CFG_ILIM_INT_FSMCTRL_EN_VALID_SHIFT,}; - Pmic_FsmCfg_t fsmCfg = - { - PMIC_FSM_CFG_ILIM_INT_FSMCTRL_EN_VALID_SHIFT, - PMIC_FSM_FAST_BIST_ENABLE, - PMIC_FSM_SELECT_STANDBY_STATE, - PMIC_FSM_ILIM_INT_FSMCTRL_ENABLE, - PMIC_FSM_STARTUPDEST_ACTIVE - }; - - test_pmic_print_unity_testcase_info(10083, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmSetConfiguration(pPmicCoreHandle, fsmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmGetConfiguration(pPmicCoreHandle, &fsmCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - TEST_ASSERT_EQUAL(fsmCfg.ilimIntfsmCtrlEn, fsmCfg_rd.ilimIntfsmCtrlEn); - - pmic_testResultUpdate_pass(10083, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmSetConfiguration/Pmic_fsmGetConfiguration : Disable Buck/LDO regulators ILIM - */ -static void test_pmic_fsmSetConfiguration_ilimIntfsmCtrlDisable(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - Pmic_FsmCfg_t fsmCfg_rd = {PMIC_FSM_CFG_ILIM_INT_FSMCTRL_EN_VALID_SHIFT,}; - Pmic_FsmCfg_t fsmCfg = - { - PMIC_FSM_CFG_ILIM_INT_FSMCTRL_EN_VALID_SHIFT, - PMIC_FSM_FAST_BIST_DISABLE, - PMIC_FSM_SELECT_STANDBY_STATE, - PMIC_FSM_ILIM_INT_FSMCTRL_DISABLE, - PMIC_FSM_STARTUPDEST_ACTIVE - }; - - test_pmic_print_unity_testcase_info(10084, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmSetConfiguration(pPmicCoreHandle, fsmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmGetConfiguration(pPmicCoreHandle, &fsmCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - TEST_ASSERT_EQUAL(fsmCfg.ilimIntfsmCtrlEn, fsmCfg_rd.ilimIntfsmCtrlEn); - - pmic_testResultUpdate_pass(10084, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmSetConfiguration/Pmic_fsmGetConfiguration : Select FSM Startup Destination as ACTIVE - */ -static void test_pmic_fsmSetConfiguration_selectfsmStarupDestActiveState(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - Pmic_FsmCfg_t fsmCfg_rd = {PMIC_FSM_CFG_FSM_STARTUP_DEST_SEL_VALID_SHIFT,}; - Pmic_FsmCfg_t fsmCfg = - { - PMIC_FSM_CFG_FSM_STARTUP_DEST_SEL_VALID_SHIFT, - PMIC_FSM_FAST_BIST_DISABLE, - PMIC_FSM_SELECT_STANDBY_STATE, - PMIC_FSM_ILIM_INT_FSMCTRL_DISABLE, - PMIC_FSM_STARTUPDEST_ACTIVE - }; - - test_pmic_print_unity_testcase_info(10085, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmSetConfiguration(pPmicCoreHandle, fsmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmGetConfiguration(pPmicCoreHandle, &fsmCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - TEST_ASSERT_EQUAL(fsmCfg.fsmStarupDestSel, fsmCfg_rd.fsmStarupDestSel); - - pmic_testResultUpdate_pass(10085, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmSetConfiguration/Pmic_fsmGetConfiguration : Select FSM Startup Destination as MCUONLY - */ -static void test_pmic_fsmSetConfiguration_selectfsmStarupDestMcuonlyState(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - Pmic_FsmCfg_t fsmCfg_rd = {PMIC_FSM_CFG_FSM_STARTUP_DEST_SEL_VALID_SHIFT,}; - Pmic_FsmCfg_t fsmCfg_def = {PMIC_FSM_CFG_FSM_STARTUP_DEST_SEL_VALID_SHIFT,}; - Pmic_FsmCfg_t fsmCfg = - { - PMIC_FSM_CFG_FSM_STARTUP_DEST_SEL_VALID_SHIFT, - PMIC_FSM_FAST_BIST_DISABLE, - PMIC_FSM_SELECT_STANDBY_STATE, - PMIC_FSM_ILIM_INT_FSMCTRL_DISABLE, - PMIC_FSM_STARTUPDEST_MCUONLY - }; - - test_pmic_print_unity_testcase_info(10086, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmGetConfiguration(pPmicCoreHandle, &fsmCfg_def); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmSetConfiguration(pPmicCoreHandle, fsmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmGetConfiguration(pPmicCoreHandle, &fsmCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - TEST_ASSERT_EQUAL(fsmCfg.fsmStarupDestSel, fsmCfg_rd.fsmStarupDestSel); - - status = Pmic_fsmSetConfiguration(pPmicCoreHandle, fsmCfg_def); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmGetConfiguration(pPmicCoreHandle, &fsmCfg_rd); - - TEST_ASSERT_EQUAL(fsmCfg_def.fsmStarupDestSel, fsmCfg_rd.fsmStarupDestSel); - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - pmic_testResultUpdate_pass(10086, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmSetConfiguration/Pmic_fsmGetConfiguration : Select FSM Startup Destination as STANDBY/LPSTANDBY - */ -static void test_pmic_fsmSetConfiguration_selectfsmStarupDestStandbyOrLpStandbyState(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - Pmic_FsmCfg_t fsmCfg_rd = {PMIC_FSM_CFG_FSM_STARTUP_DEST_SEL_VALID_SHIFT,}; - Pmic_FsmCfg_t fsmCfg_def = {PMIC_FSM_CFG_FSM_STARTUP_DEST_SEL_VALID_SHIFT,}; - Pmic_FsmCfg_t fsmCfg = - { - PMIC_FSM_CFG_FSM_STARTUP_DEST_SEL_VALID_SHIFT, - PMIC_FSM_FAST_BIST_DISABLE, - PMIC_FSM_SELECT_STANDBY_STATE, - PMIC_FSM_ILIM_INT_FSMCTRL_DISABLE, - PMIC_FSM_STARTUPDEST_STANDBY_LPSTANDBY - }; - - test_pmic_print_unity_testcase_info(10087, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmGetConfiguration(pPmicCoreHandle, &fsmCfg_def); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmSetConfiguration(pPmicCoreHandle, fsmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmGetConfiguration(pPmicCoreHandle, &fsmCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - TEST_ASSERT_EQUAL(fsmCfg.fsmStarupDestSel, fsmCfg_rd.fsmStarupDestSel); - - status = Pmic_fsmSetConfiguration(pPmicCoreHandle, fsmCfg_def); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmGetConfiguration(pPmicCoreHandle, &fsmCfg_rd); - - TEST_ASSERT_EQUAL(fsmCfg_def.fsmStarupDestSel, fsmCfg_rd.fsmStarupDestSel); - - pmic_testResultUpdate_pass(10087, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmSetConfiguration : Parameter validation for handle - */ -static void test_pmic_fsmSetConfiguration_prmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - Pmic_FsmCfg_t fsmCfg = - { - PMIC_FSM_CFG_FAST_BIST_EN_VALID_SHIFT, - PMIC_FSM_FAST_BIST_DISABLE, - PMIC_FSM_SELECT_STANDBY_STATE, - PMIC_FSM_ILIM_INT_FSMCTRL_DISABLE, - PMIC_FSM_STARTUPDEST_ACTIVE - }; - - test_pmic_print_unity_testcase_info(10088, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmSetConfiguration(NULL, fsmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - pmic_testResultUpdate_pass(10088, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmSetConfiguration : Parameter Range validation for fsmStarupDestSel Param - */ -static void test_pmic_fsmSetConfiguration_prmValTest_fsmStarupDestSel(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - Pmic_FsmCfg_t fsmCfg = - { - PMIC_FSM_CFG_FSM_STARTUP_DEST_SEL_VALID_SHIFT, - PMIC_FSM_FAST_BIST_DISABLE, - PMIC_FSM_SELECT_STANDBY_STATE, - PMIC_FSM_ILIM_INT_FSMCTRL_DISABLE, - 4U - }; - - test_pmic_print_unity_testcase_info(10089, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmSetConfiguration(pPmicCoreHandle, fsmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, status); - - pmic_testResultUpdate_pass(10089, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmGetConfiguration : Parameter validation for handle - */ -static void test_pmic_fsmGetConfiguration_prmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - Pmic_FsmCfg_t fsmCfg_rd; - - test_pmic_print_unity_testcase_info(10090, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmGetConfiguration(NULL, &fsmCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - - pmic_testResultUpdate_pass(10090, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmGetConfiguration : Parameter validation for fsmCfg - */ -static void test_pmic_fsmGetConfiguration_prmValTest_fsmCfg(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(10091, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmGetConfiguration(pPmicCoreHandle, NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, status); - - pmic_testResultUpdate_pass(10091, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmSetPfsmDelay/Pmic_fsmGetPfsmDelay : Configure PFSM Delay - */ -static void test_pmic_fsmSetPfsmDelay(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t delayType, delayVal[4], tstDelayVal[4], tstDelayVal_rd; - - test_pmic_print_unity_testcase_info(10092, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - for(delayType = PMIC_PFSM_DELAY1; delayType <= PMIC_PFSM_DELAY4; delayType++) - { - status = Pmic_fsmGetPfsmDelay(pPmicCoreHandle, - delayType, - &delayVal[delayType]); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - tstDelayVal[delayType] = delayVal[delayType] + 10 + delayType; - - } - - for(delayType = PMIC_PFSM_DELAY1; delayType <= PMIC_PFSM_DELAY4; delayType++) - { - status = Pmic_fsmSetPfsmDelay(pPmicCoreHandle, - delayType, - tstDelayVal[delayType]); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmGetPfsmDelay(pPmicCoreHandle, - delayType, - &tstDelayVal_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - TEST_ASSERT_EQUAL(tstDelayVal_rd, tstDelayVal[delayType]); - } - - for(delayType = PMIC_PFSM_DELAY1; delayType <= PMIC_PFSM_DELAY4; delayType++) - { - status = Pmic_fsmSetPfsmDelay(pPmicCoreHandle, - delayType, - delayVal[delayType]); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - } - - pmic_testResultUpdate_pass(10092, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmSetPfsmDelay : Parameter validation for handle - */ -static void test_pmic_fsmSetPfsmDelay_prmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(10093, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmSetPfsmDelay(NULL, PMIC_PFSM_DELAY1, 10U); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - pmic_testResultUpdate_pass(10093, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmSetPfsmDelay : Parameter Range validation for pFsmDelayType Param - */ -static void test_pmic_fsmSetPfsmDelay_prmValTest_fsmStarupDestSel(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(10094, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmSetPfsmDelay(pPmicCoreHandle, 4U, 10U); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, status); - - pmic_testResultUpdate_pass(10094, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmGetPfsmDelay : Parameter validation for handle - */ -static void test_pmic_fsmGetPfsmDelay_prmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t delayVal; - - test_pmic_print_unity_testcase_info(10095, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmGetPfsmDelay(NULL, PMIC_PFSM_DELAY1, &delayVal); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - pmic_testResultUpdate_pass(10095, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmGetPfsmDelay : Parameter Range validation for pFsmDelayType Param - */ -static void test_pmic_fsmGetPfsmDelay_prmValTest_fsmStarupDestSel(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t delayVal; - - test_pmic_print_unity_testcase_info(10096, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmGetPfsmDelay(pPmicCoreHandle, 4U, &delayVal); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, status); - - pmic_testResultUpdate_pass(10096, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmGetPfsmDelay : Parameter validation for PfsmDelay Param - */ -static void test_pmic_fsmGetPfsmDelay_prmValTest_PfsmDelay(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(10097, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmGetPfsmDelay(pPmicCoreHandle, PMIC_PFSM_DELAY4, NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, status); - - pmic_testResultUpdate_pass(10097, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmSetNsleepSignalVal/Pmic_fsmGetNsleepSignalVal : Configure NSleep1 Signal as Low - */ -static void test_pmic_fsmSetNsleepSignalVal_nsleep1Low(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t nsleepVal; - - test_pmic_print_unity_testcase_info(10098, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - -#if defined(SOC_J721E) - pmic_log("\r\n Probe TP134 and it should change from High to Low."); - pmic_log("\r\n Probe TP133 and it should continue to be in HIGH"); -#endif -#if defined(SOC_J7200) - pmic_log("\r\n Probe TP46 and it should change from High to Low."); - pmic_log("\r\n Probe TP29 and it should continue to be in HIGH"); -#endif - - status = Pmic_fsmSetNsleepSignalVal(pPmicCoreHandle, - PMIC_NSLEEP1_SIGNAL, - PMIC_NSLEEP_LOW); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmGetNsleepSignalVal(pPmicCoreHandle, - PMIC_NSLEEP1_SIGNAL, - &nsleepVal); - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - TEST_ASSERT_EQUAL(nsleepVal, PMIC_NSLEEP_LOW); - - pmic_testResultUpdate_pass(10098, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmSetNsleepSignalVal/Pmic_fsmGetNsleepSignalVal : Configure NSleep1 Signal as High - */ -static void test_pmic_fsmSetNsleepSignalVal_nsleep1High(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t nsleepVal; - - test_pmic_print_unity_testcase_info(10099, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmSetNsleepSignalVal(pPmicCoreHandle, - PMIC_NSLEEP1_SIGNAL, - PMIC_NSLEEP_HIGH); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmGetNsleepSignalVal(pPmicCoreHandle, - PMIC_NSLEEP1_SIGNAL, - &nsleepVal); - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - TEST_ASSERT_EQUAL(nsleepVal, PMIC_NSLEEP_HIGH); - - pmic_testResultUpdate_pass(10099, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmSetNsleepSignalVal/Pmic_fsmGetNsleepSignalVal : Configure NSleep2 Signal as Low - */ -static void test_pmic_fsmSetNsleepSignalVal_nsleep2Low(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t nsleepVal; - - test_pmic_print_unity_testcase_info(10101, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - -#if defined(SOC_J721E) - pmic_log("\r\n Probe TP134 and TP133 and it should change from High to Low."); -#endif -#if defined(SOC_J7200) - pmic_log("\r\n Probe TP46 and TP29 and it should change from High to Low."); -#endif - - status = Pmic_fsmSetNsleepSignalVal(pPmicCoreHandle, - PMIC_NSLEEP2_SIGNAL, - PMIC_NSLEEP_LOW); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmGetNsleepSignalVal(pPmicCoreHandle, - PMIC_NSLEEP2_SIGNAL, - &nsleepVal); - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - TEST_ASSERT_EQUAL(nsleepVal, PMIC_NSLEEP_LOW); - - pmic_testResultUpdate_pass(10101, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmSetNsleepSignalVal/Pmic_fsmGetNsleepSignalVal : Configure NSleep2 Signal as High - */ -static void test_pmic_fsmSetNsleepSignalVal_nsleep2High(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t nsleepVal; - - test_pmic_print_unity_testcase_info(10102, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmSetNsleepSignalVal(pPmicCoreHandle, - PMIC_NSLEEP2_SIGNAL, - PMIC_NSLEEP_HIGH); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmGetNsleepSignalVal(pPmicCoreHandle, - PMIC_NSLEEP2_SIGNAL, - &nsleepVal); - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - TEST_ASSERT_EQUAL(nsleepVal, PMIC_NSLEEP_HIGH); - - pmic_testResultUpdate_pass(10102, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmSetNsleepSignalVal : Parameter validation for handle - */ -static void test_pmic_fsmSetNsleepSignalVal_prmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(10103, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmSetNsleepSignalVal(NULL, - PMIC_NSLEEP2_SIGNAL, - PMIC_NSLEEP_HIGH); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - pmic_testResultUpdate_pass(10103, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmSetNsleepSignalVal : Parameter Range validation for nsleepVal Param - */ -static void test_pmic_fsmSetNsleepSignalVal_prmValTest_nsleepVal(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(10104, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmSetNsleepSignalVal(pPmicCoreHandle, - PMIC_NSLEEP2_SIGNAL, - 2U); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, status); - - pmic_testResultUpdate_pass(10104, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmGetNsleepSignalVal : Parameter validation for handle - */ -static void test_pmic_fsmGetNsleepSignalVal_prmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t nsleepVal; - - test_pmic_print_unity_testcase_info(10105, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmGetNsleepSignalVal(NULL, - PMIC_NSLEEP2_SIGNAL, - &nsleepVal); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - pmic_testResultUpdate_pass(10105, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmGetNsleepSignalVal : Parameter validation for nsleepVal Param - */ -static void test_pmic_fsmGetNsleepSignalVal_prmValTest_nsleepVal(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(10106, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmGetNsleepSignalVal(pPmicCoreHandle, - PMIC_NSLEEP2_SIGNAL, - NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, status); - - pmic_testResultUpdate_pass(10106, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -#if 0 -/*! - * \brief Pmic_fsmRecoverSocPwrErr: Configure NSleep1 Signal as Low and - * NSleep2 Signal to High - */ -static void test_pmic_fsmRecoverSocPwrErr_nsleepLow(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(10109, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - if(PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - pmic_testResultUpdate_ignore(10109, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - } - - status = Pmic_fsmRecoverSocPwrErr(pPmicCoreHandle, - PMIC_NSLEEP_LOW); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - pmic_testResultUpdate_pass(10109, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmRecoverSocPwrErr: Configure NSleep1 Signal as High and - * NSleep2 Signal to High - */ -static void test_pmic_fsmRecoverSocPwrErr_nsleepHigh(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(10110, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - if(PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - pmic_testResultUpdate_ignore(10110, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - } - - status = Pmic_fsmRecoverSocPwrErr(pPmicCoreHandle, - PMIC_NSLEEP_HIGH); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - pmic_testResultUpdate_pass(10110, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} -#endif - -/*! - * \brief Pmic_fsmRecoverSocPwrErr: Parameter validation for handle - */ -static void test_pmic_fsmRecoverSocPwrErr_prmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(10111, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - if(PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - pmic_testResultUpdate_ignore(10111, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - } - - status = Pmic_fsmRecoverSocPwrErr(NULL, - PMIC_NSLEEP_LOW); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - pmic_testResultUpdate_pass(10111, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmRecoverSocPwrErr: Parameter Range validation for nsleepVal Param - */ -static void test_pmic_fsmRecoverSocPwrErr_prmValTest_nsleepVal(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(10112, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - if(PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - pmic_testResultUpdate_ignore(10112, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - } - - status = Pmic_fsmRecoverSocPwrErr(pPmicCoreHandle, 2U); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, status); - - pmic_testResultUpdate_pass(10112, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmEnableI2cTrigger: Trigger i2C4 with trigger value as '1' and '0' - */ -static void test_pmic_fsmEnableI2cTrigger_i2C4(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t i2cTriggerVal; - - test_pmic_print_unity_testcase_info(10113, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmEnableI2cTrigger(pPmicCoreHandle, - PMIC_FSM_I2C_TRIGGER4, - PMIC_FSM_I2C_TRIGGER_VAL_1); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmGetI2cTriggerVal(pPmicCoreHandle, - PMIC_FSM_I2C_TRIGGER4, - &i2cTriggerVal); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - TEST_ASSERT_EQUAL(i2cTriggerVal, PMIC_FSM_I2C_TRIGGER_VAL_1); - - status = Pmic_fsmEnableI2cTrigger(pPmicCoreHandle, - PMIC_FSM_I2C_TRIGGER4, - PMIC_FSM_I2C_TRIGGER_VAL_0); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmGetI2cTriggerVal(pPmicCoreHandle, - PMIC_FSM_I2C_TRIGGER4, - &i2cTriggerVal); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - TEST_ASSERT_EQUAL(i2cTriggerVal, PMIC_FSM_I2C_TRIGGER_VAL_0); - - pmic_testResultUpdate_pass(10113, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmEnableI2cTrigger: Trigger i2C5 with trigger value as '1' and '0' - */ -static void test_pmic_fsmEnableI2cTrigger_i2C5(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t i2cTriggerVal; - - test_pmic_print_unity_testcase_info(10114, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmEnableI2cTrigger(pPmicCoreHandle, - PMIC_FSM_I2C_TRIGGER5, - PMIC_FSM_I2C_TRIGGER_VAL_1); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmGetI2cTriggerVal(pPmicCoreHandle, - PMIC_FSM_I2C_TRIGGER5, - &i2cTriggerVal); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - TEST_ASSERT_EQUAL(i2cTriggerVal, PMIC_FSM_I2C_TRIGGER_VAL_1); - - status = Pmic_fsmEnableI2cTrigger(pPmicCoreHandle, - PMIC_FSM_I2C_TRIGGER5, - PMIC_FSM_I2C_TRIGGER_VAL_0); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmGetI2cTriggerVal(pPmicCoreHandle, - PMIC_FSM_I2C_TRIGGER5, - &i2cTriggerVal); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - TEST_ASSERT_EQUAL(i2cTriggerVal, PMIC_FSM_I2C_TRIGGER_VAL_0); - - pmic_testResultUpdate_pass(10114, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmEnableI2cTrigger: Trigger i2C6 with trigger value as '1' and '0' - */ -static void test_pmic_fsmEnableI2cTrigger_i2C6(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t i2cTriggerVal; - - test_pmic_print_unity_testcase_info(10118, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmEnableI2cTrigger(pPmicCoreHandle, - PMIC_FSM_I2C_TRIGGER6, - PMIC_FSM_I2C_TRIGGER_VAL_1); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmGetI2cTriggerVal(pPmicCoreHandle, - PMIC_FSM_I2C_TRIGGER6, - &i2cTriggerVal); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - TEST_ASSERT_EQUAL(i2cTriggerVal, PMIC_FSM_I2C_TRIGGER_VAL_1); - - status = Pmic_fsmEnableI2cTrigger(pPmicCoreHandle, - PMIC_FSM_I2C_TRIGGER6, - PMIC_FSM_I2C_TRIGGER_VAL_0); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmGetI2cTriggerVal(pPmicCoreHandle, - PMIC_FSM_I2C_TRIGGER6, - &i2cTriggerVal); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - TEST_ASSERT_EQUAL(i2cTriggerVal, PMIC_FSM_I2C_TRIGGER_VAL_0); - - pmic_testResultUpdate_pass(10118, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmEnableI2cTrigger: Trigger i2C7 with trigger value as '1' and '0' - */ -static void test_pmic_fsmEnableI2cTrigger_i2C7(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t i2cTriggerVal; - - test_pmic_print_unity_testcase_info(10119, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmEnableI2cTrigger(pPmicCoreHandle, - PMIC_FSM_I2C_TRIGGER7, - PMIC_FSM_I2C_TRIGGER_VAL_1); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmGetI2cTriggerVal(pPmicCoreHandle, - PMIC_FSM_I2C_TRIGGER7, - &i2cTriggerVal); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - TEST_ASSERT_EQUAL(i2cTriggerVal, PMIC_FSM_I2C_TRIGGER_VAL_1); - - status = Pmic_fsmEnableI2cTrigger(pPmicCoreHandle, - PMIC_FSM_I2C_TRIGGER7, - PMIC_FSM_I2C_TRIGGER_VAL_0); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmGetI2cTriggerVal(pPmicCoreHandle, - PMIC_FSM_I2C_TRIGGER7, - &i2cTriggerVal); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - TEST_ASSERT_EQUAL(i2cTriggerVal, PMIC_FSM_I2C_TRIGGER_VAL_0); - - pmic_testResultUpdate_pass(10119, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmGetI2cTriggerVal: Get FSM i2C0/i2C1/i2C2/i2c3 trigger value - */ -static void test_pmic_fsmGetI2cTriggerVal_i2C0_i2c1_i2c2_i2c3(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t i2cTriggerVal; - - test_pmic_print_unity_testcase_info(10120, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmGetI2cTriggerVal(pPmicCoreHandle, - PMIC_FSM_I2C_TRIGGER0, - &i2cTriggerVal); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - TEST_ASSERT_EQUAL(i2cTriggerVal, PMIC_FSM_I2C_TRIGGER_VAL_0); - - status = Pmic_fsmGetI2cTriggerVal(pPmicCoreHandle, - PMIC_FSM_I2C_TRIGGER1, - &i2cTriggerVal); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - TEST_ASSERT_EQUAL(i2cTriggerVal, PMIC_FSM_I2C_TRIGGER_VAL_0); - - status = Pmic_fsmGetI2cTriggerVal(pPmicCoreHandle, - PMIC_FSM_I2C_TRIGGER2, - &i2cTriggerVal); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - TEST_ASSERT_EQUAL(i2cTriggerVal, PMIC_FSM_I2C_TRIGGER_VAL_0); - - status = Pmic_fsmGetI2cTriggerVal(pPmicCoreHandle, - PMIC_FSM_I2C_TRIGGER3, - &i2cTriggerVal); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - TEST_ASSERT_EQUAL(i2cTriggerVal, PMIC_FSM_I2C_TRIGGER_VAL_0); - - pmic_testResultUpdate_pass(10120, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmEnableI2cTrigger: Parameter validation for handle - */ -static void test_pmic_fsmEnableI2cTrigger_prmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(10115, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmEnableI2cTrigger(NULL, - PMIC_FSM_I2C_TRIGGER0, - PMIC_FSM_I2C_TRIGGER_VAL_1); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - pmic_testResultUpdate_pass(10115, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmEnableI2cTrigger: Parameter Range validation for i2cTriggerVal - * param for i2C0/i2C1/i2C2/i2C3/i2C4/i2C5/i2C6/i2C7 Trigger type - */ -static void test_pmic_fsmEnableI2cTrigger_prmValTest_i2cTriggerVal(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t i2cTriggerType; - - test_pmic_print_unity_testcase_info(10116, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - for(i2cTriggerType = PMIC_FSM_I2C_TRIGGER0; i2cTriggerType <= PMIC_FSM_I2C_TRIGGER7; i2cTriggerType++) - { - if((PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev) && - ((i2cTriggerType > PMIC_FSM_I2C_TRIGGER0) && - (i2cTriggerType < PMIC_FSM_I2C_TRIGGER4))) - { - continue; - } - - if(i2cTriggerType < PMIC_FSM_I2C_TRIGGER3) - { - status = Pmic_fsmEnableI2cTrigger(pPmicCoreHandle, - i2cTriggerType, - 0U); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, status); - } - - if(i2cTriggerType != PMIC_FSM_I2C_TRIGGER3) - { - status = Pmic_fsmEnableI2cTrigger(pPmicCoreHandle, - i2cTriggerType, - 2U); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, status); - } - else - { - status = Pmic_fsmEnableI2cTrigger(pPmicCoreHandle, - i2cTriggerType, - 2U); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NOT_SUPPORTED, status); - } - } - - pmic_testResultUpdate_pass(10116, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmEnableI2cTrigger: Parameter Range validation for i2c Trigger type - */ -static void test_pmic_fsmEnableI2cTrigger_prmValTest_i2cTriggerType(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(10117, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmEnableI2cTrigger(pPmicCoreHandle, - 8U, - PMIC_FSM_I2C_TRIGGER_VAL_1); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, status); - - pmic_testResultUpdate_pass(10117, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -#if defined(ENABLE_SAMPLE_TESTCASES) -/*! - * Below test cases are not tested as the PMIC Team team has verified the - * Voltage rails - * Added below test cases as sample for reference. - */ - -/*! - * \brief Pmic_fsmRequestDdrGpioRetentionMode : DDR Retention mode with trigger value as '1' - * Configured to MCU State using NSleep Signal - */ -static void test_pmic_fsmRequestDdrGpioRetentionMode_ddrRmi2CTriggerVal1(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(0xAB2E, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmRequestDdrGpioRetentionMode(pPmicCoreHandle, - PMIC_FSM_DDR_RETENTION_MODE, - PMIC_FSM_I2C_TRIGGER_VAL_1); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmSetNsleepSignalVal(pPmicCoreHandle, - PMIC_NSLEEP1_SIGNAL, - PMIC_NSLEEP_LOW); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - pmic_testResultUpdate_pass(0xAB2E, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmRequestDdrGpioRetentionMode : DDR Retention mode with trigger value as '0' - * Configured to MCU State using NSleep Signal - */ -static void test_pmic_fsmRequestDdrGpioRetentionMode_ddrRmi2CTriggerVal0(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(0xAB2F, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmRequestDdrGpioRetentionMode(pPmicCoreHandle, - PMIC_FSM_DDR_RETENTION_MODE, - PMIC_FSM_I2C_TRIGGER_VAL_0); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmSetNsleepSignalVal(pPmicCoreHandle, - PMIC_NSLEEP1_SIGNAL, - PMIC_NSLEEP_LOW); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - - pmic_testResultUpdate_pass(0xAB2F, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -#if defined(SOC_J7200) -/*! - * \brief Pmic_fsmRequestDdrGpioRetentionMode : GPIO Retention mode with trigger value as '1' - * Configured to MCU State using NSleep Signal - */ -static void test_pmic_fsmRequestDdrGpioRetentionMode_gpioRmi2CTriggerVal1(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(0xAB30, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmRequestDdrGpioRetentionMode(pPmicCoreHandle, - PMIC_FSM_GPIO_RETENTION_MODE, - PMIC_FSM_I2C_TRIGGER_VAL_1); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmSetNsleepSignalVal(pPmicCoreHandle, - PMIC_NSLEEP1_SIGNAL, - PMIC_NSLEEP_LOW); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - pmic_testResultUpdate_pass(0xAB30, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmRequestDdrGpioRetentionMode : GPIO Retention mode with trigger value as '0' - * Configured to MCU State using NSleep Signal - */ -static void test_pmic_fsmRequestDdrGpioRetentionMode_gpioRmi2CTriggerVal0(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(0xAB31, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmRequestDdrGpioRetentionMode(pPmicCoreHandle, - PMIC_FSM_GPIO_RETENTION_MODE, - PMIC_FSM_I2C_TRIGGER_VAL_0); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmSetNsleepSignalVal(pPmicCoreHandle, - PMIC_NSLEEP1_SIGNAL, - PMIC_NSLEEP_LOW); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - pmic_testResultUpdate_pass(0xAB31, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmRequestDdrGpioRetentionMode : GPIO Retention mode with trigger value as '1' - * Configured to S2R State using NSleep Signal - */ -static void test_pmic_fsmRequestDdrGpioRetentionMode_gpioRmi2CTriggerVal1_s2R(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(0xAB32, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmRequestDdrGpioRetentionMode(pPmicCoreHandle, - PMIC_FSM_GPIO_RETENTION_MODE, - PMIC_FSM_I2C_TRIGGER_VAL_1); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmSetNsleepSignalVal(pPmicCoreHandle, - PMIC_NSLEEP2_SIGNAL, - PMIC_NSLEEP_LOW); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - pmic_testResultUpdate_pass(0xAB32, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} -#endif - -/*! - * \brief Pmic_fsmRequestDdrGpioRetentionMode : DDR Retention mode with trigger value as '1' - * Configured to S2R State using NSleep Signal - */ -static void test_pmic_fsmRequestDdrGpioRetentionMode_ddrRmi2CTriggerVal1_s2R(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(0xAB33, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmRequestDdrGpioRetentionMode(pPmicCoreHandle, - PMIC_FSM_DDR_RETENTION_MODE, - PMIC_FSM_I2C_TRIGGER_VAL_1); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmSetNsleepSignalVal(pPmicCoreHandle, - PMIC_NSLEEP2_SIGNAL, - PMIC_NSLEEP_LOW); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - pmic_testResultUpdate_pass(0xAB33, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -#endif - -/*! - * \brief Pmic_fsmRequestDdrGpioRetentionMode : Parameter validation for handle - */ -static void test_pmic_fsmRequestDdrGpioRetentionMode_prmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(10122, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmRequestDdrGpioRetentionMode(NULL, - PMIC_FSM_GPIO_RETENTION_MODE, - PMIC_FSM_I2C_TRIGGER_VAL_0); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - pmic_testResultUpdate_pass(10122, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmRequestDdrGpioRetentionMode : Parameter Range validation for retentionMode - */ -static void test_pmic_fsmRequestDdrGpioRetentionMode_prmValTest_retentionMode(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(10123, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmRequestDdrGpioRetentionMode(pPmicCoreHandle, - 2U, - PMIC_FSM_I2C_TRIGGER_VAL_0); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, status); - - pmic_testResultUpdate_pass(10123, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmRequestDdrGpioRetentionMode : Parameter Range validation for i2cTriggerVal - */ -static void test_pmic_fsmRequestDdrGpioRetentionMode_prmValTest_i2cTriggerVal(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(10124, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmRequestDdrGpioRetentionMode(pPmicCoreHandle, - PMIC_FSM_GPIO_RETENTION_MODE, - 2U); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, status); - - pmic_testResultUpdate_pass(10124, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmSetConfiguration/Pmic_fsmGetConfiguration : Disable Fast BIST - */ -static void test_pmic_fsmSetConfiguration_fastBistDisable(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - Pmic_FsmCfg_t fsmCfg_rd = {PMIC_FSM_CFG_FAST_BIST_EN_VALID_SHIFT,}; - Pmic_FsmCfg_t fsmCfg = - { - PMIC_FSM_CFG_FAST_BIST_EN_VALID_SHIFT, - PMIC_FSM_FAST_BIST_DISABLE, - PMIC_FSM_SELECT_STANDBY_STATE, - PMIC_FSM_ILIM_INT_FSMCTRL_DISABLE, - PMIC_FSM_STARTUPDEST_ACTIVE - }; - - test_pmic_print_unity_testcase_info(10125, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmSetConfiguration(pPmicCoreHandle, fsmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmGetConfiguration(pPmicCoreHandle, &fsmCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - TEST_ASSERT_EQUAL(fsmCfg.fastBistEn, fsmCfg_rd.fastBistEn); - - pmic_testResultUpdate_pass(10125, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmRuntimeBistRequest : Negative test for Runtime BIST on PG1.0 Silicon Revision - */ -static void test_pmic_fsmRuntimeBistRequest_pmicDevSiliconRev(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(10740, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - pmic_testResultUpdate_ignore(10740, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - } - - status = Pmic_fsmRequestRuntimeBist(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NOT_SUPPORTED, status); - - pmic_testResultUpdate_pass(10740, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmDeviceOffRequestCfg : configure eventType as PMIC_FSM_ENABLE_PIN_TYPE - */ -static void test_pmic_fsmDeviceOffRequestCfg_enablePinType(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t fsmState = PMIC_FSM_STANBY_STATE; - uint8_t eventType; - - eventType = PMIC_FSM_ENABLE_PIN_TYPE; - test_pmic_print_unity_testcase_info(10741, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmDeviceOffRequestCfg(pPmicCoreHandle, - eventType, - fsmState); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - pmic_testResultUpdate_pass(10741, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmEnableI2cTrigger: Parameter validation for i2c3 Trigger Value - */ -static void test_pmic_fsmEnableI2cTriggerPrmValTest_i2c3TriggerVal(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(10742, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmEnableI2cTrigger(pPmicCoreHandle, - PMIC_FSM_I2C_TRIGGER3, - PMIC_FSM_I2C_TRIGGER_VAL_1); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NOT_SUPPORTED, status); - - pmic_testResultUpdate_pass(10742, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmEnableI2cTrigger: Negative test to trigger i2c2 Trigger type FSM I2C trigger on PG1.0 Silicon Revision - */ -static void test_pmic_fsmEnableI2cTrigger_i2c2TriggerTypePmicDevSiliconRev(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(10743, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - pmic_testResultUpdate_ignore(10743, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - } - - status = Pmic_fsmEnableI2cTrigger(pPmicCoreHandle, - PMIC_FSM_I2C_TRIGGER2, - PMIC_FSM_I2C_TRIGGER_VAL_1); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NOT_SUPPORTED, status); - - pmic_testResultUpdate_pass(10743, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmEnableI2cTrigger: Parameter validation for i2c0 Trigger Value - */ -static void test_pmic_fsmEnableI2cTriggerPrmValTest_i2c0TriggerVal(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(10744, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmEnableI2cTrigger(pPmicCoreHandle, - PMIC_FSM_I2C_TRIGGER0, - PMIC_FSM_I2C_TRIGGER_VAL_0); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, status); - - pmic_testResultUpdate_pass(10744, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmGetI2cTriggerVal: Parameter validation for handle - */ -static void test_pmic_fsmGetI2cTriggerValPrmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t i2cTriggerVal; - - test_pmic_print_unity_testcase_info(10745, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmGetI2cTriggerVal(NULL, - PMIC_FSM_I2C_TRIGGER0, - &i2cTriggerVal); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - pmic_testResultUpdate_pass(10745, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmGetI2cTriggerVal: Parameter validation for pI2cTriggerVal - */ -static void test_pmic_fsmGetI2cTriggerValPrmValTest_pI2cTriggerVal(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(10746, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmGetI2cTriggerVal(pPmicCoreHandle, - PMIC_FSM_I2C_TRIGGER0, - NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, status); - - pmic_testResultUpdate_pass(10746, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmGetI2cTriggerVal: Parameter validation for i2cTriggerType - */ -static void test_pmic_fsmGetI2cTriggerValPrmValTest_i2cTriggerType(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t i2cTriggerVal; - - test_pmic_print_unity_testcase_info(10747, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmGetI2cTriggerVal(pPmicCoreHandle, - 8U, - &i2cTriggerVal); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, status); - - pmic_testResultUpdate_pass(10747, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmRequestDdrGpioRetentionMode : Configure DDR Retention mode with trigger value as '1' - * This Test is defined only for code coverage but not for functionality test - */ -static void test_pmic_fsmRequestDdrGpioRetentionMode_ddrRmi2CTriggerVal1Cfg(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t i2cTriggerVal; - - test_pmic_print_unity_testcase_info(10748, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - status = Pmic_fsmRequestDdrGpioRetentionMode(pPmicCoreHandle, - PMIC_FSM_DDR_RETENTION_MODE, - PMIC_FSM_I2C_TRIGGER_VAL_1); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmGetI2cTriggerVal(pPmicCoreHandle, - PMIC_FSM_I2C_TRIGGER7, - &i2cTriggerVal); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - TEST_ASSERT_EQUAL(i2cTriggerVal, PMIC_FSM_I2C_TRIGGER_VAL_1); - - pmic_testResultUpdate_pass(10748, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_fsmRecoverSocPwrErr: Negative test to configure nsleepVal as Low for PG1.0 Silicon Revision - */ -static void test_pmic_fsmRecoverSocPwrErr_nsleepVal(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(10749, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - pmic_testResultUpdate_ignore(10749, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - } - - status = Pmic_fsmRecoverSocPwrErr(pPmicCoreHandle, PMIC_NSLEEP_LOW); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NOT_SUPPORTED, status); - - pmic_testResultUpdate_pass(10749, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - -/*! - * \brief Added for Coverage - */ -static void test_pmic_fsm_coverageGaps(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t fsmState, eventType, nsleepVal; - uint8_t pmicState = 0U; - uint8_t i2cTriggerVal; - - Pmic_FsmCfg_t fsmCfg_rd = {PMIC_FSM_CFG_FSM_STARTUP_DEST_SEL_VALID_SHIFT,}; - Pmic_FsmCfg_t fsmCfg = - { - PMIC_FSM_CFG_FSM_STARTUP_DEST_SEL_VALID_SHIFT, - PMIC_FSM_FAST_BIST_DISABLE, - PMIC_FSM_SELECT_STANDBY_STATE, - PMIC_FSM_ILIM_INT_FSMCTRL_DISABLE, - PMIC_FSM_STARTUPDEST_ACTIVE - }; - - test_pmic_print_unity_testcase_info(10750, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); - - gPmic_faultInjectCfg.enableFaultInjectionRead = 1U; - - //Pmic_fsmSetStartupDestState - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - status = Pmic_fsmSetConfiguration(pPmicCoreHandle, fsmCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_fsmGetStartupDestStateCfg - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - status = Pmic_fsmGetConfiguration(pPmicCoreHandle, &fsmCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_fsmEnableBuckLdoIlimIntAffectFsm - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - fsmCfg.validParams = PMIC_FSM_CFG_ILIM_INT_FSMCTRL_EN_VALID_SHIFT; - fsmCfg.ilimIntfsmCtrlEn = PMIC_FSM_ILIM_INT_FSMCTRL_ENABLE; - status = Pmic_fsmSetConfiguration(pPmicCoreHandle, fsmCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_fsmGetBuckLdoIlimIntAffectFsmCfg - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - fsmCfg_rd.validParams = PMIC_FSM_CFG_ILIM_INT_FSMCTRL_EN_VALID_SHIFT; - status = Pmic_fsmGetConfiguration(pPmicCoreHandle, &fsmCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_fsmSetLpStandbyState - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - fsmCfg.validParams = PMIC_FSM_CFG_LP_STANDBYSEL_VALID_SHIFT; - fsmCfg.lpStandbySel = PMIC_FSM_SELECT_LPSTANDBY_STATE; - status = Pmic_fsmSetConfiguration(pPmicCoreHandle, fsmCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_fsmGetLpStandbyStateCfg - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - fsmCfg_rd.validParams = PMIC_FSM_CFG_LP_STANDBYSEL_VALID_SHIFT; - status = Pmic_fsmGetConfiguration(pPmicCoreHandle, &fsmCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_fsmEnableFastBIST - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - fsmCfg.validParams = PMIC_FSM_CFG_FAST_BIST_EN_VALID_SHIFT; - fsmCfg.fastBistEn = PMIC_FSM_FAST_BIST_DISABLE; - status = Pmic_fsmSetConfiguration(pPmicCoreHandle, fsmCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_fsmGetFastBISTCfg - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - fsmCfg_rd.validParams = PMIC_FSM_CFG_FAST_BIST_EN_VALID_SHIFT; - status = Pmic_fsmGetConfiguration(pPmicCoreHandle, &fsmCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_fsmSetNsleepSignalMask - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - status = Pmic_fsmSetNsleepSignalMask(pPmicCoreHandle, - PMIC_NSLEEP1_SIGNAL, - PMIC_NSLEEPX_MASK); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_fsmDeviceOnRequest - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - status = Pmic_fsmDeviceOnRequest(pPmicCoreHandle); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_fsmDeviceOffRequestCfg - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - eventType = PMIC_FSM_NPWRON_PIN_TYPE; - fsmState = PMIC_FSM_LP_STANBY_STATE; - status = Pmic_fsmDeviceOffRequestCfg(pPmicCoreHandle, - eventType, - fsmState); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_fsmEnableI2cTrigger - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - status = Pmic_fsmEnableI2cTrigger(pPmicCoreHandle, - PMIC_FSM_I2C_TRIGGER4, - PMIC_FSM_I2C_TRIGGER_VAL_1); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_fsmGetI2cTriggerVal - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - status = Pmic_fsmGetI2cTriggerVal(pPmicCoreHandle, - PMIC_FSM_I2C_TRIGGER0, - &i2cTriggerVal); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_fsmSetNsleepSignalVal - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - status = Pmic_fsmSetNsleepSignalVal(pPmicCoreHandle, - PMIC_NSLEEP2_SIGNAL, - PMIC_NSLEEP_HIGH); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_fsmGetNsleepSignalVal - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - status = Pmic_fsmGetNsleepSignalVal(pPmicCoreHandle, - PMIC_NSLEEP2_SIGNAL, - &nsleepVal); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_setS2RState - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pmicState = PMIC_FSM_S2R_STATE; - status = Pmic_fsmSetMissionState(pPmicCoreHandle, pmicState); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_setState - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pmicState = PMIC_FSM_ACTIVE_STATE; - status = Pmic_fsmSetMissionState(pPmicCoreHandle, pmicState); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_setState - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pmicState = PMIC_FSM_MCU_ONLY_STATE; - status = Pmic_fsmSetMissionState(pPmicCoreHandle, pmicState); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.enableFaultInjectionRead = 0U; - - gMissionStateTestFlag = 1U; - - status = Pmic_fsmSetNsleepSignalMask(pPmicCoreHandle, - PMIC_NSLEEP1_SIGNAL, - PMIC_NSLEEPX_UNMASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmSetNsleepSignalMask(pPmicCoreHandle, - PMIC_NSLEEP2_SIGNAL, - PMIC_NSLEEPX_UNMASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - pmicState = PMIC_FSM_S2R_STATE; - status = Pmic_fsmSetMissionState(pPmicCoreHandle, pmicState); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - pmicState = PMIC_FSM_MCU_ONLY_STATE; - status = Pmic_fsmSetMissionState(pPmicCoreHandle, pmicState); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - pmicState = PMIC_FSM_STANBY_STATE; - status = Pmic_fsmSetMissionState(pPmicCoreHandle, pmicState); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - pmicState = PMIC_FSM_LP_STANBY_STATE; - status = Pmic_fsmSetMissionState(pPmicCoreHandle, pmicState); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - gMissionStateTestFlag = 0U; - - pmic_testResultUpdate_pass(10750, - pmic_fsm_tests, - PMIC_FSM_NUM_OF_TESTCASES); -} - - -#if defined(UNITY_INCLUDE_CONFIG_V2_H) && \ - (defined(SOC_J721E) || defined(SOC_J7200)) - -/*! - * \brief Run fsm unity test cases - */ -static void test_pmic_run_testcases(void) -{ - pmic_log("\n\n%s(): %d: Begin Unity Test Cases...\n", __func__, __LINE__); - UNITY_BEGIN(); - - pmic_testResult_init(pmic_fsm_tests, PMIC_FSM_NUM_OF_TESTCASES); - - RUN_TEST(test_pmic_fsmSetNsleepSignalMask_mask_nsleep1); - RUN_TEST(test_pmic_fsmSetNsleepSignalMask_unmask_nsleep1); - RUN_TEST(test_pmic_fsmSetNsleepSignalMask_mask_nsleep2); - RUN_TEST(test_pmic_fsmSetNsleepSignalMask_unmask_nsleep2); - RUN_TEST(test_pmic_fsmSetMissionState_active); - RUN_TEST(test_pmic_fsmSetMissionStatePrmValTest_handle); - RUN_TEST(test_pmic_fsmSetMissionStatePrmValTest_state); - RUN_TEST(test_pmic_fsmSetNsleepSignalMaskStatePrmValTest_handle); - RUN_TEST(test_pmic_fsmDevOffReqCfg_PrmValTest_handle); - RUN_TEST(test_pmic_fsmDevOffReqCfg_PrmValTest_eventType); - RUN_TEST(test_pmic_fsmDevOffReqCfg_PrmValTest_fsmState); - RUN_TEST(test_pmic_fsmRuntimeBistRequestPrmValTest_handle); - RUN_TEST(test_pmic_fsmDeviceOnRequestPrmValTest_handle); - RUN_TEST(test_pmic_fsmGetNsleepSignalMaskStatePrmValTest_handle); - RUN_TEST(test_pmic_fsmGetNsleepSignalMaskStatePrmValTest_nsleepStat); - RUN_TEST(test_pmic_fsmSetConfiguration_fastBistEnable); - RUN_TEST(test_pmic_fsmSetConfiguration_selectLpStandbyState); - RUN_TEST(test_pmic_fsmSetConfiguration_selectStandbyState); - RUN_TEST(test_pmic_fsmSetConfiguration_ilimIntfsmCtrlEnable); - RUN_TEST(test_pmic_fsmSetConfiguration_ilimIntfsmCtrlDisable); - RUN_TEST(test_pmic_fsmSetConfiguration_selectfsmStarupDestActiveState); - RUN_TEST(test_pmic_fsmSetConfiguration_selectfsmStarupDestMcuonlyState); - RUN_TEST(test_pmic_fsmSetConfiguration_selectfsmStarupDestStandbyOrLpStandbyState); - RUN_TEST(test_pmic_fsmSetConfiguration_prmValTest_handle); - RUN_TEST(test_pmic_fsmSetConfiguration_prmValTest_fsmStarupDestSel); - RUN_TEST(test_pmic_fsmGetConfiguration_prmValTest_handle); - RUN_TEST(test_pmic_fsmGetConfiguration_prmValTest_fsmCfg); - RUN_TEST(test_pmic_fsmSetPfsmDelay); - RUN_TEST(test_pmic_fsmSetPfsmDelay_prmValTest_handle); - RUN_TEST(test_pmic_fsmSetPfsmDelay_prmValTest_fsmStarupDestSel); - RUN_TEST(test_pmic_fsmGetPfsmDelay_prmValTest_handle); - RUN_TEST(test_pmic_fsmGetPfsmDelay_prmValTest_fsmStarupDestSel); - RUN_TEST(test_pmic_fsmGetPfsmDelay_prmValTest_PfsmDelay); - RUN_TEST(test_pmic_fsmSetNsleepSignalVal_nsleep1High); - RUN_TEST(test_pmic_fsmSetNsleepSignalVal_nsleep2High); - RUN_TEST(test_pmic_fsmSetNsleepSignalVal_prmValTest_handle); - RUN_TEST(test_pmic_fsmSetNsleepSignalVal_prmValTest_nsleepVal); - RUN_TEST(test_pmic_fsmGetNsleepSignalVal_prmValTest_handle); - RUN_TEST(test_pmic_fsmGetNsleepSignalVal_prmValTest_nsleepVal); - -#if 0 // TBD - RUN_TEST(test_pmic_fsmRecoverSocPwrErr_nsleepLow); - RUN_TEST(test_pmic_fsmRecoverSocPwrErr_nsleepHigh); -#endif - - RUN_TEST(test_pmic_fsmRecoverSocPwrErr_prmValTest_handle); - RUN_TEST(test_pmic_fsmRecoverSocPwrErr_prmValTest_nsleepVal); - - RUN_TEST(test_pmic_fsmEnableI2cTrigger_i2C4); - RUN_TEST(test_pmic_fsmEnableI2cTrigger_i2C5); - RUN_TEST(test_pmic_fsmEnableI2cTrigger_i2C6); - RUN_TEST(test_pmic_fsmEnableI2cTrigger_i2C7); - RUN_TEST(test_pmic_fsmGetI2cTriggerVal_i2C0_i2c1_i2c2_i2c3); - - RUN_TEST(test_pmic_fsmEnableI2cTrigger_prmValTest_handle); - RUN_TEST(test_pmic_fsmEnableI2cTrigger_prmValTest_i2cTriggerVal); - RUN_TEST(test_pmic_fsmEnableI2cTrigger_prmValTest_i2cTriggerType); - RUN_TEST(test_pmic_fsmRequestDdrGpioRetentionMode_prmValTest_handle); - RUN_TEST(test_pmic_fsmRequestDdrGpioRetentionMode_prmValTest_retentionMode); - RUN_TEST(test_pmic_fsmRequestDdrGpioRetentionMode_prmValTest_i2cTriggerVal); - RUN_TEST(test_pmic_fsmSetConfiguration_fastBistDisable); - RUN_TEST(test_pmic_fsmRuntimeBistRequest_pmicDevSiliconRev); - RUN_TEST(test_pmic_fsmDeviceOffRequestCfg_enablePinType); - RUN_TEST(test_pmic_fsmEnableI2cTriggerPrmValTest_i2c3TriggerVal); - RUN_TEST(test_pmic_fsmEnableI2cTrigger_i2c2TriggerTypePmicDevSiliconRev); - RUN_TEST(test_pmic_fsmEnableI2cTriggerPrmValTest_i2c0TriggerVal); - RUN_TEST(test_pmic_fsmGetI2cTriggerValPrmValTest_handle); - RUN_TEST(test_pmic_fsmGetI2cTriggerValPrmValTest_pI2cTriggerVal); - RUN_TEST(test_pmic_fsmGetI2cTriggerValPrmValTest_i2cTriggerType); - RUN_TEST(test_pmic_fsmRequestDdrGpioRetentionMode_ddrRmi2CTriggerVal1Cfg); - RUN_TEST(test_pmic_fsmRecoverSocPwrErr_nsleepVal); - RUN_TEST(test_pmic_fsm_coverageGaps); - - pmic_updateTestResults(pmic_fsm_tests, PMIC_FSM_NUM_OF_TESTCASES); - - UNITY_END(); -} - -/*! - * \brief FSM Unity Test App wrapper Function for LEO PMIC-A - */ -static int32_t test_pmic_leo_pmicA_fsm_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_LEO_TPS6594X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_DUAL_I2C; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.i2c1Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C1_SPEED_VALID_SHIFT; - - pmicConfigData.i2c2Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C2_SPEED_VALID_SHIFT; - - if(J721E_LEO_PMICA_DEVICE == pmic_device_info) - { - pmicConfigData.slaveAddr = J721E_LEO_PMICA_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J721E_LEO_PMICA_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J721E_LEO_PMICA_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - } - if(J7VCL_LEO_PMICA_DEVICE == pmic_device_info) - { - pmicConfigData.slaveAddr = J7VCL_LEO_PMICA_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J7VCL_LEO_PMICA_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J7VCL_LEO_PMICA_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - } - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; -} - -/*! - * \brief FSM Unity Test App wrapper Function for LEO PMIC-B - */ -static int32_t test_pmic_leo_pmicB_fsm_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_LEO_TPS6594X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_SINGLE_I2C; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.i2c1Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C1_SPEED_VALID_SHIFT; - - pmicConfigData.slaveAddr = J721E_LEO_PMICB_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J721E_LEO_PMICB_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J721E_LEO_PMICB_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; - -} - -/*! - * \brief FSM Unity Test App wrapper Function for HERA PMIC - */ -static int32_t test_pmic_hera_fsm_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_HERA_LP8764X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_SINGLE_I2C; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.i2c1Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C1_SPEED_VALID_SHIFT; - - pmicConfigData.slaveAddr = J7VCL_HERA_PMIC_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J7VCL_HERA_PMIC_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J7VCL_HERA_PMIC_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; -} - -/*! - * \brief FSM Unity Test App wrapper Function for LEO PMIC-A - */ -static int32_t test_pmic_leo_pmicA_spiStub_fsm_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_LEO_TPS6594X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_SPI; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; -} - -static int32_t setup_pmic_interrupt(uint32_t board) -{ - int32_t status = PMIC_ST_SUCCESS; - - if(J721E_BOARD == board) - { - if(PMIC_STATUS_CRC_INIT_VAL == gCrcTestFlag_J721E) - { - gCrcTestFlag_J721E = PMIC_CFG_TO_ENABLE_CRC; - } - - pmic_device_info = J721E_LEO_PMICA_DEVICE; - status = test_pmic_leo_pmicA_fsm_testApp(); - /* Deinit pmic handle */ - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - - if(PMIC_ST_SUCCESS == status) - { - pmic_device_info = J721E_LEO_PMICB_DEVICE; - status = test_pmic_leo_pmicB_fsm_testApp(); - /* Deinit pmic handle */ - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } - } - else if(J7VCL_BOARD == board) - { - if(PMIC_STATUS_CRC_INIT_VAL == gCrcTestFlag_J7VCL) - { - gCrcTestFlag_J7VCL = PMIC_CFG_TO_ENABLE_CRC; - } - - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - status = test_pmic_leo_pmicA_fsm_testApp(); - /* Deinit pmic handle */ - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - - if(PMIC_ST_SUCCESS == status) - { - pmic_device_info = J7VCL_HERA_PMICB_DEVICE; - status = test_pmic_hera_fsm_testApp(); - /* Deinit pmic handle */ - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } - } - else - { - status = PMIC_ST_ERR_INV_DEVICE; - } - return status; -} - -static const char pmicTestMenu[] = -{ - " \r\n =================================================================" - " \r\n Test Menu:" - " \r\n =================================================================" - " \r\n 0: Automatic run for all board specific FSM options" - " \r\n 1: Manual run for FSM options" - " \r\n 2: quit" - " \r\n" - " \r\n Enter option: " -}; - -volatile static const char pmicTestAppMenu[] = -{ - " \r\n =================================================================" - " \r\n Menu:" - " \r\n =================================================================" - " \r\n 0: Pmic Leo device(PMIC A on J721E EVM)" - " \r\n 1: Pmic Leo device(PMIC A on J7VCL EVM)" - " \r\n 2: Pmic Hera device(PMIC B on J7VCL EVM)" - " \r\n 3: Pmic Leo device(PMIC A on J721E EVM Using SPI Stub Functions)" - " \r\n 4: Pmic Leo device(PMIC A on J7VCL EVM Using SPI Stub Functions)" - " \r\n 5: Pmic Leo device(PMIC A on J721E EVM Manual Testcase for FSM states)" - " \r\n 6: Pmic Leo device(PMIC A on J7VCL EVM Manual Testcase for FSM states)" - " \r\n 7: Back to Test Menu" - " \r\n" - " \r\n Enter option: " -}; - -static void print_pmicTestAppManualTestMenu(uint32_t board) -{ - char board_name[10] = {0}; - - if(J721E_BOARD == board) - { - strcpy(board_name, "J721E"); - } - else if(J7VCL_BOARD == board) - { - strcpy(board_name, "J7VCL"); - } - - pmic_log(" \r\n ================================================================="); - pmic_log(" \r\n Manual Testcase Menu:"); - pmic_log(" \r\n ================================================================="); - pmic_log(" \r\n 0: Pmic Leo device(PMIC A on %s EVM Set FSM Mission States - S2R", board_name); - pmic_log(" \r\n 1: Pmic Leo device(PMIC A on %s EVM Set FSM Mission States - lpStandby", board_name); - pmic_log(" \r\n 2: Pmic Leo device(PMIC A on %s EVM Set FSM Mission States - Standby", board_name); - pmic_log(" \r\n 3: Pmic Leo device(PMIC A on %s EVM Set nSleep1 Signal - Active Low", board_name); - pmic_log(" \r\n 4: Pmic Leo device(PMIC A on %s EVM Set nSleep2 Signal - Active Low", board_name); - pmic_log(" \r\n 5: Back to Main Menu"); - pmic_log(" \r\n"); - pmic_log(" \r\n Enter option: "); -}; - -/*! - * \brief Run FSM manual test cases - */ -static void test_pmic_run_testcases_manual(uint32_t board) -{ - int8_t menuOption = -1; - - while(1U) - { - print_pmicTestAppManualTestMenu(board); - if(UART_scanFmt("%d", &menuOption) != 0U) - { - pmic_log("Read from UART Console failed\n"); - return; - } - - if(menuOption == 5) - { - break; - } - - switch(menuOption) - { - case 0U: - RUN_TEST(test_pmic_fsmSetMissionState_s2r); - break; - case 1U: - RUN_TEST(test_pmic_fsmSetMissionState_lpstandby); - break; - case 2U: - RUN_TEST(test_pmic_fsmSetMissionState_standby); - break; - case 3U: - RUN_TEST(test_pmic_fsmSetNsleepSignalVal_nsleep1Low); - break; - case 4U: - RUN_TEST(test_pmic_fsmSetNsleepSignalVal_nsleep2Low); - break; - default: - pmic_log(" \r\n Invalid option... Try Again!!!\n"); - break; - } - } -} - -volatile int8_t g_option = 0; -static void test_pmic_fsm_testapp_run_options() -{ - int8_t num = -1; - int8_t idx = 0; -#if defined(SOC_J721E) - int8_t automatic_options[] = {0, 3}; -#elif defined(SOC_J7200) - int8_t automatic_options[] = {1, 2, 4}; -#endif - - while(1U) - { - if(idx >= (sizeof(automatic_options)/sizeof(automatic_options[0]))) - { - pmic_printTestResult(pmic_fsm_tests, PMIC_FSM_NUM_OF_TESTCASES); - } - pmic_log("%s", pmicTestAppMenu); - if(g_option == PMIC_UT_AUTOMATE_OPTION) - { - if(idx < (sizeof(automatic_options)/sizeof(automatic_options[0]))) - { - num = automatic_options[idx++]; - } - else - { - num = 7; - } - pmic_log("%d\n", num); - } - else - { - if(UART_scanFmt("%d", &num) != 0U) - { - pmic_log("Read from UART Console failed\n"); - return; - } - } - switch(num) - { - case 0U: -#if defined(SOC_J721E) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J721E_BOARD)) - { - pmic_device_info = J721E_LEO_PMICA_DEVICE; - - /* FSM Unity Test App wrapper Function for LEO PMIC-A */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_fsm_testApp()) - { - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 1U: -#if defined(SOC_J7200) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J7VCL_BOARD)) - { - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - - /* FSM Unity Test App wrapper Function for LEO PMIC-A */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_fsm_testApp()) - { - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 2U: -#if defined(SOC_J7200) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J7VCL_BOARD)) - { - pmic_device_info = J7VCL_HERA_PMICB_DEVICE; - - /* FSM Unity Test App wrapper Function for HERA PMIC */ - if(PMIC_ST_SUCCESS == test_pmic_hera_fsm_testApp()) - { - /* Run fsm test cases for Hera PMIC */ - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 3U: -#if defined(SOC_J721E) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J721E_BOARD)) - { - pmic_device_info = J721E_LEO_PMICA_DEVICE; - - /* FSM Unity Test App wrapper Function for LEO PMIC-A - * using SPI stub functions */ - if(PMIC_ST_SUCCESS == - test_pmic_leo_pmicA_spiStub_fsm_testApp()) - { - /* Run fsm test cases for Leo PMIC-A */ - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 4U: -#if defined(SOC_J7200) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J7VCL_BOARD)) - { - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - /* FSM Unity Test App wrapper Function for LEO PMIC-A - * using SPI stub functions */ - if(PMIC_ST_SUCCESS == - test_pmic_leo_pmicA_spiStub_fsm_testApp()) - { - /* Run fsm test cases for Leo PMIC-A */ - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 5U: -#if defined(SOC_J721E) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J721E_BOARD)) - { - pmic_device_info = J721E_LEO_PMICA_DEVICE; - - /* FSM Manual Test App wrapper Function for LEO PMIC-A*/ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_fsm_testApp()) - { - /* Run fsm manual test cases */ - test_pmic_run_testcases_manual(J721E_BOARD); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 6U: -#if defined(SOC_J7200) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J7VCL_BOARD)) - { - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - - /* FSM Manual Test App wrapper Function for LEO PMIC-A*/ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_fsm_testApp()) - { - /* Run fsm manual test cases */ - test_pmic_run_testcases_manual(J7VCL_BOARD); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 7U: - pmic_log(" \r\n Back to Test Menu options\n"); - return; - default: - pmic_log(" \r\n Invalid option... Try Again!!!\n"); - break; - } - } -} - -/*! - * \brief Function to register FSM Unity Test App wrapper to Unity framework - */ -static void test_pmic_fsm_testapp_runner(void) -{ - /* @description : Test runner for fsm Test App - * - * @requirements: XXXX - * - * @cores : mcu1_0, mcu1_1 - */ - - while(1U) - { - pmic_log("%s", pmicTestMenu); - if(UART_scanFmt("%d", &g_option) != 0U) - { - pmic_log("Read from UART Console failed\n"); - return; - } - - switch(g_option) - { - case PMIC_UT_AUTOMATE_OPTION: - case PMIC_UT_MANUAL_OPTION: - test_pmic_fsm_testapp_run_options(); - break; - case 2U: - pmic_log(" \r\n Quit from application\n"); - return; - default: - pmic_log(" \r\n Invalid option... Try Again!!!\n"); - break; - } - } -} -#endif - -/*! - * \brief TI RTOS specific FSM TEST APP main Function - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values see \ref Pmic_ErrorCodes - */ -int main() -{ - Board_initUART(); - - pmic_print_banner("PMIC FSM Unity Test Application"); - -#if defined(UNITY_INCLUDE_CONFIG_V2_H) && \ - (defined(SOC_J721E) || \ - defined(SOC_J7200)) - test_pmic_fsm_testapp_runner(); -#endif -} diff --git a/test/fsm_test/pmic_ut_fsm.h b/test/fsm_test/pmic_ut_fsm.h deleted file mode 100644 index 2741e23..0000000 --- a/test/fsm_test/pmic_ut_fsm.h +++ /dev/null @@ -1,51 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ -/** - * \file pmic_ut_fsm.h - * - * \brief Header file for PMIC FSM Unit Tests - * - */ - -#include - -/*! - * \brief FSM MAX state - */ -#define PMIC_FSM_STATE_MAX PMIC_FSM_S2R_STATE - -/*! - * \brief Numbers of miscellaneous testcases - */ -#define PMIC_FSM_NUM_OF_TESTCASES \ - (sizeof(pmic_fsm_tests)/sizeof(pmic_fsm_tests[0])) diff --git a/test/gpio_test/makefile b/test/gpio_test/makefile deleted file mode 100644 index b8a388f..0000000 --- a/test/gpio_test/makefile +++ /dev/null @@ -1,84 +0,0 @@ -# Filename: Makefile -# -# This file is the makefile for building PMIC GPIO Test Code. -# -# Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com/ -# -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# -# Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the -# distribution. -# -# Neither the name of Texas Instruments Incorporated nor the names of -# its contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -#File - pmic_lld\test\gpio_test\makefile - -APP_NAME = pmic_gpio_testapp - -include $(PDK_INSTALL_PATH)/ti/build/Rules.make - -BUILD_OS_TYPE = baremetal - -SRCDIR = . ../common -INCDIR = . ../../include/ ../../include/cfg/tps6594x ../../include/cfg/lp8764x -INCDIR += ../common - -# Common source files across all platforms and cores -SRCS_COMMON += pmic_ut_gpio.c pmic_ut_common.c - -SRCDIR += $(PDK_INSTALL_PATH)/ti/build/unit-test/Unity/src $(PDK_INSTALL_PATH)/ti/build/unit-test/config -INCDIR += $(PDK_INSTALL_PATH)/ti/build/unit-test/Unity/src $(PDK_INSTALL_PATH)/ti/build/unit-test/config -SRCS_COMMON += unity.c - -# List all the external components/interfaces, whose interface header files -# need to be included for this component -INCLUDE_EXTERNAL_INTERFACES = pdk i2c gpio csl -INCLUDE_INTERNAL_INTERFACES = pmic - -# List all the components required by the application -COMP_LIST_COMMON = $(PDK_COMMON_BAREMETAL_COMP) - -# Common source files and CFLAGS across all platforms and cores -PACKAGE_SRCS_COMMON = . ../common - -CFLAGS_LOCAL_COMMON += -DUNITY_INCLUDE_CONFIG_V2_H $(PMIC_CFLAGS) - -# Core/SoC/platform specific source files and CFLAGS -# Example: -# SRCS_ = -# CFLAGS_LOCAL_ = - -# Include common make files -ifeq ($(MAKERULEDIR), ) -#Makerule path not defined, define this and assume relative path from ROOTDIR - MAKERULEDIR := $(ROOTDIR)/ti/build/makerules - export MAKERULEDIR -endif -include $(MAKERULEDIR)/common.mk - -# OBJs and libraries are built by using rule defined in rules_.mk -# and need not be explicitly specified here - -# Nothing beyond this point diff --git a/test/gpio_test/pmic_ut_gpio.c b/test/gpio_test/pmic_ut_gpio.c deleted file mode 100644 index 91e9c51..0000000 --- a/test/gpio_test/pmic_ut_gpio.c +++ /dev/null @@ -1,9961 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ -/** - * \file pmic_ut_gpio.c - * - * \brief PMIC Unit Test for testing PMIC GPIO APIs - * - */ - -#include - -/* Pointer holds the pPmicCoreHandle */ -Pmic_CoreHandle_t *pPmicCoreHandle = NULL; - -extern uint16_t pmic_device_info; -extern int32_t gCrcTestFlag_J721E; -extern int32_t gCrcTestFlag_J7VCL; - -volatile uint32_t pmic_intr_triggered; -extern Pmic_Ut_FaultInject_t gPmic_faultInjectCfg; - -extern int8_t gIntrTopRegTestFlag; -extern int8_t girqGetL1RegTestFlag_Leo; -extern int8_t girqGetL2RegTestFlag_Leo; -extern int8_t girqGetL1RegTestFlag_Leo_PMICB; -extern int8_t girq1L1RegTestFlag; -extern int8_t girq2L1RegTestFlag; -extern int8_t girq1L2RegTestFlag; -extern int8_t girq2L2RegTestFlag; -extern int8_t girqGetL1RegTestFlag_Hera; -extern int8_t girqGetL2RegTestFlag_Hera; - -/*! - * \brief PMIC GPIO Test Cases - */ -static Pmic_Ut_Tests_t pmic_gpio_tests[] = -{ - /*! testID - * testDesc - */ - { - 6185, - "Pmic_gpioSetConfiguration : configure a gpio pin as NSLEEP1 function" - }, - { - 6186, - "Pmic_gpioSetConfiguration : configure a gpio pin as NSLEEP2 function" - }, - { - 6187, - "Pmic_gpioSetConfiguration : configure gpio pin as NRSTOUT_SOC function" - }, - { - 6189, - "Pmic_gpioSetConfiguration : configure a gpio pin as WAKEUP1 function" - }, - { - 6190, - "Pmic_gpioSetConfiguration : configure a gpio pin as WAKEUP2 function" - }, - { - 6191, - "Pmic_gpioSetConfiguration : configure a gpio pin as general purpose input/output function" - }, - { - 6192, - "Pmic_gpioSetConfiguration : configure gpio pin as I2C2 SCLK function" - }, - { - 6193, - "Pmic_gpioSetConfiguration : configure gpio pin as I2C2 SDA function" - }, - { - 6195, - "Pmic_gpioSetConfiguration : configure gpio pin as SPI CS function" - }, - { - 6196, - "Pmic_gpioSetConfiguration : configure gpio pin as SPI SDO function" - }, - { - 6197, - "Pmic_gpioSetConfiguration : configure gpio pin as watchdog trigger function" - }, - { - 0xAB1E, - "Pmic_gpioSetConfiguration : configure gpio pin 3 as ESM Error Pins for SOC" - }, - { - 6199, - "Pmic_gpioSetConfiguration : configure gpio pin as ESM Error Pins for MCU" - }, - { - 6201, - "Pmic_gpioSetConfiguration : configure gpio pin as SPMI SDATA function" - }, - { - 6202, - "Pmic_gpioSetConfiguration : configure gpio pin as SYNCCLKOUT function" - }, - { - 6204, - "Pmic_gpioSetConfiguration : configure gpio pin 10 as SYNCLKIN function" - }, - { - 6205, - "Pmic_gpioSetConfiguration : configure gpio pin as CLK32KOUT function" - }, - { - 6206, - "Pmic_gpioSetConfiguration : configure gpio pin 10 as CLK32KOUT function" - }, - { - 6207, - "Pmic_gpioSetConfiguration : configure gpio pin as Watchdog disable function" - }, - { - 6208, - "Pmic_gpioSetConfiguration : configure gpio pin as Watchdog disable function" - }, - { - 6209, - "Pmic_gpioSetConfiguration : configure gpio pin as Power Good Indication line function" - }, - { - 6210, - "Pmic_gpioSetConfiguration : Parameter validation for handle" - }, - { - 6211, - "Pmic_gpioSetConfiguration : Parameter validation for pin for Max Value" - }, - { - 6213, - "Pmic_gpioSetConfiguration : Gpio pin configuration validation for pinDir " - }, - { - 6214, - "Pmic_gpioSetConfiguration : Gpio pin configuration validation for outputSignalType" - }, - { - 6215, - "Pmic_gpioSetConfiguration : Gpio pin configuration validation for deglitchEnable " - }, - { - 6216, - "Pmic_gpioSetConfiguration : Gpio pin configuration validation for pinFunc" - }, - { - 6217, - "Pmic_gpioSetNPwronEnablePinConfiguration : nPWRON pin configuration validation for pinFunc " - }, - { - 6218, - "Pmic_gpioSetNPwronEnablePinConfiguration : nPWRON pin configuration validation for pinPolarity" - }, - { - 6219, - "Pmic_gpioGetConfiguration : Get required gpio pin configuration" - }, - { - 6220, - "Pmic_gpioGetConfiguration : Parameter validation for handle" - }, - { - 6221, - "Pmic_gpioGetConfiguration : Parameter validation for pin" - }, - { - 6222, - "Pmic_gpioGetConfiguration : Parameter validation for GpioCfg" - }, - { - 6223, - "Pmic_gpioGetValue : Get GPIO signal level " - }, - { - 6224, - "Pmic_gpioGetValue : Parameter validation for handle" - }, - { - 6225, - "Pmic_gpioGetValue : Parameter validation for pin" - }, - { - 6226, - "Pmic_gpioGetValue : Parameter validation for pinValue " - }, - { - 6227, - "Pmic_gpioSetValue : Set GPIO signal level " - }, - { - 6228, - "Pmic_gpioSetValue : Parameter validation for handle" - }, - { - 6229, - "Pmic_gpioSetValue : Parameter validation for pin " - }, - { - 6230, - "Pmic_gpioSetValue : Parameter validation for pinValue " - }, - { - 6231, - "Pmic_gpioSetValue : Set GPIO signal level for an input GPIO pin" - }, - { - 6234, - "Pmic_gpioSetIntr : GPIO1 Fall Interrupt Test" - }, - { - 6235, - "Pmic_gpioSetIntr : GPIO1 Rise Interrupt Test" - }, - { - 6236, - "Pmic_gpioSetIntr : GPIO2 Fall Interrupt Test" - }, - { - 6237, - "Pmic_gpioSetIntr : GPIO2 Rise Interrupt Test" - }, - { - 0xAB19, - "Pmic_gpioSetIntr : GPIO3 Fall Interrupt Test" - }, - { - 0xAB18, - "Pmic_gpioSetIntr : GPIO3 Rise Interrupt Test" - }, - { - 6240, - "Pmic_gpioSetIntr : GPIO4 Fall Interrupt Test" - }, - { - 6241, - "Pmic_gpioSetIntr : GPIO4 Rise Interrupt Test" - }, - { - 6242, - "Pmic_gpioSetIntr : GPIO5 Fall Interrupt Test" - }, - { - 6243, - "Pmic_gpioSetIntr : GPIO5 Rise Interrupt Test" - }, - { - 6244, - "Pmic_gpioSetIntr : GPIO6 Fall Interrupt Test" - }, - { - 6245, - "Pmic_gpioSetIntr : GPIO6 Rise Interrupt Test" - }, - { - 6246, - "Pmic_gpioSetIntr : GPIO7 Fall Interrupt Test" - }, - { - 6247, - "Pmic_gpioSetIntr : GPIO7 Rise Interrupt Test" - }, - { - 6248, - "Pmic_gpioSetIntr : GPIO8 Fall Interrupt Test" - }, - { - 6249, - "Pmic_gpioSetIntr : GPIO8 Rise Interrupt Test" - }, - { - 0xAB1D, - "Pmic_gpioSetIntr : GPIO9 Fall Interrupt Test" - }, - { - 0xAB1C, - "Pmic_gpioSetIntr : GPIO9 Rise Interrupt Test" - }, - { - 6252, - "Pmic_gpioSetIntr : GPIO10 Fall Interrupt Test" - }, - { - 6253, - "Pmic_gpioSetIntr : GPIO10 Rise Interrupt Test" - }, - { - 0xAB1B, - "Pmic_gpioSetIntr : GPIO11 Fall Interrupt Test" - }, - { - 0xAB1A, - "Pmic_gpioSetIntr : GPIO11 Rise Interrupt Test" - }, - { - 6256, - "Pmic_gpioSetIntr : Parameter validation for handle" - }, - { - 6257, - "Pmic_gpioSetIntr : Parameter validation for pin" - }, - { - 6258, - "Pmic_gpioSetIntr : Parameter validation for intrType" - }, - { - 6259, - "Pmic_gpioSetIntr : Parameter validation for maskPol" - }, - { - 6200, - "Pmic_gpioSetConfiguration : configure gpio pin as SPMI SCLK function" - }, - { - 7374, - "Pmic_irqMaskIntr/Pmic_irqGpioMaskIntr : Masking all interrupts test" - }, - { - 7375, - "Pmic_irqMaskIntr/Pmic_irqGpioMaskIntr : UnMasking all interrupts test" - }, - { - 7904, - "Pmic_gpioTps6594xNPwronPinGetValue : Gpio Tps6594x NPwron Get PinValue Test" - }, - { - 7905, - "Pmic_gpioTps6594xNPwronPinGetValue : Parameter validation for handle" - }, - { - 7906, - "Pmic_gpioTps6594xNPwronPinGetValue : Parameter validation for PinValue" - }, - { - 7879, - "Pmic_gpioGetConfiguration : Negative test for Pin 11 for HERA." - }, - { - 7880, - "Pmic_gpioTps6594xNPwronPinGetValue : Negative test for nPWRON Pin for hera" - }, - { - 7950, - "Pmic_gpioSetIntr : Test to verify GPIO7 Fall Asynchronous interrupt" - }, - { - 7951, - "Pmic_gpioSetIntr : Test to verify GPIO7 RISE Asynchronous interrupt" - }, - { - 8012, - "Pmic_fsmSetMissionState: Test to verify CAN WKUP" - }, - { - 0xAB21, - "Pmic_fsmSetMissionState: Test to verify GPIO WKUP1" - }, - { - 0xAB10, - "Pmic_fsmSetMissionState: Test to verify GPIO WKUP2" - }, - { - 8041, - "Pmic_irqGetErrStatus: Test to Clear all interrupts" - }, - { - 9887, - "Pmic_irqGetGpioMaskIntr/Pmic_irqMaskIntr: Test to Get Mask status of Gpio and Irq Interrupts" - }, - { - 9888, - "Pmic_irqGetGpioMaskIntr/Pmic_irqMaskIntr: Test to Get UnMask status of Gpio and Irq Interrupts" - }, - { - 9889, - "Pmic_irqGetGpioMaskIntr: Parameter validation for handle" - }, - { - 9890, - "Pmic_irqGetGpioMaskIntr: Parameter validation for pFallIntrMaskStat" - }, - { - 9891, - "Pmic_irqGetGpioMaskIntr: Parameter validation for pRiseIntrMaskStat" - }, - { - 9892, - "Pmic_irqGetMaskIntrStatus: Parameter validation for handle" - }, - { - 9893, - "Pmic_irqGetMaskIntrStatus: Parameter validation for pMaskStatus" - }, - { - 10558, - "Pmic_gpioGetNPwronEnablePinConfiguration : Parameter validation for pGpioCfg" - }, - { - 10559, - "Pmic_gpioSetNPwronEnablePinConfiguration : Test to set/get Pin function as PMIC_TPS6594X_NPWRON_PINFUNC_NONE" - }, - { - 10560, - "Pmic_gpioSetNPwronEnablePinConfiguration : Test to set/get Pin polarity for Enable Pin" - }, - { - 10561, - "Pmic_gpioSetConfiguration : Test to set/get GPIO pullup/pull down control configuration" - }, - { - 10562, - "Pmic_gpioSetConfiguration : Test to set/get signal deglitch time enable configuration" - }, - { - 10563, - "Pmic_gpioSetIntr : Test to verify GPIO1 disable Interrupt" - }, - { - 10564, - "Pmic_gpioSetConfiguration : Parameter validation for pullCtrl" - }, - { - 10565, - "Pmic_gpioSetNPwronEnablePinConfiguration : Test to set/get nPWRON/Enable pull up control configuration" - }, - { - 10566, - "Pmic_gpioSetNPwronEnablePinConfiguration : Parameter validation for pPmicCoreHandle" - }, - { - 10567, - "Pmic_gpioGetNPwronEnablePinConfiguration : Parameter validation for pPmicCoreHandle" - }, - { - 10568, - "Pmic_gpioSetNPwronEnablePinConfiguration : Test to set/get signal deglitch time enable configuration" - }, - { - 10569, - "Pmic_gpioSetNPwronEnablePinConfiguration : Parameter Validation for deglitchEnable for NPwronEnablePin" - }, - { - 10570, - "Pmic_gpioSetNPwronEnablePinConfiguration : Parameter Validation for pullCtrlfor NPwronEnablePin" - }, - { - 10571, - "Pmic_gpioSetConfiguration : Parameter validation for pin for Min Value" - }, - { - 10572, - "Pmic_gpioSetNPwronEnablePinConfiguration : Test to set/get Invalid validParams" - }, - { - 10753, - "Pmic_irqGetMaskIntrStatus: Parameter validation for irqNum" - }, - { - 10754, - "Pmic_irqClrErrStatus: Parameter validation for handle" - }, - { - 10755, - "Pmic_irqClrErrStatus: Parameter validation for irqNum" - }, - { - 10756, - "Pmic_irqGetErrStatus: Parameter validation for handle" - }, - { - 10757, - "Pmic_irqGetErrStatus: Parameter validation for pErrStat" - }, - { - 10758, - "Pmic_irqMaskIntr: Parameter validation for handle" - }, - { - 10759, - "Pmic_getNextErrorStatus: Parameter validation for handle" - }, - { - 10760, - "Pmic_getNextErrorStatus: Parameter validation for pErrStat" - }, - { - 10761, - "Pmic_getNextErrorStatus: Parameter validation for pIrqNum" - }, - { - 10762, - "Pmic_getNextErrorStatus: Test to check for error Status intStatus[0], intStatus[2]and intStatus[3] not equal to zero" - }, - { - 10763, - "Pmic_irqGpioMaskIntr: Parameter validation for handle" - }, - { - 10764, - "Pmic_irqGpioMaskIntr: Parameter validation for irqGpioNum" - }, - { - 10765, - "Pmic_irqGpioMaskIntr: Parameter validation for gpioIntrType" - }, - { - 10766, - "Pmic_irqGpioMaskIntr: Parameter validation for irqGpioNum on Hera device type" - }, - { - 10767, - "Pmic_irqGetGpioMaskIntr: Parameter validation for irqGpioNum" - }, - { - 10768, - "Pmic_irqGetGpioMaskIntr: Parameter validation for gpioIntrType" - }, - { - 10769, - "Pmic_irqGetGpioMaskIntr: Parameter validation for irqGpioNum on Hera device type" - }, - { - 10770, - "Pmic_irqGpioMaskIntr: Test for Masking All GPIO Interrupts for Leo device type check - Code covrage" - }, - { - 8852, - "Pmic_gpioTests: Dynamic Coverage Gaps and Fault Injection Tests" - }, -}; - -/*! - * \brief configure a gpio pin as NSLEEP1 function - */ -static void test_pmic_gpio_setCfgGpioPin_nSLEEP1(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_GpioCfg_t gpioCfg_rd = {PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT,}; - int pin = 0U; - uint8_t pins[] = { 1U, 2U, 3U, 4U, 5U, 6U, 7U, 8U, 9U, 10U, 11U}; - uint8_t pinMax = 0; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_NSLEEP1, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(6185, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pinMax = PMIC_TPS6594X_GPIO11_PIN; - gpioCfg.pinFunc = PMIC_TPS6594X_GPIO_PINFUNC_NSLEEP1; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pinMax = PMIC_LP8764X_GPIO10_PIN; - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_NSLEEP1; - } - - for(pin = 0U; pin < pinMax; pin++) - { - /* PMIC-A GPIO3 pin Causing Reset on J721 EVM */ - if((3U == pins[pin]) && - (J721E_LEO_PMICA_DEVICE == pmic_device_info)) - { - continue; - } - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - /* PMIC-A GPIO5/ GPIO6 pin Causing Reset on J721 EVM */ - if(((5U == pins[pin]) || (6U == pins[pin])) && - (J721E_LEO_PMICA_DEVICE == pmic_device_info)) - { - continue; - } - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - /* Should not break SPI Comm Lines */ - if((PMIC_INTF_SPI == pPmicCoreHandle->commMode) && - ((1U == pins[pin]) || (2U == pins[pin]))) - { - continue; - } - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - /* Should not break SPI Comm Lines */ - if((PMIC_INTF_SPI == pPmicCoreHandle->commMode) && - ((2U == pins[pin]) || (3U == pins[pin]))) - { - continue; - } - } - - /* GPIO Pins 1, 2 and 10 are supported on PMIC-B on J721EVM. - * Refer to 7457 for more details - */ - if((!((1U == pins[pin]) || (2U == pins[pin]) || (10U == pins[pin]))) && - (J721E_LEO_PMICB_DEVICE == pmic_device_info)) - { - continue; - } - - if(((3U == pins[pin]) || (4U == pins[pin]) || - (5U == pins[pin]) || (6U == pins[pin])) && - (J7VCL_LEO_PMICA_DEVICE == pmic_device_info)) - { - if(4U == pins[pin]) - { - Pmic_irqGpioMaskIntr(pPmicCoreHandle, - PMIC_TPS6594X_IRQ_GPIO_4_INT_MASK_NUM, - PMIC_IRQ_MASK, - PMIC_IRQ_GPIO_RISE_INT_TYPE); - } - else - { - continue; - } - } - - if(((1U == pins[pin]) || (8U == pins[pin]) || - (9U == pins[pin]) || (10U == pins[pin])) && - (J7VCL_HERA_PMICB_DEVICE == pmic_device_info)) - { - continue; - } - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, - pins[pin], - gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioGetConfiguration(pPmicCoreHandle, - pins[pin], - &gpioCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(gpioCfg.pinFunc, gpioCfg_rd.pinFunc); - } - pmic_testResultUpdate_pass(6185, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief configure a gpio pin as NSLEEP2 function - */ -static void test_pmic_gpio_setCfgGpioPin_nSLEEP2(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_GpioCfg_t gpioCfg_rd = {PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT,}; - int pin = 0U; - uint8_t pins[] = { 1U, 2U, 3U, 4U, 5U, 6U, 7U, 8U, 9U, 10U, 11U}; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_NSLEEP2, - PMIC_GPIO_HIGH - }; - uint8_t pinMax = 0; - - test_pmic_print_unity_testcase_info(6186, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pinMax = PMIC_TPS6594X_GPIO11_PIN; - gpioCfg.pinFunc = PMIC_TPS6594X_GPIO_PINFUNC_NSLEEP1; - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pinMax = PMIC_LP8764X_GPIO10_PIN; - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_NSLEEP2; - } - - for(pin = 0U; pin < pinMax; pin++) - { - /* PMIC-A GPIO3 pin Causing Reset on J721 EVM */ - if((3U == pins[pin]) && - (J721E_LEO_PMICA_DEVICE == pmic_device_info)) - { - continue; - } - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - /* PMIC-A GPIO5/ GPIO6 pin Causing Reset on J721 EVM */ - if(((5U == pins[pin]) || (6U == pins[pin])) && - (J721E_LEO_PMICA_DEVICE == pmic_device_info)) - { - continue; - } - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - /* Should not break SPI Comm Lines */ - if((PMIC_INTF_SPI == pPmicCoreHandle->commMode) && - ((1U == pins[pin]) || (2U == pins[pin]))) - { - continue; - } - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - /* Should not break SPI Comm Lines */ - if((PMIC_INTF_SPI == pPmicCoreHandle->commMode) && - ((2U == pins[pin]) || (3U == pins[pin]))) - { - continue; - } - } - - /* GPIO Pins 1, 2 and 10 are supported on PMIC-B on J721EVM. - * Refer to 7457 for more details - */ - if((!((1U == pins[pin]) || (2U == pins[pin]) || (10U == pins[pin]))) && - (J721E_LEO_PMICB_DEVICE == pmic_device_info)) - { - continue; - } - - if(((3U == pins[pin]) || (4U == pins[pin]) || - (5U == pins[pin]) || (6U == pins[pin])) && - (J7VCL_LEO_PMICA_DEVICE == pmic_device_info)) - { - if(4U == pins[pin]) - { - Pmic_irqGpioMaskIntr(pPmicCoreHandle, - PMIC_TPS6594X_IRQ_GPIO_4_INT_MASK_NUM, - PMIC_IRQ_MASK, - PMIC_IRQ_GPIO_RISE_INT_TYPE); - } - else - { - continue; - } - } - - if(((1U == pins[pin]) || (8U == pins[pin]) || - (9U == pins[pin]) || (10U == pins[pin])) && - (J7VCL_HERA_PMICB_DEVICE == pmic_device_info)) - { - continue; - } - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, - pins[pin], - gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioGetConfiguration(pPmicCoreHandle, - pins[pin], - &gpioCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(gpioCfg.pinFunc, gpioCfg_rd.pinFunc); - } - pmic_testResultUpdate_pass(6186, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief configure gpio pin as NRSTOUT_SOC function - */ -static void test_pmic_gpio_setCfgGpioPin_nRstOut_soc(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t pins[] = { 1U, 11U}; - int pin = 0U; - Pmic_GpioCfg_t gpioCfg_rd = {PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT,}; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO1_GPIO11_NRSTOUT_SOC, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(6187, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - gpioCfg.pinFunc = PMIC_TPS6594X_GPIO_PINFUNC_GPIO1_GPIO11_NRSTOUT_SOC; - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pins[0U] = 1U; - pins[1U] = 10U; - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO1_GPIO10_NRSTOUT_SOC; - } - - for(pin = 0U; pin < (sizeof(pins)/sizeof(pins[0U])); pin++) - { - if((J721E_LEO_PMICA_DEVICE == pmic_device_info) && - ((5U == pins[pin]) || (6U == pins[pin]))) - { - /* - * GPIO5/ GPIO6 pin of PMIC-A is connected to LEOA_SCLK and LEOA_SDATA - * on J721EVM board causing hang, when programming NRSTOUT signal. - */ - continue; - } - - if((J721E_LEO_PMICB_DEVICE == pmic_device_info) && (11U == pins[pin])) - { - /* - * GPIO11 pin of PMIC-B is connected to 'EN_3V3IO_LDSW' - * on J721EVM board causing hang, when programming NRSTOUT signal. - */ - continue; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - /* Should not break SPI Comm Lines */ - if((PMIC_INTF_SPI == pPmicCoreHandle->commMode) && - (1U == pins[pin])) - { - continue; - } - } - - - if(((1U == pins[pin]) || (10U == pins[pin])) && - (J7VCL_HERA_PMICB_DEVICE == pmic_device_info)) - { - continue; - } - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, - pins[pin], - gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioGetConfiguration(pPmicCoreHandle, - pins[pin], - &gpioCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(gpioCfg.pinFunc, gpioCfg_rd.pinFunc); - } - pmic_testResultUpdate_pass(6187, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief configure a gpio pin as WAKEUP1 function - */ -static void test_pmic_gpio_setCfgGpioPin_wakeup1(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_GpioCfg_t gpioCfg_rd = {PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT,}; - int pin = 0U; - uint8_t pins[] = { 1U, 2U, 3U, 4U, 5U, 6U, 7U, 8U, 9U, 10U, 11U}; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_WKUP1, - PMIC_GPIO_HIGH - }; - uint8_t pinMax = 0; - - test_pmic_print_unity_testcase_info(6189, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pinMax = PMIC_TPS6594X_GPIO11_PIN; - gpioCfg.pinFunc = PMIC_TPS6594X_GPIO_PINFUNC_WKUP1; - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pinMax = PMIC_LP8764X_GPIO10_PIN; - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_WKUP1; - } - - for(pin = 0U; pin < pinMax; pin++) - { - /* PMIC-A GPIO3 pin Causing Reset on J721 EVM */ - if((3U == pins[pin]) && - (J721E_LEO_PMICA_DEVICE == pmic_device_info)) - { - continue; - } - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - /* PMIC-A GPIO5/ GPIO6 pin Causing Reset on J721 EVM */ - if(((5U == pins[pin]) || (6U == pins[pin])) && - (J721E_LEO_PMICA_DEVICE == pmic_device_info)) - { - continue; - } - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - /* Should not break SPI Comm Lines */ - if((PMIC_INTF_SPI == pPmicCoreHandle->commMode) && - ((1U == pins[pin]) || (2U == pins[pin]))) - { - continue; - } - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - /* Should not break SPI Comm Lines */ - if((PMIC_INTF_SPI == pPmicCoreHandle->commMode) && - ((2U == pins[pin]) || (3U == pins[pin]))) - { - continue; - } - } - - /* GPIO Pins 1, 2 and 10 are supported on PMIC-B on J721EVM. - * Refer to 7457 for more details - */ - if((!((1U == pins[pin]) || (2U == pins[pin]) || (10U == pins[pin]))) && - (J721E_LEO_PMICB_DEVICE == pmic_device_info)) - { - continue; - } - - if(((3U == pins[pin]) || (4U == pins[pin]) || - (5U == pins[pin]) || (6U == pins[pin])) && - (J7VCL_LEO_PMICA_DEVICE == pmic_device_info)) - { - if(4U == pins[pin]) - { - Pmic_irqGpioMaskIntr(pPmicCoreHandle, - PMIC_TPS6594X_IRQ_GPIO_4_INT_MASK_NUM, - PMIC_IRQ_MASK, - PMIC_IRQ_GPIO_RISE_INT_TYPE); - } - else - { - continue; - } - } - - if(((1U == pins[pin]) || (8U == pins[pin]) || - (9U == pins[pin]) || (10U == pins[pin])) && - (J7VCL_HERA_PMICB_DEVICE == pmic_device_info)) - { - continue; - } - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, - pins[pin], - gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioGetConfiguration(pPmicCoreHandle, - pins[pin], - &gpioCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(gpioCfg.pinFunc, gpioCfg_rd.pinFunc); - } - pmic_testResultUpdate_pass(6189, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief configure a gpio pin as WAKEUP2 function - */ -static void test_pmic_gpio_setCfgGpioPin_wakeup2(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_GpioCfg_t gpioCfg_rd = {PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT,}; - int pin = 0U; - uint8_t pins[] = { 1U, 2U, 3U, 4U, 5U, 6U, 7U, 8U, 9U, 10U, 11U}; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_WKUP2, - PMIC_GPIO_HIGH - }; - uint8_t pinMax = 0; - - test_pmic_print_unity_testcase_info(6190, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pinMax = PMIC_TPS6594X_GPIO11_PIN; - gpioCfg.pinFunc = PMIC_TPS6594X_GPIO_PINFUNC_WKUP2; - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pinMax = PMIC_LP8764X_GPIO10_PIN; - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_WKUP2; - } - - for(pin = 0U; pin < pinMax; pin++) - { - /* PMIC-A GPIO3 pin Causing Reset on J721 EVM */ - if((3U == pins[pin]) && - (J721E_LEO_PMICA_DEVICE == pmic_device_info)) - { - continue; - } - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - /* PMIC-A GPIO5/ GPIO6 pin Causing Reset on J721 EVM */ - if(((5U == pins[pin]) || (6U == pins[pin])) && - (J721E_LEO_PMICA_DEVICE == pmic_device_info)) - { - continue; - } - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - /* Should not break SPI Comm Lines */ - if((PMIC_INTF_SPI == pPmicCoreHandle->commMode) && - ((1U == pins[pin]) || (2U == pins[pin]))) - { - continue; - } - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - /* Should not break SPI Comm Lines */ - if((PMIC_INTF_SPI == pPmicCoreHandle->commMode) && - ((2U == pins[pin]) || (3U == pins[pin]))) - { - continue; - } - } - - /* GPIO Pins 1, 2 and 10 are supported on PMIC-B on J721EVM. - * Refer to 7457 for more details - */ - if((!((1U == pins[pin]) || (2U == pins[pin]) || (10U == pins[pin]))) && - (J721E_LEO_PMICB_DEVICE == pmic_device_info)) - { - continue; - } - - if(((3U == pins[pin]) || (4U == pins[pin]) || - (5U == pins[pin]) || (6U == pins[pin])) && - (J7VCL_LEO_PMICA_DEVICE == pmic_device_info)) - { - if(4U == pins[pin]) - { - Pmic_irqGpioMaskIntr(pPmicCoreHandle, - PMIC_TPS6594X_IRQ_GPIO_4_INT_MASK_NUM, - PMIC_IRQ_MASK, - PMIC_IRQ_GPIO_RISE_INT_TYPE); - } - else - { - continue; - } - } - - if(((1U == pins[pin]) || (8U == pins[pin]) || - (9U == pins[pin]) || (10U == pins[pin])) && - (J7VCL_HERA_PMICB_DEVICE == pmic_device_info)) - { - continue; - } - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, - pins[pin], - gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioGetConfiguration(pPmicCoreHandle, - pins[pin], - &gpioCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(gpioCfg.pinFunc, gpioCfg_rd.pinFunc); - } - pmic_testResultUpdate_pass(6190, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief configure a gpio pin as general purpose I/O function - */ -static void test_pmic_gpio_setCfgGpioPin_gpio(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_GpioCfg_t gpioCfg_rd = {PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT,}; - int pin = 0U; - uint8_t pins[] = { 1U, 2U, 3U, 4U, 5U, 6U, 7U, 8U, 9U, 10U, 11U}; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO, - PMIC_GPIO_HIGH - }; - uint8_t pinMax = 0; - - test_pmic_print_unity_testcase_info(6191, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pinMax = PMIC_TPS6594X_GPIO11_PIN; - gpioCfg.pinFunc = PMIC_TPS6594X_GPIO_PINFUNC_GPIO; - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pinMax = PMIC_LP8764X_GPIO10_PIN; - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO; - } - - for(pin = 0U; pin < pinMax; pin++) - { - /* On J721E, PMIC-A GPIO11 is connected to H_SOC_PORz, - * GPIO5/ GPIO6 pin of PMIC-A is connected to LEOA_SCLK and LEOA_SDATA - * which resets entire SOC. - */ - if(((11U == pins[pin]) || (5U == pins[pin]) || (6U == pins[pin])) && - (pmic_device_info == J721E_LEO_PMICA_DEVICE)) - { - continue; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - /* Should not break SPI Comm Lines */ - if((PMIC_INTF_SPI == pPmicCoreHandle->commMode) && - ((1U == pins[pin]) || (2U == pins[pin]))) - { - continue; - } - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - /* Should not break SPI Comm Lines */ - if((PMIC_INTF_SPI == pPmicCoreHandle->commMode) && - ((2U == pins[pin]) || (3U == pins[pin]))) - { - continue; - } - } - - /* GPIO Pins 1, 2 and 10 are supported on PMIC-B on J721EVM. - * Refer to 7457 for more details - */ - if((!((1U == pins[pin]) || (2U == pins[pin]) || (10U == pins[pin]))) && - (J721E_LEO_PMICB_DEVICE == pmic_device_info)) - { - continue; - } - - if((J7VCL_LEO_PMICA_DEVICE == pmic_device_info) && - ((5U == pins[pin]) || (6U == pins[pin]) || (11U == pins[pin]))) - { - continue; - } - - if(((8U == pins[pin]) || (9U == pins[pin]) || (10U == pins[pin])) && - (J7VCL_HERA_PMICB_DEVICE == pmic_device_info)) - { - continue; - } - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, - pins[pin], - gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioGetConfiguration(pPmicCoreHandle, - pins[pin], - &gpioCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(gpioCfg.pinFunc, gpioCfg_rd.pinFunc); - } - pmic_testResultUpdate_pass(6191, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief configure gpio pin as I2C2 SCLK function - */ -static void test_pmic_gpio_setCfgGpioPin_i2c2_sclk(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - int pin = 1U; - Pmic_GpioCfg_t gpioCfg_rd = {PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT,}; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO1_SCL_I2C2_CS_SPI, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(6192, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pin = 1U; - gpioCfg.pinFunc = PMIC_TPS6594X_GPIO_PINFUNC_GPIO1_SCL_I2C2_CS_SPI; - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pin = 2U; - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO2_SCL_I2C2; - } - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - /* Should not break SPI Comm Lines */ - if((PMIC_INTF_SPI == pPmicCoreHandle->commMode) && - ((1U == pin) || (2U == pin))) - { - pmic_testResultUpdate_ignore(6192, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - /* Should not break SPI Comm Lines */ - if((PMIC_INTF_SPI == pPmicCoreHandle->commMode) && - ((2U == pin) || (3U == pin))) - { - pmic_testResultUpdate_ignore(6192, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - } - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioGetConfiguration(pPmicCoreHandle, pin, &gpioCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(gpioCfg.pinFunc, gpioCfg_rd.pinFunc); - - pmic_testResultUpdate_pass(6192, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief configure gpio pin as I2C2 SDA function - */ -static void test_pmic_gpio_setCfgGpioPin_i2c2_sda(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - int pin = 2U; - Pmic_GpioCfg_t gpioCfg_rd = {PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT,}; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO2_SDA_I2C2_SDO_SPI, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(6193, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pin = 2U; - gpioCfg.pinFunc = PMIC_TPS6594X_GPIO_PINFUNC_GPIO2_SDA_I2C2_SDO_SPI; - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pin = 3U; - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO3_SDA_I2C2; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - /* Should not break SPI Comm Lines */ - if((PMIC_INTF_SPI == pPmicCoreHandle->commMode) && - ((1U == pin) || (2U == pin))) - { - pmic_testResultUpdate_ignore(6193, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - /* Should not break SPI Comm Lines */ - if((PMIC_INTF_SPI == pPmicCoreHandle->commMode) && - ((2U == pin) || (3U == pin))) - { - pmic_testResultUpdate_ignore(6193, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - } - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioGetConfiguration(pPmicCoreHandle, pin, &gpioCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(gpioCfg.pinFunc, gpioCfg_rd.pinFunc); - - pmic_testResultUpdate_pass(6193, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief configure gpio pin as SPI CS function - */ -static void test_pmic_gpio_setCfgGpioPin_spi_cs(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - int pin = 1U; - Pmic_GpioCfg_t gpioCfg_rd = {PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT,}; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO1_SCL_I2C2_CS_SPI, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(6195, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pin = 1U; - gpioCfg.pinFunc = PMIC_TPS6594X_GPIO_PINFUNC_GPIO1_SCL_I2C2_CS_SPI; - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pin = 2U; - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO2_CS_SPI; - } - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioGetConfiguration(pPmicCoreHandle, pin, &gpioCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(gpioCfg.pinFunc, gpioCfg_rd.pinFunc); - - pmic_testResultUpdate_pass(6195, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief configure gpio pin as SPI SDO function - */ -static void test_pmic_gpio_setCfgGpioPin_spi_sdo(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - int pin = 2U; - Pmic_GpioCfg_t gpioCfg_rd = {PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT,}; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO2_SDA_I2C2_SDO_SPI, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(6196, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pin = 2U; - gpioCfg.pinFunc = PMIC_TPS6594X_GPIO_PINFUNC_GPIO2_SDA_I2C2_SDO_SPI; - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pin = 3U; - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO3_SDO_SPI; - } - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioGetConfiguration(pPmicCoreHandle, pin, &gpioCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(gpioCfg.pinFunc, gpioCfg_rd.pinFunc); - - pmic_testResultUpdate_pass(6196, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief configure a gpio pin as Watchdog Trigger function - */ -static void test_pmic_gpio_setCfgGpioPin_wdt(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_GpioCfg_t gpioCfg_rd = {PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT,}; - int pin = 0U; - uint8_t pins[] = {2U, 11U}; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO2_GPIO11_TRIG_WDOG, - PMIC_GPIO_HIGH - }; - uint8_t pinMax = 0; - - test_pmic_print_unity_testcase_info(6197, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - pinMax = sizeof(pins)/sizeof(pins[0U]); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - gpioCfg.pinFunc = PMIC_TPS6594X_GPIO_PINFUNC_GPIO2_GPIO11_TRIG_WDOG; - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pins[1U] = 4U; - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO2_TRIG_WDOG; - } - - for(pin = 0U; pin < pinMax; pin++) - { - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - /* Should not break SPI Comm Lines */ - if((PMIC_INTF_SPI == pPmicCoreHandle->commMode) && - (2U == pins[pin])) - { - continue; - } - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - /* Should not break SPI Comm Lines */ - if((PMIC_INTF_SPI == pPmicCoreHandle->commMode) && - (2U == pins[pin])) - { - continue; - } - } - - if((J721E_LEO_PMICA_DEVICE == pmic_device_info) && - ((5U == pins[pin]) || (6U == pins[pin]))) - { - /* - * GPIO5/ GPIO6 pin of PMIC-A is connected to LEOA_SCLK and LEOA_SDATA - * on J721EVM board causing hang, when programming NRSTOUT signal. - */ - continue; - } - - if((J721E_LEO_PMICB_DEVICE == pmic_device_info) && (11U == pins[pin])) - { - /* - * GPIO11 pin of PMIC-B is connected to 'EN_3V3IO_LDSW' - * on J721EVM board causing hang, when programming TRIG_WDOG signal - */ - continue; - } - - if((PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) && - (4U == pins[pin])) - { - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO4_TRIG_WDOG; - } - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, - pins[pin], - gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - - pmicStatus = Pmic_gpioGetConfiguration(pPmicCoreHandle, - pins[pin], - &gpioCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(gpioCfg.pinFunc, gpioCfg_rd.pinFunc); - } - - pmic_testResultUpdate_pass(6197, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief configure gpio pin as ESM Error pin for MCU - */ -static void test_pmic_gpio_setCfgGpioPin_esm_mcu(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - int pin = 7U; - Pmic_GpioCfg_t gpioCfg_rd = {PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT,}; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO7_NERR_MCU, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(6199, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(6199, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO6_GPIO7_NERR_MCU; - } - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioGetConfiguration(pPmicCoreHandle, pin, &gpioCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(gpioCfg.pinFunc, gpioCfg_rd.pinFunc); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pin = 6U; - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioGetConfiguration(pPmicCoreHandle, - pin, - &gpioCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(gpioCfg.pinFunc, gpioCfg_rd.pinFunc); - - } - pmic_testResultUpdate_pass(6199, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief configure gpio pin as SPMI SCLK function - */ -static void test_pmic_gpio_setCfgGpioPin_spmi_sclk(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - int pin = 5U; - Pmic_GpioCfg_t gpioCfg_rd = {PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT,}; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO5_SCLK_SPMI, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(6200, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(6200, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - gpioCfg.pinFunc = PMIC_TPS6594X_GPIO_PINFUNC_GPIO5_SCLK_SPMI; - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pin = 8U; - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO8_SCLK_SPMI; - } - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioGetConfiguration(pPmicCoreHandle, pin, &gpioCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(gpioCfg.pinFunc, gpioCfg_rd.pinFunc); - pmic_testResultUpdate_pass(6200, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief configure gpio pin as SPMI SDATA function - */ -static void test_pmic_gpio_setCfgGpioPin_spmi_sdata(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - int pin = 6U; - Pmic_GpioCfg_t gpioCfg_rd = {PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT,}; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO6_SDATA_SPMI, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(6201, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(6201, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - gpioCfg.pinFunc = PMIC_TPS6594X_GPIO_PINFUNC_GPIO6_SDATA_SPMI; - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pin = 9U; - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO9_SDATA_SPMI; - } - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioGetConfiguration(pPmicCoreHandle, pin, &gpioCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(gpioCfg.pinFunc, gpioCfg_rd.pinFunc); - pmic_testResultUpdate_pass(6201, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief configure a gpio pin as SYNCCLKOUT function - */ -static void test_pmic_gpio_setCfgGpioPin_syncCLKOUT(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_GpioCfg_t gpioCfg_rd = {PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT,}; - int pin = 0U; - uint8_t pins[] = {8U, 10U, 9U}; - uint8_t pinMax = 3; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO8_GPIO10_SYNCCLKOUT, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(6202, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pinMax = 3U; - gpioCfg.pinFunc = PMIC_TPS6594X_GPIO_PINFUNC_GPIO8_GPIO10_SYNCCLKOUT; - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pins[0U] = 5U; - pins[1U] = 6U; - pinMax = 2U; - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO5_GPIO6_SYNCCLKOUT; - } - - for(pin = 0U; pin < pinMax; pin++) - { - /*! - * GPIO5/ GPIO6 pin of PMIC-A is connected to LEOA_SCLK and LEOA_SDATA - * which resets SOC - */ - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - if((J721E_LEO_PMICA_DEVICE == pmic_device_info) && - ((5U == pins[pin]) || (6U == pins[pin]))) - { - continue; - } - } - - /*! - * On PG1.0 J721 EVM, PMICA GPIO10 SYNCCLKOUT functionality - * is not supported - */ - if(PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - if((J721E_LEO_PMICA_DEVICE == pmic_device_info) && - (10U == pins[pin])) - { - continue; - } - } - - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (9U == pins[pin])) - { - gpioCfg.pinFunc = PMIC_TPS6594X_GPIO_PINFUNC_GPIO9_SYNCCLKOUT; - } - - /* GPIO Pins 1, 2 and 10 are supported on PMIC-B on J721EVM. - * Refer to 7457 for more details - */ - if((10U != pins[pin]) && (J721E_LEO_PMICB_DEVICE == pmic_device_info)) - { - continue; - } - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pins[pin], gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioGetConfiguration(pPmicCoreHandle, - pins[pin], - &gpioCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(gpioCfg.pinFunc, gpioCfg_rd.pinFunc); - } - pmic_testResultUpdate_pass(6202, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief configure gpio pin as SYNCCLKIN function - */ -static void test_pmic_gpio_setCfgGpioPin_synCLKIN(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - int pin = 10U; - Pmic_GpioCfg_t gpioCfg_rd = {PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT,}; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO10_SYNCCLKIN, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(6204, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - gpioCfg.pinFunc = PMIC_TPS6594X_GPIO_PINFUNC_GPIO10_SYNCCLKIN; - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pin = 5U; - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO5_SYNCCLKIN; - } - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioGetConfiguration(pPmicCoreHandle, pin, &gpioCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(gpioCfg.pinFunc, gpioCfg_rd.pinFunc); - pmic_testResultUpdate_pass(6204, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief configure a gpio pin as CLK32KOUT function - */ -static void test_pmic_gpio_setCfgGpioPin_clk32KOUT(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_GpioCfg_t gpioCfg_rd = {PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT,}; - int pin = 0U; - uint8_t pins[] = {3U, 4U, 8U}; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO3_GPIO4_GPIO8_CLK32KOUT, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(6205, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(6205, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(6205, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - for(pin = 0U; pin < sizeof(pins)/sizeof(pins[0U]); pin++) - { - /* PMICA GPIO3 pin Causing Reset on J721 EVM */ - if((3U == pins[pin]) && - (pmic_device_info == J721E_LEO_PMICA_DEVICE)) - { - continue; - } - - if((J7VCL_LEO_PMICA_DEVICE == pmic_device_info) && - ((3U == pins[pin]) || (5U == pins[pin]) || (6U == pins[pin]))) - { - continue; - } - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, - pins[pin], - gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioGetConfiguration(pPmicCoreHandle, - pins[pin], - &gpioCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(gpioCfg.pinFunc, gpioCfg_rd.pinFunc); - } - pmic_testResultUpdate_pass(6205, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief configure gpio pin10 as CLK32KOUT function - */ -static void test_pmic_gpio_setCfgGpioPin10_clk32KOUT(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - int pin = 10U; - Pmic_GpioCfg_t gpioCfg_rd = {PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT,}; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO10_CLK32KOUT, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(6206, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - /*! - * On PG1.0 J721 EVM, PMICA GPIO10 CLK32KOUT functionality - * is not supported - */ - if(PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - if(pmic_device_info == J721E_LEO_PMICA_DEVICE) - { - pmic_testResultUpdate_ignore(6206, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(6206, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioGetConfiguration(pPmicCoreHandle, pin, &gpioCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(gpioCfg.pinFunc, gpioCfg_rd.pinFunc); - pmic_testResultUpdate_pass(6206, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief configure gpio pin as Watchdog disable function - */ -static void test_pmic_gpio_setCfgGpioPin_wdg_disable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - int pin = 0U; - int pins[] = {8U, 9U}; - Pmic_GpioCfg_t gpioCfg_rd = {PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT,}; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO8_DISABLE_WDOG, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(6207, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(6207, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(6207, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - for(pin = 0U; pin < (sizeof(pins)/sizeof(pins[0])); pin++) - { - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (pins[pin] == 9U)) - { - gpioCfg.pinFunc = PMIC_TPS6594X_GPIO_PINFUNC_GPIO9_DISABLE_WDOG; - } - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, - pins[pin], - gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioGetConfiguration(pPmicCoreHandle, - pins[pin], - &gpioCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(gpioCfg.pinFunc, gpioCfg_rd.pinFunc); - } - pmic_testResultUpdate_pass(6207, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief configure gpio pin as Power Good Indication line function - */ -static void test_pmic_gpio_setCfgGpioPin_good_power(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - int pin = 0U; - int pins[3U] = {9U}; - int pinMax = 0U; - Pmic_GpioCfg_t gpioCfg_rd = {PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT,}; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO9_PGOOD, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(6209, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(6209, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pinMax = 1U; - gpioCfg.pinFunc = PMIC_TPS6594X_GPIO_PINFUNC_GPIO9_PGOOD; - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pins[0] = 9U; - pins[1] = 1U; - pins[2] = 6U; - pinMax = 3U; - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO9_PGOOD; - } - for(pin = 0U; pin < pinMax; pin++) - { - if((PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) && (pin > 0)) - { - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO1_GPIO6_PGOOD; - } - - if((J7VCL_HERA_PMICB_DEVICE == pmic_device_info) && - (9U == pins[pin])) - { - continue; - } - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pins[pin], gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioGetConfiguration(pPmicCoreHandle, pins[pin], &gpioCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(gpioCfg.pinFunc, gpioCfg_rd.pinFunc); - } - pmic_testResultUpdate_pass(6209, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for handle - */ -static void test_pmic_gpio_setCfgPrmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t pin = 1U; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_NSLEEP1, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(6210, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - pmicStatus = Pmic_gpioSetConfiguration(NULL, pin, gpioCfg); - TEST_ASSERT_EQUAL(pmicStatus, PMIC_ST_ERR_INV_HANDLE); - - pmic_testResultUpdate_pass(6210, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for pin for Max Value - */ -static void test_pmic_gpio_setCfgPrmValTest_pin(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t pin = 12U; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_NSLEEP1, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(6211, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(pmicStatus, PMIC_ST_ERR_INV_PARAM); - - pmic_testResultUpdate_pass(6211, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for pinDir - */ -static void test_pmic_gpio_setCfgPrmValTest_pinDir(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t pin = 1U; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_DIR_VALID_SHIFT, - 0x02, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_NSLEEP1, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(6213, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(pmicStatus, PMIC_ST_ERR_INV_PARAM); - - pmic_testResultUpdate_pass(6213, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for outputSignalType - */ -static void test_pmic_gpio_setCfgPrmValTest_outputSignalType(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t pin = 1U; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_OD_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - 0x02, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_NSLEEP1, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(6214, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(pmicStatus, PMIC_ST_ERR_INV_PARAM); - - pmic_testResultUpdate_pass(6214, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for deglitchEnable - */ -static void test_pmic_gpio_setCfgPrmValTest_deglitchEnable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t pin = 1U; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_DEGLITCH_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - 0x02, - PMIC_TPS6594X_GPIO_PINFUNC_NSLEEP1, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(6215, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(pmicStatus, PMIC_ST_ERR_INV_PARAM); - - pmic_testResultUpdate_pass(6215, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for pinFunc - */ -static void test_pmic_gpio_setCfgPrmValTest_pinFunc_case1(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t pin = 1U; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - 8U, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(6216, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(pmicStatus, PMIC_ST_ERR_INV_GPIO_FUNC); - - pmic_testResultUpdate_pass(6216, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for nPWRON pinFunc - */ -static void test_pmic_nPWRON_setCfgPrmValTest_pinFunc(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - 3U, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(6217, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(6217, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_gpioSetNPwronEnablePinConfiguration(pPmicCoreHandle, - gpioCfg); - TEST_ASSERT_EQUAL(pmicStatus, PMIC_ST_ERR_INV_GPIO_FUNC); - - pmic_testResultUpdate_pass(6217, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for Enable-pin Polarity - */ -static void test_pmic_enable_setCfgPrmValTest_pinPolarity(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_ENABLE_CFG_POLARITY_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_NSLEEP1, - 0x02U - }; - - test_pmic_print_unity_testcase_info(6218, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - pmicStatus = Pmic_gpioSetNPwronEnablePinConfiguration(pPmicCoreHandle, - gpioCfg); - TEST_ASSERT_EQUAL(pmicStatus, PMIC_ST_ERR_INV_PARAM); - - pmic_testResultUpdate_pass(6218, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Get required GPIO pin configuration - */ -static void test_pmic_gpio_getCfgGpioPin(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - int pin = 1U; - Pmic_GpioCfg_t gpioCfg_rd = {PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | - PMIC_GPIO_CFG_DIR_VALID_SHIFT,}; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | PMIC_GPIO_CFG_DIR_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_NSLEEP1, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(6219, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - /* Should not break SPI Comm Lines */ - if((PMIC_INTF_SPI == pPmicCoreHandle->commMode) && - ((1U == pin) || (2U == pin))) - { - pmic_testResultUpdate_ignore(6219, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - } - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - gpioCfg.pinFunc = PMIC_TPS6594X_GPIO_PINFUNC_NSLEEP1; - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pin = 2U; - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_NSLEEP1; - } - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioGetConfiguration(pPmicCoreHandle, pin, &gpioCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(gpioCfg.pinFunc, gpioCfg_rd.pinFunc); - TEST_ASSERT_EQUAL(gpioCfg.pinDir, gpioCfg_rd.pinDir); - - pmic_testResultUpdate_pass(6219, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for handle - */ -static void test_pmic_gpio_getCfgPrmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t pin = 1U; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_NSLEEP1, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(6220, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - pmicStatus = Pmic_gpioGetConfiguration(NULL, pin, &gpioCfg); - TEST_ASSERT_EQUAL(pmicStatus, PMIC_ST_ERR_INV_HANDLE); - - pmic_testResultUpdate_pass(6220, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for pin - */ -static void test_pmic_gpio_getCfgPrmValTest_pin(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t pin = 12U; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_NSLEEP1, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(6221, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - pmicStatus = Pmic_gpioGetConfiguration(pPmicCoreHandle, pin, &gpioCfg); - TEST_ASSERT_EQUAL(pmicStatus, PMIC_ST_ERR_INV_PARAM); - - pmic_testResultUpdate_pass(6221, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for GpioCfg - */ -static void test_pmic_gpio_getCfgPrmValTest_gpioCfg(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t pin = 1U; - - test_pmic_print_unity_testcase_info(6222, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - pmicStatus = Pmic_gpioGetConfiguration(pPmicCoreHandle, pin, NULL); - TEST_ASSERT_EQUAL(pmicStatus, PMIC_ST_ERR_NULL_PARAM); - - pmic_testResultUpdate_pass(6222, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Get GPIO signal level - */ -static void test_pmic_gpio_getValueGpioPin1_signalLevel(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t pin = 1U; - uint8_t pinValue = PMIC_GPIO_HIGH; - uint8_t pinValue_rd; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | - PMIC_GPIO_CFG_DIR_VALID_SHIFT | - PMIC_GPIO_CFG_PULL_VALID_SHIFT | - PMIC_GPIO_CFG_OD_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_PUSH_PULL_OUTPUT, - PMIC_GPIO_PULL_UP, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(6223, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - /* Should not break SPI Comm Lines */ - if((PMIC_INTF_SPI == pPmicCoreHandle->commMode) && - ((1U == pin) || (2U == pin))) - { - pmic_testResultUpdate_ignore(6223, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - } - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - gpioCfg.pinFunc = PMIC_TPS6594X_GPIO_PINFUNC_GPIO; - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO; - } - - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(6223, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioGetValue(pPmicCoreHandle, pin, &pinValue_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pinValue, pinValue_rd); - - pmic_testResultUpdate_pass(6223, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for handle - */ -static void test_pmic_gpio_getValuePrmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t pin = 1U; - uint8_t pinValue; - - test_pmic_print_unity_testcase_info(6224, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - pmicStatus = Pmic_gpioGetValue(NULL, pin, &pinValue); - TEST_ASSERT_EQUAL(pmicStatus, PMIC_ST_ERR_INV_HANDLE); - - pmic_testResultUpdate_pass(6224, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for pin - */ -static void test_pmic_gpio_getValuePrmValTest_pin(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t pin = 12U; - uint8_t pinValue; - - test_pmic_print_unity_testcase_info(6225, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - pmicStatus = Pmic_gpioGetValue(pPmicCoreHandle,pin,&pinValue); - TEST_ASSERT_EQUAL(pmicStatus, PMIC_ST_ERR_INV_PARAM); - - pmic_testResultUpdate_pass(6225, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for pinValue - */ -static void test_pmic_gpio_getValuePrmValTest_pinValue(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t pin = 1U; - - test_pmic_print_unity_testcase_info(6226, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - pmicStatus = Pmic_gpioGetValue(pPmicCoreHandle, pin, NULL); - TEST_ASSERT_EQUAL(pmicStatus, PMIC_ST_ERR_NULL_PARAM); - - pmic_testResultUpdate_pass(6226, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Set GPIO signal level - */ -static void test_pmic_gpio_setValueGpioPin1_signalLevel(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t pin = 1U; - uint8_t pinValue = PMIC_GPIO_LOW; - uint8_t pinValue_rd; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | PMIC_GPIO_CFG_DIR_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(6227, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - /* Should not break SPI Comm Lines */ - if((PMIC_INTF_SPI == pPmicCoreHandle->commMode) && - ((1U == pin) || (2U == pin))) - { - pmic_testResultUpdate_ignore(6227, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - } - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - gpioCfg.pinFunc = PMIC_TPS6594X_GPIO_PINFUNC_GPIO; - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO; - } - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(6227, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - if(J7VCL_HERA_PMICB_DEVICE != pmic_device_info) - { - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioGetValue(pPmicCoreHandle, pin, &pinValue_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pinValue, pinValue_rd); - } - - pinValue = PMIC_GPIO_HIGH; - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioGetValue(pPmicCoreHandle, pin, &pinValue_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pinValue, pinValue_rd); - - pmic_testResultUpdate_pass(6227, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for handle - */ -static void test_pmic_gpio_setValuePrmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t pin = 1U; - uint8_t pinValue = PMIC_GPIO_HIGH; - - test_pmic_print_unity_testcase_info(6228, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - pmicStatus = Pmic_gpioSetValue(NULL, pin, pinValue); - TEST_ASSERT_EQUAL(pmicStatus, PMIC_ST_ERR_INV_HANDLE); - - pmic_testResultUpdate_pass(6228, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for pin - */ -static void test_pmic_gpio_setValuePrmValTest_pin(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t pin = 12U; - uint8_t pinValue = PMIC_GPIO_HIGH; - - test_pmic_print_unity_testcase_info(6229, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(pmicStatus, PMIC_ST_ERR_INV_PARAM); - - pmic_testResultUpdate_pass(6229, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for pinValue - */ -static void test_pmic_gpio_setValuePrmValTest_pinValue(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t pin = 1U; - uint8_t pinValue = 2U; - - test_pmic_print_unity_testcase_info(6230, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(pmicStatus, PMIC_ST_ERR_INV_PARAM); - - pmic_testResultUpdate_pass(6230, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Set GPIO signal level for an input GPIO pin - */ -static void test_pmic_gpio_setValueGpioPin1_input(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t pinValue = PMIC_GPIO_HIGH; - uint8_t pin = 1U; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_DIR_VALID_SHIFT, - PMIC_GPIO_INPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_NSLEEP1, - PMIC_GPIO_HIGH - }; - Pmic_GpioCfg_t gpioCfg_rd = {PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT,}; - - test_pmic_print_unity_testcase_info(6231, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - gpioCfg.pinFunc = PMIC_TPS6594X_GPIO_PINFUNC_GPIO; - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pin = 2U; - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO; - } - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioGetConfiguration(pPmicCoreHandle, pin, &gpioCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(gpioCfg.pinDir, gpioCfg_rd.pinDir); - - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(pmicStatus, PMIC_ST_ERR_INV_PARAM); - - pmic_testResultUpdate_pass(6231, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Function to extract and clear interrupts - */ -static void pmic_gpioTest_intClr(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_IrqStatus_t errStat = {0U}; - uint8_t irqNum = 0U; - - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, false); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - while((errStat.intStatus[0] != 0U) || (errStat.intStatus[1] != 0U) || - (errStat.intStatus[2] != 0U) || (errStat.intStatus[3] != 0U)) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, irqNum); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } -} - -/*! - * \brief Test to verify GPIO1 fall interrupt - */ -static void test_pmic_gpio1_testFall_interrupt(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - int8_t timeout = 10U; - uint8_t pin = 1U; - uint8_t pinValue = PMIC_GPIO_HIGH; - uint8_t intrType = PMIC_GPIO_FALL_INTERRUPT; - uint8_t maskPol = PMIC_GPIO_POL_LOW; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - uint8_t nextedIrq = 0U; - uint8_t intMask = 0U; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | PMIC_GPIO_CFG_DIR_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO, - PMIC_GPIO_HIGH - }; - - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - gpioCfg.validParams = PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | - PMIC_GPIO_CFG_DIR_VALID_SHIFT | - PMIC_GPIO_CFG_OD_VALID_SHIFT | - PMIC_GPIO_CFG_PULL_VALID_SHIFT; - gpioCfg.outputSignalType = PMIC_GPIO_PUSH_PULL_OUTPUT; - gpioCfg.pullCtrl = PMIC_GPIO_PULL_UP; - } - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - gpioCfg.validParams = PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | - PMIC_GPIO_CFG_DIR_VALID_SHIFT | - PMIC_GPIO_CFG_OD_VALID_SHIFT | - PMIC_GPIO_CFG_PULL_VALID_SHIFT; - gpioCfg.outputSignalType = PMIC_GPIO_PUSH_PULL_OUTPUT; - gpioCfg.pullCtrl = PMIC_GPIO_PULL_UP; - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO; - } - - test_pmic_print_unity_testcase_info(6234, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - /* Should not break SPI Comm Lines */ - if(PMIC_INTF_SPI == pPmicCoreHandle->commMode) - { - pmic_testResultUpdate_ignore(6234, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - } - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(6234, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(6234, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_TPS6594X_IRQ_GPIO_1_INT_MASK_NUM; - irqNum = PMIC_TPS6594X_GPIO1_INT; - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_LP8764X_IRQ_GPIO_1_INT_MASK_NUM; - irqNum = PMIC_LP8764X_GPIO1_INT; - } - /* Un Masking GPIO 1 FALL Interrupt */ - Pmic_irqGpioMaskIntr(pPmicCoreHandle, - intMask, - PMIC_IRQ_UNMASK, - PMIC_IRQ_GPIO_FALL_INT_TYPE); - - /* To clear the interrupts*/ - pmic_gpioTest_intClr(); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetIntr(pPmicCoreHandle, pin , intrType, maskPol); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pinValue = PMIC_GPIO_LOW; - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[irqNum/32U] & (1U << (irqNum % 32U))) != 0U)) - { - while(irqNum != nextedIrq) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &nextedIrq); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - irqNum); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(6234, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Test to verify GPIO1 rise interrupt - */ -static void test_pmic_gpio1_testRise_interrupt(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - int8_t timeout = 10U; - uint8_t pin = 1U; - uint8_t pinValue = PMIC_GPIO_LOW; - uint8_t intrType = PMIC_GPIO_RISE_INTERRUPT; - uint8_t maskPol = PMIC_GPIO_POL_HIGH; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - uint8_t nextedIrq = 0U; - uint8_t intMask = 0U; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | PMIC_GPIO_CFG_DIR_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO, - PMIC_GPIO_HIGH - }; - - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - gpioCfg.validParams = PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | - PMIC_GPIO_CFG_DIR_VALID_SHIFT | - PMIC_GPIO_CFG_OD_VALID_SHIFT | - PMIC_GPIO_CFG_PULL_VALID_SHIFT; - gpioCfg.outputSignalType = PMIC_GPIO_PUSH_PULL_OUTPUT; - gpioCfg.pullCtrl = PMIC_GPIO_PULL_UP; - } - - test_pmic_print_unity_testcase_info(6235, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - /* Should not break SPI Comm Lines */ - if(PMIC_INTF_SPI == pPmicCoreHandle->commMode) - { - pmic_testResultUpdate_ignore(6235, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - } - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(6235, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(6235, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_TPS6594X_IRQ_GPIO_1_INT_MASK_NUM; - irqNum = PMIC_TPS6594X_GPIO1_INT; - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_LP8764X_IRQ_GPIO_1_INT_MASK_NUM; - irqNum = PMIC_LP8764X_GPIO1_INT; - } - /* Un Masking GPIO 1 RISE Interrupt */ - Pmic_irqGpioMaskIntr(pPmicCoreHandle, - intMask, - PMIC_IRQ_UNMASK, - PMIC_IRQ_GPIO_RISE_INT_TYPE); - - /* To clear the interrupts*/ - pmic_gpioTest_intClr(); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetIntr(pPmicCoreHandle, pin , intrType, maskPol); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pinValue = PMIC_GPIO_HIGH; - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[irqNum/32U] & (1U << (irqNum % 32U))) != 0U)) - { - while(irqNum != nextedIrq) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &nextedIrq); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - irqNum); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(6235, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Test to verify GPIO2 fall interrupt - */ -static void test_pmic_gpio2_testFall_interrupt(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - int8_t timeout = 10U; - uint8_t pin = 2U; - uint8_t pinValue = PMIC_GPIO_HIGH; - uint8_t intrType = PMIC_GPIO_FALL_INTERRUPT; - uint8_t maskPol = PMIC_GPIO_POL_LOW; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - uint8_t nextedIrq = 0U; - uint8_t intMask = 0U; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | PMIC_GPIO_CFG_DIR_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO, - PMIC_GPIO_HIGH - }; - - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - gpioCfg.validParams = PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | - PMIC_GPIO_CFG_DIR_VALID_SHIFT | - PMIC_GPIO_CFG_OD_VALID_SHIFT | - PMIC_GPIO_CFG_PULL_VALID_SHIFT; - gpioCfg.outputSignalType = PMIC_GPIO_PUSH_PULL_OUTPUT; - gpioCfg.pullCtrl = PMIC_GPIO_PULL_UP; - } - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - gpioCfg.validParams = PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | - PMIC_GPIO_CFG_DIR_VALID_SHIFT | - PMIC_GPIO_CFG_OD_VALID_SHIFT | - PMIC_GPIO_CFG_PULL_VALID_SHIFT; - gpioCfg.outputSignalType = PMIC_GPIO_PUSH_PULL_OUTPUT; - gpioCfg.pullCtrl = PMIC_GPIO_PULL_UP; - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO; - } - - test_pmic_print_unity_testcase_info(6236, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - /* Should not break SPI Comm Lines */ - if(PMIC_INTF_SPI == pPmicCoreHandle->commMode) - { - pmic_testResultUpdate_ignore(6236, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - /* Should not break SPI Comm Lines */ - if(PMIC_INTF_SPI == pPmicCoreHandle->commMode) - { - pmic_testResultUpdate_ignore(6236, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - } - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_TPS6594X_IRQ_GPIO_2_INT_MASK_NUM; - irqNum = PMIC_TPS6594X_GPIO2_INT; - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_LP8764X_IRQ_GPIO_2_INT_MASK_NUM; - irqNum = PMIC_LP8764X_GPIO2_INT; - } - - /* Un Masking GPIO 2 FALL Interrupt */ - Pmic_irqGpioMaskIntr(pPmicCoreHandle, - intMask, - PMIC_IRQ_UNMASK, - PMIC_IRQ_GPIO_FALL_INT_TYPE); - - /* To clear the interrupts*/ - pmic_gpioTest_intClr(); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetIntr(pPmicCoreHandle, pin , intrType, maskPol); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pinValue = PMIC_GPIO_LOW; - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[irqNum/32U] & (1U << (irqNum % 32U))) != 0U)) - { - while(irqNum != nextedIrq) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &nextedIrq); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - irqNum); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(6236, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Test to verify GPIO2 rise interrupt - */ -static void test_pmic_gpio2_testRise_interrupt(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - int8_t timeout = 10U; - uint8_t pin = 2U; - uint8_t pinValue = PMIC_GPIO_LOW; - uint8_t intrType = PMIC_GPIO_RISE_INTERRUPT; - uint8_t maskPol = PMIC_GPIO_POL_HIGH; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - uint8_t nextedIrq = 0U; - uint8_t intMask = 0U; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | PMIC_GPIO_CFG_DIR_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO, - PMIC_GPIO_HIGH - }; - - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - gpioCfg.validParams = PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | - PMIC_GPIO_CFG_DIR_VALID_SHIFT | - PMIC_GPIO_CFG_OD_VALID_SHIFT | - PMIC_GPIO_CFG_PULL_VALID_SHIFT; - gpioCfg.outputSignalType = PMIC_GPIO_PUSH_PULL_OUTPUT; - gpioCfg.pullCtrl = PMIC_GPIO_PULL_UP; - } - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - gpioCfg.validParams = PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | - PMIC_GPIO_CFG_DIR_VALID_SHIFT | - PMIC_GPIO_CFG_OD_VALID_SHIFT | - PMIC_GPIO_CFG_PULL_VALID_SHIFT; - gpioCfg.outputSignalType = PMIC_GPIO_PUSH_PULL_OUTPUT; - gpioCfg.pullCtrl = PMIC_GPIO_PULL_UP; - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO; - } - - test_pmic_print_unity_testcase_info(6237, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - /* Should not break SPI Comm Lines */ - if(PMIC_INTF_SPI == pPmicCoreHandle->commMode) - { - pmic_testResultUpdate_ignore(6237, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - /* Should not break SPI Comm Lines */ - if(PMIC_INTF_SPI == pPmicCoreHandle->commMode) - { - pmic_testResultUpdate_ignore(6237, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - } - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_TPS6594X_IRQ_GPIO_2_INT_MASK_NUM; - irqNum = PMIC_TPS6594X_GPIO2_INT; - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_LP8764X_IRQ_GPIO_2_INT_MASK_NUM; - irqNum = PMIC_LP8764X_GPIO2_INT; - } - - /* Un Masking GPIO 2 RISE Interrupt */ - Pmic_irqGpioMaskIntr(pPmicCoreHandle, - intMask, - PMIC_IRQ_UNMASK, - PMIC_IRQ_GPIO_RISE_INT_TYPE); - - /* To clear the interrupts*/ - pmic_gpioTest_intClr(); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetIntr(pPmicCoreHandle, pin , intrType, maskPol); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pinValue = PMIC_GPIO_HIGH; - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[irqNum/32U] & (1U << (irqNum % 32U))) != 0U)) - { - while(irqNum != nextedIrq) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &nextedIrq); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - irqNum); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(6237, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Test to verify GPIO4 fall interrupt - */ -static void test_pmic_gpio4_testFall_interrupt(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - int8_t timeout = 10U; - uint8_t pin = 4U; - uint8_t pinValue = PMIC_GPIO_HIGH; - uint8_t intrType = PMIC_GPIO_FALL_INTERRUPT; - uint8_t maskPol = PMIC_GPIO_POL_LOW; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - uint8_t nextedIrq = 0U; - uint8_t intMask = 0U; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | PMIC_GPIO_CFG_DIR_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(6240, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - /* - * GPIO4 pin of PMIC-B is connected to 'H_DDR_RET_1V1' - * on J721EVM board causing hang, when programming fall interrupt. - */ - pmic_testResultUpdate_ignore(6240, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(J7VCL_LEO_PMICA_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(6240, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - gpioCfg.validParams = PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | - PMIC_GPIO_CFG_DIR_VALID_SHIFT | - PMIC_GPIO_CFG_OD_VALID_SHIFT | - PMIC_GPIO_CFG_PULL_VALID_SHIFT; - gpioCfg.outputSignalType = PMIC_GPIO_PUSH_PULL_OUTPUT; - gpioCfg.pullCtrl = PMIC_GPIO_PULL_UP; - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_TPS6594X_IRQ_GPIO_4_INT_MASK_NUM; - irqNum = PMIC_TPS6594X_GPIO4_INT; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_LP8764X_IRQ_GPIO_4_INT_MASK_NUM; - irqNum = PMIC_LP8764X_GPIO4_INT; - } - - /* Un Masking GPIO 4 FALL Interrupt */ - Pmic_irqGpioMaskIntr(pPmicCoreHandle, - intMask, - PMIC_IRQ_UNMASK, - PMIC_IRQ_GPIO_FALL_INT_TYPE); - - /* To clear the interrupts*/ - pmic_gpioTest_intClr(); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetIntr(pPmicCoreHandle, pin , intrType, maskPol); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pinValue = PMIC_GPIO_LOW; - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[irqNum/32U] & (1U << (irqNum % 32U))) != 0U)) - { - while(irqNum != nextedIrq) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &nextedIrq); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - irqNum); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(6240, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Test to verify GPIO4 rise interrupt - */ -static void test_pmic_gpio4_testRise_interrupt(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - int8_t timeout = 10U; - uint8_t pin = 4U; - uint8_t pinValue = PMIC_GPIO_LOW; - uint8_t intrType = PMIC_GPIO_RISE_INTERRUPT; - uint8_t maskPol = PMIC_GPIO_POL_HIGH; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - uint8_t nextedIrq = 0U; - uint8_t intMask = 0U; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | PMIC_GPIO_CFG_DIR_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(6241, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - /* - * GPIO4 pin of PMIC-B is connected to 'H_DDR_RET_1V1' - * on J721EVM board causing hang, when programming rise interrupt. - */ - pmic_testResultUpdate_ignore(6241, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(J7VCL_LEO_PMICA_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(6241, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - gpioCfg.validParams = PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | - PMIC_GPIO_CFG_DIR_VALID_SHIFT | - PMIC_GPIO_CFG_OD_VALID_SHIFT | - PMIC_GPIO_CFG_PULL_VALID_SHIFT; - gpioCfg.outputSignalType = PMIC_GPIO_PUSH_PULL_OUTPUT; - gpioCfg.pullCtrl = PMIC_GPIO_PULL_UP; - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_TPS6594X_IRQ_GPIO_4_INT_MASK_NUM; - irqNum = PMIC_TPS6594X_GPIO4_INT; - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_LP8764X_IRQ_GPIO_4_INT_MASK_NUM; - irqNum = PMIC_LP8764X_GPIO4_INT; - } - - /* Un Masking GPIO 4 RISE Interrupt */ - Pmic_irqGpioMaskIntr(pPmicCoreHandle, - intMask, - PMIC_IRQ_UNMASK, - PMIC_IRQ_GPIO_RISE_INT_TYPE); - - /* To clear the interrupts*/ - pmic_gpioTest_intClr(); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetIntr(pPmicCoreHandle, pin , intrType, maskPol); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pinValue = PMIC_GPIO_HIGH; - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[irqNum/32U] & (1U << (irqNum % 32U))) != 0U)) - { - while(irqNum != nextedIrq) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &nextedIrq); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - irqNum); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(6241, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Test to verify GPIO5 fall interrupt - */ -static void test_pmic_gpio5_testFall_interrupt(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - int8_t timeout = 10U; - uint8_t pin = 5U; - uint8_t pinValue = PMIC_GPIO_HIGH; - uint8_t intrType = PMIC_GPIO_FALL_INTERRUPT; - uint8_t maskPol = PMIC_GPIO_POL_LOW; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - uint8_t nextedIrq = 0U; - uint8_t intMask = 0U; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | PMIC_GPIO_CFG_DIR_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(6242, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if((J721E_LEO_PMICA_DEVICE == pmic_device_info) || - (J721E_LEO_PMICB_DEVICE == pmic_device_info)) - { - /* - * GPIO5 pin of PMIC-A and PMIC-B is connected to 'LEOA_SCLK' - * on J721EVM causing block, when programming fall interrupt signal. - */ - pmic_testResultUpdate_ignore(6242, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(J7VCL_LEO_PMICA_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(6242, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - gpioCfg.validParams = PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | - PMIC_GPIO_CFG_DIR_VALID_SHIFT | - PMIC_GPIO_CFG_OD_VALID_SHIFT | - PMIC_GPIO_CFG_PULL_VALID_SHIFT; - gpioCfg.outputSignalType = PMIC_GPIO_PUSH_PULL_OUTPUT; - gpioCfg.pullCtrl = PMIC_GPIO_PULL_UP; - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_TPS6594X_IRQ_GPIO_5_INT_MASK_NUM; - irqNum = PMIC_TPS6594X_GPIO5_INT; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_LP8764X_IRQ_GPIO_5_INT_MASK_NUM; - irqNum = PMIC_LP8764X_GPIO5_INT; - } - - /* Un Masking GPIO 5 FALL Interrupt */ - Pmic_irqGpioMaskIntr(pPmicCoreHandle, - intMask, - PMIC_IRQ_UNMASK, - PMIC_IRQ_GPIO_FALL_INT_TYPE); - - /* To clear the interrupts*/ - pmic_gpioTest_intClr(); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetIntr(pPmicCoreHandle, pin , intrType, maskPol); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pinValue = PMIC_GPIO_LOW; - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[irqNum/32U] & (1U << (irqNum % 32U))) != 0U)) - { - while(irqNum != nextedIrq) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &nextedIrq); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - irqNum); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(6242, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Test to verify GPIO5 rise interrupt - */ -static void test_pmic_gpio5_testRise_interrupt(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - int8_t timeout = 10U; - uint8_t pin = 5U; - uint8_t pinValue = PMIC_GPIO_LOW; - uint8_t intrType = PMIC_GPIO_RISE_INTERRUPT; - uint8_t maskPol = PMIC_GPIO_POL_HIGH; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - uint8_t nextedIrq = 0U; - uint8_t intMask = 0U; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | PMIC_GPIO_CFG_DIR_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(6243, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if((J721E_LEO_PMICA_DEVICE == pmic_device_info) || - (J721E_LEO_PMICB_DEVICE == pmic_device_info)) - { - /* - * GPIO5 pin of PMIC-A and PMIC-B is connected to 'LEOA_SCLK' - * on J721EVM causing block, when programming rise` interrupt signal. - */ - pmic_testResultUpdate_ignore(6243, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(J7VCL_LEO_PMICA_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(6243, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - gpioCfg.validParams = PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | - PMIC_GPIO_CFG_DIR_VALID_SHIFT | - PMIC_GPIO_CFG_OD_VALID_SHIFT | - PMIC_GPIO_CFG_PULL_VALID_SHIFT; - gpioCfg.outputSignalType = PMIC_GPIO_PUSH_PULL_OUTPUT; - gpioCfg.pullCtrl = PMIC_GPIO_PULL_UP; - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_TPS6594X_IRQ_GPIO_5_INT_MASK_NUM; - irqNum = PMIC_TPS6594X_GPIO5_INT; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_LP8764X_IRQ_GPIO_5_INT_MASK_NUM; - irqNum = PMIC_LP8764X_GPIO5_INT; - } - - /* Un Masking GPIO 5 RISE Interrupt */ - Pmic_irqGpioMaskIntr(pPmicCoreHandle, - intMask, - PMIC_IRQ_UNMASK, - PMIC_IRQ_GPIO_RISE_INT_TYPE); - - /* To clear the interrupts*/ - pmic_gpioTest_intClr(); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetIntr(pPmicCoreHandle, pin , intrType, maskPol); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pinValue = PMIC_GPIO_HIGH; - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[irqNum/32U] & (1U << (irqNum % 32U))) != 0U)) - { - while(irqNum != nextedIrq) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &nextedIrq); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - irqNum); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(6243, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Test to verify GPIO6 fall interrupt - */ -static void test_pmic_gpio6_testFall_interrupt(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - int8_t timeout = 10U; - uint8_t pin = 6U; - uint8_t pinValue = PMIC_GPIO_HIGH; - uint8_t intrType = PMIC_GPIO_FALL_INTERRUPT; - uint8_t maskPol = PMIC_GPIO_POL_LOW; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - uint8_t nextedIrq = 0U; - uint8_t intMask = 0U; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | PMIC_GPIO_CFG_DIR_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(6244, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if((J721E_LEO_PMICA_DEVICE == pmic_device_info) || - (J721E_LEO_PMICB_DEVICE == pmic_device_info)) - { - /* - * GPIO6 pin of PMIC-A and PMIC-B is connected to 'LEOA_SDATA' and receives - * on J721EVM causing hang, when programming fall interrupt signal. - */ - pmic_testResultUpdate_ignore(6244, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(J7VCL_LEO_PMICA_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(6244, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - gpioCfg.validParams = PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | - PMIC_GPIO_CFG_DIR_VALID_SHIFT | - PMIC_GPIO_CFG_OD_VALID_SHIFT | - PMIC_GPIO_CFG_PULL_VALID_SHIFT; - gpioCfg.outputSignalType = PMIC_GPIO_PUSH_PULL_OUTPUT; - gpioCfg.pullCtrl = PMIC_GPIO_PULL_UP; - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_TPS6594X_IRQ_GPIO_6_INT_MASK_NUM; - irqNum = PMIC_TPS6594X_GPIO6_INT; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_LP8764X_IRQ_GPIO_6_INT_MASK_NUM; - irqNum = PMIC_LP8764X_GPIO6_INT; - } - - /* Un Masking GPIO 6 FALL Interrupt */ - Pmic_irqGpioMaskIntr(pPmicCoreHandle, - intMask, - PMIC_IRQ_UNMASK, - PMIC_IRQ_GPIO_FALL_INT_TYPE); - - /* To clear the interrupts*/ - pmic_gpioTest_intClr(); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetIntr(pPmicCoreHandle, pin , intrType, maskPol); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pinValue = PMIC_GPIO_LOW; - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[irqNum/32U] & (1U << (irqNum % 32U))) != 0U)) - { - while(irqNum != nextedIrq) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &nextedIrq); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - irqNum); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(6244, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Test to verify GPIO6 rise interrupt - */ -static void test_pmic_gpio6_testRise_interrupt(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - int8_t timeout = 10U; - uint8_t pin = 6U; - uint8_t pinValue = PMIC_GPIO_LOW; - uint8_t intrType = PMIC_GPIO_RISE_INTERRUPT; - uint8_t maskPol = PMIC_GPIO_POL_HIGH; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - uint8_t nextedIrq = 0U; - uint8_t intMask = 0U; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | PMIC_GPIO_CFG_DIR_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(6245, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if((J721E_LEO_PMICA_DEVICE == pmic_device_info) || - (J721E_LEO_PMICB_DEVICE == pmic_device_info)) - { - /* - * GPIO6 pin of PMIC-A and PMIC-B is connected to 'LEOA_SDATA' and receives - * on J721EVM causing hang, when programming rise interrupt signal. - */ - pmic_testResultUpdate_ignore(6245, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(J7VCL_LEO_PMICA_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(6245, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - gpioCfg.validParams = PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | - PMIC_GPIO_CFG_DIR_VALID_SHIFT | - PMIC_GPIO_CFG_OD_VALID_SHIFT | - PMIC_GPIO_CFG_PULL_VALID_SHIFT; - gpioCfg.outputSignalType = PMIC_GPIO_PUSH_PULL_OUTPUT; - gpioCfg.pullCtrl = PMIC_GPIO_PULL_UP; - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_TPS6594X_IRQ_GPIO_6_INT_MASK_NUM; - irqNum = PMIC_TPS6594X_GPIO6_INT; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_LP8764X_IRQ_GPIO_6_INT_MASK_NUM; - irqNum = PMIC_LP8764X_GPIO6_INT; - } - - /* Un Masking GPIO 6 RISE Interrupt */ - Pmic_irqGpioMaskIntr(pPmicCoreHandle, - intMask, - PMIC_IRQ_UNMASK, - PMIC_IRQ_GPIO_RISE_INT_TYPE); - - /* To clear the interrupts*/ - pmic_gpioTest_intClr(); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetIntr(pPmicCoreHandle, pin , intrType, maskPol); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pinValue = PMIC_GPIO_HIGH; - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[irqNum/32U] & (1U << (irqNum % 32U))) != 0U)) - { - while(irqNum != nextedIrq) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &nextedIrq); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - irqNum); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(6245, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Test to verify GPIO7 fall interrupt - */ -static void test_pmic_gpio7_testFall_interrupt(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - int8_t timeout = 10U; - uint8_t pin = 7U; - uint8_t pinValue = PMIC_GPIO_HIGH; - uint8_t intrType = PMIC_GPIO_FALL_INTERRUPT; - uint8_t maskPol = PMIC_GPIO_POL_LOW; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - uint8_t nextedIrq = 0U; - uint8_t intMask = 0U; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | PMIC_GPIO_CFG_DIR_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(6246, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(J721E_LEO_PMICA_DEVICE == pmic_device_info) - { - /* - * GPIO7 pin of PMIC-A is connected to 'SOC_SAFETY_ERRZ' - * on J721EVM board causing hang, when programming fall interrupt. - */ - pmic_testResultUpdate_ignore(6246, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - /* - * GPIO7 pin of PMIC-B is connected to 'EN_RAM0V85_LDO' - * on J721EVM board causing hang, when programming fall interrupt. - */ - pmic_testResultUpdate_ignore(6246, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(J7VCL_LEO_PMICA_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(6246, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - gpioCfg.validParams = PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | - PMIC_GPIO_CFG_DIR_VALID_SHIFT | - PMIC_GPIO_CFG_OD_VALID_SHIFT | - PMIC_GPIO_CFG_PULL_VALID_SHIFT; - gpioCfg.outputSignalType = PMIC_GPIO_PUSH_PULL_OUTPUT; - gpioCfg.pullCtrl = PMIC_GPIO_PULL_UP; - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_TPS6594X_IRQ_GPIO_7_INT_MASK_NUM; - irqNum = PMIC_TPS6594X_GPIO7_INT; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_LP8764X_IRQ_GPIO_7_INT_MASK_NUM; - irqNum = PMIC_LP8764X_GPIO7_INT; - } - - /* Un Masking GPIO 7 FALL Interrupt */ - Pmic_irqGpioMaskIntr(pPmicCoreHandle, - intMask, - PMIC_IRQ_UNMASK, - PMIC_IRQ_GPIO_FALL_INT_TYPE); - - /* To clear the interrupts*/ - pmic_gpioTest_intClr(); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetIntr(pPmicCoreHandle, pin , intrType, maskPol); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pinValue = PMIC_GPIO_LOW; - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[irqNum/32U] & (1U << (irqNum % 32U))) != 0U)) - { - while(irqNum != nextedIrq) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &nextedIrq); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - irqNum); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(6246, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Test to verify GPIO7 rise interrupt - */ -static void test_pmic_gpio7_testRise_interrupt(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - int8_t timeout = 10U; - uint8_t pin = 7U; - uint8_t pinValue = PMIC_GPIO_LOW; - uint8_t intrType = PMIC_GPIO_RISE_INTERRUPT; - uint8_t maskPol = PMIC_GPIO_POL_HIGH; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - uint8_t nextedIrq = 0U; - uint8_t intMask = 0U; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | PMIC_GPIO_CFG_DIR_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(6247, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(J721E_LEO_PMICA_DEVICE == pmic_device_info) - { - /* - * GPIO7 pin of PMIC-A is connected to 'SOC_SAFETY_ERRZ' - * on J721EVM board causing hang, when programming rise interrupt. - */ - pmic_testResultUpdate_ignore(6247, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - /* - * GPIO7 pin of PMIC-B is connected to 'EN_RAM0V85_LDO' - * on J721EVM board causing hang, when programming rise interrupt. - */ - pmic_testResultUpdate_ignore(6247, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(J7VCL_LEO_PMICA_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(6247, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - gpioCfg.validParams = PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | - PMIC_GPIO_CFG_DIR_VALID_SHIFT | - PMIC_GPIO_CFG_OD_VALID_SHIFT | - PMIC_GPIO_CFG_PULL_VALID_SHIFT; - gpioCfg.outputSignalType = PMIC_GPIO_PUSH_PULL_OUTPUT; - gpioCfg.pullCtrl = PMIC_GPIO_PULL_UP; - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_TPS6594X_IRQ_GPIO_7_INT_MASK_NUM; - irqNum = PMIC_TPS6594X_GPIO7_INT; - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_LP8764X_IRQ_GPIO_7_INT_MASK_NUM; - irqNum = PMIC_LP8764X_GPIO7_INT; - } - - /* Un Masking GPIO 7 RISE Interrupt */ - Pmic_irqGpioMaskIntr(pPmicCoreHandle, - intMask, - PMIC_IRQ_UNMASK, - PMIC_IRQ_GPIO_RISE_INT_TYPE); - - /* To clear the interrupts*/ - pmic_gpioTest_intClr(); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetIntr(pPmicCoreHandle, pin , intrType, maskPol); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pinValue = PMIC_GPIO_HIGH; - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[irqNum/32U] & (1U << (irqNum % 32U))) != 0U)) - { - while(irqNum != nextedIrq) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &nextedIrq); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - irqNum); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(6247, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Test to verify GPIO8 fall interrupt - */ -static void test_pmic_gpio8_testFall_interrupt(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - int8_t timeout = 10U; - uint8_t pin = 8U; - uint8_t pinValue = PMIC_GPIO_HIGH; - uint8_t intrType = PMIC_GPIO_FALL_INTERRUPT; - uint8_t maskPol = PMIC_GPIO_POL_LOW; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - uint8_t nextedIrq = 0U; - uint8_t intMask = 0U; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | PMIC_GPIO_CFG_DIR_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(6248, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - /* - * GPIO8 pin of PMIC-B is connected to 'EN_PHYCORE_LDO' - * on J721EVM causing hang, when programming fall interrupt signal. - */ - pmic_testResultUpdate_ignore(6248, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - gpioCfg.validParams = PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | - PMIC_GPIO_CFG_DIR_VALID_SHIFT | - PMIC_GPIO_CFG_OD_VALID_SHIFT | - PMIC_GPIO_CFG_PULL_VALID_SHIFT; - gpioCfg.outputSignalType = PMIC_GPIO_PUSH_PULL_OUTPUT; - gpioCfg.pullCtrl = PMIC_GPIO_PULL_UP; - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO; - } - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(6248, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_TPS6594X_IRQ_GPIO_8_INT_MASK_NUM; - irqNum = PMIC_TPS6594X_GPIO8_INT; - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_LP8764X_IRQ_GPIO_8_INT_MASK_NUM; - irqNum = PMIC_LP8764X_GPIO8_INT; - } - /* Un Masking GPIO 8 FALL Interrupt */ - Pmic_irqGpioMaskIntr(pPmicCoreHandle, - intMask, - PMIC_IRQ_UNMASK, - PMIC_IRQ_GPIO_FALL_INT_TYPE); - - /* To clear the interrupts*/ - pmic_gpioTest_intClr(); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetIntr(pPmicCoreHandle, pin , intrType, maskPol); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pinValue = PMIC_GPIO_LOW; - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[irqNum/32U] & (1U << (irqNum % 32U))) != 0U)) - { - while(irqNum != nextedIrq) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &nextedIrq); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - irqNum); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(6248, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Test to verify GPIO8 rise interrupt - */ -static void test_pmic_gpio8_testRise_interrupt(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - int8_t timeout = 10U; - uint8_t pin = 8U; - uint8_t pinValue = PMIC_GPIO_LOW; - uint8_t intrType = PMIC_GPIO_RISE_INTERRUPT; - uint8_t maskPol = PMIC_GPIO_POL_HIGH; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - uint8_t nextedIrq = 0U; - uint8_t intMask = 0U; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | PMIC_GPIO_CFG_DIR_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(6249, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - /* - * GPIO8 pin of PMIC-B is connected to 'EN_PHYCORE_LDO' - * on J721EVM causing hang, when programming fall interrupt signal. - */ - pmic_testResultUpdate_ignore(6249, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - gpioCfg.validParams = PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | - PMIC_GPIO_CFG_DIR_VALID_SHIFT | - PMIC_GPIO_CFG_OD_VALID_SHIFT | - PMIC_GPIO_CFG_PULL_VALID_SHIFT; - gpioCfg.outputSignalType = PMIC_GPIO_PUSH_PULL_OUTPUT; - gpioCfg.pullCtrl = PMIC_GPIO_PULL_UP; - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO; - } - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(6249, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_TPS6594X_IRQ_GPIO_8_INT_MASK_NUM; - irqNum = PMIC_TPS6594X_GPIO8_INT; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_LP8764X_IRQ_GPIO_8_INT_MASK_NUM; - irqNum = PMIC_LP8764X_GPIO8_INT; - } - /* Un Masking GPIO 8 RISE Interrupt */ - Pmic_irqGpioMaskIntr(pPmicCoreHandle, - intMask, - PMIC_IRQ_UNMASK, - PMIC_IRQ_GPIO_RISE_INT_TYPE); - - /* To clear the interrupts*/ - pmic_gpioTest_intClr(); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetIntr(pPmicCoreHandle, pin , intrType, maskPol); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pinValue = PMIC_GPIO_HIGH; - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[irqNum/32U] & (1U << (irqNum % 32U))) != 0U)) - { - while(irqNum != nextedIrq) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &nextedIrq); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - irqNum); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(6249, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Test to verify GPIO10 fall interrupt - */ -static void test_pmic_gpio10_testFall_interrupt(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - int8_t timeout = 10U; - uint8_t pin = 10U; - uint8_t pinValue = PMIC_GPIO_HIGH; - uint8_t intrType = PMIC_GPIO_FALL_INTERRUPT; - uint8_t maskPol = PMIC_GPIO_POL_LOW; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - uint8_t nextedIrq = 0U; - uint8_t intMask = 0U; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | PMIC_GPIO_CFG_DIR_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO, - PMIC_GPIO_HIGH - }; - - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - gpioCfg.validParams = PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | - PMIC_GPIO_CFG_DIR_VALID_SHIFT | - PMIC_GPIO_CFG_OD_VALID_SHIFT | - PMIC_GPIO_CFG_PULL_VALID_SHIFT; - gpioCfg.outputSignalType = PMIC_GPIO_PUSH_PULL_OUTPUT; - gpioCfg.pullCtrl = PMIC_GPIO_PULL_UP; - } - - test_pmic_print_unity_testcase_info(6252, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(J721E_LEO_PMICA_DEVICE == pmic_device_info) - { - /* - * GPIO10 pin of PMIC-A is connected to 'PMIC_POWER_EN1' - * on J721EVM board causing hang, when programming fall interrupt. - */ - pmic_testResultUpdate_ignore(6252, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - gpioCfg.validParams = PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | - PMIC_GPIO_CFG_DIR_VALID_SHIFT | - PMIC_GPIO_CFG_OD_VALID_SHIFT | - PMIC_GPIO_CFG_PULL_VALID_SHIFT; - gpioCfg.outputSignalType = PMIC_GPIO_PUSH_PULL_OUTPUT; - gpioCfg.pullCtrl = PMIC_GPIO_PULL_UP; - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO; - } - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(6252, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_TPS6594X_IRQ_GPIO_10_INT_MASK_NUM; - irqNum = PMIC_TPS6594X_GPIO10_INT; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_LP8764X_IRQ_GPIO_10_INT_MASK_NUM; - irqNum = PMIC_LP8764X_GPIO10_INT; - } - - /* Un Masking GPIO 10 FALL Interrupt */ - Pmic_irqGpioMaskIntr(pPmicCoreHandle, - intMask, - PMIC_IRQ_UNMASK, - PMIC_IRQ_GPIO_FALL_INT_TYPE); - - /* To clear the interrupts*/ - pmic_gpioTest_intClr(); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetIntr(pPmicCoreHandle, pin , intrType, maskPol); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pinValue = PMIC_GPIO_LOW; - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[irqNum/32U] & (1U << (irqNum % 32U))) != 0U)) - { - while(irqNum != nextedIrq) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &nextedIrq); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - irqNum); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(6252, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Test to verify GPIO10 rise interrupt - */ -static void test_pmic_gpio10_testRise_interrupt(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - int8_t timeout = 10U; - uint8_t pin = 10U; - uint8_t pinValue = PMIC_GPIO_LOW; - uint8_t intrType = PMIC_GPIO_RISE_INTERRUPT; - uint8_t maskPol = PMIC_GPIO_POL_HIGH; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - uint8_t nextedIrq = 0U; - uint8_t intMask = 0U; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | PMIC_GPIO_CFG_DIR_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO, - PMIC_GPIO_HIGH - }; - - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - gpioCfg.validParams = PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | - PMIC_GPIO_CFG_DIR_VALID_SHIFT | - PMIC_GPIO_CFG_OD_VALID_SHIFT | - PMIC_GPIO_CFG_PULL_VALID_SHIFT; - gpioCfg.outputSignalType = PMIC_GPIO_PUSH_PULL_OUTPUT; - gpioCfg.pullCtrl = PMIC_GPIO_PULL_UP; - } - - test_pmic_print_unity_testcase_info(6253, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(J721E_LEO_PMICA_DEVICE == pmic_device_info) - { - /* - * GPIO10 pin of PMIC-A is connected to 'PMIC_POWER_EN1' - * on J721EVM board causing hang, when programming rise interrupt. - */ - pmic_testResultUpdate_ignore(6253, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - gpioCfg.validParams = PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | - PMIC_GPIO_CFG_DIR_VALID_SHIFT | - PMIC_GPIO_CFG_OD_VALID_SHIFT | - PMIC_GPIO_CFG_PULL_VALID_SHIFT; - gpioCfg.outputSignalType = PMIC_GPIO_PUSH_PULL_OUTPUT; - gpioCfg.pullCtrl = PMIC_GPIO_PULL_UP; - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO; - } - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(6253, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_TPS6594X_IRQ_GPIO_10_INT_MASK_NUM; - irqNum = PMIC_TPS6594X_GPIO10_INT; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_LP8764X_IRQ_GPIO_10_INT_MASK_NUM; - irqNum = PMIC_LP8764X_GPIO10_INT; - } - - /* Un Masking GPIO 10 RISE Interrupt */ - Pmic_irqGpioMaskIntr(pPmicCoreHandle, - intMask, - PMIC_IRQ_UNMASK, - PMIC_IRQ_GPIO_RISE_INT_TYPE); - - /* To clear the interrupts*/ - pmic_gpioTest_intClr(); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetIntr(pPmicCoreHandle, pin , intrType, maskPol); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pinValue = PMIC_GPIO_HIGH; - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[irqNum/32U] & (1U << (irqNum % 32U))) != 0U)) - { - while(irqNum != nextedIrq) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &nextedIrq); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - irqNum); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(6253, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for handle - */ -static void test_pmic_gpio_intr_prmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t pin = 3U; - uint8_t intrType = PMIC_GPIO_FALL_INTERRUPT; - uint8_t maskPol = PMIC_GPIO_POL_LOW; - - test_pmic_print_unity_testcase_info(6256, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - pmicStatus = Pmic_gpioSetIntr(NULL, pin , intrType, maskPol); - TEST_ASSERT_EQUAL(pmicStatus, PMIC_ST_ERR_INV_HANDLE); - - pmic_testResultUpdate_pass(6256, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for pin - */ -static void test_pmic_gpio_intr_prmValTest_pin(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t pin = 12U; - uint8_t intrType = PMIC_GPIO_FALL_INTERRUPT; - uint8_t maskPol = PMIC_GPIO_POL_LOW; - - test_pmic_print_unity_testcase_info(6257, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - pmicStatus = Pmic_gpioSetIntr(pPmicCoreHandle, pin, intrType, maskPol); - TEST_ASSERT_EQUAL(pmicStatus, PMIC_ST_ERR_INV_PARAM); - - pmic_testResultUpdate_pass(6257, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for intrType - */ -static void test_pmic_gpio_intr_prmValTest_intrType(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t pin = 1U; - uint8_t intrType = 0x4U; - uint8_t maskPol = PMIC_GPIO_POL_LOW; - - test_pmic_print_unity_testcase_info(6258, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - pmicStatus = Pmic_gpioSetIntr(pPmicCoreHandle, pin, intrType, maskPol); - TEST_ASSERT_EQUAL(pmicStatus, PMIC_ST_ERR_INV_PARAM); - - pmic_testResultUpdate_pass(6258, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for maskPol - */ -static void test_pmic_gpio_intr_prmValTest_maskPol(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t pin = 2U; - uint8_t intrType = PMIC_GPIO_RISE_INTERRUPT; - uint8_t maskPol = 0x2U; - - test_pmic_print_unity_testcase_info(6259, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - pmicStatus = Pmic_gpioSetIntr(pPmicCoreHandle, pin , intrType, maskPol); - TEST_ASSERT_EQUAL(pmicStatus, PMIC_ST_ERR_INV_PARAM); - - pmic_testResultUpdate_pass(6259, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Masking all interrupts test - */ -static void test_pmic_gpio_intr_irqMaskAll_interrupt(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t pin = 1U; - uint8_t pinValue = PMIC_GPIO_HIGH; - uint8_t intrType = PMIC_GPIO_FALL_INTERRUPT; - uint8_t maskPol = PMIC_GPIO_POL_LOW; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | PMIC_GPIO_CFG_DIR_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO, - PMIC_GPIO_HIGH - }; - - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - gpioCfg.validParams = PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | - PMIC_GPIO_CFG_DIR_VALID_SHIFT | - PMIC_GPIO_CFG_OD_VALID_SHIFT | - PMIC_GPIO_CFG_PULL_VALID_SHIFT; - gpioCfg.outputSignalType = PMIC_GPIO_PUSH_PULL_OUTPUT; - gpioCfg.pullCtrl = PMIC_GPIO_PULL_UP; - } - - test_pmic_print_unity_testcase_info(7374, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO; - } - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - pin = 2U; - gpioCfg.validParams = PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | - PMIC_GPIO_CFG_DIR_VALID_SHIFT | - PMIC_GPIO_CFG_OD_VALID_SHIFT | - PMIC_GPIO_CFG_PULL_VALID_SHIFT; - gpioCfg.outputSignalType = PMIC_GPIO_PUSH_PULL_OUTPUT; - gpioCfg.pullCtrl = PMIC_GPIO_PULL_UP; - } - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetIntr(pPmicCoreHandle, pin , intrType, maskPol); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Masking All GPIO Interrupts */ - pmicStatus = Pmic_irqGpioMaskIntr(pPmicCoreHandle, - PMIC_IRQ_GPIO_ALL_INT_MASK_NUM, - PMIC_IRQ_MASK, - PMIC_IRQ_GPIO_RISE_FALL_INT_TYPE); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Masking All Interrupts */ - pmicStatus = Pmic_irqMaskIntr(pPmicCoreHandle, - PMIC_IRQ_ALL, - PMIC_IRQ_MASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pinValue = PMIC_GPIO_LOW; - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - if((0U == errStat.intStatus[0U]) && - (0U == errStat.intStatus[1U]) && - (0U == errStat.intStatus[2U]) && - (0U == errStat.intStatus[3U])) - { - pmicStatus = PMIC_ST_SUCCESS; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(7374, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief UnMasking all interrupts test - */ -static void test_pmic_gpio_intr_irqUnMaskAll_interrupt(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - int8_t timeout = 10U; - uint8_t pin = 1U; - uint8_t pinValue = PMIC_GPIO_HIGH; - uint8_t intrType = PMIC_GPIO_FALL_INTERRUPT; - uint8_t maskPol = PMIC_GPIO_POL_LOW; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - uint8_t nextedIrq = 0U; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | PMIC_GPIO_CFG_DIR_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(7375, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(7375, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO; - } - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - pin = 2U; - gpioCfg.validParams = PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | - PMIC_GPIO_CFG_DIR_VALID_SHIFT | - PMIC_GPIO_CFG_OD_VALID_SHIFT | - PMIC_GPIO_CFG_PULL_VALID_SHIFT; - gpioCfg.outputSignalType = PMIC_GPIO_PUSH_PULL_OUTPUT; - gpioCfg.pullCtrl = PMIC_GPIO_PULL_UP; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - irqNum = PMIC_TPS6594X_GPIO1_INT; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - irqNum = PMIC_LP8764X_GPIO2_INT; - } - else - { - irqNum = PMIC_LP8764X_GPIO1_INT; - } - } - - /* Un Masking all GPIO Interrupts */ - pmicStatus = Pmic_irqGpioMaskIntr(pPmicCoreHandle, - PMIC_IRQ_GPIO_ALL_INT_MASK_NUM, - PMIC_IRQ_UNMASK, - PMIC_IRQ_GPIO_RISE_FALL_INT_TYPE); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Un Masking all Interrupts */ - pmicStatus = Pmic_irqMaskIntr(pPmicCoreHandle, - PMIC_IRQ_ALL, - PMIC_IRQ_UNMASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* To clear the interrupts*/ - pmic_gpioTest_intClr(); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetIntr(pPmicCoreHandle, pin , intrType, maskPol); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pinValue = PMIC_GPIO_LOW; - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[irqNum/32U] & (1U << (irqNum % 32U))) != 0U)) - { - while(irqNum != nextedIrq) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &nextedIrq); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - irqNum); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - - /* Masking All GPIO Interrupts */ - pmicStatus = Pmic_irqGpioMaskIntr(pPmicCoreHandle, - PMIC_IRQ_GPIO_ALL_INT_MASK_NUM, - PMIC_IRQ_MASK, - PMIC_IRQ_GPIO_RISE_FALL_INT_TYPE); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Masking All Interrupts */ - pmicStatus = Pmic_irqMaskIntr(pPmicCoreHandle, - PMIC_IRQ_ALL, - PMIC_IRQ_MASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(7375, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Gpio Tps6594x NPwron Get PinValue Test - */ -static void test_pmic_gpio_testTps6594xNPwronPinGetValue(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t pinValue = PMIC_GPIO_HIGH; - - test_pmic_print_unity_testcase_info(7904, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(7904, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_gpioTps6594xNPwronPinGetValue(pPmicCoreHandle, &pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(7904, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for handle - */ -static void test_pmic_gpio_tps6594xNPwronPinGetValuePrmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t pinValue = PMIC_GPIO_HIGH; - - test_pmic_print_unity_testcase_info(7905, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(7905, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_gpioTps6594xNPwronPinGetValue(NULL, &pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(7905, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for Pin Value - */ -static void test_pmic_gpio_tps6594xNPwronPinGetValuePrmValTest_pinValue(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(7906, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(7906, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_gpioTps6594xNPwronPinGetValue(pPmicCoreHandle, NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(7906, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_gpioGetConfiguration : NEgative test for Pin 11 for HERA. - */ -static void test_pmic_gpio_getCfgPrmValTest_pin_hera(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t pin = PMIC_TPS6594X_GPIO11_PIN; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_NSLEEP1, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(7879, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(7879, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_gpioGetConfiguration(pPmicCoreHandle, pin, &gpioCfg); - TEST_ASSERT_EQUAL(pmicStatus, PMIC_ST_ERR_INV_PARAM); - - pmic_testResultUpdate_pass(7879, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_gpioTps6594xNPwronPinGetValue : Negative test for nPWRON Pin for hera - */ -static void test_pmic_gpio_testTps6594xNPwronPinGetValue_hera(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t pinValue = PMIC_GPIO_HIGH; - - test_pmic_print_unity_testcase_info(7880, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(7880, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_gpioTps6594xNPwronPinGetValue(pPmicCoreHandle, &pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, pmicStatus); - - pmic_testResultUpdate_pass(7880, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Test to verify GPIO7 fall Asynchronous interrupt - */ -void test_pmic_gpio7_testFallAsynchronous_interrupt(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t pin = 7U; - uint8_t intrType = PMIC_GPIO_FALL_INTERRUPT; - uint8_t maskPol = PMIC_GPIO_POL_HIGH; - int8_t timeout = 0xFFU; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | PMIC_GPIO_CFG_DIR_VALID_SHIFT, - PMIC_GPIO_INPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_UP, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(7950, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - -#if ((defined(SOC_J7200) && (defined(BUILD_MCU2_0) || defined(BUILD_MCU2_1))) || \ - (defined(SOC_J721E) && (defined(BUILD_MCU3_0) || defined(BUILD_MCU3_1)))) - /*Refer the Bug-PDK-10394 for more details*/ - pmic_testResultUpdate_ignore(7950, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -#endif - -#if defined(SOC_J721E) - pmic_log("\r\n To check Fall interrupt applying SOM board Ground signal over TP24"); -#endif -#if defined(SOC_J7200) - pmic_log("\r\n To check Fall interrupt applying SOM board Ground signal over TP56"); -#endif - - pmic_intr_triggered = 0U; - - /* Un Masking GPIO_7 RISE and FALL Interrupts */ - Pmic_irqGpioMaskIntr(pPmicCoreHandle, - PMIC_TPS6594X_IRQ_GPIO_7_INT_MASK_NUM, - PMIC_IRQ_UNMASK, - PMIC_IRQ_GPIO_FALL_INT_TYPE); - - /* To clear the interrupts*/ - pmic_gpioTest_intClr(); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetIntr(pPmicCoreHandle, pin, intrType, maskPol); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - GPIO_enableInt(0); - - while((pmic_intr_triggered == 0) && (timeout--)) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - } - - GPIO_disableInt(0); - - /* Check for interrupt */ - if(pmic_intr_triggered > 0) - { - pmicStatus = PMIC_ST_SUCCESS; - } - else - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); -} - -/*! - * \brief Test to verify GPIO7 rise Asynchronous interrupt - */ -void test_pmic_gpio7_testRiseAsynchronous_interrupt(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t pin = 7U; - uint8_t intrType = PMIC_GPIO_RISE_INTERRUPT; - uint8_t maskPol = PMIC_GPIO_POL_HIGH; - int8_t timeout = 0xFFU; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | PMIC_GPIO_CFG_DIR_VALID_SHIFT, - PMIC_GPIO_INPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_UP, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(7951, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - -#if ((defined(SOC_J7200) && (defined(BUILD_MCU2_0) || defined(BUILD_MCU2_1))) || \ - (defined(SOC_J721E) && (defined(BUILD_MCU3_0) || defined(BUILD_MCU3_1)))) - /*Refer the Bug-PDK-10394 for more details*/ - pmic_testResultUpdate_ignore(7951, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -#endif - -#if defined(SOC_J721E) - pmic_log("\r\n To check Fall interrupt applying SOM board Ground signal over TP24"); -#endif -#if defined(SOC_J7200) - pmic_log("\r\n To check Fall interrupt applying SOM board Ground signal over TP56"); -#endif - - pmic_intr_triggered = 0U; - - /* Un Masking GPIO_7 RISE and FALL Interrupts */ - Pmic_irqGpioMaskIntr(pPmicCoreHandle, - PMIC_TPS6594X_IRQ_GPIO_7_INT_MASK_NUM, - PMIC_IRQ_UNMASK, - PMIC_IRQ_GPIO_RISE_INT_TYPE); - - /* To clear the interrupts*/ - pmic_gpioTest_intClr(); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetIntr(pPmicCoreHandle, pin, intrType, maskPol); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - GPIO_enableInt(0); - - while((pmic_intr_triggered == 0) && (timeout--)) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - } - - GPIO_disableInt(0); - - /* Check for interrupt */ - if(pmic_intr_triggered > 0) - { - pmicStatus = PMIC_ST_SUCCESS; - } - else - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); -} - -/*! - * \brief Test to verify CAN WKUP - */ -void test_pmic_canWkup_test(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t pmicState = 0U; - Pmic_GpioCfg_t gpioCfg = {0U}; - - gpioCfg.validParams = PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT; - gpioCfg.pinFunc = PMIC_TPS6594X_GPIO_PINFUNC_GPIO3_GPIO4_LP_WKUP1; - - status = Pmic_gpioSetConfiguration(pPmicCoreHandle, - PMIC_TPS6594X_GPIO4_PIN, - gpioCfg); - pmicState = PMIC_FSM_LP_STANBY_STATE; - - test_pmic_print_unity_testcase_info(8012, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - -#if defined(SOC_J721E) - pmic_testResultUpdate_ignore(8012, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -#endif - - if(J721E_LEO_PMICA_DEVICE == pmic_device_info) - { - TEST_IGNORE(); - } - - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - TEST_IGNORE(); - } - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - TEST_IGNORE(); - } - - Pmic_irqGpioMaskIntr(pPmicCoreHandle, - PMIC_TPS6594X_IRQ_GPIO_4_INT_MASK_NUM, - PMIC_IRQ_UNMASK, - PMIC_IRQ_GPIO_RISE_INT_TYPE); - Pmic_irqGpioMaskIntr(pPmicCoreHandle, - PMIC_TPS6594X_IRQ_GPIO_4_INT_MASK_NUM, - PMIC_IRQ_MASK, - PMIC_IRQ_GPIO_FALL_INT_TYPE); - - /*Mask Nsleep1B and Nsleep2B signals for FSM state transitions*/ - status = Pmic_fsmSetNsleepSignalMask(pPmicCoreHandle, - PMIC_NSLEEP1_SIGNAL, - PMIC_NSLEEPX_MASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmSetNsleepSignalMask(pPmicCoreHandle, - PMIC_NSLEEP2_SIGNAL, - PMIC_NSLEEPX_MASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - Osal_delay(10U); - - pmic_log("\r\n Input LOW to HIGH signal to GPIO4 to wakeup from low power mode\n"); - - status = Pmic_fsmSetMissionState(pPmicCoreHandle, pmicState); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); -} - -/*! - * \brief Test to verify clearing all Interrupts using IRQ API - */ -static void test_gpio4_fallInterrupt_clrAllIrqTest(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - int8_t timeout = 10U; - uint8_t pin = 4U; - uint8_t pinValue = PMIC_GPIO_HIGH; - uint8_t intrType = PMIC_GPIO_FALL_INTERRUPT; - uint8_t maskPol = PMIC_GPIO_POL_LOW; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - uint8_t nextedIrq = 0U; - uint8_t intMask = 0U; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | PMIC_GPIO_CFG_DIR_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(8041, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - /* - * GPIO4 pin of PMIC-B is connected to 'H_DDR_RET_1V1' - * on J721EVM board causing hang, when programming fall interrupt. - */ - TEST_IGNORE(); - } - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - gpioCfg.validParams = PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | - PMIC_GPIO_CFG_DIR_VALID_SHIFT | - PMIC_GPIO_CFG_OD_VALID_SHIFT | - PMIC_GPIO_CFG_PULL_VALID_SHIFT; - gpioCfg.outputSignalType = PMIC_GPIO_PUSH_PULL_OUTPUT; - gpioCfg.pullCtrl = PMIC_GPIO_PULL_UP; - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_TPS6594X_IRQ_GPIO_4_INT_MASK_NUM; - irqNum = PMIC_TPS6594X_GPIO4_INT; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_LP8764X_IRQ_GPIO_4_INT_MASK_NUM; - irqNum = PMIC_LP8764X_GPIO4_INT; - } - - /* Un Masking GPIO 4 FALL Interrupt */ - Pmic_irqGpioMaskIntr(pPmicCoreHandle, - intMask, - PMIC_IRQ_UNMASK, - PMIC_IRQ_GPIO_FALL_INT_TYPE); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetIntr(pPmicCoreHandle, pin , intrType, maskPol); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pinValue = PMIC_GPIO_LOW; - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[irqNum/32U] & (1U << (irqNum % 32U))) != 0U)) - { - while(irqNum != nextedIrq) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &nextedIrq); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - irqNum); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_SUCCESS; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); -} - -/*! - * \brief Test to Get Mask status of Gpio and Irq Interrupts - */ -static void test_pmic_gpio_irq_getMaskIntrStat(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t irqGpioNumMaxCnt, irqNumMaxCnt, irqCnt; - bool riseIntrMaskStat, fallIntrMaskStat, irqMaskStatus; - - test_pmic_print_unity_testcase_info(9887, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - irqGpioNumMaxCnt = PMIC_TPS6594X_IRQ_GPIO_11_INT_MASK_NUM; - - if(PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - /* SOFT REBOOT is not valid for PG 1.0*/ - irqNumMaxCnt = PMIC_TPS6594X_IRQ_MAX_NUM_PG_1_0; - } - else - { - irqNumMaxCnt = PMIC_TPS6594X_IRQ_MAX_NUM_PG_2_0; - } - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - irqGpioNumMaxCnt = PMIC_LP8764X_IRQ_GPIO_10_INT_MASK_NUM; - - if(PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - /* SOFT REBOOT is not valid for PG 1.0*/ - irqNumMaxCnt = PMIC_LP8764X_IRQ_MAX_NUM_PG_1_0; - } - else - { - irqNumMaxCnt = PMIC_LP8764X_IRQ_MAX_NUM_PG_2_0; - } - } - - /* Masking All GPIO Interrupts */ - pmicStatus = Pmic_irqGpioMaskIntr(pPmicCoreHandle, - PMIC_IRQ_GPIO_ALL_INT_MASK_NUM, - PMIC_IRQ_MASK, - PMIC_IRQ_GPIO_RISE_FALL_INT_TYPE); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - - for(irqCnt = 0; irqCnt <= irqGpioNumMaxCnt; irqCnt++) - { - /* Get Mask status of Gpio Interrupt */ - pmicStatus = Pmic_irqGetGpioMaskIntr(pPmicCoreHandle, - irqCnt, - PMIC_IRQ_GPIO_RISE_FALL_INT_TYPE, - &riseIntrMaskStat, - &fallIntrMaskStat); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(PMIC_IRQ_MASK, riseIntrMaskStat); - TEST_ASSERT_EQUAL(PMIC_IRQ_MASK, fallIntrMaskStat); - } - - /* Masking All Interrupts */ - pmicStatus = Pmic_irqMaskIntr(pPmicCoreHandle, - PMIC_IRQ_ALL, - PMIC_IRQ_MASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Leo device Mask status */ - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - for(irqCnt = 0; irqCnt < irqNumMaxCnt; irqCnt++) - { - /* PMIC Mask registers are not available for these interrupts*/ - if((irqCnt == 0) || (irqCnt == 1) || (irqCnt == 2) || - (irqCnt == 20) || (irqCnt == 21) || (irqCnt == 22) || - (irqCnt == 27) || (irqCnt == 30) || (irqCnt == 53) || - (irqCnt == 57) || (irqCnt == 61) || (irqCnt == 65) || - (irqCnt == 69) || (irqCnt == 73) || (irqCnt == 77) || - (irqCnt == 81) || (irqCnt == 85) ) - { - continue; - - } - - /* PMIC GPIO Mask registers are tested as part of Pmic_irqGpioMaskIntr(). - * So NA for the Pmic_irqMaskIntr() */ - if((irqCnt >= 39 ) && (irqCnt <= 49)) - { - continue; - - } - - /* Get Mask status of Gpio Interrupt */ - pmicStatus = Pmic_irqGetMaskIntrStatus(pPmicCoreHandle, - irqCnt, - &irqMaskStatus); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(PMIC_IRQ_MASK, irqMaskStatus); - } - } - - /* Hera device Mask status */ - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - for(irqCnt = 0; irqCnt < irqNumMaxCnt; irqCnt++) - { - /* PMIC Mask registers are not available for these interrupts*/ - if((irqCnt == 0) || (irqCnt == 1) || (irqCnt == 2) || - (irqCnt == 17) || (irqCnt == 18) || (irqCnt == 19) || - (irqCnt == 23) || (irqCnt == 26) || (irqCnt == 42) || - (irqCnt == 45) || (irqCnt == 51) || (irqCnt == 55) || - (irqCnt == 59) || (irqCnt == 63)) - { - continue; - - } - - /* PMIC GPIO Mask registers are tested as part of Pmic_irqGpioMaskIntr(). - * So NA for the Pmic_irqMaskIntr() */ - if((irqCnt >= 32 ) && (irqCnt <= 41)) - { - continue; - - } - /* Get Mask status of Gpio Interrupt */ - pmicStatus = Pmic_irqGetMaskIntrStatus(pPmicCoreHandle, - irqCnt, - &irqMaskStatus); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(PMIC_IRQ_MASK, irqMaskStatus); - } - } - - - pmic_testResultUpdate_pass(9887, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Test to Get UnMask status of Gpio and Irq Interrupts - */ -static void test_pmic_gpio_irq_getUnMaskIntrStat(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t irqGpioNumMaxCnt, irqNumMaxCnt, irqCnt; - bool riseIntrMaskStat, fallIntrMaskStat, irqMaskStatus; - - test_pmic_print_unity_testcase_info(9888, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - /*! - * On J721E PG1.0, Application hangs only when the test software sets - * ORD_SHUTDOWN_MASK and REG_CRC_ERR_MASK to '0' and other mask bits - * is set to '1'. - * As suggested by PMIC Team, Ignore the test for J721E PG1.0. - * Not planning to debug this issue as the same test is working fine - * for J721E PG2.0. - */ - if(PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - if(pmic_device_info == J721E_LEO_PMICB_DEVICE) - { - pmic_testResultUpdate_ignore(9888, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - irqGpioNumMaxCnt = PMIC_TPS6594X_IRQ_GPIO_11_INT_MASK_NUM; - - if(PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - /* SOFT REBOOT is not valid for PG 1.0*/ - irqNumMaxCnt = PMIC_TPS6594X_IRQ_MAX_NUM_PG_1_0; - } - else - { - irqNumMaxCnt = PMIC_TPS6594X_IRQ_MAX_NUM_PG_2_0; - } - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - irqGpioNumMaxCnt = PMIC_LP8764X_IRQ_GPIO_10_INT_MASK_NUM; - - if(PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - /* SOFT REBOOT is not valid for PG 1.0*/ - irqNumMaxCnt = PMIC_LP8764X_IRQ_MAX_NUM_PG_1_0; - } - else - { - irqNumMaxCnt = PMIC_LP8764X_IRQ_MAX_NUM_PG_2_0; - } - } - - /* Unmasking All GPIO Interrupts */ - pmicStatus = Pmic_irqGpioMaskIntr(pPmicCoreHandle, - PMIC_IRQ_GPIO_ALL_INT_MASK_NUM, - PMIC_IRQ_UNMASK, - PMIC_IRQ_GPIO_RISE_FALL_INT_TYPE); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - for(irqCnt = 0; irqCnt <= irqGpioNumMaxCnt; irqCnt++) - { - /* Get Mask status of Gpio Interrupt */ - pmicStatus = Pmic_irqGetGpioMaskIntr(pPmicCoreHandle, - irqCnt, - PMIC_IRQ_GPIO_RISE_FALL_INT_TYPE, - &riseIntrMaskStat, - &fallIntrMaskStat); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(PMIC_IRQ_UNMASK, riseIntrMaskStat); - TEST_ASSERT_EQUAL(PMIC_IRQ_UNMASK, fallIntrMaskStat); - } - - /* Unmasking All Interrupts */ - pmicStatus = Pmic_irqMaskIntr(pPmicCoreHandle, - PMIC_IRQ_ALL, - PMIC_IRQ_UNMASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Leo device Mask status */ - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - for(irqCnt = 0; irqCnt < irqNumMaxCnt; irqCnt++) - { - /* PMIC Mask registers are not available for these interrupts*/ - if((irqCnt == 0) || (irqCnt == 1) || (irqCnt == 2) || - (irqCnt == 20) || (irqCnt == 21) || (irqCnt == 22) || - (irqCnt == 27) || (irqCnt == 30) || (irqCnt == 53) || - (irqCnt == 57) || (irqCnt == 61) || (irqCnt == 65) || - (irqCnt == 69) || (irqCnt == 73) || (irqCnt == 77) || - (irqCnt == 81) || (irqCnt == 85) ) - { - continue; - - } - - /* PMIC GPIO Mask registers are tested as part of Pmic_irqGpioMaskIntr(). - * So NA for the Pmic_irqMaskIntr() */ - if((irqCnt >= 39 ) && (irqCnt <= 49)) - { - continue; - - } - - /* Get Mask status of Gpio Interrupt */ - pmicStatus = Pmic_irqGetMaskIntrStatus(pPmicCoreHandle, - irqCnt, - &irqMaskStatus); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(PMIC_IRQ_UNMASK, irqMaskStatus); - } - } - - /* Hera device Mask status */ - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - for(irqCnt = 0; irqCnt < irqNumMaxCnt; irqCnt++) - { - /* PMIC UnMask registers are not available for these interrupts*/ - if((irqCnt == 0) || (irqCnt == 1) || (irqCnt == 2) || - (irqCnt == 17) || (irqCnt == 18) || (irqCnt == 19) || - (irqCnt == 23) || (irqCnt == 26) || (irqCnt == 42) || - (irqCnt == 45) || (irqCnt == 51) || (irqCnt == 55) || - (irqCnt == 59) || (irqCnt == 63)) - { - continue; - - } - - /* PMIC GPIO UnMask registers are tested as part of Pmic_irqGpioMaskIntr(). - * So NA for the Pmic_irqMaskIntr() */ - if((irqCnt >= 32 ) && (irqCnt <= 41)) - { - continue; - - } - /* Get Mask status of Gpio Interrupt */ - pmicStatus = Pmic_irqGetMaskIntrStatus(pPmicCoreHandle, - irqCnt, - &irqMaskStatus); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(PMIC_IRQ_UNMASK, irqMaskStatus); - } - } - - - /* Masking All GPIO Interrupts */ - pmicStatus = Pmic_irqGpioMaskIntr(pPmicCoreHandle, - PMIC_IRQ_GPIO_ALL_INT_MASK_NUM, - PMIC_IRQ_MASK, - PMIC_IRQ_GPIO_RISE_FALL_INT_TYPE); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Masking All Interrupts */ - pmicStatus = Pmic_irqMaskIntr(pPmicCoreHandle, - PMIC_IRQ_ALL, - PMIC_IRQ_MASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(9888, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_irqGetGpioMaskIntr: Parameter validation for handle - */ -static void test_pmic_gpio_getMaskIntrStatPrmValTst_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool riseIntrMaskStat, fallIntrMaskStat; - - test_pmic_print_unity_testcase_info(9889, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - /* Masking All GPIO Interrupts */ - pmicStatus = Pmic_irqGpioMaskIntr(pPmicCoreHandle, - PMIC_IRQ_GPIO_ALL_INT_MASK_NUM, - PMIC_IRQ_MASK, - PMIC_IRQ_GPIO_RISE_FALL_INT_TYPE); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - - /* Get Mask status of Gpio Interrupt */ - pmicStatus = Pmic_irqGetGpioMaskIntr(NULL, - 0U, - PMIC_IRQ_GPIO_RISE_FALL_INT_TYPE, - &riseIntrMaskStat, - &fallIntrMaskStat); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(9889, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_irqGetGpioMaskIntr: Parameter validation for pFallIntrMaskStat - */ -static void test_pmic_gpio_getMaskIntrStatPrmValTst_pFallIntrMaskStat(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool riseIntrMaskStat; - - test_pmic_print_unity_testcase_info(9890, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - /* Masking All GPIO Interrupts */ - pmicStatus = Pmic_irqGpioMaskIntr(pPmicCoreHandle, - PMIC_IRQ_GPIO_ALL_INT_MASK_NUM, - PMIC_IRQ_MASK, - PMIC_IRQ_GPIO_RISE_FALL_INT_TYPE); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - - /* Get Mask status of Gpio Interrupt */ - pmicStatus = Pmic_irqGetGpioMaskIntr(pPmicCoreHandle, - 0U, - PMIC_IRQ_GPIO_RISE_FALL_INT_TYPE, - &riseIntrMaskStat, - NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(9890, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_irqGetGpioMaskIntr: Parameter validation for pRiseIntrMaskStat - */ -static void test_pmic_gpio_getMaskIntrStatPrmValTst_pRiseIntrMaskStat(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool fallIntrMaskStat; - - test_pmic_print_unity_testcase_info(9891, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - /* Masking All GPIO Interrupts */ - pmicStatus = Pmic_irqGpioMaskIntr(pPmicCoreHandle, - PMIC_IRQ_GPIO_ALL_INT_MASK_NUM, - PMIC_IRQ_MASK, - PMIC_IRQ_GPIO_RISE_FALL_INT_TYPE); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - - /* Get Mask status of Gpio Interrupt */ - pmicStatus = Pmic_irqGetGpioMaskIntr(pPmicCoreHandle, - 0U, - PMIC_IRQ_GPIO_RISE_FALL_INT_TYPE, - NULL, - &fallIntrMaskStat); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(9891, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_irqGetMaskIntrStatus: Parameter validation for handle - */ -static void test_pmic_gpio_irq_getMaskIntrStatPrmValTst_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool irqMaskStatus; - - test_pmic_print_unity_testcase_info(9892, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - /* Masking All Interrupts */ - pmicStatus = Pmic_irqMaskIntr(pPmicCoreHandle, - PMIC_IRQ_ALL, - PMIC_IRQ_MASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Get Mask status of IRQ Interrupt */ - pmicStatus = Pmic_irqGetMaskIntrStatus(NULL, - 0U, - &irqMaskStatus); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(9892, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_irqGetMaskIntrStatus: Parameter validation for pMaskStatus - */ -static void test_pmic_gpio_irq_getMaskIntrStatPrmValTst_pMaskStatus(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(9893, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - /* Masking All Interrupts */ - pmicStatus = Pmic_irqMaskIntr(pPmicCoreHandle, - PMIC_IRQ_ALL, - PMIC_IRQ_MASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Get Mask status of IRQ Interrupt */ - pmicStatus = Pmic_irqGetMaskIntrStatus(pPmicCoreHandle, - 0U, - NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(9893, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for pGpioCfg - */ -static void test_pmic_gpio_nPWRON_getCfgPrmValTest_pGpioCfg(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(10558, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - pmicStatus = Pmic_gpioGetNPwronEnablePinConfiguration(pPmicCoreHandle, - NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10558, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Test to set/get Pin function as PMIC_TPS6594X_NPWRON_PINFUNC_NONE - */ -static void test_pmic_gpio_nPWRON_setCfg_pinFunc(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_NPWRON_PINFUNC_NONE, - PMIC_GPIO_HIGH - }; - Pmic_GpioCfg_t gpioCfg_rd = {PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT}; - - test_pmic_print_unity_testcase_info(10559, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(10559, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_gpioSetNPwronEnablePinConfiguration(pPmicCoreHandle, - gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioGetNPwronEnablePinConfiguration(pPmicCoreHandle, - &gpioCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(gpioCfg.pinFunc, gpioCfg_rd.pinFunc); - - pmic_testResultUpdate_pass(10559, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Test to set/get Pin polarity for Enable Pin - */ -static void test_pmic_gpio_enable_setCfg_pinPolarity(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_GpioCfg_t gpioCfg_rd = {PMIC_ENABLE_CFG_POLARITY_VALID_SHIFT}; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_ENABLE_CFG_POLARITY_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_NSLEEP1, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(10560, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - pmicStatus = Pmic_gpioSetNPwronEnablePinConfiguration(pPmicCoreHandle, - gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioGetNPwronEnablePinConfiguration(pPmicCoreHandle, - &gpioCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(gpioCfg.pinPolarity, gpioCfg_rd.pinPolarity); - - pmic_testResultUpdate_pass(10560, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Test to set/get GPIO pullup/pull down control configuration - */ -static void test_pmic_gpio_setCfg_pullCtrl(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_GpioCfg_t gpioCfg_rd = {PMIC_GPIO_CFG_PULL_VALID_SHIFT}; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PULL_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_NSLEEP1, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(10561, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - gpioCfg.pullCtrl = PMIC_GPIO_PULL_DISABLED; - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, 1U, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioGetConfiguration(pPmicCoreHandle, 1U, &gpioCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(gpioCfg.pullCtrl, gpioCfg_rd.pullCtrl); - - gpioCfg.pullCtrl = PMIC_GPIO_PULL_DOWN; - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, 1U, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioGetConfiguration(pPmicCoreHandle, 1U, &gpioCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(gpioCfg.pullCtrl, gpioCfg_rd.pullCtrl); - - gpioCfg.pullCtrl = PMIC_GPIO_PULL_UP; - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, 1U, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioGetConfiguration(pPmicCoreHandle, 1U, &gpioCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(gpioCfg.pullCtrl, gpioCfg_rd.pullCtrl); - - pmic_testResultUpdate_pass(10561, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Test to set/get signal deglitch time enable configuration - */ -static void test_pmic_gpio_setCfg_deglitchTime(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_GpioCfg_t gpioCfg_rd = {PMIC_GPIO_CFG_DEGLITCH_VALID_SHIFT}; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_DEGLITCH_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_NSLEEP1, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(10562, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, 1U, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioGetConfiguration(pPmicCoreHandle, 1U, &gpioCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(gpioCfg.deglitchEnable, gpioCfg_rd.deglitchEnable); - - pmic_testResultUpdate_pass(10562, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Test to verify GPIO1 disable Interrupt - */ -static void test_pmic_gpio1_testDisable_interrupt(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool riseIntrMaskStat, fallIntrMaskStat; - uint8_t irqGpioNum; - - test_pmic_print_unity_testcase_info(10563, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - pmicStatus = Pmic_gpioSetIntr(pPmicCoreHandle, - 1U, - PMIC_GPIO_DISABLE_INTERRUPT, - PMIC_GPIO_POL_HIGH); - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - irqGpioNum = PMIC_TPS6594X_IRQ_GPIO_1_INT_MASK_NUM; - - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - irqGpioNum = PMIC_LP8764X_IRQ_GPIO_1_INT_MASK_NUM; - - } - - pmicStatus = Pmic_irqGetGpioMaskIntr(pPmicCoreHandle, - irqGpioNum, - PMIC_IRQ_GPIO_RISE_FALL_INT_TYPE, - &riseIntrMaskStat, - &fallIntrMaskStat); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(riseIntrMaskStat, PMIC_IRQ_MASK); - TEST_ASSERT_EQUAL(fallIntrMaskStat, PMIC_IRQ_MASK); - - pmic_testResultUpdate_pass(10563, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for pullCtrl - */ -static void test_pmic_gpio_setCfgPrmValTest_pullCtrl(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PULL_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - 3U, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_NSLEEP1, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(10564, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, 1U, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10564, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Test to set/get nPWRON/Enable pull up control configuration - */ -static void test_pmic_gpio_nPWRON_setCfg_pullCtrl(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PULL_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_UP, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_NSLEEP1, - PMIC_GPIO_HIGH - }; - Pmic_GpioCfg_t gpioCfg_rd = {PMIC_GPIO_CFG_PULL_VALID_SHIFT}; - - test_pmic_print_unity_testcase_info(10565, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(10565, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_gpioSetNPwronEnablePinConfiguration(pPmicCoreHandle, - gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioGetNPwronEnablePinConfiguration(pPmicCoreHandle, - &gpioCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(gpioCfg.pullCtrl, gpioCfg_rd.pullCtrl); - - pmic_testResultUpdate_pass(10565, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for pPmicCoreHandle - */ -static void test_pmic_gpio_nPWRON_setCfgPrmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_NSLEEP1, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(10566, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - pmicStatus = Pmic_gpioSetNPwronEnablePinConfiguration(NULL, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(10566, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for pPmicCoreHandle - */ -static void test_pmic_gpio_nPWRON_getCfgPrmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_GpioCfg_t gpioCfg_rd = {0U}; - - test_pmic_print_unity_testcase_info(10567, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - pmicStatus = Pmic_gpioGetNPwronEnablePinConfiguration(NULL, &gpioCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(10567, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_gpioSetNPwronEnablePinConfiguration : Test to set/get - * signal deglitch time enable configuration - */ -static void test_pmic_gpio_nPWRON_setCfg_deglitchTime(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_GpioCfg_t gpioCfg_rd = {PMIC_GPIO_CFG_DEGLITCH_VALID_SHIFT}; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_DEGLITCH_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_NSLEEP1, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(10568, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(10568, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_gpioSetNPwronEnablePinConfiguration(pPmicCoreHandle, - gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioGetNPwronEnablePinConfiguration(pPmicCoreHandle, - &gpioCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(gpioCfg.deglitchEnable, gpioCfg_rd.deglitchEnable); - - pmic_testResultUpdate_pass(10568, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter Validation for deglitchEnable for NPwronEnablePin - */ -static void test_pmic_gpio_nPWRON_setCfgPrmValTest_deglitchEnable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_DEGLITCH_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - 2U, - PMIC_TPS6594X_GPIO_PINFUNC_NSLEEP1, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(10569, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(10569, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_gpioSetNPwronEnablePinConfiguration(pPmicCoreHandle, - gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10569, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter Validation for pullCtrl for NPwronEnablePin - */ -static void test_pmic_gpio_nPWRON_setCfgPrmValTest_pullCtrl(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PULL_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - 3U, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_NSLEEP1, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(10570, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(10570, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_gpioSetNPwronEnablePinConfiguration(pPmicCoreHandle, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10570, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for pin for Min Value - */ -static void test_pmic_gpio_setCfgPrmValTest_pin_minVal(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t pin = 0U; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_NSLEEP1, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(10571, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(pmicStatus, PMIC_ST_ERR_INV_PARAM); - - pmic_testResultUpdate_pass(10571, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_gpioSetNPwronEnablePinConfiguration : Test to set/get - * Invalid validParams - */ -static void test_pmic_gpio_nPWRON_setCfg_validParams(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_GpioCfg_t gpioCfg = - { - 0x40, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_UP, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_NSLEEP1, - PMIC_GPIO_HIGH - }; - Pmic_GpioCfg_t gpioCfg_rd = {0x40}; - - test_pmic_print_unity_testcase_info(10572, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - pmicStatus = Pmic_gpioSetNPwronEnablePinConfiguration(pPmicCoreHandle, - gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioGetNPwronEnablePinConfiguration(pPmicCoreHandle, - &gpioCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(10572, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_irqGetMaskIntrStatus: Parameter validation for irqNum - */ -static void test_pmic_irqGetMaskIntrStatusPrmValTst_irqNum(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool irqMaskStatus; - - test_pmic_print_unity_testcase_info(10753, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - /* Masking All Interrupts */ - pmicStatus = Pmic_irqMaskIntr(pPmicCoreHandle, - PMIC_IRQ_ALL, - PMIC_IRQ_MASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Get Mask status of IRQ Interrupt */ - pmicStatus = Pmic_irqGetMaskIntrStatus(pPmicCoreHandle, - 90U, - &irqMaskStatus); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10753, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_irqClrErrStatus: Parameter validation for handle - */ -static void test_pmic_irqClrErrStatusPrmValTst_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t irqNum = 0U; - - test_pmic_print_unity_testcase_info(10754, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - /* Clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(NULL, irqNum); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(10754, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_irqClrErrStatus: Parameter validation for irqNum - */ -static void test_pmic_irqClrErrStatusPrmValTst_irqNum(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(10755, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - /* Clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, 90U); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10755, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_irqGetErrStatus: Parameter validation for handle - */ -static void test_pmic_irqGetErrStatusPrmValTst_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool clearIRQ = false; - Pmic_IrqStatus_t errStat = {0U}; - - test_pmic_print_unity_testcase_info(10756, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(NULL, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(10756, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_irqGetErrStatus: Parameter validation for pErrStat - */ -static void test_pmic_irqGetErrStatusPrmValTst_pErrStat(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool clearIRQ = false; - - test_pmic_print_unity_testcase_info(10757, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, NULL, clearIRQ); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10757, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_irqMaskIntr: Parameter validation for handle - */ -static void test_pmic_irqMaskIntrPrmValTst_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(10758, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - /* Masking All Interrupts */ - pmicStatus = Pmic_irqMaskIntr(NULL, PMIC_IRQ_ALL, PMIC_IRQ_MASK); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(10758, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getNextErrorStatus: Parameter validation for handle - */ -static void test_pmic_getNextErrorStatusPrmValTst_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_IrqStatus_t errStat = {0U}; - uint8_t irqNum = 0U; - - test_pmic_print_unity_testcase_info(10759, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - pmicStatus = Pmic_getNextErrorStatus(NULL, &errStat, &irqNum); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(10759, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getNextErrorStatus: Parameter validation for pErrStat - */ -static void test_pmic_getNextErrorStatusPrmValTst_pErrStat(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t irqNum = 0U; - - test_pmic_print_unity_testcase_info(10760, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, NULL, &irqNum); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10760, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getNextErrorStatus: Parameter validation for pIrqNum - */ -static void test_pmic_getNextErrorStatusPrmValTst_pIrqNum(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_IrqStatus_t errStat = {0U}; - - test_pmic_print_unity_testcase_info(10761, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, &errStat, NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10761, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getNextErrorStatus: Test to check for error Status - * intStatus[0], intStatus[2] and intStatus[3] not equal to zero - */ -static void test_pmic_getNextErrorStatus_intStat0_intStat3(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_IrqStatus_t errStat = {0U}; - uint8_t irqNum = 0U; - - test_pmic_print_unity_testcase_info(10762, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - errStat.intStatus[0] = 1U; - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, &errStat, &irqNum); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - errStat.intStatus[2] = 1U; - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, &errStat, &irqNum); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - errStat.intStatus[3] = 1U; - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, &errStat, &irqNum); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(10762, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_irqGpioMaskIntr: Parameter validation for handle - */ -static void test_pmic_irqGpioMaskIntrPrmValTst_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(10763, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - /* Masking All GPIO Interrupts */ - pmicStatus = Pmic_irqGpioMaskIntr(NULL, - PMIC_IRQ_GPIO_ALL_INT_MASK_NUM, - PMIC_IRQ_MASK, - PMIC_IRQ_GPIO_RISE_FALL_INT_TYPE); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(10763, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_irqGpioMaskIntr: Parameter validation for irqGpioNum - */ -static void test_pmic_irqGpioMaskIntrPrmValTst_irqGpioNum(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(10764, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - /* Masking All GPIO Interrupts */ - pmicStatus = Pmic_irqGpioMaskIntr(pPmicCoreHandle, - 13U, - PMIC_IRQ_MASK, - PMIC_IRQ_GPIO_RISE_FALL_INT_TYPE); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10764, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_irqGpioMaskIntr: Parameter validation for gpioIntrType - */ -static void test_pmic_irqGpioMaskIntrPrmValTst_gpioIntrType(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(10765, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - /* Masking All GPIO Interrupts */ - pmicStatus = Pmic_irqGpioMaskIntr(pPmicCoreHandle, - PMIC_IRQ_GPIO_ALL_INT_MASK_NUM, - PMIC_IRQ_MASK, - 0x3U); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10765, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_irqGpioMaskIntr: Parameter validation for irqGpioNum on Hera device type - */ -static void test_pmic_irqGpioMaskIntrPrmValTst_irqGpioNum_hera(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(10766, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(10766, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - /* Masking All GPIO Interrupts */ - pmicStatus = Pmic_irqGpioMaskIntr(pPmicCoreHandle, - PMIC_TPS6594X_IRQ_GPIO_11_INT_MASK_NUM, - PMIC_IRQ_MASK, - PMIC_IRQ_GPIO_RISE_FALL_INT_TYPE); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10766, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_irqGetGpioMaskIntr: Parameter validation for irqGpioNum - */ -static void test_pmic_irqGetGpioMaskIntrPrmValTst_irqGpioNum(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool riseIntrMaskStat, fallIntrMaskStat; - - test_pmic_print_unity_testcase_info(10767, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - /* Masking All GPIO Interrupts */ - pmicStatus = Pmic_irqGpioMaskIntr(pPmicCoreHandle, - PMIC_IRQ_GPIO_ALL_INT_MASK_NUM, - PMIC_IRQ_MASK, - PMIC_IRQ_GPIO_RISE_FALL_INT_TYPE); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Get Mask status of Gpio Interrupt */ - pmicStatus = Pmic_irqGetGpioMaskIntr(pPmicCoreHandle, - 13U, - PMIC_IRQ_GPIO_RISE_FALL_INT_TYPE, - &riseIntrMaskStat, - &fallIntrMaskStat); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10767, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_irqGetGpioMaskIntr: Parameter validation for gpioIntrType - */ -static void test_pmic_irqGetGpioMaskIntrPrmValTst_gpioIntrType(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool riseIntrMaskStat, fallIntrMaskStat; - - test_pmic_print_unity_testcase_info(10768, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - /* Masking All GPIO Interrupts */ - pmicStatus = Pmic_irqGpioMaskIntr(pPmicCoreHandle, - PMIC_IRQ_GPIO_ALL_INT_MASK_NUM, - PMIC_IRQ_MASK, - PMIC_IRQ_GPIO_RISE_FALL_INT_TYPE); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Get Mask status of Gpio Interrupt */ - pmicStatus = Pmic_irqGetGpioMaskIntr(pPmicCoreHandle, - PMIC_IRQ_GPIO_ALL_INT_MASK_NUM, - 0x3U, - &riseIntrMaskStat, - &fallIntrMaskStat); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10768, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_irqGetGpioMaskIntr: Parameter validation for irqGpioNum on Hera device type - */ -static void test_pmic_irqGetGpioMaskIntrPrmValTst_irqGpioNum_hera(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool riseIntrMaskStat, fallIntrMaskStat; - - test_pmic_print_unity_testcase_info(10769, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(10769, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - /* Masking All GPIO Interrupts */ - pmicStatus = Pmic_irqGpioMaskIntr(pPmicCoreHandle, - PMIC_IRQ_GPIO_ALL_INT_MASK_NUM, - PMIC_IRQ_MASK, - PMIC_IRQ_GPIO_RISE_FALL_INT_TYPE); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Get Mask status of Gpio Interrupt */ - pmicStatus = Pmic_irqGetGpioMaskIntr(pPmicCoreHandle, - PMIC_TPS6594X_IRQ_GPIO_11_INT_MASK_NUM, - PMIC_IRQ_GPIO_RISE_FALL_INT_TYPE, - &riseIntrMaskStat, - &fallIntrMaskStat); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10769, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_irqGpioMaskIntr: Test for Masking All GPIO Interrupts for - * Leo device type check - Code covrage - */ -static void test_pmic_irqGpioMaskIntr_deviceType_leo(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(10770, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(10770, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - /* Masking All GPIO Interrupts */ - pmicStatus = Pmic_irqGpioMaskIntr(pPmicCoreHandle, - PMIC_TPS6594X_IRQ_GPIO_11_INT_MASK_NUM, - PMIC_IRQ_MASK, - PMIC_IRQ_GPIO_RISE_FALL_INT_TYPE); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(10770, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * \brief Added for Coverage - */ -static void test_pmic_gpio_coverageGaps(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t pinValue = 0U; - uint8_t pmicDeviceType; - uint8_t irqNum = 0U; - bool clearIRQ = false; - bool irqMaskStatus; - bool riseIntrMaskStat, fallIntrMaskStat; - Pmic_IrqStatus_t errStat = {0U}; - Pmic_GpioCfg_t gpioCfg_rd = {0U}; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_NSLEEP1, - PMIC_GPIO_HIGH - }; - int32_t crcTestFlag = PMIC_STATUS_CRC_INIT_VAL; - - test_pmic_print_unity_testcase_info(8852, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(PMIC_INTF_SPI == pPmicCoreHandle->commMode) - { - pmic_testResultUpdate_ignore(8852, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - -#if defined(SOC_J721E) - crcTestFlag = gCrcTestFlag_J721E; -#endif - -#if defined(SOC_J7200) - crcTestFlag = gCrcTestFlag_J7VCL; -#endif - - //Fault Injection Tests: - Pmic_GpioCfg_t gpioCfg_ft = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_NSLEEP1, - PMIC_GPIO_HIGH - }; - - if(J7VCL_HERA_PMICB_DEVICE != pmic_device_info) - { - gPmic_faultInjectCfg.enableFaultInjectionRead = 1U; - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pmicStatus = Pmic_gpioTps6594xNPwronPinGetValue(pPmicCoreHandle, &pinValue); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_gpioGetPinFunc - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - gpioCfg_rd.validParams = PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT; - pmicStatus =Pmic_gpioGetNPwronEnablePinConfiguration(pPmicCoreHandle, &gpioCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_gpioTps6594xGetNPwronPinConfiguration - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - gpioCfg_rd.validParams = PMIC_GPIO_CFG_DEGLITCH_VALID_SHIFT; - pmicStatus = Pmic_gpioGetNPwronEnablePinConfiguration(pPmicCoreHandle, &gpioCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - gPmic_faultInjectCfg.enableFaultInjectionRead = 0U; - } - - //Pmic_gpioSetPinFunc - gpioCfg_ft.validParams = PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT; - gPmic_faultInjectCfg.enableFaultInjectionRead = 1U; - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, 1U, gpioCfg_ft); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_gpioSetPinPolarity - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - - gpioCfg_ft.validParams = PMIC_ENABLE_CFG_POLARITY_VALID_SHIFT; - pmicStatus = Pmic_gpioSetNPwronEnablePinConfiguration(pPmicCoreHandle, gpioCfg_ft); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_gpioGetPinPolarity - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - - gpioCfg_rd.validParams = PMIC_ENABLE_CFG_POLARITY_VALID_SHIFT; - pmicStatus = Pmic_gpioGetNPwronEnablePinConfiguration(pPmicCoreHandle, &gpioCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_gpioSetPullCtrl - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - gpioCfg_ft.validParams = PMIC_GPIO_CFG_PULL_VALID_SHIFT; - gpioCfg_ft.pullCtrl = PMIC_GPIO_PULL_DISABLED; - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, 1U, gpioCfg_ft); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_gpioGetPullCtrl - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - gpioCfg_rd.validParams = PMIC_GPIO_CFG_PULL_VALID_SHIFT; - pmicStatus = Pmic_gpioGetConfiguration(pPmicCoreHandle, 1U, &gpioCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_gpioSetPinDir - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - gpioCfg_ft.validParams = PMIC_GPIO_CFG_DIR_VALID_SHIFT; - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, 1U, gpioCfg_ft); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_gpioGetPinDir - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - gpioCfg_rd.validParams = PMIC_GPIO_CFG_DIR_VALID_SHIFT; - pmicStatus = Pmic_gpioGetConfiguration(pPmicCoreHandle, 1U, &gpioCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_gpioSetDeglitchTime and Pmic_gpioGetDeglitchTime - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - gpioCfg_ft.validParams = PMIC_GPIO_CFG_DEGLITCH_VALID_SHIFT; - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, 1U, gpioCfg_ft); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - gpioCfg_rd.validParams = PMIC_GPIO_CFG_DEGLITCH_VALID_SHIFT; - pmicStatus = Pmic_gpioGetConfiguration(pPmicCoreHandle, 1U, &gpioCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_gpioIntrEnable - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pmicStatus = Pmic_gpioSetIntr(pPmicCoreHandle, 1U, PMIC_GPIO_FALL_INTERRUPT, PMIC_GPIO_POL_HIGH); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_gpioIntrDisable - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pmicStatus = Pmic_gpioSetIntr(pPmicCoreHandle, 1U, PMIC_GPIO_DISABLE_INTERRUPT, PMIC_GPIO_POL_HIGH); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_gpioSetValue - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, 1U, PMIC_GPIO_HIGH); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 2; - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, 1U, PMIC_GPIO_HIGH); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_gpioGetValue - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pmicStatus = Pmic_gpioGetValue(pPmicCoreHandle, 1U, &pinValue); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_gpioSetOutputSignalType - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - gpioCfg_ft.validParams = PMIC_GPIO_CFG_OD_VALID_SHIFT; - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, 1U, gpioCfg_ft); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_gpioGetOutputSignalType - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - gpioCfg_rd.validParams = PMIC_GPIO_CFG_OD_VALID_SHIFT; - pmicStatus = Pmic_gpioGetConfiguration(pPmicCoreHandle, 1U, &gpioCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_irqGpioMask - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pmicStatus = Pmic_irqGpioMaskIntr(pPmicCoreHandle, - 11U, - PMIC_IRQ_MASK, - PMIC_IRQ_GPIO_RISE_INT_TYPE); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_irqGpioMask - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pmicStatus = Pmic_irqGpioMaskIntr(pPmicCoreHandle, - 11U, - PMIC_IRQ_MASK, - PMIC_IRQ_GPIO_FALL_INT_TYPE); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_irqClear - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - irqNum = PMIC_TPS6594X_GPIO1_INT; - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - irqNum = PMIC_LP8764X_GPIO1_INT; - } - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, irqNum); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_irqGetErrStatus - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - if((PMIC_STATUS_CRC_INIT_VAL == crcTestFlag) && - (J721E_LEO_PMICB_DEVICE != pmic_device_info)) - { - gIntrTopRegTestFlag = 1U; - girqGetL1RegTestFlag_Leo = 1U; - girqGetL2RegTestFlag_Leo = 1U; - //Pmic_irqGetErrStatus - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 2; - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - gIntrTopRegTestFlag = 0U; - girqGetL1RegTestFlag_Leo = 0U; - girqGetL2RegTestFlag_Leo = 0U; - } - - //Pmic_getIrqGpioMaskStatus - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pmicStatus = Pmic_irqGetGpioMaskIntr(pPmicCoreHandle, - 8U, - PMIC_IRQ_GPIO_RISE_INT_TYPE, - &riseIntrMaskStat, - &fallIntrMaskStat); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_getIrqGpioMaskStatus - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pmicStatus = Pmic_irqGetGpioMaskIntr(pPmicCoreHandle, - 8U, - PMIC_IRQ_GPIO_FALL_INT_TYPE, - &riseIntrMaskStat, - &fallIntrMaskStat); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_getIrqMaskStatus - pmicStatus = Pmic_irqMaskIntr(pPmicCoreHandle, - 24U, - PMIC_IRQ_MASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pmicStatus = Pmic_irqGetMaskIntrStatus(pPmicCoreHandle, 24U, &irqMaskStatus); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_irqMask - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pmicStatus = Pmic_irqMaskIntr(pPmicCoreHandle, - 24U, - PMIC_IRQ_MASK); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - if((PMIC_STATUS_CRC_INIT_VAL == crcTestFlag) && - (PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType)) - { - //Pmic_tps6594x_getBuck1Buck2Err - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 20; - gIntrTopRegTestFlag = 1U; - girqGetL1RegTestFlag_Leo = 1U; - girqGetL2RegTestFlag_Leo = 1U; - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_tps6594x_getBuck3Buck4Err - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 19; - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - //Pmic_tps6594x_getBuck5Err - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 18; - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - //Pmic_tps6594x_getLdoVmonErr - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 16; - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_tps6594x_getLdo3Ldo4Err - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 15; - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - //Pmic_tps6594x_getLdo1Ldo2Err - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 14; - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - //Pmic_tps6594x_getGpioErr - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 12; - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_tps6594x_getStartupErr - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 10; - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_tps6594x_getFsmEsmErr - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 5; - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - //Pmic_tps6594x_getFsmReadbackErr - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 4; - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - //Pmic_tps6594x_getFsmCommErr - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 3; - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - gIntrTopRegTestFlag = 0U; - girqGetL1RegTestFlag_Leo = 0U; - girqGetL2RegTestFlag_Leo = 0U; - } - - if((PMIC_STATUS_CRC_INIT_VAL == crcTestFlag) && - (J721E_LEO_PMICB_DEVICE == pmic_device_info)) - { - //Pmic_lp8764x_getFSMErr - gIntrTopRegTestFlag = 1U; - girqGetL1RegTestFlag_Leo_PMICB = 1U; - girqGetL2RegTestFlag_Leo = 1U; - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 6; - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - gIntrTopRegTestFlag = 0U; - girqGetL1RegTestFlag_Leo_PMICB = 0U; - girqGetL2RegTestFlag_Leo = 0U; - } - - if((PMIC_STATUS_CRC_INIT_VAL == crcTestFlag) && - (PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType)) - { - gIntrTopRegTestFlag = 1U; - girqGetL1RegTestFlag_Hera = 1U; - girqGetL2RegTestFlag_Hera = 1U; - //Pmic_lp8764x_getFSMErr - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 6; - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_lp8764x_getFsmReadbackEsmErr - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 5; - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - //Pmic_lp8764x_getFsmReadbackEsmErr - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 4; - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - //Pmic_lp8764x_getFsmCommErr - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 3; - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - //Pmic_lp8764x_getGpioErr - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 12; - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_lp8764x_getBuck3Buck4Err - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 15; - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - //Pmic_lp8764x_getBuck1Buck2Err - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 16; - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - gIntrTopRegTestFlag = 0U; - girqGetL1RegTestFlag_Hera = 0U; - girqGetL2RegTestFlag_Hera = 0U; - } - - gPmic_faultInjectCfg.enableFaultInjectionRead = 0U; - - //Pmic_maskIntr - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - irqNum = PMIC_TPS6594X_GPIO8_INT; - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - irqNum = PMIC_LP8764X_GPIO8_INT; - } - pmicStatus = Pmic_irqMaskIntr(pPmicCoreHandle, irqNum, PMIC_IRQ_MASK); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_FAIL, pmicStatus); - - //Pmic_getMaskIntrStatus - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - irqNum = PMIC_TPS6594X_GPIO8_INT; - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - irqNum = PMIC_LP8764X_GPIO8_INT; - } - pmicStatus = Pmic_irqGetMaskIntrStatus(pPmicCoreHandle, irqNum, &irqMaskStatus); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_FAIL, pmicStatus); - - if((PMIC_STATUS_CRC_INIT_VAL == crcTestFlag) && - (PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType)) - { - /* Enable top register, L1 Register and L2 Register */ - gIntrTopRegTestFlag = 1U; - girqGetL1RegTestFlag_Leo = 1U; - girqGetL2RegTestFlag_Leo = 1U; - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - gIntrTopRegTestFlag = 0U; - girqGetL1RegTestFlag_Leo = 0U; - girqGetL2RegTestFlag_Leo = 0U; - - /* Enable top register and L1 Register */ - gIntrTopRegTestFlag = 1U; - girqGetL1RegTestFlag_Leo = 1U; - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - gIntrTopRegTestFlag = 0U; - girqGetL1RegTestFlag_Leo = 0U; - - /* Enable top register, L1 Register and 1st bit of L2 register */ - gIntrTopRegTestFlag = 1U; - girqGetL1RegTestFlag_Leo = 1U; - girq1L2RegTestFlag = 1U; - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - gIntrTopRegTestFlag = 0U; - girqGetL1RegTestFlag_Leo = 0U; - girq1L2RegTestFlag = 0U; - - /* Enable top register, L1 Register and 2nd bit of L2 register */ - gIntrTopRegTestFlag = 1U; - girqGetL1RegTestFlag_Leo = 1U; - girq2L2RegTestFlag = 1U; - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - gIntrTopRegTestFlag = 0U; - girqGetL1RegTestFlag_Leo = 0U; - girq2L2RegTestFlag = 0U; - - /* Enable top register and 1st bit of L1 register */ - gIntrTopRegTestFlag = 1U; - girq1L1RegTestFlag = 1U; - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - gIntrTopRegTestFlag = 0U; - girq1L1RegTestFlag = 0U; - - /* Enable top register and 2nd bit of L1 register */ - gIntrTopRegTestFlag = 1U; - girq2L1RegTestFlag = 1U; - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - gIntrTopRegTestFlag = 0U; - girq2L1RegTestFlag = 0U; - - /* Enable top register, L1 register and 2nd bit of L2 register */ - gIntrTopRegTestFlag = 1U; - girqGetL1RegTestFlag_Leo = 1U; - girq1L2RegTestFlag = 1U; - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - gIntrTopRegTestFlag = 0U; - girqGetL1RegTestFlag_Leo = 0U; - girq1L2RegTestFlag = 0U; - - /* Enable top register, L1 register and 2nd bit of L2 register */ - gIntrTopRegTestFlag = 1U; - girqGetL1RegTestFlag_Leo = 1U; - girq2L2RegTestFlag = 1U; - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - gIntrTopRegTestFlag = 0U; - girqGetL1RegTestFlag_Leo = 0U; - girq2L2RegTestFlag = 0U; - } - - if((PMIC_STATUS_CRC_INIT_VAL == crcTestFlag) && - (J721E_LEO_PMICB_DEVICE == pmic_device_info)) - { - /* Enable top register L1 Register and all bit of wdg status Register */ - gIntrTopRegTestFlag = 1U; - girqGetL1RegTestFlag_Leo_PMICB = 1U; - girqGetL2RegTestFlag_Leo = 1U; - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - gIntrTopRegTestFlag = 0U; - girqGetL1RegTestFlag_Leo_PMICB = 0U; - girqGetL2RegTestFlag_Leo = 0U; - - /* Enable top register, L1 Register and 1st bit of wdg status Register */ - gIntrTopRegTestFlag = 1U; - girqGetL1RegTestFlag_Leo_PMICB = 1U; - girq1L2RegTestFlag = 1U; - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - gIntrTopRegTestFlag = 0U; - girqGetL1RegTestFlag_Leo_PMICB = 0U; - girq1L2RegTestFlag = 0U; - - /* Enable top register, L1 Register and 6th bit of wdg status Register */ - gIntrTopRegTestFlag = 1U; - girqGetL1RegTestFlag_Leo_PMICB = 1U; - girq2L2RegTestFlag = 1U; - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - gIntrTopRegTestFlag = 0U; - girqGetL1RegTestFlag_Leo_PMICB = 0U; - girq2L2RegTestFlag = 0U; - - /* Enable top register and L1 Register */ - gIntrTopRegTestFlag = 1U; - girqGetL1RegTestFlag_Leo_PMICB = 1U; - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - gIntrTopRegTestFlag = 0U; - girqGetL1RegTestFlag_Leo_PMICB = 0U; - } - - if((PMIC_STATUS_CRC_INIT_VAL == crcTestFlag) && - (PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType)) - { - /* Enable top register, L1 Register and L2 Register */ - gIntrTopRegTestFlag = 1U; - girqGetL1RegTestFlag_Hera = 1U; - girqGetL2RegTestFlag_Hera = 1U; - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - gIntrTopRegTestFlag = 0U; - girqGetL1RegTestFlag_Hera = 0U; - girqGetL2RegTestFlag_Hera = 0U; - - /* Enable top register and L1 Register */ - gIntrTopRegTestFlag = 1U; - girqGetL1RegTestFlag_Hera = 1U; - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - gIntrTopRegTestFlag = 0U; - girqGetL1RegTestFlag_Hera = 0U; - - /* Enable top register, L1 Register and 1st bit of L2 register */ - gIntrTopRegTestFlag = 1U; - girqGetL1RegTestFlag_Hera = 1U; - girq1L2RegTestFlag = 1U; - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - gIntrTopRegTestFlag = 0U; - girqGetL1RegTestFlag_Hera = 0U; - girq1L2RegTestFlag = 0U; - - /* Enable top register, L1 Register and 2nd bit of L2 register */ - gIntrTopRegTestFlag = 1U; - girqGetL1RegTestFlag_Hera = 1U; - girq2L2RegTestFlag = 1U; - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - gIntrTopRegTestFlag = 0U; - girqGetL1RegTestFlag_Hera = 0U; - girq2L2RegTestFlag = 0U; - - /* Enable top register and 1st bit of L1 register */ - gIntrTopRegTestFlag = 1U; - girq1L1RegTestFlag = 1U; - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - gIntrTopRegTestFlag = 0U; - girq1L1RegTestFlag = 0U; - - /* Enable top register,and 2nd bit of L1 register */ - gIntrTopRegTestFlag = 1U; - girq2L1RegTestFlag = 1U; - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - gIntrTopRegTestFlag = 0U; - girq2L1RegTestFlag = 0U; - } - - Pmic_DevSubSysInfo_t pmicDevSubSysInfo = - { - .gpioEnable = (bool)false, - .rtcEnable = (bool)true, - .wdgEnable = (bool)true, - .buckEnable = (bool)true, - .ldoEnable = (bool)true, - .esmEnable = (bool)true - }; - - pPmicCoreHandle->pPmic_SubSysInfo = (&pmicDevSubSysInfo); - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, 1U, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, pmicStatus); - - pmicStatus = Pmic_gpioTps6594xNPwronPinGetValue(pPmicCoreHandle, &pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, pmicStatus); - - pmicDeviceType = pPmicCoreHandle->pmicDeviceType; - pPmicCoreHandle->pmicDeviceType = 3U; - pmicStatus = Pmic_gpioTps6594xNPwronPinGetValue(pPmicCoreHandle, &pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, pmicStatus); - pPmicCoreHandle->pmicDeviceType = pmicDeviceType; - - pmic_testResultUpdate_pass(8852, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -#if defined(ENABLE_SAMPLE_TESTCASES) -/*! - * Below test cases are not tested because of HW limitation. - * Added below test cases as sample for reference. - */ - -/*! - * \brief configure gpio pin3 as ESM Error pin for SOC - */ -static void test_pmic_gpio_setCfgGpioPin3_esm_soc(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - int pin = 3U; - Pmic_GpioCfg_t gpioCfg_rd = {PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT,}; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO3_NERR_SOC, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(0xAB1E, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(J721E_LEO_PMICA_DEVICE == pmic_device_info) - { - /* - * GPIO3 pin of PMIC-A is connected to 'EN_MCU3V3_LDSW' - * on J721EVM board causing hang, when programming NERR_SOC signal. - */ - pmic_testResultUpdate_ignore(0xAB1E, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(0xAB1E, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(J7VCL_LEO_PMICA_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(0xAB1E, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB1E, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioGetConfiguration(pPmicCoreHandle, pin, &gpioCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(gpioCfg.pinFunc, gpioCfg_rd.pinFunc); - - pmic_testResultUpdate_pass(0xAB1E, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * Below test cases are not tested because of HW limitation. - * Added below test cases as sample for reference. - */ - -/*! - * \brief Test to verify GPIO3 fall interrupt - */ -static void test_pmic_gpio3_testFall_interrupt(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - int8_t timeout = 10U; - uint8_t pin = 3U; - uint8_t pinValue = PMIC_GPIO_HIGH; - uint8_t intrType = PMIC_GPIO_FALL_INTERRUPT; - uint8_t maskPol = PMIC_GPIO_POL_LOW; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - uint8_t nextedIrq = 0U; - uint8_t intMask = 0U; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | PMIC_GPIO_CFG_DIR_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(0xAB19, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - /* Should not break SPI Comm Lines */ - if(PMIC_INTF_SPI == pPmicCoreHandle->commMode) - { - pmic_testResultUpdate_ignore(0xAB19, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - } - if(J721E_LEO_PMICA_DEVICE == pmic_device_info) - { - /* - * GPIO3 pin of PMIC-A is connected to 'EN_MCU3V3_LDSW' - * on J721EVM board causing hang, when programming fall interrupt. - */ - pmic_testResultUpdate_ignore(0xAB19, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - /* - * GPIO3 pin of PMIC-B is connected to 'EN_DDR0V6_BUCK' - * on J721EVM board causing hang, when programming fall interrupt. - */ - pmic_testResultUpdate_ignore(0xAB19, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(J7VCL_LEO_PMICA_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(0xAB19, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - gpioCfg.validParams = PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | - PMIC_GPIO_CFG_DIR_VALID_SHIFT | - PMIC_GPIO_CFG_OD_VALID_SHIFT | - PMIC_GPIO_CFG_PULL_VALID_SHIFT; - gpioCfg.outputSignalType = PMIC_GPIO_PUSH_PULL_OUTPUT; - gpioCfg.pullCtrl = PMIC_GPIO_PULL_UP; - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO; - } - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(0xAB19, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_TPS6594X_IRQ_GPIO_3_INT_MASK_NUM; - irqNum = PMIC_TPS6594X_GPIO3_INT; - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_LP8764X_IRQ_GPIO_3_INT_MASK_NUM; - irqNum = PMIC_LP8764X_GPIO3_INT; - } - /* Un Masking GPIO 3 FALL Interrupt */ - Pmic_irqGpioMaskIntr(pPmicCoreHandle, - intMask, - PMIC_IRQ_UNMASK, - PMIC_IRQ_GPIO_FALL_INT_TYPE); - - /* To clear the interrupts*/ - pmic_gpioTest_intClr(); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetIntr(pPmicCoreHandle, pin , intrType, maskPol); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pinValue = PMIC_GPIO_LOW; - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[irqNum/32U] & (1U << (irqNum % 32U))) != 0U)) - { - while(irqNum != nextedIrq) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &nextedIrq); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - irqNum); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(0xAB19, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * Below test cases are not tested because of HW limitation. - * Added below test cases as sample for reference. - */ - -/*! - * \brief Test to verify GPIO3 rise interrupt - */ -static void test_pmic_gpio3_testRise_interrupt(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - int8_t timeout = 10U; - uint8_t pin = 3U; - uint8_t pinValue = PMIC_GPIO_LOW; - uint8_t intrType = PMIC_GPIO_RISE_INTERRUPT; - uint8_t maskPol = PMIC_GPIO_POL_HIGH; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - uint8_t nextedIrq = 0U; - uint8_t intMask = 0U; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | PMIC_GPIO_CFG_DIR_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(0xAB18, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - /* Should not break SPI Comm Lines */ - if(PMIC_INTF_SPI == pPmicCoreHandle->commMode) - { - pmic_testResultUpdate_ignore(0xAB18, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - } - if(J721E_LEO_PMICA_DEVICE == pmic_device_info) - { - /* - * GPIO3 pin of PMIC-A is connected to 'EN_MCU3V3_LDSW' - * on J721EVM board causing hang, when programming rise interrupt. - */ - pmic_testResultUpdate_ignore(0xAB18, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - /* - * GPIO3 pin of PMIC-B is connected to 'EN_DDR0V6_BUCK' - * on J721EVM board causing hang, when programming rise interrupt. - */ - pmic_testResultUpdate_ignore(0xAB18, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(J7VCL_LEO_PMICA_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(0xAB18, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - gpioCfg.validParams = PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | - PMIC_GPIO_CFG_DIR_VALID_SHIFT | - PMIC_GPIO_CFG_OD_VALID_SHIFT | - PMIC_GPIO_CFG_PULL_VALID_SHIFT; - gpioCfg.outputSignalType = PMIC_GPIO_PUSH_PULL_OUTPUT; - gpioCfg.pullCtrl = PMIC_GPIO_PULL_UP; - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO; - } - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(0xAB18, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_TPS6594X_IRQ_GPIO_3_INT_MASK_NUM; - irqNum = PMIC_TPS6594X_GPIO3_INT; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_LP8764X_IRQ_GPIO_3_INT_MASK_NUM; - irqNum = PMIC_LP8764X_GPIO3_INT; - } - - /* Un Masking GPIO 3 RISE Interrupt */ - Pmic_irqGpioMaskIntr(pPmicCoreHandle, - intMask, - PMIC_IRQ_UNMASK, - PMIC_IRQ_GPIO_RISE_INT_TYPE); - - /* To clear the interrupts*/ - pmic_gpioTest_intClr(); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetIntr(pPmicCoreHandle, pin , intrType, maskPol); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pinValue = PMIC_GPIO_HIGH; - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[irqNum/32U] & (1U << (irqNum % 32U))) != 0U)) - { - while(irqNum != nextedIrq) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &nextedIrq); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - irqNum); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(0xAB18, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * Below test cases are not tested because of HW limitation. - * Added below test cases as sample for reference. - */ - -/*! - * \brief Test to verify GPIO9 fall interrupt - */ -static void test_pmic_gpio9_testFall_interrupt(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - int8_t timeout = 10U; - uint8_t pin = 9U; - uint8_t pinValue = PMIC_GPIO_HIGH; - uint8_t intrType = PMIC_GPIO_FALL_INTERRUPT; - uint8_t maskPol = PMIC_GPIO_POL_LOW; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - uint8_t nextedIrq = 0U; - uint8_t intMask = 0U; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | PMIC_GPIO_CFG_DIR_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(0xAB1D, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(J721E_LEO_PMICA_DEVICE == pmic_device_info) - { - /* - * GPIO9 pin of PMIC-A is connected to 'GND' - * on J721EVM board causing hang, when programming fall interrupt. - */ - pmic_testResultUpdate_ignore(0xAB1D, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - /* - * GPIO9 pin of PMIC-B is connected to 'EN_VPP1V8_LDO' - * on J721EVM board causing hang, when programming fall interrupt. - */ - pmic_testResultUpdate_ignore(0xAB1D, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(J7VCL_LEO_PMICA_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(0xAB1D, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - gpioCfg.validParams = PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | - PMIC_GPIO_CFG_DIR_VALID_SHIFT | - PMIC_GPIO_CFG_OD_VALID_SHIFT | - PMIC_GPIO_CFG_PULL_VALID_SHIFT; - gpioCfg.outputSignalType = PMIC_GPIO_PUSH_PULL_OUTPUT; - gpioCfg.pullCtrl = PMIC_GPIO_PULL_UP; - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO; - } - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(0xAB1D, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_TPS6594X_IRQ_GPIO_9_INT_MASK_NUM; - irqNum = PMIC_TPS6594X_GPIO9_INT; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_LP8764X_IRQ_GPIO_9_INT_MASK_NUM; - irqNum = PMIC_LP8764X_GPIO9_INT; - } - - /* Un Masking GPIO 9 FALL Interrupt */ - Pmic_irqGpioMaskIntr(pPmicCoreHandle, - intMask, - PMIC_IRQ_UNMASK, - PMIC_IRQ_GPIO_FALL_INT_TYPE); - - /* To clear the interrupts*/ - pmic_gpioTest_intClr(); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetIntr(pPmicCoreHandle, pin , intrType, maskPol); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pinValue = PMIC_GPIO_LOW; - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[irqNum/32U] & (1U << (irqNum % 32U))) != 0U)) - { - while(irqNum != nextedIrq) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &nextedIrq); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - irqNum); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(0xAB1D, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * Below test cases are not tested because of HW limitation. - * Added below test cases as sample for reference. - */ - -/*! - * \brief Test to verify GPIO9 rise interrupt - */ -static void test_pmic_gpio9_testRise_interrupt(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - int8_t timeout = 10U; - uint8_t pin = 9U; - uint8_t pinValue = PMIC_GPIO_LOW; - uint8_t intrType = PMIC_GPIO_RISE_INTERRUPT; - uint8_t maskPol = PMIC_GPIO_POL_HIGH; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - uint8_t nextedIrq = 0U; - uint8_t intMask = 0U; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | PMIC_GPIO_CFG_DIR_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(0xAB1C, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(J721E_LEO_PMICA_DEVICE == pmic_device_info) - { - /* - * GPIO9 pin of PMIC-A is connected to 'GND' - * on J721EVM board causing hang, when programming rise interrupt. - */ - pmic_testResultUpdate_ignore(0xAB1C, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - /* - * GPIO9 pin of PMIC-B is connected to 'EN_VPP1V8_LDO' - * on J721EVM board causing hang, when programming rise interrupt. - */ - pmic_testResultUpdate_ignore(0xAB1C, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(J7VCL_LEO_PMICA_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(0xAB1C, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - gpioCfg.validParams = PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | - PMIC_GPIO_CFG_DIR_VALID_SHIFT | - PMIC_GPIO_CFG_OD_VALID_SHIFT | - PMIC_GPIO_CFG_PULL_VALID_SHIFT; - gpioCfg.outputSignalType = PMIC_GPIO_PUSH_PULL_OUTPUT; - gpioCfg.pullCtrl = PMIC_GPIO_PULL_UP; - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO; - } - - if(J7VCL_HERA_PMICB_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(0xAB1C, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_TPS6594X_IRQ_GPIO_9_INT_MASK_NUM; - irqNum = PMIC_TPS6594X_GPIO9_INT; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_LP8764X_IRQ_GPIO_9_INT_MASK_NUM; - irqNum = PMIC_LP8764X_GPIO9_INT; - } - - /* Un Masking GPIO 9 RISE Interrupt */ - Pmic_irqGpioMaskIntr(pPmicCoreHandle, - intMask, - PMIC_IRQ_UNMASK, - PMIC_IRQ_GPIO_RISE_INT_TYPE); - - /* To clear the interrupts*/ - pmic_gpioTest_intClr(); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetIntr(pPmicCoreHandle, pin , intrType, maskPol); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pinValue = PMIC_GPIO_HIGH; - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[irqNum/32U] & (1U << (irqNum % 32U))) != 0U)) - { - while(irqNum != nextedIrq) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &nextedIrq); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - irqNum); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(0xAB1C, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * Below test cases are not tested because of HW limitation. - * Added below test cases as sample for reference. - */ - -/*! - * \brief Test to verify GPIO11 fall interrupt - */ -static void test_pmic_gpio11_testFall_interrupt(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - int8_t timeout = 10U; - uint8_t pin = 11U; - uint8_t pinValue = PMIC_GPIO_HIGH; - uint8_t intrType = PMIC_GPIO_FALL_INTERRUPT; - uint8_t maskPol = PMIC_GPIO_POL_LOW; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - uint8_t nextedIrq = 0U; - uint8_t intMask = 0U; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | PMIC_GPIO_CFG_DIR_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(0xAB1B, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(J721E_LEO_PMICA_DEVICE == pmic_device_info) - { - /* - * GPIO11 pin of PMIC-A is connected to 'H_SOC_PORz' - * on J721EVM board causing hang, when programming fall interrupt. - */ - pmic_testResultUpdate_ignore(0xAB1B, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - /* - * GPIO11 pin of PMIC-B is connected to 'EN_3V3IO_LDSW' - * on J721EVM board causing hang, when programming fall interrupt. - */ - pmic_testResultUpdate_ignore(0xAB1B, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(J7VCL_LEO_PMICA_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(0xAB1B, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB1B, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_TPS6594X_IRQ_GPIO_11_INT_MASK_NUM; - irqNum = PMIC_TPS6594X_GPIO11_INT; - } - - /* Un Masking GPIO 11 FALL Interrupt */ - Pmic_irqGpioMaskIntr(pPmicCoreHandle, - intMask, - PMIC_IRQ_UNMASK, - PMIC_IRQ_GPIO_FALL_INT_TYPE); - - /* To clear the interrupts*/ - pmic_gpioTest_intClr(); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetIntr(pPmicCoreHandle, pin , intrType, maskPol); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pinValue = PMIC_GPIO_LOW; - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[irqNum/32U] & (1U << (irqNum % 32U))) != 0U)) - { - while(irqNum != nextedIrq) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &nextedIrq); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - irqNum); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(0xAB1B, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * Below test cases are not tested because of HW limitation. - * Added below test cases as sample for reference. - */ - -/*! - * \brief Test to verify GPIO11 rise interrupt - */ -static void test_pmic_gpio11_testRise_interrupt(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - int8_t timeout = 10U; - uint8_t pin = 11U; - uint8_t pinValue = PMIC_GPIO_LOW; - uint8_t intrType = PMIC_GPIO_RISE_INTERRUPT; - uint8_t maskPol = PMIC_GPIO_POL_HIGH; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - uint8_t nextedIrq = 0U; - uint8_t intMask = 0U; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT | PMIC_GPIO_CFG_DIR_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(0xAB1A, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - if(J721E_LEO_PMICA_DEVICE == pmic_device_info) - { - /* - * GPIO11 pin of PMIC-A is connected to 'H_SOC_PORz' - * on J721EVM board causing hang, when programming rise interrupt. - */ - pmic_testResultUpdate_ignore(0xAB1A, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - /* - * GPIO11 pin of PMIC-B is connected to 'EN_3V3IO_LDSW' - * on J721EVM board causing hang, when programming rise interrupt. - */ - pmic_testResultUpdate_ignore(0xAB1A, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(J7VCL_LEO_PMICA_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(0xAB1A, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB1A, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intMask = PMIC_TPS6594X_IRQ_GPIO_11_INT_MASK_NUM; - irqNum = PMIC_TPS6594X_GPIO11_INT; - } - - /* Un Masking GPIO 11 RISE Interrupt */ - Pmic_irqGpioMaskIntr(pPmicCoreHandle, - intMask, - PMIC_IRQ_UNMASK, - PMIC_IRQ_GPIO_RISE_INT_TYPE); - - /* To clear the interrupts*/ - pmic_gpioTest_intClr(); - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioSetIntr(pPmicCoreHandle, pin , intrType, maskPol); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pinValue = PMIC_GPIO_HIGH; - pmicStatus = Pmic_gpioSetValue(pPmicCoreHandle, pin, pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[irqNum/32U] & (1U << (irqNum % 32U))) != 0U)) - { - while(irqNum != nextedIrq) - { - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &nextedIrq); - } - - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - irqNum); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(0xAB1A, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); -} - -/*! - * Below test cases are not tested because of HW limitation. - * Added below test cases as sample for reference. - */ - -/*! - * \brief Test to verify GPIO WKUP 1 - */ -static void test_pmic_gpioWkup1_test(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t pmicState = 0U; - Pmic_GpioCfg_t gpioCfg = {0U}; - - gpioCfg.validParams = PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT; - gpioCfg.pinFunc = PMIC_TPS6594X_GPIO_PINFUNC_WKUP1; - - status = Pmic_gpioSetConfiguration(pPmicCoreHandle, - PMIC_TPS6594X_GPIO7_PIN, - gpioCfg); - pmicState = PMIC_FSM_STANBY_STATE; - - test_pmic_print_unity_testcase_info(0xAB21, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - TEST_IGNORE(); - - Pmic_irqGpioMaskIntr(pPmicCoreHandle, - PMIC_TPS6594X_IRQ_GPIO_7_INT_MASK_NUM, - PMIC_IRQ_UNMASK, - PMIC_IRQ_GPIO_RISE_INT_TYPE); - Pmic_irqGpioMaskIntr(pPmicCoreHandle, - PMIC_TPS6594X_IRQ_GPIO_7_INT_MASK_NUM, - PMIC_IRQ_MASK, - PMIC_IRQ_GPIO_FALL_INT_TYPE); - - /*Mask Nsleep1B and Nsleep2B signals for FSM state transitions*/ - status = Pmic_fsmSetNsleepSignalMask(pPmicCoreHandle, - PMIC_NSLEEP1_SIGNAL, - PMIC_NSLEEPX_MASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmSetNsleepSignalMask(pPmicCoreHandle, - PMIC_NSLEEP2_SIGNAL, - PMIC_NSLEEPX_MASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - Osal_delay(10U); - - pmic_log("\r\n Input LOW to HIGH signal to GPIO7 to wakeup from low power mode\n"); - - status = Pmic_fsmSetMissionState(pPmicCoreHandle, pmicState); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); -} - -/*! - * Below test cases are not tested because of HW limitation. - * Added below test cases as sample for reference. - */ - -/*! - * \brief Test to verify GPIO WKUP 2 - */ -static void test_pmic_gpioWkup2_test(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t pmicState = 0U; - Pmic_GpioCfg_t gpioCfg = {0U}; - - gpioCfg.validParams = PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT; - gpioCfg.pinFunc = PMIC_TPS6594X_GPIO_PINFUNC_WKUP2; - - status = Pmic_gpioSetConfiguration(pPmicCoreHandle, - PMIC_TPS6594X_GPIO7_PIN, - gpioCfg); - pmicState = PMIC_FSM_STANBY_STATE; - - test_pmic_print_unity_testcase_info(0xAB10, - pmic_gpio_tests, - PMIC_GPIO_NUM_OF_TESTCASES); - - TEST_IGNORE(); - - Pmic_irqGpioMaskIntr(pPmicCoreHandle, - PMIC_TPS6594X_IRQ_GPIO_7_INT_MASK_NUM, - PMIC_IRQ_UNMASK, - PMIC_IRQ_GPIO_RISE_INT_TYPE); - Pmic_irqGpioMaskIntr(pPmicCoreHandle, - PMIC_TPS6594X_IRQ_GPIO_7_INT_MASK_NUM, - PMIC_IRQ_MASK, - PMIC_IRQ_GPIO_FALL_INT_TYPE); - - /*Mask Nsleep1B and Nsleep2B signals for FSM state transitions*/ - status = Pmic_fsmSetNsleepSignalMask(pPmicCoreHandle, - PMIC_NSLEEP1_SIGNAL, - PMIC_NSLEEPX_MASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmSetNsleepSignalMask(pPmicCoreHandle, - PMIC_NSLEEP2_SIGNAL, - PMIC_NSLEEPX_MASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - Osal_delay(10U); - - pmic_log("\r\n Input LOW to HIGH signal to GPIO7 to wakeup from low power mode\n"); - - status = Pmic_fsmSetMissionState(pPmicCoreHandle, pmicState); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); -} -#endif - -#if defined(UNITY_INCLUDE_CONFIG_V2_H) && \ - (defined(SOC_J721E) || defined(SOC_J7200)) - -/*! - * \brief Run gpio unity test cases - */ -static void test_pmic_run_testcases(void) -{ - pmic_log("\n\n%s(): %d: Begin Unity Test Cases...\n", __func__, __LINE__); - UNITY_BEGIN(); - - pmic_testResult_init(pmic_gpio_tests, PMIC_GPIO_NUM_OF_TESTCASES); - - RUN_TEST(test_pmic_gpio_setCfgGpioPin_nSLEEP1); - RUN_TEST(test_pmic_gpio_setCfgGpioPin_nSLEEP2); - RUN_TEST(test_pmic_gpio_setCfgGpioPin_nRstOut_soc); - RUN_TEST(test_pmic_gpio_setCfgGpioPin_wakeup1); - RUN_TEST(test_pmic_gpio_setCfgGpioPin_wakeup2); - RUN_TEST(test_pmic_gpio_setCfgGpioPin_gpio); - RUN_TEST(test_pmic_gpio_setCfgGpioPin_i2c2_sclk); - RUN_TEST(test_pmic_gpio_setCfgGpioPin_i2c2_sda); - RUN_TEST(test_pmic_gpio_setCfgGpioPin_spi_cs); - RUN_TEST(test_pmic_gpio_setCfgGpioPin_spi_sdo); - RUN_TEST(test_pmic_gpio_setCfgGpioPin_wdt); - RUN_TEST(test_pmic_gpio_setCfgGpioPin_esm_mcu); - RUN_TEST(test_pmic_gpio_setCfgGpioPin_spmi_sclk); - RUN_TEST(test_pmic_gpio_setCfgGpioPin_spmi_sdata); - RUN_TEST(test_pmic_gpio_setCfgGpioPin_syncCLKOUT); - RUN_TEST(test_pmic_gpio_setCfgGpioPin_synCLKIN); - RUN_TEST(test_pmic_gpio_setCfgGpioPin_clk32KOUT); - RUN_TEST(test_pmic_gpio_setCfgGpioPin10_clk32KOUT); - RUN_TEST(test_pmic_gpio_setCfgGpioPin_wdg_disable); - RUN_TEST(test_pmic_gpio_setCfgGpioPin_good_power); - RUN_TEST(test_pmic_gpio_setCfgPrmValTest_handle); - RUN_TEST(test_pmic_gpio_setCfgPrmValTest_pin); - RUN_TEST(test_pmic_gpio_setCfgPrmValTest_pinDir); - RUN_TEST(test_pmic_gpio_setCfgPrmValTest_outputSignalType); - RUN_TEST(test_pmic_gpio_setCfgPrmValTest_deglitchEnable); - RUN_TEST(test_pmic_gpio_setCfgPrmValTest_pinFunc_case1); - RUN_TEST(test_pmic_enable_setCfgPrmValTest_pinPolarity); - RUN_TEST(test_pmic_gpio_getCfgGpioPin); - RUN_TEST(test_pmic_gpio_getCfgPrmValTest_handle); - RUN_TEST(test_pmic_gpio_getCfgPrmValTest_pin); - RUN_TEST(test_pmic_gpio_getCfgPrmValTest_gpioCfg); - RUN_TEST(test_pmic_gpio_getValueGpioPin1_signalLevel); - RUN_TEST(test_pmic_gpio_getValuePrmValTest_handle); - RUN_TEST(test_pmic_gpio_getValuePrmValTest_pin); - RUN_TEST(test_pmic_gpio_getValuePrmValTest_pinValue); - RUN_TEST(test_pmic_gpio_setValueGpioPin1_signalLevel); - RUN_TEST(test_pmic_gpio_setValuePrmValTest_handle); - RUN_TEST(test_pmic_gpio_setValuePrmValTest_pin); - RUN_TEST(test_pmic_gpio_setValuePrmValTest_pinValue); - RUN_TEST(test_pmic_gpio_setValueGpioPin1_input); - RUN_TEST(test_pmic_nPWRON_setCfgPrmValTest_pinFunc); - RUN_TEST(test_pmic_gpio1_testFall_interrupt); - RUN_TEST(test_pmic_gpio1_testRise_interrupt); - RUN_TEST(test_pmic_gpio2_testFall_interrupt); - RUN_TEST(test_pmic_gpio2_testRise_interrupt); - RUN_TEST(test_pmic_gpio4_testFall_interrupt); - RUN_TEST(test_pmic_gpio4_testRise_interrupt); - RUN_TEST(test_pmic_gpio5_testFall_interrupt); - RUN_TEST(test_pmic_gpio5_testRise_interrupt); - RUN_TEST(test_pmic_gpio6_testFall_interrupt); - RUN_TEST(test_pmic_gpio6_testRise_interrupt); - RUN_TEST(test_pmic_gpio7_testFall_interrupt); - RUN_TEST(test_pmic_gpio7_testRise_interrupt); - RUN_TEST(test_pmic_gpio8_testFall_interrupt); - RUN_TEST(test_pmic_gpio8_testRise_interrupt); - RUN_TEST(test_pmic_gpio10_testFall_interrupt); - RUN_TEST(test_pmic_gpio10_testRise_interrupt); - RUN_TEST(test_pmic_gpio_intr_prmValTest_handle); - RUN_TEST(test_pmic_gpio_intr_prmValTest_pin); - RUN_TEST(test_pmic_gpio_intr_prmValTest_intrType); - RUN_TEST(test_pmic_gpio_intr_prmValTest_maskPol); - RUN_TEST(test_pmic_gpio_intr_irqMaskAll_interrupt); - RUN_TEST(test_pmic_gpio_intr_irqUnMaskAll_interrupt); - RUN_TEST(test_pmic_gpio_testTps6594xNPwronPinGetValue); - RUN_TEST(test_pmic_gpio_tps6594xNPwronPinGetValuePrmValTest_handle); - RUN_TEST(test_pmic_gpio_tps6594xNPwronPinGetValuePrmValTest_pinValue); - RUN_TEST(test_pmic_gpio_testTps6594xNPwronPinGetValue_hera); - RUN_TEST(test_pmic_gpio_getCfgPrmValTest_pin_hera); - RUN_TEST(test_pmic_gpio_irq_getMaskIntrStat); - RUN_TEST(test_pmic_gpio_irq_getUnMaskIntrStat); - RUN_TEST(test_pmic_gpio_getMaskIntrStatPrmValTst_handle); - RUN_TEST(test_pmic_gpio_getMaskIntrStatPrmValTst_pFallIntrMaskStat); - RUN_TEST(test_pmic_gpio_getMaskIntrStatPrmValTst_pRiseIntrMaskStat); - RUN_TEST(test_pmic_gpio_irq_getMaskIntrStatPrmValTst_handle); - RUN_TEST(test_pmic_gpio_irq_getMaskIntrStatPrmValTst_pMaskStatus); - - RUN_TEST(test_pmic_gpio_nPWRON_getCfgPrmValTest_pGpioCfg); - RUN_TEST(test_pmic_gpio_nPWRON_setCfg_pinFunc); - RUN_TEST(test_pmic_gpio_enable_setCfg_pinPolarity); - RUN_TEST(test_pmic_gpio_setCfg_pullCtrl); - RUN_TEST(test_pmic_gpio_setCfg_deglitchTime); - RUN_TEST(test_pmic_gpio1_testDisable_interrupt); - RUN_TEST(test_pmic_gpio_setCfgPrmValTest_pullCtrl); - RUN_TEST(test_pmic_gpio_nPWRON_setCfg_pullCtrl); - RUN_TEST(test_pmic_gpio_nPWRON_setCfgPrmValTest_handle); - RUN_TEST(test_pmic_gpio_nPWRON_getCfgPrmValTest_handle); - RUN_TEST(test_pmic_gpio_nPWRON_setCfg_deglitchTime); - RUN_TEST(test_pmic_gpio_nPWRON_setCfgPrmValTest_deglitchEnable); - RUN_TEST(test_pmic_gpio_nPWRON_setCfgPrmValTest_pullCtrl); - RUN_TEST(test_pmic_gpio_setCfgPrmValTest_pin_minVal); - RUN_TEST(test_pmic_gpio_nPWRON_setCfg_validParams); - RUN_TEST(test_pmic_irqGetMaskIntrStatusPrmValTst_irqNum); - RUN_TEST(test_pmic_irqClrErrStatusPrmValTst_handle); - RUN_TEST(test_pmic_irqClrErrStatusPrmValTst_irqNum); - RUN_TEST(test_pmic_irqGetErrStatusPrmValTst_handle); - RUN_TEST(test_pmic_irqGetErrStatusPrmValTst_pErrStat); - RUN_TEST(test_pmic_irqMaskIntrPrmValTst_handle); - RUN_TEST(test_pmic_getNextErrorStatusPrmValTst_handle); - RUN_TEST(test_pmic_getNextErrorStatusPrmValTst_pErrStat); - RUN_TEST(test_pmic_getNextErrorStatusPrmValTst_pIrqNum); - RUN_TEST(test_pmic_getNextErrorStatus_intStat0_intStat3); - RUN_TEST(test_pmic_irqGpioMaskIntrPrmValTst_handle); - RUN_TEST(test_pmic_irqGpioMaskIntrPrmValTst_irqGpioNum); - RUN_TEST(test_pmic_irqGpioMaskIntrPrmValTst_gpioIntrType); - RUN_TEST(test_pmic_irqGpioMaskIntrPrmValTst_irqGpioNum_hera); - RUN_TEST(test_pmic_irqGetGpioMaskIntrPrmValTst_irqGpioNum); - RUN_TEST(test_pmic_irqGetGpioMaskIntrPrmValTst_gpioIntrType); - RUN_TEST(test_pmic_irqGetGpioMaskIntrPrmValTst_irqGpioNum_hera); - RUN_TEST(test_pmic_irqGpioMaskIntr_deviceType_leo); - RUN_TEST(test_pmic_gpio_coverageGaps); - - pmic_updateTestResults(pmic_gpio_tests, PMIC_GPIO_NUM_OF_TESTCASES); - - UNITY_END(); -} - -/*! - * \brief GPIO Unity Test App wrapper Function for LEO PMIC-A - */ -static int32_t test_pmic_leo_pmicA_gpio_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_LEO_TPS6594X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_DUAL_I2C; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.i2c1Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C1_SPEED_VALID_SHIFT; - - pmicConfigData.i2c2Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C2_SPEED_VALID_SHIFT; - - if(J721E_LEO_PMICA_DEVICE == pmic_device_info) - { - pmicConfigData.slaveAddr = J721E_LEO_PMICA_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J721E_LEO_PMICA_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J721E_LEO_PMICA_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - } - - if(J7VCL_LEO_PMICA_DEVICE == pmic_device_info) - { - pmicConfigData.slaveAddr = J7VCL_LEO_PMICA_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J7VCL_LEO_PMICA_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J7VCL_LEO_PMICA_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - } - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; -} - -/*! - * \brief GPIO Unity Test App wrapper Function for LEO PMIC-B - */ -static int32_t test_pmic_leo_pmicB_gpio_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_LEO_TPS6594X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_SINGLE_I2C; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.i2c1Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C1_SPEED_VALID_SHIFT; - - pmicConfigData.slaveAddr = J721E_LEO_PMICB_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J721E_LEO_PMICB_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J721E_LEO_PMICB_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; -} - -/*! - * \brief GPIO Unity Test App wrapper Function for LEO PMIC-A - */ -static int32_t test_pmic_leo_pmicA_spiStub_gpio_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_LEO_TPS6594X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_SPI; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; -} - -/*! - * \brief GPIO Unity Test App wrapper Function for HERA PMIC - */ -static int32_t test_pmic_hera_gpio_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_HERA_LP8764X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_SINGLE_I2C; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.i2c1Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C1_SPEED_VALID_SHIFT; - - pmicConfigData.slaveAddr = J7VCL_HERA_PMIC_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J7VCL_HERA_PMIC_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J7VCL_HERA_PMIC_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; - -} - -static int32_t setup_pmic_interrupt(uint32_t board, bool enableCRC) -{ - int32_t status = PMIC_ST_SUCCESS; - - if(J721E_BOARD == board) - { - if(enableCRC == true) - { - if(PMIC_STATUS_CRC_INIT_VAL == gCrcTestFlag_J721E) - { - gCrcTestFlag_J721E = PMIC_CFG_TO_ENABLE_CRC; - } - } - else - { - gCrcTestFlag_J721E = PMIC_STATUS_CRC_INIT_VAL; - } - - pmic_device_info = J721E_LEO_PMICA_DEVICE; - status = test_pmic_leo_pmicA_gpio_testApp(); - - /* Deinit pmic handle */ - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - - if(PMIC_ST_SUCCESS == status) - { - pmic_device_info = J721E_LEO_PMICB_DEVICE; - status = test_pmic_leo_pmicB_gpio_testApp(); - /* Deinit pmic handle */ - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } - } - else if(J7VCL_BOARD == board) - { - if(enableCRC == true) - { - if(PMIC_STATUS_CRC_INIT_VAL == gCrcTestFlag_J7VCL) - { - gCrcTestFlag_J7VCL = PMIC_CFG_TO_ENABLE_CRC; - } - } - else - { - gCrcTestFlag_J7VCL = PMIC_STATUS_CRC_INIT_VAL; - } - - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - status = test_pmic_leo_pmicA_gpio_testApp(); - /* Deinit pmic handle */ - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - - if(PMIC_ST_SUCCESS == status) - { - pmic_device_info = J7VCL_HERA_PMICB_DEVICE; - status = test_pmic_hera_gpio_testApp(); - /* Deinit pmic handle */ - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } - } - else - { - status = PMIC_ST_ERR_INV_DEVICE; - } - return status; -} - -static const char pmicTestMenu[] = -{ - " \r\n =================================================================" - " \r\n Test Menu:" - " \r\n =================================================================" - " \r\n 0: Automatic run for all board specific GPIO options" - " \r\n 1: Manual run for GPIO options" - " \r\n 2: quit" - " \r\n" - " \r\n Enter option: " -}; - -volatile static const char pmicTestAppMenu[] = -{ - " \r\n =================================================================" - " \r\n Menu:" - " \r\n =================================================================" - " \r\n 0: Pmic Leo device(PMIC A on J721E EVM Using I2C Interface)" - " \r\n 1: Pmic Leo device(PMIC B on J721E EVM Using I2C Interface)" - " \r\n 2: Pmic Leo device(PMIC A on J7VCL EVM Using I2C Interface)" - " \r\n 3: Pmic Hera device(PMIC B on J7VCL EVM Using I2C Interface)" - " \r\n 4: Pmic Leo device(PMIC A on J721E EVM Using SPI Stub Functions)" - " \r\n 5: Pmic Leo device(PMIC A on J7VCL EVM Using SPI Stub Functions)" - " \r\n 6: Pmic Leo device(PMIC A on J721E EVM Manual Testcase)" - " \r\n 7: Pmic Leo device(PMIC A on J7VCL EVM Manual Testcase)" - " \r\n 8: Pmic Leo device(PMIC A on J721E EVM Manual Testcase with CRC Disable on PG2.0 Silicon revision)" - " \r\n 9: Pmic Leo device(PMIC B on J721E EVM Manual Testcase with CRC Disable on PG2.0 Silicon revision)" - " \r\n 10: Back to Test Menu" - " \r\n" - " \r\n Enter option: " -}; - -static void print_pmicTestAppManualTestMenu(uint32_t board) -{ - char board_name[10] = {0}; - - if(J721E_BOARD == board) - { - strcpy(board_name, "J721E"); - } - else if(J7VCL_BOARD == board) - { - strcpy(board_name, "J7VCL"); - } - - pmic_log(" \r\n ================================================================="); - pmic_log(" \r\n Manual Testcase Menu:"); - pmic_log(" \r\n ================================================================="); -#if !(defined(SOC_J7200) && (defined(BUILD_MCU2_0) || defined(BUILD_MCU2_1))) - pmic_log(" \r\n 0: Pmic Leo device(PMIC A on %s EVM Manual Testcase for GPIO-7 Fall Asynchronous Interrupt)", board_name); - pmic_log(" \r\n 1: Pmic Leo device(PMIC A on %s EVM Manual Testcase for GPIO-7 Rise Asynchronous Interrupt)", board_name); -#endif -#if defined(SOC_J7200) - pmic_log(" \r\n 2: Pmic Leo device(PMIC A on %s EVM Manual Testcase for CAN WKUP)", board_name); -#endif - pmic_log(" \r\n 3: Pmic Leo device(PMIC A on %s EVM Manual Testcase for clearing all interrupts using IRQ API)", board_name); - pmic_log(" \r\n 4: Back to Main Menu"); - pmic_log(" \r\n"); - pmic_log(" \r\n Enter option: "); -} - -/*! - * \brief Run GPIO manual test cases - */ -static void test_pmic_run_testcases_manual(uint32_t board) -{ - int8_t menuOption = -1; - - while(1U) - { - print_pmicTestAppManualTestMenu(board); - if(UART_scanFmt("%d", &menuOption) != 0U) - { - pmic_log("Read from UART Console failed\n"); - return; - } - - switch(menuOption) - { -#if !(defined(SOC_J7200) && (defined(BUILD_MCU2_0) || defined(BUILD_MCU2_1))) - case 0U: - RUN_TEST(test_pmic_gpio7_testFallAsynchronous_interrupt); - break; - case 1U: - RUN_TEST(test_pmic_gpio7_testRiseAsynchronous_interrupt); - break; -#endif -#if defined(SOC_J7200) - case 2U: - RUN_TEST(test_pmic_canWkup_test); - break; -#endif - case 3U : - RUN_TEST(test_gpio4_fallInterrupt_clrAllIrqTest); - break; - case 4U: - pmic_log(" \r\n Back to Test Menu options\n"); - return; - default: - pmic_log(" \r\n Invalid option... Try Again!!!\n"); - break; - } - } -} - -static void test_pmic_gpio_testapp_run_options(int8_t option) -{ - int8_t num = -1; - int8_t idx = 0; -#if defined(SOC_J721E) - int8_t automatic_options[] = {0, 1, 4}; - int8_t userInput = 0; -#elif defined(SOC_J7200) - int8_t automatic_options[] = {2, 3, 5}; -#endif - - while(1U) - { - if(idx >= (sizeof(automatic_options)/sizeof(automatic_options[0]))) - { - pmic_printTestResult(pmic_gpio_tests, PMIC_GPIO_NUM_OF_TESTCASES); - } - pmic_log("%s", pmicTestAppMenu); - if(option == PMIC_UT_AUTOMATE_OPTION) - { - if(idx < (sizeof(automatic_options)/sizeof(automatic_options[0]))) - { - num = automatic_options[idx++]; - } - else - { - num = 10; - } - pmic_log("%d\n", num); - } - else - { - if(UART_scanFmt("%d", &num) != 0U) - { - pmic_log("Read from UART Console failed\n"); - return; - } - } - - switch(num) - { - case 0U: -#if defined(SOC_J721E) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J721E_BOARD, true)) - { - pmic_device_info = J721E_LEO_PMICA_DEVICE; - - /* GPIO Unity Test App wrapper Function for LEO PMIC-A */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_gpio_testApp()) - { - /* Run gpio test cases for Leo PMIC-A */ - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 1U: -#if defined(SOC_J721E) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J721E_BOARD, true)) - { - pmic_device_info = J721E_LEO_PMICB_DEVICE; - - /* GPIO Unity Test App wrapper Function for LEO PMIC-B */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicB_gpio_testApp()) - { - /* Run gpio test cases for Leo PMIC-B */ - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 2U: -#if defined(SOC_J7200) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J7VCL_BOARD, true)) - { - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - - /* GPIO Unity Test App wrapper Function for LEO PMIC-A */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_gpio_testApp()) - { - /* Run gpio test cases for Leo PMIC-A */ - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 3U: -#if defined(SOC_J7200) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J7VCL_BOARD, true)) - { - pmic_device_info = J7VCL_HERA_PMICB_DEVICE; - - /* GPIO Unity Test App wrapper Function for HERA PMIC */ - if(PMIC_ST_SUCCESS == test_pmic_hera_gpio_testApp()) - { - /* Run gpio test cases for Hera PMIC */ - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 4U: -#if defined(SOC_J721E) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J721E_BOARD, true)) - { - pmic_device_info = J721E_LEO_PMICA_DEVICE; - - /* GPIO Unity Test App wrapper Function for LEO PMIC-A - * using SPI stub functions */ - if(PMIC_ST_SUCCESS == - test_pmic_leo_pmicA_spiStub_gpio_testApp()) - { - /* Run gpio test cases for Leo PMIC-A */ - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 5U: -#if defined(SOC_J7200) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J7VCL_BOARD, true)) - { - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - /* GPIO Unity Test App wrapper Function for LEO PMIC-A - * using SPI stub functions */ - if(PMIC_ST_SUCCESS == - test_pmic_leo_pmicA_spiStub_gpio_testApp()) - { - /* Run gpio test cases for Leo PMIC-A */ - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 6U: -#if defined(SOC_J721E) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J721E_BOARD, true)) - { - pmic_device_info = J721E_LEO_PMICA_DEVICE; - - /* GPIO Manual Tests App wrapper Func for LEO PMIC-A */ - if(PMIC_ST_SUCCESS == - test_pmic_leo_pmicA_gpio_testApp()) - { - /* Run GPIO manual test cases */ - test_pmic_run_testcases_manual(J721E_BOARD); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - return; - case 7U: -#if defined(SOC_J7200) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J7VCL_BOARD, true)) - { - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - - /* GPIO Unity Test App wrapper Function for HERA PMIC */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_gpio_testApp()) - { - /* Run GPIO manual test cases */ - test_pmic_run_testcases_manual(J7VCL_BOARD); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - return; - case 8U: -#if defined(SOC_J721E) - pmic_log("\r\n Run the test only on Leo PMIC-A PG2.0 after Board Power cycle !!!\n"); - pmic_log("\r\n Enter 1 to continue"); - UART_scanFmt("%d", &userInput); - - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J721E_BOARD, false)) - { - pmic_device_info = J721E_LEO_PMICA_DEVICE; - - /* GPIO Unity Test App wrapper Function for LEO PMIC-A */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_gpio_testApp()) - { - /* Run gpio test cases for Leo PMIC-A */ - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 9U: -#if defined(SOC_J721E) - pmic_log("\r\n Run the test only on Leo PMIC-B PG2.0 after Board Power cycle !!!\n"); - pmic_log("\r\n Enter 1 to continue"); - UART_scanFmt("%d", &userInput); - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J721E_BOARD, false)) - { - pmic_device_info = J721E_LEO_PMICB_DEVICE; - - /* GPIO Unity Test App wrapper Function for LEO PMIC-B */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicB_gpio_testApp()) - { - /* Run gpio test cases for Leo PMIC-B */ - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - - case 10U: - pmic_log(" \r\n Back to Test Menu options\n"); - return; - default: - pmic_log(" \r\n Invalid option... Try Again!!!\n"); - break; - } - } -} - -/*! - * \brief Function to register GPIO Unity Test App wrapper to Unity framework - */ -static void test_pmic_gpio_testapp_runner(void) -{ - /* @description : Test runner for Gpio Test App - * - * @requirements: 5808, 5812, 5814, 5810, 5813, - * 5843, 5853 - * - * @cores : mcu1_0, mcu1_1 - */ - - int8_t option = -1; - - while(1U) - { - pmic_log("%s", pmicTestMenu); - if(UART_scanFmt("%d", &option) != 0U) - { - pmic_log("Read from UART Console failed\n"); - return; - } - - switch(option) - { - case PMIC_UT_AUTOMATE_OPTION: - test_pmic_gpio_testapp_run_options(PMIC_UT_AUTOMATE_OPTION); - break; - case PMIC_UT_MANUAL_OPTION: - test_pmic_gpio_testapp_run_options(PMIC_UT_MANUAL_OPTION); - break; - case 2U: - pmic_log(" \r\n Quit from application\n"); - return; - default: - pmic_log(" \r\n Invalid option... Try Again!!!\n"); - break; - } - } -} -#endif - -/*! - * \brief PMIC Application Callback Function - */ -void AppPmicCallbackFxn(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_IrqStatus_t errStat = {0U}; - uint8_t irqNum = 0U; - - status = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, false); - - if(PMIC_ST_SUCCESS == status) - { - status = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - if((PMIC_ST_SUCCESS == status) && - (PMIC_TPS6594X_GPIO7_INT == irqNum)) - { - pmic_intr_triggered = 1U; - /* clear the interrupt */ - status = Pmic_irqClrErrStatus(pPmicCoreHandle, - PMIC_TPS6594X_GPIO7_INT); - } - } -} - -/*! - * \brief TI RTOS specific GPIO TEST APP main Function - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values see \ref Pmic_ErrorCodes - */ -int main() -{ - Board_initUART(); - - /* GPIO Configuration - * This API is required for Asynchronous Interrupts only - */ - App_initGPIO(AppPmicCallbackFxn); - - pmic_print_banner("PMIC GPIO Unity Test Application"); -#if defined(UNITY_INCLUDE_CONFIG_V2_H) && \ - (defined(SOC_J721E) || \ - defined(SOC_J7200)) - test_pmic_gpio_testapp_runner(); -#endif -} diff --git a/test/gpio_test/pmic_ut_gpio.h b/test/gpio_test/pmic_ut_gpio.h deleted file mode 100644 index aff4557..0000000 --- a/test/gpio_test/pmic_ut_gpio.h +++ /dev/null @@ -1,51 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ -/** - * \file pmic_ut_gpio.h - * - * \brief Header file for PMIC GPIO Unit Tests - * - */ - -#include - -/* ========================================================================= */ -/* Macros & Typedefs */ -/* ========================================================================= */ - -/*! - * \brief Numbers of GPIO testcases - */ -#define PMIC_GPIO_NUM_OF_TESTCASES \ - (sizeof(pmic_gpio_tests)/sizeof(pmic_gpio_tests[0])) -/* None */ diff --git a/test/misc_test/makefile b/test/misc_test/makefile deleted file mode 100644 index 3970c69..0000000 --- a/test/misc_test/makefile +++ /dev/null @@ -1,84 +0,0 @@ -# Filename: Makefile -# -# This file is the makefile for building PMIC miscellaneous Test Code. -# -# Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com/ -# -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# -# Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the -# distribution. -# -# Neither the name of Texas Instruments Incorporated nor the names of -# its contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -#File - pmic_lld\test\misc_test\makefile - -APP_NAME = pmic_misc_testapp - -include $(PDK_INSTALL_PATH)/ti/build/Rules.make - -BUILD_OS_TYPE = baremetal - -SRCDIR = . ../common -INCDIR = . ../../include/ ../../include/cfg/tps6594x ../../include/cfg/lp8764x -INCDIR += ../common ../../src/ - -# Common source files across all platforms and cores -SRCS_COMMON += pmic_ut_misc.c pmic_ut_common.c - -SRCDIR += $(PDK_INSTALL_PATH)/ti/build/unit-test/Unity/src $(PDK_INSTALL_PATH)/ti/build/unit-test/config -INCDIR += $(PDK_INSTALL_PATH)/ti/build/unit-test/Unity/src $(PDK_INSTALL_PATH)/ti/build/unit-test/config -SRCS_COMMON += unity.c - -# List all the external components/interfaces, whose interface header files -# need to be included for this component -INCLUDE_EXTERNAL_INTERFACES = pdk i2c -INCLUDE_INTERNAL_INTERFACES = pmic - -# List all the components required by the application -COMP_LIST_COMMON = $(PDK_COMMON_BAREMETAL_COMP) - -# Common source files and CFLAGS across all platforms and cores -PACKAGE_SRCS_COMMON = . ../common - -CFLAGS_LOCAL_COMMON += -DUNITY_INCLUDE_CONFIG_V2_H $(PMIC_CFLAGS) - -# Core/SoC/platform specific source files and CFLAGS -# Example: -# SRCS_ = -# CFLAGS_LOCAL_ = - -# Include common make files -ifeq ($(MAKERULEDIR), ) -#Makerule path not defined, define this and assume relative path from ROOTDIR - MAKERULEDIR := $(ROOTDIR)/ti/build/makerules - export MAKERULEDIR -endif -include $(MAKERULEDIR)/common.mk - -# OBJs and libraries are built by using rule defined in rules_.mk -# and need not be explicitly specified here - -# Nothing beyond this point diff --git a/test/misc_test/pmic_ut_misc.c b/test/misc_test/pmic_ut_misc.c deleted file mode 100644 index 4e3863f..0000000 --- a/test/misc_test/pmic_ut_misc.c +++ /dev/null @@ -1,7530 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ -/** - * \file pmic_ut_misc.c - * - * \brief PMIC Unit Test for testing PMIC MISC APIs - * - */ - -#include - -/* Pointer holds the pPmicCoreHandle */ -Pmic_CoreHandle_t *pPmicCoreHandle = NULL; - -extern uint16_t pmic_device_info; -extern int32_t gCrcTestFlag_J721E; -extern int32_t gCrcTestFlag_J7VCL; -uint32_t g_skip_eeprom_test_flag = 0; - -extern Pmic_Ut_FaultInject_t gPmic_faultInjectCfg; -static int32_t test_pmic_leo_pmicA_misc_testApp(void); - -extern int8_t gRecoveryCntCfgTestFlag; -extern int8_t gEnableDrvPinCfgTestFlag; -extern int8_t gI2c1CrcEnableTestFlag; -extern int8_t gI2c2CrcEnableTestFlag; -extern int8_t gSpmiLpmStatTestFlag; - -/*! - * \brief PMIC MISC Test Cases - */ -static Pmic_Ut_Tests_t pmic_misc_tests[] = -{ - /*! testID - * testDesc - */ - { - 7628, - "Pmic_setRecoveryCntCfg : Test Set Recovery Counter Threshold." - }, - { - 7629, - "Pmic_setRecoveryCntCfg : Parameter validation for thrVal." - }, - { - 7630, - "Pmic_setRecoveryCntCfg : Test Set/Get Clear Recovery Counter." - }, - { - 7631, - "Pmic_setRecoveryCntCfg : Parameter validation for clrCnt." - }, - { - 7632, - "Pmic_setRecoveryCntCfg : Parameter validation for handle." - }, - { - 7633, - "Pmic_getRecoveryCntCfg : Parameter validation for handle." - }, - { - 7634, - "Pmic_getRecoveryCntCfg : Parameter validation for recovCntCfg." - }, - { - 7635, - "Pmic_getRecoveryCnt : Parameter validation for handle." - }, - { - 7636, - "Pmic_getRecoveryCnt : Parameter validation for recovCntVal." - }, - { - 7637, - "Pmic_getRecoveryCnt : Read Recovery Count Value." - }, - { - 7715, - "Pmic_irqGetErrStatus : Test BIST_PASS_INT interrupt." - }, - { - 0xAB1F, - "Pmic_irqGetErrStatus : Test FSD_INT interrupt." - }, - { - 0xAB2D, - "Pmic_irqGetErrStatus : Test NPWRON_INT interrupt." - }, - { - 0xAB20, - "Pmic_irqGetErrStatus : Test NPWRON_LONG_INT interrupt." - }, - { - 0xAB2C, - "Pmic_commFrmError : Test COMM_FRM_ERROR interrupt" - }, - { - 7768, - "Pmic_irqGetErrStatus : Test ENABLE_INT interrupt." - }, - { - 8321, - "Pmic_setScratchPadValue : Parameter validation for handle." - }, - { - 8322, - "Pmic_setScratchPadValue : Parameter validation for scratchPadRegId." - }, - { - 8323, - "Pmic_setScratchPadValue : Test Set/Get Scratchpad value." - }, - { - 8324, - "Pmic_getScratchPadValue : Parameter validation for handle." - }, - { - 8325, - "Pmic_getScratchPadValue : Parameter validation for scratchPadRegId." - }, - { - 8326, - "Pmic_getScratchPadValue : Parameter validation for data." - }, - { - 9915, - "Pmic_setUserSpareValue : Parameter validation for handle." - }, - { - 9916, - "Pmic_setUserSpareValue : Parameter validation for userSpareRegNum." - }, - { - 9917, - "Pmic_setUserSpareValue : Parameter validation for data." - }, - { - 9918, - "Pmic_setUserSpareValue : Test Set/Get userSpare Reg value." - }, - { - 9919, - "Pmic_getUserSpareValue : Parameter validation for handle." - }, - { - 9920, - "Pmic_getUserSpareValue : Parameter validation for userSpareRegNum." - }, - { - 9921, - "Pmic_getUserSpareValue : Parameter validation for data." - }, - { - 9922, - "Pmic_setCommonCtrlConfig : Enable/Disable Spread Spectrum" - }, - { - 9923, - "Pmic_setCommonCtrlConfig : Lock and UnLock Registers" - }, - { - 9924, - "Pmic_setCommonCtrlConfig : Configure Spread Spectrum Depth" - }, - { - 9925, - "Pmic_getCommonCtrlConfig : Parameter validation for handle." - }, - { - 9926, - "Pmic_getCommonCtrlConfig : Parameter validation for pCommonCtrlCfg." - }, - { - 9927, - "Pmic_setCommonCtrlConfig : Parameter validation for eepromDefaultLoad." - }, - { - 9928, - "Pmic_setCommonCtrlConfig : Parameter validation for regLock." - }, - { - 9929, - "Pmic_setCommonCtrlConfig : Parameter validation for spreadSpectrumDepth." - }, - { - 9930, - "Pmic_setCommonCtrlConfig : Parameter validation for handle." - }, - { - 9931, - "Pmic_setMiscCtrlConfig : Enable/Disable Band gap Voltage to AMUX OUT/RFF OUT Pin" - }, - { - 9932, - "Pmic_setMiscCtrlConfig : Enable or Disable internal Clock Monitoring" - }, - { - 9933, - "Pmic_setMiscCtrlConfig : Selects SYNCCLKOUT Frequency" - }, - { - 9934, - "Pmic_setMiscCtrlConfig : External clock Selection" - }, - { - 9935, - "Pmic_setMiscCtrlConfig : Selects External clock Frequency" - }, - { - 9936, - "Pmic_setMiscCtrlConfig : Parameter validation for syncClkOutFreqSel" - }, - { - 9937, - "Pmic_setMiscCtrlConfig : Parameter validation for extClkSel" - }, - { - 9938, - "Pmic_setMiscCtrlConfig : Parameter validation for syncClkInFreq" - }, - { - 9939, - "Pmic_setMiscCtrlConfig : Parameter validation for handle" - }, - { - 9940, - "Pmic_getMiscCtrlConfig : Parameter validation for handle" - }, - { - 9941, - "Pmic_getMiscCtrlConfig : Parameter validation for pMiscCtrlCfg" - }, - { - 9942, - "Pmic_setBatteryCtrlConfig : Enable/Disable Backup Battery Charging" - }, - { - 9943, - "Pmic_setBatteryCtrlConfig : Configure Backup Battery configuration for End of charge Voltage" - }, - { - 9944, - "Pmic_setBatteryCtrlConfig : Configure Backup Battery charging current value" - }, - { - 9945, - "Pmic_setBatteryCtrlConfig : Parameter validation for endOfChargeVoltage" - }, - { - 9946, - "Pmic_setBatteryCtrlConfig : Parameter validation for chargeCurrent" - }, - { - 9948, - "Pmic_setBatteryCtrlConfig : Parameter validation for handle" - }, - { - 9949, - "Pmic_getBatteryCtrlConfig : Parameter validation for handle" - }, - { - 9950, - "Pmic_getBatteryCtrlConfig : Parameter validation for pBatteryCtrlCfg" - }, - { - 9951, - "Pmic_getCommonCtrlStat : Get the status of nIntPin" - }, - { - 9952, - "Pmic_getCommonCtrlStat : Get the status of spmiLpmStat" - }, - { - 9953, - "Pmic_getCommonCtrlStat : Get the status of forceEnDrvLowStat" - }, - { - 9954, - "Pmic_getCommonCtrlStat : Get the status of bbEndOfChargeIndication" - }, - { - 9955, - "Pmic_getCommonCtrlStat : Get the status of regLockStat" - }, - { - 9956, - "Pmic_getCommonCtrlStat : Get the status of extClkValidity" - }, - { - 9957, - "Pmic_getCommonCtrlStat : Get the status of startupPin" - }, - { - 9958, - "Pmic_getCommonCtrlStat : Get the status of enDrvPin" - }, - { - 9959, - "Pmic_getCommonCtrlStat : Get the status of nRstOutSocPin" - }, - { - 9960, - "Pmic_getCommonCtrlStat : Get the status of nRstOutPin" - }, - { - 9961, - "Pmic_getCommonCtrlStat : Parameter validation for handle" - }, - { - 9962, - "Pmic_getCommonCtrlStat : Parameter validation for pCommonCtrlStat" - }, - { - 9963, - "Pmic_getI2CSpeed : Parameter validation for handle" - }, - { - 9964, - "Pmic_getI2CSpeed : Parameter validation for pI2C1Speed" - }, - { - 9965, - "Pmic_getI2CSpeed : Parameter validation for pI2C2Speed" - }, - { - 9966, - "Pmic_getI2CSpeed : Get I2C1 or I2C2 Speed value" - }, - { - 9967, - "Pmic_getDeviceInfo : Get the Device Information" - }, - { - 9968, - "Pmic_getDeviceInfo : Parameter validation for handle" - }, - { - 9969, - "Pmic_getDeviceInfo : Parameter validation for pDeviceInfo" - }, - { - 9970, - "Pmic_getPinValue : Get the status of EN_DRV Pin Value " - }, - { - 9971, - "Pmic_getPinValue : Get the status of NRSTOUT_SOC Pin Value " - }, - { - 9972, - "Pmic_getPinValue : Get the status of NRSTOUT Pin Value " - }, - { - 9973, - "Pmic_getPinValue : Parameter validation for pinType " - }, - { - 9974, - "Pmic_getPinValue : Parameter validation for handle " - }, - { - 9975, - "Pmic_getPinValue : Parameter validation for pPinValue " - }, - { - 9978, - "Pmic_setMiscCtrlConfig : Configure NRSTOUT_SOC Signal" - }, - { - 9979, - "Pmic_setMiscCtrlConfig : Configure NRSTOUT Signal" - }, - { - 9980, - "Pmic_setMiscCtrlConfig : Parameter validation for NRSTOUT_SOC Signal" - }, - { - 9981, - "Pmic_setMiscCtrlConfig : Parameter validation for NRSTOUT Signal" - }, - { - 9982, - "Pmic_getMiscCtrlConfig : Get the status of NRSTOUT_SOC Signal" - }, - { - 9983, - "Pmic_getMiscCtrlConfig : Get the status of NRSTOUT Signal" - }, - { - 9984, - "Pmic_setCommonCtrlConfig : Configure EN_DRV Signal" - }, - { - 9985, - "Pmic_setCommonCtrlConfig : Parameter validation for EN_DRV Signal" - }, - { - 9988, - "Pmic_setCommonCtrlConfig : Load from EEPROM defaults on RTC domain/conf Registers" - }, - { - 9989, - "Pmic_setCommonCtrlConfig : Not Loaded from EEPROM defaults on RTC domain/conf Registers" - }, - { - 9990, - "Pmic_setCommonCtrlConfig : Enable to skip EEPROM defaults load on conf registers with FIRST_STARTUP_DONE as '0'" - }, - { - 9991, - "Pmic_setCommonCtrlConfig : Disable to skip EEPROM defaults load on conf registers with FIRST_STARTUP_DONE as '0'" - }, - { - 9993, - "Pmic_setCommonCtrlConfig : Disable to skip EEPROM defaults load on conf registers with FIRST_STARTUP_DONE as '1'" - }, - { - 9994, - "Test Pmic Write Protection when Register is Lock" - }, - { - 9995, - "Test Pmic Write Protection when Register is UnLock" - }, - { - 10573, - "Pmic_getRecoveryCnt : Test to read recovery counter value" - }, - { - 10574, - "Pmic_getRecoveryCnt : Parameter validation for pRecovCntVal" - }, - { - 10575, - "Pmic_init : Parameter validation for pPmicCoreHandle" - }, - { - 10577, - "Pmic_init : Parameter validation for pPmicConfigData" - }, - { - 10578, - "Pmic_init : Parameter validation for pmicDeviceType" - }, - { - 10579, - "Pmic_init : Parameter validation for Interface mode" - }, - { - 10580, - "Pmic_init : Parameter validation for I2C1/SPI Main Interface handle" - }, - { - 10581, - "Pmic_init : Parameter validation for I2C2-QA Interface handle" - }, - { - 10582, - "Pmic_init : Parameter validation for I2C/SPI Comm LLD Read Function" - }, - { - 10583, - "Pmic_init : Parameter validation for I2C/SPI Comm LLD Write Function" - }, - { - 10584, - "Pmic_init : Parameter validation for Critical Section Start Function" - }, - { - 10585, - "Pmic_init : Parameter validation for Critical Section Stop Function" - }, - { - 10586, - "Pmic_deinit : Parameter validation for pPmicCoreHandle" - }, - { - 10587, - "Pmic_setScratchPadValue : Test to write data to scratchpad reg1, reg2 and reg3" - }, - { - 10588, - "Pmic_init : Parameter validation for I2C1 Speed" - }, - { - 10589, - "Pmic_init : Parameter validation for I2C2 Speed" - }, - { - 10590, - "Pmic_setCommonCtrlConfig : Enable Skip EEPROM Default Load to CONF and Other registers" - }, - { - 10591, - "Pmic_setI2CSpeedCfg : Parameter validation for handle" - }, - { - 10592, - "Pmic_getCrcStatus : Parameter validation for handle" - }, - { - 10593, - "Pmic_getCrcStatus : Parameter validation for pI2c2CrcStatus" - }, - { - 10594, - "Pmic_getCrcStatus : Parameter validation for pI2c1CrcStatus" - }, - { - 10595, - "Pmic_getCrcStatus : Parameter validation for both pI2c1CrcStatus and pI2c2CrcStatus" - }, - { - 10596, - "Pmic_enableCRC : Parameter validation for handle" - }, - { - 10597, - "Pmic_setBatteryCtrlConfig : Negative test for LP8764x Hera PMIC device" - }, - { - 10598, - "Pmic_getBatteryCtrlConfig : Negative test for LP8764x Hera PMIC device" - }, - { - 10599, - "Pmic_setCommonCtrlConfig : Disable Load from EEPROM defaults on RTC domain/conf Registers" - }, - { - 10600, - "Pmic_setCommonCtrlConfig : Negative test for TPS6594x Leo PMIC device" - }, - { - 10601, - "Pmic_getCommonCtrlConfig : Negative test for TPS6594x Leo PMIC device" - }, - { - 10602, - "Pmic_setMiscCtrlConfig : Configure NRSTOUT Signal for high signal" - }, - { - 10603, - "Pmic_setMiscCtrlConfig : Configure NRSTOUT_SOC Signal for high signal" - }, - { - 10604, - "Pmic_init : Config Device Type as PMIC_DEV_HERA_LP8764X" - }, - { - 10751, - "Pmic_setCommonCtrlConfig : Enable Skip EEPROM Default Load to CONF and Other registers" - }, - { - 10752, - "Test Pmic Write Protection when Register is Lock - code coverage" - }, - { - 10786, - "Pmic_setCommonCtrlConfig : Configure EN_DRV Signal - code coverage" - }, - { - 8933, - "Pmic_miscTests : Fault Injection and Coverage Gaps." - }, -}; - -/*! - * \brief Pmic_irqGetErrStatus : Test ENABLE_INT interrupt. - */ -static void test_pmic_interruptEnableInt(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool intrEnable = PMIC_IRQ_UNMASK; - - Pmic_WdgCfg_t wdgCfg = - { - PMIC_WDG_CFG_SETPARAMS_FORALL, - 3000U, - 6150U, - 4950U, - PMIC_WDG_FAIL_THRESHOLD_COUNT_7, - PMIC_WDG_RESET_THRESHOLD_COUNT_7, - PMIC_WDG_QA_MODE, - PMIC_WDG_PWRHOLD_DISABLE, - PMIC_WDG_RESET_ENABLE, - PMIC_WDG_RETLONGWIN_DISABLE, - PMIC_WDG_QA_FEEDBACK_VALUE_0, - PMIC_WDG_QA_LFSR_VALUE_0, - PMIC_WDG_QA_QUES_SEED_VALUE_10, - }; - - test_pmic_print_unity_testcase_info(7768, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(7768, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - } - - if(startup_type == PMIC_ENABLE_STARTUP_TYPE) - { - pmic_log("Enable-pin Start-up is detected\n"); - } - else - { - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmicStatus = Pmic_irqMaskIntr(pPmicCoreHandle, - PMIC_TPS6594X_ENABLE_INT, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmicStatus = Pmic_irqMaskIntr(pPmicCoreHandle, - PMIC_LP8764X_ENABLE_INT, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - - /* Enable WDG Timer */ - pmicStatus = Pmic_wdgEnable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Set QA parameters */ - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Waiting for longwindow time interval expiring */ - Osal_delay(wdgCfg.longWinDuration_ms); - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(7768, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setRecoveryCntCfg : Test Set Recovery Counter Threshold. - */ -static void test_pmic_setRecoveryCntCfg_threshold(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RecovCntCfg_t recovCntCfg; - Pmic_RecovCntCfg_t recovCntCfg_rd; - - recovCntCfg.validParams = PMIC_CFG_RECOV_CNT_THR_VAL_VALID_SHIFT; - recovCntCfg_rd.validParams = PMIC_CFG_RECOV_CNT_THR_VAL_VALID_SHIFT; - recovCntCfg.thrVal = PMIC_RECOV_CNT_THR_MAX; - - test_pmic_print_unity_testcase_info(7628, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - status = Pmic_setRecoveryCntCfg(pPmicCoreHandle, recovCntCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_getRecoveryCntCfg(pPmicCoreHandle, &recovCntCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - TEST_ASSERT_EQUAL(recovCntCfg.thrVal, recovCntCfg_rd.thrVal); - - pmic_testResultUpdate_pass(7628, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setRecoveryCntCfg : Parameter validation for thrVal. - */ -static void test_pmic_setRecoveryCntCfgPrmValTest_thrVal(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RecovCntCfg_t recovCntCfg; - - recovCntCfg.validParams = PMIC_CFG_RECOV_CNT_THR_VAL_VALID_SHIFT; - recovCntCfg.thrVal = PMIC_RECOV_CNT_THR_MAX + 1U; - - test_pmic_print_unity_testcase_info(7629, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - status = Pmic_setRecoveryCntCfg(pPmicCoreHandle, recovCntCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, status); - - pmic_testResultUpdate_pass(7629, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setRecoveryCntCfg : Test Set/Get Clear Recovery Counter. - */ -static void test_pmic_setRecoveryCntCfg_clrCnt(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RecovCntCfg_t recovCntCfg; - Pmic_RecovCntCfg_t recovCntCfg_rd; - - recovCntCfg.validParams = PMIC_CFG_RECOV_CNT_CLR_CNT_VALID_SHIFT; - recovCntCfg.clrCnt = 1U; - - test_pmic_print_unity_testcase_info(7630, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - status = Pmic_setRecoveryCntCfg(pPmicCoreHandle, recovCntCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - recovCntCfg_rd.validParams = PMIC_CFG_RECOV_CNT_CLR_CNT_VALID_SHIFT; - status = Pmic_getRecoveryCntCfg(pPmicCoreHandle, &recovCntCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - TEST_ASSERT_EQUAL(0U, recovCntCfg_rd.clrCnt); - - pmic_testResultUpdate_pass(7630, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setRecoveryCntCfg : Parameter validation for clrCnt. - */ -static void test_pmic_setRecoveryCntCfgPrmValTest_clrCnt(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RecovCntCfg_t recovCntCfg; - - recovCntCfg.validParams = PMIC_CFG_RECOV_CNT_CLR_CNT_VALID_SHIFT; - recovCntCfg.clrCnt = 0U; - - test_pmic_print_unity_testcase_info(7631, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - status = Pmic_setRecoveryCntCfg(pPmicCoreHandle, recovCntCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, status); - - pmic_testResultUpdate_pass(7631, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setRecoveryCntCfg : Parameter validation for handle. - */ -static void test_pmic_setRecoveryCntCfgPrmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RecovCntCfg_t recovCntCfg; - - recovCntCfg.validParams = PMIC_CFG_RECOV_CNT_CLR_CNT_VALID_SHIFT; - - test_pmic_print_unity_testcase_info(7632, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - status = Pmic_setRecoveryCntCfg(NULL, recovCntCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - pmic_testResultUpdate_pass(7632, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getRecoveryCntCfg : Parameter validation for handle. - */ -static void test_pmic_getRecoveryCntCfgPrmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RecovCntCfg_t recovCntCfg; - - test_pmic_print_unity_testcase_info(7633, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - status = Pmic_getRecoveryCntCfg(NULL, &recovCntCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - pmic_testResultUpdate_pass(7633, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getRecoveryCntCfg : Parameter validation for recovCntCfg. - */ -static void test_pmic_getRecoveryCntCfgPrmValTest_recovCntCfg(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(7634, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - status = Pmic_getRecoveryCntCfg(pPmicCoreHandle, NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, status); - - pmic_testResultUpdate_pass(7634, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getRecoveryCnt : Parameter validation for handle. - */ -static void test_Pmic_getRecoveryCntPrmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t recovCntVal = 0U; - - test_pmic_print_unity_testcase_info(7635, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - status = Pmic_getRecoveryCnt(NULL, &recovCntVal); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - pmic_testResultUpdate_pass(7635, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getRecoveryCnt : Parameter validation for recovCntVal. - */ -static void test_Pmic_getRecoveryCntPrmValTest_recovCntVal(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(7636, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - status = Pmic_getRecoveryCnt(pPmicCoreHandle, NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, status); - - pmic_testResultUpdate_pass(7636, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * To test the following manual test-case, - * the test-case should be executed twice continuously. - */ -/*! - * \brief Pmic_getRecoveryCnt : Read Recovery Count Value. - */ -static void test_pmic_getRecoveryCnt_read_recovCntVal(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t recovCntVal = 0U; - Pmic_WdgCfg_t wdgCfg = - { - PMIC_WDG_CFG_SETPARAMS_FORALL, - 3000U, - 6150U, - 4950U, - PMIC_WDG_FAIL_THRESHOLD_COUNT_7, - PMIC_WDG_RESET_THRESHOLD_COUNT_7, - PMIC_WDG_QA_MODE, - PMIC_WDG_PWRHOLD_DISABLE, - PMIC_WDG_RESET_ENABLE, - PMIC_WDG_RETLONGWIN_DISABLE, - PMIC_WDG_QA_FEEDBACK_VALUE_0, - PMIC_WDG_QA_LFSR_VALUE_0, - PMIC_WDG_QA_QUES_SEED_VALUE_10, - }; - - test_pmic_print_unity_testcase_info(7637, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(7637, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - } - - status = Pmic_getRecoveryCnt(pPmicCoreHandle, &recovCntVal); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - pmic_log("Recovery count: %d\n", recovCntVal); - /* Enable WDG Timer */ - status = Pmic_wdgEnable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - /* Set QA parameters */ - status = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - pmic_testResultUpdate_pass(7637, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_irqGetErrStatus : Test BIST_PASS_INT interrupt. - */ -static void test_Pmic_getBistPassInterrupt(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - bool nsleepType = 0U; - bool maskEnable = 0U; - int8_t timeout = 10U; - - test_pmic_print_unity_testcase_info(7715, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - if(PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - pmic_testResultUpdate_ignore(7715, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmicStatus = Pmic_irqMaskIntr(pPmicCoreHandle, - PMIC_TPS6594X_BIST_PASS_INT, - PMIC_IRQ_UNMASK); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmicStatus = Pmic_irqMaskIntr(pPmicCoreHandle, - PMIC_LP8764X_BIST_PASS_INT, - PMIC_IRQ_UNMASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - - /* - * On J721E, Need to Mask NSLEEP1 and NSLEEP2 signal, becuase - * NSLEEPn signals are having high priority than RUNTIME BIST PASS. - */ - if(J721E_LEO_PMICA_DEVICE == pmic_device_info) - { - - nsleepType = PMIC_NSLEEP1_SIGNAL; - maskEnable = PMIC_NSLEEPX_MASK; - - pmicStatus = Pmic_fsmSetNsleepSignalMask(pPmicCoreHandle, - nsleepType, - maskEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - nsleepType = PMIC_NSLEEP2_SIGNAL; - maskEnable = PMIC_NSLEEPX_MASK; - - pmicStatus = Pmic_fsmSetNsleepSignalMask(pPmicCoreHandle, - nsleepType, - maskEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_fsmRequestRuntimeBist(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_BIST_PASS_INT/32U] & - (1U << (PMIC_TPS6594X_BIST_PASS_INT % 32U))) != 0U)) - { - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - PMIC_TPS6594X_BIST_PASS_INT); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_LP8764X_BIST_PASS_INT/32U] & - (1U << (PMIC_LP8764X_BIST_PASS_INT % 32U))) != 0U)) - { - if(PMIC_ST_SUCCESS == pmicStatus) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - PMIC_LP8764X_BIST_PASS_INT); - break; - } - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - - pmic_testResultUpdate_pass(7715, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * Below test cases are not tested because of HW limitation. - * Added below test cases as sample for reference. - */ - -#if defined(ENABLE_SAMPLE_TESTCASES) -/*! - * \brief Pmic_irqGetErrStatus : Test FSD_INT interrupt. - * To test this testcase, user needs to follow below steps - * 1. After POR reset, run below test case by setting 'startup_type' variable to - * PMIC_FSD_STARTUP_TYPE. - */ -static void test_Pmic_FSD_interrupt(void) -{ - int32_t status = PMIC_ST_SUCCESS; - bool intrEnable = PMIC_IRQ_UNMASK; - - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_NPWRON_PINFUNC_NONE, - PMIC_GPIO_HIGH - }; - - Pmic_WdgCfg_t wdgCfg = - { - PMIC_WDG_CFG_SETPARAMS_FORALL, - 3000U, - 6150U, - 4950U, - PMIC_WDG_FAIL_THRESHOLD_COUNT_7, - PMIC_WDG_RESET_THRESHOLD_COUNT_7, - PMIC_WDG_QA_MODE, - PMIC_WDG_PWRHOLD_DISABLE, - PMIC_WDG_RESET_ENABLE, - PMIC_WDG_RETLONGWIN_DISABLE, - PMIC_WDG_QA_FEEDBACK_VALUE_0, - PMIC_WDG_QA_LFSR_VALUE_0, - PMIC_WDG_QA_QUES_SEED_VALUE_10, - }; - - test_pmic_print_unity_testcase_info(0xAB1F, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - /* Ignored because, it needs NVM setup */ - pmic_testResultUpdate_ignore(0xAB1F, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(0xAB1F, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - } - - if(startup_type == PMIC_FSD_STARTUP_TYPE) - { - pmic_log("FSD Start-up is detected\n"); - } - else - { - status = Pmic_gpioSetNPwronEnablePinConfiguration(pPmicCoreHandle, - gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - status = Pmic_irqMaskIntr(pPmicCoreHandle, PMIC_TPS6594X_FSD_INT, intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - status = Pmic_irqMaskIntr(pPmicCoreHandle, PMIC_LP8764X_FSD_INT, intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - } - - /* Enable WDG Timer */ - status = Pmic_wdgEnable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - /* Set QA parameters */ - status = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - /* Waiting for longwindow time interval expiring */ - Osal_delay(wdgCfg.longWinDuration_ms); - } - - pmic_testResultUpdate_pass(0xAB1F, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} -/*! - * \brief Pmic_irqGetErrStatus : Test NPWRON_INT interrupt Manual TestCase. - * To test this testcase, user needs to follow below steps - * 1. After POR reset, run below test case by setting 'startup_type' variable to - * PMIC_NPWRON_STARTUP_TYPE. - */ -static void test_Pmic_NPWRON_interrupt(void) -{ - int32_t status = PMIC_ST_SUCCESS; - bool intrEnable = PMIC_IRQ_UNMASK; - - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_NPWRON_PINFUNC_NPWRON, - PMIC_GPIO_HIGH - }; - - Pmic_WdgCfg_t wdgCfg = - { - PMIC_WDG_CFG_SETPARAMS_FORALL, - 3000U, - 6150U, - 4950U, - PMIC_WDG_FAIL_THRESHOLD_COUNT_7, - PMIC_WDG_RESET_THRESHOLD_COUNT_7, - PMIC_WDG_QA_MODE, - PMIC_WDG_PWRHOLD_DISABLE, - PMIC_WDG_RESET_ENABLE, - PMIC_WDG_RETLONGWIN_DISABLE, - PMIC_WDG_QA_FEEDBACK_VALUE_0, - PMIC_WDG_QA_LFSR_VALUE_0, - PMIC_WDG_QA_QUES_SEED_VALUE_10, - }; - - test_pmic_print_unity_testcase_info(0xAB2D, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(0xAB2D, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB2D, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - } - - if(startup_type == PMIC_NPWRON_STARTUP_TYPE) - { - pmic_log("NPWRON Start-up is detected\n"); - } - else - { - status = Pmic_gpioSetNPwronEnablePinConfiguration(pPmicCoreHandle, - gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - status = Pmic_irqMaskIntr(pPmicCoreHandle, - PMIC_TPS6594X_NPWRON_PINFUNC_NPWRON, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - } - - /* Enable WDG Timer */ - status = Pmic_wdgEnable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - /* Set QA parameters */ - status = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - /* Waiting for longwindow time interval expiring */ - Osal_delay(wdgCfg.longWinDuration_ms); - } - - pmic_testResultUpdate_pass(0xAB2D, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_irqGetErrStatus : Test NPWRON_LONG_INT interrupt Manual TestCase. - * To test this testcase, user needs to follow below steps - * 1. User has to hold the NPWRON button or Keep low NPWON pin some duration. - * 2. Pmic will be reset after first step. - * 3. After reset, run below test case by setting 'startup_type' variable to - * PMIC_NPWRON_STARTUP_TYPE. - */ -static void test_Pmic_NPWRON_long_interrupt(void) -{ - int32_t status = PMIC_ST_SUCCESS; - bool intrEnable = PMIC_IRQ_UNMASK; - - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_NPWRON_PINFUNC_NPWRON, - PMIC_GPIO_HIGH - }; - - test_pmic_print_unity_testcase_info(0xAB20, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(0xAB20, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB20, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - } - - if(startup_type == PMIC_NPWRON_STARTUP_TYPE) - { - pmic_log("NPWRON Start-up is detected\n"); - } - else - { - status = Pmic_gpioSetNPwronEnablePinConfiguration(pPmicCoreHandle, - gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - status = Pmic_irqMaskIntr(pPmicCoreHandle, - PMIC_TPS6594X_NPWRON_LONG_INT, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - } - - } - - pmic_testResultUpdate_pass(0xAB20, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_commFrmError : Test COMM_FRM_ERROR interrupt Manual TestCase. - * To test this testcase, user needs to follow below steps - * 1. PMIC SPI must be enabled by NVM. - * 2. Run below test case to get an SPI FRAME Error - */ -static void test_Pmic_commFrmErrorIntr(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t buffLength = 1U; - uint8_t txBuf[PMIC_IO_BUF_SIZE] = {0}; - uint8_t txData = 0x0FU; - uint16_t regAddr = PMIC_SCRATCH_PAD_REG_4_REGADDR; - uint16_t pmicRegAddr = regAddr; - uint8_t instType = PMIC_MAIN_INST; - int8_t timeout = 10U; - - test_pmic_print_unity_testcase_info(0xAB2C, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - if((NULL == pPmicCoreHandle) && (PMIC_INTF_SPI == pPmicCoreHandle->commMode)) - { - pmic_testResultUpdate_ignore(0xAB2C, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - } - - if(PMIC_INTF_SPI == pPmicCoreHandle->commMode) - { - /* - * Frame 3 Bytes with IO header+data as per PMIC SPI IO algorithm - * explained in PMIC TRM - */ - - buffLength = 0; - /* Set ADDR to txbuf[0], Bits 1-8: ADDR[7:0] */ - txBuf[buffLength] = (uint8_t)(pmicRegAddr & 0xFFU); - buffLength++; - - /* Writing wrong value to Set PAGE to txBuf[1] 2:0 bits */ - txBuf[buffLength] = (uint8_t)((pmicRegAddr >> 8U) & 0x7U); - - /* Set R/W in txBuf[1] as bit-3, Bit 12: 0 for Write Request */ - txBuf[buffLength] &= (uint8_t)(~PMIC_IO_REQ_RW); - buffLength++; - - if(((bool)true) == pPmicCoreHandle->crcEnable) - { - /* Set CRC data to txBuf[3], Bits 25-32 CRC */ - txBuf[buffLength] = Pmic_getCRC8Val(txBuf, buffLength); - /* Increment 1 more byte to store CRC8 */ - buffLength++; - } - - } - - /* To clear the interrupts*/ - status = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmicStatus = Pmic_irqMaskIntr(pPmicCoreHandle, - PMIC_TPS6594X_COMM_FRM_ERR_INT, - PMIC_IRQ_UNMASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmicStatus = Pmic_irqMaskIntr(pPmicCoreHandle, - PMIC_LP8764X_COMM_FRM_ERR_INT, - PMIC_IRQ_UNMASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - - pmicStatus = test_pmic_regWrite(pPmicCoreHandle, - instType, - pmicRegAddr, - txBuf, - buffLength); - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - if(((errStat.intStatus[PMIC_TPS6594X_COMM_FRM_ERR_INT/32U] & - (1U << (PMIC_TPS6594X_COMM_FRM_ERR_INT % 32U))) != 0U)) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - PMIC_TPS6594X_COMM_FRM_ERR_INT); - break; - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_LP8764X_COMM_FRM_ERR_INT/32U] & - (1U << (PMIC_LP8764X_COMM_FRM_ERR_INT % 32U))) != 0U)) - { - /* clear the interrupt */ - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - PMIC_LP8764X_COMM_FRM_ERR_INT); - break; - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - - pmic_testResultUpdate_pass(0xAB2C, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -#endif - -/*! - * \brief Pmic_setScratchPadValue : Parameter validation for handle. - */ -static void test_pmic_setScratchPadValuePrmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t scratchPadRegId,data; - - data = 0x10; - scratchPadRegId = PMIC_SCRATCH_PAD_REG_4; - - test_pmic_print_unity_testcase_info(8321, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - status = Pmic_setScratchPadValue(NULL, scratchPadRegId, data); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - pmic_testResultUpdate_pass(8321, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setScratchPadValue : Parameter validation for scratchPadRegId. - */ -static void test_pmic_setScratchPadValuePrmValTest_scratchPadRegId(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t scratchPadRegId,data; - - data = 0x10; - scratchPadRegId = PMIC_SCRATCH_PAD_REG_4 + 1; - - test_pmic_print_unity_testcase_info(8322, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - status = Pmic_setScratchPadValue(pPmicCoreHandle, scratchPadRegId, data); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, status); - - pmic_testResultUpdate_pass(8322, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setScratchPadValue : Test Set/Get Scratchpad value. - */ -static void test_pmic_setScratchPadValue_setget(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t scratchPadRegId,data, data_rd, data_def; - - data = 0x10; - scratchPadRegId = PMIC_SCRATCH_PAD_REG_4; - - - test_pmic_print_unity_testcase_info(8323, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - for(scratchPadRegId = PMIC_SCRATCH_PAD_REG_1; - scratchPadRegId <= PMIC_SCRATCH_PAD_REG_4; scratchPadRegId++) - { - status = Pmic_getScratchPadValue(pPmicCoreHandle, - scratchPadRegId, - &data_def); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_setScratchPadValue(pPmicCoreHandle, - scratchPadRegId, - data); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_getScratchPadValue(pPmicCoreHandle, - scratchPadRegId, - &data_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - TEST_ASSERT_EQUAL(data, data_rd); - - status = Pmic_setScratchPadValue(pPmicCoreHandle, - scratchPadRegId, - data_def); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_getScratchPadValue(pPmicCoreHandle, - scratchPadRegId, - &data_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - TEST_ASSERT_EQUAL(data_def, data_rd); - } - pmic_testResultUpdate_pass(8323, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getScratchPadValue : Parameter validation for handle. - */ -static void test_pmic_getScratchPadValuePrmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t scratchPadRegId,data; - - scratchPadRegId = PMIC_SCRATCH_PAD_REG_4; - - test_pmic_print_unity_testcase_info(8324, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - status = Pmic_getScratchPadValue(NULL, scratchPadRegId, &data); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - pmic_testResultUpdate_pass(8324, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getScratchPadValue : Parameter validation for scratchPadRegId. - */ -static void test_pmic_getScratchPadValuePrmValTest_scratchPadRegId(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t scratchPadRegId,data; - - scratchPadRegId = PMIC_SCRATCH_PAD_REG_4 + 1; - - test_pmic_print_unity_testcase_info(8325, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - status = Pmic_getScratchPadValue(pPmicCoreHandle, scratchPadRegId, &data); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, status); - - pmic_testResultUpdate_pass(8325, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getScratchPadValue : Parameter validation for data. - */ -static void test_pmic_getScratchPadValuePrmValTest_data(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t scratchPadRegId; - - scratchPadRegId = PMIC_SCRATCH_PAD_REG_4 ; - - test_pmic_print_unity_testcase_info(8326, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - status = Pmic_getScratchPadValue(pPmicCoreHandle, scratchPadRegId, NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, status); - - pmic_testResultUpdate_pass(8326, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setUserSpareValue : Parameter validation for handle. - */ -static void test_pmic_setUserSpareValuePrmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t userSpareRegNum, data; - - data = PMIC_USER_SPARE_REG_VAL_1; - userSpareRegNum = PMIC_USER_SPARE_REG_4; - - test_pmic_print_unity_testcase_info(9915, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - status = Pmic_setUserSpareValue(NULL, userSpareRegNum, data); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - pmic_testResultUpdate_pass(9915, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setUserSpareValue : Parameter validation for userSpareRegNum. - */ -static void test_pmic_setUserSpareValuePrmValTest_userSpareRegNum(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t userSpareRegNum, data; - - data = PMIC_USER_SPARE_REG_VAL_1; - userSpareRegNum = PMIC_USER_SPARE_REG_4 + 1; - - test_pmic_print_unity_testcase_info(9916, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - status = Pmic_setUserSpareValue(pPmicCoreHandle, userSpareRegNum, data); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, status); - - pmic_testResultUpdate_pass(9916, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setUserSpareValue : Parameter validation for userSpareRegNum. - */ -static void test_pmic_setUserSpareValuePrmValTest_data(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t userSpareRegNum, data; - - data = 0x2; - userSpareRegNum = PMIC_USER_SPARE_REG_4; - - test_pmic_print_unity_testcase_info(9917, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - status = Pmic_setUserSpareValue(pPmicCoreHandle, userSpareRegNum, data); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, status); - - pmic_testResultUpdate_pass(9917, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setUserSpareValue : Test Set/Get userSpare Reg value. - */ -static void test_pmic_setUserSpareValue(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t userSpareRegNum, data, data_rd; - - data = PMIC_USER_SPARE_REG_VAL_1; - userSpareRegNum = PMIC_USER_SPARE_REG_4; - - test_pmic_print_unity_testcase_info(9918, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - for(userSpareRegNum = PMIC_USER_SPARE_REG_1; - userSpareRegNum <= PMIC_USER_SPARE_REG_4; userSpareRegNum++) - { - status = Pmic_setUserSpareValue(pPmicCoreHandle, - userSpareRegNum, - data); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_getUserSpareValue(pPmicCoreHandle, - userSpareRegNum, - &data_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - TEST_ASSERT_EQUAL(data, data_rd); - } - pmic_testResultUpdate_pass(9918, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getUserSpareValue : Parameter validation for handle. - */ -static void test_pmic_getUserSpareValuePrmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t userSpareRegNum, data; - - userSpareRegNum = PMIC_USER_SPARE_REG_4; - - test_pmic_print_unity_testcase_info(9919, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - status = Pmic_getUserSpareValue(NULL, userSpareRegNum, &data); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - pmic_testResultUpdate_pass(9919, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getUserSpareValue : Parameter validation for userSpareRegNum. - */ -static void test_pmic_getUserSpareValuePrmValTest_userSpareRegNum(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t userSpareRegNum, data; - - userSpareRegNum = PMIC_USER_SPARE_REG_4 + 1; - - test_pmic_print_unity_testcase_info(9920, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - status = Pmic_getUserSpareValue(pPmicCoreHandle, userSpareRegNum, &data); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, status); - - pmic_testResultUpdate_pass(9920, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getUserSpareValue : Parameter validation for data. - */ -static void test_pmic_getUserSpareValuePrmValTest_data(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t userSpareRegNum; - - userSpareRegNum = PMIC_USER_SPARE_REG_4 ; - - test_pmic_print_unity_testcase_info(9921, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - status = Pmic_getUserSpareValue(pPmicCoreHandle, userSpareRegNum, NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, status); - - pmic_testResultUpdate_pass(9921, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setCommonCtrlConfig : Enable/Disable Spread Spectrum - */ -static void test_pmic_setCommonCtrlCfg_sreadSpectrumEnable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CommonCtrlCfg_t commonCtrlCfg_rd = {PMIC_CFG_SPREAD_SPECTRUM_EN_VALID_SHIFT,}; - Pmic_CommonCtrlCfg_t commonCtrlCfg_def = {PMIC_CFG_SPREAD_SPECTRUM_EN_VALID_SHIFT,}; - Pmic_CommonCtrlCfg_t commonCtrlCfg = - { - PMIC_CFG_SPREAD_SPECTRUM_EN_VALID_SHIFT, - PMIC_SPREAD_SPECTRUM_CFG_ENABLE, - PMIC_LP8764X_SKIP_EEPROM_DEF_LD_TO_CONF_OTHER_REGS_DISABLED, - PMIC_TPS6594X_EEPROM_DEFAULTS_LOAD_TO_RTC_DOMAIN_BITS, - PMIC_PIN_SIGNAL_LEVEL_LOW, - PMIC_REGISTER_UNLOCK, - PMIC_SPREAD_SPECTRUM_MODULATION_DEPTH_NONE - }; - - test_pmic_print_unity_testcase_info(9922, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_getCommonCtrlConfig(pPmicCoreHandle, &commonCtrlCfg_def); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_setCommonCtrlConfig(pPmicCoreHandle, commonCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getCommonCtrlConfig(pPmicCoreHandle, &commonCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(commonCtrlCfg.sreadSpectrumEn, - commonCtrlCfg_rd.sreadSpectrumEn); - - commonCtrlCfg.sreadSpectrumEn = PMIC_SPREAD_SPECTRUM_CFG_DISABLE; - pmicStatus = Pmic_setCommonCtrlConfig(pPmicCoreHandle, commonCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getCommonCtrlConfig(pPmicCoreHandle, &commonCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(commonCtrlCfg.sreadSpectrumEn, - commonCtrlCfg_rd.sreadSpectrumEn); - - pmicStatus = Pmic_setCommonCtrlConfig(pPmicCoreHandle, commonCtrlCfg_def); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getCommonCtrlConfig(pPmicCoreHandle, &commonCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(commonCtrlCfg_def.sreadSpectrumEn, - commonCtrlCfg_rd.sreadSpectrumEn); - - pmic_testResultUpdate_pass(9922, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setCommonCtrlConfig : Lock and UnLock Registers - */ -static void test_pmic_setCommonCtrlCfg_RegisterLock(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CommonCtrlCfg_t commonCtrlCfg = - { - PMIC_CFG_REG_LOCK_VALID_SHIFT, - PMIC_SPREAD_SPECTRUM_CFG_ENABLE, - PMIC_LP8764X_SKIP_EEPROM_DEF_LD_TO_CONF_OTHER_REGS_DISABLED, - PMIC_TPS6594X_EEPROM_DEFAULTS_LOAD_TO_RTC_DOMAIN_BITS, - PMIC_PIN_SIGNAL_LEVEL_LOW, - PMIC_REGISTER_LOCK, - PMIC_SPREAD_SPECTRUM_MODULATION_DEPTH_NONE - }; - Pmic_CommonCtrlStat_t commonCtrlStat_rd = {PMIC_CFG_REGISTER_LOCK_STAT_VALID_SHIFT}; - - test_pmic_print_unity_testcase_info(9923, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - - pmicStatus = Pmic_setCommonCtrlConfig(pPmicCoreHandle, commonCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getCommonCtrlStat(pPmicCoreHandle, &commonCtrlStat_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(PMIC_REGISTER_STATUS_LOCK, - commonCtrlStat_rd.regLockStat); - - commonCtrlCfg.regLock = PMIC_REGISTER_UNLOCK; - pmicStatus = Pmic_setCommonCtrlConfig(pPmicCoreHandle, commonCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getCommonCtrlStat(pPmicCoreHandle, &commonCtrlStat_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(PMIC_REGISTER_STATUS_UNLOCK, - commonCtrlStat_rd.regLockStat); - - pmic_testResultUpdate_pass(9923, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setCommonCtrlConfig : Configure Spread Spectrum Depth - */ -static void test_pmic_setCommonCtrlCfg_sreadSpectrumDepth(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CommonCtrlCfg_t commonCtrlCfg_rd = {PMIC_CFG_SPREAD_SPECTRUM_DEPTH_VALID_SHIFT,}; - Pmic_CommonCtrlCfg_t commonCtrlCfg_def = {PMIC_CFG_SPREAD_SPECTRUM_DEPTH_VALID_SHIFT,}; - Pmic_CommonCtrlCfg_t commonCtrlCfg = - { - PMIC_CFG_SPREAD_SPECTRUM_DEPTH_VALID_SHIFT, - PMIC_SPREAD_SPECTRUM_CFG_ENABLE, - PMIC_LP8764X_SKIP_EEPROM_DEF_LD_TO_CONF_OTHER_REGS_DISABLED, - PMIC_TPS6594X_EEPROM_DEFAULTS_LOAD_TO_RTC_DOMAIN_BITS, - PMIC_PIN_SIGNAL_LEVEL_LOW, - PMIC_REGISTER_UNLOCK, - PMIC_SPREAD_SPECTRUM_MODULATION_DEPTH_NONE - }; - uint8_t ssDepthVal; - - test_pmic_print_unity_testcase_info(9924, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_getCommonCtrlConfig(pPmicCoreHandle, &commonCtrlCfg_def); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - for(ssDepthVal = PMIC_SPREAD_SPECTRUM_MODULATION_DEPTH_NONE; - ssDepthVal <= PMIC_SPREAD_SPECTRUM_MODULATION_DEPTH_8_4_PERCENT; - ssDepthVal++) - { - commonCtrlCfg.spreadSpectrumDepth = ssDepthVal; - - pmicStatus = Pmic_setCommonCtrlConfig(pPmicCoreHandle, commonCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getCommonCtrlConfig(pPmicCoreHandle, &commonCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(commonCtrlCfg.spreadSpectrumDepth, - commonCtrlCfg_rd.spreadSpectrumDepth); - } - - pmicStatus = Pmic_setCommonCtrlConfig(pPmicCoreHandle, commonCtrlCfg_def); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getCommonCtrlConfig(pPmicCoreHandle, &commonCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(commonCtrlCfg_def.spreadSpectrumDepth, - commonCtrlCfg_rd.spreadSpectrumDepth); - - pmic_testResultUpdate_pass(9924, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getCommonCtrlConfig : Parameter validation for handle - */ -static void test_pmic_getCommonCtrlCfgPrmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CommonCtrlCfg_t commonCtrlCfg_rd = {PMIC_CFG_SPREAD_SPECTRUM_EN_VALID_SHIFT,}; - - test_pmic_print_unity_testcase_info(9925, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_getCommonCtrlConfig(NULL, &commonCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(9925, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getCommonCtrlConfig : Parameter validation for pCommonCtrlCfg - */ -static void test_pmic_getCommonCtrlCfgPrmValTest_pCommonCtrlCfg(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(9926, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_getCommonCtrlConfig(pPmicCoreHandle, NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(9926, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setCommonCtrlConfig : Parameter validation for eepromDefaultLoad - */ -static void test_pmic_setCommonCtrlCfgPrmValTest_eepromDefaultLoad(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CommonCtrlCfg_t commonCtrlCfg = - { - PMIC_CFG_EEPROM_DEFAULT_VALID_SHIFT, - PMIC_SPREAD_SPECTRUM_CFG_ENABLE, - PMIC_LP8764X_SKIP_EEPROM_DEF_LD_TO_CONF_OTHER_REGS_DISABLED, - 2U, - PMIC_PIN_SIGNAL_LEVEL_LOW, - PMIC_REGISTER_UNLOCK, - PMIC_SPREAD_SPECTRUM_MODULATION_DEPTH_NONE - }; - - test_pmic_print_unity_testcase_info(9927, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_setCommonCtrlConfig(pPmicCoreHandle, commonCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(9927, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setCommonCtrlConfig : Parameter validation for regLock - */ -static void test_pmic_setCommonCtrlCfgPrmValTest_regLock(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CommonCtrlCfg_t commonCtrlCfg = - { - PMIC_CFG_REG_LOCK_VALID_SHIFT, - PMIC_SPREAD_SPECTRUM_CFG_ENABLE, - PMIC_LP8764X_SKIP_EEPROM_DEF_LD_TO_CONF_OTHER_REGS_DISABLED, - PMIC_TPS6594X_EEPROM_DEFAULTS_LOAD_TO_RTC_DOMAIN_BITS, - PMIC_PIN_SIGNAL_LEVEL_LOW, - 0x20U, - PMIC_SPREAD_SPECTRUM_MODULATION_DEPTH_NONE - }; - - test_pmic_print_unity_testcase_info(9928, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_setCommonCtrlConfig(pPmicCoreHandle, commonCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(9928, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setCommonCtrlConfig : Parameter validation for spreadSpectrumDepth - */ -static void test_pmic_setCommonCtrlCfgPrmValTest_spreadSpectrumDepth(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CommonCtrlCfg_t commonCtrlCfg = - { - PMIC_CFG_SPREAD_SPECTRUM_DEPTH_VALID_SHIFT, - PMIC_SPREAD_SPECTRUM_CFG_ENABLE, - PMIC_LP8764X_SKIP_EEPROM_DEF_LD_TO_CONF_OTHER_REGS_DISABLED, - PMIC_TPS6594X_EEPROM_DEFAULTS_LOAD_TO_RTC_DOMAIN_BITS, - PMIC_PIN_SIGNAL_LEVEL_LOW, - PMIC_REGISTER_UNLOCK, - 3U - }; - - test_pmic_print_unity_testcase_info(9929, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_setCommonCtrlConfig(pPmicCoreHandle, commonCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(9929, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setCommonCtrlConfig : Parameter validation for handle - */ -static void test_pmic_setCommonCtrlCfgPrmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CommonCtrlCfg_t commonCtrlCfg = - { - PMIC_CFG_SPREAD_SPECTRUM_DEPTH_VALID_SHIFT, - PMIC_SPREAD_SPECTRUM_CFG_ENABLE, - PMIC_LP8764X_SKIP_EEPROM_DEF_LD_TO_CONF_OTHER_REGS_DISABLED, - PMIC_TPS6594X_EEPROM_DEFAULTS_LOAD_TO_RTC_DOMAIN_BITS, - PMIC_PIN_SIGNAL_LEVEL_LOW, - PMIC_REGISTER_UNLOCK, - PMIC_SPREAD_SPECTRUM_MODULATION_DEPTH_NONE - }; - - test_pmic_print_unity_testcase_info(9930, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_setCommonCtrlConfig(NULL, commonCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(9930, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setMiscCtrlConfig : Enable/Disable Band gap Voltage to AMUX OUT/RFF OUT Pin - */ -static void test_pmic_setMiscCtrlCfg_amuxOutRefOutEn(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_MiscCtrlCfg_t miscCtrlCfg_rd = {PMIC_CFG_AMUX_OUT_REF_OUT_EN_VALID_SHIFT,}; - Pmic_MiscCtrlCfg_t miscCtrlCfg_def = {PMIC_CFG_AMUX_OUT_REF_OUT_EN_VALID_SHIFT,}; - Pmic_MiscCtrlCfg_t miscCtrlCfg = - { - PMIC_CFG_AMUX_OUT_REF_OUT_EN_VALID_SHIFT, - PMIC_TPS6594X_AMUX_OUT_PIN_CFG_DISABLE, - PMIC_INTERNAL_CLK_MONITORING_CFG_DISABLE, - PMIC_SYNCCLKOUT_DISABLE, - PMIC_INTERNAL_RC_OSC, - PMIC_TPS6594X_SYNCCLKIN_1_1_MHZ, - PMIC_PIN_SIGNAL_LEVEL_HIGH, - PMIC_PIN_SIGNAL_LEVEL_HIGH - }; - - test_pmic_print_unity_testcase_info(9931, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - miscCtrlCfg.amuxOutRefOutEn = PMIC_LP8764X_REF_OUT_PIN_CFG_DISABLE; - } - - pmicStatus = Pmic_getMiscCtrlConfig(pPmicCoreHandle, &miscCtrlCfg_def); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_setMiscCtrlConfig(pPmicCoreHandle, miscCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getMiscCtrlConfig(pPmicCoreHandle, &miscCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(miscCtrlCfg.amuxOutRefOutEn, - miscCtrlCfg_rd.amuxOutRefOutEn); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - miscCtrlCfg.amuxOutRefOutEn = PMIC_TPS6594X_AMUX_OUT_PIN_CFG_ENABLE; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - miscCtrlCfg.amuxOutRefOutEn = PMIC_LP8764X_REF_OUT_PIN_CFG_ENABLE; - } - - pmicStatus = Pmic_setMiscCtrlConfig(pPmicCoreHandle, miscCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getMiscCtrlConfig(pPmicCoreHandle, &miscCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(miscCtrlCfg.amuxOutRefOutEn, - miscCtrlCfg_rd.amuxOutRefOutEn); - - pmicStatus = Pmic_setMiscCtrlConfig(pPmicCoreHandle, miscCtrlCfg_def); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getMiscCtrlConfig(pPmicCoreHandle, &miscCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(miscCtrlCfg_def.amuxOutRefOutEn, - miscCtrlCfg_rd.amuxOutRefOutEn); - - pmic_testResultUpdate_pass(9931, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setMiscCtrlConfig : Enable/Disable internal Clock Monitoring - */ -static void test_pmic_setMiscCtrlCfg_clkMonEn(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_MiscCtrlCfg_t miscCtrlCfg_rd = {PMIC_CFG_CLK_MON_EN_VALID_SHIFT,}; - Pmic_MiscCtrlCfg_t miscCtrlCfg_def = {PMIC_CFG_CLK_MON_EN_VALID_SHIFT,}; - Pmic_MiscCtrlCfg_t miscCtrlCfg = - { - PMIC_CFG_CLK_MON_EN_VALID_SHIFT, - PMIC_TPS6594X_AMUX_OUT_PIN_CFG_DISABLE, - PMIC_INTERNAL_CLK_MONITORING_CFG_DISABLE, - PMIC_SYNCCLKOUT_DISABLE, - PMIC_INTERNAL_RC_OSC, - PMIC_TPS6594X_SYNCCLKIN_1_1_MHZ, - PMIC_PIN_SIGNAL_LEVEL_HIGH, - PMIC_PIN_SIGNAL_LEVEL_HIGH - }; - - test_pmic_print_unity_testcase_info(9932, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_getMiscCtrlConfig(pPmicCoreHandle, &miscCtrlCfg_def); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_setMiscCtrlConfig(pPmicCoreHandle, miscCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getMiscCtrlConfig(pPmicCoreHandle, &miscCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(miscCtrlCfg.clkMonEn, - miscCtrlCfg_rd.clkMonEn); - - miscCtrlCfg.clkMonEn = PMIC_INTERNAL_CLK_MONITORING_CFG_ENABLE; - - pmicStatus = Pmic_setMiscCtrlConfig(pPmicCoreHandle, miscCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getMiscCtrlConfig(pPmicCoreHandle, &miscCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(miscCtrlCfg.clkMonEn, - miscCtrlCfg_rd.clkMonEn); - - pmicStatus = Pmic_setMiscCtrlConfig(pPmicCoreHandle, miscCtrlCfg_def); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getMiscCtrlConfig(pPmicCoreHandle, &miscCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(miscCtrlCfg_def.clkMonEn, - miscCtrlCfg_rd.clkMonEn); - - pmic_testResultUpdate_pass(9932, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setMiscCtrlConfig : Selects SYNCCLKOUT Frequency - */ -static void test_pmic_setMiscCtrlCfg_syncClkOutFreqSel(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_MiscCtrlCfg_t miscCtrlCfg_rd = {PMIC_CFG_SYNC_CLK_OUT_FREQ_SEL_VALID_SHIFT,}; - Pmic_MiscCtrlCfg_t miscCtrlCfg_def = {PMIC_CFG_SYNC_CLK_OUT_FREQ_SEL_VALID_SHIFT,}; - Pmic_MiscCtrlCfg_t miscCtrlCfg = - { - PMIC_CFG_SYNC_CLK_OUT_FREQ_SEL_VALID_SHIFT, - PMIC_TPS6594X_AMUX_OUT_PIN_CFG_DISABLE, - PMIC_INTERNAL_CLK_MONITORING_CFG_DISABLE, - PMIC_SYNCCLKOUT_DISABLE, - PMIC_INTERNAL_RC_OSC, - PMIC_TPS6594X_SYNCCLKIN_1_1_MHZ, - PMIC_PIN_SIGNAL_LEVEL_HIGH, - PMIC_PIN_SIGNAL_LEVEL_HIGH - }; - uint8_t freqSel; - - test_pmic_print_unity_testcase_info(9933, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_getMiscCtrlConfig(pPmicCoreHandle, &miscCtrlCfg_def); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - for(freqSel = PMIC_SYNCCLKOUT_DISABLE; - freqSel <= PMIC_SYNCCLKOUT_4_4_MHZ; - freqSel++) - { - miscCtrlCfg.syncClkOutFreqSel = freqSel; - - pmicStatus = Pmic_setMiscCtrlConfig(pPmicCoreHandle, miscCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getMiscCtrlConfig(pPmicCoreHandle, &miscCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(miscCtrlCfg.syncClkOutFreqSel, - miscCtrlCfg_rd.syncClkOutFreqSel); - } - - pmicStatus = Pmic_setMiscCtrlConfig(pPmicCoreHandle, miscCtrlCfg_def); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getMiscCtrlConfig(pPmicCoreHandle, &miscCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(miscCtrlCfg_def.syncClkOutFreqSel, - miscCtrlCfg_rd.syncClkOutFreqSel); - - pmic_testResultUpdate_pass(9933, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setMiscCtrlConfig : External clock Selection - */ -static void test_pmic_setMiscCtrlCfg_extClkSel(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_MiscCtrlCfg_t miscCtrlCfg_rd = {PMIC_CFG_EXT_CLK_SEL_VALID_SHIFT,}; - Pmic_MiscCtrlCfg_t miscCtrlCfg_def = {PMIC_CFG_EXT_CLK_SEL_VALID_SHIFT,}; - Pmic_MiscCtrlCfg_t miscCtrlCfg = - { - PMIC_CFG_EXT_CLK_SEL_VALID_SHIFT, - PMIC_TPS6594X_AMUX_OUT_PIN_CFG_DISABLE, - PMIC_INTERNAL_CLK_MONITORING_CFG_DISABLE, - PMIC_SYNCCLKOUT_DISABLE, - PMIC_INTERNAL_RC_OSC, - PMIC_TPS6594X_SYNCCLKIN_1_1_MHZ, - PMIC_PIN_SIGNAL_LEVEL_HIGH, - PMIC_PIN_SIGNAL_LEVEL_HIGH - }; - - test_pmic_print_unity_testcase_info(9934, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_getMiscCtrlConfig(pPmicCoreHandle, &miscCtrlCfg_def); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_setMiscCtrlConfig(pPmicCoreHandle, miscCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getMiscCtrlConfig(pPmicCoreHandle, &miscCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(miscCtrlCfg.extClkSel, - miscCtrlCfg_rd.extClkSel); - - miscCtrlCfg.extClkSel = PMIC_AUTOMATIC_EXT_CLK; - - pmicStatus = Pmic_setMiscCtrlConfig(pPmicCoreHandle, miscCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getMiscCtrlConfig(pPmicCoreHandle, &miscCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(miscCtrlCfg.extClkSel, - miscCtrlCfg_rd.extClkSel); - - pmicStatus = Pmic_setMiscCtrlConfig(pPmicCoreHandle, miscCtrlCfg_def); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getMiscCtrlConfig(pPmicCoreHandle, &miscCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(miscCtrlCfg_def.extClkSel, - miscCtrlCfg_rd.extClkSel); - - pmic_testResultUpdate_pass(9934, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setMiscCtrlConfig : Selects External clock Frequency - */ -static void test_pmic_setMiscCtrlCfg_syncClkInFreq(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_MiscCtrlCfg_t miscCtrlCfg_rd = {PMIC_CFG_SYNC_CLK_IN_FREQ_VALID_SHIFT,}; - Pmic_MiscCtrlCfg_t miscCtrlCfg_def = {PMIC_CFG_SYNC_CLK_IN_FREQ_VALID_SHIFT,}; - Pmic_MiscCtrlCfg_t miscCtrlCfg = - { - PMIC_CFG_SYNC_CLK_IN_FREQ_VALID_SHIFT, - PMIC_TPS6594X_AMUX_OUT_PIN_CFG_DISABLE, - PMIC_INTERNAL_CLK_MONITORING_CFG_DISABLE, - PMIC_SYNCCLKOUT_DISABLE, - PMIC_INTERNAL_RC_OSC, - PMIC_TPS6594X_SYNCCLKIN_1_1_MHZ, - PMIC_PIN_SIGNAL_LEVEL_HIGH, - PMIC_PIN_SIGNAL_LEVEL_HIGH - }; - uint8_t syncClkInFreq, maxVal; - - test_pmic_print_unity_testcase_info(9935, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_getMiscCtrlConfig(pPmicCoreHandle, &miscCtrlCfg_def); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - syncClkInFreq = PMIC_TPS6594X_SYNCCLKIN_1_1_MHZ; - maxVal = PMIC_TPS6594X_SYNCCLKIN_4_4_MHZ; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - syncClkInFreq = PMIC_LP8764X_SYNCCLKIN_1_1_MHZ; - maxVal = PMIC_LP8764X_SYNCCLKIN_8_8_MHZ; - } - - for(;syncClkInFreq <= maxVal;syncClkInFreq++) - { - pmicStatus = Pmic_setMiscCtrlConfig(pPmicCoreHandle, miscCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getMiscCtrlConfig(pPmicCoreHandle, &miscCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(miscCtrlCfg.syncClkInFreq, - miscCtrlCfg_rd.syncClkInFreq); - } - - pmicStatus = Pmic_setMiscCtrlConfig(pPmicCoreHandle, miscCtrlCfg_def); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getMiscCtrlConfig(pPmicCoreHandle, &miscCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(miscCtrlCfg_def.syncClkInFreq, - miscCtrlCfg_rd.syncClkInFreq); - - pmic_testResultUpdate_pass(9935, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setMiscCtrlConfig : Parameter validation for syncClkOutFreqSel - */ -static void test_pmic_setMiscCtrlCfgPrmValTest_syncClkOutFreqSel(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_MiscCtrlCfg_t miscCtrlCfg = - { - PMIC_CFG_SYNC_CLK_OUT_FREQ_SEL_VALID_SHIFT, - PMIC_TPS6594X_AMUX_OUT_PIN_CFG_DISABLE, - PMIC_INTERNAL_CLK_MONITORING_CFG_DISABLE, - 4U, - PMIC_INTERNAL_RC_OSC, - PMIC_TPS6594X_SYNCCLKIN_1_1_MHZ, - PMIC_PIN_SIGNAL_LEVEL_HIGH, - PMIC_PIN_SIGNAL_LEVEL_HIGH - }; - - test_pmic_print_unity_testcase_info(9936, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_setMiscCtrlConfig(pPmicCoreHandle, miscCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(9936, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setMiscCtrlConfig : Parameter validation for extClkSel - */ -static void test_pmic_setMiscCtrlCfgPrmValTest_extClkSel(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_MiscCtrlCfg_t miscCtrlCfg = - { - PMIC_CFG_EXT_CLK_SEL_VALID_SHIFT, - PMIC_TPS6594X_AMUX_OUT_PIN_CFG_DISABLE, - PMIC_INTERNAL_CLK_MONITORING_CFG_DISABLE, - PMIC_SYNCCLKOUT_DISABLE, - 2U, - PMIC_TPS6594X_SYNCCLKIN_1_1_MHZ, - PMIC_PIN_SIGNAL_LEVEL_HIGH, - PMIC_PIN_SIGNAL_LEVEL_HIGH - }; - - test_pmic_print_unity_testcase_info(9937, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_setMiscCtrlConfig(pPmicCoreHandle, miscCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(9937, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setMiscCtrlConfig : Parameter validation for syncClkInFreq - */ -static void test_pmic_setMiscCtrlCfgPrmValTest_syncClkInFreq(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_MiscCtrlCfg_t miscCtrlCfg = - { - PMIC_CFG_SYNC_CLK_IN_FREQ_VALID_SHIFT, - PMIC_TPS6594X_AMUX_OUT_PIN_CFG_DISABLE, - PMIC_INTERNAL_CLK_MONITORING_CFG_DISABLE, - PMIC_SYNCCLKOUT_DISABLE, - PMIC_INTERNAL_RC_OSC, - 3U, - PMIC_PIN_SIGNAL_LEVEL_HIGH, - PMIC_PIN_SIGNAL_LEVEL_HIGH - }; - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - miscCtrlCfg.syncClkInFreq = 4U; - } - test_pmic_print_unity_testcase_info(9938, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_setMiscCtrlConfig(pPmicCoreHandle, miscCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(9938, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setMiscCtrlConfig : Parameter validation for handle - */ -static void test_pmic_setMiscCtrlCfgPrmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_MiscCtrlCfg_t miscCtrlCfg = - { - PMIC_CFG_SYNC_CLK_OUT_FREQ_SEL_VALID_SHIFT, - PMIC_TPS6594X_AMUX_OUT_PIN_CFG_DISABLE, - PMIC_INTERNAL_CLK_MONITORING_CFG_DISABLE, - PMIC_SYNCCLKOUT_DISABLE, - PMIC_INTERNAL_RC_OSC, - PMIC_TPS6594X_SYNCCLKIN_1_1_MHZ, - PMIC_PIN_SIGNAL_LEVEL_HIGH, - PMIC_PIN_SIGNAL_LEVEL_HIGH - }; - - test_pmic_print_unity_testcase_info(9939, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_setMiscCtrlConfig(NULL, miscCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(9939, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getMiscCtrlConfig : Parameter validation for handle - */ -static void test_pmic_getMiscCtrlCfgPrmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_MiscCtrlCfg_t miscCtrlCfg_rd = {PMIC_CFG_AMUX_OUT_REF_OUT_EN_VALID_SHIFT,}; - - test_pmic_print_unity_testcase_info(9940, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_getMiscCtrlConfig(NULL, &miscCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(9940, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getMiscCtrlConfig : Parameter validation for pMiscCtrlCfg - */ -static void test_pmic_getMiscCtrlCfgPrmValTest_pMiscCtrlCfg(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(9941, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_getMiscCtrlConfig(pPmicCoreHandle, NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(9941, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setBatteryCtrlConfig : Enable/Disable Backup Battery Charging - */ -static void test_pmic_setBatteryCtrlCfg_chargingEn(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_BatteryCtrlCfg_t batteryCtrlCfg_rd = {PMIC_CFG_CHARGING_EN_VALID_SHIFT,}; - Pmic_BatteryCtrlCfg_t batteryCtrlCfg_def = {PMIC_CFG_CHARGING_EN_VALID_SHIFT,}; - Pmic_BatteryCtrlCfg_t batteryCtrlCfg = - { - PMIC_CFG_CHARGING_EN_VALID_SHIFT, - PMIC_TPS6594X_BB_CHARGINGING_CFG_DISABLE, - PMIC_TPS6594X_BB_ENDOF_CHARGE_VOLATGE_2_5_V, - PMIC_TPS6594X_BB_CHARGING_CURRENT_100 - }; - - test_pmic_print_unity_testcase_info(9942, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(9942, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_getBatteryCtrlConfig(pPmicCoreHandle, &batteryCtrlCfg_def); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_setBatteryCtrlConfig(pPmicCoreHandle, batteryCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getBatteryCtrlConfig(pPmicCoreHandle, &batteryCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(batteryCtrlCfg.chargingEn, - batteryCtrlCfg_rd.chargingEn); - - - batteryCtrlCfg.chargingEn = PMIC_TPS6594X_BB_CHARGINGING_CFG_ENABLE; - - pmicStatus = Pmic_setBatteryCtrlConfig(pPmicCoreHandle, batteryCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getBatteryCtrlConfig(pPmicCoreHandle, &batteryCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(batteryCtrlCfg.chargingEn, - batteryCtrlCfg_rd.chargingEn); - - pmicStatus = Pmic_setBatteryCtrlConfig(pPmicCoreHandle, batteryCtrlCfg_def); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getBatteryCtrlConfig(pPmicCoreHandle, &batteryCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(batteryCtrlCfg_def.chargingEn, - batteryCtrlCfg_rd.chargingEn); - - pmic_testResultUpdate_pass(9942, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setBatteryCtrlConfig : Configure Backup Battery configuration - * for End of charge Voltage - */ -static void test_pmic_setBatteryCtrlCfg_endOfChargeVoltage(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_BatteryCtrlCfg_t batteryCtrlCfg_rd = {PMIC_CFG_END_OF_CHARGE_VOLTAGE_VALID_SHIFT,}; - Pmic_BatteryCtrlCfg_t batteryCtrlCfg_def = {PMIC_CFG_END_OF_CHARGE_VOLTAGE_VALID_SHIFT,}; - Pmic_BatteryCtrlCfg_t batteryCtrlCfg = - { - PMIC_CFG_END_OF_CHARGE_VOLTAGE_VALID_SHIFT, - PMIC_TPS6594X_BB_CHARGINGING_CFG_DISABLE, - PMIC_TPS6594X_BB_ENDOF_CHARGE_VOLATGE_2_5_V, - PMIC_TPS6594X_BB_CHARGING_CURRENT_100 - }; - uint8_t endOfChargeVoltVal; - - test_pmic_print_unity_testcase_info(9943, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(9943, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_getBatteryCtrlConfig(pPmicCoreHandle, &batteryCtrlCfg_def); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - for(endOfChargeVoltVal = PMIC_TPS6594X_BB_ENDOF_CHARGE_VOLATGE_2_5_V; - endOfChargeVoltVal <= PMIC_TPS6594X_BB_ENDOF_CHARGE_VOLATGE_3_3_V; - endOfChargeVoltVal++) - { - batteryCtrlCfg.endOfChargeVoltage = endOfChargeVoltVal; - - pmicStatus = Pmic_setBatteryCtrlConfig(pPmicCoreHandle, batteryCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getBatteryCtrlConfig(pPmicCoreHandle, - &batteryCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(batteryCtrlCfg.endOfChargeVoltage, - batteryCtrlCfg_rd.endOfChargeVoltage); - } - - pmicStatus = Pmic_setBatteryCtrlConfig(pPmicCoreHandle, batteryCtrlCfg_def); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getBatteryCtrlConfig(pPmicCoreHandle, &batteryCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(batteryCtrlCfg_def.endOfChargeVoltage, - batteryCtrlCfg_rd.endOfChargeVoltage); - - pmic_testResultUpdate_pass(9943, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setBatteryCtrlConfig : Configure Backup Battery charging - * current value - */ -static void test_pmic_setBatteryCtrlCfg_chargeCurrent(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_BatteryCtrlCfg_t batteryCtrlCfg_rd = {PMIC_CFG_CHARGE_CURRENT_VALID_SHIFT,}; - Pmic_BatteryCtrlCfg_t batteryCtrlCfg_def = {PMIC_CFG_CHARGE_CURRENT_VALID_SHIFT,}; - Pmic_BatteryCtrlCfg_t batteryCtrlCfg = - { - PMIC_CFG_CHARGE_CURRENT_VALID_SHIFT, - PMIC_TPS6594X_BB_CHARGINGING_CFG_DISABLE, - PMIC_TPS6594X_BB_ENDOF_CHARGE_VOLATGE_2_5_V, - PMIC_TPS6594X_BB_CHARGING_CURRENT_100 - }; - uint8_t chargeCurrentVal; - - test_pmic_print_unity_testcase_info(9944, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(9944, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_getBatteryCtrlConfig(pPmicCoreHandle, &batteryCtrlCfg_def); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - for(chargeCurrentVal = PMIC_TPS6594X_BB_CHARGING_CURRENT_100; - chargeCurrentVal <= PMIC_TPS6594X_BB_CHARGING_CURRENT_500; - chargeCurrentVal++) - { - pmicStatus = Pmic_setBatteryCtrlConfig(pPmicCoreHandle, batteryCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getBatteryCtrlConfig(pPmicCoreHandle, - &batteryCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(batteryCtrlCfg.chargeCurrent, - batteryCtrlCfg_rd.chargeCurrent); - } - - pmicStatus = Pmic_setBatteryCtrlConfig(pPmicCoreHandle, batteryCtrlCfg_def); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getBatteryCtrlConfig(pPmicCoreHandle, &batteryCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(batteryCtrlCfg_def.chargeCurrent, - batteryCtrlCfg_rd.chargeCurrent); - - pmic_testResultUpdate_pass(9944, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setBatteryCtrlConfig : Parameter validation for endOfChargeVoltage - */ -static void test_pmic_setBatteryCtrlCfgPrmValTest_endOfChargeVoltage(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_BatteryCtrlCfg_t batteryCtrlCfg = - { - PMIC_CFG_END_OF_CHARGE_VOLTAGE_VALID_SHIFT, - PMIC_TPS6594X_BB_CHARGINGING_CFG_DISABLE, - 4U, - PMIC_TPS6594X_BB_CHARGING_CURRENT_100 - }; - - test_pmic_print_unity_testcase_info(9945, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(9945, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_setBatteryCtrlConfig(pPmicCoreHandle, batteryCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(9945, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setBatteryCtrlConfig : Parameter validation for chargeCurrent - */ -static void test_pmic_setBatteryCtrlCfgPrmValTest_chargeCurrent(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_BatteryCtrlCfg_t batteryCtrlCfg = - { - PMIC_CFG_CHARGE_CURRENT_VALID_SHIFT, - PMIC_TPS6594X_BB_CHARGINGING_CFG_DISABLE, - PMIC_TPS6594X_BB_ENDOF_CHARGE_VOLATGE_2_5_V, - 2U - }; - - test_pmic_print_unity_testcase_info(9946, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(9946, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_setBatteryCtrlConfig(pPmicCoreHandle, batteryCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(9946, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setBatteryCtrlConfig : Parameter validation for handle - */ -static void test_pmic_setBatteryCtrlCfgPrmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_BatteryCtrlCfg_t batteryCtrlCfg = - { - PMIC_CFG_END_OF_CHARGE_VOLTAGE_VALID_SHIFT, - PMIC_TPS6594X_BB_CHARGINGING_CFG_DISABLE, - PMIC_TPS6594X_BB_ENDOF_CHARGE_VOLATGE_2_5_V, - PMIC_TPS6594X_BB_CHARGING_CURRENT_100 - }; - - test_pmic_print_unity_testcase_info(9948, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(9948, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_setBatteryCtrlConfig(NULL, batteryCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(9948, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getBatteryCtrlConfig : Parameter validation for handle - */ -static void test_pmic_getBatteryCtrlCfgPrmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_BatteryCtrlCfg_t batteryCtrlCfg_rd = {PMIC_CFG_CHARGING_EN_VALID_SHIFT,}; - - test_pmic_print_unity_testcase_info(9949, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(9949, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_getBatteryCtrlConfig(NULL, &batteryCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(9949, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getBatteryCtrlConfig : Parameter validation for pBatteryCtrlCfg - */ -static void test_pmic_getBatteryCtrlCfgPrmValTest_pBatteryCtrlCfg(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(9950, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(9950, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_getBatteryCtrlConfig(pPmicCoreHandle, NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(9950, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getCommonCtrlStat : Get the status of nIntPin - */ -static void test_pmic_getCommonCtrlStat_nIntPin(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CommonCtrlStat_t commonCtrlStat_rd = {PMIC_CFG_NINT_PIN_STAT_VALID_SHIFT,}; - - test_pmic_print_unity_testcase_info(9951, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_getCommonCtrlStat(pPmicCoreHandle, &commonCtrlStat_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(PMIC_PIN_SIGNAL_LEVEL_LOW, - commonCtrlStat_rd.nIntPin); - - pmic_testResultUpdate_pass(9951, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getCommonCtrlStat : Get the status of spmiLpmStat - */ -static void test_pmic_getCommonCtrlStat_spmiLpmStat(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CommonCtrlStat_t commonCtrlStat_rd = {PMIC_CFG_SPMI_LPM_STAT_VALID_SHIFT,}; - - test_pmic_print_unity_testcase_info(9952, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_getCommonCtrlStat(pPmicCoreHandle, &commonCtrlStat_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(PMIC_SPMI_LPM_MODE_CTRL_CFG_DISABLED, - commonCtrlStat_rd.spmiLpmStat); - - pmic_testResultUpdate_pass(9952, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getCommonCtrlStat : Get the status of forceEnDrvLowStat - */ -static void test_pmic_getCommonCtrlStat_forceEnDrvLowStat(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CommonCtrlStat_t commonCtrlStat_rd = {PMIC_CFG_FORCE_ENABLE_DRV_LOW_STAT_VALID_SHIFT,}; - - test_pmic_print_unity_testcase_info(9953, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_getCommonCtrlStat(pPmicCoreHandle, &commonCtrlStat_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(PMIC_ENABLE_DRV_I2C_SPI_CONFIG_ENABLE, - commonCtrlStat_rd.forceEnDrvLowStat); - - pmic_testResultUpdate_pass(9953, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getCommonCtrlStat : Get the status of bbEndOfChargeIndication - */ -static void test_pmic_getCommonCtrlStat_bbEndOfChargeIndication(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CommonCtrlStat_t commonCtrlStat_rd = {PMIC_CFG_BB_EOC_INDICATION_STAT_VALID_SHIFT,}; - - test_pmic_print_unity_testcase_info(9954, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(9954, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - } - pmicStatus = Pmic_getCommonCtrlStat(pPmicCoreHandle, &commonCtrlStat_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(PMIC_TPS6594X_BB_EOC_STATUS_NOT_ENABLED, - commonCtrlStat_rd.bbEndOfChargeIndication); - - pmic_testResultUpdate_pass(9954, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getCommonCtrlStat : Get the status of regLockStat - */ -static void test_pmic_getCommonCtrlStat_regLockStat(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CommonCtrlStat_t commonCtrlStat_rd = {PMIC_CFG_REGISTER_LOCK_STAT_VALID_SHIFT,}; - - test_pmic_print_unity_testcase_info(9955, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_getCommonCtrlStat(pPmicCoreHandle, &commonCtrlStat_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(PMIC_REGISTER_STATUS_UNLOCK, - commonCtrlStat_rd.regLockStat); - - pmic_testResultUpdate_pass(9955, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getCommonCtrlStat : Get the status of extClkValidity - */ -static void test_pmic_getCommonCtrlStat_extClkValidity(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CommonCtrlStat_t commonCtrlStat_rd = {PMIC_CFG_EXT_CLK_VALIDITY_STAT_VALID_SHIFT,}; - - test_pmic_print_unity_testcase_info(9956, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_getCommonCtrlStat(pPmicCoreHandle, &commonCtrlStat_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_log("\r\n extClkValidity status %d", commonCtrlStat_rd.extClkValidity); - - pmic_testResultUpdate_pass(9956, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getCommonCtrlStat : Get the status of startupPin - */ -static void test_pmic_getCommonCtrlStat_startupPin(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CommonCtrlStat_t commonCtrlStat_rd = {PMIC_CFG_STARTUP_PIN_STAT_VALID_SHIFT,}; - - test_pmic_print_unity_testcase_info(9957, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_getCommonCtrlStat(pPmicCoreHandle, &commonCtrlStat_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(PMIC_PIN_SIGNAL_LEVEL_HIGH, - commonCtrlStat_rd.startupPin); - - pmic_testResultUpdate_pass(9957, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getCommonCtrlStat : Get the status of enDrvPin - */ -static void test_pmic_getCommonCtrlStat_enDrvPin(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CommonCtrlStat_t commonCtrlStat_rd = {PMIC_CFG_EN_DRV_PIN_STAT_VALID_SHIFT,}; - - test_pmic_print_unity_testcase_info(9958, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_getCommonCtrlStat(pPmicCoreHandle, &commonCtrlStat_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(PMIC_PIN_SIGNAL_LEVEL_LOW, - commonCtrlStat_rd.enDrvPin); - - pmic_testResultUpdate_pass(9958, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getCommonCtrlStat : Get the status of nRstOutSocPin - */ -static void test_pmic_getCommonCtrlStat_nRstOutSocPin(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CommonCtrlStat_t commonCtrlStat_rd = {PMIC_CFG_NRSTOUTSOC_PIN_STAT_VALID_SHIFT,}; - - test_pmic_print_unity_testcase_info(9959, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_getCommonCtrlStat(pPmicCoreHandle, &commonCtrlStat_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(PMIC_PIN_SIGNAL_LEVEL_LOW, - commonCtrlStat_rd.nRstOutSocPin); - - pmic_testResultUpdate_pass(9959, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getCommonCtrlStat : Get the status of nRstOutPin - */ -static void test_pmic_getCommonCtrlStat_nRstOutPin(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CommonCtrlStat_t commonCtrlStat_rd = {PMIC_CFG_NRSTOUT_PIN_STAT_VALID_SHIFT,}; - - test_pmic_print_unity_testcase_info(9960, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_getCommonCtrlStat(pPmicCoreHandle, &commonCtrlStat_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(PMIC_PIN_SIGNAL_LEVEL_LOW, - commonCtrlStat_rd.nRstOutPin); - - pmic_testResultUpdate_pass(9960, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getCommonCtrlStat : Parameter validation for handle - */ -static void test_pmic_getCommonCtrlStatPrmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CommonCtrlStat_t commonCtrlStat_rd = {PMIC_CFG_NRSTOUT_PIN_STAT_VALID_SHIFT,}; - - test_pmic_print_unity_testcase_info(9961, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_getCommonCtrlStat(NULL, &commonCtrlStat_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(9961, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getCommonCtrlStat : Parameter validation for pCommonCtrlStat - */ -static void test_pmic_getCommonCtrlStatPrmValTest_pCommonCtrlStat(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(9962, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_getCommonCtrlStat(pPmicCoreHandle, NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(9962, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getI2CSpeed : Parameter validation for handle - */ -static void test_pmic_getI2CSpeedPrmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t i2c1Speed, i2c2Speed; - - test_pmic_print_unity_testcase_info(9963, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_getI2CSpeed(NULL, &i2c1Speed, &i2c2Speed); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(9963, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - - -/*! - * \brief Pmic_getI2CSpeed : Parameter validation for pI2C1Speed - */ -static void test_pmic_getI2CSpeedPrmValTest_pI2C1Speed(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t i2c2Speed; - - test_pmic_print_unity_testcase_info(9964, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_getI2CSpeed(pPmicCoreHandle, NULL, &i2c2Speed); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(9964, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getI2CSpeed : Parameter validation for pI2C2Speed - */ -static void test_pmic_getI2CSpeedPrmValTest_pI2C2Speed(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t i2c1Speed; - - test_pmic_print_unity_testcase_info(9965, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_getI2CSpeed(pPmicCoreHandle, &i2c1Speed, NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(9965, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getI2CSpeed : Get I2C1 or I2C2 Speed value - */ -static void test_pmic_getI2CSpeed(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t i2c1Speed, i2c2Speed; - - test_pmic_print_unity_testcase_info(9966, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - if(PMIC_INTF_SPI == pPmicCoreHandle->commMode) - { - pmic_testResultUpdate_ignore(9966, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_getI2CSpeed(pPmicCoreHandle, &i2c1Speed, &i2c2Speed); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(PMIC_I2C_STANDARD_MODE, i2c1Speed); - - if(pPmicCoreHandle->commMode == PMIC_INTF_DUAL_I2C) - { - TEST_ASSERT_EQUAL(PMIC_I2C_STANDARD_MODE, i2c2Speed); - } - - pmic_testResultUpdate_pass(9966, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getDeviceInfo : Get the Device Information - */ -static void test_pmic_getDeviceInfo(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_DeviceInfo_t deviceInfo; - - test_pmic_print_unity_testcase_info(9967, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_getDeviceInfo(pPmicCoreHandle, &deviceInfo); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - pmic_log("\r\n deviceID 0x%x nvmID 0x%x nvmRev 0x%x siliconRev 0x%x customNvmID 0x%x\r\n", \ - deviceInfo.deviceID, deviceInfo.nvmID, deviceInfo.nvmRev, deviceInfo.siliconRev, deviceInfo.customNvmID); - } - else - { - pmic_log("\r\n deviceID 0x%x nvmID 0x%x nvmRev 0x%x siliconRev 0x%x \r\n", \ - deviceInfo.deviceID, deviceInfo.nvmID, deviceInfo.nvmRev, deviceInfo.siliconRev); - } - - pmic_testResultUpdate_pass(9967, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getDeviceInfo : Parameter validation for handle - */ -static void test_pmic_getDeviceInfoPrmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_DeviceInfo_t deviceInfo; - - test_pmic_print_unity_testcase_info(9968, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_getDeviceInfo(NULL, &deviceInfo); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(9968, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getDeviceInfo : Parameter validation for pDeviceInfo - */ -static void test_pmic_getDeviceInfoPrmValTest_pDeviceInfo(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(9969, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_getDeviceInfo(pPmicCoreHandle, NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(9969, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getPinValue : Get the status of EN_DRV Pin Value - */ -static void test_pmic_getPinValue_enableDrv(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t pinValue; - - test_pmic_print_unity_testcase_info(9970, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_getPinValue(pPmicCoreHandle, - PMIC_PIN_TYPE_EN_DRV, - &pinValue); - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(PMIC_PIN_SIGNAL_LEVEL_LOW, pinValue); - - pmic_testResultUpdate_pass(9970, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getPinValue : Get the status of NRSTOUT_SOC Pin Value - */ -static void test_pmic_getPinValue_nRstOutSoc(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t pinValue; - - test_pmic_print_unity_testcase_info(9971, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_getPinValue(pPmicCoreHandle, - PMIC_PIN_TYPE_NRSTOUT_SOC, - &pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(PMIC_PIN_SIGNAL_LEVEL_HIGH, - pinValue); - - pmic_testResultUpdate_pass(9971, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getPinValue : Get the status of NRSTOUT Pin Value - */ -static void test_pmic_getPinValue_nRstOut(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t pinValue; - - test_pmic_print_unity_testcase_info(9972, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_getPinValue(pPmicCoreHandle, - PMIC_PIN_TYPE_NRSTOUT, - &pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(PMIC_PIN_SIGNAL_LEVEL_HIGH, - pinValue); - - pmic_testResultUpdate_pass(9972, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getPinValue : Parameter validation for pinType - */ -static void test_pmic_getPinValuePrmValTest_pinType(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t pinValue; - uint8_t pinType = 3U; - - test_pmic_print_unity_testcase_info(9973, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_getPinValue(pPmicCoreHandle, - pinType, - &pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - - pmic_testResultUpdate_pass(9973, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getPinValue : Parameter validation for handle - */ -static void test_pmic_getPinValuePrmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t pinValue; - - test_pmic_print_unity_testcase_info(9974, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_getPinValue(NULL, - PMIC_PIN_TYPE_NRSTOUT, - &pinValue); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - - pmic_testResultUpdate_pass(9974, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getPinValue : Parameter validation for pPinValue - */ -static void test_pmic_getPinValuePrmValTest_pPinValue(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(9975, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_getPinValue(pPmicCoreHandle, - PMIC_PIN_TYPE_NRSTOUT, - NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, pmicStatus); - - - pmic_testResultUpdate_pass(9975, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setMiscCtrlConfig : Configure NRSTOUT_SOC Signal - */ -static void test_pmic_setMiscCtrlCfg_nRstOutSocSignal(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_MiscCtrlCfg_t miscCtrlCfg_rd = {PMIC_CFG_NRSTOUT_SOC_VALID_SHIFT,}; - Pmic_MiscCtrlCfg_t miscCtrlCfg = - { - PMIC_CFG_NRSTOUT_SOC_VALID_SHIFT, - PMIC_TPS6594X_AMUX_OUT_PIN_CFG_DISABLE, - PMIC_INTERNAL_CLK_MONITORING_CFG_DISABLE, - PMIC_SYNCCLKOUT_DISABLE, - PMIC_INTERNAL_RC_OSC, - PMIC_TPS6594X_SYNCCLKIN_1_1_MHZ, - PMIC_PIN_SIGNAL_LEVEL_HIGH, - PMIC_PIN_SIGNAL_LEVEL_HIGH - }; - int8_t num = 0; - - test_pmic_print_unity_testcase_info(9978, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - -#if defined(SOC_J721E) - if((PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev) && - (PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType)) - { - /* Ignore the test on J721E PG1.0 Not planning to debug this issue as - the same test is working fine for J721E PG2.0 */ - pmic_testResultUpdate_ignore(9978, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - } -#endif - - pmicStatus = Pmic_setMiscCtrlConfig(pPmicCoreHandle, miscCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getMiscCtrlConfig(pPmicCoreHandle, &miscCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(miscCtrlCfg.nRstOutSocSignal, - miscCtrlCfg_rd.nRstOutSocSignal); - -#if defined(SOC_J721E) - pmic_log("\r\n Probe TP134 and it should be High"); -#endif -#if defined(SOC_J7200) - pmic_log("\r\n Probe TP46 and it should be High"); -#endif - - pmic_log("\r\n Enter 1 to continue"); - UART_scanFmt("%d", &num); - - pmic_log("\r\n SOC will go to reset\n"); -#if defined(SOC_J721E) - pmic_log("\r\n Probe TP134 and it should be Low"); -#endif -#if defined(SOC_J7200) - pmic_log("\r\n Probe TP46 and it should be Low"); -#endif - - miscCtrlCfg.nRstOutSocSignal = PMIC_PIN_SIGNAL_LEVEL_LOW; - pmicStatus = Pmic_setMiscCtrlConfig(pPmicCoreHandle, miscCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getMiscCtrlConfig(pPmicCoreHandle, &miscCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(miscCtrlCfg.nRstOutSocSignal, - miscCtrlCfg_rd.nRstOutSocSignal); - - pmic_testResultUpdate_pass(9978, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setMiscCtrlConfig : Configure NRSTOUT Signal - */ -static void test_pmic_setMiscCtrlCfg_nRstOutSignal(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_MiscCtrlCfg_t miscCtrlCfg_rd = {PMIC_CFG_NRSTOUT_VALID_SHIFT,}; - Pmic_MiscCtrlCfg_t miscCtrlCfg = - { - PMIC_CFG_NRSTOUT_VALID_SHIFT, - PMIC_TPS6594X_AMUX_OUT_PIN_CFG_DISABLE, - PMIC_INTERNAL_CLK_MONITORING_CFG_DISABLE, - PMIC_SYNCCLKOUT_DISABLE, - PMIC_INTERNAL_RC_OSC, - PMIC_TPS6594X_SYNCCLKIN_1_1_MHZ, - PMIC_PIN_SIGNAL_LEVEL_HIGH, - PMIC_PIN_SIGNAL_LEVEL_HIGH - }; - int8_t num = 0; - - test_pmic_print_unity_testcase_info(9979, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_setMiscCtrlConfig(pPmicCoreHandle, miscCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getMiscCtrlConfig(pPmicCoreHandle, &miscCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(miscCtrlCfg.nRstOutSignal, - miscCtrlCfg_rd.nRstOutSignal); - -#if defined(SOC_J721E) - pmic_log("\r\n Probe TP133 and it should be High"); -#endif -#if defined(SOC_J7200) - pmic_log("\r\n Probe TP29 and it should be High"); -#endif - - pmic_log("\r\n Enter 1 to continue"); - UART_scanFmt("%d", &num); - - pmic_log("\r\n MCU will go to reset\n"); -#if defined(SOC_J721E) - pmic_log("\r\n Probe TP133 and it should be Low"); -#endif -#if defined(SOC_J7200) - pmic_log("\r\n Probe TP29 and it should be Low"); -#endif - - miscCtrlCfg.nRstOutSignal = PMIC_PIN_SIGNAL_LEVEL_LOW; - pmicStatus = Pmic_setMiscCtrlConfig(pPmicCoreHandle, miscCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getMiscCtrlConfig(pPmicCoreHandle, &miscCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(miscCtrlCfg.nRstOutSignal, - miscCtrlCfg_rd.nRstOutSignal); - - pmic_testResultUpdate_pass(9979, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setMiscCtrlConfig : Parameter validation for NRSTOUT_SOC Signal - */ -static void test_pmic_setMiscCtrlCfgPrmValTest_nRstOutSocSignal(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_MiscCtrlCfg_t miscCtrlCfg = - { - PMIC_CFG_NRSTOUT_SOC_VALID_SHIFT, - PMIC_TPS6594X_AMUX_OUT_PIN_CFG_DISABLE, - PMIC_INTERNAL_CLK_MONITORING_CFG_DISABLE, - PMIC_SYNCCLKOUT_DISABLE, - PMIC_INTERNAL_RC_OSC, - PMIC_TPS6594X_SYNCCLKIN_1_1_MHZ, - 2U, - PMIC_PIN_SIGNAL_LEVEL_HIGH - }; - - test_pmic_print_unity_testcase_info(9980, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_setMiscCtrlConfig(pPmicCoreHandle, miscCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(9980, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setMiscCtrlConfig : Parameter validation for NRSTOUT Signal - */ -static void test_pmic_setMiscCtrlCfgPrmValTest_nRstOutSignal(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_MiscCtrlCfg_t miscCtrlCfg = - { - PMIC_CFG_NRSTOUT_VALID_SHIFT, - PMIC_TPS6594X_AMUX_OUT_PIN_CFG_DISABLE, - PMIC_INTERNAL_CLK_MONITORING_CFG_DISABLE, - PMIC_SYNCCLKOUT_DISABLE, - PMIC_INTERNAL_RC_OSC, - PMIC_TPS6594X_SYNCCLKIN_1_1_MHZ, - PMIC_PIN_SIGNAL_LEVEL_HIGH, - 2U - }; - - test_pmic_print_unity_testcase_info(9981, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_setMiscCtrlConfig(pPmicCoreHandle, miscCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(9981, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getMiscCtrlConfig : Get the status of NRSTOUT_SOC Signal - */ -static void test_pmic_getMiscCtrlCfg_nRstOutSocSignal(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_MiscCtrlCfg_t miscCtrlCfg_rd = {PMIC_CFG_NRSTOUT_SOC_VALID_SHIFT,}; - - test_pmic_print_unity_testcase_info(9982, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_getMiscCtrlConfig(pPmicCoreHandle, &miscCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(PMIC_PIN_SIGNAL_LEVEL_HIGH, - miscCtrlCfg_rd.nRstOutSocSignal); - - pmic_testResultUpdate_pass(9982, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getMiscCtrlConfig : Get the status of NRSTOUT Signal - */ -static void test_pmic_getMiscCtrlCfg_nRstOutSignal(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_MiscCtrlCfg_t miscCtrlCfg_rd = {PMIC_CFG_NRSTOUT_VALID_SHIFT,}; - - test_pmic_print_unity_testcase_info(9983, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_getMiscCtrlConfig(pPmicCoreHandle, &miscCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(PMIC_PIN_SIGNAL_LEVEL_HIGH, - miscCtrlCfg_rd.nRstOutSignal); - - pmic_testResultUpdate_pass(9983, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setCommonCtrlConfig : Configure EN_DRV Signal */ -static void test_pmic_setCommonCtrlCfg_enDrv(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CommonCtrlCfg_t commonCtrlCfg_rd = {PMIC_CFG_ENABLE_DRV_VALID_SHIFT,}; - Pmic_CommonCtrlCfg_t commonCtrlCfg_def = {PMIC_CFG_ENABLE_DRV_VALID_SHIFT,}; - Pmic_CommonCtrlCfg_t commonCtrlCfg = - { - PMIC_CFG_ENABLE_DRV_VALID_SHIFT, - PMIC_SPREAD_SPECTRUM_CFG_ENABLE, - PMIC_LP8764X_SKIP_EEPROM_DEF_LD_TO_CONF_OTHER_REGS_DISABLED, - PMIC_TPS6594X_EEPROM_DEFAULTS_LOAD_TO_RTC_DOMAIN_BITS, - PMIC_PIN_SIGNAL_LEVEL_HIGH, - PMIC_REGISTER_UNLOCK, - PMIC_SPREAD_SPECTRUM_MODULATION_DEPTH_NONE - }; - uint8_t pinValue; - Pmic_IrqStatus_t errStat = {0U}; - int8_t num = 0; - - test_pmic_print_unity_testcase_info(9984, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_getCommonCtrlConfig(pPmicCoreHandle, &commonCtrlCfg_def); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmEnable(pPmicCoreHandle, PMIC_ESM_MODE_MCU, PMIC_ESM_DISABLE); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmEnable(pPmicCoreHandle, PMIC_ESM_MODE_SOC, PMIC_ESM_DISABLE); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_wdgDisable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_setCommonCtrlConfig(pPmicCoreHandle, commonCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getCommonCtrlConfig(pPmicCoreHandle, &commonCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(commonCtrlCfg.enDrv, commonCtrlCfg_rd.enDrv); - - pmicStatus = Pmic_getPinValue(pPmicCoreHandle, - PMIC_PIN_TYPE_EN_DRV, - &pinValue); - TEST_ASSERT_EQUAL(commonCtrlCfg.enDrv, pinValue); - -#if defined(SOC_J721E) - pmic_log("\r\n Probe TP105 and it should be High"); -#endif -#if defined(SOC_J7200) - pmic_log("\r\n Probe TP64 and it should be High"); -#endif - - pmic_log("\r\n Enter 1 to continue"); - UART_scanFmt("%d", &num); - - commonCtrlCfg.enDrv = PMIC_PIN_SIGNAL_LEVEL_LOW; - pmicStatus = Pmic_setCommonCtrlConfig(pPmicCoreHandle, commonCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getCommonCtrlConfig(pPmicCoreHandle, &commonCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(commonCtrlCfg.enDrv, commonCtrlCfg_rd.enDrv); - - pmicStatus = Pmic_getPinValue(pPmicCoreHandle, - PMIC_PIN_TYPE_EN_DRV, - &pinValue); - TEST_ASSERT_EQUAL(commonCtrlCfg.enDrv, pinValue); - -#if defined(SOC_J721E) - pmic_log("\r\n Probe TP105 and it should be Low"); -#endif -#if defined(SOC_J7200) - pmic_log("\r\n Probe TP64 and it should be Low"); -#endif - - pmic_log("\r\n Enter 1 to continue"); - UART_scanFmt("%d", &num); - - pmicStatus = Pmic_setCommonCtrlConfig(pPmicCoreHandle, commonCtrlCfg_def); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getCommonCtrlConfig(pPmicCoreHandle, &commonCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(commonCtrlCfg_def.enDrv, commonCtrlCfg_rd.enDrv); - - pmicStatus = Pmic_getPinValue(pPmicCoreHandle, - PMIC_PIN_TYPE_EN_DRV, - &pinValue); - TEST_ASSERT_EQUAL(commonCtrlCfg_def.enDrv, pinValue); - - pmic_testResultUpdate_pass(9984, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setCommonCtrlConfig : Configure EN_DRV Signal - code coverage */ -static void test_pmic_setCommonCtrlCfg_enDrv_codecoverage(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CommonCtrlCfg_t commonCtrlCfg_rd = {PMIC_CFG_ENABLE_DRV_VALID_SHIFT,}; - Pmic_CommonCtrlCfg_t commonCtrlCfg_def = {PMIC_CFG_ENABLE_DRV_VALID_SHIFT,}; - Pmic_CommonCtrlCfg_t commonCtrlCfg = - { - PMIC_CFG_ENABLE_DRV_VALID_SHIFT, - PMIC_SPREAD_SPECTRUM_CFG_ENABLE, - PMIC_LP8764X_SKIP_EEPROM_DEF_LD_TO_CONF_OTHER_REGS_DISABLED, - PMIC_TPS6594X_EEPROM_DEFAULTS_LOAD_TO_RTC_DOMAIN_BITS, - PMIC_PIN_SIGNAL_LEVEL_HIGH, - PMIC_REGISTER_UNLOCK, - PMIC_SPREAD_SPECTRUM_MODULATION_DEPTH_NONE - }; - uint8_t pinValue; - Pmic_IrqStatus_t errStat = {0U}; - - test_pmic_print_unity_testcase_info(10786, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_getCommonCtrlConfig(pPmicCoreHandle, &commonCtrlCfg_def); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmEnable(pPmicCoreHandle, PMIC_ESM_MODE_MCU, PMIC_ESM_DISABLE); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmEnable(pPmicCoreHandle, PMIC_ESM_MODE_SOC, PMIC_ESM_DISABLE); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_wdgDisable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_setCommonCtrlConfig(pPmicCoreHandle, commonCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getCommonCtrlConfig(pPmicCoreHandle, &commonCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(commonCtrlCfg.enDrv, commonCtrlCfg_rd.enDrv); - - pmicStatus = Pmic_getPinValue(pPmicCoreHandle, - PMIC_PIN_TYPE_EN_DRV, - &pinValue); - TEST_ASSERT_EQUAL(commonCtrlCfg.enDrv, pinValue); - - commonCtrlCfg.enDrv = PMIC_PIN_SIGNAL_LEVEL_LOW; - pmicStatus = Pmic_setCommonCtrlConfig(pPmicCoreHandle, commonCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getCommonCtrlConfig(pPmicCoreHandle, &commonCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(commonCtrlCfg.enDrv, commonCtrlCfg_rd.enDrv); - - pmicStatus = Pmic_getPinValue(pPmicCoreHandle, - PMIC_PIN_TYPE_EN_DRV, - &pinValue); - TEST_ASSERT_EQUAL(commonCtrlCfg.enDrv, pinValue); - - pmicStatus = Pmic_setCommonCtrlConfig(pPmicCoreHandle, commonCtrlCfg_def); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getCommonCtrlConfig(pPmicCoreHandle, &commonCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(commonCtrlCfg_def.enDrv, commonCtrlCfg_rd.enDrv); - - pmicStatus = Pmic_getPinValue(pPmicCoreHandle, - PMIC_PIN_TYPE_EN_DRV, - &pinValue); - TEST_ASSERT_EQUAL(commonCtrlCfg_def.enDrv, pinValue); - - pmic_testResultUpdate_pass(10786, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setCommonCtrlConfig : Parameter validation for EN_DRV Signal - */ -static void test_pmic_setCommonCtrlCfgPrmValTest_enDrv(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CommonCtrlCfg_t commonCtrlCfg = - { - PMIC_CFG_ENABLE_DRV_VALID_SHIFT, - PMIC_SPREAD_SPECTRUM_CFG_ENABLE, - PMIC_LP8764X_SKIP_EEPROM_DEF_LD_TO_CONF_OTHER_REGS_DISABLED, - PMIC_TPS6594X_EEPROM_DEFAULTS_LOAD_TO_RTC_DOMAIN_BITS, - 2U, - PMIC_REGISTER_UNLOCK, - PMIC_SPREAD_SPECTRUM_MODULATION_DEPTH_NONE - }; - - test_pmic_print_unity_testcase_info(9985, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_setCommonCtrlConfig(pPmicCoreHandle, commonCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(9985, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setCommonCtrlConfig : Load from EEPROM defaults on RTC domain/conf Registers - */ -static void test_pmic_setCommonCtrlCfg_eepromDefaultLoadEnable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CommonCtrlCfg_t commonCtrlCfg_rd = {PMIC_CFG_EEPROM_DEFAULT_VALID_SHIFT,}; - Pmic_CommonCtrlCfg_t commonCtrlCfg = - { - PMIC_CFG_EEPROM_DEFAULT_VALID_SHIFT, - PMIC_SPREAD_SPECTRUM_CFG_ENABLE, - PMIC_LP8764X_SKIP_EEPROM_DEF_LD_TO_CONF_OTHER_REGS_DISABLED, - PMIC_TPS6594X_EEPROM_DEFAULTS_LOAD_TO_RTC_DOMAIN_BITS, - PMIC_PIN_SIGNAL_LEVEL_LOW, - PMIC_REGISTER_UNLOCK, - PMIC_SPREAD_SPECTRUM_MODULATION_DEPTH_NONE - }; - Pmic_RtcDate_t validDateCfg = { 0x0F, 15U, 6U, 2055U, 1U}; - Pmic_RtcTime_t validTimeCfg = { 0x1F, 1U, 30U, 6U, 0U, 1U}; - uint8_t data = 0x67, testData; - int8_t num = 0; - - if(g_skip_eeprom_test_flag == 0) - { - test_pmic_print_unity_testcase_info(9988, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - } - - /*Refer the Bug PDK-10450 for more details*/ - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - pmic_testResultUpdate_ignore(9988, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - } - -#if defined(SOC_J721E) - pmic_log("\r\n Probe TP134 and TP133 and it should be High"); -#endif -#if defined(SOC_J7200) - pmic_log("\r\n Probe TP46 and TP29 and it should be High"); -#endif - pmic_log("\r\n Enter 1 to continue"); - UART_scanFmt("%d", &num); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - commonCtrlCfg.eepromDefaultLoad = PMIC_LP8764X_EEPROM_DEFAULTS_LOAD_TO_CONF_OTHER_REGS; - } - pmicStatus = Pmic_setCommonCtrlConfig(pPmicCoreHandle, commonCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getCommonCtrlConfig(pPmicCoreHandle, &commonCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(commonCtrlCfg.eepromDefaultLoad, - commonCtrlCfg_rd.eepromDefaultLoad); - - pmicStatus = Pmic_fsmSetPfsmDelay(pPmicCoreHandle, - PMIC_PFSM_DELAY3, - data); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_fsmGetPfsmDelay(pPmicCoreHandle, - PMIC_PFSM_DELAY3, - &testData); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(data, testData); - - pmicStatus = Pmic_rtcSetTimerPeriod(pPmicCoreHandle, PMIC_RTC_MINUTE_INTR_PERIOD); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_rtcSetTimeDateInfo(pPmicCoreHandle, validTimeCfg, validDateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - -#if defined(SOC_J721E) - pmic_log("\r\n Probe TP134 and TP133 and it should be low after 2 sec"); - - pmic_log("\r\n Probe TP134 and TP133 and it should be High after 60 sec"); -#endif -#if defined(SOC_J7200) - pmic_log("\r\n Probe TP46 and TP29 and it should be low after 2 sec"); - - pmic_log("\r\n Probe TP46 and TP29 and it should be High after 60 sec"); -#endif - - pmic_log("\r\n After 60sec Rerun the application in UART Boot mode"); - - if(g_skip_eeprom_test_flag == 0) - pmic_log("\r\n Also check for PFSM delay 3 Value register same as EEPROM registers - 0"); - else if(g_skip_eeprom_test_flag == 2) - pmic_log("\r\n Also check for Configured PFSM delay 3 Value register as 0x67 both in Leo and Hera PMIC"); - else - pmic_log("\r\n Also check for PFSM delay 3 Value register same as EEPROM registers - 0 both in Leo and Hera PMIC"); - - pmicStatus = Pmic_rtcEnableTimerIntr(pPmicCoreHandle, PMIC_RTC_TIMER_INTR_ENABLE); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_fsmSetNsleepSignalMask(pPmicCoreHandle, - PMIC_NSLEEP1_SIGNAL, - PMIC_NSLEEPX_MASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_fsmSetNsleepSignalMask(pPmicCoreHandle, - PMIC_NSLEEP2_SIGNAL, - PMIC_NSLEEPX_MASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Needs Delay to mask Nsleep1B and Nsleep2B signals for LP Stand-By State */ - Osal_delay(10U); - - pmicStatus = Pmic_fsmSetMissionState(pPmicCoreHandle, PMIC_FSM_LP_STANBY_STATE); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - if(g_skip_eeprom_test_flag == 0) - { - pmic_testResultUpdate_pass(9988, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - } -} - -/*! - * \brief Pmic_setCommonCtrlConfig : Disable Load from EEPROM defaults on RTC domain/conf Registers - */ -static void test_pmic_setCommonCtrlCfg_eepromDefaultLoadDisable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CommonCtrlCfg_t commonCtrlCfg_rd = {0U}; - Pmic_CommonCtrlCfg_t commonCtrlCfg = - { - PMIC_CFG_EEPROM_DEFAULT_VALID_SHIFT, - PMIC_SPREAD_SPECTRUM_CFG_ENABLE, - PMIC_LP8764X_SKIP_EEPROM_DEF_LD_TO_CONF_OTHER_REGS_DISABLED, - PMIC_TPS6594X_EEPROM_DEFAULTS_NOT_LOADED_TO_RTC_DOMAIN_BITS, - PMIC_PIN_SIGNAL_LEVEL_LOW, - PMIC_REGISTER_UNLOCK, - PMIC_SPREAD_SPECTRUM_MODULATION_DEPTH_NONE - }; - Pmic_RtcDate_t validDateCfg = { 0x0F, 15U, 6U, 2055U, 1U}; - Pmic_RtcTime_t validTimeCfg = { 0x1F, 1U, 30U, 6U, 0U, 1U}; - uint8_t data = 0x67, testData; - int8_t num = 0; - - if(g_skip_eeprom_test_flag == 0) - { - test_pmic_print_unity_testcase_info(9989, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - } - - /*Refer the Bug PDK-10450 for more details*/ - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - pmic_testResultUpdate_ignore(9989, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - } - -#if defined(SOC_J721E) - pmic_log("\r\n Probe TP134 and TP133 and it should be High"); -#endif -#if defined(SOC_J7200) - pmic_log("\r\n Probe TP46 and TP29 and it should be High"); -#endif - pmic_log("\r\n Enter 1 to continue"); - UART_scanFmt("%d", &num); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - commonCtrlCfg.eepromDefaultLoad = PMIC_LP8764X_EEPROM_DEFAULTS_NOT_LOADED_TO_CONF_OTHER_REGS; - } - pmicStatus = Pmic_setCommonCtrlConfig(pPmicCoreHandle, commonCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - commonCtrlCfg_rd.validParams = PMIC_CFG_EEPROM_DEFAULT_VALID_SHIFT; - - pmicStatus = Pmic_getCommonCtrlConfig(pPmicCoreHandle, &commonCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(commonCtrlCfg.eepromDefaultLoad, - commonCtrlCfg_rd.eepromDefaultLoad); - - pmicStatus = Pmic_fsmSetPfsmDelay(pPmicCoreHandle, - PMIC_PFSM_DELAY3, - data); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_fsmGetPfsmDelay(pPmicCoreHandle, - PMIC_PFSM_DELAY3, - &testData); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(data, testData); - - pmicStatus = Pmic_rtcSetTimerPeriod(pPmicCoreHandle, PMIC_RTC_MINUTE_INTR_PERIOD); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_rtcSetTimeDateInfo(pPmicCoreHandle, validTimeCfg, validDateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - -#if defined(SOC_J721E) - pmic_log("\r\n Probe TP134 and TP133 and it should be low after 2 sec"); - - pmic_log("\r\n Probe TP134 and TP133 and it should be High after 60 sec"); -#endif -#if defined(SOC_J7200) - pmic_log("\r\n Probe TP46 and TP29 and it should be low after 2 sec"); - - pmic_log("\r\n Probe TP46 and TP29 and it should be High after 60 sec"); -#endif - - pmic_log("\r\n After 60sec Rerun the application in UART Boot mode"); - - if(g_skip_eeprom_test_flag == 0) - pmic_log("\r\n Also check for Configured PFSM delay 3 Value register as 0x67"); - else - pmic_log("\r\n Also check for Configured PFSM delay 3 Value register as 0x67 both in Leo and Hera PMIC"); - - pmicStatus = Pmic_rtcEnableTimerIntr(pPmicCoreHandle, PMIC_RTC_TIMER_INTR_ENABLE); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_fsmSetNsleepSignalMask(pPmicCoreHandle, - PMIC_NSLEEP1_SIGNAL, - PMIC_NSLEEPX_MASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_fsmSetNsleepSignalMask(pPmicCoreHandle, - PMIC_NSLEEP2_SIGNAL, - PMIC_NSLEEPX_MASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Needs Delay to mask Nsleep1B and Nsleep2B signals for LP Stand-By State */ - Osal_delay(10U); - - pmicStatus = Pmic_fsmSetMissionState(pPmicCoreHandle, PMIC_FSM_LP_STANBY_STATE); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - if(g_skip_eeprom_test_flag == 0) - { - pmic_testResultUpdate_pass(9989, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - } -} - -#if defined(SOC_J7200) -static void test_pmic_setCommonCtrlCfg_hera_skipEepromDefLdDisable_eePromDefLdDisable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CommonCtrlCfg_t commonCtrlCfg_rd = {PMIC_CFG_EEPROM_DEFAULT_VALID_SHIFT}; - Pmic_CommonCtrlCfg_t commonCtrlCfg = - { - PMIC_CFG_EEPROM_DEFAULT_VALID_SHIFT, - PMIC_SPREAD_SPECTRUM_CFG_ENABLE, - PMIC_LP8764X_SKIP_EEPROM_DEF_LD_TO_CONF_OTHER_REGS_DISABLED, - PMIC_LP8764X_EEPROM_DEFAULTS_NOT_LOADED_TO_CONF_OTHER_REGS, - PMIC_PIN_SIGNAL_LEVEL_LOW, - PMIC_REGISTER_UNLOCK, - PMIC_SPREAD_SPECTRUM_MODULATION_DEPTH_NONE - }; - - uint8_t data = 0x67, testData; - Pmic_FsmCfg_t fsmCfg_rd = {PMIC_FSM_CFG_LP_STANDBYSEL_VALID_SHIFT,}; - Pmic_FsmCfg_t fsmCfg = - { - PMIC_FSM_CFG_LP_STANDBYSEL_VALID_SHIFT, - PMIC_FSM_FAST_BIST_DISABLE, - PMIC_FSM_SELECT_LPSTANDBY_STATE, - PMIC_FSM_ILIM_INT_FSMCTRL_DISABLE, - PMIC_FSM_STARTUPDEST_ACTIVE - }; - - pmicStatus = Pmic_fsmSetConfiguration(pPmicCoreHandle, fsmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_fsmGetConfiguration(pPmicCoreHandle, &fsmCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(fsmCfg.lpStandbySel, fsmCfg_rd.lpStandbySel); - - pmicStatus = Pmic_setCommonCtrlConfig(pPmicCoreHandle, commonCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getCommonCtrlConfig(pPmicCoreHandle, &commonCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(commonCtrlCfg.eepromDefaultLoad, - commonCtrlCfg_rd.eepromDefaultLoad); - - pmicStatus = Pmic_fsmGetPfsmDelay(pPmicCoreHandle, - PMIC_PFSM_DELAY3, - &testData); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmic_log("\r\n Default Val - PMIC_PFSM_DELAY3 0x%x", testData); - - pmicStatus = Pmic_fsmSetPfsmDelay(pPmicCoreHandle, - PMIC_PFSM_DELAY3, - data); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_fsmGetPfsmDelay(pPmicCoreHandle, - PMIC_PFSM_DELAY3, - &testData); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmic_log("\r\n Configured Val - PMIC_PFSM_DELAY3 0x%x", testData); -} - -static void test_pmic_setCommonCtrlCfg_hera_skipEepromDefLdDisable_eePromDefLdEnable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CommonCtrlCfg_t commonCtrlCfg_rd = {PMIC_CFG_EEPROM_DEFAULT_VALID_SHIFT}; - Pmic_CommonCtrlCfg_t commonCtrlCfg = - { - PMIC_CFG_EEPROM_DEFAULT_VALID_SHIFT, - PMIC_SPREAD_SPECTRUM_CFG_ENABLE, - PMIC_LP8764X_SKIP_EEPROM_DEF_LD_TO_CONF_OTHER_REGS_DISABLED, - PMIC_LP8764X_EEPROM_DEFAULTS_LOAD_TO_CONF_OTHER_REGS, - PMIC_PIN_SIGNAL_LEVEL_LOW, - PMIC_REGISTER_UNLOCK, - PMIC_SPREAD_SPECTRUM_MODULATION_DEPTH_NONE - }; - - uint8_t data = 0x67, testData; - Pmic_FsmCfg_t fsmCfg_rd = {PMIC_FSM_CFG_LP_STANDBYSEL_VALID_SHIFT,}; - Pmic_FsmCfg_t fsmCfg = - { - PMIC_FSM_CFG_LP_STANDBYSEL_VALID_SHIFT, - PMIC_FSM_FAST_BIST_DISABLE, - PMIC_FSM_SELECT_LPSTANDBY_STATE, - PMIC_FSM_ILIM_INT_FSMCTRL_DISABLE, - PMIC_FSM_STARTUPDEST_ACTIVE - }; - - pmicStatus = Pmic_fsmSetConfiguration(pPmicCoreHandle, fsmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_fsmGetConfiguration(pPmicCoreHandle, &fsmCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(fsmCfg.lpStandbySel, fsmCfg_rd.lpStandbySel); - - - pmicStatus = Pmic_setCommonCtrlConfig(pPmicCoreHandle, commonCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getCommonCtrlConfig(pPmicCoreHandle, &commonCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(commonCtrlCfg.eepromDefaultLoad, - commonCtrlCfg_rd.eepromDefaultLoad); - - pmicStatus = Pmic_fsmGetPfsmDelay(pPmicCoreHandle, - PMIC_PFSM_DELAY3, - &testData); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_log("\r\n Default Val - PMIC_PFSM_DELAY3 0x%x", testData); - - pmicStatus = Pmic_fsmSetPfsmDelay(pPmicCoreHandle, - PMIC_PFSM_DELAY3, - data); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_fsmGetPfsmDelay(pPmicCoreHandle, - PMIC_PFSM_DELAY3, - &testData); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_log("\r\n Configured Val - PMIC_PFSM_DELAY3 0x%x", testData); -} - -#if 0 // Refer the Bug PDK-10451 for more details -static void test_pmic_setCommonCtrlCfg_hera_skipEepromDefLdEnable_eePromDefLdEnable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CommonCtrlCfg_t commonCtrlCfg_rd = {PMIC_CFG_EEPROM_DEFAULT_VALID_SHIFT}; - Pmic_CommonCtrlCfg_t commonCtrlCfg = - { - PMIC_CFG_EEPROM_DEFAULT_VALID_SHIFT, - PMIC_SPREAD_SPECTRUM_CFG_ENABLE, - PMIC_LP8764X_SKIP_EEPROM_DEF_LD_TO_CONF_OTHER_REGS_ENABLED, - PMIC_LP8764X_EEPROM_DEFAULTS_LOAD_TO_CONF_OTHER_REGS, - PMIC_PIN_SIGNAL_LEVEL_LOW, - PMIC_REGISTER_UNLOCK, - PMIC_SPREAD_SPECTRUM_MODULATION_DEPTH_NONE - }; - - uint8_t data = 0x67, testData; - Pmic_FsmCfg_t fsmCfg_rd = {PMIC_FSM_CFG_LP_STANDBYSEL_VALID_SHIFT,}; - Pmic_FsmCfg_t fsmCfg = - { - PMIC_FSM_CFG_LP_STANDBYSEL_VALID_SHIFT, - PMIC_FSM_FAST_BIST_DISABLE, - PMIC_FSM_SELECT_LPSTANDBY_STATE, - PMIC_FSM_ILIM_INT_FSMCTRL_DISABLE, - PMIC_FSM_STARTUPDEST_ACTIVE - }; - - pmicStatus = Pmic_fsmSetConfiguration(pPmicCoreHandle, fsmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_fsmGetConfiguration(pPmicCoreHandle, &fsmCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(fsmCfg.lpStandbySel, fsmCfg_rd.lpStandbySel); - - - pmicStatus = Pmic_setCommonCtrlConfig(pPmicCoreHandle, commonCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getCommonCtrlConfig(pPmicCoreHandle, &commonCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(commonCtrlCfg.eepromDefaultLoad, - commonCtrlCfg_rd.eepromDefaultLoad); - - pmicStatus = Pmic_fsmGetPfsmDelay(pPmicCoreHandle, - PMIC_PFSM_DELAY3, - &testData); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_log("\r\n Default Val - PMIC_PFSM_DELAY3 0x%x", testData); - - pmicStatus = Pmic_fsmSetPfsmDelay(pPmicCoreHandle, - PMIC_PFSM_DELAY3, - data); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_fsmGetPfsmDelay(pPmicCoreHandle, - PMIC_PFSM_DELAY3, - &testData); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_log("\r\n Configured Val - PMIC_PFSM_DELAY3 0x%x", testData); -} -#endif - -#endif - -/*! - * \brief Test Pmic Write Protection when Register is Lock - */ -static void test_pmic_WriteProtection_RegisterLock(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS, status; - Pmic_CommonCtrlCfg_t commonCtrlCfg = - { - PMIC_CFG_REG_LOCK_VALID_SHIFT, - PMIC_SPREAD_SPECTRUM_CFG_ENABLE, - PMIC_LP8764X_SKIP_EEPROM_DEF_LD_TO_CONF_OTHER_REGS_DISABLED, - PMIC_TPS6594X_EEPROM_DEFAULTS_LOAD_TO_RTC_DOMAIN_BITS, - PMIC_PIN_SIGNAL_LEVEL_LOW, - PMIC_REGISTER_LOCK, - PMIC_SPREAD_SPECTRUM_MODULATION_DEPTH_NONE - }; - Pmic_CommonCtrlStat_t commonCtrlStat_rd = {PMIC_CFG_REGISTER_LOCK_STAT_VALID_SHIFT}; - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_VMON_RV_SEL_VALID_SHIFT, - }; - uint16_t pwrRsrc; - uint8_t irqNum1, irqNum2; - Pmic_RecovCntCfg_t recovCntCfg; - - test_pmic_print_unity_testcase_info(9994, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - - pmicStatus = Pmic_setCommonCtrlConfig(pPmicCoreHandle, commonCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getCommonCtrlStat(pPmicCoreHandle, &commonCtrlStat_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(PMIC_REGISTER_STATUS_LOCK, - commonCtrlStat_rd.regLockStat); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.rvCheckEn = PMIC_TPS6594X_REGULATOR_RV_SEL_ENABLE; - pwrRsrc = PMIC_TPS6594X_REGULATOR_BUCK1; - irqNum1 = PMIC_TPS6594X_ESM_MCU_RST_INT; - irqNum2 = PMIC_TPS6594X_BUCK1_OV_INT; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.rvCheckEn = PMIC_LP8764X_REGULATOR_VMON_RV_SEL_ENABLE; - pwrRsrc = PMIC_LP8764X_REGULATOR_BUCK1; - irqNum1 = PMIC_LP8764X_ESM_MCU_RST_INT; - irqNum2 = PMIC_LP8764X_BUCK1_OV_INT; - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_REG_LOCKED_WR_FAIL, pmicStatus); - - pmicStatus = Pmic_fsmSetPfsmDelay(pPmicCoreHandle, - PMIC_PFSM_DELAY4, - 0x67); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_REG_LOCKED_WR_FAIL, pmicStatus); - - recovCntCfg.validParams = PMIC_CFG_RECOV_CNT_THR_VAL_VALID_SHIFT; - recovCntCfg.thrVal = PMIC_RECOV_CNT_THR_MAX; - - status = Pmic_setRecoveryCntCfg(pPmicCoreHandle, recovCntCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_REG_LOCKED_WR_FAIL, status); - - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - irqNum1); - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - status = PMIC_ST_SUCCESS; - } - else - { - status = PMIC_ST_ERR_REG_LOCKED_WR_FAIL; - } - - TEST_ASSERT_EQUAL(status, pmicStatus); - - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - irqNum2); - TEST_ASSERT_EQUAL(status, pmicStatus); - - commonCtrlCfg.regLock = PMIC_REGISTER_UNLOCK; - pmicStatus = Pmic_setCommonCtrlConfig(pPmicCoreHandle, commonCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getCommonCtrlStat(pPmicCoreHandle, &commonCtrlStat_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(PMIC_REGISTER_STATUS_UNLOCK, - commonCtrlStat_rd.regLockStat); - - pmic_testResultUpdate_pass(9994, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Test Pmic Write Protection when Register is Lock - */ -static void test_pmic_WriteProtection_RegisterLock_codecoverage(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CommonCtrlCfg_t commonCtrlCfg = - { - PMIC_CFG_REG_LOCK_VALID_SHIFT, - PMIC_SPREAD_SPECTRUM_CFG_ENABLE, - PMIC_LP8764X_SKIP_EEPROM_DEF_LD_TO_CONF_OTHER_REGS_DISABLED, - PMIC_TPS6594X_EEPROM_DEFAULTS_LOAD_TO_RTC_DOMAIN_BITS, - PMIC_PIN_SIGNAL_LEVEL_LOW, - PMIC_REGISTER_LOCK, - PMIC_SPREAD_SPECTRUM_MODULATION_DEPTH_NONE - }; - Pmic_CommonCtrlStat_t commonCtrlStat_rd = {PMIC_CFG_REGISTER_LOCK_STAT_VALID_SHIFT}; - Pmic_WdgCfg_t wdgCfg; - - test_pmic_print_unity_testcase_info(10752, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - - pmicStatus = Pmic_setCommonCtrlConfig(pPmicCoreHandle, commonCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getCommonCtrlStat(pPmicCoreHandle, &commonCtrlStat_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(PMIC_REGISTER_STATUS_LOCK, - commonCtrlStat_rd.regLockStat); - - wdgCfg.validParams = PMIC_CFG_WDG_LONGWINDURATION_VALID_SHIFT; - - wdgCfg.longWinDuration_ms = 750000U; - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - wdgCfg.longWinDuration_ms = 752000U; - } - - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - commonCtrlCfg.regLock = PMIC_REGISTER_UNLOCK; - pmicStatus = Pmic_setCommonCtrlConfig(pPmicCoreHandle, commonCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getCommonCtrlStat(pPmicCoreHandle, &commonCtrlStat_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(PMIC_REGISTER_STATUS_UNLOCK, - commonCtrlStat_rd.regLockStat); - - pmic_testResultUpdate_pass(10752, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Test Pmic Write Protection when Register is UnLock - */ -static void test_pmic_WriteProtection_RegisterUnLock(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CommonCtrlCfg_t commonCtrlCfg = - { - PMIC_CFG_REG_LOCK_VALID_SHIFT, - PMIC_SPREAD_SPECTRUM_CFG_ENABLE, - PMIC_LP8764X_SKIP_EEPROM_DEF_LD_TO_CONF_OTHER_REGS_DISABLED, - PMIC_TPS6594X_EEPROM_DEFAULTS_LOAD_TO_RTC_DOMAIN_BITS, - PMIC_PIN_SIGNAL_LEVEL_LOW, - PMIC_REGISTER_UNLOCK, - PMIC_SPREAD_SPECTRUM_MODULATION_DEPTH_NONE - }; - Pmic_CommonCtrlStat_t commonCtrlStat_rd = {PMIC_CFG_REGISTER_LOCK_STAT_VALID_SHIFT}; - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_VMON_RV_SEL_VALID_SHIFT, - }; - uint16_t pwrRsrc; - uint8_t irqNum1, irqNum2; - - test_pmic_print_unity_testcase_info(9995, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - - pmicStatus = Pmic_setCommonCtrlConfig(pPmicCoreHandle, commonCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getCommonCtrlStat(pPmicCoreHandle, &commonCtrlStat_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(PMIC_REGISTER_STATUS_UNLOCK, - commonCtrlStat_rd.regLockStat); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.rvCheckEn = PMIC_TPS6594X_REGULATOR_RV_SEL_ENABLE; - pwrRsrc = PMIC_TPS6594X_REGULATOR_BUCK1; - irqNum1 = PMIC_TPS6594X_ESM_MCU_RST_INT; - irqNum2 = PMIC_TPS6594X_BUCK1_OV_INT; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.rvCheckEn = PMIC_LP8764X_REGULATOR_VMON_RV_SEL_ENABLE; - pwrRsrc = PMIC_LP8764X_REGULATOR_BUCK1; - irqNum1 = PMIC_LP8764X_ESM_MCU_RST_INT; - irqNum2 = PMIC_LP8764X_BUCK1_OV_INT; - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_fsmSetPfsmDelay(pPmicCoreHandle, - PMIC_PFSM_DELAY4, - 0x67); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - irqNum1); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_irqClrErrStatus(pPmicCoreHandle, - irqNum2); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(9995, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getRecoveryCnt : Test to read recovery counter value - */ -static void test_pmic_getRecoveryCntVal(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t recovCntVal = 0U; - uint8_t recovCntVal_rd; - - test_pmic_print_unity_testcase_info(10573, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - status = Pmic_getRecoveryCnt(pPmicCoreHandle, &recovCntVal_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - TEST_ASSERT_EQUAL(recovCntVal_rd, recovCntVal); - - pmic_testResultUpdate_pass(10573, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getRecoveryCnt : Parameter validation for pRecovCntVal - */ -static void test_pmic_getRecoveryCntPrmValTest_pRecovCntVal(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(10574, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - status = Pmic_getRecoveryCnt(pPmicCoreHandle, NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, status); - - pmic_testResultUpdate_pass(10574, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_init : Parameter validation for pPmicCoreHandle - */ -static void test_pmic_initPrmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicCfgData = {0}; - - test_pmic_print_unity_testcase_info(10575, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - status = Pmic_init(&pmicCfgData, NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, status); - - pmic_testResultUpdate_pass(10575, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_init : Parameter validation for pPmicConfigData - */ -static void test_pmic_initPrmValTest_pmicCfgData(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreHandle_t pHandle = {0U}; - - test_pmic_print_unity_testcase_info(10577, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - status = Pmic_init(NULL, &pHandle); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, status); - - pmic_testResultUpdate_pass(10577, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_init : Parameter validation for pmicDeviceType - */ -static void test_pmic_initPrmValTest_pmicDevType(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicCfgData = {0U}; - Pmic_CoreHandle_t pHandle = {0U}; - - test_pmic_print_unity_testcase_info(10578, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicCfgData.validParams = PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - pmicCfgData.pmicDeviceType = 2U; - status = Pmic_init(&pmicCfgData, &pHandle); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, status); - - pmic_testResultUpdate_pass(10578, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_init : Parameter validation for Interface mode - */ -static void test_pmic_initPrmValTest_commMode(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicCfgData = {0U}; - Pmic_CoreHandle_t pHandle = {0U}; - - test_pmic_print_unity_testcase_info(10579, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicCfgData.validParams = PMIC_CFG_COMM_MODE_VALID_SHIFT; - pmicCfgData.commMode = 3U; - status = Pmic_init(&pmicCfgData, &pHandle); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, status); - - pmic_testResultUpdate_pass(10579, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_init : Parameter validation for I2C1/SPI Main Interface handle - */ -static void test_pmic_initPrmValTest_pCommHandle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicCfgData = {0U}; - Pmic_CoreHandle_t pHandle = {0U}; - - test_pmic_print_unity_testcase_info(10580, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicCfgData.validParams = PMIC_CFG_COMM_HANDLE_VALID_SHIFT; - pmicCfgData.pCommHandle = NULL; - status = Pmic_init(&pmicCfgData, &pHandle); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_FPTR, status); - - pmic_testResultUpdate_pass(10580, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_init : Parameter validation for I2C2-QA Interface handle - */ -static void test_pmic_initPrmValTest_pQACommHandle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicCfgData = {0U}; - Pmic_CoreHandle_t pHandle = {0U}; - - test_pmic_print_unity_testcase_info(10581, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicCfgData.validParams = PMIC_CFG_QACOMM_HANDLE_VALID_SHIFT; - pmicCfgData.pQACommHandle = NULL; - status = Pmic_init(&pmicCfgData, &pHandle); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_FPTR, status); - - pmic_testResultUpdate_pass(10581, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_init : Parameter validation for I2C/SPI Comm LLD Read Function - */ -static void test_pmic_initPrmValTest_pFnCommIoRead(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicCfgData = {0U}; - Pmic_CoreHandle_t pHandle = {0U}; - - test_pmic_print_unity_testcase_info(10582, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicCfgData.validParams = PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - pmicCfgData.pFnPmicCommIoRead = NULL; - status = Pmic_init(&pmicCfgData, &pHandle); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_FPTR, status); - - pmic_testResultUpdate_pass(10582, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_init : Parameter validation for I2C/SPI Comm LLD Write Function - */ -static void test_pmic_initPrmValTest_pFnCommIoWrite(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicCfgData = {0U}; - Pmic_CoreHandle_t pHandle = {0U}; - - test_pmic_print_unity_testcase_info(10583, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicCfgData.validParams = PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - pmicCfgData.pFnPmicCommIoWrite = NULL; - status = Pmic_init(&pmicCfgData, &pHandle); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_FPTR, status); - - pmic_testResultUpdate_pass(10583, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_init : Parameter validation for Critical Section Start Function - */ -static void test_pmic_initPrmValTest_pFnCritSecStart(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicCfgData = {0U}; - Pmic_CoreHandle_t pHandle = {0U}; - - test_pmic_print_unity_testcase_info(10584, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicCfgData.validParams = PMIC_CFG_CRITSEC_START_VALID_SHIFT; - pmicCfgData.pFnPmicCritSecStart = NULL; - status = Pmic_init(&pmicCfgData, &pHandle); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_FPTR, status); - - pmic_testResultUpdate_pass(10584, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_init : Parameter validation for Critical Section Stop Function - */ -static void test_pmic_initPrmValTest_pFnCritSecStop(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicCfgData = {0U}; - Pmic_CoreHandle_t pHandle = {0U}; - - test_pmic_print_unity_testcase_info(10585, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicCfgData.validParams = PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - pmicCfgData.pFnPmicCritSecStop = NULL; - status = Pmic_init(&pmicCfgData, &pHandle); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_FPTR, status); - - pmic_testResultUpdate_pass(10585, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_deinit : Parameter validation for pPmicCoreHandle - */ -static void test_pmic_deinitPrmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(10586, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - status = Pmic_deinit(NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - pmic_testResultUpdate_pass(10586, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setScratchPadValue : Test to write data to scratchpad reg1, reg2 and reg3 - */ -static void test_pmic_setScratchPadValue_reg1Reg2Reg3(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t scratchPadRegId, data; - - test_pmic_print_unity_testcase_info(10587, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - data = 0x10; - scratchPadRegId = PMIC_SCRATCH_PAD_REG_1; - status = Pmic_setScratchPadValue(pPmicCoreHandle, scratchPadRegId, data); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - scratchPadRegId = PMIC_SCRATCH_PAD_REG_2; - status = Pmic_setScratchPadValue(pPmicCoreHandle, scratchPadRegId, data); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - scratchPadRegId = PMIC_SCRATCH_PAD_REG_3; - status = Pmic_setScratchPadValue(pPmicCoreHandle, scratchPadRegId, data); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - pmic_testResultUpdate_pass(10587, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_init : Parameter validation for I2C1 Speed - */ -static void test_pmic_initPrmValTest_i2c1Speed(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicCfgData = {0U}; - Pmic_CoreHandle_t pHandle = {0U}; - - test_pmic_print_unity_testcase_info(10588, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicCfgData.validParams = PMIC_CFG_I2C1_SPEED_VALID_SHIFT; - pmicCfgData.i2c1Speed = 2U; - status = Pmic_init(&pmicCfgData, &pHandle); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, status); - - pmic_testResultUpdate_pass(10588, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_init : Parameter validation for I2C2 Speed - */ -static void test_pmic_initPrmValTest_i2c2Speed(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicCfgData = {0U}; - Pmic_CoreHandle_t pHandle = {0U}; - - test_pmic_print_unity_testcase_info(10589, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicCfgData.validParams = PMIC_CFG_I2C2_SPEED_VALID_SHIFT; - pmicCfgData.i2c2Speed = 2U; - status = Pmic_init(&pmicCfgData, &pHandle); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, status); - - pmic_testResultUpdate_pass(10589, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -#if defined(SOC_J7200) -/*! - * \brief Pmic_setCommonCtrlConfig : Disable Skip EEPROM Default Load to CONF and Other registers - */ -static void test_pmic_setCommonCtrlCfg_hera_skipEepromDefaultLoadDisable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CommonCtrlCfg_t commonCtrlCfg_rd = {PMIC_CFG_SKIP_EEPROM_LOAD_VALID_SHIFT}; - Pmic_CommonCtrlCfg_t commonCtrlCfg = - { - PMIC_CFG_SKIP_EEPROM_LOAD_VALID_SHIFT, - PMIC_SPREAD_SPECTRUM_CFG_ENABLE, - PMIC_LP8764X_SKIP_EEPROM_DEF_LD_TO_CONF_OTHER_REGS_DISABLED, - PMIC_LP8764X_EEPROM_DEFAULTS_NOT_LOADED_TO_CONF_OTHER_REGS, - PMIC_PIN_SIGNAL_LEVEL_LOW, - PMIC_REGISTER_UNLOCK, - PMIC_SPREAD_SPECTRUM_MODULATION_DEPTH_NONE - }; - - test_pmic_print_unity_testcase_info(10590, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - if(J7VCL_LEO_PMICA_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(10590, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_setCommonCtrlConfig(pPmicCoreHandle, commonCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getCommonCtrlConfig(pPmicCoreHandle, &commonCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(commonCtrlCfg.skipEepromDefaultLoadEn, - commonCtrlCfg_rd.skipEepromDefaultLoadEn); - - pmic_testResultUpdate_pass(10590, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} -#endif - -/*! - * \brief Pmic_setI2CSpeedCfg : Parameter validation for handle - */ -static void test_pmic_setI2CSpeedCfgPrmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(10591, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - status = Pmic_setI2CSpeedCfg(NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - pmic_testResultUpdate_pass(10591, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getCrcStatus : Parameter validation for handle - */ -static void test_pmic_getCrcStatusPrmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t i2c1SpiCrcStat = 0xFF, i2c2CrcStat = 0xFF; - - test_pmic_print_unity_testcase_info(10592, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - status = Pmic_getCrcStatus(NULL, &i2c1SpiCrcStat, &i2c2CrcStat); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - pmic_testResultUpdate_pass(10592, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getCrcStatus : Parameter validation for pI2c2CrcStatus - */ -static void test_pmic_getCrcStatusPrmValTest_pI2c2CrcStatus(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t i2c1SpiCrcStat = 0xFF; - - test_pmic_print_unity_testcase_info(10593, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - status = Pmic_getCrcStatus(pPmicCoreHandle, &i2c1SpiCrcStat, NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, status); - - pmic_testResultUpdate_pass(10593, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getCrcStatus : Parameter validation for pI2c1CrcStatus - */ -static void test_pmic_getCrcStatusPrmValTest_pI2c1CrcStatus(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t i2c2SpiCrcStat = 0xFF; - - test_pmic_print_unity_testcase_info(10594, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - status = Pmic_getCrcStatus(pPmicCoreHandle, NULL, &i2c2SpiCrcStat); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, status); - - pmic_testResultUpdate_pass(10594, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getCrcStatus : Parameter validation for both pI2c1CrcStatus and pI2c2CrcStatus - */ -static void test_pmic_getCrcStatusPrmValTest_pI2c1I2C2CrcStatus(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(10595, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - status = Pmic_getCrcStatus(pPmicCoreHandle, NULL, NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, status); - - pmic_testResultUpdate_pass(10595, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_enableCRC : Parameter validation for handle - */ -static void test_pmic_enableCRCPrmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(10596, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - status = Pmic_enableCRC(NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - pmic_testResultUpdate_pass(10596, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setBatteryCtrlConfig : Negative test for LP8764x Hera PMIC device - */ -static void test_pmic_setBatteryCtrlCfg_hera(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_BatteryCtrlCfg_t batteryCtrlCfg = - { - PMIC_CFG_END_OF_CHARGE_VOLTAGE_VALID_SHIFT, - PMIC_TPS6594X_BB_CHARGINGING_CFG_DISABLE, - PMIC_TPS6594X_BB_ENDOF_CHARGE_VOLATGE_2_5_V, - PMIC_TPS6594X_BB_CHARGING_CURRENT_100 - }; - - test_pmic_print_unity_testcase_info(10597, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(10597, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_setBatteryCtrlConfig(pPmicCoreHandle, batteryCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NOT_SUPPORTED, pmicStatus); - - pmic_testResultUpdate_pass(10597, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getBatteryCtrlConfig : Negative test for LP8764x Hera PMIC device - */ -static void test_pmic_getBatteryCtrlCfg_hera(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_BatteryCtrlCfg_t batteryCtrlCfg_rd = {PMIC_CFG_CHARGING_EN_VALID_SHIFT,}; - - test_pmic_print_unity_testcase_info(10598, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(10598, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_getBatteryCtrlConfig(pPmicCoreHandle, &batteryCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NOT_SUPPORTED, pmicStatus); - - pmic_testResultUpdate_pass(10598, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setCommonCtrlConfig : Disable Load from EEPROM defaults on RTC domain/conf Registers - */ -static void test_pmic_setCommonCtrlCfg_hera_EepromDefaultLoadDisable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CommonCtrlCfg_t commonCtrlCfg_rd = {PMIC_CFG_EEPROM_DEFAULT_VALID_SHIFT}; - Pmic_CommonCtrlCfg_t commonCtrlCfg = - { - PMIC_CFG_EEPROM_DEFAULT_VALID_SHIFT, - PMIC_SPREAD_SPECTRUM_CFG_ENABLE, - PMIC_LP8764X_SKIP_EEPROM_DEF_LD_TO_CONF_OTHER_REGS_DISABLED, - PMIC_LP8764X_EEPROM_DEFAULTS_NOT_LOADED_TO_CONF_OTHER_REGS, - PMIC_PIN_SIGNAL_LEVEL_LOW, - PMIC_REGISTER_UNLOCK, - PMIC_SPREAD_SPECTRUM_MODULATION_DEPTH_NONE - }; - - test_pmic_print_unity_testcase_info(10599, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - commonCtrlCfg.eepromDefaultLoad = PMIC_TPS6594X_EEPROM_DEFAULTS_NOT_LOADED_TO_RTC_DOMAIN_BITS; - } - - pmicStatus = Pmic_setCommonCtrlConfig(pPmicCoreHandle, commonCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getCommonCtrlConfig(pPmicCoreHandle, &commonCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(commonCtrlCfg.eepromDefaultLoad, - commonCtrlCfg_rd.eepromDefaultLoad); - - pmic_testResultUpdate_pass(10599, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setCommonCtrlConfig : Negative test for TPS6594x Leo PMIC device - */ -static void test_pmic_setCommonCtrlCfg_leo_skipEepromDefaultLoadDisable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CommonCtrlCfg_t commonCtrlCfg = {PMIC_CFG_SKIP_EEPROM_LOAD_VALID_SHIFT}; - - test_pmic_print_unity_testcase_info(10600, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(10600, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_setCommonCtrlConfig(pPmicCoreHandle, commonCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10600, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_getCommonCtrlConfig : Negative test for TPS6594x Leo PMIC device - */ -static void test_pmic_getCommonCtrlCfg_leo_skipEepromDefaultLoadDisable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CommonCtrlCfg_t commonCtrlCfg_rd = {PMIC_CFG_SKIP_EEPROM_LOAD_VALID_SHIFT}; - - test_pmic_print_unity_testcase_info(10601, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(10601, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_getCommonCtrlConfig(pPmicCoreHandle, &commonCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10601, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setMiscCtrlConfig : Configure NRSTOUT Signal for high signal - */ -static void test_pmic_setMiscCtrlCfg_nRstOutSignal_high(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_MiscCtrlCfg_t miscCtrlCfg_rd = {PMIC_CFG_NRSTOUT_VALID_SHIFT,}; - Pmic_MiscCtrlCfg_t miscCtrlCfg = - { - PMIC_CFG_NRSTOUT_VALID_SHIFT, - PMIC_TPS6594X_AMUX_OUT_PIN_CFG_DISABLE, - PMIC_INTERNAL_CLK_MONITORING_CFG_DISABLE, - PMIC_SYNCCLKOUT_DISABLE, - PMIC_INTERNAL_RC_OSC, - PMIC_TPS6594X_SYNCCLKIN_1_1_MHZ, - PMIC_PIN_SIGNAL_LEVEL_HIGH, - PMIC_PIN_SIGNAL_LEVEL_HIGH - }; - - test_pmic_print_unity_testcase_info(10602, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(10602, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_setMiscCtrlConfig(pPmicCoreHandle, miscCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getMiscCtrlConfig(pPmicCoreHandle, &miscCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(miscCtrlCfg.nRstOutSignal, - miscCtrlCfg_rd.nRstOutSignal); - - pmic_testResultUpdate_pass(10602, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_setMiscCtrlConfig : Configure NRSTOUT_SOC Signal for high signal - */ -static void test_pmic_setMiscCtrlCfg_nRstOutSocSignal_high(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_MiscCtrlCfg_t miscCtrlCfg_rd = {PMIC_CFG_NRSTOUT_SOC_VALID_SHIFT,}; - Pmic_MiscCtrlCfg_t miscCtrlCfg = - { - PMIC_CFG_NRSTOUT_SOC_VALID_SHIFT, - PMIC_TPS6594X_AMUX_OUT_PIN_CFG_DISABLE, - PMIC_INTERNAL_CLK_MONITORING_CFG_DISABLE, - PMIC_SYNCCLKOUT_DISABLE, - PMIC_INTERNAL_RC_OSC, - PMIC_TPS6594X_SYNCCLKIN_1_1_MHZ, - PMIC_PIN_SIGNAL_LEVEL_HIGH, - PMIC_PIN_SIGNAL_LEVEL_HIGH - }; - - test_pmic_print_unity_testcase_info(10603, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - -#if defined(SOC_J721E) - if((PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev) && - (PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType)) - { - /* Ignore the test on J721E PG1.0 Not planning to debug this issue as - the same test is working fine for J721E PG2.0 */ - pmic_testResultUpdate_ignore(10603, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - } -#endif - - pmicStatus = Pmic_setMiscCtrlConfig(pPmicCoreHandle, miscCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getMiscCtrlConfig(pPmicCoreHandle, &miscCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(miscCtrlCfg.nRstOutSocSignal, - miscCtrlCfg_rd.nRstOutSocSignal); - - pmic_testResultUpdate_pass(10603, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_init : Config Device Type as PMIC_DEV_HERA_LP8764X - */ -static void test_pmic_init_cfg_deviceType(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicCfgData = {0U}; - Pmic_CoreHandle_t pHandle = {0U}; - - test_pmic_print_unity_testcase_info(10604, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - /** For MC/DC Coverage */ - pmicCfgData.validParams = PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - pmicCfgData.pmicDeviceType = PMIC_DEV_HERA_LP8764X; - status = Pmic_init(&pmicCfgData, &pHandle); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INSUFFICIENT_CFG, status); - - pmic_testResultUpdate_pass(10604, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -#if defined(SOC_J7200) -/*! - * \brief Pmic_setCommonCtrlConfig : Enable Skip EEPROM Default Load to CONF and Other registers - */ -static void test_pmic_setCommonCtrlCfg_hera_skipEepromDefaultLoadEnable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CommonCtrlCfg_t commonCtrlCfg_rd = {PMIC_CFG_SKIP_EEPROM_LOAD_VALID_SHIFT}; - Pmic_CommonCtrlCfg_t commonCtrlCfg = - { - PMIC_CFG_SKIP_EEPROM_LOAD_VALID_SHIFT, - PMIC_SPREAD_SPECTRUM_CFG_ENABLE, - PMIC_LP8764X_SKIP_EEPROM_DEF_LD_TO_CONF_OTHER_REGS_ENABLED, - PMIC_LP8764X_EEPROM_DEFAULTS_NOT_LOADED_TO_CONF_OTHER_REGS, - PMIC_PIN_SIGNAL_LEVEL_LOW, - PMIC_REGISTER_UNLOCK, - PMIC_SPREAD_SPECTRUM_MODULATION_DEPTH_NONE - }; - - test_pmic_print_unity_testcase_info(10751, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - if(J7VCL_LEO_PMICA_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(10751, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_setCommonCtrlConfig(pPmicCoreHandle, commonCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_getCommonCtrlConfig(pPmicCoreHandle, &commonCtrlCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(commonCtrlCfg.skipEepromDefaultLoadEn, - commonCtrlCfg_rd.skipEepromDefaultLoadEn); - - pmic_testResultUpdate_pass(10751, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} -#endif - -/*! - * \brief Fault Injection and Coverage Gaps - */ -static void test_pmic_coverageGaps(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RecovCntCfg_t recovCntCfg; - Pmic_RecovCntCfg_t recovCntCfg_rd; - Pmic_CoreCfg_t pmicCoreCfg = {0U}; - Pmic_CoreHandle_t pHandle = {0U}; - Pmic_CoreHandle_t *pmicCoreHandle; - uint8_t scratchPadRegId, data, userSpareRegNum; - uint8_t i2c1SpiCrcStat = 0xFF, i2c2CrcStat = 0xFF; - uint8_t i2c1Speed, i2c2Speed; - uint32_t testDrvInitStatus; - bool testCrcEnable; - Pmic_DeviceInfo_t deviceInfo; - Pmic_CommonCtrlCfg_t commonCtrlCfg_rd = {0U}; - Pmic_CommonCtrlCfg_t commonCtrlCfg = - { - PMIC_CFG_SPREAD_SPECTRUM_EN_VALID_SHIFT, - PMIC_SPREAD_SPECTRUM_CFG_ENABLE, - PMIC_LP8764X_SKIP_EEPROM_DEF_LD_TO_CONF_OTHER_REGS_DISABLED, - PMIC_TPS6594X_EEPROM_DEFAULTS_LOAD_TO_RTC_DOMAIN_BITS, - PMIC_PIN_SIGNAL_LEVEL_LOW, - PMIC_REGISTER_UNLOCK, - PMIC_SPREAD_SPECTRUM_MODULATION_DEPTH_NONE - }; - Pmic_CommonCtrlStat_t commonCtrlStat_rd = {0U}; - Pmic_BatteryCtrlCfg_t batteryCtrlCfg_rd = {0U}; - Pmic_BatteryCtrlCfg_t batteryCtrlCfg = - { - PMIC_CFG_END_OF_CHARGE_VOLTAGE_VALID_SHIFT, - PMIC_TPS6594X_BB_CHARGINGING_CFG_DISABLE, - PMIC_TPS6594X_BB_ENDOF_CHARGE_VOLATGE_2_5_V, - PMIC_TPS6594X_BB_CHARGING_CURRENT_100 - }; - Pmic_MiscCtrlCfg_t miscCtrlCfg_rd = {0U}; - Pmic_MiscCtrlCfg_t miscCtrlCfg = - { - PMIC_CFG_SYNC_CLK_IN_FREQ_VALID_SHIFT, - PMIC_TPS6594X_AMUX_OUT_PIN_CFG_DISABLE, - PMIC_INTERNAL_CLK_MONITORING_CFG_DISABLE, - PMIC_SYNCCLKOUT_DISABLE, - PMIC_INTERNAL_RC_OSC, - PMIC_TPS6594X_SYNCCLKIN_1_1_MHZ, - PMIC_PIN_SIGNAL_LEVEL_HIGH, - PMIC_PIN_SIGNAL_LEVEL_HIGH - }; - - uint8_t testpmicDevSiliconRev; - uint8_t testCommMode; - void *testCommHandle; - void *testQACommHandle; - void (*testFnPmicCritSecStart)(void); - void (*testFnPmicCritSecStop)(void); - int32_t (*testFnPmicCommIoRead)(struct Pmic_CoreHandle_s *, - uint8_t, - uint16_t, - uint8_t *, - uint8_t); - int32_t (*testFnPmicCommIoWrite)(struct Pmic_CoreHandle_s *, - uint8_t, - uint16_t, - uint8_t *, - uint8_t); - int32_t crcTestFlag = PMIC_STATUS_CRC_INIT_VAL; - - test_pmic_print_unity_testcase_info(8933, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - if(PMIC_INTF_SPI == pPmicCoreHandle->commMode) - { - pmic_testResultUpdate_ignore(8933, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - } - -#if defined(SOC_J721E) - crcTestFlag = gCrcTestFlag_J721E; -#endif - -#if defined(SOC_J7200) - crcTestFlag = gCrcTestFlag_J7VCL; -#endif - - //Fault Injection Tests - gPmic_faultInjectCfg.enableFaultInjectionRead = 1U; - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - gPmic_faultInjectCfg.commError = PMIC_ST_SUCCESS; - - recovCntCfg.validParams = PMIC_CFG_RECOV_CNT_THR_VAL_VALID_SHIFT; - recovCntCfg.thrVal = PMIC_RECOV_CNT_THR_MAX; - status = Pmic_setRecoveryCntCfg(pPmicCoreHandle, recovCntCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_setUserSpareValue - data = PMIC_USER_SPARE_REG_VAL_1; - userSpareRegNum = PMIC_USER_SPARE_REG_3; - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - status = Pmic_setUserSpareValue(pPmicCoreHandle, userSpareRegNum, data); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_spreadSpectrumEnable - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - commonCtrlCfg.validParams = PMIC_CFG_SPREAD_SPECTRUM_EN_VALID_SHIFT; - status = Pmic_setCommonCtrlConfig(pPmicCoreHandle, commonCtrlCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_getSpreadSpectrumEnable - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - commonCtrlCfg_rd.validParams = PMIC_CFG_SPREAD_SPECTRUM_EN_VALID_SHIFT; - status = Pmic_getCommonCtrlConfig(pPmicCoreHandle, &commonCtrlCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_setI2CSpeedCfg - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - status = Pmic_setI2CSpeedCfg(pPmicCoreHandle); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_getStartupEndrvNrstoutsocNrstoutNintPinStat - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - commonCtrlStat_rd.validParams = PMIC_CFG_STARTUP_PIN_STAT_VALID_SHIFT; - status = Pmic_getCommonCtrlStat(pPmicCoreHandle, &commonCtrlStat_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_getNIntPinStat - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - commonCtrlStat_rd.validParams = PMIC_CFG_NINT_PIN_STAT_VALID_SHIFT; - status = Pmic_getCommonCtrlStat(pPmicCoreHandle, &commonCtrlStat_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_getNRstOutPinStat - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - commonCtrlStat_rd.validParams = PMIC_CFG_NRSTOUT_PIN_STAT_VALID_SHIFT; - status = Pmic_getCommonCtrlStat(pPmicCoreHandle, &commonCtrlStat_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_getNRstOutSocPinStat - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - commonCtrlStat_rd.validParams = PMIC_CFG_NRSTOUTSOC_PIN_STAT_VALID_SHIFT; - status = Pmic_getCommonCtrlStat(pPmicCoreHandle, &commonCtrlStat_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_getEnDrvPinStat - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - commonCtrlStat_rd.validParams = PMIC_CFG_EN_DRV_PIN_STAT_VALID_SHIFT; - status = Pmic_getCommonCtrlStat(pPmicCoreHandle, &commonCtrlStat_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_getStartupPinStat - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - commonCtrlStat_rd.validParams = PMIC_CFG_STARTUP_PIN_STAT_VALID_SHIFT; - status = Pmic_getCommonCtrlStat(pPmicCoreHandle, &commonCtrlStat_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_getExtClkValidityStat - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - commonCtrlStat_rd.validParams = PMIC_CFG_EXT_CLK_VALIDITY_STAT_VALID_SHIFT; - status = Pmic_getCommonCtrlStat(pPmicCoreHandle, &commonCtrlStat_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_getRegLockStat - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - commonCtrlStat_rd.validParams = PMIC_CFG_REGISTER_LOCK_STAT_VALID_SHIFT; - status = Pmic_getCommonCtrlStat(pPmicCoreHandle, &commonCtrlStat_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_getBackupBatteryEocIndicationStat - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - commonCtrlStat_rd.validParams = PMIC_CFG_BB_EOC_INDICATION_STAT_VALID_SHIFT; - status = Pmic_getCommonCtrlStat(pPmicCoreHandle, &commonCtrlStat_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_getEnableDrvI2CSPICfg - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - commonCtrlStat_rd.validParams = PMIC_CFG_FORCE_ENABLE_DRV_LOW_STAT_VALID_SHIFT; - status = Pmic_getCommonCtrlStat(pPmicCoreHandle, &commonCtrlStat_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_getSpmiLpmCtrlCfg - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - commonCtrlStat_rd.validParams = PMIC_CFG_SPMI_LPM_STAT_VALID_SHIFT; - status = Pmic_getCommonCtrlStat(pPmicCoreHandle, &commonCtrlStat_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - //Pmic_setBackupBatteryChargingCurrentVal - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - batteryCtrlCfg.validParams = PMIC_CFG_CHARGE_CURRENT_VALID_SHIFT; - status = Pmic_setBatteryCtrlConfig(pPmicCoreHandle, batteryCtrlCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_getBackupBatteryChargingCurrentVal - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - batteryCtrlCfg_rd.validParams = PMIC_CFG_CHARGE_CURRENT_VALID_SHIFT; - status = Pmic_getBatteryCtrlConfig(pPmicCoreHandle, &batteryCtrlCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_setBackupBatteryEndOfChargeVoltage - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - batteryCtrlCfg.validParams = PMIC_CFG_END_OF_CHARGE_VOLTAGE_VALID_SHIFT; - status = Pmic_setBatteryCtrlConfig(pPmicCoreHandle, batteryCtrlCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_getBackupBatteryChargingCurrentVal - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - batteryCtrlCfg_rd.validParams = PMIC_CFG_END_OF_CHARGE_VOLTAGE_VALID_SHIFT; - status = Pmic_getBatteryCtrlConfig(pPmicCoreHandle, &batteryCtrlCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_backupBatteryChargingEnable - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - batteryCtrlCfg.validParams = PMIC_CFG_CHARGING_EN_VALID_SHIFT; - status = Pmic_setBatteryCtrlConfig(pPmicCoreHandle, batteryCtrlCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_getBackupBatteryChargingCfg - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - batteryCtrlCfg_rd.validParams = PMIC_CFG_CHARGING_EN_VALID_SHIFT; - status = Pmic_getBatteryCtrlConfig(pPmicCoreHandle, &batteryCtrlCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - } - - //Pmic_getExtclkfreqSelNRstOutSocNRstOutCfg - //Pmic_getExternalClkFreqSelectCfg - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - miscCtrlCfg_rd.validParams = PMIC_CFG_SYNC_CLK_IN_FREQ_VALID_SHIFT; - status = Pmic_getMiscCtrlConfig(pPmicCoreHandle, &miscCtrlCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_getNRstOutSignalCfg - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - miscCtrlCfg_rd.validParams = PMIC_CFG_NRSTOUT_VALID_SHIFT; - status = Pmic_getMiscCtrlConfig(pPmicCoreHandle, &miscCtrlCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_getNRstOutSocSignalCfg - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - miscCtrlCfg_rd.validParams = PMIC_CFG_NRSTOUT_SOC_VALID_SHIFT; - status = Pmic_getMiscCtrlConfig(pPmicCoreHandle, &miscCtrlCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_selectExternalClkFreq - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - miscCtrlCfg.validParams = PMIC_CFG_SYNC_CLK_IN_FREQ_VALID_SHIFT; - status = Pmic_setMiscCtrlConfig(pPmicCoreHandle, miscCtrlCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_selectExternalClk - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - miscCtrlCfg.validParams = PMIC_CFG_EXT_CLK_SEL_VALID_SHIFT; - status = Pmic_setMiscCtrlConfig(pPmicCoreHandle, miscCtrlCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_getExternalClkSelectCfg - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - miscCtrlCfg_rd.validParams = PMIC_CFG_EXT_CLK_SEL_VALID_SHIFT; - status = Pmic_getMiscCtrlConfig(pPmicCoreHandle, &miscCtrlCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_selectSyncClkOutFreq - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - miscCtrlCfg.validParams = PMIC_CFG_SYNC_CLK_OUT_FREQ_SEL_VALID_SHIFT; - status = Pmic_setMiscCtrlConfig(pPmicCoreHandle, miscCtrlCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_getSyncClkOutFreqSelectCfg - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - miscCtrlCfg_rd.validParams = PMIC_CFG_SYNC_CLK_OUT_FREQ_SEL_VALID_SHIFT; - status = Pmic_getMiscCtrlConfig(pPmicCoreHandle, &miscCtrlCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_setInternalClkMonitorCfg - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - miscCtrlCfg.validParams = PMIC_CFG_CLK_MON_EN_VALID_SHIFT; - status = Pmic_setMiscCtrlConfig(pPmicCoreHandle, miscCtrlCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_getInternalClkMonitorCfg - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - miscCtrlCfg_rd.validParams = PMIC_CFG_CLK_MON_EN_VALID_SHIFT; - status = Pmic_getMiscCtrlConfig(pPmicCoreHandle, &miscCtrlCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_setAmuxOutRefOutPinCfg - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - miscCtrlCfg.validParams = PMIC_CFG_AMUX_OUT_REF_OUT_EN_VALID_SHIFT; - status = Pmic_setMiscCtrlConfig(pPmicCoreHandle, miscCtrlCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_getAmuxOutRefOutPinCfg - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - miscCtrlCfg_rd.validParams = PMIC_CFG_AMUX_OUT_REF_OUT_EN_VALID_SHIFT; - status = Pmic_getMiscCtrlConfig(pPmicCoreHandle, &miscCtrlCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_setSpreadSpectrumModDepthCfg - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - commonCtrlCfg.validParams = PMIC_CFG_SPREAD_SPECTRUM_DEPTH_VALID_SHIFT; - status = Pmic_setCommonCtrlConfig(pPmicCoreHandle, commonCtrlCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_getSpreadSpectrumModDepthCfg - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - commonCtrlCfg_rd.validParams = PMIC_CFG_SPREAD_SPECTRUM_DEPTH_VALID_SHIFT; - status = Pmic_getCommonCtrlConfig(pPmicCoreHandle, &commonCtrlCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_setRegisterLockUnLockCfg - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - commonCtrlCfg.validParams = PMIC_CFG_REG_LOCK_VALID_SHIFT; - status = Pmic_setCommonCtrlConfig(pPmicCoreHandle, commonCtrlCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_eepromDefaultLoadEnable - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - commonCtrlCfg.validParams = PMIC_CFG_EEPROM_DEFAULT_VALID_SHIFT; - status = Pmic_setCommonCtrlConfig(pPmicCoreHandle, commonCtrlCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_getEepromDefaultLoadEnable - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - commonCtrlCfg_rd.validParams = PMIC_CFG_EEPROM_DEFAULT_VALID_SHIFT; - status = Pmic_getCommonCtrlConfig(pPmicCoreHandle, &commonCtrlCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_skipEepromDefaultLoadEnable - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - commonCtrlCfg.validParams = PMIC_CFG_SKIP_EEPROM_LOAD_VALID_SHIFT; - status = Pmic_setCommonCtrlConfig(pPmicCoreHandle, commonCtrlCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - } - - //Pmic_getSkipEepromDefaultLoadEnable - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - commonCtrlCfg_rd.validParams = PMIC_CFG_SKIP_EEPROM_LOAD_VALID_SHIFT; - status = Pmic_getCommonCtrlConfig(pPmicCoreHandle, &commonCtrlCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - } - - //Pmic_setEnableDrvPinCfg - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - commonCtrlCfg.validParams = PMIC_CFG_ENABLE_DRV_VALID_SHIFT; - status = Pmic_setCommonCtrlConfig(pPmicCoreHandle, commonCtrlCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_getEnableDrvPinCfg - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - commonCtrlCfg_rd.validParams = PMIC_CFG_ENABLE_DRV_VALID_SHIFT; - status = Pmic_getCommonCtrlConfig(pPmicCoreHandle, &commonCtrlCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_setNRstOutSignalCfg - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - miscCtrlCfg.validParams = PMIC_CFG_NRSTOUT_VALID_SHIFT; - miscCtrlCfg.nRstOutSignal = PMIC_PIN_SIGNAL_LEVEL_LOW; - status = Pmic_setMiscCtrlConfig(pPmicCoreHandle, miscCtrlCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_setNRstOutSocSignalCfg - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - miscCtrlCfg.validParams = PMIC_CFG_NRSTOUT_SOC_VALID_SHIFT; - miscCtrlCfg.nRstOutSocSignal = PMIC_PIN_SIGNAL_LEVEL_LOW; - status = Pmic_setMiscCtrlConfig(pPmicCoreHandle, miscCtrlCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - pmicCoreHandle = &pHandle; - *pmicCoreHandle = *pPmicCoreHandle; - - //Pmic_updateSubSysInfoValidateMainQaCommIFRdWr - testDrvInitStatus = pHandle.drvInitStatus; - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 3; - pHandle.drvInitStatus = 0; - status = Pmic_init(&pmicCoreCfg, &pHandle); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - pHandle.drvInitStatus = testDrvInitStatus; - - //Pmic_getDeviceInfo - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - status = Pmic_getDeviceInfo(pPmicCoreHandle, &deviceInfo); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.enableFaultInjectionRead = 0U; - - testCommMode = pHandle.commMode; - testCrcEnable = pHandle.crcEnable; - - //Pmic_initCoreHandleBasicDevCfgParams - pmicCoreCfg.validParams = PMIC_CFG_SLAVEADDR_VALID_SHIFT; - pHandle.commMode = 3U; - pHandle.crcEnable = 0U; - status = Pmic_init(&pmicCoreCfg, &pHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - //Pmic_initCoreHandleBasicDevCfgParams - pmicCoreCfg.validParams = PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - pHandle.commMode = 3U; - status = Pmic_init(&pmicCoreCfg, &pHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - //Pmic_initCoreHandleI2CSpeedCommHandle - pmicCoreCfg.validParams = PMIC_CFG_I2C1_SPEED_VALID_SHIFT; - pHandle.commMode = 3U; - status = Pmic_init(&pmicCoreCfg, &pHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - //Pmic_initCoreHandleQADevCfgParams - pmicCoreCfg.validParams = PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - pHandle.commMode = 3U; - status = Pmic_init(&pmicCoreCfg, &pHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - pHandle.crcEnable = 1U; - - if((J721E_LEO_PMICA_DEVICE == pmic_device_info) || - (J7VCL_LEO_PMICA_DEVICE == pmic_device_info)) - { - //Pmic_initCoreHandleI2CSpeedCommHandle - pmicCoreCfg.validParams = PMIC_CFG_I2C2_SPEED_VALID_SHIFT; - pmicCoreCfg.i2c2Speed = PMIC_I2C_STANDARD_MODE; - pHandle.commMode = PMIC_INTF_SINGLE_I2C; - status = Pmic_init(&pmicCoreCfg, &pHandle); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_I2C_COMM_FAIL, status); - - //Pmic_initCoreHandleQADevCfgParams - testQACommHandle = pHandle.pQACommHandle; - pmicCoreCfg.validParams = PMIC_CFG_QACOMM_HANDLE_VALID_SHIFT; - pmicCoreCfg.pQACommHandle = test_pmic_coverageGaps; - pHandle.commMode = PMIC_INTF_SINGLE_I2C; - status = Pmic_init(&pmicCoreCfg, &pHandle); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_I2C_COMM_FAIL, status); - pHandle.pQACommHandle = testQACommHandle; - } - pHandle.commMode = testCommMode; - pHandle.crcEnable = testCrcEnable; - - //Pmic_setI2CSpeedCfg - testCommMode = pPmicCoreHandle->commMode; - pPmicCoreHandle->commMode = PMIC_INTF_SPI; - status = Pmic_setI2CSpeedCfg(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - //Pmic_getCrcStatus - pPmicCoreHandle->commMode = 3U; - status = Pmic_getCrcStatus(pPmicCoreHandle, &i2c1SpiCrcStat, &i2c2CrcStat); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_COMM_MODE, status); - - if((PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) && - (PMIC_STATUS_CRC_ENABLED == crcTestFlag)) - { - recovCntCfg_rd.validParams = PMIC_CFG_RECOV_CNT_CLR_CNT_VALID_SHIFT; - status = Pmic_getRecoveryCntCfg(pPmicCoreHandle, &recovCntCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, status); - } - - //Pmic_getCrcStatus - pPmicCoreHandle->commMode = PMIC_INTF_SPI; - status = Pmic_getCrcStatus(pPmicCoreHandle, &i2c1SpiCrcStat, &i2c2CrcStat); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - //Pmic_getCrcStatus - pPmicCoreHandle->commMode = 0; - status = Pmic_getCrcStatus(pPmicCoreHandle, &i2c1SpiCrcStat, &i2c2CrcStat); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - //Pmic_getI2CSpeed - pPmicCoreHandle->commMode = PMIC_INTF_SPI; - status = Pmic_getI2CSpeed(pPmicCoreHandle, &i2c1Speed, &i2c2Speed); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_COMM_MODE, status); - - pPmicCoreHandle->commMode = testCommMode; - - pmicCoreCfg.validParams = 0U; - - testCommHandle = pHandle.pCommHandle; - pHandle.pCommHandle = NULL; - status = Pmic_init(&pmicCoreCfg, &pHandle); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INSUFFICIENT_CFG, status); - pHandle.pCommHandle = testCommHandle; - - testFnPmicCritSecStart = pHandle.pFnPmicCritSecStart; - - pHandle.pFnPmicCritSecStart = NULL; - status = Pmic_init(&pmicCoreCfg, &pHandle); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INSUFFICIENT_CFG, status); - pHandle.pFnPmicCritSecStart = testFnPmicCritSecStart; - - testFnPmicCritSecStop = pHandle.pFnPmicCritSecStop; - pHandle.pFnPmicCritSecStop = NULL; - status = Pmic_init(&pmicCoreCfg, &pHandle); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INSUFFICIENT_CFG, status); - pHandle.pFnPmicCritSecStop = testFnPmicCritSecStop; - - testFnPmicCommIoRead = pHandle.pFnPmicCommIoRead; - pHandle.pFnPmicCommIoRead = NULL; - status = Pmic_init(&pmicCoreCfg, &pHandle); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INSUFFICIENT_CFG, status); - pHandle.pFnPmicCommIoRead = testFnPmicCommIoRead; - - testFnPmicCommIoWrite = pHandle.pFnPmicCommIoWrite; - pHandle.pFnPmicCommIoWrite = NULL; - status = Pmic_init(&pmicCoreCfg, &pHandle); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INSUFFICIENT_CFG, status); - pHandle.pFnPmicCommIoWrite = testFnPmicCommIoWrite; - - data = 0x10; - scratchPadRegId = PMIC_SCRATCH_PAD_REG_3; - testFnPmicCritSecStop = pPmicCoreHandle->pFnPmicCritSecStop; - testFnPmicCritSecStart = pPmicCoreHandle->pFnPmicCritSecStart; - testFnPmicCommIoRead = pPmicCoreHandle->pFnPmicCommIoRead; - testFnPmicCommIoWrite = pPmicCoreHandle->pFnPmicCommIoWrite; - - pPmicCoreHandle->pFnPmicCritSecStop = NULL; - status = Pmic_setScratchPadValue(pPmicCoreHandle, scratchPadRegId, data); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - pPmicCoreHandle->pFnPmicCritSecStop = testFnPmicCritSecStop; - - pPmicCoreHandle->pFnPmicCritSecStart = NULL; - status = Pmic_setScratchPadValue(pPmicCoreHandle, scratchPadRegId, data); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - pPmicCoreHandle->pFnPmicCritSecStart = testFnPmicCritSecStart; - - // Coverage Gaps In IO - uint8_t data_rd = 0U; - pPmicCoreHandle->pFnPmicCommIoRead = NULL; - status = Pmic_getScratchPadValue(pPmicCoreHandle, scratchPadRegId, &data_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_FPTR, status); - pPmicCoreHandle->pFnPmicCommIoRead = testFnPmicCommIoRead; - - pPmicCoreHandle->pFnPmicCommIoWrite = NULL; - status = Pmic_setScratchPadValue(pPmicCoreHandle, scratchPadRegId, data); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_FPTR, status); - pPmicCoreHandle->pFnPmicCommIoWrite = testFnPmicCommIoWrite; - - testCommHandle = pPmicCoreHandle->pCommHandle; - pPmicCoreHandle->pCommHandle = NULL; - status = Pmic_setScratchPadValue(pPmicCoreHandle, scratchPadRegId, data); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, status); - - status = Pmic_getScratchPadValue(pPmicCoreHandle, scratchPadRegId, &data_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, status); - - pPmicCoreHandle->pCommHandle = testCommHandle; - - //Pmic_getDeviceInfo - testpmicDevSiliconRev = pPmicCoreHandle->pmicDevSiliconRev; - pPmicCoreHandle->pmicDevSiliconRev = 0x01U; - status = Pmic_getDeviceInfo(pPmicCoreHandle, &deviceInfo); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_SILICON_REVISION, status); - pPmicCoreHandle->pmicDevSiliconRev = testpmicDevSiliconRev; - - if(PMIC_STATUS_CRC_INIT_VAL == crcTestFlag) - { - //Pmic_getRecoveryCntCfg - gRecoveryCntCfgTestFlag = 1U; - recovCntCfg_rd.validParams = PMIC_CFG_RECOV_CNT_CLR_CNT_VALID_SHIFT; - status = Pmic_getRecoveryCntCfg(pPmicCoreHandle, &recovCntCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - gRecoveryCntCfgTestFlag = 0U; - - //Pmic_setEnableDrvPinCfg - gEnableDrvPinCfgTestFlag = 1U; - commonCtrlCfg.validParams = PMIC_CFG_ENABLE_DRV_VALID_SHIFT; - status = Pmic_setCommonCtrlConfig(pPmicCoreHandle, commonCtrlCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_EN_DRV_PIN_CFG, status); - gEnableDrvPinCfgTestFlag = 0U; - - //Pmic_getSpmiLpmCtrlCfg - gSpmiLpmStatTestFlag = 1U; - commonCtrlStat_rd.validParams = PMIC_CFG_SPMI_LPM_STAT_VALID_SHIFT; - status = Pmic_getCommonCtrlStat(pPmicCoreHandle, &commonCtrlStat_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - gSpmiLpmStatTestFlag = 0U; - - if((J721E_LEO_PMICA_DEVICE == pmic_device_info) || - (J7VCL_LEO_PMICA_DEVICE == pmic_device_info)) - { - //Pmic_updateCrcEnableStatValidateDevOnBus - testDrvInitStatus = pHandle.drvInitStatus; - gI2c2CrcEnableTestFlag = 1U; - pHandle.drvInitStatus = 0x0U; - status = Pmic_init(&pmicCoreCfg, &pHandle); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_CRC_STATUS_FAIL, status); - pHandle.drvInitStatus = testDrvInitStatus; - gI2c2CrcEnableTestFlag = 0U; - } - - if((J721E_LEO_PMICB_DEVICE == pmic_device_info) || - (J7VCL_HERA_PMICB_DEVICE == pmic_device_info)) - { - testDrvInitStatus = pHandle.drvInitStatus; - gI2c1CrcEnableTestFlag = 1U; - pHandle.drvInitStatus = 0x0U; - status = Pmic_init(&pmicCoreCfg, &pHandle); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_DATA_IO_CRC, status); - pHandle.drvInitStatus = testDrvInitStatus; - gI2c1CrcEnableTestFlag = 0U; - } - } - - if((PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) && - (PMIC_STATUS_CRC_ENABLED == crcTestFlag)) - { - //Pmic_getRecoveryCntCfg - gRecoveryCntCfgTestFlag = 1U; - recovCntCfg_rd.validParams = PMIC_CFG_RECOV_CNT_CLR_CNT_VALID_SHIFT; - status = Pmic_getRecoveryCntCfg(pPmicCoreHandle, &recovCntCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_DATA_IO_CRC, status); - gRecoveryCntCfgTestFlag = 0U; - - } - - if((J721E_LEO_PMICA_DEVICE == pmic_device_info) || - (J7VCL_LEO_PMICA_DEVICE == pmic_device_info)) - { - gPmic_faultInjectCfg.enableFaultInjectionRead = 1U; - - test_pmic_appDeInit(pPmicCoreHandle); - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pmicCoreCfg.validParams = 0U; - status = test_pmic_leo_pmicA_misc_testApp(); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - test_pmic_appDeInit(pPmicCoreHandle); - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 2; - pmicCoreCfg.validParams = 0U; - status = test_pmic_leo_pmicA_misc_testApp(); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.commError = PMIC_ST_SUCCESS; - test_pmic_appDeInit(pPmicCoreHandle); - status = test_pmic_leo_pmicA_misc_testApp(); - - gPmic_faultInjectCfg.enableFaultInjectionRead = 0U; - } - - pmic_testResultUpdate_pass(8933, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); -} - -#if defined(UNITY_INCLUDE_CONFIG_V2_H) && \ - (defined(SOC_J721E) || defined(SOC_J7200)) -/*! - * \brief Run misc unity test cases for Master PMIC - */ -static void test_pmic_run_testcases(void) -{ - pmic_log("\n\n%s(): %d: Begin Unity Test Cases...\n", __func__, __LINE__); - UNITY_BEGIN(); - - pmic_testResult_init(pmic_misc_tests, PMIC_MISC_NUM_OF_TESTCASES); - - RUN_TEST(test_pmic_setRecoveryCntCfg_threshold); - RUN_TEST(test_pmic_setRecoveryCntCfgPrmValTest_thrVal); - RUN_TEST(test_pmic_setRecoveryCntCfg_clrCnt); - RUN_TEST(test_pmic_setRecoveryCntCfgPrmValTest_clrCnt); - RUN_TEST(test_pmic_setRecoveryCntCfgPrmValTest_handle); - RUN_TEST(test_pmic_getRecoveryCntCfgPrmValTest_handle); - RUN_TEST(test_pmic_getRecoveryCntCfgPrmValTest_recovCntCfg); - RUN_TEST(test_Pmic_getRecoveryCntPrmValTest_handle); - RUN_TEST(test_Pmic_getRecoveryCntPrmValTest_recovCntVal); - RUN_TEST(test_pmic_setScratchPadValuePrmValTest_handle); - RUN_TEST(test_pmic_setScratchPadValuePrmValTest_scratchPadRegId); - RUN_TEST(test_pmic_setScratchPadValue_setget); - RUN_TEST(test_pmic_getScratchPadValuePrmValTest_handle); - RUN_TEST(test_pmic_getScratchPadValuePrmValTest_scratchPadRegId); - RUN_TEST(test_pmic_getScratchPadValuePrmValTest_data); - RUN_TEST(test_pmic_setUserSpareValuePrmValTest_handle); - RUN_TEST(test_pmic_setUserSpareValuePrmValTest_userSpareRegNum); - RUN_TEST(test_pmic_setUserSpareValuePrmValTest_data); - RUN_TEST(test_pmic_setUserSpareValue); - RUN_TEST(test_pmic_getUserSpareValuePrmValTest_handle); - RUN_TEST(test_pmic_getUserSpareValuePrmValTest_userSpareRegNum); - RUN_TEST(test_pmic_getUserSpareValuePrmValTest_data); - RUN_TEST(test_pmic_setCommonCtrlCfg_sreadSpectrumEnable); - RUN_TEST(test_pmic_setCommonCtrlCfg_RegisterLock); - RUN_TEST(test_pmic_setCommonCtrlCfg_sreadSpectrumDepth); - RUN_TEST(test_pmic_getCommonCtrlCfgPrmValTest_handle); - RUN_TEST(test_pmic_getCommonCtrlCfgPrmValTest_pCommonCtrlCfg); - RUN_TEST(test_pmic_setCommonCtrlCfgPrmValTest_eepromDefaultLoad); - RUN_TEST(test_pmic_setCommonCtrlCfgPrmValTest_regLock); - RUN_TEST(test_pmic_setCommonCtrlCfgPrmValTest_spreadSpectrumDepth); - RUN_TEST(test_pmic_setCommonCtrlCfgPrmValTest_handle); - RUN_TEST(test_pmic_setMiscCtrlCfg_amuxOutRefOutEn); - RUN_TEST(test_pmic_setMiscCtrlCfg_clkMonEn); - RUN_TEST(test_pmic_setMiscCtrlCfg_syncClkOutFreqSel); - RUN_TEST(test_pmic_setMiscCtrlCfg_extClkSel); - RUN_TEST(test_pmic_setMiscCtrlCfg_syncClkInFreq); - RUN_TEST(test_pmic_setMiscCtrlCfgPrmValTest_syncClkOutFreqSel); - RUN_TEST(test_pmic_setMiscCtrlCfgPrmValTest_extClkSel); - RUN_TEST(test_pmic_setMiscCtrlCfgPrmValTest_syncClkInFreq); - RUN_TEST(test_pmic_setMiscCtrlCfgPrmValTest_handle); - RUN_TEST(test_pmic_getMiscCtrlCfgPrmValTest_handle); - RUN_TEST(test_pmic_getMiscCtrlCfgPrmValTest_pMiscCtrlCfg); - RUN_TEST(test_pmic_setBatteryCtrlCfg_chargingEn); - RUN_TEST(test_pmic_setBatteryCtrlCfg_endOfChargeVoltage); - RUN_TEST(test_pmic_setBatteryCtrlCfg_chargeCurrent); - RUN_TEST(test_pmic_setBatteryCtrlCfgPrmValTest_endOfChargeVoltage); - RUN_TEST(test_pmic_setBatteryCtrlCfgPrmValTest_chargeCurrent); - RUN_TEST(test_pmic_setBatteryCtrlCfgPrmValTest_handle); - RUN_TEST(test_pmic_getBatteryCtrlCfgPrmValTest_handle); - RUN_TEST(test_pmic_getBatteryCtrlCfgPrmValTest_pBatteryCtrlCfg); - RUN_TEST(test_pmic_getCommonCtrlStat_nIntPin); - RUN_TEST(test_pmic_getCommonCtrlStat_spmiLpmStat); - RUN_TEST(test_pmic_getCommonCtrlStat_forceEnDrvLowStat); - RUN_TEST(test_pmic_getCommonCtrlStat_bbEndOfChargeIndication); - RUN_TEST(test_pmic_getCommonCtrlStat_regLockStat); - RUN_TEST(test_pmic_getCommonCtrlStat_extClkValidity); - RUN_TEST(test_pmic_getCommonCtrlStat_startupPin); - RUN_TEST(test_pmic_getCommonCtrlStat_enDrvPin); - RUN_TEST(test_pmic_getCommonCtrlStat_nRstOutSocPin); - RUN_TEST(test_pmic_getCommonCtrlStat_nRstOutPin); - RUN_TEST(test_pmic_getCommonCtrlStatPrmValTest_handle); - RUN_TEST(test_pmic_getCommonCtrlStatPrmValTest_pCommonCtrlStat); - RUN_TEST(test_pmic_getI2CSpeedPrmValTest_handle); - RUN_TEST(test_pmic_getI2CSpeedPrmValTest_pI2C1Speed); - RUN_TEST(test_pmic_getI2CSpeedPrmValTest_pI2C2Speed); - RUN_TEST(test_pmic_getI2CSpeed); - RUN_TEST(test_pmic_getDeviceInfo); - RUN_TEST(test_pmic_getDeviceInfoPrmValTest_handle); - RUN_TEST(test_pmic_getDeviceInfoPrmValTest_pDeviceInfo); - RUN_TEST(test_pmic_getPinValue_enableDrv); - RUN_TEST(test_pmic_getPinValue_nRstOutSoc); - RUN_TEST(test_pmic_getPinValue_nRstOut); - RUN_TEST(test_pmic_getPinValuePrmValTest_pinType); - RUN_TEST(test_pmic_getPinValuePrmValTest_handle); - RUN_TEST(test_pmic_getPinValuePrmValTest_pPinValue); - RUN_TEST(test_pmic_setMiscCtrlCfgPrmValTest_nRstOutSocSignal); - RUN_TEST(test_pmic_setMiscCtrlCfgPrmValTest_nRstOutSignal); - RUN_TEST(test_pmic_getMiscCtrlCfg_nRstOutSocSignal); - RUN_TEST(test_pmic_getMiscCtrlCfg_nRstOutSignal); - RUN_TEST(test_pmic_setCommonCtrlCfgPrmValTest_enDrv); - RUN_TEST(test_pmic_WriteProtection_RegisterLock); - RUN_TEST(test_pmic_WriteProtection_RegisterUnLock); - - RUN_TEST(test_pmic_getRecoveryCntVal); - RUN_TEST(test_pmic_getRecoveryCntPrmValTest_pRecovCntVal); - RUN_TEST(test_pmic_initPrmValTest_handle); - RUN_TEST(test_pmic_initPrmValTest_pmicCfgData); - RUN_TEST(test_pmic_initPrmValTest_pmicDevType); - RUN_TEST(test_pmic_initPrmValTest_commMode); - RUN_TEST(test_pmic_initPrmValTest_pCommHandle); - RUN_TEST(test_pmic_initPrmValTest_pQACommHandle); - RUN_TEST(test_pmic_initPrmValTest_pFnCommIoRead); - RUN_TEST(test_pmic_initPrmValTest_pFnCommIoWrite); - RUN_TEST(test_pmic_initPrmValTest_pFnCritSecStart); - RUN_TEST(test_pmic_initPrmValTest_pFnCritSecStop); - RUN_TEST(test_pmic_deinitPrmValTest_handle); - RUN_TEST(test_pmic_setScratchPadValue_reg1Reg2Reg3); - - RUN_TEST(test_pmic_initPrmValTest_i2c1Speed); - RUN_TEST(test_pmic_initPrmValTest_i2c2Speed); -#if defined(SOC_J7200) - RUN_TEST(test_pmic_setCommonCtrlCfg_hera_skipEepromDefaultLoadDisable); - RUN_TEST(test_pmic_setCommonCtrlCfg_hera_skipEepromDefaultLoadEnable); -#endif - RUN_TEST(test_pmic_setI2CSpeedCfgPrmValTest_handle); - RUN_TEST(test_pmic_getCrcStatusPrmValTest_handle); - RUN_TEST(test_pmic_getCrcStatusPrmValTest_pI2c2CrcStatus); - RUN_TEST(test_pmic_getCrcStatusPrmValTest_pI2c1CrcStatus); - RUN_TEST(test_pmic_getCrcStatusPrmValTest_pI2c1I2C2CrcStatus); - RUN_TEST(test_pmic_enableCRCPrmValTest_handle); - RUN_TEST(test_pmic_setBatteryCtrlCfg_hera); - RUN_TEST(test_pmic_getBatteryCtrlCfg_hera); - RUN_TEST(test_pmic_setCommonCtrlCfg_hera_EepromDefaultLoadDisable); - RUN_TEST(test_pmic_setCommonCtrlCfg_leo_skipEepromDefaultLoadDisable); - RUN_TEST(test_pmic_getCommonCtrlCfg_leo_skipEepromDefaultLoadDisable); - RUN_TEST(test_pmic_setMiscCtrlCfg_nRstOutSignal_high); - RUN_TEST(test_pmic_setMiscCtrlCfg_nRstOutSocSignal_high); - RUN_TEST(test_pmic_init_cfg_deviceType); - RUN_TEST(test_pmic_WriteProtection_RegisterLock_codecoverage); - RUN_TEST(test_pmic_setCommonCtrlCfg_enDrv_codecoverage); - - RUN_TEST(test_pmic_coverageGaps); - - pmic_updateTestResults(pmic_misc_tests, PMIC_MISC_NUM_OF_TESTCASES); - - UNITY_END(); -} - -/*! - * \brief Run misc unity test cases for Slave PMIC - */ -static void test_pmic_run_slave_testcases(void) -{ - pmic_log("\n\n%s(): %d: Begin Unity Test Cases...\n", __func__, __LINE__); - UNITY_BEGIN(); - - pmic_testResult_init(pmic_misc_tests, PMIC_MISC_NUM_OF_TESTCASES); - - RUN_TEST(test_pmic_setRecoveryCntCfg_threshold); - RUN_TEST(test_pmic_setRecoveryCntCfgPrmValTest_thrVal); - RUN_TEST(test_pmic_setRecoveryCntCfg_clrCnt); - RUN_TEST(test_pmic_setRecoveryCntCfgPrmValTest_clrCnt); - RUN_TEST(test_pmic_setRecoveryCntCfgPrmValTest_handle); - RUN_TEST(test_pmic_getRecoveryCntCfgPrmValTest_handle); - RUN_TEST(test_pmic_getRecoveryCntCfgPrmValTest_recovCntCfg); - RUN_TEST(test_Pmic_getRecoveryCntPrmValTest_handle); - RUN_TEST(test_Pmic_getRecoveryCntPrmValTest_recovCntVal); - RUN_TEST(test_pmic_setScratchPadValuePrmValTest_handle); - RUN_TEST(test_pmic_setScratchPadValuePrmValTest_scratchPadRegId); - RUN_TEST(test_pmic_setScratchPadValue_setget); - RUN_TEST(test_pmic_getScratchPadValuePrmValTest_handle); - RUN_TEST(test_pmic_getScratchPadValuePrmValTest_scratchPadRegId); - RUN_TEST(test_pmic_getScratchPadValuePrmValTest_data); - - RUN_TEST(test_pmic_setUserSpareValuePrmValTest_handle); - RUN_TEST(test_pmic_setUserSpareValuePrmValTest_userSpareRegNum); - RUN_TEST(test_pmic_setUserSpareValuePrmValTest_data); - RUN_TEST(test_pmic_setUserSpareValue); - RUN_TEST(test_pmic_getUserSpareValuePrmValTest_handle); - RUN_TEST(test_pmic_getUserSpareValuePrmValTest_userSpareRegNum); - RUN_TEST(test_pmic_getUserSpareValuePrmValTest_data); - RUN_TEST(test_pmic_setCommonCtrlCfg_sreadSpectrumEnable); - RUN_TEST(test_pmic_setCommonCtrlCfg_RegisterLock); - RUN_TEST(test_pmic_setCommonCtrlCfg_sreadSpectrumDepth); - RUN_TEST(test_pmic_getCommonCtrlCfgPrmValTest_handle); - RUN_TEST(test_pmic_getCommonCtrlCfgPrmValTest_pCommonCtrlCfg); - RUN_TEST(test_pmic_setCommonCtrlCfgPrmValTest_eepromDefaultLoad); - RUN_TEST(test_pmic_setCommonCtrlCfgPrmValTest_regLock); - RUN_TEST(test_pmic_setCommonCtrlCfgPrmValTest_spreadSpectrumDepth); - RUN_TEST(test_pmic_setCommonCtrlCfgPrmValTest_handle); - RUN_TEST(test_pmic_setMiscCtrlCfg_amuxOutRefOutEn); - RUN_TEST(test_pmic_setMiscCtrlCfg_clkMonEn); - RUN_TEST(test_pmic_setMiscCtrlCfg_syncClkOutFreqSel); - RUN_TEST(test_pmic_setMiscCtrlCfg_extClkSel); - RUN_TEST(test_pmic_setMiscCtrlCfg_syncClkInFreq); - RUN_TEST(test_pmic_setMiscCtrlCfgPrmValTest_syncClkOutFreqSel); - RUN_TEST(test_pmic_setMiscCtrlCfgPrmValTest_extClkSel); - RUN_TEST(test_pmic_setMiscCtrlCfgPrmValTest_syncClkInFreq); - RUN_TEST(test_pmic_setMiscCtrlCfgPrmValTest_handle); - RUN_TEST(test_pmic_getMiscCtrlCfgPrmValTest_handle); - RUN_TEST(test_pmic_getMiscCtrlCfgPrmValTest_pMiscCtrlCfg); - RUN_TEST(test_pmic_setBatteryCtrlCfg_chargingEn); - RUN_TEST(test_pmic_setBatteryCtrlCfg_endOfChargeVoltage); - RUN_TEST(test_pmic_setBatteryCtrlCfg_chargeCurrent); - RUN_TEST(test_pmic_setBatteryCtrlCfgPrmValTest_endOfChargeVoltage); - RUN_TEST(test_pmic_setBatteryCtrlCfgPrmValTest_chargeCurrent); - RUN_TEST(test_pmic_setBatteryCtrlCfgPrmValTest_handle); - RUN_TEST(test_pmic_getBatteryCtrlCfgPrmValTest_handle); - RUN_TEST(test_pmic_getBatteryCtrlCfgPrmValTest_pBatteryCtrlCfg); - RUN_TEST(test_pmic_getCommonCtrlStat_nIntPin); - RUN_TEST(test_pmic_getCommonCtrlStat_spmiLpmStat); - - RUN_TEST(test_pmic_getCommonCtrlStat_bbEndOfChargeIndication); - RUN_TEST(test_pmic_getCommonCtrlStat_regLockStat); - RUN_TEST(test_pmic_getCommonCtrlStat_extClkValidity); - RUN_TEST(test_pmic_getCommonCtrlStat_startupPin); - RUN_TEST(test_pmic_getCommonCtrlStat_enDrvPin); - RUN_TEST(test_pmic_getCommonCtrlStat_nRstOutSocPin); - RUN_TEST(test_pmic_getCommonCtrlStat_nRstOutPin); - RUN_TEST(test_pmic_getCommonCtrlStatPrmValTest_handle); - RUN_TEST(test_pmic_getCommonCtrlStatPrmValTest_pCommonCtrlStat); - RUN_TEST(test_pmic_getI2CSpeedPrmValTest_handle); - RUN_TEST(test_pmic_getI2CSpeedPrmValTest_pI2C1Speed); - RUN_TEST(test_pmic_getI2CSpeedPrmValTest_pI2C2Speed); - RUN_TEST(test_pmic_getI2CSpeed); - RUN_TEST(test_pmic_getDeviceInfo); - RUN_TEST(test_pmic_getDeviceInfoPrmValTest_handle); - RUN_TEST(test_pmic_getDeviceInfoPrmValTest_pDeviceInfo); - RUN_TEST(test_pmic_getPinValue_enableDrv); - - - RUN_TEST(test_pmic_getPinValuePrmValTest_pinType); - RUN_TEST(test_pmic_getPinValuePrmValTest_handle); - RUN_TEST(test_pmic_getPinValuePrmValTest_pPinValue); - RUN_TEST(test_pmic_setMiscCtrlCfgPrmValTest_nRstOutSocSignal); - RUN_TEST(test_pmic_setMiscCtrlCfgPrmValTest_nRstOutSignal); - - - RUN_TEST(test_pmic_setCommonCtrlCfgPrmValTest_enDrv); - RUN_TEST(test_pmic_WriteProtection_RegisterLock); - RUN_TEST(test_pmic_WriteProtection_RegisterUnLock); - - RUN_TEST(test_pmic_getRecoveryCntVal); - RUN_TEST(test_pmic_getRecoveryCntPrmValTest_pRecovCntVal); - RUN_TEST(test_pmic_initPrmValTest_handle); - RUN_TEST(test_pmic_initPrmValTest_pmicCfgData); - RUN_TEST(test_pmic_initPrmValTest_pmicDevType); - RUN_TEST(test_pmic_initPrmValTest_commMode); - RUN_TEST(test_pmic_initPrmValTest_pCommHandle); - RUN_TEST(test_pmic_initPrmValTest_pQACommHandle); - RUN_TEST(test_pmic_initPrmValTest_pFnCommIoRead); - RUN_TEST(test_pmic_initPrmValTest_pFnCommIoWrite); - RUN_TEST(test_pmic_initPrmValTest_pFnCritSecStart); - RUN_TEST(test_pmic_initPrmValTest_pFnCritSecStop); - RUN_TEST(test_pmic_deinitPrmValTest_handle); - RUN_TEST(test_pmic_setScratchPadValue_reg1Reg2Reg3); - - RUN_TEST(test_pmic_initPrmValTest_i2c1Speed); - RUN_TEST(test_pmic_initPrmValTest_i2c2Speed); -#if defined(SOC_J7200) - RUN_TEST(test_pmic_setCommonCtrlCfg_hera_skipEepromDefaultLoadDisable); - RUN_TEST(test_pmic_setCommonCtrlCfg_hera_skipEepromDefaultLoadEnable); -#endif - RUN_TEST(test_pmic_setI2CSpeedCfgPrmValTest_handle); - RUN_TEST(test_pmic_getCrcStatusPrmValTest_handle); - RUN_TEST(test_pmic_getCrcStatusPrmValTest_pI2c2CrcStatus); - RUN_TEST(test_pmic_getCrcStatusPrmValTest_pI2c1CrcStatus); - RUN_TEST(test_pmic_getCrcStatusPrmValTest_pI2c1I2C2CrcStatus); - RUN_TEST(test_pmic_enableCRCPrmValTest_handle); - RUN_TEST(test_pmic_setBatteryCtrlCfg_hera); - RUN_TEST(test_pmic_getBatteryCtrlCfg_hera); - RUN_TEST(test_pmic_setCommonCtrlCfg_hera_EepromDefaultLoadDisable); - RUN_TEST(test_pmic_setCommonCtrlCfg_leo_skipEepromDefaultLoadDisable); - RUN_TEST(test_pmic_getCommonCtrlCfg_leo_skipEepromDefaultLoadDisable); - RUN_TEST(test_pmic_setMiscCtrlCfg_nRstOutSignal_high); - RUN_TEST(test_pmic_setMiscCtrlCfg_nRstOutSocSignal_high); - RUN_TEST(test_pmic_init_cfg_deviceType); - RUN_TEST(test_pmic_coverageGaps); - - pmic_updateTestResults(pmic_misc_tests, PMIC_MISC_NUM_OF_TESTCASES); - UNITY_END(); -} - -/*! - * \brief MISC Unity Test App wrapper Function for LEO PMIC-A - */ -static int32_t test_pmic_leo_pmicA_misc_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_LEO_TPS6594X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_DUAL_I2C; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.i2c1Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C1_SPEED_VALID_SHIFT; - - pmicConfigData.i2c2Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C2_SPEED_VALID_SHIFT; - - if(J721E_LEO_PMICA_DEVICE == pmic_device_info) - { - pmicConfigData.slaveAddr = J721E_LEO_PMICA_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J721E_LEO_PMICA_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J721E_LEO_PMICA_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - } - if(J7VCL_LEO_PMICA_DEVICE == pmic_device_info) - { - pmicConfigData.slaveAddr = J7VCL_LEO_PMICA_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J7VCL_LEO_PMICA_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J7VCL_LEO_PMICA_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - } - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; -} - -/*! - * \brief MISC Unity Test App wrapper Function for LEO PMIC-B - */ -static int32_t test_pmic_leo_pmicB_misc_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_LEO_TPS6594X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_SINGLE_I2C; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.i2c1Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C1_SPEED_VALID_SHIFT; - - pmicConfigData.slaveAddr = J721E_LEO_PMICB_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J721E_LEO_PMICB_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J721E_LEO_PMICB_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; - -} - -/*! - * \brief MISC Unity Test App wrapper Function for HERA PMIC - */ -static int32_t test_pmic_hera_misc_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_HERA_LP8764X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_SINGLE_I2C; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.i2c1Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C1_SPEED_VALID_SHIFT; - - pmicConfigData.slaveAddr = J7VCL_HERA_PMIC_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J7VCL_HERA_PMIC_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J7VCL_HERA_PMIC_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; - -} - -/*! - * \brief MISC Unity Test App wrapper Function for LEO PMIC-A - */ -static int32_t test_pmic_leo_pmicA_spiStub_misc_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_LEO_TPS6594X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_SPI; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; -} - -static int32_t setup_pmic_interrupt(uint32_t board, bool enableCRC) -{ - int32_t status = PMIC_ST_SUCCESS; - - if(J721E_BOARD == board) - { - if(enableCRC == true) - { - if(PMIC_STATUS_CRC_INIT_VAL == gCrcTestFlag_J721E) - { - gCrcTestFlag_J721E = PMIC_CFG_TO_ENABLE_CRC; - } - } - else - { - gCrcTestFlag_J721E = PMIC_STATUS_CRC_INIT_VAL; - } - - pmic_device_info = J721E_LEO_PMICA_DEVICE; - status = test_pmic_leo_pmicA_misc_testApp(); - /* Deinit pmic handle */ - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - - if(PMIC_ST_SUCCESS == status) - { - pmic_device_info = J721E_LEO_PMICB_DEVICE; - status = test_pmic_leo_pmicB_misc_testApp(); - /* Deinit pmic handle */ - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } - } - else if(J7VCL_BOARD == board) - { - if(enableCRC == true) - { - if(PMIC_STATUS_CRC_INIT_VAL == gCrcTestFlag_J7VCL) - { - gCrcTestFlag_J7VCL = PMIC_CFG_TO_ENABLE_CRC; - } - } - else - { - gCrcTestFlag_J7VCL = PMIC_STATUS_CRC_INIT_VAL; - } - - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - status = test_pmic_leo_pmicA_misc_testApp(); - /* Deinit pmic handle */ - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - - if(PMIC_ST_SUCCESS == status) - { - pmic_device_info = J7VCL_HERA_PMICB_DEVICE; - status = test_pmic_hera_misc_testApp(); - /* Deinit pmic handle */ - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } - } - else - { - status = PMIC_ST_ERR_INV_DEVICE; - } - return status; -} - -static const char pmicTestMenu[] = -{ - " \r\n =================================================================" - " \r\n Test Menu:" - " \r\n =================================================================" - " \r\n 0: Automatic run for all board specific misc options" - " \r\n 1: Manual run for Miscellaneous Test options" - " \r\n 2: quit" - " \r\n" - " \r\n Enter option: " -}; - -volatile static const char pmicTestAppMenu[] = -{ - " \r\n =================================================================" - " \r\n Menu:" - " \r\n =================================================================" - " \r\n 0: Pmic Leo device(PMIC A on J721E EVM)" - " \r\n 1: Pmic Leo device(PMIC B on J721E EVM)" - " \r\n 2: Pmic Leo device(PMIC A on J7VCL EVM)" - " \r\n 3: Pmic Hera device(PMIC B on J7VCL EVM)" - " \r\n 4: Pmic Leo device(PMIC A on J721E EVM Using SPI Stub Functions)" - " \r\n 5: Pmic Leo device(PMIC A on J7VCL EVM Using SPI Stub Functions)" - " \r\n 6: Pmic Leo device(PMIC A on J721E EVM Manual Testcase)" - " \r\n 7: Pmic Leo device(PMIC A on J7VCL EVM Manual Testcase)" - " \r\n 8: Pmic Leo device(PMIC A and B on J721E EVM) - Runtime BIST test" - " \r\n 9: Pmic Leo and Hera device(PMIC A and B on J7VCL EVM) - Runtime BIST test" - " \r\n 10: Pmic Leo/Hera device on J7VCL EVM - Disabled skip EEPROM defaults load on conf registers and Disabled EEPROM defaults load on conf registers " - " \r\n 11: Pmic Leo/Hera device on J7VCL EVM - Disabled skip EEPROM defaults load on conf registers and Enabled EEPROM defaults load on conf registers " - " \r\n 12: Pmic Leo/Hera device on J7VCL EVM - Enabled skip EEPROM defaults load on conf registers and Enabled EEPROM defaults load on conf registers " - " \r\n 13: Pmic Leo device(PMIC A on J721E EVM Manual Testcase with CRC Disable on PG2.0 Silicon revision)" - " \r\n 14: Back to Test Menu" - " \r\n" - " \r\n Enter option: " -}; - - - -static void print_pmicTestAppManualTestMenu(uint32_t deviceType) -{ - char board_name[10] = {0}; - char device_name[10] = {0}; - char deviceSubType[10] = {0}; - - if(J721E_LEO_PMICA_DEVICE == deviceType) - { - strcpy(board_name, "J721E"); - strcpy(device_name, "Leo"); - strcpy(deviceSubType, "A"); - } - else if(J7VCL_LEO_PMICA_DEVICE == deviceType) - { - strcpy(board_name, "J7VCL"); - strcpy(device_name, "Leo"); - strcpy(deviceSubType, "A"); - } - else if(J7VCL_HERA_PMICB_DEVICE == deviceType) - { - strcpy(board_name, "J7VCL"); - strcpy(device_name, "Hera"); - strcpy(deviceSubType, "B"); - } - - pmic_log(" \r\n ================================================================="); - pmic_log(" \r\n Manual Testcase Menu:"); - pmic_log(" \r\n ================================================================="); - - if((pmic_device_info == J721E_LEO_PMICA_DEVICE) || - (pmic_device_info == J7VCL_LEO_PMICA_DEVICE)) - { - pmic_log(" \r\n 0: Pmic %s device(PMIC %s on %s EVM for Check recovery count)", device_name, deviceSubType, board_name); - pmic_log(" \r\n 1: Pmic %s device(PMIC %s on %s EVM for Check Enable Interrupt)", device_name, deviceSubType, board_name); - pmic_log(" \r\n 2: Pmic %s device(PMIC %s on %s EVM for Configure NRSTOUT_SOC Signal)", device_name, deviceSubType, board_name); - pmic_log(" \r\n 3: Pmic %s device(PMIC %s on %s EVM for Configure NRSTOUT Signal)", device_name, deviceSubType, board_name); - pmic_log(" \r\n 4: Pmic %s device(PMIC %s on %s EVM for Configure EN_DRV Signal)", device_name, deviceSubType, board_name); - pmic_log(" \r\n 5: Pmic %s device(PMIC %s on %s EVM for Check Load from EEPROM defaults on RTC domain/conf Registers)", device_name, deviceSubType, board_name); - pmic_log(" \r\n 6: Pmic %s device(PMIC %s on %s EVM for Disable Load from EEPROM defaults on RTC domain/conf Registers)", device_name, deviceSubType, board_name); - } - pmic_log(" \r\n 7: Back to Main Menu"); - pmic_log(" \r\n"); - pmic_log(" \r\n Enter option: "); -} - -/*! - * \brief Run MISC manual test cases - */ -static void test_pmic_run_testcases_manual(uint32_t deviceType) -{ - int8_t menuOption = -1; - - while(1U) - { - print_pmicTestAppManualTestMenu(deviceType); - if(UART_scanFmt("%d", &menuOption) != 0U) - { - pmic_log("Read from UART Console failed\n"); - return; - } - - switch(menuOption) - { - case 0U: - RUN_TEST(test_pmic_getRecoveryCnt_read_recovCntVal); - break; - case 1U: - /* Display Enable interrupt */ - startup_type = PMIC_ENABLE_STARTUP_TYPE; - RUN_TEST(test_pmic_interruptEnableInt); - break; - case 2U: - RUN_TEST(test_pmic_setMiscCtrlCfg_nRstOutSocSignal); - break; - case 3U : - RUN_TEST(test_pmic_setMiscCtrlCfg_nRstOutSignal); - break; - case 4U: - RUN_TEST(test_pmic_setCommonCtrlCfg_enDrv); - break; - case 5U: -#if defined(SOC_J721E) - if(PMIC_SILICON_REV_ID_PG_2_0 == - pPmicCoreHandle->pmicDevSiliconRev) - { - test_pmic_rtc_setCfg_xtalOScEnType(pPmicCoreHandle); - } -#endif - RUN_TEST(test_pmic_setCommonCtrlCfg_eepromDefaultLoadEnable); - break; - case 6U: -#if defined(SOC_J721E) - if(PMIC_SILICON_REV_ID_PG_2_0 == - pPmicCoreHandle->pmicDevSiliconRev) - { - test_pmic_rtc_setCfg_xtalOScEnType(pPmicCoreHandle); - } -#endif - RUN_TEST(test_pmic_setCommonCtrlCfg_eepromDefaultLoadDisable); - break; - case 7U: - pmic_log(" \r\n Back to Test Menu options\n"); - return; - default: - pmic_log(" \r\n Invalid option... Try Again!!!\n"); - break; - } - } -} - -static int32_t test_pmic_printPfsmDelayValue(void) -{ - uint8_t data; - int32_t pmicStatus; - - pmicStatus = Pmic_fsmGetPfsmDelay(pPmicCoreHandle, - PMIC_PFSM_DELAY3, - &data); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmic_log("\r\n PFSM Delay 3 Val 0x%x", data); - } - - return pmicStatus; -} - -static void test_pmic_misc_testapp_run_options(int8_t option) -{ - int8_t num = -1; - int8_t idx = 0; -#if defined(SOC_J721E) - int8_t automatic_options[] = {0, 1, 4}; - int8_t userInput = 0; -#elif defined(SOC_J7200) - int8_t automatic_options[] = {2, 3, 5}; -#endif - - while(1U) - { - if(idx >= (sizeof(automatic_options)/sizeof(automatic_options[0]))) - { - pmic_printTestResult(pmic_misc_tests, PMIC_MISC_NUM_OF_TESTCASES); - } - pmic_log("%s", pmicTestAppMenu); - if(option == PMIC_UT_AUTOMATE_OPTION) - { - if(idx < (sizeof(automatic_options)/sizeof(automatic_options[0]))) - { - num = automatic_options[idx++]; - } - else - { - num = 14; - } - pmic_log("%d\n", num); - } - else - { - if(UART_scanFmt("%d", &num) != 0U) - { - pmic_log("Read from UART Console failed\n"); - return; - } - } - switch(num) - { - case 0U: -#if defined(SOC_J721E) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J721E_BOARD, true)) - { - /* Run MISC test cases for Leo PMIC-A */ - pmic_device_info = J721E_LEO_PMICA_DEVICE; - - /* MISC Unity Test App wrapper Function for LEO PMIC-A */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_misc_testApp()) - { - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 1U: -#if defined(SOC_J721E) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J721E_BOARD, true)) - { - pmic_device_info = J721E_LEO_PMICB_DEVICE; - - /* MISC Unity Test App wrapper Function for LEO PMIC-B */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicB_misc_testApp()) - { - /* Run MISC test cases for Leo PMIC-B */ - test_pmic_run_slave_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 2U: -#if defined(SOC_J7200) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J7VCL_BOARD, true)) - { - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - - /* MISC Unity Test App wrapper Function for LEO PMIC */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_misc_testApp()) - { - /* Run MISC test cases for LEO PMIC-A */ - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 3U: -#if defined(SOC_J7200) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J7VCL_BOARD, true)) - { - pmic_device_info = J7VCL_HERA_PMICB_DEVICE; - - /* MISC Unity Test App wrapper Function for HERA PMIC */ - if(PMIC_ST_SUCCESS == test_pmic_hera_misc_testApp()) - { - /* Run MISC test cases for HERA PMIC-B */ - test_pmic_run_slave_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 4U: -#if defined(SOC_J721E) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J721E_BOARD, true)) - { - pmic_device_info = J721E_LEO_PMICA_DEVICE; - - /* MISC Unity Test App wrapper Function for LEO PMIC-A - * using SPI stub functions */ - if(PMIC_ST_SUCCESS == - test_pmic_leo_pmicA_spiStub_misc_testApp()) - { - /* Run misc test cases for Leo PMIC-A */ - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 5U: -#if defined(SOC_J7200) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J7VCL_BOARD, true)) - { - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - /* MISC Unity Test App wrapper Function for LEO PMIC-A - * using SPI stub functions */ - if(PMIC_ST_SUCCESS == - test_pmic_leo_pmicA_spiStub_misc_testApp()) - { - /* Run misc test cases for Leo PMIC-A */ - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 6U: -#if defined(SOC_J721E) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J721E_BOARD, true)) - { - /* Run MISC test cases for Leo PMIC-A */ - pmic_device_info = J721E_LEO_PMICA_DEVICE; - - /* MISC Unity Test App wrapper Function */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_misc_testApp()) - { - if(PMIC_ST_SUCCESS == test_pmic_printPfsmDelayValue()) - { - /* Run misc manual test cases */ - test_pmic_run_testcases_manual(J721E_LEO_PMICA_DEVICE); - } - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - return; - case 7U: -#if defined(SOC_J7200) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J7VCL_BOARD, true)) - { - /* Run MISC test cases for Leo PMIC-A */ - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - - /* MISC Unity Test App wrapper Function */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_misc_testApp()) - { - if(PMIC_ST_SUCCESS == test_pmic_printPfsmDelayValue()) - { - /* Run misc manual test cases */ - test_pmic_run_testcases_manual(J7VCL_LEO_PMICA_DEVICE); - } - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - return; - case 8U: -#if defined(SOC_J721E) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J721E_BOARD, true)) - { - int32_t pmicStatus = PMIC_ST_SUCCESS; - - /* Run MISC test cases for Leo PMIC-A */ - pmic_device_info = J721E_LEO_PMICA_DEVICE; - - pmic_log("\n\n Run Time BIST test for Leo PMIC A and B on J721E\n"); - - pmic_log("\n\n Leo PMIC-A Initialization \n\n\n"); - - /* MISC Unity Test App wrapper Function */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_misc_testApp()) - { - if(PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - pmic_log("\n\n Test is not supported \n"); - } - else - { - test_Pmic_getBistPassInterrupt(); - } - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - pmic_log("\n\n Leo PMIC-B Initialization \n\n"); - pmic_log("\n\n Check BIST Pass Interrupt is set on Interrupt status and then it will be cleared \n"); - - pmicStatus = test_pmic_leo_pmicB_misc_testApp(); - - if(PMIC_ST_SUCCESS != pmicStatus) - { - pmic_log("\n\n Hera PMIC-B Initialization failed \n\n"); - } - - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } - - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 9U: -#if defined(SOC_J7200) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J7VCL_BOARD, true)) - { - int32_t pmicStatus = PMIC_ST_SUCCESS; - - /* Run MISC test cases for Leo PMIC-A */ - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - - pmic_log("\n\n Run Time BIST test for Leo PMIC A and B on J7VCL\n"); - - pmic_log("\n\n Leo PMIC-A Initialization \n\n\n"); - - /* MISC Unity Test App wrapper Function */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_misc_testApp()) - { - if(PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - pmic_log("\n\n Test is not supported \n"); - } - else - { - test_Pmic_getBistPassInterrupt(); - } - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - pmic_log("\n\n Hera PMIC-B Initialization \n\n"); - pmic_log("\n\n Check BIST Pass Interrupt is set on Interrupt status and then it will be cleared \n"); - - pmicStatus = test_pmic_hera_misc_testApp(); - - if(PMIC_ST_SUCCESS != pmicStatus) - { - pmic_log("\n\n Hera PMIC-B Initialization failed \n\n"); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } - - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 10U: -#if defined(SOC_J7200) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J7VCL_BOARD, true)) - { - int32_t pmicStatus = PMIC_ST_SUCCESS; - - pmic_log("\nHera PMIC Initialization!!!\n"); - - test_pmic_print_unity_testcase_info(9993, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = test_pmic_hera_misc_testApp(); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmic_log("\nHera PMIC skip_eeprom config - skipEepromDefLdDisable, eePromDefLdDisable!!!\n"); - test_pmic_setCommonCtrlCfg_hera_skipEepromDefLdDisable_eePromDefLdDisable(); - } - - pmic_log("\nHera PMIC DeInitialization !!!\n"); - - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - - /* Run MISC test cases for Leo PMIC-A */ - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - - pmic_log("\nLeo PMIC Initialization!!!\n"); - - /* MISC Unity Test App wrapper Function */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_misc_testApp()) - { - if(PMIC_ST_SUCCESS == test_pmic_printPfsmDelayValue()) - { - g_skip_eeprom_test_flag = 1; - /* Run misc manual test cases */ - test_pmic_setCommonCtrlCfg_eepromDefaultLoadDisable(); - g_skip_eeprom_test_flag = 0; - } - } - - pmic_log("\nLeo PMIC DeInitialization!!!\n"); - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - - - pmic_testResultUpdate_pass(9993, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 11U: -#if defined(SOC_J7200) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J7VCL_BOARD, true)) - { - int32_t pmicStatus = PMIC_ST_SUCCESS; - - pmic_log("\nHera PMIC Initialization!!!\n"); - - test_pmic_print_unity_testcase_info(9991, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = test_pmic_hera_misc_testApp(); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmic_log("\nHera PMIC skip_eeprom config - skipEepromDefLdDisable, eePromDefLdEnable!!!\n"); - test_pmic_setCommonCtrlCfg_hera_skipEepromDefLdDisable_eePromDefLdEnable(); - } - - pmic_log("\nHera PMIC DeInitialization !!!\n"); - - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - - /* Run MISC test cases for Leo PMIC-A */ - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - - pmic_log("\nLeo PMIC Initialization!!!\n"); - - /* MISC Unity Test App wrapper Function */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_misc_testApp()) - { - if(PMIC_ST_SUCCESS == test_pmic_printPfsmDelayValue()) - { - g_skip_eeprom_test_flag = 1; - /* Run misc manual test cases */ - test_pmic_setCommonCtrlCfg_eepromDefaultLoadEnable(); - g_skip_eeprom_test_flag = 0; - } - } - - pmic_log("\nLeo PMIC DeInitialization!!!\n"); - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - - pmic_testResultUpdate_pass(9991, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 12U: -#if 0//defined(SOC_J7200) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J7VCL_BOARD, true)) - { - int32_t pmicStatus = PMIC_ST_SUCCESS; - - pmic_log("\nHera PMIC Initialization!!!\n"); - - test_pmic_print_unity_testcase_info(9990, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - pmicStatus = test_pmic_hera_misc_testApp(); - - if(PMIC_ST_SUCCESS == pmicStatus) - { - pmic_log("\nHera PMIC skip_eeprom config - skipEepromDefLdEnable, eePromDefLdEnable!!!\n"); - test_pmic_setCommonCtrlCfg_hera_skipEepromDefLdEnable_eePromDefLdEnable(); - } - - pmic_log("\nHera PMIC DeInitialization !!!\n"); - - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - - /* Run MISC test cases for Leo PMIC-A */ - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - - pmic_log("\nLeo PMIC Initialization!!!\n"); - - /* MISC Unity Test App wrapper Function */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_misc_testApp()) - { - if(PMIC_ST_SUCCESS == test_pmic_printPfsmDelayValue()) - { - g_skip_eeprom_test_flag = 2; - /* Run misc manual test cases */ - test_pmic_setCommonCtrlCfg_eepromDefaultLoadEnable(); - g_skip_eeprom_test_flag = 0; - } - } - - pmic_log("\nLeo PMIC DeInitialization!!!\n"); - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - - pmic_testResultUpdate_pass(9990, - pmic_misc_tests, - PMIC_MISC_NUM_OF_TESTCASES); - - } -#else - /*Refer the Bug PDK-10451 for more details*/ - pmic_log("\n Test case is disabled!!!\n"); -#endif - break; - case 13U: -#if defined(SOC_J721E) - pmic_log("\r\n Run the test only on Leo PMIC-A PG2.0 after Board Power cycle !!!\n"); - pmic_log("\r\n Enter 1 to continue"); - UART_scanFmt("%d", &userInput); - - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J721E_BOARD, false)) - { - /* Run MISC test cases for Leo PMIC-A */ - pmic_device_info = J721E_LEO_PMICA_DEVICE; - - /* MISC Unity Test App wrapper Function for LEO PMIC-A */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_misc_testApp()) - { - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 14U: - pmic_log(" \r\n Back to Test Menu options\n"); - return; - default: - pmic_log(" \r\n Invalid option... Try Again!!!\n"); - break; - } - } -} - -/*! - * \brief Function to register MISC Unity Test App wrapper to Unity framework - */ -static void test_pmic_misc_testapp_runner(void) -{ - /* @description : Test runner for misc Test App - * - * @requirements: PDK-5827 - * - * @cores : mcu1_0, mcu1_1 - */ - - int8_t option = -1; - - while(1U) - { - pmic_log("%s", pmicTestMenu); - if(UART_scanFmt("%d", &option) != 0U) - { - pmic_log("Read from UART Console failed\n"); - return; - } - - switch(option) - { - case PMIC_UT_AUTOMATE_OPTION: - test_pmic_misc_testapp_run_options(PMIC_UT_AUTOMATE_OPTION); - break; - case PMIC_UT_MANUAL_OPTION: - test_pmic_misc_testapp_run_options(PMIC_UT_MANUAL_OPTION); - break; - case 2U: - pmic_log(" \r\n Quit from application\n"); - return; - default: - pmic_log(" \r\n Invalid option... Try Again!!!\n"); - break; - } - } -} -#endif - -/*! - * \brief TI RTOS specific MISC TEST APP main Function - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values see \ref Pmic_ErrorCodes - */ -int main() -{ - Board_initUART(); - - pmic_print_banner("PMIC Misc Unity Test Application"); - -#if defined(UNITY_INCLUDE_CONFIG_V2_H) && \ - (defined(SOC_J721E) || \ - defined(SOC_J7200)) - test_pmic_misc_testapp_runner(); -#endif -} diff --git a/test/misc_test/pmic_ut_misc.h b/test/misc_test/pmic_ut_misc.h deleted file mode 100644 index 95105e3..0000000 --- a/test/misc_test/pmic_ut_misc.h +++ /dev/null @@ -1,65 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ -/** - * \file pmic_ut_misc.h - * - * \brief Header file for PMIC MISC Unit Tests - * - */ - -#include -#define PMIC_RECOV_CNT_THR_MAX (0x0FU) - -/*! - * \brief PMIC WDG Valid Params configuration for all - */ -#define PMIC_WDG_CFG_SETPARAMS_FORALL \ - (PMIC_CFG_WDG_LONGWINDURATION_VALID_SHIFT | \ - PMIC_CFG_WDG_WIN1DURATION_VALID_SHIFT | \ - PMIC_CFG_WDG_WIN2DURATION_VALID_SHIFT | \ - PMIC_CFG_WDG_FAILTHRESHOLD_VALID_SHIFT | \ - PMIC_CFG_WDG_RSTTHRESHOLD_VALID_SHIFT | \ - PMIC_CFG_WDG_RSTENABLE_VALID_SHIFT | \ - PMIC_CFG_WDG_WDGMODE_VALID_SHIFT | \ - PMIC_CFG_WDG_PWRHOLD_VALID_SHIFT | \ - PMIC_CFG_WDG_RETLONGWIN_VALID_SHIFT | \ - PMIC_CFG_WDG_QA_FDBK_VALID_SHIFT | \ - PMIC_CFG_WDG_QA_LFSR_VALID_SHIFT | \ - PMIC_CFG_WDG_QA_QUES_SEED_VALID_SHIFT) - -/*! - * \brief Numbers of miscellaneous testcases - */ -#define PMIC_MISC_NUM_OF_TESTCASES \ - (sizeof(pmic_misc_tests)/sizeof(pmic_misc_tests[0])) - diff --git a/test/power_test/makefile b/test/power_test/makefile deleted file mode 100644 index 98d5559..0000000 --- a/test/power_test/makefile +++ /dev/null @@ -1,85 +0,0 @@ -# Filename: Makefile -# -# This file is the makefile for building PMIC POWER Test Code. -# -# Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com/ -# -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# -# Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the -# distribution. -# -# Neither the name of Texas Instruments Incorporated nor the names of -# its contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -#File - pmic_lld\test\power_test\makefile - -APP_NAME = pmic_power_testapp - -include $(PDK_INSTALL_PATH)/ti/build/Rules.make - -BUILD_OS_TYPE = baremetal - -SRCDIR = . ../common -INCDIR = . ../../include/ ../../src ../common -INCDIR += ../../src/cfg/tps6594x ../../include/cfg/tps6594x -INCDIR += ../../src/cfg/lp8764x ../../include/cfg/lp8764x - -# Common source files across all platforms and cores -SRCS_COMMON += pmic_ut_power.c pmic_ut_common.c - -SRCDIR += $(PDK_INSTALL_PATH)/ti/build/unit-test/Unity/src $(PDK_INSTALL_PATH)/ti/build/unit-test/config -INCDIR += $(PDK_INSTALL_PATH)/ti/build/unit-test/Unity/src $(PDK_INSTALL_PATH)/ti/build/unit-test/config -SRCS_COMMON += unity.c - -# List all the external components/interfaces, whose interface header files -# need to be included for this component -INCLUDE_EXTERNAL_INTERFACES = pdk i2c -INCLUDE_INTERNAL_INTERFACES = pmic - -# List all the components required by the application -COMP_LIST_COMMON = $(PDK_COMMON_BAREMETAL_COMP) - -# Common source files and CFLAGS across all platforms and cores -PACKAGE_SRCS_COMMON = . ../common - -CFLAGS_LOCAL_COMMON += -DUNITY_INCLUDE_CONFIG_V2_H $(PMIC_CFLAGS) - -# Core/SoC/platform specific source files and CFLAGS -# Example: -# SRCS_ = -# CFLAGS_LOCAL_ = - -# Include common make files -ifeq ($(MAKERULEDIR), ) -#Makerule path not defined, define this and assume relative path from ROOTDIR - MAKERULEDIR := $(ROOTDIR)/ti/build/makerules - export MAKERULEDIR -endif -include $(MAKERULEDIR)/common.mk - -# OBJs and libraries are built by using rule defined in rules_.mk -# and need not be explicitly specified here - -# Nothing beyond this point diff --git a/test/power_test/pmic_ut_power.c b/test/power_test/pmic_ut_power.c deleted file mode 100644 index 250af75..0000000 --- a/test/power_test/pmic_ut_power.c +++ /dev/null @@ -1,17841 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ -/** - * \file pmic_ut_power.c - * - * \brief PMIC Unit Test for testing PMIC POWER APIs - * - */ - -#include - -/* Pointer holds the pPmicCoreHandle */ -Pmic_CoreHandle_t *pPmicCoreHandle = NULL; - -extern uint16_t pmic_device_info; -extern int32_t gCrcTestFlag_J721E; -extern int32_t gCrcTestFlag_J7VCL; - -extern int8_t gLdoBypassModeEnTestFlag; -extern int8_t gThermalStatusTestFlag; -extern int8_t gPwrRsrcStatusTestFlag; - -extern Pmic_Ut_FaultInject_t gPmic_faultInjectCfg; - -/*! - * \brief PMIC POWER Test Cases - */ -static Pmic_Ut_Tests_t pmic_power_tests[] = -{ - /*! testID - * testDesc - */ - { - 7130, - "Pmic_powerSetPwrResourceCfg : Parameter validation for handle" - }, - { - 7299, - "Pmic_powerGetPwrResourceCfg : Parameter validation for handle" - }, - { - 7131, - "Pmic_powerSetPwrResourceCfg : Test Enable residual voltage checking" - }, - { - 7132, - "Pmic_powerSetPwrResourceCfg : Test Disable residual voltage checking" - }, - { - 7133, - "Pmic_powerSetPwrResourceCfg : Parameter validation for Power Resource for rvCheckEn." - }, - { - 7134, - "Pmic_powerSetPwrResourceCfg : Test Enable buck pull down checking for Buck regulator" - }, - { - 7135, - "Pmic_powerSetPwrResourceCfg : Test Disable buck pull down checking for Buck regulator" - }, - { - 7136, - "Pmic_powerSetPwrResourceCfg : Parameter validation for Power Resource for buckPullDownEn." - }, - { - 7137, - "Pmic_powerSetPwrResourceCfg : Test Enable the Voltage monitor." - }, - { - 7138, - "Pmic_powerSetPwrResourceCfg : Test Disable the Voltage monitor." - }, - { - 7139, - "Pmic_powerSetPwrResourceCfg : Parameter validation for Power Resource for vmonEn." - }, - { - 7143, - "Pmic_powerSetPwrResourceCfg : Test Select output voltage register for buck as VOUT1." - }, - { - 7144, - "Pmic_powerSetPwrResourceCfg : Test Select output voltage register for buck as VOUT2." - }, - { - 7145, - "Pmic_powerSetPwrResourceCfg : Parameter validation for Power Resource for buckVoutSel." - }, - { - 7146, - "Pmic_powerSetPwrResourceCfg : Test Select Auto Mode for BUCK" - }, - { - 7147, - "Pmic_powerSetPwrResourceCfg : Test Select PWM Mode for BUCK" - }, - { - 7148, - "Pmic_powerSetPwrResourceCfg : Parameter validation for Power Resource for buckFpwmMode." - }, - { - 7149, - "Pmic_powerSetPwrResourceCfg : Test Select Multi phase with PWM Mode for BUCK" - }, - { - 7150, - "Pmic_powerSetPwrResourceCfg : Test Select AUTO Mode with Automatic phase adding and shedding for BUCK" - }, - { - 7151, - "Pmic_powerSetPwrResourceCfg : Parameter validation for Power Resource for buckFpwmMpMode." - }, - { - 7152, - "Pmic_powerSetPwrResourceCfg : Test Disable the power regulator." - }, - { - 7153, - "Pmic_powerSetPwrResourceCfg : Test Enable the power regulator." - }, - { - 7154, - "Pmic_powerSetPwrResourceCfg : Parameter validation for Power Resource for regulatorEn." - }, - { - 7155, - "Pmic_powerSetPwrResourceCfg : Test Switch peak current limit for BUCK regulator for 6.5Amp." - }, - { - 7156, - "Pmic_powerSetPwrResourceCfg : Test Switch peak current limit for BUCK regulator for 5.5Amp." - }, - { - 7157, - "Pmic_powerSetPwrResourceCfg : Test Switch peak current limit for BUCK regulator for 4.5Amp." - }, - { - 7158, - "Pmic_powerSetPwrResourceCfg : Test Switch peak current limit for BUCK regulator for 3.5Amp." - }, - { - 7159, - "Pmic_powerSetPwrResourceCfg : Test Switch peak current limit for BUCK regulator for 2.5Amp." - }, - { - 7160, - "Pmic_powerSetPwrResourceCfg : Parameter validation for Power Resource for buckCurrentLimit." - }, - { - 7161, - "Pmic_powerSetPwrResourceCfg : Parameter range validation for buckCurrentLimit." - }, - { - 7162, - "Pmic_powerSetPwrResourceCfg : Test Output voltage slew rate for BUCK & VMON for 33MV." - }, - { - 7163, - "Pmic_powerSetPwrResourceCfg : Test Output voltage slew rate for BUCK & VMON for 20MV." - }, - { - 7164, - "Pmic_powerSetPwrResourceCfg : Test Output voltage slew rate for BUCK & VMON for 10MV." - }, - { - 7165, - "Pmic_powerSetPwrResourceCfg : Test Output voltage slew rate for BUCK & VMON for 5MV." - }, - { - 7166, - "Pmic_powerSetPwrResourceCfg : Test Output voltage slew rate for BUCK & VMON for 2.5MV." - }, - { - 7167, - "Pmic_powerSetPwrResourceCfg : Test Output voltage slew rate for BUCK & VMON for 1.3MV." - }, - { - 7168, - "Pmic_powerSetPwrResourceCfg : Test Output voltage slew rate for BUCK & VMON for 0.63MV." - }, - { - 7169, - "Pmic_powerSetPwrResourceCfg : Test Output voltage slew rate for BUCK & VMON for 0.31MV." - }, - { - 7170, - "Pmic_powerSetPwrResourceCfg : Parameter validation for Power Resource for buckVmonSlewRate." - }, - { - 7171, - "Pmic_powerSetPwrResourceCfg : Parameter range validation for buckVmonSlewRate." - }, - { - 7172, - "Pmic_powerSetPwrResourceCfg : Test Selects the resistor value for output pull-down resistor for LDO for 50Kohm." - }, - { - 7173, - "Pmic_powerSetPwrResourceCfg : Test Selects the resistor value for output pull-down resistor for LDO for 125Kohm" - }, - { - 7174, - "Pmic_powerSetPwrResourceCfg : Test Selects the resistor value for output pull-down resistor for LDO for 250Kohm" - }, - { - 7175, - "Pmic_powerSetPwrResourceCfg : Test Selects the resistor value for output pull-down resistor for LDO for 500Kohm" - }, - { - 7176, - "Pmic_powerSetPwrResourceCfg : Test Enable Slow Ramp for LDO" - }, - { - 7177, - "Pmic_powerSetPwrResourceCfg : Test Disable Slow Ramp for LDO" - }, - { - 7178, - "Pmic_powerSetPwrResourceCfg : Parameter validation for Power Resource for ldoPullDownSel." - }, - { - 7179, - "Pmic_powerSetPwrResourceCfg : Parameter range validation for ldoPullDownSel." - }, - { - 7180, - "Pmic_powerSetPwrResourceCfg : Parameter validation for Power Resource for ldoSlowRampEn." - }, - { - 7181, - "Pmic_powerSetPwrResourceCfg : Test Voltage level in miliVolts for regulators" - }, - { - 7182, - "Pmic_powerSetPwrResourceCfg : Parameter validation for Power Resource for voltage_mV." - }, - { - 7183, - "Pmic_powerSetPwrResourceCfg : Parameter range validation for voltage_mV max value." - }, - { - 7184, - "Pmic_powerSetPwrResourceCfg : Test Powergood level 5V for VCCA pin" - }, - { - 7185, - "Pmic_powerSetPwrResourceCfg : Test Powergood level 3.3V for VCCA pin" - }, - { - 7186, - "Pmic_powerSetPwrResourceCfg : Parameter validation for vccaPwrGudLvl." - }, - { - 7187, - "Pmic_powerSetPwrResourceCfg : Test Rail group selection for power resources as group none." - }, - { - 7188, - "Pmic_powerSetPwrResourceCfg : Test Rail group selection for power resources as group mcu." - }, - { - 7189, - "Pmic_powerSetPwrResourceCfg : Test Rail group selection for power resources as group soc." - }, - { - 7190, - "Pmic_powerSetPwrResourceCfg : Test Rail group selection for power resources as group other." - }, - { - 7191, - "Pmic_powerSetPwrResourceCfg : Parameter validation for Power Resource for railGrpSel." - }, - { - 7192, - "Pmic_powerSetPwrResourceCfg : Parameter range validation for railGrpSel." - }, - { - 7198, - "Pmic_powerSetPwrResourceCfg : Test LDO Bypass Regulator LDO mode" - }, - { - 7199, - "Pmic_powerSetPwrResourceCfg : Test LDO Linear Regulator LDO mode" - }, - { - 7200, - "Pmic_powerSetPwrResourceCfg : Parameter validation for Power Resource for ldoBypassModeEn." - }, - { - 7201, - "Pmic_powerSetPwrResourceCfg : Test LDO residual voltage check timeout select for 0.5MS." - }, - { - 7202, - "Pmic_powerSetPwrResourceCfg : Test LDO residual voltage check timeout select for 1MS." - }, - { - 7203, - "Pmic_powerSetPwrResourceCfg : Test LDO residual voltage check timeout select for 1.5MS." - }, - { - 7204, - "Pmic_powerSetPwrResourceCfg : Test LDO residual voltage check timeout select for 2MS." - }, - { - 7205, - "Pmic_powerSetPwrResourceCfg : Test LDO residual voltage check timeout select for 2.5MS." - }, - { - 7206, - "Pmic_powerSetPwrResourceCfg : Test LDO residual voltage check timeout select for 3MS." - }, - { - 7207, - "Pmic_powerSetPwrResourceCfg : Test LDO residual voltage check timeout select for 3.5MS." - }, - { - 7208, - "Pmic_powerSetPwrResourceCfg : Test LDO residual voltage check timeout select for 4MS." - }, - { - 7209, - "Pmic_powerSetPwrResourceCfg : Test LDO residual voltage check timeout select for 6MS." - }, - { - 7210, - "Pmic_powerSetPwrResourceCfg : Test LDO residual voltage check timeout select for 8MS." - }, - { - 7211, - "Pmic_powerSetPwrResourceCfg : Test LDO residual voltage check timeout select for 10MS." - }, - { - 7212, - "Pmic_powerSetPwrResourceCfg : Test LDO residual voltage check timeout select for 12MS." - }, - { - 7213, - "Pmic_powerSetPwrResourceCfg : Test LDO residual voltage check timeout select for 14MS." - }, - { - 7214, - "Pmic_powerSetPwrResourceCfg : Test LDO residual voltage check timeout select for 16MS." - }, - { - 7215, - "Pmic_powerSetPwrResourceCfg : Parameter validation for Power Resource for ldoRvTimeoutSel." - }, - { - 7216, - "Pmic_powerSetPwrResourceCfg : Parameter range validation for ldoRvTimeoutSel." - }, - { - 7217, - "Pmic_powerSetPwrResourceCfg : Test OV/UV voltage monitoring range for vmonRange for range1." - }, - { - 7218, - "Pmic_powerSetPwrResourceCfg : Test OV/UV voltage monitoring range for vmonRange for range2." - }, - { - 7219, - "Pmic_powerSetPwrResourceCfg : Parameter validation for Power Resource for vmonRange." - }, - { - 7300, - "Pmic_powerGetPwrResourceCfg : Parameter validation for Pmic_PowerResourceCfg_t" - }, - { - 7221, - "Pmic_powerSetCommonConfig : Test pgoodWindow uv monitor enable" - }, - { - 7222, - "Pmic_powerSetCommonConfig : Test pgoodWindow uv and ov monitor enable" - }, - { - 7223, - "Pmic_powerSetCommonConfig : Test Enable pgoodPolarity high" - }, - { - 7224, - "Pmic_powerSetCommonConfig : Test Enable pgoodPolarity low" - }, - { - 7252, - "Pmic_powerSetConfigPowerGood : Test pgoodSelType as voltage current" - }, - { - 7253, - "Pmic_powerSetConfigPowerGood : Test pgoodSelType as voltage" - }, - { - 7254, - "Pmic_powerSetConfigPowerGood : Test pgoodSelType as masked" - }, - { - 7255, - "Pmic_powerSetConfigPowerGood : Test pgoodSelType as NRSTOUT" - }, - { - 7256, - "Pmic_powerSetConfigPowerGood : Test pgoodSelType as NRSTOUT SOC" - }, - { - 7257, - "Pmic_powerSetConfigPowerGood : Test pgoodSelType as TDIE WARN" - }, - { - 7258, - "Pmic_powerSetConfigPowerGood : Test pgoodSelType as VCCA" - }, - { - 7259, - "Pmic_powerSetConfigPowerGood : Test pgoodSelType as VMON" - }, - { - 7261, - "Pmic_powerGetPwrRsrcStat : Test get currentLimitLvlStat" - }, - { - 7262, - "Pmic_powerGetPwrRsrcStat : Test get underVoltageTholdStat" - }, - { - 7263, - "Pmic_powerGetPwrRsrcStat : Test get overVoltageTholdStat" - }, - { - 7264, - "Pmic_powerGetPwrRsrcStat : Test get overVoltageProtectionLvlStat" - }, - { - 7266, - "Pmic_powerSetThermalConfig : Test thermalWarnThold as low" - }, - { - 7267, - "Pmic_powerSetThermalConfig : Test thermalWarnThold as high" - }, - { - 7268, - "Pmic_powerSetThermalConfig : Test thermalShutdownThold as low" - }, - { - 7269, - "Pmic_powerSetThermalConfig : Test thermalShutdownThold as high" - }, - { - 7271, - "Pmic_powerSetPwrRsrcIntr : Test Enable OV interrupt" - }, - { - 7272, - "Pmic_powerSetPwrRsrcIntr : Test Disable OV interrupt" - }, - { - 7273, - "Pmic_powerSetPwrRsrcIntr : Test Enable UV interrupt" - }, - { - 7274, - "Pmic_powerSetPwrRsrcIntr : Test Disable UV interrupt" - }, - { - 7275, - "Pmic_powerSetPwrRsrcIntr : Test Enable ILIM interrupt" - }, - { - 7276, - "Pmic_powerSetPwrRsrcIntr : Test Disable ILIM interrupt" - }, - { - 7280, - "Pmic_powerSetIntr : Test Enable TWARN interrupt" - }, - { - 7281, - "Pmic_powerSetIntr : Test Disable TWARN interrupt" - }, - { - 7282, - "Pmic_powerSetIntr : Test Enable NRSTOUT_READBACK interrupt" - }, - { - 7283, - "Pmic_powerSetIntr : Test Disable NRSTOUT_READBACK interrupt" - }, - { - 7284, - "Pmic_powerSetIntr : Test Enable SOC_PWR_ERR interrupt" - }, - { - 7285, - "Pmic_powerSetIntr : Test Disable SOC_PWR_ERR interrupt" - }, - { - 7286, - "Pmic_powerSetIntr : Test Enable MCU_PWR_ERR interrupt" - }, - { - 7287, - "Pmic_powerSetIntr : Test Disable MCU_PWR_ERR interrupt" - }, - { - 7288, - "Pmic_powerSetIntr : Test Enable ORD_SHUTDOWN interrupt" - }, - { - 7289, - "Pmic_powerSetIntr : Test Disable ORD_SHUTDOWN interrupt" - }, - { - 7290, - "Pmic_powerSetIntr : Test Enable IMM_SHUTDOWN interrupt" - }, - { - 7291, - "Pmic_powerSetIntr : Test Disable IMM_SHUTDOWN interrupt" - }, - { - 7292, - "Pmic_powerSetIntr : Test Enable NRSTOUT_SOC_READBACK interrupt" - }, - { - 7293, - "Pmic_powerSetIntr : Test Disable NRSTOUT_SOC_READBACK interrupt" - }, - { - 7294, - "Pmic_powerSetIntr : Test Enable EN_DRV_READBACK interrupt" - }, - { - 7295, - "Pmic_powerSetIntr : Test Disable EN_DRV_READBACK interrupt" - }, - { - 7225, - "Pmic_powerSetCommonConfig : Test deglitchTimeSel as 4us" - }, - { - 7226, - "Pmic_powerSetCommonConfig : Test deglitchTimeSel as 20us" - }, - { - 7227, - "Pmic_powerSetCommonConfig : Test severeErrorTrig as Immediate shutdown" - }, - { - 7228, - "Pmic_powerSetCommonConfig : Test severeErrorTrig as oderly shutdown" - }, - { - 7229, - "Pmic_powerSetCommonConfig : Test severeErrorTrig as mcu power error" - }, - { - 7230, - "Pmic_powerSetCommonConfig : Test severeErrorTrig as soc power error" - }, - { - 7231, - "Pmic_powerSetCommonConfig : Test otherRailTrig as Immediate shutdown" - }, - { - 7232, - "Pmic_powerSetCommonConfig : Test otherRailTrig as oderly shutdown" - }, - { - 7233, - "Pmic_powerSetCommonConfig : Test otherRailTrig as mcu power error" - }, - { - 7234, - "Pmic_powerSetCommonConfig : Test otherRailTrig as soc power error" - }, - { - 7235, - "Pmic_powerSetCommonConfig : Test socRailTrig as Immediate shutdown" - }, - { - 7236, - "Pmic_powerSetCommonConfig : Test socRailTrig as oderly shutdown" - }, - { - 7237, - "Pmic_powerSetCommonConfig : Test socRailTrig as mcu power error" - }, - { - 7238, - "Pmic_powerSetCommonConfig : Test socRailTrig as soc power error" - }, - { - 7239, - "Pmic_powerSetCommonConfig : Test mcuRailTrig as Immediate shutdown" - }, - { - 7240, - "Pmic_powerSetCommonConfig : Test mcuRailTrig as oderly shutdown" - }, - { - 7241, - "Pmic_powerSetCommonConfig : Test mcuRailTrig as mcu power error" - }, - { - 7242, - "Pmic_powerSetCommonConfig : Test mcuRailTrig as soc power error" - }, - { - 7243, - "Pmic_powerSetCommonConfig : Test moderateRailTrig as Immediate shutdown" - }, - { - 7244, - "Pmic_powerSetCommonConfig : Test moderateRailTrig as oderly shutdown" - }, - { - 7245, - "Pmic_powerSetCommonConfig : Test moderateRailTrig as mcu power error" - }, - { - 7246, - "Pmic_powerSetCommonConfig : Test moderateRailTrig as soc power error" - }, - { - 7297, - "Pmic_powerSetLdoRtc : Test Enable ldortcRegulator" - }, - { - 7298, - "Pmic_powerSetLdoRtc : Test Disable ldortcRegulator" - }, - { - 7277, - "Pmic_powerSetPwrRsrcIntr : Parameter validation for Power Resource for intrEnable." - }, - { - 7278, - "Pmic_powerSetPwrRsrcIntr : Parameter validation for intrType" - }, - { - 7247, - "Pmic_powerSetCommonConfig : Parameter validation for severeErrorTrig" - }, - { - 7248, - "Pmic_powerSetCommonConfig : Parameter validation for otherRailTrig" - }, - { - 7249, - "Pmic_powerSetCommonConfig : Parameter validation for socRailTrig" - }, - { - 7250, - "Pmic_powerSetCommonConfig : Parameter validation for mcuRailTrig" - }, - { - 7251, - "Pmic_powerSetCommonConfig : Parameter validation for moderateRailTrig" - }, - { - 7301, - "Pmic_powerGetCommonConfig : Parameter validation for handle" - }, - { - 7260, - "Pmic_powerSetConfigPowerGood : Parameter validation for handle" - }, - { - 7302, - "Pmic_powerGetConfigPowerGood : Parameter validation for handle" - }, - { - 7265, - "Pmic_powerGetPwrRsrcStat : Parameter validation for handle" - }, - { - 7270, - "Pmic_powerSetThermalConfig : Parameter validation for handle" - }, - { - 7303, - "Pmic_powerGetThermalConfig : Parameter validation for handle" - }, - { - 7279, - "Pmic_powerSetPwrRsrcIntr : Parameter validation for handle" - }, - { - 7296, - "Pmic_powerSetIntr : Parameter validation for handle" - }, - { - 0xAB00, - "Pmic_powerSetPwrRsrcIntr : Test Set Enable OV interrupt" - }, - { - 0xAB01, - "Pmic_powerSetPwrRsrcIntr : Test Set Disable OV interrupt" - }, - { - 0xAB02, - "Pmic_powerSetPwrRsrcIntr : Test Set Enable UV interrupt" - }, - { - 0xAB03, - "Pmic_powerSetPwrRsrcIntr : Test Set Disable UV interrupt" - }, - { - 0xAB04, - "Pmic_powerSetPwrRsrcIntr : Test Set Enable ILIM interrupt" - }, - { - 0xAB05, - "Pmic_powerSetPwrRsrcIntr : Test Set Disable ILIM interrupt" - }, - { - 0xAB06, - "Pmic_powerSetIntr : Test Set Enable TWARN interrupt" - }, - { - 0xAB07, - "Pmic_powerSetIntr : Test Set Disable TWARN interrupt" - }, - { - 0xAB08, - "Pmic_powerSetIntr : Test Set Enable NRSTOUT_READBACK interrupt" - }, - { - 0xAB09, - "Pmic_powerSetIntr : Test Set Disable NRSTOUT_READBACK interrupt" - }, - { - 0xAB0A, - "Pmic_powerSetIntr : Test Set Enable SOC_PWR_ERR interrupt" - }, - { - 0xAB0B, - "Pmic_powerSetIntr : Test Set Disable SOC_PWR_ERR interrupt" - }, - { - 0xAB0C, - "Pmic_powerSetIntr : Test Set Enable MCU_PWR_ERR interrupt" - }, - { - 0xAB0D, - "Pmic_powerSetIntr : Test Set Disable MCU_PWR_ERR interrupt" - }, - { - 0xAB0E, - "Pmic_powerSetIntr : Test Set Enable ORD_SHUTDOWN interrupt" - }, - { - 0xAB0F, - "Pmic_powerSetIntr : Test Set Disable ORD_SHUTDOWN interrupt" - }, - { - 0xAB11, - "Pmic_powerSetIntr : Test Set Enable IMM_SHUTDOWN interrupt" - }, - { - 0xAB12, - "Pmic_powerSetIntr : Test Set Disable IMM_SHUTDOWN interrupt" - }, - { - 0xAB13, - "Pmic_powerSetIntr : Test Set Enable NRSTOUT_SOC_READBACK interrupt" - }, - { - 0xAB14, - "Pmic_powerSetIntr : Test Set Disable NRSTOUT_SOC_READBACK interrupt" - }, - { - 0xAB15, - "Pmic_powerSetIntr : Test Set Enable EN_DRV_READBACK interrupt" - }, - { - 0xAB16, - "Pmic_powerSetIntr : Test Set Disable EN_DRV_READBACK interrupt" - }, - { - 7220, - "Pmic_powerSetCommonConfig : Parameter validation for handle" - }, - { - 7726, - "Pmic_powerGetPwrThermalStat : Parameter validation for handle." - }, - { - 7727, - "Pmic_powerGetPwrThermalStat : Parameter validation for pPwrThermalStatCfg." - }, - { - 7728, - "Pmic_powerGetPwrThermalStat : Test Get Thermal Warn Status." - }, - { - 7729, - "Pmic_powerGetPwrThermalStat : Test Get Oderly Shutdown Status." - }, - { - 7730, - "Pmic_powerGetPwrThermalStat : Test Get immediate Shutdown Status." - }, - { - 7872, - "Pmic_powerSetPwrResourceCfg : Negative test LDO Pull down Select for HERA PMIC" - }, - { - 7873, - "Pmic_powerSetPwrResourceCfg : Negative test VMON for LEO PMIC." - }, - { - 7874, - "Pmic_powerSetThermalConfig : Negative test for thermalShutdownThold on Leo PMIC PG1.0" - }, - { - 7875, - "Pmic_powerGetThermalConfig : Negative test for thermalShutdownThold on Leo PMIC PG1.0" - }, - { - 7876, - "Pmic_powerSetLdoRtc : Negative test Disable ldortcRegulator for HERA" - }, - { - 7878, - "Pmic_powerGetPwrResourceCfg : Negative test Get Switch peak current limit for BUCK 5" - }, - { - 10622, - "Pmic_powerGetThermalConfig : Parameter validation for pThermalThreshold" - }, - { - 10623, - "Pmic_powerGetPwrRsrcStat : Parameter validation for pPwrRsrcStatCfg" - }, - { - 10624, - "Pmic_powerGetConfigPowerGood : Parameter validation for pPgoodSelType" - }, - { - 10625, - "Pmic_powerGetCommonConfig : Parameter validation for pPowerCommonCfg" - }, - { - 10626, - "Pmic_powerSetPwrResourceCfg : Negative test for ldoRvTimeoutSel configuration on Hera" - }, - { - 10627, - "Pmic_powerSetPwrResourceCfg : Negative test for Buck2 pwmMpMode configuration" - }, - { - 10628, - "Pmic_powerSetPwrResourceCfg : Negative test for Ldo4 bypass mode configuration" - }, - { - 10629, - "Pmic_powerSetIntr : Parameter Validation of intrType" - }, - { - 10630, - "Pmic_powerSetPwrResourceCfg : Test to set Power good high threshold level for Buck1" - }, - { - 10631, - "Pmic_powerSetPwrResourceCfg : Parameter validation for powerGoodOvThr" - }, - { - 10632, - "Pmic_powerSetPwrResourceCfg : Test to set Power good low threshold level for Buck1" - }, - { - 10633, - "Pmic_powerSetPwrResourceCfg : Parameter validation for powerGoodUvThr" - }, - { - 10635, - "Pmic_powerGetPwrRsrcStat : Parameter validation for ILIM status pwrResource" - }, - { - 10636, - "Pmic_powerGetPwrRsrcStat : Parameter validation for for VCCA OV LVL status pwrResource" - }, - { - 10637, - "Pmic_powerGetCommonConfig : Negative test for deglitchTimeSel on Leo" - }, - { - 10638, - "Pmic_powerSetCommonConfig : Negative test for deglitchTimeSel on Leo" - }, - { - 10639, - "Pmic_powerGetPwrResourceCfg : Parameter validation for vccaPwrGudLvl pwrResource" - }, - { - 10640, - "Pmic_powerGetPwrResourceCfg : Parameter validation for vmonRange pwrResource" - }, - { - 10641, - "Pmic_powerGetPwrResourceCfg : Parameter validation for buckCurrentLimit pwrResource" - }, - { - 10642, - "Pmic_powerGetPwrResourceCfg : Parameter validation for buckVmonSlewRate pwrResource" - }, - { - 10643, - "Pmic_powerSetPwrResourceCfg : Parameter validation for residual voltage checking pwrResource" - }, - { - 10644, - "Pmic_powerGetPwrResourceCfg : Parameter validation for residual voltage checking pwrResource" - }, - { - 10646, - "Pmic_powerGetPwrResourceCfg : Parameter validation for buckPullDownEn pwrResource" - }, - { - 10647, - "Pmic_powerGetPwrResourceCfg : Parameter validation for buckVoutSel pwrResource" - }, - { - 10648, - "Pmic_powerGetPwrResourceCfg : Parameter validation for buckFpwmMode pwrResource" - }, - { - 10649, - "Pmic_powerGetPwrResourceCfg : Parameter validation for buckFpwmMpMode pwrResource" - }, - { - 10650, - "Pmic_powerGetPwrResourceCfg : Parameter validation for regulatorEn pwrResource" - }, - { - 10651, - "Pmic_powerGetPwrResourceCfg : Parameter validation for ldoPullDownSel pwrResource" - }, - { - 10652, - "Pmic_powerSetPwrResourceCfg : Parameter range validation for buckCurrentLimit min value" - }, - { - 10653, - "Pmic_powerGetPwrResourceCfg : Parameter validation for ldoBypassModeEn pwrResource" - }, - { - 10654, - "Pmic_powerGetPwrResourceCfg : Parameter validation for ldoRvTimeoutSel pwrResource" - }, - { - 10655, - "Pmic_powerGetPwrResourceCfg : Parameter validation for voltage_mV pwrResource" - }, - { - 10656, - "Pmic_powerSetPwrResourceCfg : Parameter validation for voltage_mV as 599mv min Value" - }, - { - 10657, - "Pmic_powerSetPwrResourceCfg : Parameter validation for voltage_mV as 1099mv" - }, - { - 10658, - "Pmic_powerSetPwrResourceCfg : Parameter validation for voltage_mV as 1659mV max Value" - }, - { - 10659, - "Pmic_powerSetPwrResourceCfg : Negative test for ldoSlowRampEn configuration on PG1.0 Silicon Revision" - }, - { - 10660, - "Pmic_powerSetLdoRtc : Parameter validation for handle" - }, - { - 10661, - "Pmic_powerGetLdoRtc : Parameter validation for handle" - }, - { - 10662, - "Pmic_powerGetLdoRtc : Parameter validation for pLdortcEnable" - }, - { - 10663, - "Pmic_powerSetPwrResourceCfg : Parameter validation for min voltage level for buck" - }, - { - 10664, - "Pmic_powerSetPwrResourceCfg : Parameter validation for max voltage level for buck" - }, - { - 10665, - "Pmic_powerSetPwrResourceCfg : Parameter validation for min voltage level for ldo" - }, - { - 10666, - "Pmic_powerSetPwrResourceCfg : Parameter validation for power resource type" - }, - { - 10667, - "Pmic_powerSetPwrResourceCfg : Parameter validation for Buck Max Value Power Resource limit" - }, - { - 10668, - "Pmic_powerSetPwrResourceCfg : Parameter validation for Buck Min Value Power Resource limit" - }, - { - 10669, - "Pmic_powerSetPwrResourceCfg : Parameter validation for LDO and VMON Min Value Power Resource limit" - }, - { - 10670, - "Pmic_powerSetPwrRsrcIntr : Parameter validation for interrupt type pwrResource" - }, - { - 10671, - "Pmic_powerSetConfigPowerGood : Parameter validation for TDIE WARN pgoodSelType" - }, - { - 10672, - "Pmic_powerSetConfigPowerGood : Parameter validation for threshold voltage and current limit pgoodSelType" - }, - { - 10673, - "Pmic_powerSetConfigPowerGood : Parameter validation for NRSTOUT pgoodSelType" - }, - { - 10674, - "Pmic_powerSetConfigPowerGood : Parameter validation for NRSTOUT_SOC pgoodSelType" - }, - { - 10675, - "Pmic_powerSetConfigPowerGood : Parameter validation for VCCA/VMON Enable pgoodSelType" - }, - { - 10676, - "Pmic_powerGetLdoRtc : Negative test to get pLdortcEnable configuration on HERA" - }, - { - 10677, - "Pmic_powerSetConfigPowerGood : Parameter validation for Buck power good source max value" - }, - { - 10678, - "Pmic_powerSetConfigPowerGood : Parameter validation for Buck power good source min value" - }, - { - 10679, - "Pmic_powerSetConfigPowerGood : Parameter validation for VMON power good source max value" - }, - { - 10680, - "Pmic_powerSetConfigPowerGood : Parameter validation for VMON power good source min value" - }, - { - 10681, - "Pmic_powerSetConfigPowerGood : Parameter validation for LDO power good source max value" - }, - { - 10682, - "Pmic_powerSetConfigPowerGood : Parameter validation for LDO power good source min value" - }, - { - 10683, - "Pmic_powerSetConfigPowerGood : Parameter validation for NRSTOUT power good source" - }, - { - 10684, - "Pmic_powerSetConfigPowerGood : Parameter validation for NRSTOUT_SOC power good source" - }, - { - 10685, - "Pmic_powerSetConfigPowerGood : Parameter validation for TDIE_WARN power good source" - }, - { - 10686, - "Pmic_powerSetConfigPowerGood : Parameter validation for VCCA power good source" - }, - { - 10687, - "Pmic_powerSetConfigPowerGood : Parameter validation for power good source" - }, - { - 10688, - "Pmic_powerSetPwrResourceCfg : Parameter validation for power Resource for rvCheckEn" - }, - { - 10689, - "Pmic_powerSetPwrResourceCfg : Test to set vmonRange as PMIC_LP8764X_VMON_RANGE_3V35_5V and voltage_mV as 3350mV " - }, - { - 10690, - "Pmic_powerSetPwrResourceCfg : Parameter validation for voltage_mV when vmonRange as 0V3_3V34 and voltage_mV as 299 mV min Val" - }, - { - 10691, - "Pmic_powerSetPwrResourceCfg : Parameter validation for voltage_mV when vmonRange as 0V3_3V34 and voltage_mV as 3341U mV max Val" - }, - { - 10692, - "Pmic_powerSetPwrResourceCfg : Parameter validation for voltage_mV when vmonRange as 3V35_5V and voltage_mV as 3349 mV min Val" - }, - { - 10693, - "Pmic_powerSetPwrResourceCfg : Parameter validation for voltage_mV when vmonRange as 3V35_5V and voltage_mV as 5001 mV max Val" - }, - { - 10694, - "Pmic_powerSetPwrResourceCfg : Parameter validation for vccaPwrGudLvl power resource" - }, - { - 10695, - "Pmic_powerGetPwrResourceCfg : Negative for ldoSlowRampEn configuration on PG1.0 Silicon Revision" - }, - { - 10696, - "Pmic_powerSetPwrResourceCfg : Parameter range validation for voltage_mV min value" - }, - { - 10697, - "Pmic_powerTests : Fault Injection and Coverage Gaps" - }, -}; - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter validation for handle - */ -static void test_pmic_powerSetPowerResourceConfigPrmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc = 0U; - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_PWR_RESOURCE_RAIL_GRP_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7130, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pmicStatus = Pmic_powerSetPwrResourceCfg(NULL, pwrRsrc, pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(7130, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerGetPwrResourceCfg : Parameter validation for handle - */ -static void test_pmic_powerGetPowerResourceConfigPrmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc = 0U; - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_PWR_RESOURCE_RAIL_GRP_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7299, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pmicStatus = Pmic_powerGetPwrResourceCfg(NULL, pwrRsrc, &pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(7299, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test Enable residual voltage checking - */ -static void test_pmic_powerSetPowerResourceConfig_rvCheckEn_enable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_VMON_RV_SEL_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_VMON_RV_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7131, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.rvCheckEn = PMIC_TPS6594X_REGULATOR_RV_SEL_ENABLE; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.rvCheckEn = PMIC_LP8764X_REGULATOR_VMON_RV_SEL_ENABLE; - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.rvCheckEn, powerCfg_rd.rvCheckEn); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_POWER_SOURCE_VMON1; - pwrRsrcMax = PMIC_LP8764X_POWER_SOURCE_VMON2; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.rvCheckEn, powerCfg_rd.rvCheckEn); - } - - pmic_testResultUpdate_pass(7131, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test Disable residual voltage checking - */ -static void test_pmic_powerSetPowerResourceConfig_rvCheckEn_disable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_VMON_RV_SEL_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_VMON_RV_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7132, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.rvCheckEn = PMIC_TPS6594X_REGULATOR_RV_SEL_DISABLE; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.rvCheckEn = PMIC_LP8764X_REGULATOR_VMON_RV_SEL_DISABLE; - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.rvCheckEn, powerCfg_rd.rvCheckEn); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_POWER_SOURCE_VMON1; - pwrRsrcMax = PMIC_LP8764X_POWER_SOURCE_VMON2; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.rvCheckEn, powerCfg_rd.rvCheckEn); - } - - pmic_testResultUpdate_pass(7132, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter validation for Power Resource for rvCheckEn. - */ -static void test_pmic_powerSetPowerResourceConfigPrmValTest_PwrRsrc_rvCheckEn(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_VMON_RV_SEL_VALID_SHIFT, - }; - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_LDO_MAX + 1; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_VMON_MAX + 1; - } - - test_pmic_print_unity_testcase_info(7133, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(7133, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test Enable buck pull down checking for Buck regulator - */ -static void test_pmic_powerSetPowerResourceConfig_buckPullDownEn_enable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_BUCK_PLDN_EN_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_BUCK_PLDN_EN_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7134, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckPullDownEn = PMIC_TPS6594X_REGULATOR_BUCK_PLDN_ENABLE; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckPullDownEn = PMIC_LP8764X_REGULATOR_BUCK_PLDN_ENABLE; - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.buckPullDownEn, powerCfg_rd.buckPullDownEn); - } - - pmic_testResultUpdate_pass(7134, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test Disable buck pull down checking for Buck regulator - */ -static void test_pmic_powerSetPowerResourceConfig_buckPullDownEn_disable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_BUCK_PLDN_EN_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_BUCK_PLDN_EN_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7135, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckPullDownEn = PMIC_TPS6594X_REGULATOR_BUCK_PLDN_DISABLE; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckPullDownEn = PMIC_LP8764X_REGULATOR_BUCK_PLDN_DISABLE; - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.buckPullDownEn, powerCfg_rd.buckPullDownEn); - } - - pmic_testResultUpdate_pass(7135, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter validation for Power Resource for buckPullDownEn. - */ -static void test_pmic_powerSetPowerResourceConfigPrmValTest_PwrRsrc_buckPullDownEn(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_BUCK_PLDN_EN_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7136, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_POWER_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(7136, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test Enable the Voltage monitor. - */ -static void test_pmic_powerSetPowerResourceConfig_vmonEn_enable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_VMON_EN_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_VMON_EN_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7137, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.vmonEn = PMIC_TPS6594X_VMON_ENABLE; - pwrRsrcMin = PMIC_TPS6594X_POWER_SOURCE_VCCA; - pwrRsrcMax = PMIC_TPS6594X_POWER_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.vmonEn = PMIC_LP8764X_VMON_ENABLE; - pwrRsrcMin = PMIC_LP8764X_POWER_SOURCE_VCCA; - pwrRsrcMax = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.vmonEn, powerCfg_rd.vmonEn); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - if(((J721E_LEO_PMICB_DEVICE == pmic_device_info) && - (PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType)) && - (PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev)) - { - if((PMIC_TPS6594X_REGULATOR_BUCK3 == pwrRsrc) || - (PMIC_TPS6594X_REGULATOR_BUCK4 == pwrRsrc)) - { - /* VMON Enable for BUCK 3 and 4 for Leo PMIC-B on PG2.0 Leo PMIC results in warm reset. - * The issue is due to the FB_B3 and FB_B4 pins are currently not connected to any input, - * so when the VMON is enabled for these bucks they are expected to fail. - * Warm reset is because of the BIST_FAIL_INT which occurred on LeoB. If the regulator - * output is floating in the VMON tests, then this will cause the VMON_ABIST to fail and - * cause the warm reset - */ - continue; - } - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.vmonEn, powerCfg_rd.vmonEn); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_POWER_SOURCE_VMON1; - pwrRsrcMax = PMIC_LP8764X_POWER_SOURCE_VMON2; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.vmonEn, powerCfg_rd.vmonEn); - } - - pmic_testResultUpdate_pass(7137, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test Disable the Voltage monitor. - */ -static void test_pmic_powerSetPowerResourceConfig_vmonEn_disable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_VMON_EN_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_VMON_EN_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7138, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.vmonEn = PMIC_TPS6594X_VMON_DISABLE; - pwrRsrcMin = PMIC_TPS6594X_POWER_SOURCE_VCCA; - pwrRsrcMax = PMIC_TPS6594X_POWER_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.vmonEn = PMIC_LP8764X_VMON_DISABLE; - pwrRsrcMin = PMIC_LP8764X_POWER_SOURCE_VCCA; - pwrRsrcMax = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.vmonEn, powerCfg_rd.vmonEn); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.vmonEn, powerCfg_rd.vmonEn); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_POWER_SOURCE_VMON1; - pwrRsrcMax = PMIC_LP8764X_POWER_SOURCE_VMON2; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.vmonEn, powerCfg_rd.vmonEn); - } - - pmic_testResultUpdate_pass(7138, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter validation for Power Resource for vmonEn. - */ -static void test_pmic_powerSetPowerResourceConfigPrmValTest_PwrRsrc_vmonEn(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_VMON_EN_VALID_SHIFT, - }; - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_LDO_MAX + 1; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_VMON_MAX + 1; - } - - test_pmic_print_unity_testcase_info(7139, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(7139, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test Select output voltage register for buck as VOUT1. - */ -static void test_pmic_powerSetPowerResourceConfig_buckVoutSel_vout1(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_BUCK_VOUT_SEL_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_BUCK_VOUT_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7143, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckVoutSel = PMIC_TPS6594X_REGULATOR_BUCK_VOUT_SEL_VOUT1; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckVoutSel = PMIC_LP8764X_REGULATOR_BUCK_VOUT_SEL_VOUT1; - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.buckVoutSel, powerCfg_rd.buckVoutSel); - } - - pmic_testResultUpdate_pass(7143, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test Select output voltage register for buck as VOUT2. - */ -static void test_pmic_powerSetPowerResourceConfig_buckVoutSel_vout2(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_BUCK_VOUT_SEL_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_BUCK_VOUT_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7144, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckVoutSel = PMIC_TPS6594X_REGULATOR_BUCK_VOUT_SEL_VOUT2; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckVoutSel = PMIC_LP8764X_REGULATOR_BUCK_VOUT_SEL_VOUT2; - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (J721E_LEO_PMICA_DEVICE == pmic_device_info) && - ((pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK1) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK3) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK4) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_LDO1))) - { - continue; - } - - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (J721E_LEO_PMICB_DEVICE == pmic_device_info) && - ((pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK1) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK5) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_LDO2) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_LDO4))) - { - continue; - } - - if((J7VCL_LEO_PMICA_DEVICE == pmic_device_info) && - ((pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK1) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK3) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK4))) - { - continue; - } - - if((J7VCL_HERA_PMICB_DEVICE == pmic_device_info) && - ((pwrRsrc == PMIC_LP8764X_REGULATOR_BUCK1) || - (pwrRsrc == PMIC_LP8764X_REGULATOR_BUCK2) || - (pwrRsrc == PMIC_LP8764X_REGULATOR_BUCK3))) - { - continue; - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(pPowerCfg.buckVoutSel, powerCfg_rd.buckVoutSel); - } - - pmic_testResultUpdate_pass(7144, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter validation for Power Resource for buckVoutSel. - */ -static void test_pmic_powerSetPowerResourceConfigPrmValTest_PwrRsrc_buckVoutSel(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_BUCK_VOUT_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7145, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_POWER_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(7145, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test Select Auto Mode for BUCK - */ -static void test_pmic_powerSetPowerResourceConfig_buckFpwmMode_auto(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_BUCK_FPWM_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_BUCK_FPWM_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7146, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckFpwmMode = PMIC_TPS6594X_REGULATOR_AUTO_PWM_PFM_MODE; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckFpwmMode = PMIC_LP8764X_REGULATOR_AUTO_PWM_PFM_MODE; - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.buckFpwmMode, powerCfg_rd.buckFpwmMode); - } - - pmic_testResultUpdate_pass(7146, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test Select PWM Mode for BUCK - */ -static void test_pmic_powerSetPowerResourceConfig_buckFpwmMode_pwm(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_BUCK_FPWM_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_BUCK_FPWM_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7147, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckFpwmMode = PMIC_TPS6594X_REGULATOR_PWM_MODE; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckFpwmMode = PMIC_LP8764X_REGULATOR_PWM_MODE; - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.buckFpwmMode, powerCfg_rd.buckFpwmMode); - } - - pmic_testResultUpdate_pass(7147, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter validation for Power Resource for buckFpwmMode. - */ -static void test_pmic_powerSetPowerResourceConfigPrmValTest_PwrRsrc_buckFpwmMode(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_BUCK_FPWM_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7148, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_POWER_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(7148, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test Select Multi phase with PWM Mode for BUCK - */ -static void test_pmic_powerSetPowerResourceConfig_buckFpwmMpMode_multiPhase(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_BUCK_PWM_MP_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_BUCK_PWM_MP_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7149, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckFpwmMpMode = PMIC_TPS6594X_REGULATOR_PWM_MP_MODE; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK3; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckFpwmMpMode = PMIC_LP8764X_REGULATOR_PWM_MP_MODE; - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK3; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - /* Not supported by BUCK 2 */ - if((PMIC_TPS6594X_REGULATOR_BUCK2 == pwrRsrc) || - (PMIC_LP8764X_REGULATOR_BUCK2 == pwrRsrc)) - { - continue; - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.buckFpwmMpMode, powerCfg_rd.buckFpwmMpMode); - } - - pmic_testResultUpdate_pass(7149, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test Select AUTO Mode with Automatic phase adding and shedding for BUCK - */ -static void test_pmic_powerSetPowerResourceConfig_buckFpwmMpMode_auto(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_BUCK_PWM_MP_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_BUCK_PWM_MP_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7150, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckFpwmMpMode = PMIC_TPS6594X_REGULATOR_AUTO_PHASE_MODE; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK3; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckFpwmMpMode = PMIC_LP8764X_REGULATOR_AUTO_PHASE_MODE; - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK3; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - /* Not supported by BUCK 2 */ - if((PMIC_TPS6594X_REGULATOR_BUCK2 == pwrRsrc) || - (PMIC_LP8764X_REGULATOR_BUCK2 == pwrRsrc)) - { - continue; - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.buckFpwmMpMode, powerCfg_rd.buckFpwmMpMode); - } - - pmic_testResultUpdate_pass(7150, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter validation for Power Resource for buckFpwmMpMode. - */ -static void test_pmic_powerSetPowerResourceConfigPrmValTest_PwrRsrc_buckFpwmMpMode(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_BUCK_PWM_MP_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7151, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_REGULATOR_LDO1; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(7151, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test Disable the power regulator. - */ -static void test_pmic_powerSetPowerResourceConfig_regulatorEn_disable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_EN_VALID_SHIFT, - }; - uint16_t pwrRsrc; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_EN_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7152, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - /* 7468 PMIC: Few PMIC Power related features can't be tested on J721E EVM */ - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(7152, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - pPowerCfg.regulatorEn = PMIC_TPS6594X_REGULATOR_DISABLE; - - pwrRsrc = PMIC_TPS6594X_REGULATOR_BUCK2; - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.regulatorEn, powerCfg_rd.regulatorEn); - - pmic_testResultUpdate_pass(7152, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test Enable the power regulator. - */ -static void test_pmic_powerSetPowerResourceConfig_regulatorEn_enable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_EN_VALID_SHIFT, - }; - uint16_t pwrRsrc; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_EN_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7153, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - /* 7468 PMIC: Few PMIC Power related features can't be tested on J721E EVM */ - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(7153, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - pwrRsrc = PMIC_TPS6594X_REGULATOR_BUCK2; - pPowerCfg.regulatorEn = PMIC_TPS6594X_REGULATOR_ENABLE; - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.regulatorEn, powerCfg_rd.regulatorEn); - - pmic_testResultUpdate_pass(7153, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter validation for Power Resource for regulatorEn. - */ -static void test_pmic_powerSetPowerResourceConfigPrmValTest_PwrRsrc_regulatorEn(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_EN_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7154, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_POWER_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(7154, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test Switch peak current limit for BUCK regulator for 6.5Amp. - */ -static void test_pmic_powerSetPowerResourceConfig_buckCurrentLimit_6A5(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_BUCK_ILIM_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_BUCK_ILIM_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7155, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - /* Current limit 6.5 is not supported by LEO pmic */ - pmic_testResultUpdate_ignore(7155, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckCurrentLimit = PMIC_LP8764X_REGULATOR_BUCK_CURRENT_LIMIT_6A5; - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.buckCurrentLimit, powerCfg_rd.buckCurrentLimit); - } - - pmic_testResultUpdate_pass(7155, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test Switch peak current limit for BUCK regulator for 5.5Amp. - */ -static void test_pmic_powerSetPowerResourceConfig_buckCurrentLimit_5A5(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_BUCK_ILIM_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_BUCK_ILIM_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7156, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckCurrentLimit = PMIC_TPS6594X_REGULATOR_BUCK_CURRENT_LIMIT_5A5; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK4; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckCurrentLimit = PMIC_LP8764X_REGULATOR_BUCK_CURRENT_LIMIT_5A5; - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.buckCurrentLimit, powerCfg_rd.buckCurrentLimit); - } - - pmic_testResultUpdate_pass(7156, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test Switch peak current limit for BUCK regulator for 4.5Amp. - */ -static void test_pmic_powerSetPowerResourceConfig_buckCurrentLimit_4A5(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_BUCK_ILIM_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_BUCK_ILIM_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7157, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckCurrentLimit = PMIC_TPS6594X_REGULATOR_BUCK_CURRENT_LIMIT_4A5; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK4; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckCurrentLimit = PMIC_LP8764X_REGULATOR_BUCK_CURRENT_LIMIT_4A5; - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.buckCurrentLimit, powerCfg_rd.buckCurrentLimit); - } - - pmic_testResultUpdate_pass(7157, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test Switch peak current limit for BUCK regulator for 3.5Amp. - */ -static void test_pmic_powerSetPowerResourceConfig_buckCurrentLimit_3A5(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_BUCK_ILIM_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_BUCK_ILIM_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7158, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckCurrentLimit = PMIC_TPS6594X_REGULATOR_BUCK_CURRENT_LIMIT_3A5; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckCurrentLimit = PMIC_LP8764X_REGULATOR_BUCK_CURRENT_LIMIT_3A5; - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.buckCurrentLimit, powerCfg_rd.buckCurrentLimit); - } - - pmic_testResultUpdate_pass(7158, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test Switch peak current limit for BUCK regulator for 2.5Amp. - */ -static void test_pmic_powerSetPowerResourceConfig_buckCurrentLimit_2A5(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_BUCK_ILIM_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_BUCK_ILIM_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7159, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckCurrentLimit = PMIC_TPS6594X_REGULATOR_BUCK_CURRENT_LIMIT_2A5; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckCurrentLimit = PMIC_LP8764X_REGULATOR_BUCK_CURRENT_LIMIT_2A5; - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.buckCurrentLimit, powerCfg_rd.buckCurrentLimit); - } - - pmic_testResultUpdate_pass(7159, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter validation for Power Resource for buckCurrentLimit. -*/ -static void test_pmic_powerSetPowerResourceConfigPrmValTest_PwrRsrc_buckCurrentLimit(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_BUCK_ILIM_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7160, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_REGULATOR_LDO1; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(7160, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter range validation for buckCurrentLimit. - */ -static void test_pmic_powerSetPowerResourceConfigPrmRangeTest_buckCurrentLimit(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_BUCK_ILIM_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7161, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - pPowerCfg.buckCurrentLimit = PMIC_TPS6594X_BUCK1_4_CURRENT_LIMIT_MAX + 1; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - pPowerCfg.buckCurrentLimit = PMIC_LP8764X_BUCK_CURRENT_LIMIT_MAX + 1; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - if(pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK5) - { - pPowerCfg.buckCurrentLimit = PMIC_TPS6594X_BUCK5_CURRENT_LIMIT_MAX + 1; - } - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - } - - pmic_testResultUpdate_pass(7161, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test Output voltage slew rate for BUCK & VMON for 33MV. - */ -static void test_pmic_powerSetPowerResourceConfig_buckVmonSlewRate_33MV(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_BUCK_VMON_SLEW_RATE_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_BUCK_VMON_SLEW_RATE_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7162, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckVmonSlewRate = \ - PMIC_TPS6594X_REGULATOR_BUCK_SLEW_RATE_33MV; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckVmonSlewRate = \ - PMIC_LP8764X_REGULATOR_BUCK_VMON_SLEW_RATE_33MV; - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.buckVmonSlewRate, powerCfg_rd.buckVmonSlewRate); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_POWER_SOURCE_VMON1; - pwrRsrcMax = PMIC_LP8764X_POWER_SOURCE_VMON2; - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.buckVmonSlewRate, powerCfg_rd.buckVmonSlewRate); - } - } - - pmic_testResultUpdate_pass(7162, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test Output voltage slew rate for BUCK & VMON for 20MV. - */ -static void test_pmic_powerSetPowerResourceConfig_buckVmonSlewRate_20MV(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_BUCK_VMON_SLEW_RATE_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_BUCK_VMON_SLEW_RATE_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7163, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckVmonSlewRate = \ - PMIC_TPS6594X_REGULATOR_BUCK_SLEW_RATE_20MV; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckVmonSlewRate = \ - PMIC_LP8764X_REGULATOR_BUCK_VMON_SLEW_RATE_20MV; - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.buckVmonSlewRate, powerCfg_rd.buckVmonSlewRate); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_POWER_SOURCE_VMON1; - pwrRsrcMax = PMIC_LP8764X_POWER_SOURCE_VMON2; - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.buckVmonSlewRate, powerCfg_rd.buckVmonSlewRate); - } - } - - pmic_testResultUpdate_pass(7163, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test Output voltage slew rate for BUCK & VMON for 10MV. - */ -static void test_pmic_powerSetPowerResourceConfig_buckVmonSlewRate_10MV(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_BUCK_VMON_SLEW_RATE_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_BUCK_VMON_SLEW_RATE_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7164, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckVmonSlewRate = \ - PMIC_TPS6594X_REGULATOR_BUCK_SLEW_RATE_10MV; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckVmonSlewRate = \ - PMIC_LP8764X_REGULATOR_BUCK_VMON_SLEW_RATE_10MV; - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.buckVmonSlewRate, powerCfg_rd.buckVmonSlewRate); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_POWER_SOURCE_VMON1; - pwrRsrcMax = PMIC_LP8764X_POWER_SOURCE_VMON2; - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.buckVmonSlewRate, powerCfg_rd.buckVmonSlewRate); - } - } - - pmic_testResultUpdate_pass(7164, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test Output voltage slew rate for BUCK & VMON for 5MV. - */ -static void test_pmic_powerSetPowerResourceConfig_buckVmonSlewRate_05MV(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_BUCK_VMON_SLEW_RATE_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_BUCK_VMON_SLEW_RATE_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7165, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckVmonSlewRate = \ - PMIC_TPS6594X_REGULATOR_BUCK_SLEW_RATE_05MV; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckVmonSlewRate = \ - PMIC_LP8764X_REGULATOR_BUCK_VMON_SLEW_RATE_05MV; - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.buckVmonSlewRate, powerCfg_rd.buckVmonSlewRate); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_POWER_SOURCE_VMON1; - pwrRsrcMax = PMIC_LP8764X_POWER_SOURCE_VMON2; - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.buckVmonSlewRate, powerCfg_rd.buckVmonSlewRate); - } - } - - pmic_testResultUpdate_pass(7165, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test Output voltage slew rate for BUCK & VMON for 2.5MV. - */ -static void test_pmic_powerSetPowerResourceConfig_buckVmonSlewRate_2MV5(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_BUCK_VMON_SLEW_RATE_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_BUCK_VMON_SLEW_RATE_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7166, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckVmonSlewRate = \ - PMIC_TPS6594X_REGULATOR_BUCK_SLEW_RATE_2MV5; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckVmonSlewRate = \ - PMIC_LP8764X_REGULATOR_BUCK_VMON_SLEW_RATE_2MV5; - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.buckVmonSlewRate, powerCfg_rd.buckVmonSlewRate); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_POWER_SOURCE_VMON1; - pwrRsrcMax = PMIC_LP8764X_POWER_SOURCE_VMON2; - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.buckVmonSlewRate, powerCfg_rd.buckVmonSlewRate); - } - } - - pmic_testResultUpdate_pass(7166, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test Output voltage slew rate for BUCK & VMON for 1.3MV. - */ -static void test_pmic_powerSetPowerResourceConfig_buckVmonSlewRate_1MV3(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_BUCK_VMON_SLEW_RATE_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_BUCK_VMON_SLEW_RATE_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7167, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckVmonSlewRate = \ - PMIC_TPS6594X_REGULATOR_BUCK_SLEW_RATE_1MV3; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckVmonSlewRate = \ - PMIC_LP8764X_REGULATOR_BUCK_VMON_SLEW_RATE_1MV3; - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.buckVmonSlewRate, powerCfg_rd.buckVmonSlewRate); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_POWER_SOURCE_VMON1; - pwrRsrcMax = PMIC_LP8764X_POWER_SOURCE_VMON2; - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.buckVmonSlewRate, powerCfg_rd.buckVmonSlewRate); - } - } - - pmic_testResultUpdate_pass(7167, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test Output voltage slew rate for BUCK & VMON for 0.63MV. - */ -static void test_pmic_powerSetPowerResourceConfig_buckVmonSlewRate_0MV63(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_BUCK_VMON_SLEW_RATE_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_BUCK_VMON_SLEW_RATE_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7168, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckVmonSlewRate = \ - PMIC_TPS6594X_REGULATOR_BUCK_SLEW_RATE_0MV63; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckVmonSlewRate = \ - PMIC_LP8764X_REGULATOR_BUCK_VMON_SLEW_RATE_0MV63; - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.buckVmonSlewRate, powerCfg_rd.buckVmonSlewRate); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_POWER_SOURCE_VMON1; - pwrRsrcMax = PMIC_LP8764X_POWER_SOURCE_VMON2; - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.buckVmonSlewRate, powerCfg_rd.buckVmonSlewRate); - } - } - - pmic_testResultUpdate_pass(7168, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test Output voltage slew rate for BUCK & VMON for 0.31MV. - */ -static void test_pmic_powerSetPowerResourceConfig_buckVmonSlewRate_0MV31(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_BUCK_VMON_SLEW_RATE_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_BUCK_VMON_SLEW_RATE_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7169, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckVmonSlewRate = \ - PMIC_TPS6594X_REGULATOR_BUCK_SLEW_RATE_0MV31; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckVmonSlewRate = \ - PMIC_LP8764X_REGULATOR_BUCK_VMON_SLEW_RATE_0MV31; - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.buckVmonSlewRate, powerCfg_rd.buckVmonSlewRate); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_POWER_SOURCE_VMON1; - pwrRsrcMax = PMIC_LP8764X_POWER_SOURCE_VMON2; - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.buckVmonSlewRate, powerCfg_rd.buckVmonSlewRate); - } - } - - pmic_testResultUpdate_pass(7169, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter validation for Power Resource for buckVmonSlewRate. - */ -static void test_pmic_powerSetPowerResourceConfigPrmValTest_PwrRsrc_buckVmonSlewRate(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_BUCK_VMON_SLEW_RATE_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7170, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_POWER_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(7170, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter range validation for buckVmonSlewRate. - */ -static void test_pmic_powerSetPowerResourceConfigPrmRangeTest_buckVmonSlewRate(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_BUCK_VMON_SLEW_RATE_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7171, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - pPowerCfg.buckVmonSlewRate = PMIC_TPS6594X_BUCK_SLEW_RATE_MAX + 1; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - pPowerCfg.buckVmonSlewRate = PMIC_LP8764X_BUCK_SLEW_RATE_MAX + 1; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_POWER_SOURCE_VMON1; - pwrRsrcMax = PMIC_LP8764X_POWER_SOURCE_VMON2; - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - } - } - - pmic_testResultUpdate_pass(7171, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test Selects the resistor value for output pull-down resistor for LDO for 50Kohm. - */ -static void test_pmic_powerSetPowerResourceConfig_ldoPullDownSel_50KOHM(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_LDO_PLDN_SEL_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_LDO_PLDN_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7172, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - /* LDOs are not present in HERA pmic */ - pmic_testResultUpdate_ignore(7172, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.ldoPullDownSel = PMIC_TPS6594X_REGULATOR_LDO_PLDN_VAL_50KOHM; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.ldoPullDownSel, powerCfg_rd.ldoPullDownSel); - } - - pmic_testResultUpdate_pass(7172, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test Selects the resistor value for output pull-down resistor for LDO for 125Kohm - */ -static void test_pmic_powerSetPowerResourceConfig_ldoPullDownSel_125OHM(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_LDO_PLDN_SEL_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_LDO_PLDN_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7173, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - /* LDOs are not present in HERA pmic */ - pmic_testResultUpdate_ignore(7173, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.ldoPullDownSel = PMIC_TPS6594X_REGULATOR_LDO_PLDN_VAL_125OHM; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.ldoPullDownSel, powerCfg_rd.ldoPullDownSel); - } - - pmic_testResultUpdate_pass(7173, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test Selects the resistor value for output pull-down resistor for LDO for 250Kohm - */ -static void test_pmic_powerSetPowerResourceConfig_ldoPullDownSel_250OHM(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_LDO_PLDN_SEL_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_LDO_PLDN_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7174, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - /* LDOs are not present in HERA pmic */ - pmic_testResultUpdate_ignore(7174, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.ldoPullDownSel = PMIC_TPS6594X_REGULATOR_LDO_PLDN_VAL_250OHM; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.ldoPullDownSel, powerCfg_rd.ldoPullDownSel); - } - - pmic_testResultUpdate_pass(7174, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test Selects the resistor value for output pull-down resistor for LDO for 500Kohm - */ -static void test_pmic_powerSetPowerResourceConfig_ldoPullDownSel_500OHM(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_LDO_PLDN_SEL_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_LDO_PLDN_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7175, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - /* LDOs are not present in HERA pmic */ - pmic_testResultUpdate_ignore(7175, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.ldoPullDownSel = PMIC_TPS6594X_REGULATOR_LDO_PLDN_VAL_500OHM; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.ldoPullDownSel, powerCfg_rd.ldoPullDownSel); - } - - pmic_testResultUpdate_pass(7175, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test Enable Slow Ramp for LDO - */ -static void test_pmic_powerSetPowerResourceConfig_ldoSlowRampEn_enable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_LDO_SLOW_RAMP_EN_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_LDO_SLOW_RAMP_EN_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7176, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if((PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) || - ((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev))) - { - /* ldoSlowRamp feature is not supported in HERA PMIC and Leo PMIC PG1.0 */ - pmic_testResultUpdate_ignore(7176, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.ldoSlowRampEn = PMIC_TPS6594X_REGULATOR_LDO_SLOW_RAMP_ENABLE; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.ldoSlowRampEn, powerCfg_rd.ldoSlowRampEn); - } - - pmic_testResultUpdate_pass(7176, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test Disable Slow Ramp for LDO - */ -static void test_pmic_powerSetPowerResourceConfig_ldoSlowRampEn_disable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_LDO_SLOW_RAMP_EN_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_LDO_SLOW_RAMP_EN_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7177, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev)) - { - pPowerCfg.ldoSlowRampEn = PMIC_TPS6594X_REGULATOR_LDO_SLOW_RAMP_DISABLE; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - } - - if((PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) || - ((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev))) - { - /* ldoSlowRamp feature is not supported in HERA PMIC and Leo PMIC PG1.0 */ - pmic_testResultUpdate_ignore(7177, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.ldoSlowRampEn, powerCfg_rd.ldoSlowRampEn); - } - - pmic_testResultUpdate_pass(7177, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter validation for Power Resource for ldoPullDownSel. - */ -static void test_pmic_powerSetPowerResourceConfigPrmValTest_PwrRsrc_ldoPullDownSel(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - uint16_t pwrRsrc = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_LDO_PLDN_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7178, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_REGULATOR_BUCK1; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - /* LDOs are not present in HERA pmic */ - pmic_testResultUpdate_ignore(7178, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(7178, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter range validation for ldoPullDownSel. - */ -static void test_pmic_powerSetPowerResourceConfigPrmRangeTest_ldoPullDownSel(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_LDO_PLDN_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7179, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - pPowerCfg.ldoPullDownSel = PMIC_TPS6594X_REGULATOR_LDO_PLDN_VAL_MAX + 1; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - /* LDOs are not present in HERA pmic */ - pmic_testResultUpdate_ignore(7179, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - } - - pmic_testResultUpdate_pass(7179, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter validation for Power Resource for ldoSlowRampEn. - */ -static void test_pmic_powerSetPowerResourceConfigPrmValTest_PwrRsrc_ldoSlowRampEn(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_LDO_SLOW_RAMP_EN_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7180, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev)) - { - pwrRsrc = PMIC_TPS6594X_REGULATOR_BUCK1; - } - - if((PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) || - ((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev))) - { - /* ldoSlowRampEn feature is not supported in HERA PMIC and Leo PMIC PG1.0 */ - pmic_testResultUpdate_ignore(7180, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(7180, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * 7483 - * PMIC: BUCK and LDO voltage configuration can't be tested for supported values - * on J721E EVM. - * voltages should be fixed at their default value, and not adjusted. - * Tested voltages: - * PMIC A - * BUCK 2 -> 300mv - * BUCK 5 -> 300mv - * LDO 2 -> 1800mv - * LDO 3 -> 800mv - * LDO 4 -> 1800mv - * - * PMIC B - * BUCK 2 -> 300mv - * BUCK 3 -> 300mv - * BUCK 4 -> 300mv - * LDO 1 -> 3300mv - * LDO 3 -> 1800mv - */ - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test Voltage level in miliVolts for regulators - */ -static void test_pmic_powerSetPowerResourceConfig_voltage_mV(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_VMON_VOLTAGE_SET_VALID_SHIFT, - }; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_VMON_VOLTAGE_SET_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7181, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if((J721E_LEO_PMICB_DEVICE == pmic_device_info) && - (PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev)) - { - pmic_testResultUpdate_ignore(7181, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (J721E_LEO_PMICA_DEVICE == pmic_device_info) && - ((pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK3) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK4) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_LDO1))) - { - continue; - } - - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (J721E_LEO_PMICB_DEVICE == pmic_device_info) && - ((pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK1) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK5) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_LDO2) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_LDO4))) - { - continue; - } - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pPowerCfg.voltage_mV = powerCfg_rd.voltage_mV; - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmic_log("BUCK-%d: passed for %dmv \n", (pwrRsrc - pwrRsrcMin + 1), pPowerCfg.voltage_mV); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_POWER_SOURCE_VMON1; - pwrRsrcMax = PMIC_LP8764X_POWER_SOURCE_VMON2; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (J721E_LEO_PMICA_DEVICE == pmic_device_info) && - ((pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK1) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK3) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK4) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_LDO1))) - { - continue; - } - - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (J721E_LEO_PMICB_DEVICE == pmic_device_info) && - ((pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK1) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK5) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_LDO2) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_LDO4))) - { - continue; - } - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - pPowerCfg.voltage_mV = powerCfg_rd.voltage_mV; - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_log("LDO-%d: passed for %dmv \n", (pwrRsrc - pwrRsrcMin + 1), pPowerCfg.voltage_mV); - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_log("VMON-%d: passed for %dmv \n", (pwrRsrc - pwrRsrcMin + 1), pPowerCfg.voltage_mV); - } - } - - pmic_testResultUpdate_pass(7181, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter validation for Power Resource for voltage_mV. - */ -static void test_pmic_powerSetPowerResourceConfigPrmValTest_PwrRsrc_voltage_mV(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - uint16_t pwrRsrc; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_VMON_VOLTAGE_SET_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7182, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_POWER_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(7182, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter range validation for voltage_mV max value. - */ -static void test_pmic_powerSetPowerResourceConfigPrmRangeTest_voltage_mV_maxVal(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_VMON_VOLTAGE_SET_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7183, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - pPowerCfg.voltage_mV = PMIC_UT_TPS6594X_REGULATOR_BUCK_MAX_VOLTAGE + 1; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - pPowerCfg.voltage_mV = PMIC_UT_LP8764X_REGULATOR_BUCK_MAX_VOLTAGE + 1; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - pPowerCfg.voltage_mV = PMIC_TPS6594X_REGULATOR_LDO_MAX_VOLTAGE + 1; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - } - - pmic_testResultUpdate_pass(7183, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test Powergood level 5V for VCCA pin - */ -static void test_pmic_powerSetPowerResourceConfig_vccaPwrGudLvl_5V(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_VCCA_PWR_GOOD_LVL_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_VCCA_PWR_GOOD_LVL_VALID_SHIFT, - }; - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.vccaPwrGudLvl = PMIC_TPS6594X_VCCA_PG_5V_LEVEL; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.vccaPwrGudLvl = PMIC_LP8764X_VCCA_PG_5V_LEVEL; - } - - test_pmic_print_unity_testcase_info(7184, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.vccaPwrGudLvl, powerCfg_rd.vccaPwrGudLvl); - - pmic_testResultUpdate_pass(7184, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test Powergood level 3.3V for VCCA pin - */ -static void test_pmic_powerSetPowerResourceConfig_vccaPwrGudLvl_3V3(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_VCCA_PWR_GOOD_LVL_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_VCCA_PWR_GOOD_LVL_VALID_SHIFT, - }; - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.vccaPwrGudLvl = PMIC_TPS6594X_VCCA_PG_3V3_LEVEL; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.vccaPwrGudLvl = PMIC_LP8764X_VCCA_PG_3V3_LEVEL; - } - - test_pmic_print_unity_testcase_info(7185, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.vccaPwrGudLvl, powerCfg_rd.vccaPwrGudLvl); - - pmic_testResultUpdate_pass(7185, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter validation for vccaPwrGudLvl. - */ - static void test_pmic_powerSetPowerResourceConfigPrmValTest_PwrRsrc_vccaPwrGudLvl(void) - { - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_VCCA_PWR_GOOD_LVL_VALID_SHIFT, - }; - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_REGULATOR_BUCK1; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_REGULATOR_BUCK1; - } - - test_pmic_print_unity_testcase_info(7186, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(7186, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test Rail group selection for power resources as group none. - */ -static void test_pmic_powerSetPowerResourceConfig_railGrpSel_none(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_PWR_RESOURCE_RAIL_GRP_SEL_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_PWR_RESOURCE_RAIL_GRP_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7187, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.railGrpSel = PMIC_TPS6594X_POWER_RAIL_SEL_NONE; - pwrRsrcMin = PMIC_TPS6594X_POWER_SOURCE_VCCA; - pwrRsrcMax = PMIC_TPS6594X_POWER_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.railGrpSel = PMIC_LP8764X_POWER_RAIL_SEL_NONE; - pwrRsrcMin = PMIC_LP8764X_POWER_SOURCE_VCCA; - pwrRsrcMax = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.railGrpSel, powerCfg_rd.railGrpSel); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (J721E_LEO_PMICA_DEVICE == pmic_device_info) && - ((pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK1) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK3) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK4) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_LDO1))) - { - continue; - } - - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (J721E_LEO_PMICB_DEVICE == pmic_device_info) && - ((pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK1) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK5) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_LDO2) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_LDO4))) - { - continue; - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.railGrpSel, powerCfg_rd.railGrpSel); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (J721E_LEO_PMICA_DEVICE == pmic_device_info) && - ((pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK1) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK3) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK4) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_LDO4) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_LDO1))) - { - continue; - } - - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (J721E_LEO_PMICB_DEVICE == pmic_device_info) && - ((pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK1) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK5) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_LDO2) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_LDO4))) - { - continue; - } - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.railGrpSel, powerCfg_rd.railGrpSel); - } - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_POWER_SOURCE_VMON1; - pwrRsrcMax = PMIC_LP8764X_POWER_SOURCE_VMON2; - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.railGrpSel, powerCfg_rd.railGrpSel); - - } - } - - pmic_testResultUpdate_pass(7187, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test Rail group selection for power resources as group mcu. - */ -static void test_pmic_powerSetPowerResourceConfig_railGrpSel_mcu(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_PWR_RESOURCE_RAIL_GRP_SEL_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_PWR_RESOURCE_RAIL_GRP_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7188, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - /* - * Once the PFSM is in operation, user should not change rail grp - * setting as this may compromise the system’s functional safety design - */ - pmic_testResultUpdate_ignore(7188, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - /* - * Once the PFSM is in operation, user should not change rail grp - * setting as this may compromise the system’s functional safety design - */ - pmic_testResultUpdate_ignore(7188, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.railGrpSel = PMIC_TPS6594X_POWER_RAIL_SEL_MCU; - pwrRsrcMin = PMIC_TPS6594X_POWER_SOURCE_VCCA; - pwrRsrcMax = PMIC_TPS6594X_POWER_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.railGrpSel = PMIC_LP8764X_POWER_RAIL_SEL_MCU; - pwrRsrcMin = PMIC_LP8764X_POWER_SOURCE_VCCA; - pwrRsrcMax = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.railGrpSel, powerCfg_rd.railGrpSel); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (J721E_LEO_PMICA_DEVICE == pmic_device_info) && - ((pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK1) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK2) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK3) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK4) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_LDO1))) - { - continue; - } - - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (J721E_LEO_PMICB_DEVICE == pmic_device_info) && - ((pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK1) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK5) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_LDO2) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_LDO4))) - { - continue; - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.railGrpSel, powerCfg_rd.railGrpSel); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_POWER_SOURCE_VMON1; - pwrRsrcMax = PMIC_LP8764X_POWER_SOURCE_VMON2; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (J721E_LEO_PMICA_DEVICE == pmic_device_info) && - ((pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK1) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK2) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK3) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK4) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_LDO1))) - { - continue; - } - - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (J721E_LEO_PMICB_DEVICE == pmic_device_info) && - ((pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK1) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK5) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_LDO2) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_LDO4))) - { - continue; - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.railGrpSel, powerCfg_rd.railGrpSel); - } - - pmic_testResultUpdate_pass(7188, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test Rail group selection for power resources as group soc. - */ -static void test_pmic_powerSetPowerResourceConfig_railGrpSel_soc(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_PWR_RESOURCE_RAIL_GRP_SEL_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_PWR_RESOURCE_RAIL_GRP_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7189, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - /* - * Once the PFSM is in operation, user should not change rail grp - * setting as this may compromise the system’s functional safety design - */ - pmic_testResultUpdate_ignore(7189, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - /* - * Once the PFSM is in operation, user should not change rail grp - * setting as this may compromise the system’s functional safety design - */ - pmic_testResultUpdate_ignore(7189, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.railGrpSel = PMIC_TPS6594X_POWER_RAIL_SEL_SOC; - pwrRsrcMin = PMIC_TPS6594X_POWER_SOURCE_VCCA; - pwrRsrcMax = PMIC_TPS6594X_POWER_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.railGrpSel = PMIC_LP8764X_POWER_RAIL_SEL_SOC; - pwrRsrcMin = PMIC_LP8764X_POWER_SOURCE_VCCA; - pwrRsrcMax = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.railGrpSel, powerCfg_rd.railGrpSel); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (J721E_LEO_PMICA_DEVICE == pmic_device_info) && - ((pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK1) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK2) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK3) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK4) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_LDO1))) - { - continue; - } - - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (J721E_LEO_PMICB_DEVICE == pmic_device_info) && - ((pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK1) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK5) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_LDO2) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_LDO4))) - { - continue; - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.railGrpSel, powerCfg_rd.railGrpSel); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_POWER_SOURCE_VMON1; - pwrRsrcMax = PMIC_LP8764X_POWER_SOURCE_VMON2; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (J721E_LEO_PMICA_DEVICE == pmic_device_info) && - ((pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK1) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK2) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK3) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK4) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_LDO1))) - { - continue; - } - - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (J721E_LEO_PMICB_DEVICE == pmic_device_info) && - ((pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK1) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK5) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_LDO2) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_LDO4))) - { - continue; - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.railGrpSel, powerCfg_rd.railGrpSel); - } - - pmic_testResultUpdate_pass(7189, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test Rail group selection for power resources as group other. - */ -static void test_pmic_powerSetPowerResourceConfig_railGrpSel_other(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_PWR_RESOURCE_RAIL_GRP_SEL_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_PWR_RESOURCE_RAIL_GRP_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7190, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - /* - * Once the PFSM is in operation, user should not change rail grp - * setting as this may compromise the system’s functional safety design - */ - pmic_testResultUpdate_ignore(7190, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - /* - * Once the PFSM is in operation, user should not change rail grp - * setting as this may compromise the system’s functional safety design - */ - pmic_testResultUpdate_ignore(7190, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.railGrpSel = PMIC_TPS6594X_POWER_RAIL_SEL_OTHER; - pwrRsrcMin = PMIC_TPS6594X_POWER_SOURCE_VCCA; - pwrRsrcMax = PMIC_TPS6594X_POWER_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.railGrpSel = PMIC_LP8764X_POWER_RAIL_SEL_OTHER; - pwrRsrcMin = PMIC_LP8764X_POWER_SOURCE_VCCA; - pwrRsrcMax = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(pPowerCfg.railGrpSel, powerCfg_rd.railGrpSel); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (J721E_LEO_PMICA_DEVICE == pmic_device_info) && - ((pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK1) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK2) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK3) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK4) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_LDO1))) - { - continue; - } - - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (J721E_LEO_PMICB_DEVICE == pmic_device_info) && - ((pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK1) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK5) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_LDO2) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_LDO4))) - { - continue; - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.railGrpSel, powerCfg_rd.railGrpSel); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_POWER_SOURCE_VMON1; - pwrRsrcMax = PMIC_LP8764X_POWER_SOURCE_VMON2; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (J721E_LEO_PMICA_DEVICE == pmic_device_info) && - ((pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK1) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK2) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK3) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK4) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_LDO1))) - { - continue; - } - - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (J721E_LEO_PMICB_DEVICE == pmic_device_info) && - ((pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK1) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK5) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_LDO2) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_LDO4))) - { - continue; - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.railGrpSel, powerCfg_rd.railGrpSel); - } - - pmic_testResultUpdate_pass(7190, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter validation for Power Resource for railGrpSel. - */ -static void test_pmic_powerSetPowerResourceConfigPrmValTest_PwrRsrc_railGrpSel(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - uint16_t pwrRsrc; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_PWR_RESOURCE_RAIL_GRP_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7191, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_LDO_MAX + 1; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_BUCK_MAX + 1; - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(7191, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter range validation for railGrpSel. - */ -static void test_pmic_powerSetPowerResourceConfigPrmRangeTest_railGrpSel(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_PWR_RESOURCE_RAIL_GRP_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7192, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - pPowerCfg.railGrpSel = PMIC_TPS6594X_POWER_RAIL_SEL_MAX + 1; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - pPowerCfg.railGrpSel = PMIC_LP8764X_POWER_RAIL_SEL_MAX + 1; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - /* LDOs are not present in HERA pmic */ - pmic_testResultUpdate_ignore(7192, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - } - - pmic_testResultUpdate_pass(7192, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test LDO Bypass Regulator LDO mode - */ -static void test_pmic_powerSetPowerResourceConfig_ldoBypassModeEn_bypass(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_LDO_BYPASS_MODE_EN_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_LDO_BYPASS_MODE_EN_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7198, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - /* 7468 PMIC: Few PMIC Power related features can't be tested on J721E EVM */ - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - /* Setting LDOs in bypass mode - Resulted in DDR issue */ - pmic_testResultUpdate_ignore(7198, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - /* Setting LDOs in bypass mode - Resulted in DDR issue */ - pmic_testResultUpdate_ignore(7198, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.ldoBypassModeEn = PMIC_TPS6594X_REGULATOR_LDO_BYPASS_MODE; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO3; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(7198, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (J721E_LEO_PMICA_DEVICE == pmic_device_info) && - ((pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK1) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK2) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK3) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK4) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_LDO1))) - { - continue; - } - - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (J721E_LEO_PMICB_DEVICE == pmic_device_info) && - ((pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK1) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_BUCK5) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_LDO2) || - (pwrRsrc == PMIC_TPS6594X_REGULATOR_LDO4))) - { - continue; - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(pPowerCfg.ldoBypassModeEn, powerCfg_rd.ldoBypassModeEn); - } - - pmic_testResultUpdate_pass(7198, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test LDO Linear Regulator LDO mode - */ -static void test_pmic_powerSetPowerResourceConfig_ldoBypassModeEn_linear(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_LDO_BYPASS_MODE_EN_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_LDO_BYPASS_MODE_EN_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7199, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - -#if defined(SOC_J721E) - /* 7468 PMIC: Few PMIC Power related features can't be tested on J721E EVM */ - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(7199, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } -#endif - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(7199, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.ldoBypassModeEn = PMIC_TPS6594X_REGULATOR_LDO_LINEAR_REGULATOR_MODE; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO3; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.ldoBypassModeEn, powerCfg_rd.ldoBypassModeEn); - } - - pmic_testResultUpdate_pass(7199, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter validation for Power Resource for ldoBypassModeEn. - */ -static void test_pmic_powerSetPowerResourceConfigPrmValTest_PwrRsrc_ldoBypassModeEn(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_LDO_BYPASS_MODE_EN_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7200, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_REGULATOR_BUCK1; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_REGULATOR_BUCK1; - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(7200, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test LDO residual voltage check timeout select for 0.5MS. - */ -static void test_pmic_powerSetPowerResourceConfig_ldoRvTimeoutSel_0MS5(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7201, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.ldoRvTimeoutSel = PMIC_TPS6594X_REGULATOR_LDO_RV_TIMEOUT_0MS5; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - /* LDOs are not present in HERA pmic */ - pmic_testResultUpdate_ignore(7201, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.ldoRvTimeoutSel, powerCfg_rd.ldoRvTimeoutSel); - } - - pmic_testResultUpdate_pass(7201, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test LDO residual voltage check timeout select for 1MS. - */ -static void test_pmic_powerSetPowerResourceConfig_ldoRvTimeoutSel_1MS(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7202, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.ldoRvTimeoutSel = PMIC_TPS6594X_REGULATOR_LDO_RV_TIMEOUT_1MS; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - /* LDOs are not present in HERA pmic */ - pmic_testResultUpdate_ignore(7202, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.ldoRvTimeoutSel, powerCfg_rd.ldoRvTimeoutSel); - } - - pmic_testResultUpdate_pass(7202, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test LDO residual voltage check timeout select for 1.5MS. - */ -static void test_pmic_powerSetPowerResourceConfig_ldoRvTimeoutSel_1MS5(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7203, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.ldoRvTimeoutSel = PMIC_TPS6594X_REGULATOR_LDO_RV_TIMEOUT_1MS5; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - /* LDOs are not present in HERA pmic */ - pmic_testResultUpdate_ignore(7203, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.ldoRvTimeoutSel, powerCfg_rd.ldoRvTimeoutSel); - } - - pmic_testResultUpdate_pass(7203, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test LDO residual voltage check timeout select for 2MS. - */ -static void test_pmic_powerSetPowerResourceConfig_ldoRvTimeoutSel_2MS(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7204, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.ldoRvTimeoutSel = PMIC_TPS6594X_REGULATOR_LDO_RV_TIMEOUT_2MS; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - /* LDOs are not present in HERA pmic */ - pmic_testResultUpdate_ignore(7204, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.ldoRvTimeoutSel, powerCfg_rd.ldoRvTimeoutSel); - } - - pmic_testResultUpdate_pass(7204, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test LDO residual voltage check timeout select for 2.5MS. - */ -static void test_pmic_powerSetPowerResourceConfig_ldoRvTimeoutSel_2MS5(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7205, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.ldoRvTimeoutSel = PMIC_TPS6594X_REGULATOR_LDO_RV_TIMEOUT_2MS5; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - /* LDOs are not present in HERA pmic */ - pmic_testResultUpdate_ignore(7205, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.ldoRvTimeoutSel, powerCfg_rd.ldoRvTimeoutSel); - } - - pmic_testResultUpdate_pass(7205, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test LDO residual voltage check timeout select for 3MS. - */ -static void test_pmic_powerSetPowerResourceConfig_ldoRvTimeoutSel_3MS(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7206, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.ldoRvTimeoutSel = PMIC_TPS6594X_REGULATOR_LDO_RV_TIMEOUT_3MS; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - /* LDOs are not present in HERA pmic */ - pmic_testResultUpdate_ignore(7206, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.ldoRvTimeoutSel, powerCfg_rd.ldoRvTimeoutSel); - } - - pmic_testResultUpdate_pass(7206, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test LDO residual voltage check timeout select for 3.5MS. - */ -static void test_pmic_powerSetPowerResourceConfig_ldoRvTimeoutSel_3MS5(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7207, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.ldoRvTimeoutSel = PMIC_TPS6594X_REGULATOR_LDO_RV_TIMEOUT_3MS5; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - /* LDOs are not present in HERA pmic */ - pmic_testResultUpdate_ignore(7207, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.ldoRvTimeoutSel, powerCfg_rd.ldoRvTimeoutSel); - } - - pmic_testResultUpdate_pass(7207, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test LDO residual voltage check timeout select for 4MS. - */ -static void test_pmic_powerSetPowerResourceConfig_ldoRvTimeoutSel_4MS(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7208, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.ldoRvTimeoutSel = PMIC_TPS6594X_REGULATOR_LDO_RV_TIMEOUT_4MS; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - /* LDOs are not present in HERA pmic */ - pmic_testResultUpdate_ignore(7208, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.ldoRvTimeoutSel, powerCfg_rd.ldoRvTimeoutSel); - } - - pmic_testResultUpdate_pass(7208, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test LDO residual voltage check timeout select for 6MS. - */ -static void test_pmic_powerSetPowerResourceConfig_ldoRvTimeoutSel_6MS(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7209, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.ldoRvTimeoutSel = PMIC_TPS6594X_REGULATOR_LDO_RV_TIMEOUT_6MS; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - /* LDOs are not present in HERA pmic */ - pmic_testResultUpdate_ignore(7209, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.ldoRvTimeoutSel, powerCfg_rd.ldoRvTimeoutSel); - } - - pmic_testResultUpdate_pass(7209, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test LDO residual voltage check timeout select for 8MS. - */ -static void test_pmic_powerSetPowerResourceConfig_ldoRvTimeoutSel_8MS(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7210, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.ldoRvTimeoutSel = PMIC_TPS6594X_REGULATOR_LDO_RV_TIMEOUT_8MS; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - /* LDOs are not present in HERA pmic */ - pmic_testResultUpdate_ignore(7210, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.ldoRvTimeoutSel, powerCfg_rd.ldoRvTimeoutSel); - } - - pmic_testResultUpdate_pass(7210, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test LDO residual voltage check timeout select for 10MS. - */ -static void test_pmic_powerSetPowerResourceConfig_ldoRvTimeoutSel_10MS(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7211, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.ldoRvTimeoutSel = PMIC_TPS6594X_REGULATOR_LDO_RV_TIMEOUT_10MS; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - /* LDOs are not present in HERA pmic */ - pmic_testResultUpdate_ignore(7211, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.ldoRvTimeoutSel, powerCfg_rd.ldoRvTimeoutSel); - } - - pmic_testResultUpdate_pass(7211, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test LDO residual voltage check timeout select for 12MS. - */ -static void test_pmic_powerSetPowerResourceConfig_ldoRvTimeoutSel_12MS(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7212, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.ldoRvTimeoutSel = PMIC_TPS6594X_REGULATOR_LDO_RV_TIMEOUT_12MS; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - /* LDOs are not present in HERA pmic */ - pmic_testResultUpdate_ignore(7212, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.ldoRvTimeoutSel, powerCfg_rd.ldoRvTimeoutSel); - } - - pmic_testResultUpdate_pass(7212, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test LDO residual voltage check timeout select for 14MS. - */ -static void test_pmic_powerSetPowerResourceConfig_ldoRvTimeoutSel_14MS(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7213, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.ldoRvTimeoutSel = PMIC_TPS6594X_REGULATOR_LDO_RV_TIMEOUT_14MS; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - /* LDOs are not present in HERA pmic */ - pmic_testResultUpdate_ignore(7213, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.ldoRvTimeoutSel, powerCfg_rd.ldoRvTimeoutSel); - } - - pmic_testResultUpdate_pass(7213, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test LDO residual voltage check timeout select for 16MS. - */ -static void test_pmic_powerSetPowerResourceConfig_ldoRvTimeoutSel_16MS(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7214, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.ldoRvTimeoutSel = PMIC_TPS6594X_REGULATOR_LDO_RV_TIMEOUT_16MS; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - /* LDOs are not present in HERA pmic */ - pmic_testResultUpdate_ignore(7214, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.ldoRvTimeoutSel, powerCfg_rd.ldoRvTimeoutSel); - } - - pmic_testResultUpdate_pass(7214, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter validation for Power Resource for ldoRvTimeoutSel. - */ - static void test_pmic_powerSetPowerResourceConfigPrmValTest_PwrRsrc_ldoRvTimeoutSel(void) - { - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7215, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_POWER_SOURCE_VCCA; - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(7215, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter range validation for ldoRvTimeoutSel. - */ -static void test_pmic_powerSetPowerResourceConfigPrmRangeTest_ldoRvTimeoutSel(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7216, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.ldoRvTimeoutSel = - PMIC_TPS6594X_REGULATOR_LDO_RV_TIMEOUT_MAX + 1; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - /* LDOs are not present in HERA pmic */ - pmic_testResultUpdate_ignore(7216, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - } - - pmic_testResultUpdate_pass(7216, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test OV/UV voltage monitoring range for vmonRange for range1. - */ -static void test_pmic_powerSetPowerResourceConfig_vmonRange_range1(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_VMON_RANGE_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_VMON_RANGE_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7217, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.vmonRange = PMIC_LP8764X_VMON_RANGE_0V3_3V34; - pwrRsrcMin = PMIC_LP8764X_POWER_SOURCE_VMON1; - pwrRsrcMax = PMIC_LP8764X_POWER_SOURCE_VMON2; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - /* VMON1 and VMON2 are not present in LEO pmic */ - pmic_testResultUpdate_ignore(7217, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.vmonRange, powerCfg_rd.vmonRange); - } - - pmic_testResultUpdate_pass(7217, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test OV/UV voltage monitoring range for vmonRange for range2. - */ -static void test_pmic_powerSetPowerResourceConfig_vmonRange_range2(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_VMON_RANGE_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_VMON_RANGE_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7218, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.vmonRange = PMIC_LP8764X_VMON_RANGE_3V35_5V; - pwrRsrcMin = PMIC_LP8764X_POWER_SOURCE_VMON1; - pwrRsrcMax = PMIC_LP8764X_POWER_SOURCE_VMON2; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - /* VMON1 and VMON2 are not present in LEO pmic */ - pmic_testResultUpdate_ignore(7218, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.vmonRange, powerCfg_rd.vmonRange); - } - - pmic_testResultUpdate_pass(7218, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter validation for Power Resource for vmonRange. - */ - static void test_pmic_powerSetPowerResourceConfigPrmValTest_PwrRsrc_vmonRange(void) - { - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_VMON_RANGE_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7219, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - /* VMON1 and VMON2 are not present in LEO pmic */ - pmic_testResultUpdate_ignore(7219, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(7219, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerGetPwrResourceCfg : Parameter validation for Pmic_PowerResourceCfg_t - */ -static void test_pmic_powerGetPowerResourceConfigPrmValTest_Pmic_PowerResourceCfg_t(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc = 0U; - - test_pmic_print_unity_testcase_info(7300, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, pwrRsrc, NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(7300, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetCommonConfig : Parameter validation for handle - */ -static void test_pmic_powerSetCommonConfigPrmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerCommonCfg_t pwrCommonCfg = - { - PMIC_POWER_PGOOD_WINDOW_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7220, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pmicStatus = Pmic_powerSetCommonConfig(NULL, pwrCommonCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(7220, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetCommonConfig : Test pgoodWindow uv monitor enable - */ -static void test_pmic_powerSetCommonConfig_pgoodWindow_uv(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerCommonCfg_t powerCfg_rd = - { - PMIC_POWER_PGOOD_WINDOW_VALID_SHIFT, - }; - - Pmic_PowerCommonCfg_t pwrCommonCfg = - { - PMIC_POWER_PGOOD_WINDOW_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7221, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pwrCommonCfg.pgoodWindow = PMIC_POWER_GOOD_UV_MONITOR_ENABLE; - - pmicStatus = Pmic_powerSetCommonConfig(pPmicCoreHandle, pwrCommonCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetCommonConfig(pPmicCoreHandle, &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pwrCommonCfg.pgoodWindow, powerCfg_rd.pgoodWindow); - - pmic_testResultUpdate_pass(7221, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetCommonConfig : Test pgoodWindow uv and ov monitor enable - */ -static void test_pmic_powerSetCommonConfig_pgoodWindow_uv_ov(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerCommonCfg_t powerCfg_rd = - { - PMIC_POWER_PGOOD_WINDOW_VALID_SHIFT, - }; - - Pmic_PowerCommonCfg_t pwrCommonCfg = - { - PMIC_POWER_PGOOD_WINDOW_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7222, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pwrCommonCfg.pgoodWindow = PMIC_POWER_GOOD_UV_OV_MONITOR_ENABLE; - - pmicStatus = Pmic_powerSetCommonConfig(pPmicCoreHandle, - pwrCommonCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetCommonConfig(pPmicCoreHandle, &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pwrCommonCfg.pgoodWindow, powerCfg_rd.pgoodWindow); - - pmic_testResultUpdate_pass(7222, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetCommonConfig : Test Enable pgoodPolarity high - */ -static void test_pmic_powerSetCommonConfig_pgoodPolarity_high(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerCommonCfg_t powerCfg_rd = - { - PMIC_POWER_PGOOD_POL_VALID_SHIFT, - }; - - Pmic_PowerCommonCfg_t pwrCommonCfg = - { - PMIC_POWER_PGOOD_POL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7223, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - pwrCommonCfg.pgoodPolarity = PMIC_POWER_PGOOD_POL_HIGH; - - pmicStatus = Pmic_powerSetCommonConfig(pPmicCoreHandle, - pwrCommonCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetCommonConfig(pPmicCoreHandle, &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pwrCommonCfg.pgoodPolarity, powerCfg_rd.pgoodPolarity); - - pmic_testResultUpdate_pass(7223, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetCommonConfig : Test Enable pgoodPolarity low - */ -static void test_pmic_powerSetCommonConfig_pgoodPolarity_low(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerCommonCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_BUCK_PLDN_EN_VALID_SHIFT, - }; - - Pmic_PowerCommonCfg_t pwrCommonCfg = - { - PMIC_CFG_REGULATOR_BUCK_PLDN_EN_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7224, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pwrCommonCfg.pgoodPolarity = PMIC_POWER_PGOOD_POL_LOW; - - pmicStatus = Pmic_powerSetCommonConfig(pPmicCoreHandle, - pwrCommonCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetCommonConfig(pPmicCoreHandle, &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pwrCommonCfg.pgoodPolarity, powerCfg_rd.pgoodPolarity); - - pmic_testResultUpdate_pass(7224, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetConfigPowerGood : Test pgoodSelType as voltage current - */ -static void test_pmic_powerSetConfigPowerGood_pgoodSelType_voltageCurrent(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pgoodSrcSel; - uint8_t pgoodSelType; - uint8_t pPgoodSelType_rd; - uint16_t pwrRsrcMin, pwrRsrcMax; - - test_pmic_print_unity_testcase_info(7252, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_TPS6594X_POWER_PGOOD_SEL_SRC_VOLTAGE_CURRENT; - pwrRsrcMin = PMIC_TPS6594X_PGOOD_SOURCE_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_PGOOD_SOURCE_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_LP8764X_POWER_PGOOD_SEL_SRC_VOLTAGE_CURRENT; - pwrRsrcMin = PMIC_LP8764X_PGOOD_SOURCE_BUCK1; - pwrRsrcMax = PMIC_LP8764X_PGOOD_SOURCE_BUCK4; - } - - for(pgoodSrcSel = pwrRsrcMin; pgoodSrcSel <= pwrRsrcMax ; pgoodSrcSel++) - { - pmicStatus = Pmic_powerSetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - pgoodSelType); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - &pPgoodSelType_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pgoodSelType, pPgoodSelType_rd); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_TPS6594X_POWER_PGOOD_SEL_SRC_VOLTAGE_CURRENT; - pwrRsrcMin = PMIC_TPS6594X_PGOOD_SOURCE_LDO1; - pwrRsrcMax = PMIC_TPS6594X_PGOOD_SOURCE_LDO4; - - for(pgoodSrcSel = pwrRsrcMin; pgoodSrcSel <= pwrRsrcMax ; pgoodSrcSel++) - { - pmicStatus = Pmic_powerSetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - pgoodSelType); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - &pPgoodSelType_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pgoodSelType, pPgoodSelType_rd); - } - } - - pmic_testResultUpdate_pass(7252, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetConfigPowerGood : Test pgoodSelType as voltage - */ -static void test_pmic_powerSetConfigPowerGood_pgoodSelType_voltage(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pgoodSrcSel; - uint8_t pgoodSelType; - uint8_t pPgoodSelType_rd; - uint16_t pwrRsrcMin, pwrRsrcMax; - - test_pmic_print_unity_testcase_info(7253, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_TPS6594X_POWER_PGOOD_SEL_SRC_VOLTAGE; - pwrRsrcMin = PMIC_TPS6594X_PGOOD_SOURCE_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_PGOOD_SOURCE_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_LP8764X_POWER_PGOOD_SEL_SRC_VOLTAGE; - pwrRsrcMin = PMIC_LP8764X_PGOOD_SOURCE_BUCK1; - pwrRsrcMax = PMIC_LP8764X_PGOOD_SOURCE_BUCK4; - } - - for(pgoodSrcSel = pwrRsrcMin; pgoodSrcSel <= pwrRsrcMax ; pgoodSrcSel++) - { - pmicStatus = Pmic_powerSetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - pgoodSelType); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - &pPgoodSelType_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pgoodSelType, pPgoodSelType_rd); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_TPS6594X_POWER_PGOOD_SEL_SRC_VOLTAGE; - pwrRsrcMin = PMIC_TPS6594X_PGOOD_SOURCE_LDO1; - pwrRsrcMax = PMIC_TPS6594X_PGOOD_SOURCE_LDO4; - - for(pgoodSrcSel = pwrRsrcMin; pgoodSrcSel <= pwrRsrcMax ; pgoodSrcSel++) - { - pmicStatus = Pmic_powerSetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - pgoodSelType); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - &pPgoodSelType_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pgoodSelType, pPgoodSelType_rd); - } - } - - pmic_testResultUpdate_pass(7253, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetConfigPowerGood : Test pgoodSelType as masked - */ -static void test_pmic_powerSetConfigPowerGood_pgoodSelType_masked(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pgoodSrcSel; - uint8_t pgoodSelType; - uint8_t pPgoodSelType_rd; - uint16_t pwrRsrcMin, pwrRsrcMax; - - test_pmic_print_unity_testcase_info(7254, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_TPS6594X_POWER_PGOOD_SEL_SRC_MASKED; - pwrRsrcMin = PMIC_TPS6594X_PGOOD_SOURCE_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_PGOOD_SOURCE_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_LP8764X_POWER_PGOOD_SEL_SRC_MASKED; - pwrRsrcMin = PMIC_LP8764X_PGOOD_SOURCE_BUCK1; - pwrRsrcMax = PMIC_LP8764X_PGOOD_SOURCE_BUCK4; - } - - for(pgoodSrcSel = pwrRsrcMin; pgoodSrcSel <= pwrRsrcMax ; pgoodSrcSel++) - { - pmicStatus = Pmic_powerSetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - pgoodSelType); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - &pPgoodSelType_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pgoodSelType, pPgoodSelType_rd); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_TPS6594X_POWER_PGOOD_SEL_SRC_MASKED; - pwrRsrcMin = PMIC_TPS6594X_PGOOD_SOURCE_LDO1; - pwrRsrcMax = PMIC_TPS6594X_PGOOD_SOURCE_LDO4; - - for(pgoodSrcSel = pwrRsrcMin; pgoodSrcSel <= pwrRsrcMax ; pgoodSrcSel++) - { - pmicStatus = Pmic_powerSetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - pgoodSelType); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - &pPgoodSelType_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pgoodSelType, pPgoodSelType_rd); - } - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_TPS6594X_POWER_PGOOD_SEL_NRSTOUT_MASKED; - pgoodSrcSel = PMIC_TPS6594X_PGOOD_SOURCE_NRSTOUT; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_LP8764X_POWER_PGOOD_SEL_NRSTOUT_MASKED; - pgoodSrcSel = PMIC_LP8764X_PGOOD_SOURCE_NRSTOUT; - } - - pmicStatus = Pmic_powerSetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - pgoodSelType); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - &pPgoodSelType_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pgoodSelType, pPgoodSelType_rd); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_TPS6594X_POWER_PGOOD_SEL_NRSTOUT_SOC_MASKED; - pgoodSrcSel = PMIC_TPS6594X_PGOOD_SOURCE_NRSTOUT_SOC; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_LP8764X_POWER_PGOOD_SEL_NRSTOUT_SOC_MASKED; - pgoodSrcSel = PMIC_LP8764X_PGOOD_SOURCE_NRSTOUT_SOC; - } - - pmicStatus = Pmic_powerSetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - pgoodSelType); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - &pPgoodSelType_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pgoodSelType, pPgoodSelType_rd); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_TPS6594X_POWER_PGOOD_SEL_TDIE_WARN_MASKED; - pgoodSrcSel = PMIC_TPS6594X_PGOOD_SOURCE_TDIE; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_LP8764X_POWER_PGOOD_SEL_TDIE_WARN_MASKED; - pgoodSrcSel = PMIC_LP8764X_PGOOD_SOURCE_TDIE; - } - - pmicStatus = Pmic_powerSetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - pgoodSelType); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - &pPgoodSelType_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pgoodSelType, pPgoodSelType_rd); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_TPS6594X_POWER_PGOOD_SEL_VCCA_DISABLE; - pgoodSrcSel = PMIC_TPS6594X_PGOOD_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_LP8764X_POWER_PGOOD_SEL_VCCA_VMON_DISABLE; - pgoodSrcSel = PMIC_LP8764X_PGOOD_SOURCE_VCCA; - } - - pmicStatus = Pmic_powerSetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - pgoodSelType); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - &pPgoodSelType_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pgoodSelType, pPgoodSelType_rd); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_LP8764X_POWER_PGOOD_SEL_VCCA_VMON_DISABLE; - pwrRsrcMin = PMIC_LP8764X_PGOOD_SOURCE_VMON1; - pwrRsrcMax = PMIC_LP8764X_PGOOD_SOURCE_VMON2; - - for(pgoodSrcSel = pwrRsrcMin; pgoodSrcSel <= pwrRsrcMax ; pgoodSrcSel++) - { - pmicStatus = Pmic_powerSetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - pgoodSelType); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - &pPgoodSelType_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pgoodSelType, pPgoodSelType_rd); - } - } - - pmic_testResultUpdate_pass(7254, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetConfigPowerGood : Test pgoodSelType as NRSTOUT - */ -static void test_pmic_powerSetConfigPowerGood_pgoodSelType_nRSTOUT(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pgoodSrcSel; - uint8_t pgoodSelType; - uint8_t pPgoodSelType_rd; - - test_pmic_print_unity_testcase_info(7255, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_TPS6594X_POWER_PGOOD_SEL_NRSTOUT; - pgoodSrcSel = PMIC_TPS6594X_PGOOD_SOURCE_NRSTOUT; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_LP8764X_POWER_PGOOD_SEL_NRSTOUT; - pgoodSrcSel = PMIC_LP8764X_PGOOD_SOURCE_NRSTOUT; - } - - pmicStatus = Pmic_powerSetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - pgoodSelType); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - &pPgoodSelType_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pgoodSelType, pPgoodSelType_rd); - - pmic_testResultUpdate_pass(7255, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetConfigPowerGood : Test pgoodSelType as NRSTOUT SOC - */ -static void test_pmic_powerSetConfigPowerGood_pgoodSelType_nRSTOUTSoc(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pgoodSrcSel; - uint8_t pgoodSelType; - uint8_t pPgoodSelType_rd; - - test_pmic_print_unity_testcase_info(7256, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_TPS6594X_POWER_PGOOD_SEL_NRSTOUT_SOC; - pgoodSrcSel = PMIC_TPS6594X_PGOOD_SOURCE_NRSTOUT_SOC; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_LP8764X_POWER_PGOOD_SEL_NRSTOUT_SOC; - pgoodSrcSel = PMIC_LP8764X_PGOOD_SOURCE_NRSTOUT_SOC; - } - - pmicStatus = Pmic_powerSetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - pgoodSelType); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - &pPgoodSelType_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pgoodSelType, pPgoodSelType_rd); - - pmic_testResultUpdate_pass(7256, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetConfigPowerGood : Test pgoodSelType as TDIE WARN - */ -static void test_pmic_powerSetConfigPowerGood_pgoodSelType_tdieWarn(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pgoodSrcSel; - uint8_t pgoodSelType; - uint8_t pPgoodSelType_rd; - - test_pmic_print_unity_testcase_info(7257, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_TPS6594X_POWER_PGOOD_SEL_TDIE_WARN; - pgoodSrcSel = PMIC_TPS6594X_PGOOD_SOURCE_TDIE; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_LP8764X_POWER_PGOOD_SEL_TDIE_WARN; - pgoodSrcSel = PMIC_LP8764X_PGOOD_SOURCE_TDIE; - } - - pmicStatus = Pmic_powerSetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - pgoodSelType); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - &pPgoodSelType_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pgoodSelType, pPgoodSelType_rd); - - pmic_testResultUpdate_pass(7257, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetConfigPowerGood : Test pgoodSelType as VCCA - */ -static void test_pmic_powerSetConfigPowerGood_pgoodSelType_vcca(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pgoodSrcSel; - uint8_t pgoodSelType; - uint8_t pPgoodSelType_rd; - - test_pmic_print_unity_testcase_info(7258, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_TPS6594X_POWER_PGOOD_SEL_VCCA_ENABLE; - pgoodSrcSel = PMIC_TPS6594X_PGOOD_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_LP8764X_POWER_PGOOD_SEL_VCCA_VMON_ENABLE; - pgoodSrcSel = PMIC_LP8764X_PGOOD_SOURCE_VCCA; - } - - pmicStatus = Pmic_powerSetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - pgoodSelType); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - &pPgoodSelType_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pgoodSelType, pPgoodSelType_rd); - - pmic_testResultUpdate_pass(7258, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetConfigPowerGood : Test pgoodSelType as VMON - */ -static void test_pmic_powerSetConfigPowerGood_pgoodSelType_vmon(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pgoodSrcSel; - uint8_t pgoodSelType; - uint8_t pPgoodSelType_rd; - uint16_t pwrRsrcMin, pwrRsrcMax; - - test_pmic_print_unity_testcase_info(7259, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - /* VMON1 and VMON2 are not present in LEO pmic */ - pmic_testResultUpdate_ignore(7259, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_LP8764X_POWER_PGOOD_SEL_VCCA_VMON_ENABLE; - pwrRsrcMin = PMIC_LP8764X_PGOOD_SOURCE_VMON1; - pwrRsrcMax = PMIC_LP8764X_PGOOD_SOURCE_VMON2; - - for(pgoodSrcSel = pwrRsrcMin; pgoodSrcSel <= pwrRsrcMax ; pgoodSrcSel++) - { - pmicStatus = Pmic_powerSetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - pgoodSelType); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - &pPgoodSelType_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pgoodSelType, pPgoodSelType_rd); - } - } - - pmic_testResultUpdate_pass(7259, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerGetPwrRsrcStat : Test get currentLimitLvlStat - */ -static void test_pmic_powerGetPwrRsrcStat_currentLimitLvlStat(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceStat_t pPwrRsrcStatCfg = - { - PMIC_POWER_REGULATOR_ILIM_STAT_VALID_SHIFT, - }; - - uint16_t pwrResource; - uint16_t pwrRsrcMin, pwrRsrcMax; - - test_pmic_print_unity_testcase_info(7261, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerGetPwrRsrcStat(pPmicCoreHandle, - pwrResource, - &pPwrRsrcStatCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerGetPwrRsrcStat(pPmicCoreHandle, - pwrResource, - &pPwrRsrcStatCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - } - - pmic_testResultUpdate_pass(7261, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerGetPwrRsrcStat : Test get underVoltageTholdStat - */ -static void test_pmic_powerGetPwrRsrcStat_underVoltageTholdStat(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceStat_t pPwrRsrcStatCfg = - { - PMIC_POWER_RESOURCE_UV_STAT_VALID_SHIFT, - }; - - uint16_t pwrResource; - uint16_t pwrRsrcMin, pwrRsrcMax; - - test_pmic_print_unity_testcase_info(7262, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerGetPwrRsrcStat(pPmicCoreHandle, - pwrResource, - &pPwrRsrcStatCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerGetPwrRsrcStat(pPmicCoreHandle, - pwrResource, - &pPwrRsrcStatCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_TPS6594X_POWER_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - pmicStatus = Pmic_powerGetPwrRsrcStat(pPmicCoreHandle, - pwrResource, - &pPwrRsrcStatCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_POWER_SOURCE_VMON1; - pwrRsrcMax = PMIC_LP8764X_POWER_SOURCE_VMON2; - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerGetPwrRsrcStat(pPmicCoreHandle, - pwrResource, - &pPwrRsrcStatCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - } - - pmic_testResultUpdate_pass(7262, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerGetPwrRsrcStat : Test get overVoltageTholdStat - */ -static void test_pmic_powerGetPwrRsrcStat_overVoltageTholdStat(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceStat_t pPwrRsrcStatCfg = - { - PMIC_POWER_RESOURCE_OV_STAT_VALID_SHIFT, - }; - - uint16_t pwrResource; - uint16_t pwrRsrcMin, pwrRsrcMax; - - test_pmic_print_unity_testcase_info(7263, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerGetPwrRsrcStat(pPmicCoreHandle, - pwrResource, - &pPwrRsrcStatCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerGetPwrRsrcStat(pPmicCoreHandle, - pwrResource, - &pPwrRsrcStatCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_TPS6594X_POWER_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - pmicStatus = Pmic_powerGetPwrRsrcStat(pPmicCoreHandle, - pwrResource, - &pPwrRsrcStatCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_POWER_SOURCE_VMON1; - pwrRsrcMax = PMIC_LP8764X_POWER_SOURCE_VMON2; - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerGetPwrRsrcStat(pPmicCoreHandle, - pwrResource, - &pPwrRsrcStatCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - } - - pmic_testResultUpdate_pass(7263, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerGetPwrRsrcStat : Test get overVoltageProtectionLvlStat - */ -static void test_pmic_powerGetPwrRsrcStat_overVoltageProtectionLvlStat(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceStat_t pPwrRsrcStatCfg = - { - PMIC_POWER_VCCA_OV_LVL_STAT_VALID_SHIFT, - }; - - uint16_t pwrResource; - - test_pmic_print_unity_testcase_info(7264, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_TPS6594X_POWER_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - pmicStatus = Pmic_powerGetPwrRsrcStat(pPmicCoreHandle, - pwrResource, - &pPwrRsrcStatCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(7264, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetThermalConfig : Test thermalWarnThold as low - */ -static void test_pmic_powerSetThermalConfig_thermalWarnThold_low(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerThermalCfg_t thermalThreshold = - { - PMIC_THERMAL_WARN_VALID_SHIFT, - }; - - Pmic_PowerThermalCfg_t thermalThreshold_rd = - { - PMIC_THERMAL_WARN_VALID_SHIFT, - }; - - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType)&& - (PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev)) - { - thermalThreshold.thermalWarnThold = PMIC_TPS6594X_PG_2_0_THERMAL_TEMP_WARN_130C; - } - - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType)&& - (PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev)) - { - thermalThreshold.thermalWarnThold = PMIC_TPS6594X_THERMAL_TEMP_WARN_120C; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - thermalThreshold.thermalWarnThold = PMIC_LP8764X_THERMAL_TEMP_WARN_120C; - } - - test_pmic_print_unity_testcase_info(7266, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pmicStatus = Pmic_powerSetThermalConfig(pPmicCoreHandle, thermalThreshold); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetThermalConfig(pPmicCoreHandle, &thermalThreshold_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(thermalThreshold.thermalWarnThold, thermalThreshold_rd.thermalWarnThold); - - pmic_testResultUpdate_pass(7266, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetThermalConfig : Test thermalWarnThold as high - */ -static void test_pmic_powerSetThermalConfig_thermalWarnThold_high(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerThermalCfg_t thermalThreshold = - { - PMIC_THERMAL_WARN_VALID_SHIFT, - }; - - Pmic_PowerThermalCfg_t thermalThreshold_rd = - { - PMIC_THERMAL_WARN_VALID_SHIFT, - }; - - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType)&& - (PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev)) - { - thermalThreshold.thermalWarnThold = PMIC_TPS6594X_PG_2_0_THERMAL_TEMP_WARN_140C; - } - - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType)&& - (PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev)) - { - thermalThreshold.thermalWarnThold = PMIC_TPS6594X_THERMAL_TEMP_WARN_130C; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - thermalThreshold.thermalWarnThold = PMIC_LP8764X_THERMAL_TEMP_WARN_130C; - } - - test_pmic_print_unity_testcase_info(7267, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pmicStatus = Pmic_powerSetThermalConfig(pPmicCoreHandle, thermalThreshold); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetThermalConfig(pPmicCoreHandle, &thermalThreshold_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(thermalThreshold.thermalWarnThold, thermalThreshold_rd.thermalWarnThold); - - pmic_testResultUpdate_pass(7267, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetThermalConfig : Test thermalShutdownThold as low - */ -static void test_pmic_powerSetThermalConfig_thermalShutdownThold_low(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerThermalCfg_t thermalThreshold = - { - PMIC_THERMAL_SHTDWN_VALID_SHIFT, - }; - - Pmic_PowerThermalCfg_t thermalThreshold_rd = - { - PMIC_THERMAL_SHTDWN_VALID_SHIFT, - }; - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - thermalThreshold.thermalShutdownThold = - PMIC_TPS6594X_THERMAL_TEMP_TSD_ORD_140C; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - thermalThreshold.thermalShutdownThold = - PMIC_LP8764X_THERMAL_TEMP_TSD_ORD_140C; - } - - test_pmic_print_unity_testcase_info(7268, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev)) - { - /* thermalShutdownThold feature is not supported in Leo PMIC PG1.0 */ - pmic_testResultUpdate_ignore(7268, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_powerSetThermalConfig(pPmicCoreHandle, thermalThreshold); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetThermalConfig(pPmicCoreHandle, &thermalThreshold_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(thermalThreshold.thermalShutdownThold, - thermalThreshold_rd.thermalShutdownThold); - - pmic_testResultUpdate_pass(7268, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetThermalConfig : Test thermalShutdownThold as high - */ -static void test_pmic_powerSetThermalConfig_thermalShutdownThold_high(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerThermalCfg_t thermalThreshold = - { - PMIC_THERMAL_SHTDWN_VALID_SHIFT, - }; - - Pmic_PowerThermalCfg_t thermalThreshold_rd = - { - PMIC_THERMAL_SHTDWN_VALID_SHIFT, - }; - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - thermalThreshold.thermalShutdownThold = PMIC_TPS6594X_THERMAL_TEMP_TSD_ORD_145C; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - thermalThreshold.thermalShutdownThold = PMIC_LP8764X_THERMAL_TEMP_TSD_ORD_145C; - } - - test_pmic_print_unity_testcase_info(7269, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev)) - { - /* thermalShutdownThold feature is not supported in Leo PMIC PG1.0 */ - pmic_testResultUpdate_ignore(7269, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_powerSetThermalConfig(pPmicCoreHandle, thermalThreshold); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetThermalConfig(pPmicCoreHandle, &thermalThreshold_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(thermalThreshold.thermalShutdownThold, - thermalThreshold_rd.thermalShutdownThold); - - pmic_testResultUpdate_pass(7269, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrRsrcIntr : Test Enable OV interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_ov_enable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrResource; - uint16_t pwrRsrcMin, pwrRsrcMax; - uint8_t intrType; - bool intrEnable; - - intrEnable = PMIC_POWER_INTERRUPT_ENABLE; - test_pmic_print_unity_testcase_info(7271, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_OV_INT; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_OV_INT; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_TPS6594X_POWER_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_POWER_SOURCE_VMON1; - pwrRsrcMax = PMIC_LP8764X_POWER_SOURCE_VMON2; - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - } - - pmic_testResultUpdate_pass(7271, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrRsrcIntr : Test Disable OV interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_ov_disable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrResource; - uint16_t pwrRsrcMin, pwrRsrcMax; - uint8_t intrType; - bool intrEnable; - - intrEnable = PMIC_POWER_INTERRUPT_DISABLE; - test_pmic_print_unity_testcase_info(7272, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_OV_INT; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_OV_INT; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_TPS6594X_POWER_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_POWER_SOURCE_VMON1; - pwrRsrcMax = PMIC_LP8764X_POWER_SOURCE_VMON2; - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - } - - pmic_testResultUpdate_pass(7272, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrRsrcIntr : Test Enable UV interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_uv_enable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrResource; - uint16_t pwrRsrcMin, pwrRsrcMax; - uint8_t intrType; - bool intrEnable; - - intrEnable = PMIC_POWER_INTERRUPT_ENABLE; - test_pmic_print_unity_testcase_info(7273, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_UV_INT; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_UV_INT; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_TPS6594X_POWER_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_POWER_SOURCE_VMON1; - pwrRsrcMax = PMIC_LP8764X_POWER_SOURCE_VMON2; - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - } - - pmic_testResultUpdate_pass(7273, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} -/*! - * \brief Pmic_powerSetPwrRsrcIntr : Test Disable UV interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_uv_disable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrResource; - uint16_t pwrRsrcMin, pwrRsrcMax; - uint8_t intrType; - bool intrEnable; - - intrEnable = PMIC_POWER_INTERRUPT_DISABLE; - test_pmic_print_unity_testcase_info(7274, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_UV_INT; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_UV_INT; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_TPS6594X_POWER_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_POWER_SOURCE_VMON1; - pwrRsrcMax = PMIC_LP8764X_POWER_SOURCE_VMON2; - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - } - - pmic_testResultUpdate_pass(7274, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrRsrcIntr : Test Enable ILIM interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_ilim_enable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrResource; - uint16_t pwrRsrcMin, pwrRsrcMax; - uint8_t intrType; - bool intrEnable; - - intrEnable = PMIC_POWER_INTERRUPT_ENABLE; - test_pmic_print_unity_testcase_info(7275, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_ILIM_INT; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_ILIM_INT; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - } - - pmic_testResultUpdate_pass(7275, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrRsrcIntr : Test Disable ILIM interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_ilim_disable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrResource; - uint16_t pwrRsrcMin, pwrRsrcMax; - uint8_t intrType; - bool intrEnable; - - intrEnable = PMIC_POWER_INTERRUPT_DISABLE; - test_pmic_print_unity_testcase_info(7276, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_ILIM_INT; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_ILIM_INT; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - } - - pmic_testResultUpdate_pass(7276, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetIntr : Test Enable TWARN interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_twarn_enable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t intrType; - bool intrEnable; - - intrEnable = PMIC_POWER_INTERRUPT_ENABLE; - test_pmic_print_unity_testcase_info(7280, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_INTERRUPT_TWARN; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_INTERRUPT_TWARN; - } - - pmicStatus = Pmic_powerSetIntr(pPmicCoreHandle, intrType, intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(7280, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetIntr : Test Disable TWARN interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_twarn_disable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t intrType; - bool intrEnable; - - intrEnable = PMIC_POWER_INTERRUPT_DISABLE; - test_pmic_print_unity_testcase_info(7281, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_INTERRUPT_TWARN; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_INTERRUPT_TWARN; - } - - pmicStatus = Pmic_powerSetIntr(pPmicCoreHandle, intrType, intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(7281, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetIntr : Test Enable NRSTOUT_READBACK interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_nrstout_readback_enable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t intrType; - bool intrEnable; - - intrEnable = PMIC_POWER_INTERRUPT_ENABLE; - test_pmic_print_unity_testcase_info(7282, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_INTERRUPT_NRSTOUT_READBACK; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_INTERRUPT_NRSTOUT_READBACK; - } - - pmicStatus = Pmic_powerSetIntr(pPmicCoreHandle, intrType, intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(7282, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetIntr : Test Disable NRSTOUT_READBACK interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_nrstout_readback_disable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t intrType; - bool intrEnable; - - intrEnable = PMIC_POWER_INTERRUPT_DISABLE; - test_pmic_print_unity_testcase_info(7283, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_INTERRUPT_NRSTOUT_READBACK; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_INTERRUPT_NRSTOUT_READBACK; - } - - pmicStatus = Pmic_powerSetIntr(pPmicCoreHandle, intrType, intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(7283, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetIntr : Test Enable SOC_PWR_ERR interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_soc_pwr_err_enable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t intrType; - bool intrEnable; - - intrEnable = PMIC_POWER_INTERRUPT_ENABLE; - test_pmic_print_unity_testcase_info(7284, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_INTERRUPT_SOC_PWR_ERR; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_INTERRUPT_SOC_PWR_ERR; - } - - pmicStatus = Pmic_powerSetIntr(pPmicCoreHandle, intrType, intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(7284, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetIntr : Test Disable SOC_PWR_ERR interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_soc_pwr_err_disable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t intrType; - bool intrEnable; - - intrEnable = PMIC_POWER_INTERRUPT_DISABLE; - test_pmic_print_unity_testcase_info(7285, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_INTERRUPT_SOC_PWR_ERR; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_INTERRUPT_SOC_PWR_ERR; - } - - pmicStatus = Pmic_powerSetIntr(pPmicCoreHandle, intrType, intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(7285, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetIntr : Test Enable MCU_PWR_ERR interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_mcu_pwr_err_enable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t intrType; - bool intrEnable; - - intrEnable = PMIC_POWER_INTERRUPT_ENABLE; - test_pmic_print_unity_testcase_info(7286, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_INTERRUPT_MCU_PWR_ERR; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_INTERRUPT_MCU_PWR_ERR; - } - - pmicStatus = Pmic_powerSetIntr(pPmicCoreHandle, intrType, intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(7286, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetIntr : Test Disable MCU_PWR_ERR interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_mcu_pwr_err_disable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t intrType; - bool intrEnable; - - intrEnable = PMIC_POWER_INTERRUPT_DISABLE; - test_pmic_print_unity_testcase_info(7287, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_INTERRUPT_MCU_PWR_ERR; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_INTERRUPT_MCU_PWR_ERR; - } - - pmicStatus = Pmic_powerSetIntr(pPmicCoreHandle, intrType, intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(7287, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetIntr : Test Enable ORD_SHUTDOWN interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_ord_shutdown_enable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t intrType; - bool intrEnable; - - intrEnable = PMIC_POWER_INTERRUPT_ENABLE; - test_pmic_print_unity_testcase_info(7288, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_INTERRUPT_ORD_SHUTDOWN; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_INTERRUPT_ORD_SHUTDOWN; - } - - pmicStatus = Pmic_powerSetIntr(pPmicCoreHandle, intrType, intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(7288, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetIntr : Test Disable ORD_SHUTDOWN interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_ord_shutdown_disable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t intrType; - bool intrEnable; - - intrEnable = PMIC_POWER_INTERRUPT_DISABLE; - test_pmic_print_unity_testcase_info(7289, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_INTERRUPT_ORD_SHUTDOWN; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_INTERRUPT_ORD_SHUTDOWN; - } - - pmicStatus = Pmic_powerSetIntr(pPmicCoreHandle, intrType, intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(7289, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetIntr : Test Enable IMM_SHUTDOWN interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_imm_shutdown_enable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t intrType; - bool intrEnable; - - intrEnable = PMIC_POWER_INTERRUPT_ENABLE; - test_pmic_print_unity_testcase_info(7290, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_INTERRUPT_IMM_SHUTDOWN; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_INTERRUPT_IMM_SHUTDOWN; - } - - pmicStatus = Pmic_powerSetIntr(pPmicCoreHandle, intrType, intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(7290, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetIntr : Test Disable IMM_SHUTDOWN interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_imm_shutdown_disable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t intrType; - bool intrEnable; - - intrEnable = PMIC_POWER_INTERRUPT_DISABLE; - test_pmic_print_unity_testcase_info(7291, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_INTERRUPT_IMM_SHUTDOWN; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_INTERRUPT_IMM_SHUTDOWN; - } - - pmicStatus = Pmic_powerSetIntr(pPmicCoreHandle, intrType, intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(7291, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetIntr : Test Enable NRSTOUT_SOC_READBACK interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_nrstout_soc_readback_enable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t intrType; - bool intrEnable; - - intrEnable = PMIC_POWER_INTERRUPT_ENABLE; - test_pmic_print_unity_testcase_info(7292, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_INTERRUPT_NRSTOUT_SOC_READBACK; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_INTERRUPT_NRSTOUT_SOC_READBACK; - } - - pmicStatus = Pmic_powerSetIntr(pPmicCoreHandle, intrType, intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(7292, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetIntr : Test Disable NRSTOUT_SOC_READBACK interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_nrstout_soc_readback_disable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t intrType; - bool intrEnable; - - intrEnable = PMIC_POWER_INTERRUPT_DISABLE; - test_pmic_print_unity_testcase_info(7293, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_INTERRUPT_NRSTOUT_SOC_READBACK; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_INTERRUPT_NRSTOUT_SOC_READBACK; - } - - pmicStatus = Pmic_powerSetIntr(pPmicCoreHandle, intrType, intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(7293, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetIntr : Test Enable EN_DRV_READBACK interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_en_drv_readback_enable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t intrType; - bool intrEnable; - - intrEnable = PMIC_POWER_INTERRUPT_ENABLE; - test_pmic_print_unity_testcase_info(7294, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_INTERRUPT_EN_DRV_READBACK; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_INTERRUPT_EN_DRV_READBACK; - } - - pmicStatus = Pmic_powerSetIntr(pPmicCoreHandle, intrType, intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(7294, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetIntr : Test Disable EN_DRV_READBACK interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_en_drv_readback_disable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t intrType; - bool intrEnable; - - intrEnable = PMIC_POWER_INTERRUPT_DISABLE; - test_pmic_print_unity_testcase_info(7295, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_INTERRUPT_EN_DRV_READBACK; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_INTERRUPT_EN_DRV_READBACK; - } - - pmicStatus = Pmic_powerSetIntr(pPmicCoreHandle, intrType, intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(7295, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetCommonConfig : Test deglitchTimeSel as 4us - */ -static void test_pmic_powerSetCommonConfig_deglitchTimeSel_4(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerCommonCfg_t powerCfg_rd = - { - PMIC_CFG_DEGLITCH_TIME_SEL_VALID_SHIFT, - }; - - Pmic_PowerCommonCfg_t pwrCommonCfg = - { - PMIC_CFG_DEGLITCH_TIME_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7225, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev)) - { - /* deglitchTimeSel feature is not supported in Leo PMIC PG1.0 */ - pmic_testResultUpdate_ignore(7225, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrCommonCfg.deglitchTimeSel = - PMIC_TPS6594X_POWER_RESOURCE_DEGLITCH_SEL_4US; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrCommonCfg.deglitchTimeSel = - PMIC_LP8764X_POWER_RESOURCE_DEGLITCH_SEL_4US; - } - pmicStatus = Pmic_powerSetCommonConfig(pPmicCoreHandle, pwrCommonCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetCommonConfig(pPmicCoreHandle, &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pwrCommonCfg.deglitchTimeSel, powerCfg_rd.deglitchTimeSel); - - pmic_testResultUpdate_pass(7225, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetCommonConfig : Test deglitchTimeSel as 20us - */ -static void test_pmic_powerSetCommonConfig_deglitchTimeSel_20(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerCommonCfg_t powerCfg_rd = - { - PMIC_CFG_DEGLITCH_TIME_SEL_VALID_SHIFT, - }; - - Pmic_PowerCommonCfg_t pwrCommonCfg = - { - PMIC_CFG_DEGLITCH_TIME_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7226, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev)) - { - /* deglitchTimeSel feature is not supported in Leo PMIC PG1.0 */ - pmic_testResultUpdate_ignore(7226, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrCommonCfg.deglitchTimeSel = - PMIC_TPS6594X_POWER_RESOURCE_DEGLITCH_SEL_20US; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrCommonCfg.deglitchTimeSel = - PMIC_LP8764X_POWER_RESOURCE_DEGLITCH_SEL_20US; - } - pmicStatus = Pmic_powerSetCommonConfig(pPmicCoreHandle, pwrCommonCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetCommonConfig(pPmicCoreHandle, &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pwrCommonCfg.deglitchTimeSel, powerCfg_rd.deglitchTimeSel); - - pmic_testResultUpdate_pass(7226, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetCommonConfig : Test severeErrorTrig as Immediate shutdown - */ -static void test_pmic_powerSetCommonConfig_severeErrorTrig_imm(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerCommonCfg_t powerCfg_rd = - { - PMIC_SEVERE_ERR_TRIG_VALID_SHIFT, - }; - - Pmic_PowerCommonCfg_t pwrCommonCfg = - { - PMIC_SEVERE_ERR_TRIG_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7227, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pwrCommonCfg.severeErrorTrig = PMIC_POWER_TRIG_IMM_SHUTDOWN; - - pmicStatus = Pmic_powerSetCommonConfig(pPmicCoreHandle, pwrCommonCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetCommonConfig(pPmicCoreHandle, &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pwrCommonCfg.severeErrorTrig, powerCfg_rd.severeErrorTrig); - - pmic_testResultUpdate_pass(7227, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetCommonConfig : Test severeErrorTrig as oderly shutdown - */ -static void test_pmic_powerSetCommonConfig_severeErrorTrig_odrShtDwn(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerCommonCfg_t powerCfg_rd = - { - PMIC_SEVERE_ERR_TRIG_VALID_SHIFT, - }; - - Pmic_PowerCommonCfg_t pwrCommonCfg = - { - PMIC_SEVERE_ERR_TRIG_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7228, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pwrCommonCfg.severeErrorTrig = PMIC_POWER_TRIG_ODERLY_SHUTDOWN; - - pmicStatus = Pmic_powerSetCommonConfig(pPmicCoreHandle, pwrCommonCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetCommonConfig(pPmicCoreHandle, &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pwrCommonCfg.severeErrorTrig, powerCfg_rd.severeErrorTrig); - - pmic_testResultUpdate_pass(7228, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetCommonConfig : Test severeErrorTrig as mcu power error - */ -static void test_pmic_powerSetCommonConfig_severeErrorTrig_McuPwrErr(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerCommonCfg_t powerCfg_rd = - { - PMIC_SEVERE_ERR_TRIG_VALID_SHIFT, - }; - - Pmic_PowerCommonCfg_t pwrCommonCfg = - { - PMIC_SEVERE_ERR_TRIG_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7229, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pwrCommonCfg.severeErrorTrig = PMIC_POWER_TRIG_MCU_PWR_ERR; - - pmicStatus = Pmic_powerSetCommonConfig(pPmicCoreHandle, pwrCommonCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetCommonConfig(pPmicCoreHandle, &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pwrCommonCfg.severeErrorTrig, powerCfg_rd.severeErrorTrig); - - pmic_testResultUpdate_pass(7229, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetCommonConfig : Test severeErrorTrig as soc power error - */ -static void test_pmic_powerSetCommonConfig_severeErrorTrig_SocPwrErr(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerCommonCfg_t powerCfg_rd = - { - PMIC_SEVERE_ERR_TRIG_VALID_SHIFT, - }; - - Pmic_PowerCommonCfg_t pwrCommonCfg = - { - PMIC_SEVERE_ERR_TRIG_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7230, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pwrCommonCfg.severeErrorTrig = PMIC_POWER_TRIG_SOC_PWR_ERR; - - pmicStatus = Pmic_powerSetCommonConfig(pPmicCoreHandle, pwrCommonCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetCommonConfig(pPmicCoreHandle, &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pwrCommonCfg.severeErrorTrig, powerCfg_rd.severeErrorTrig); - - pmic_testResultUpdate_pass(7230, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetCommonConfig : Test otherRailTrig as Immediate shutdown - */ -static void test_pmic_powerSetCommonConfig_otherRailTrig_imm(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerCommonCfg_t powerCfg_rd = - { - PMIC_OTHER_RAIL_TRIG_VALID_SHIFT, - }; - - Pmic_PowerCommonCfg_t pwrCommonCfg = - { - PMIC_OTHER_RAIL_TRIG_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7231, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pwrCommonCfg.otherRailTrig = PMIC_POWER_TRIG_IMM_SHUTDOWN; - - pmicStatus = Pmic_powerSetCommonConfig(pPmicCoreHandle, pwrCommonCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetCommonConfig(pPmicCoreHandle, &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pwrCommonCfg.otherRailTrig, powerCfg_rd.otherRailTrig); - - pmic_testResultUpdate_pass(7231, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetCommonConfig : Test otherRailTrig as oderly shutdown - */ -static void test_pmic_powerSetCommonConfig_otherRailTrig_odrShtDwn(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerCommonCfg_t powerCfg_rd = - { - PMIC_OTHER_RAIL_TRIG_VALID_SHIFT, - }; - - Pmic_PowerCommonCfg_t pwrCommonCfg = - { - PMIC_OTHER_RAIL_TRIG_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7232, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pwrCommonCfg.otherRailTrig = PMIC_POWER_TRIG_ODERLY_SHUTDOWN; - - pmicStatus = Pmic_powerSetCommonConfig(pPmicCoreHandle, pwrCommonCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetCommonConfig(pPmicCoreHandle, &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pwrCommonCfg.otherRailTrig, powerCfg_rd.otherRailTrig); - - pmic_testResultUpdate_pass(7232, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetCommonConfig : Test otherRailTrig as mcu power error - */ -static void test_pmic_powerSetCommonConfig_otherRailTrig_McuPwrErr(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerCommonCfg_t powerCfg_rd = - { - PMIC_OTHER_RAIL_TRIG_VALID_SHIFT, - }; - - Pmic_PowerCommonCfg_t pwrCommonCfg = - { - PMIC_OTHER_RAIL_TRIG_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7233, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pwrCommonCfg.otherRailTrig = PMIC_POWER_TRIG_MCU_PWR_ERR; - - pmicStatus = Pmic_powerSetCommonConfig(pPmicCoreHandle, pwrCommonCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetCommonConfig(pPmicCoreHandle, &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pwrCommonCfg.otherRailTrig, powerCfg_rd.otherRailTrig); - - pmic_testResultUpdate_pass(7233, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetCommonConfig : Test otherRailTrig as soc power error - */ -static void test_pmic_powerSetCommonConfig_otherRailTrig_SocPwrErr(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerCommonCfg_t powerCfg_rd = - { - PMIC_OTHER_RAIL_TRIG_VALID_SHIFT, - }; - - Pmic_PowerCommonCfg_t pwrCommonCfg = - { - PMIC_OTHER_RAIL_TRIG_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7234, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pwrCommonCfg.otherRailTrig = PMIC_POWER_TRIG_SOC_PWR_ERR; - - pmicStatus = Pmic_powerSetCommonConfig(pPmicCoreHandle, pwrCommonCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetCommonConfig(pPmicCoreHandle, &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pwrCommonCfg.otherRailTrig, powerCfg_rd.otherRailTrig); - - pmic_testResultUpdate_pass(7234, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetCommonConfig : Test socRailTrig as Immediate shutdown - */ -static void test_pmic_powerSetCommonConfig_socRailTrig_imm(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerCommonCfg_t powerCfg_rd = - { - PMIC_SOC_RAIL_TRIG_VALID_SHIFT, - }; - - Pmic_PowerCommonCfg_t pwrCommonCfg = - { - PMIC_SOC_RAIL_TRIG_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7235, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pwrCommonCfg.socRailTrig = PMIC_POWER_TRIG_IMM_SHUTDOWN; - - pmicStatus = Pmic_powerSetCommonConfig(pPmicCoreHandle, pwrCommonCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetCommonConfig(pPmicCoreHandle, &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pwrCommonCfg.socRailTrig, powerCfg_rd.socRailTrig); - - pmic_testResultUpdate_pass(7235, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetCommonConfig : Test socRailTrig as oderly shutdown - */ -static void test_pmic_powerSetCommonConfig_socRailTrig_odrShtDwn(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerCommonCfg_t powerCfg_rd = - { - PMIC_SOC_RAIL_TRIG_VALID_SHIFT, - }; - - Pmic_PowerCommonCfg_t pwrCommonCfg = - { - PMIC_SOC_RAIL_TRIG_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7236, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pwrCommonCfg.socRailTrig = PMIC_POWER_TRIG_ODERLY_SHUTDOWN; - - pmicStatus = Pmic_powerSetCommonConfig(pPmicCoreHandle, pwrCommonCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetCommonConfig(pPmicCoreHandle, &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pwrCommonCfg.socRailTrig, powerCfg_rd.socRailTrig); - - pmic_testResultUpdate_pass(7236, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetCommonConfig : Test socRailTrig as mcu power error - */ -static void test_pmic_powerSetCommonConfig_socRailTrig_McuPwrErr(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerCommonCfg_t powerCfg_rd = - { - PMIC_SOC_RAIL_TRIG_VALID_SHIFT, - }; - - Pmic_PowerCommonCfg_t pwrCommonCfg = - { - PMIC_SOC_RAIL_TRIG_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7237, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pwrCommonCfg.socRailTrig = PMIC_POWER_TRIG_MCU_PWR_ERR; - - pmicStatus = Pmic_powerSetCommonConfig(pPmicCoreHandle, pwrCommonCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetCommonConfig(pPmicCoreHandle, &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pwrCommonCfg.socRailTrig, powerCfg_rd.socRailTrig); - - pmic_testResultUpdate_pass(7237, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetCommonConfig : Test socRailTrig as soc power error - */ -static void test_pmic_powerSetCommonConfig_socRailTrig_SocPwrErr(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerCommonCfg_t powerCfg_rd = - { - PMIC_SOC_RAIL_TRIG_VALID_SHIFT, - }; - - Pmic_PowerCommonCfg_t pwrCommonCfg = - { - PMIC_SOC_RAIL_TRIG_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7238, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pwrCommonCfg.socRailTrig = PMIC_POWER_TRIG_SOC_PWR_ERR; - - pmicStatus = Pmic_powerSetCommonConfig(pPmicCoreHandle, pwrCommonCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetCommonConfig(pPmicCoreHandle, &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pwrCommonCfg.socRailTrig, powerCfg_rd.socRailTrig); - - pmic_testResultUpdate_pass(7238, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetCommonConfig : Test mcuRailTrig as Immediate shutdown - */ -static void test_pmic_powerSetCommonConfig_mcuRailTrig_imm(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerCommonCfg_t powerCfg_rd = - { - PMIC_MCU_RAIL_TRIG_VALID_SHIFT, - }; - - Pmic_PowerCommonCfg_t pwrCommonCfg = - { - PMIC_MCU_RAIL_TRIG_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7239, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pwrCommonCfg.mcuRailTrig = PMIC_POWER_TRIG_IMM_SHUTDOWN; - - pmicStatus = Pmic_powerSetCommonConfig(pPmicCoreHandle, pwrCommonCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetCommonConfig(pPmicCoreHandle, &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pwrCommonCfg.mcuRailTrig, powerCfg_rd.mcuRailTrig); - - pmic_testResultUpdate_pass(7239, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetCommonConfig : Test mcuRailTrig as oderly shutdown - */ -static void test_pmic_powerSetCommonConfig_mcuRailTrig_odrShtDwn(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerCommonCfg_t powerCfg_rd = - { - PMIC_MCU_RAIL_TRIG_VALID_SHIFT, - }; - - Pmic_PowerCommonCfg_t pwrCommonCfg = - { - PMIC_MCU_RAIL_TRIG_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7240, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pwrCommonCfg.mcuRailTrig = PMIC_POWER_TRIG_ODERLY_SHUTDOWN; - - pmicStatus = Pmic_powerSetCommonConfig(pPmicCoreHandle, pwrCommonCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetCommonConfig(pPmicCoreHandle, &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pwrCommonCfg.mcuRailTrig, powerCfg_rd.mcuRailTrig); - - pmic_testResultUpdate_pass(7240, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetCommonConfig : Test mcuRailTrig as mcu power error - */ -static void test_pmic_powerSetCommonConfig_mcuRailTrig_McuPwrErr(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerCommonCfg_t powerCfg_rd = - { - PMIC_MCU_RAIL_TRIG_VALID_SHIFT, - }; - - Pmic_PowerCommonCfg_t pwrCommonCfg = - { - PMIC_MCU_RAIL_TRIG_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7241, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pwrCommonCfg.mcuRailTrig = PMIC_POWER_TRIG_MCU_PWR_ERR; - - pmicStatus = Pmic_powerSetCommonConfig(pPmicCoreHandle, pwrCommonCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetCommonConfig(pPmicCoreHandle, &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pwrCommonCfg.mcuRailTrig, powerCfg_rd.mcuRailTrig); - - pmic_testResultUpdate_pass(7241, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetCommonConfig : Test mcuRailTrig as soc power error - */ -static void test_pmic_powerSetCommonConfig_mcuRailTrig_SocPwrErr(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerCommonCfg_t powerCfg_rd = - { - PMIC_MCU_RAIL_TRIG_VALID_SHIFT, - }; - - Pmic_PowerCommonCfg_t pwrCommonCfg = - { - PMIC_MCU_RAIL_TRIG_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7242, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pwrCommonCfg.mcuRailTrig = PMIC_POWER_TRIG_SOC_PWR_ERR; - - pmicStatus = Pmic_powerSetCommonConfig(pPmicCoreHandle, pwrCommonCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetCommonConfig(pPmicCoreHandle, &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pwrCommonCfg.mcuRailTrig, powerCfg_rd.mcuRailTrig); - - pmic_testResultUpdate_pass(7242, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetCommonConfig : Test moderateRailTrig as Immediate shutdown - */ -static void test_pmic_powerSetCommonConfig_moderateRailTrig_imm(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerCommonCfg_t powerCfg_rd = - { - PMIC_MODERATE_ERR_TRIG_VALID_SHIFT, - }; - - Pmic_PowerCommonCfg_t pwrCommonCfg = - { - PMIC_MODERATE_ERR_TRIG_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7243, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pwrCommonCfg.moderateRailTrig = PMIC_POWER_TRIG_IMM_SHUTDOWN; - - pmicStatus = Pmic_powerSetCommonConfig(pPmicCoreHandle, pwrCommonCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetCommonConfig(pPmicCoreHandle, &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pwrCommonCfg.moderateRailTrig, powerCfg_rd.moderateRailTrig); - - pmic_testResultUpdate_pass(7243, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetCommonConfig : Test moderateRailTrig as oderly shutdown - */ -static void test_pmic_powerSetCommonConfig_moderateRailTrig_odrShtDwn(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerCommonCfg_t powerCfg_rd = - { - PMIC_MODERATE_ERR_TRIG_VALID_SHIFT, - }; - - Pmic_PowerCommonCfg_t pwrCommonCfg = - { - PMIC_MODERATE_ERR_TRIG_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7244, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pwrCommonCfg.moderateRailTrig = PMIC_POWER_TRIG_ODERLY_SHUTDOWN; - - pmicStatus = Pmic_powerSetCommonConfig(pPmicCoreHandle, pwrCommonCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetCommonConfig(pPmicCoreHandle, &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pwrCommonCfg.moderateRailTrig, powerCfg_rd.moderateRailTrig); - - pmic_testResultUpdate_pass(7244, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetCommonConfig : Test moderateRailTrig as mcu power error - */ -static void test_pmic_powerSetCommonConfig_moderateRailTrig_McuPwrErr(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerCommonCfg_t powerCfg_rd = - { - PMIC_MODERATE_ERR_TRIG_VALID_SHIFT, - }; - - Pmic_PowerCommonCfg_t pwrCommonCfg = - { - PMIC_MODERATE_ERR_TRIG_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7245, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pwrCommonCfg.moderateRailTrig = PMIC_POWER_TRIG_MCU_PWR_ERR; - - pmicStatus = Pmic_powerSetCommonConfig(pPmicCoreHandle, pwrCommonCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetCommonConfig(pPmicCoreHandle, &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pwrCommonCfg.moderateRailTrig, powerCfg_rd.moderateRailTrig); - - pmic_testResultUpdate_pass(7245, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetCommonConfig : Test moderateRailTrig as soc power error - */ -static void test_pmic_powerSetCommonConfig_moderateRailTrig_SocPwrErr(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerCommonCfg_t powerCfg_rd = - { - PMIC_MODERATE_ERR_TRIG_VALID_SHIFT, - }; - - Pmic_PowerCommonCfg_t pwrCommonCfg = - { - PMIC_MODERATE_ERR_TRIG_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7246, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pwrCommonCfg.moderateRailTrig = PMIC_POWER_TRIG_SOC_PWR_ERR; - - pmicStatus = Pmic_powerSetCommonConfig(pPmicCoreHandle, pwrCommonCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetCommonConfig(pPmicCoreHandle, &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pwrCommonCfg.moderateRailTrig, powerCfg_rd.moderateRailTrig); - - pmic_testResultUpdate_pass(7246, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetLdoRtc : Test Enable ldortcRegulator - */ -static void test_pmic_powerSetLdoRtc_ldortcEnable_enable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool ldortcEnable = false; - bool ldortcEnable_rd = false; - - test_pmic_print_unity_testcase_info(7297, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - ldortcEnable = PMIC_TPS6594X_REGULATOR_LDORTC_ENABLE; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(7297, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_powerSetLdoRtc(pPmicCoreHandle, ldortcEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmicStatus = Pmic_powerGetLdoRtc(pPmicCoreHandle, &ldortcEnable_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(ldortcEnable, ldortcEnable_rd); - - pmic_testResultUpdate_pass(7297, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetLdoRtc : Test Disable ldortcRegulator - */ -static void test_pmic_powerSetLdoRtc_ldortcEnable_disable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool ldortcEnable = false; - bool ldortcEnable_rd = false; - - test_pmic_print_unity_testcase_info(7298, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - ldortcEnable = PMIC_TPS6594X_REGULATOR_LDORTC_DISABLE; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(7298, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_powerSetLdoRtc(pPmicCoreHandle, ldortcEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmicStatus = Pmic_powerGetLdoRtc(pPmicCoreHandle, &ldortcEnable_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(ldortcEnable, ldortcEnable_rd); - - pmic_testResultUpdate_pass(7298, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrRsrcIntr : Parameter validation for Power Resource for intrEnable. - */ -static void test_Pmic_powerSetPwrRsrcIntrPrmValTest_PwrRsrc_intrEnable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t intrType; - bool intrEnable; - uint16_t pwrResource; - intrEnable = PMIC_POWER_INTERRUPT_DISABLE; - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_ILIM_INT; - pwrResource = PMIC_LP8764X_VMON_MAX + 1; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_ILIM_INT; - pwrResource = PMIC_TPS6594X_LDO_MAX + 1; - } - - test_pmic_print_unity_testcase_info(7277, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(7277, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrRsrcIntr : Parameter validation for intrType - */ -static void test_pmic_powerSetPowerResourceConfigPrmValTest_intrType(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrResource; - uint16_t pwrRsrcMin, pwrRsrcMax; - uint8_t intrType; - bool intrEnable; - - intrEnable = PMIC_POWER_INTERRUPT_DISABLE; - test_pmic_print_unity_testcase_info(7278, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_ILIM_INT + 1; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_ILIM_INT + 1; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - } - } - - pmic_testResultUpdate_pass(7278, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetCommonConfig : Parameter validation for severeErrorTrig - */ -static void test_pmic_powerSetCommonConfigPrmValTest_severeErrorTrig_SocPwrErr(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - Pmic_PowerCommonCfg_t pwrCommonCfg = - { - PMIC_SEVERE_ERR_TRIG_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7247, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pwrCommonCfg.severeErrorTrig = PMIC_POWER_TRIG_SOC_PWR_ERR + 1; - - pmicStatus = Pmic_powerSetCommonConfig(pPmicCoreHandle, pwrCommonCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(7247, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetCommonConfig : Parameter validation for otherRailTrig - */ -static void test_pmic_powerSetCommonConfigPrmValTest_otherRailTrig_SocPwrErr(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - Pmic_PowerCommonCfg_t pwrCommonCfg = - { - PMIC_OTHER_RAIL_TRIG_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7248, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pwrCommonCfg.otherRailTrig = PMIC_POWER_TRIG_SOC_PWR_ERR + 1; - - pmicStatus = Pmic_powerSetCommonConfig(pPmicCoreHandle, pwrCommonCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(7248, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetCommonConfig : Parameter validation for socRailTrig - */ -static void test_pmic_powerSetCommonConfigPrmValTest_socRailTrig_SocPwrErr(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - Pmic_PowerCommonCfg_t pwrCommonCfg = - { - PMIC_SOC_RAIL_TRIG_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7249, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pwrCommonCfg.socRailTrig = PMIC_POWER_TRIG_SOC_PWR_ERR + 1; - - pmicStatus = Pmic_powerSetCommonConfig(pPmicCoreHandle, pwrCommonCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(7249, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetCommonConfig : Parameter validation for mcuRailTrig - */ -static void test_pmic_powerSetCommonConfigPrmValTest_mcuRailTrig_SocPwrErr(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - Pmic_PowerCommonCfg_t pwrCommonCfg = - { - PMIC_MCU_RAIL_TRIG_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7250, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pwrCommonCfg.mcuRailTrig = PMIC_POWER_TRIG_SOC_PWR_ERR + 1; - - pmicStatus = Pmic_powerSetCommonConfig(pPmicCoreHandle, pwrCommonCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(7250, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetCommonConfig : Parameter validation for moderateRailTrig - */ -static void test_pmic_powerSetCommonConfigPrmValTest_moderateRailTrig_SocPwrErr(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - Pmic_PowerCommonCfg_t pwrCommonCfg = - { - PMIC_MODERATE_ERR_TRIG_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7251, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pwrCommonCfg.moderateRailTrig = PMIC_POWER_TRIG_SOC_PWR_ERR + 1; - - pmicStatus = Pmic_powerSetCommonConfig(pPmicCoreHandle, pwrCommonCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(7251, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerGetCommonConfig : Parameter validation for handle - */ -static void test_pmic_powerGetCommonConfigPrmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerCommonCfg_t pwrCommonCfg = - { - PMIC_POWER_PGOOD_WINDOW_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7301, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pmicStatus = Pmic_powerGetCommonConfig(NULL, &pwrCommonCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(7301, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetConfigPowerGood : Parameter validation for handle - */ -static void test_pmic_powerSetConfigPowerGoodgPrmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pgoodSrcSel; - uint8_t pgoodSelType; - - test_pmic_print_unity_testcase_info(7260, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_TPS6594X_POWER_PGOOD_SEL_VCCA_ENABLE; - pgoodSrcSel = PMIC_TPS6594X_PGOOD_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_LP8764X_POWER_PGOOD_SEL_VCCA_VMON_ENABLE; - pgoodSrcSel = PMIC_LP8764X_PGOOD_SOURCE_VCCA; - } - - pmicStatus = Pmic_powerSetConfigPowerGood(NULL, - pgoodSrcSel, - pgoodSelType); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(7260, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerGetConfigPowerGood : Parameter validation for handle - */ -static void test_pmic_powerGetConfigPowerGoodPrmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pgoodSrcSel; - uint8_t pgoodSelType; - - test_pmic_print_unity_testcase_info(7302, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_TPS6594X_POWER_PGOOD_SEL_VCCA_ENABLE; - pgoodSrcSel = PMIC_TPS6594X_PGOOD_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_LP8764X_POWER_PGOOD_SEL_VCCA_VMON_ENABLE; - pgoodSrcSel = PMIC_LP8764X_PGOOD_SOURCE_VCCA; - } - - pmicStatus = Pmic_powerGetConfigPowerGood(NULL, - pgoodSrcSel, - &pgoodSelType); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(7302, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerGetPwrRsrcStat : Parameter validation for handle - */ -static void test_pmic_powerGetPwrRsrcStatPrmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceStat_t pPwrRsrcStatCfg = - { - PMIC_POWER_REGULATOR_ILIM_STAT_VALID_SHIFT, - }; - - uint16_t pwrResource; - uint16_t pwrRsrcMin, pwrRsrcMax; - - test_pmic_print_unity_testcase_info(7265, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerGetPwrRsrcStat(NULL, - pwrResource, - &pPwrRsrcStatCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - } - - pmic_testResultUpdate_pass(7265, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetThermalConfig : Parameter validation for handle - */ -static void test_pmic_powerSetThermalConfigPrmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerThermalCfg_t thermalThreshold = - { - PMIC_THERMAL_WARN_VALID_SHIFT, - }; - - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev)) - { - thermalThreshold.thermalWarnThold = PMIC_TPS6594X_PG_2_0_THERMAL_TEMP_WARN_140C; - } - - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev)) - { - thermalThreshold.thermalWarnThold = PMIC_TPS6594X_THERMAL_TEMP_WARN_130C; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - thermalThreshold.thermalWarnThold = PMIC_LP8764X_THERMAL_TEMP_WARN_130C; - } - - test_pmic_print_unity_testcase_info(7270, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pmicStatus = Pmic_powerSetThermalConfig(NULL, thermalThreshold); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(7270, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerGetThermalConfig : Parameter validation for handle - */ -static void test_pmic_powerGetThermalConfigPrmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerThermalCfg_t thermalThreshold = - { - PMIC_THERMAL_WARN_VALID_SHIFT, - }; - - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev)) - { - thermalThreshold.thermalWarnThold = PMIC_TPS6594X_PG_2_0_THERMAL_TEMP_WARN_140C; - } - - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev)) - { - thermalThreshold.thermalWarnThold = PMIC_TPS6594X_THERMAL_TEMP_WARN_130C; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - thermalThreshold.thermalWarnThold = PMIC_LP8764X_THERMAL_TEMP_WARN_130C; - } - - test_pmic_print_unity_testcase_info(7303, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pmicStatus = Pmic_powerGetThermalConfig(NULL, &thermalThreshold); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(7303, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrRsrcIntr : Parameter validation for handle - */ -static void test_Pmic_powerSetPwrRsrcIntrConfigPrmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t intrType; - bool intrEnable; - uint16_t pwrResource; - intrEnable = PMIC_POWER_INTERRUPT_DISABLE; - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - - { - intrType = PMIC_TPS6594X_POWER_ILIM_INT; - pwrResource = PMIC_LP8764X_VMON_MAX; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - - { - intrType = PMIC_TPS6594X_POWER_ILIM_INT; - pwrResource = PMIC_TPS6594X_LDO_MAX ; - } - - test_pmic_print_unity_testcase_info(7279, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pmicStatus = Pmic_powerSetPwrRsrcIntr(NULL, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(7279, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetIntr : Parameter validation for handle - */ -static void test_pmic_powerSetPwrRsrcIntrPrmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t intrType; - bool intrEnable; - - intrEnable = PMIC_POWER_INTERRUPT_DISABLE; - test_pmic_print_unity_testcase_info(7296, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_INTERRUPT_EN_DRV_READBACK; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_INTERRUPT_EN_DRV_READBACK; - } - - pmicStatus = Pmic_powerSetIntr(NULL, intrType, intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(7296, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -#if defined(ENABLE_SAMPLE_TESTCASES) -/*! - * The below test case is dummy, as power related interrupts cannot be generated - * to test masking APIs. - * 7463 PMIC: PMIC Power regulators, VCC and VMON Interrupts features - * can't be tested - */ - -/*! - * \brief Pmic_powerSetPwrRsrcIntr : Test Set Enable OV interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_ov_enabled(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrResource; - uint16_t pwrRsrcMin, pwrRsrcMax; - uint8_t intrType; - bool intrEnable; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - int8_t timeout = 10U; - - intrEnable = PMIC_POWER_INTERRUPT_ENABLE; - test_pmic_print_unity_testcase_info(0xAB00, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB00, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB00, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_OV_INT; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_OV_INT; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - /* The test code expects a over voltage interrupt */ - //dummy_func_generate_over_voltage(); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_POWER_OV_INT/32U] & - (1U << (PMIC_TPS6594X_POWER_OV_INT % 32U))) != 0U)) - { - timeout = 10U; - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - if(PMIC_TPS6594X_POWER_OV_INT == irqNum) - break; - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - break; - } - } - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_POWER_OV_INT/32U] & - (1U << (PMIC_TPS6594X_POWER_OV_INT % 32U))) != 0U)) - { - timeout = 10U; - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - if(PMIC_TPS6594X_POWER_OV_INT == irqNum) - break; - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - break; - } - } - } - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_TPS6594X_POWER_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_POWER_OV_INT/32U] & - (1U << (PMIC_TPS6594X_POWER_OV_INT % 32U))) != 0U)) - { - timeout = 10U; - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - if(PMIC_TPS6594X_POWER_OV_INT == irqNum) - break; - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_POWER_SOURCE_VMON1; - pwrRsrcMax = PMIC_LP8764X_POWER_SOURCE_VMON2; - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[PMIC_TPS6594X_POWER_OV_INT/32U] & - (1U << (PMIC_TPS6594X_POWER_OV_INT % 32U))) != 0U)) - { - timeout = 10U; - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - if(PMIC_TPS6594X_POWER_OV_INT == irqNum) - break; - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - break; - } - } - } - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(0xAB00, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * The below test case is dummy, as power related interrupts cannot be generated - * to test masking APIs. - * 7463 PMIC: PMIC Power regulators, VCC and VMON Interrupts features - * can't be tested - */ - -/*! - * \brief Pmic_powerSetPwrRsrcIntr : Test Set Disable OV interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_ov_disabled(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrResource; - uint16_t pwrRsrcMin, pwrRsrcMax; - uint8_t intrType; - bool intrEnable; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - int8_t timeout = 10U; - - intrEnable = PMIC_POWER_INTERRUPT_DISABLE; - test_pmic_print_unity_testcase_info(0xAB01, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB01, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB01, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_OV_INT; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_OV_INT; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - /* The test code expects a over voltage interrupt */ - //dummy_func_generate_over_voltage(); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[intrType/32U] & - (1U << (intrType % 32U))) != 0U)) - { - timeout = 10U; - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - if(intrType == irqNum) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - break; - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - break; - } - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[intrType/32U] & - (1U << (intrType % 32U))) != 0U)) - { - timeout = 10U; - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - if(intrType == irqNum) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - break; - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - break; - } - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_TPS6594X_POWER_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[intrType/32U] & - (1U << (intrType % 32U))) != 0U)) - { - timeout = 10U; - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - if(intrType == irqNum) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - break; - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_POWER_SOURCE_VMON1; - pwrRsrcMax = PMIC_LP8764X_POWER_SOURCE_VMON2; - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[intrType/32U] & - (1U << (intrType % 32U))) != 0U)) - { - timeout = 10U; - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - if(intrType == irqNum) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - break; - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - break; - } - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - } - - pmic_testResultUpdate_pass(0xAB01, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * The below test case is dummy, as power related interrupts cannot be generated - * to test masking APIs. - * 7463 PMIC: PMIC Power regulators, VCC and VMON Interrupts features - * can't be tested - */ - -/*! - * \brief Pmic_powerSetPwrRsrcIntr : Test Set Enable UV interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_uv_enabled(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrResource; - uint16_t pwrRsrcMin, pwrRsrcMax; - uint8_t intrType; - bool intrEnable; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - int8_t timeout = 10U; - - intrEnable = PMIC_POWER_INTERRUPT_ENABLE; - test_pmic_print_unity_testcase_info(0xAB02, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB02, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB02, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_UV_INT; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_UV_INT; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - /* The test code expects a under voltage interrupt */ - //dummy_func_generate_under_voltage(); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[intrType/32U] & - (1U << (intrType % 32U))) != 0U)) - { - timeout = 10U; - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - if(intrType == irqNum) - break; - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - break; - } - } - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[intrType/32U] & - (1U << (intrType % 32U))) != 0U)) - { - timeout = 10U; - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - if(intrType == irqNum) - break; - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - break; - } - } - } - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_TPS6594X_POWER_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[intrType/32U] & - (1U << (intrType % 32U))) != 0U)) - { - timeout = 0U; - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - if(intrType == irqNum) - break; - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_POWER_SOURCE_VMON1; - pwrRsrcMax = PMIC_LP8764X_POWER_SOURCE_VMON2; - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[intrType/32U] & - (1U << (intrType % 32U))) != 0U)) - { - timeout = 10U; - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - if(intrType == irqNum) - break; - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - break; - } - } - } - } - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(0xAB02, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * The below test case is dummy, as power interrupts cannot be generated - * to test masking APIs. - * 7463 PMIC: PMIC Power regulators, VCC and VMON Interrupts features - * can't be tested - */ - -/*! - * \brief Pmic_powerSetPwrRsrcIntr : Test Set Disable UV interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_uv_disabled(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrResource; - uint16_t pwrRsrcMin, pwrRsrcMax; - uint8_t intrType; - bool intrEnable; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - int8_t timeout = 10U; - - intrEnable = PMIC_POWER_INTERRUPT_DISABLE; - test_pmic_print_unity_testcase_info(0xAB03, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_UV_INT; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_UV_INT; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - /* The test code expects a under voltage interrupt */ - //dummy_func_generate_under_voltage(); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[intrType/32U] & - (1U << (intrType % 32U))) != 0U)) - { - timeout = 10U; - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - if(intrType == irqNum) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - break; - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - break; - } - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[intrType/32U] & - (1U << (intrType % 32U))) != 0U)) - { - timeout = 10U; - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - if(intrType == irqNum) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - break; - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - break; - } - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_TPS6594X_POWER_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[intrType/32U] & - (1U << (intrType % 32U))) != 0U)) - { - timeout = 10U; - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - if(intrType == irqNum) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - break; - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_POWER_SOURCE_VMON1; - pwrRsrcMax = PMIC_LP8764X_POWER_SOURCE_VMON2; - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[intrType/32U] & - (1U << (intrType % 32U))) != 0U)) - { - timeout = 10U; - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - if(intrType == irqNum) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - break; - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - break; - } - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - } - - pmic_testResultUpdate_pass(0xAB03, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * The below test case is dummy, as power interrupts cannot be generated - * to test masking APIs. - * 7463 PMIC: PMIC Power regulators, VCC and VMON Interrupts features - * can't be tested - */ - -/*! - * \brief Pmic_powerSetPwrRsrcIntr : Test Set Enable ILIM interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_ilim_enabled(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrResource; - uint16_t pwrRsrcMin, pwrRsrcMax; - uint8_t intrType; - bool intrEnable; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - int8_t timeout = 10U; - - intrEnable = PMIC_POWER_INTERRUPT_ENABLE; - test_pmic_print_unity_testcase_info(0xAB04, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB04, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB04, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_ILIM_INT; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_ILIM_INT; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - /* The test code expects a current limit interrupt */ - //dummy_func_generate_current_limit(); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[intrType/32U] & - (1U << (intrType % 32U))) != 0U)) - { - timeout = 10U; - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - if(intrType == irqNum) - break; - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - break; - } - } - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[intrType/32U] & - (1U << (intrType % 32U))) != 0U)) - { - timeout = 10U; - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - if(intrType == irqNum) - break; - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - break; - } - } - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - - pmic_testResultUpdate_pass(0xAB04, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * The below test case is dummy, as power interrupts cannot be generated - * to test masking APIs. - * 7463 PMIC: PMIC Power regulators, VCC and VMON Interrupts features - * can't be tested - */ - -/*! - * \brief Pmic_powerSetPwrRsrcIntr : Test Set Disable ILIM interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_ilim_disabled(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrResource; - uint16_t pwrRsrcMin, pwrRsrcMax; - uint8_t intrType; - bool intrEnable; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - int8_t timeout = 10U; - - intrEnable = PMIC_POWER_INTERRUPT_DISABLE; - test_pmic_print_unity_testcase_info(0xAB05, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB05, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB05, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_ILIM_INT; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_ILIM_INT; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - /* The test code expects a current limit interrupt */ - //dummy_func_generate_current_limit(); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[intrType/32U] & - (1U << (intrType % 32U))) != 0U)) - { - timeout = 10U; - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - if(intrType == irqNum) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - break; - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - break; - } - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[intrType/32U] & - (1U << (intrType % 32U))) != 0U)) - { - timeout = 10U; - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - if(intrType == irqNum) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - break; - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - break; - } - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - } - - pmic_testResultUpdate_pass(0xAB05, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * The below test case is dummy, as thermal interrupts cannot be generated - * to test masking APIs. - * 7463 PMIC: PMIC Power regulators, VCC and VMON Interrupts features - * can't be tested - */ - -/*! - * \brief Pmic_powerSetIntr : Test Set Enable TWARN interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_twarn_enabled(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t intrType; - bool intrEnable; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - int8_t timeout = 10U; - - intrEnable = PMIC_POWER_INTERRUPT_ENABLE; - test_pmic_print_unity_testcase_info(0xAB06, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB06, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB06, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_INTERRUPT_TWARN; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_INTERRUPT_TWARN; - } - /* The test code expects a thermal warning interrupt */ - //dummy_func_generate_thermal_warning_irq(); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerSetIntr(pPmicCoreHandle, intrType, intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[intrType/32U] & - (1U << (intrType % 32U))) != 0U)) - { - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - if(intrType == irqNum) - break; - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - } - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(0xAB06, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * The below test case is dummy, as thermal interrupts cannot be generated - * to test masking APIs. - * 7463 PMIC: PMIC Power regulators, VCC and VMON Interrupts features - * can't be tested - */ - -/*! - * \brief Pmic_powerSetIntr : Test Set Disable TWARN interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_twarn_disabled(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t intrType; - bool intrEnable; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - int8_t timeout = 10U; - - intrEnable = PMIC_POWER_INTERRUPT_DISABLE; - test_pmic_print_unity_testcase_info(0xAB07, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB07, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB07, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_INTERRUPT_TWARN; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_INTERRUPT_TWARN; - } - /* The test code expects a thermal warning interrupt */ - //dummy_func_generate_thermal_warning_irq(); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerSetIntr(pPmicCoreHandle, intrType, intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[intrType/32U] & - (1U << (intrType % 32U))) != 0U)) - { - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - if(intrType == irqNum) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - break; - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(0xAB07, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * The below test case is dummy, as power interrupts cannot be generated - * to test masking APIs. - * 7463 PMIC: PMIC Power regulators, VCC and VMON Interrupts features - * can't be tested - */ - -/*! - * \brief Pmic_powerSetIntr : Test Set Enable NRSTOUT_READBACK interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_nrstout_readback_enabled(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t intrType; - bool intrEnable; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - int8_t timeout = 10U; - - intrEnable = PMIC_POWER_INTERRUPT_ENABLE; - test_pmic_print_unity_testcase_info(0xAB08, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB08, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB08, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_INTERRUPT_NRSTOUT_READBACK; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_INTERRUPT_NRSTOUT_READBACK; - } - /* The test code expects a nRstOut Readback interrupt */ - //dummy_func_generate_nRstOut_RbBck_irq(); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerSetIntr(pPmicCoreHandle, intrType, intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[intrType/32U] & - (1U << (intrType % 32U))) != 0U)) - { - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - if(intrType == irqNum) - break; - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - } - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(0xAB08, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * The below test case is dummy, as power interrupts cannot be generated - * to test masking APIs. - * 7463 PMIC: PMIC Power regulators, VCC and VMON Interrupts features - * can't be tested - */ - -/*! - * \brief Pmic_powerSetIntr : Test Set Disable NRSTOUT_READBACK interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_nrstout_readback_disabled(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t intrType; - bool intrEnable; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - int8_t timeout = 10U; - - intrEnable = PMIC_POWER_INTERRUPT_DISABLE; - test_pmic_print_unity_testcase_info(0xAB09, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB09, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB09, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_INTERRUPT_NRSTOUT_READBACK; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_INTERRUPT_NRSTOUT_READBACK; - } - /* The test code expects a nRstOut Readback interrupt */ - //dummy_func_generate_nRstOut_RbBck_irq(); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerSetIntr(pPmicCoreHandle, intrType, intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[intrType/32U] & - (1U << (intrType % 32U))) != 0U)) - { - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - if(intrType == irqNum) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - break; - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(0xAB09, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * The below test case is dummy, as power interrupts cannot be generated - * to test masking APIs. - * 7463 PMIC: PMIC Power regulators, VCC and VMON Interrupts features - * can't be tested - */ - -/*! - * \brief Pmic_powerSetIntr : Test Set Enable SOC_PWR_ERR interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_soc_pwr_err_enabled(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t intrType; - bool intrEnable; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - int8_t timeout = 10U; - - intrEnable = PMIC_POWER_INTERRUPT_ENABLE; - test_pmic_print_unity_testcase_info(0xAB0A, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB0A, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB0A, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_INTERRUPT_SOC_PWR_ERR; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_INTERRUPT_SOC_PWR_ERR; - } - /* The test code expects a SOC_PWR_ERR interrupt */ - //dummy_func_generate_soc_pwr_err_irq(); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerSetIntr(pPmicCoreHandle, intrType, intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[intrType/32U] & - (1U << (intrType % 32U))) != 0U)) - { - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - if(intrType == irqNum) - break; - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(0xAB0A, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * The below test case is dummy, as power interrupts cannot be generated - * to test masking APIs. - * 7463 PMIC: PMIC Power regulators, VCC and VMON Interrupts features - * can't be tested - */ - -/*! - * \brief Pmic_powerSetIntr : Test Set Disable SOC_PWR_ERR interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_soc_pwr_err_disabled(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t intrType; - bool intrEnable; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - int8_t timeout = 10U; - - intrEnable = PMIC_POWER_INTERRUPT_DISABLE; - test_pmic_print_unity_testcase_info(0xAB0B, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB0B, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB0B, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_INTERRUPT_SOC_PWR_ERR; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_INTERRUPT_SOC_PWR_ERR; - } - /* The test code expects a SOC_PWR_ERR interrupt */ - //dummy_func_generate_soc_pwr_err_irq(); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerSetIntr(pPmicCoreHandle, intrType, intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[intrType/32U] & - (1U << (intrType % 32U))) != 0U)) - { - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - if(intrType == irqNum) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - break; - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(0xAB0B, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * The below test case is dummy, as power interrupts cannot be generated - * to test masking APIs. - * 7463 PMIC: PMIC Power regulators, VCC and VMON Interrupts features - * can't be tested - */ - -/*! - * \brief Pmic_powerSetIntr : Test Set Enable MCU_PWR_ERR interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_mcu_pwr_err_enabled(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t intrType; - bool intrEnable; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - int8_t timeout = 10U; - - intrEnable = PMIC_POWER_INTERRUPT_ENABLE; - test_pmic_print_unity_testcase_info(0xAB0C, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB0C, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB0C, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_INTERRUPT_MCU_PWR_ERR; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_INTERRUPT_MCU_PWR_ERR; - } - /* The test code expects a MCU_PWR_ERR interrupt */ - //dummy_func_generate_mcu_pwr_err_irq(); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerSetIntr(pPmicCoreHandle, intrType, intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[intrType/32U] & - (1U << (intrType % 32U))) != 0U)) - { - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - if(intrType == irqNum) - break; - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(0xAB0C, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * The below test case is dummy, as power interrupts cannot be generated - * to test masking APIs. - * 7463 PMIC: PMIC Power regulators, VCC and VMON Interrupts features - * can't be tested - */ - -/*! - * \brief Pmic_powerSetIntr : Test Set Disable MCU_PWR_ERR interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_mcu_pwr_err_disabled(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t intrType; - bool intrEnable; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - int8_t timeout = 10U; - - intrEnable = PMIC_POWER_INTERRUPT_DISABLE; - test_pmic_print_unity_testcase_info(0xAB0D, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB0D, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB0D, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_INTERRUPT_MCU_PWR_ERR; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_INTERRUPT_MCU_PWR_ERR; - } - /* The test code expects a MCU_PWR_ERR interrupt */ - //dummy_func_generate_mcu_pwr_err_irq(); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerSetIntr(pPmicCoreHandle, intrType, intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[intrType/32U] & - (1U << (intrType % 32U))) != 0U)) - { - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - if(intrType == irqNum) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - break; - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(0xAB0D, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * The below test case is dummy, as power interrupts cannot be generated - * to test masking APIs. - * 7463 PMIC: PMIC Power regulators, VCC and VMON Interrupts features - * can't be tested - */ - -/*! - * \brief Pmic_powerSetIntr : Test Set Enable ORD_SHUTDOWN interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_ord_shutdown_enabled(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t intrType; - bool intrEnable; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - int8_t timeout = 10U; - - intrEnable = PMIC_POWER_INTERRUPT_ENABLE; - test_pmic_print_unity_testcase_info(0xAB0E, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB0E, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB0E, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_INTERRUPT_ORD_SHUTDOWN; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_INTERRUPT_ORD_SHUTDOWN; - } - /* The test code expects a ORD_SHUTDOWN interrupt */ - //dummy_func_generate_ord_shutdown_irq(); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerSetIntr(pPmicCoreHandle, intrType, intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[intrType/32U] & - (1U << (intrType % 32U))) != 0U)) - { - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - if(intrType == irqNum) - break; - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(0xAB0E, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * The below test case is dummy, as power interrupts cannot be generated - * to test masking APIs. - * 7463 PMIC: PMIC Power regulators, VCC and VMON Interrupts features - * can't be tested - */ - -/*! - * \brief Pmic_powerSetIntr : Test Set Disable ORD_SHUTDOWN interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_ord_shutdown_disabled(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t intrType; - bool intrEnable; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - int8_t timeout = 10U; - - intrEnable = PMIC_POWER_INTERRUPT_DISABLE; - test_pmic_print_unity_testcase_info(0xAB0F, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB0F, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB0F, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_INTERRUPT_ORD_SHUTDOWN; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_INTERRUPT_ORD_SHUTDOWN; - } - /* The test code expects a ORD_SHUTDOWN interrupt */ - //dummy_func_generate_ord_shutdown_irq(); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerSetIntr(pPmicCoreHandle, intrType, intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[intrType/32U] & - (1U << (intrType % 32U))) != 0U)) - { - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - if(intrType == irqNum) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - break; - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(0xAB0F, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * The below test case is dummy, as power interrupts cannot be generated - * to test masking APIs. - * 7463 PMIC: PMIC Power regulators, VCC and VMON Interrupts features - * can't be tested - */ - -/*! - * \brief Pmic_powerSetIntr : Test Set Enable IMM_SHUTDOWN interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_imm_shutdown_enabled(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t intrType; - bool intrEnable; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - int8_t timeout = 10U; - - intrEnable = PMIC_POWER_INTERRUPT_ENABLE; - test_pmic_print_unity_testcase_info(0xAB11, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB11, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB11, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_INTERRUPT_IMM_SHUTDOWN; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_INTERRUPT_IMM_SHUTDOWN; - } - /* The test code expects a IMM_SHUTDOWN interrupt */ - //dummy_func_generate_imm_shutdown_irq(); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerSetIntr(pPmicCoreHandle, intrType, intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[intrType/32U] & - (1U << (intrType % 32U))) != 0U)) - { - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - if(intrType == irqNum) - break; - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(0xAB11, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * The below test case is dummy, as power interrupts cannot be generated - * to test masking APIs. - * 7463 PMIC: PMIC Power regulators, VCC and VMON Interrupts features - * can't be tested - */ - -/*! - * \brief Pmic_powerSetIntr : Test Set Disable IMM_SHUTDOWN interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_imm_shutdown_disabled(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t intrType; - bool intrEnable; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - int8_t timeout = 10U; - - intrEnable = PMIC_POWER_INTERRUPT_DISABLE; - test_pmic_print_unity_testcase_info(0xAB12, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB12, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB12, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_INTERRUPT_IMM_SHUTDOWN; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_INTERRUPT_IMM_SHUTDOWN; - } - /* The test code expects a IMM_SHUTDOWN interrupt */ - //dummy_func_generate_imm_shutdown_irq(); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerSetIntr(pPmicCoreHandle, intrType, intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[intrType/32U] & - (1U << (intrType % 32U))) != 0U)) - { - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - if(intrType == irqNum) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - break; - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(0xAB12, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * The below test case is dummy, as power interrupts cannot be generated - * to test masking APIs. - * 7463 PMIC: PMIC Power regulators, VCC and VMON Interrupts features - * can't be tested - */ - -/*! - * \brief Pmic_powerSetIntr : Test Set Enable NRSTOUT_SOC_READBACK interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_nrstout_soc_readback_enabled(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t intrType; - bool intrEnable; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - int8_t timeout = 10U; - - intrEnable = PMIC_POWER_INTERRUPT_ENABLE; - test_pmic_print_unity_testcase_info(0xAB13, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB13, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB13, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_INTERRUPT_NRSTOUT_SOC_READBACK; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_INTERRUPT_NRSTOUT_SOC_READBACK; - } - /* The test code expects a NRSTOUT_SOC_READBACK interrupt */ - //dummy_func_generate_nrstout_soc_readback_irq(); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerSetIntr(pPmicCoreHandle, intrType, intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[intrType/32U] & - (1U << (intrType % 32U))) != 0U)) - { - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - if(intrType == irqNum) - break; - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(0xAB13, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * The below test case is dummy, as power interrupts cannot be generated - * to test masking APIs. - * 7463 PMIC: PMIC Power regulators, VCC and VMON Interrupts features - * can't be tested - */ - -/*! - * \brief Pmic_powerSetIntr : Test Set Disable NRSTOUT_SOC_READBACK interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_nrstout_soc_readback_disabled(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t intrType; - bool intrEnable; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - int8_t timeout = 10U; - - intrEnable = PMIC_POWER_INTERRUPT_DISABLE; - test_pmic_print_unity_testcase_info(0xAB14, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB14, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB14, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_INTERRUPT_NRSTOUT_SOC_READBACK; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_INTERRUPT_NRSTOUT_SOC_READBACK; - } - /* The test code expects a NRSTOUT_SOC_READBACK interrupt */ - //dummy_func_generate_nrstout_soc_readback_irq(); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerSetIntr(pPmicCoreHandle, intrType, intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[intrType/32U] & - (1U << (intrType % 32U))) != 0U)) - { - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - if(intrType == irqNum) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - break; - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(0xAB14, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * The below test case is dummy, as power interrupts cannot be generated - * to test masking APIs. - * 7463 PMIC: PMIC Power regulators, VCC and VMON Interrupts features - * can't be tested - */ - -/*! - * \brief Pmic_powerSetIntr : Test Set Enable EN_DRV_READBACK interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_en_drv_readback_enabled(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t intrType; - bool intrEnable; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - int8_t timeout = 10U; - - intrEnable = PMIC_POWER_INTERRUPT_ENABLE; - test_pmic_print_unity_testcase_info(0xAB15, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB15, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB15, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_INTERRUPT_EN_DRV_READBACK; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_INTERRUPT_EN_DRV_READBACK; - } - /* The test code expects a EN_DRV_READBACK interrupt */ - //dummy_func_generate_en_drv_readback_irq(); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerSetIntr(pPmicCoreHandle, intrType, intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[intrType/32U] & - (1U << (intrType % 32U))) != 0U)) - { - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - if(intrType == irqNum) - break; - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(0xAB15, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * The below test case is dummy, as power interrupts cannot be generated - * to test masking APIs. - * 7463 PMIC: PMIC Power regulators, VCC and VMON Interrupts features - * can't be tested - */ - -/*! - * \brief Pmic_powerSetIntr : Test Set Disable EN_DRV_READBACK interrupt - */ -static void test_pmic_powerSetPwrRsrcIntr_en_drv_readback_disabled(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t intrType; - bool intrEnable; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - int8_t timeout = 10U; - - intrEnable = PMIC_POWER_INTERRUPT_DISABLE; - test_pmic_print_unity_testcase_info(0xAB16, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB16, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(0xAB16, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_INTERRUPT_EN_DRV_READBACK; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_INTERRUPT_EN_DRV_READBACK; - } - /* The test code expects a EN_DRV_READBACK interrupt */ - //dummy_func_generate_en_drv_readback_irq(); - - /* To clear the interrupts*/ - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerSetIntr(pPmicCoreHandle, intrType, intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == pmicStatus) && - ((errStat.intStatus[intrType/32U] & - (1U << (intrType % 32U))) != 0U)) - { - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - pmicStatus = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - if(intrType == irqNum) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - break; - } - } - - if(0 > timeout) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(0xAB16, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} -#endif - -/*! - * \brief Pmic_powerGetPwrThermalStat : Parameter validation for handle. - */ -static void test_pmic_powerGetPwrThermalStatPrmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerThermalStat_t pPwrThermalStatCfg = - { - PMIC_THERMAL_STAT_WARN_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7726, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pmicStatus = Pmic_powerGetPwrThermalStat(NULL, &pPwrThermalStatCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(7726, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerGetPwrThermalStat : Parameter validation for pPwrThermalStatCfg. - */ -static void test_pmic_powerGetPwrThermalStatPrmValTest_pPwrThermalStatCfg(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(7727, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pmicStatus = Pmic_powerGetPwrThermalStat(pPmicCoreHandle, NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(7727, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerGetPwrThermalStat : Test Get Thermal Warn Status. - */ -static void test_pmic_powerGetPwrThermalStat_thermalStatus(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerThermalStat_t pPwrThermalStatCfg = - { - PMIC_THERMAL_STAT_WARN_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7728, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pmicStatus = Pmic_powerGetPwrThermalStat(pPmicCoreHandle, &pPwrThermalStatCfg); - - pmic_log("Status: %d\n",pPwrThermalStatCfg.thermalStateWarning); - if(pPwrThermalStatCfg.thermalStateWarning != 0) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(7728, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerGetPwrThermalStat : Test Get Oderly Shutdown Status. - */ -static void test_pmic_powerGetPwrThermalStat_OderlyShtDwnStatus(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - Pmic_PowerThermalStat_t pPwrThermalStatCfg = - { - PMIC_THERMAL_STAT_ORD_SHTDWN_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7729, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pmicStatus = Pmic_powerGetPwrThermalStat(pPmicCoreHandle, &pPwrThermalStatCfg); - - pmic_log("Status: %d\n",pPwrThermalStatCfg.thermalStateOderlyShtDwn); - if(pPwrThermalStatCfg.thermalStateOderlyShtDwn != 0) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(7729, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerGetPwrThermalStat : Test Get immediate Shutdown Status. - */ -static void test_pmic_powerGetPwrThermalStat_ImmShtDwnStatus(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - Pmic_PowerThermalStat_t pPwrThermalStatCfg = - { - PMIC_THERMAL_STAT_IMM_SHTDWN_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7730, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pmicStatus = Pmic_powerGetPwrThermalStat(pPmicCoreHandle, &pPwrThermalStatCfg); - - pmic_log("Status: %d\n",pPwrThermalStatCfg.thermalStateImmShtDwn); - if(pPwrThermalStatCfg.thermalStateImmShtDwn != 0) - { - pmicStatus = PMIC_ST_ERR_INV_PARAM; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(7730, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Negative test LDO Pull down Select for HERA PMIC. - */ -static void test_pmic_powerSetPowerResourceConfig_hera_ldo(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_LDO_PLDN_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7872, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.ldoPullDownSel = PMIC_TPS6594X_REGULATOR_LDO_PLDN_VAL_50KOHM; - pwrRsrc = PMIC_TPS6594X_REGULATOR_LDO1; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(7872, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(7872, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Negative test VMON range for LEO PMIC. - */ -static void test_pmic_powerSetPowerResourceConfig_leo_vmon(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_VMON_RANGE_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7873, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(7873, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.vmonRange = PMIC_LP8764X_VMON_RANGE_0V3_3V34; - pwrRsrc = PMIC_LP8764X_POWER_SOURCE_VMON1; - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(7873, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetThermalConfig : Negative test for thermalShutdownThold on Leo PMIC PG1.0 - */ -static void test_pmic_powerSetThermalConfig_thermalShutdownThold(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerThermalCfg_t thermalThreshold = - { - PMIC_THERMAL_SHTDWN_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7874, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev)) || - (PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType)) - { - pmic_testResultUpdate_ignore(7874, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - - thermalThreshold.thermalShutdownThold = - PMIC_TPS6594X_THERMAL_TEMP_TSD_ORD_140C; - - pmicStatus = Pmic_powerSetThermalConfig(pPmicCoreHandle, thermalThreshold); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NOT_SUPPORTED, pmicStatus); - - pmic_testResultUpdate_pass(7874, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerGetThermalConfig : Negative test for thermalShutdownThold on Leo PMIC PG1.0 - */ -static void test_pmic_powerGetThermalConfig_thermalShutdownThold(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(7875, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - Pmic_PowerThermalCfg_t thermalThreshold = - { - PMIC_THERMAL_SHTDWN_VALID_SHIFT, - }; - - if(((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev)) || - (PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType)) - { - pmic_testResultUpdate_ignore(7875, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - thermalThreshold.thermalShutdownThold = - PMIC_TPS6594X_THERMAL_TEMP_TSD_ORD_145C; - - pmicStatus = Pmic_powerGetThermalConfig(pPmicCoreHandle, &thermalThreshold); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NOT_SUPPORTED, pmicStatus); - - pmic_testResultUpdate_pass(7875, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetLdoRtc : Negative test Disable ldortcRegulator for HERA - */ -static void test_pmic_powerSetLdoRtc_HERA_ldortcEnable_disable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool ldortcEnable = false; - - test_pmic_print_unity_testcase_info(7876, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(7876, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - ldortcEnable = PMIC_TPS6594X_REGULATOR_LDORTC_DISABLE; - } - - pmicStatus = Pmic_powerSetLdoRtc(pPmicCoreHandle, ldortcEnable); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(7876, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerGetPwrResourceCfg : Negative test Get Switch peak current limit for BUCK 5 - */ -static void test_pmic_powerGetPowerResourceConfig_buck5(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc; - - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_BUCK_ILIM_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(7878, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_REGULATOR_BUCK5; - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_REGULATOR_BUCK5; - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - } - - pmic_testResultUpdate_pass(7878, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} -/*! - * \brief Pmic_powerGetThermalConfig : Parameter validation for pThermalThreshold - */ -static void test_pmic_powerGetThermalConfigPrmValTest_pThermalThreshold(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(10622, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pmicStatus = Pmic_powerGetThermalConfig(pPmicCoreHandle, NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10622, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerGetPwrRsrcStat : Parameter validation for pPwrRsrcStatCfg - */ -static void test_pmic_powerGetPwrRsrcStatPrmValTest_pPwrRsrcStatCfg(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - uint16_t pwrResource; - uint16_t pwrRsrcMin, pwrRsrcMax; - - test_pmic_print_unity_testcase_info(10623, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - for(pwrResource = pwrRsrcMin; pwrResource <= pwrRsrcMax ; pwrResource++) - { - pmicStatus = Pmic_powerGetPwrRsrcStat(pPmicCoreHandle, - pwrResource, - NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, pmicStatus); - } - - pmic_testResultUpdate_pass(10623, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerGetConfigPowerGood : Parameter validation for pPgoodSelType - */ -static void test_pmic_powerGetConfigPowerGoodPrmValTest_pPgoodSelType(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pgoodSrcSel; - - test_pmic_print_unity_testcase_info(10624, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSrcSel = PMIC_TPS6594X_PGOOD_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSrcSel = PMIC_LP8764X_PGOOD_SOURCE_VCCA; - } - - pmicStatus = Pmic_powerGetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10624, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerGetCommonConfig : Parameter validation for pPowerCommonCfg - */ -static void test_pmic_powerGetCommonConfigPrmValTest_pPowerCommonCfg(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(10625, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pmicStatus = Pmic_powerGetCommonConfig(pPmicCoreHandle, NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10625, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Negative test for ldoRvTimeoutSel configuration on Hera - */ - static void test_pmic_powerSetPwrResourceCfg_ldoRvTimeoutSel(void) - { - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(10626, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(10626, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - pwrRsrc = PMIC_TPS6594X_REGULATOR_LDO1; - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - } - - pmic_testResultUpdate_pass(10626, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Negative test for Buck2 pwmMpMode configuration - */ -static void test_pmic_powerSetPwrResourceCfg_buck2PwmMpMode(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_BUCK_PWM_MP_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(10627, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckFpwmMpMode = PMIC_TPS6594X_REGULATOR_PWM_MP_MODE; - pwrRsrc = PMIC_TPS6594X_REGULATOR_BUCK2; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckFpwmMpMode = PMIC_LP8764X_REGULATOR_PWM_MP_MODE; - pwrRsrc = PMIC_LP8764X_REGULATOR_BUCK2; - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10627, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Negative test for Ldo4 bypass mode configuration - */ -static void test_pmic_powerSetPwrResourceCfg_ldo4ByPassMode(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_LDO_BYPASS_MODE_EN_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(10628, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_REGULATOR_LDO4; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(10628, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10628, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetIntr : Parameter Validation of intrType - */ -static void test_pmic_powerSetIntrPrmValTest_intrType(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t intrType; - bool intrEnable; - - intrEnable = PMIC_POWER_INTERRUPT_ENABLE; - test_pmic_print_unity_testcase_info(10629, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - intrType = 8U; - pmicStatus = Pmic_powerSetIntr(pPmicCoreHandle, intrType, intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10629, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -#if defined(SOC_J7200) -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test to set Power good high threshold level for Buck1 - */ -static void test_pmic_powerSetPwrResourceCfg_pgOvThresholdLvl(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_PWR_RESOURCE_PG_OV_THRESHOLD_LVL_VALID_SHIFT, - }; - Pmic_PowerResourceCfg_t powerCfg_default = - { - PMIC_CFG_PWR_RESOURCE_PG_OV_THRESHOLD_LVL_VALID_SHIFT, - }; - uint16_t pwrRsrc; - - test_pmic_print_unity_testcase_info(10630, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_REGULATOR_BUCK1; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_REGULATOR_BUCK1; - } - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_default); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - powerCfg_default); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(powerCfg_default.pgOvThresholdLvl, powerCfg_rd.pgOvThresholdLvl); - - pmic_testResultUpdate_pass(10630, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} -#endif - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter validation for pgOvThresholdLvl - */ -static void test_pmic_powerSetPwrResourceCfgPrmValTest_pgOvThresholdLvl(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_PWR_RESOURCE_PG_OV_THRESHOLD_LVL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(10631, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.pgOvThresholdLvl = 8U; - pwrRsrc = PMIC_LP8764X_REGULATOR_BUCK1; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.pgOvThresholdLvl = 8U; - pwrRsrc = PMIC_TPS6594X_REGULATOR_BUCK1; - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10631, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test to set Power good low threshold level for Buck1 - */ -static void test_pmic_powerSetPwrResourceCfg_pgUvThresholdLvl(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_PWR_RESOURCE_PG_UV_THRESHOLD_LVL_VALID_SHIFT, - }; - uint16_t pwrRsrc; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_PWR_RESOURCE_PG_UV_THRESHOLD_LVL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(10632, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.pgUvThresholdLvl = PMIC_LP8764X_PG_OV_UV_THRESHOLD_LVL_30_OR_3; - pwrRsrc = PMIC_LP8764X_REGULATOR_BUCK1; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.pgUvThresholdLvl = PMIC_TPS6594X_PG_OV_UV_THRESHOLD_LVL_30_OR_3; - pwrRsrc = PMIC_TPS6594X_REGULATOR_BUCK1; - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.pgUvThresholdLvl, powerCfg_rd.pgUvThresholdLvl); - - pmic_testResultUpdate_pass(10632, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter validation for pgUvThresholdLvl - */ -static void test_pmic_powerSetPwrResourceCfgPrmValTest_pgUvThresholdLvl(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_PWR_RESOURCE_PG_UV_THRESHOLD_LVL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(10633, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.pgUvThresholdLvl = 8U; - pwrRsrc = PMIC_LP8764X_REGULATOR_BUCK1; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.pgUvThresholdLvl = 8U; - pwrRsrc = PMIC_TPS6594X_REGULATOR_BUCK1; - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10633, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerGetPwrRsrcStat : Parameter validation for ILIM status pwrResource - */ -static void test_pmic_powerGetPwrRsrcStatPrmValTest_ilimStatPwrRsrc(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceStat_t pPwrRsrcStatCfg = - { - PMIC_POWER_REGULATOR_ILIM_STAT_VALID_SHIFT, - }; - - uint16_t pwrResource; - - test_pmic_print_unity_testcase_info(10635, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_TPS6594X_POWER_RESOURCE_TYPE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_LP8764X_POWER_RESOURCE_TYPE_VCCA; - } - - pmicStatus = Pmic_powerGetPwrRsrcStat(pPmicCoreHandle, - pwrResource, - &pPwrRsrcStatCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10635, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerGetPwrRsrcStat : Parameter validation for VCCA OV LVL status pwrResource - */ -static void test_pmic_powerGetPwrRsrcStatPrmValTest_vccaOvLvlStatPwrRsrc(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceStat_t pPwrRsrcStatCfg = - { - PMIC_POWER_VCCA_OV_LVL_STAT_VALID_SHIFT, - }; - - uint16_t pwrResource; - - test_pmic_print_unity_testcase_info(10636, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_TPS6594X_REGULATOR_BUCK1; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_LP8764X_REGULATOR_BUCK1; - } - - pmicStatus = Pmic_powerGetPwrRsrcStat(pPmicCoreHandle, - pwrResource, - &pPwrRsrcStatCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10636, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerGetCommonConfig : Negative test for deglitchTimeSel on Leo - */ -static void test_pmic_powerGetCommonConfig_deglitchTimeSel(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerCommonCfg_t powerCfg_rd = - { - PMIC_CFG_DEGLITCH_TIME_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(10637, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev)) || - (PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType)) - { - pmic_testResultUpdate_ignore(10637, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_powerGetCommonConfig(pPmicCoreHandle, &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NOT_SUPPORTED, pmicStatus); - - pmic_testResultUpdate_pass(10637, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetCommonConfig : Negative test for deglitchTimeSel on Leo - */ -static void test_pmic_powerSetCommonConfig_deglitchTimeSel(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - Pmic_PowerCommonCfg_t pwrCommonCfg = - { - PMIC_CFG_DEGLITCH_TIME_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(10638, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev)) || - (PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType)) - { - pmic_testResultUpdate_ignore(10638, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_powerSetCommonConfig(pPmicCoreHandle, pwrCommonCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NOT_SUPPORTED, pmicStatus); - - pmic_testResultUpdate_pass(10638, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerGetPwrResourceCfg : Parameter validation for vccaPwrGudLvl pwrResource - */ - static void test_pmic_powerGetPwrResourceCfgPrmValTest_vccaPwrGudLvlPwrRsrc(void) - { - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc; - - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_VCCA_PWR_GOOD_LVL_VALID_SHIFT, - }; - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_REGULATOR_BUCK1; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_REGULATOR_BUCK1; - } - - test_pmic_print_unity_testcase_info(10639, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10639, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerGetPwrResourceCfg : Parameter validation for vmonRange pwrResource - */ - static void test_pmic_powerGetPwrResourceCfgPrmValTest_vmonRangePwrRsrc(void) - { - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc = 0U; - - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_VMON_RANGE_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(10640, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - /* VMON1 and VMON2 are not present in LEO pmic */ - pmic_testResultUpdate_ignore(10640, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10640, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerGetPwrResourceCfg : Parameter validation for buckCurrentLimit pwrResource -*/ -static void test_pmic_powerGetPwrResourceCfgPrmValTest_buckIlimPwrRsrc(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc; - - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_BUCK_ILIM_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(10641, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_REGULATOR_LDO1; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10641, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerGetPwrResourceCfg : Parameter validation for buckVmonSlewRate pwrResource - */ -static void test_pmic_powerGetPwrResourceCfgPrmValTest_buckVmonSlewRatePwrRsrc(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc; - - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_BUCK_VMON_SLEW_RATE_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(10642, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_POWER_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10642, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter validation for residual voltage checking pwrResource - */ -static void test_pmic_powerSetPwrResourceCfgPrmValTest_rvCheckPwrRsrc(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_VMON_RV_SEL_VALID_SHIFT, - }; - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_POWER_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - test_pmic_print_unity_testcase_info(10643, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10643, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerGetPwrResourceCfg : Parameter validation for residual voltage checking pwrResource - */ -static void test_pmic_powerGetPwrResourceCfgPrmValTest_rvCheckPwrRsrc(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc; - - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_VMON_RV_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(10644, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_POWER_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10644, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerGetPwrResourceCfg : Parameter validation for buckPullDownEn pwrResource - */ -static void test_pmic_powerGetPwrResourceCfgPrmValTest_buckPullDownEnPwrRsrc(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc; - - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_BUCK_PLDN_EN_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(10646, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_POWER_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10646, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerGetPwrResourceCfg : Parameter validation for buckVoutSel pwrResource - */ -static void test_pmic_powerGetPwrResourceCfgPrmValTest_buckVoutSelPwrRsrc(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc; - - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_BUCK_VOUT_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(10647, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_POWER_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10647, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerGetPwrResourceCfg : Parameter validation for buckFpwmMode pwrResource - */ -static void test_pmic_powerGetPwrResourceCfgPrmValTest_buckFpwmModePwrRsrc(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc; - - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_BUCK_FPWM_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(10648, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_POWER_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10648, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerGetPwrResourceCfg : Parameter validation for buckFpwmMpMode pwrResource - */ -static void test_pmic_powerGetPwrResourceCfgPrmValTest_buckFpwmMpModePwrRsrc(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc; - - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_BUCK_PWM_MP_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(10649, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_REGULATOR_LDO1; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10649, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerGetPwrResourceCfg : Parameter validation for regulatorEn pwrResource - */ -static void test_pmic_powerGetPwrResourceCfgPrmValTest_regulatorEnPwrRsrc(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc; - - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_EN_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(10650, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_POWER_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10650, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerGetPwrResourceCfg : Parameter validation for ldoPullDownSel pwrResource - */ -static void test_pmic_powerGetPwrResourceCfgPrmValTest_ldoPullDownSelPwrRsrc(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - uint16_t pwrRsrc = 0U; - - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_LDO_PLDN_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(10651, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_REGULATOR_BUCK1; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - /* LDOs are not present in HERA pmic */ - pmic_testResultUpdate_ignore(10651, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10651, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter range validation for buckCurrentLimit min value - */ -static void test_pmic_powerSetPwrResourceCfgPrmValTest_buckIlimMinVal(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_BUCK_ILIM_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(10652, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - pPowerCfg.buckCurrentLimit = 0x01; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - pPowerCfg.buckCurrentLimit = 0x01; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - } - - pmic_testResultUpdate_pass(10652, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerGetPwrResourceCfg : Parameter validation for ldoBypassModeEn pwrResource - */ -static void test_pmic_powerGetPwrResourceCfgPrmValTest_ldoBypassModeEnPwrRsrc(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc; - - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_LDO_BYPASS_MODE_EN_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(10653, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_REGULATOR_BUCK1; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_REGULATOR_BUCK1; - } - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10653, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerGetPwrResourceCfg : Parameter validation for ldoRvTimeoutSel pwrResource - */ - static void test_pmic_powerGetPwrResourceCfgPrmValTest_ldoRvTimeoutSelPwrRsrc(void) - { - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc; - - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(10654, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_POWER_SOURCE_VCCA; - } - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10654, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerGetPwrResourceCfg : Parameter validation for voltage_mV pwrResource - */ -static void test_pmic_powerGetPwrResourceCfgPrmValTest_voltage_mV_pwrRsrc(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - uint16_t pwrRsrc; - - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_VMON_VOLTAGE_SET_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(10655, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_POWER_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10655, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter validation for voltage_mV as 599mv - */ -static void test_pmic_powerSetPwrResourceCfgPrmValTest_voltage_mV_599mV(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_VMON_VOLTAGE_SET_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(10656, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_REGULATOR_BUCK1; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_REGULATOR_BUCK1; - } - - pPowerCfg.voltage_mV = 599U; - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10656, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter validation for voltage_mV as 1099mv - */ -static void test_pmic_powerSetPwrResourceCfgPrmValTest_voltage_mV_1099mV(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_VMON_VOLTAGE_SET_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(10657, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_REGULATOR_BUCK1; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_REGULATOR_BUCK1; - } - - pPowerCfg.voltage_mV = 1099U; - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10657, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter validation for voltage_mV as 1659mV max Value - */ -static void test_pmic_powerSetPwrResourceCfgPrmValTest_voltage_mV_1659mV(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_VMON_VOLTAGE_SET_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(10658, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_REGULATOR_BUCK1; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_REGULATOR_BUCK1; - } - - pPowerCfg.voltage_mV = 1659U; - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10658, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Negative test for ldoSlowRampEn configuration on PG1.0 Silicon Revision - */ -static void test_pmic_powerSetPwrResourceCfg_ldoSlowRampEn(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_LDO_SLOW_RAMP_EN_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(10659, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev)) - { - pmic_testResultUpdate_ignore(10659, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_REGULATOR_BUCK1; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_REGULATOR_LDO1; - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NOT_SUPPORTED, pmicStatus); - - pmic_testResultUpdate_pass(10659, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetLdoRtc : Parameter validation for handle - */ -static void test_pmic_powerSetLdoRtcPrmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool ldortcEnable = false; - - test_pmic_print_unity_testcase_info(10660, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - ldortcEnable = PMIC_TPS6594X_REGULATOR_LDORTC_ENABLE; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(10660, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_powerSetLdoRtc(NULL, ldortcEnable); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(10660, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerGetLdoRtc : Parameter validation for handle - */ -static void test_pmic_powerGetLdoRtcPrmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool ldortcEnable_rd; - - test_pmic_print_unity_testcase_info(10661, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(10661, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_powerGetLdoRtc(NULL, &ldortcEnable_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(10661, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerGetLdoRtc : Parameter validation for pLdortcEnable - */ -static void test_pmic_powerGetLdoRtcPrmValTest_pLdortcEnable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(10662, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(10662, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_powerGetLdoRtc(pPmicCoreHandle, NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10662, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter validation for min voltage level for buck - */ -static void test_pmic_powerSetPwrResourceCfgPrmValTest_buckMinVoltage(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_VMON_VOLTAGE_SET_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(10663, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_REGULATOR_BUCK2; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_REGULATOR_BUCK2; - } - - pPowerCfg.voltage_mV = 299U; - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10663, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter validation for max voltage level for buck - */ -static void test_pmic_powerSetPwrResourceCfgPrmValTest_buckMaxVoltage(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_VMON_VOLTAGE_SET_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(10664, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_REGULATOR_BUCK2; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_REGULATOR_BUCK2; - } - - pPowerCfg.voltage_mV = 3341U; - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10664, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter validation for min voltage level for ldo - */ -static void test_pmic_powerSetPwrResourceCfgPrmValTest_ldoMinVoltage(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_VMON_VOLTAGE_SET_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(10665, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_REGULATOR_LDO3; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(10665, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - pPowerCfg.voltage_mV = 599U; - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10665, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter validation for power resource type - */ -static void test_pmic_powerSetPwrResourceCfgPrmValTest_vccaMinVoltage(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_VMON_VOLTAGE_SET_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(10666, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_POWER_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - pPowerCfg.voltage_mV = 599U; - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10666, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter validation for Buck Max Value Power Resource limit - */ -static void test_pmic_powerSetPwrResourceCfgPrmValTest_buckPwrRsrcLimitMaxVal(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_BUCK_ILIM_VALID_SHIFT, - }; - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_REGULATOR_BUCK5 + 1; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_REGULATOR_BUCK4 + 1; - } - - test_pmic_print_unity_testcase_info(10667, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10667, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter validation for Buck Min Value Power Resource limit - */ -static void test_pmic_powerSetPwrResourceCfgPrmValTest_buckPwrRsrcLimitMinVal(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_BUCK_ILIM_VALID_SHIFT, - }; - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_REGULATOR_BUCK1 - 1; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_REGULATOR_BUCK1 - 1; - } - - test_pmic_print_unity_testcase_info(10668, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10668, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter validation for LDO and VMON Min Value Power Resource limit - */ -static void test_pmic_powerSetPwrResourceCfgPrmValTest_ldoVmonPwrRsrcLimitMinVal(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_VMON_EN_VALID_SHIFT, - }; - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_REGULATOR_LDO1 - 1; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_POWER_SOURCE_VMON1 - 1; - } - - test_pmic_print_unity_testcase_info(10669, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10669, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrRsrcIntr : Parameter validation for interrupt type pwrResource - */ -static void test_Pmic_powerSetPwrRsrcIntrPrmValTest_intrTypePwrRsrc(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t intrType; - bool intrEnable; - uint16_t pwrResource; - intrEnable = PMIC_POWER_INTERRUPT_DISABLE; - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_LP8764X_POWER_ILIM_INT; - pwrResource = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - intrType = PMIC_TPS6594X_POWER_ILIM_INT; - pwrResource = PMIC_TPS6594X_POWER_SOURCE_VCCA; - } - - test_pmic_print_unity_testcase_info(10670, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - pmicStatus = Pmic_powerSetPwrRsrcIntr(pPmicCoreHandle, - pwrResource, - intrType, - intrEnable); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10670, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetConfigPowerGood : Parameter validation for TDIE WARN pgoodSelType - */ -static void test_pmic_powerSetConfigPowerGoodPrmValTest_tdieWarnPgoodSelType(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pgoodSrcSel; - uint8_t pgoodSelType; - - test_pmic_print_unity_testcase_info(10671, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_TPS6594X_POWER_PGOOD_SEL_TDIE_WARN + 1; - pgoodSrcSel = PMIC_TPS6594X_PGOOD_SOURCE_TDIE; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_LP8764X_POWER_PGOOD_SEL_TDIE_WARN + 1; - pgoodSrcSel = PMIC_LP8764X_PGOOD_SOURCE_TDIE; - } - - pmicStatus = Pmic_powerSetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - pgoodSelType); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10671, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetConfigPowerGood : Parameter validation for threshold voltage and current limit pgoodSelType - */ -static void test_pmic_powerSetConfigPowerGoodPrmValTest_voltCurrentPgoodSelType(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pgoodSrcSel; - uint8_t pgoodSelType; - - test_pmic_print_unity_testcase_info(10672, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_TPS6594X_POWER_PGOOD_SEL_SRC_VOLTAGE_CURRENT + 1; - pgoodSrcSel = PMIC_TPS6594X_PGOOD_SOURCE_BUCK1; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_LP8764X_POWER_PGOOD_SEL_SRC_VOLTAGE_CURRENT + 1; - pgoodSrcSel = PMIC_LP8764X_PGOOD_SOURCE_BUCK1; - } - - pmicStatus = Pmic_powerSetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - pgoodSelType); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10672, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetConfigPowerGood : Parameter validation NRSTOUT pgoodSelType - */ -static void test_pmic_powerSetConfigPowerGoodPrmValTest_nRstOutPgoodSelType(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pgoodSrcSel; - uint8_t pgoodSelType; - - test_pmic_print_unity_testcase_info(10673, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_TPS6594X_POWER_PGOOD_SEL_NRSTOUT + 1; - pgoodSrcSel = PMIC_TPS6594X_PGOOD_SOURCE_NRSTOUT; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_LP8764X_POWER_PGOOD_SEL_NRSTOUT + 1; - pgoodSrcSel = PMIC_LP8764X_PGOOD_SOURCE_NRSTOUT; - } - - pmicStatus = Pmic_powerSetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - pgoodSelType); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10673, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetConfigPowerGood : Parameter validation for NRSTOUT_SOC pgoodSelType - */ -static void test_pmic_powerSetConfigPowerGoodPrmValTest_nRstOutSocPgoodSelType(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pgoodSrcSel; - uint8_t pgoodSelType; - - test_pmic_print_unity_testcase_info(10674, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_TPS6594X_POWER_PGOOD_SEL_NRSTOUT_SOC + 1; - pgoodSrcSel = PMIC_TPS6594X_PGOOD_SOURCE_NRSTOUT_SOC; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_LP8764X_POWER_PGOOD_SEL_NRSTOUT_SOC + 1; - pgoodSrcSel = PMIC_LP8764X_PGOOD_SOURCE_NRSTOUT_SOC; - } - - pmicStatus = Pmic_powerSetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - pgoodSelType); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10674, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetConfigPowerGood : Parameter validation for VCCA/VMON Enable pgoodSelType - */ -static void test_pmic_powerSetConfigPowerGoodPrmValTest_vccaVmonPgoodSelType(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pgoodSrcSel; - uint8_t pgoodSelType; - - test_pmic_print_unity_testcase_info(10675, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_TPS6594X_POWER_PGOOD_SEL_VCCA_ENABLE + 1; - pgoodSrcSel = PMIC_TPS6594X_PGOOD_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_LP8764X_POWER_PGOOD_SEL_VCCA_VMON_ENABLE + 1; - pgoodSrcSel = PMIC_LP8764X_PGOOD_SOURCE_VCCA; - } - - pmicStatus = Pmic_powerSetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - pgoodSelType); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10675, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerGetLdoRtc : Negative test to get pLdortcEnable configuration on HERA - */ -static void test_pmic_powerGetLdoRtc_pLdortcEnable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool ldortcEnable_rd; - - test_pmic_print_unity_testcase_info(10676, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(10676, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_powerGetLdoRtc(pPmicCoreHandle, &ldortcEnable_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10676, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetConfigPowerGood : Parameter validation for Buck power good source max value - */ -static void test_pmic_powerSetConfigPowerGoodPrmValTest_buckPgoodSrcMaxVal(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pgoodSrcSel; - uint8_t pgoodSelType; - - test_pmic_print_unity_testcase_info(10677, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_TPS6594X_POWER_PGOOD_SEL_SRC_MASKED; - pgoodSrcSel = PMIC_TPS6594X_PGOOD_SOURCE_BUCK5 + 1; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_LP8764X_POWER_PGOOD_SEL_SRC_MASKED; - pgoodSrcSel = PMIC_LP8764X_PGOOD_SOURCE_BUCK4 + 1; - } - - pmicStatus = Pmic_powerSetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - pgoodSelType); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10677, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetConfigPowerGood : Parameter validation for Buck power good source min value - */ -static void test_pmic_powerSetConfigPowerGoodPrmValTest_buckPgoodSrcMinVal(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pgoodSrcSel; - uint8_t pgoodSelType; - - test_pmic_print_unity_testcase_info(10678, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_TPS6594X_POWER_PGOOD_SEL_SRC_MASKED; - pgoodSrcSel = PMIC_TPS6594X_PGOOD_SOURCE_BUCK1 - 1; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_LP8764X_POWER_PGOOD_SEL_SRC_MASKED; - pgoodSrcSel = PMIC_LP8764X_PGOOD_SOURCE_BUCK1 - 1; - } - - pmicStatus = Pmic_powerSetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - pgoodSelType); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10678, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetConfigPowerGood : Parameter validation for VMON power good source max value - */ -static void test_pmic_powerSetConfigPowerGoodPrmValTest_vmonPgoodSrcMaxVal(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pgoodSrcSel; - uint8_t pgoodSelType; - - test_pmic_print_unity_testcase_info(10679, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - /* VMON1 and VMON2 are not present in LEO pmic */ - pmic_testResultUpdate_ignore(10679, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - pgoodSelType = PMIC_LP8764X_POWER_PGOOD_SEL_VCCA_VMON_ENABLE; - pgoodSrcSel = PMIC_LP8764X_PGOOD_SOURCE_VMON2 + 1; - - pmicStatus = Pmic_powerSetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - pgoodSelType); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10679, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetConfigPowerGood : Parameter validation for VMON power good source min value - */ -static void test_pmic_powerSetConfigPowerGoodPrmValTest_vmonPgoodSrcMinVal(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pgoodSrcSel; - uint8_t pgoodSelType; - - test_pmic_print_unity_testcase_info(10680, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - /* VMON1 and VMON2 are not present in LEO pmic */ - pmic_testResultUpdate_ignore(10680, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - pgoodSelType = PMIC_LP8764X_POWER_PGOOD_SEL_VCCA_VMON_ENABLE; - pgoodSrcSel = PMIC_LP8764X_PGOOD_SOURCE_VMON1 - 1; - - pmicStatus = Pmic_powerSetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - pgoodSelType); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10680, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetConfigPowerGood : Parameter validation for LDO power good source max value - */ -static void test_pmic_powerSetConfigPowerGoodPrmValTest_ldoPgoodSrcMaxVal(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pgoodSrcSel; - uint8_t pgoodSelType; - - test_pmic_print_unity_testcase_info(10681, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(10681, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - pgoodSelType = PMIC_TPS6594X_POWER_PGOOD_SEL_SRC_MASKED; - pgoodSrcSel = PMIC_TPS6594X_PGOOD_SOURCE_LDO4 + 1; - - pmicStatus = Pmic_powerSetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - pgoodSelType); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10681, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetConfigPowerGood : Parameter validation for LDO power good source min value - */ -static void test_pmic_powerSetConfigPowerGoodPrmValTest_ldoPgoodSrcMinVal(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pgoodSrcSel; - uint8_t pgoodSelType; - - test_pmic_print_unity_testcase_info(10682, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(10682, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - pgoodSelType = PMIC_TPS6594X_POWER_PGOOD_SEL_SRC_MASKED; - pgoodSrcSel = PMIC_TPS6594X_PGOOD_SOURCE_LDO1 - 1; - - pmicStatus = Pmic_powerSetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - pgoodSelType); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10682, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetConfigPowerGood : Parameter validation for NRSTOUT power good source - */ -static void test_pmic_powerSetConfigPowerGoodPrmValTest_nRstOutPgoodSrc(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pgoodSrcSel; - uint8_t pgoodSelType; - - test_pmic_print_unity_testcase_info(10683, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_LP8764X_POWER_PGOOD_SEL_NRSTOUT; - pgoodSrcSel = 0x204U; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_TPS6594X_POWER_PGOOD_SEL_NRSTOUT; - pgoodSrcSel = 0x205U; - } - - pmicStatus = Pmic_powerSetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - pgoodSelType); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10683, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetConfigPowerGood : Parameter validation for NRSTOUT_SOC power good source - */ -static void test_pmic_powerSetConfigPowerGoodPrmValTest_nRstOutSocPgoodSrc(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pgoodSrcSel; - uint8_t pgoodSelType; - - test_pmic_print_unity_testcase_info(10684, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_LP8764X_POWER_PGOOD_SEL_NRSTOUT_SOC_MASKED; - pgoodSrcSel = 0x305U; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_TPS6594X_POWER_PGOOD_SEL_NRSTOUT_SOC_MASKED; - pgoodSrcSel = 0x306U; - } - - pmicStatus = Pmic_powerSetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - pgoodSelType); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10684, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetConfigPowerGood : Parameter validation for TDIE_WARN power good source - */ -static void test_pmic_powerSetConfigPowerGoodPrmValTest_tdieWarnPgoodSrc(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pgoodSrcSel; - uint8_t pgoodSelType; - - test_pmic_print_unity_testcase_info(10685, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_LP8764X_POWER_PGOOD_SEL_TDIE_WARN; - pgoodSrcSel = 0x406U; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_TPS6594X_POWER_PGOOD_SEL_TDIE_WARN; - pgoodSrcSel = 0x407U; - } - - pmicStatus = Pmic_powerSetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - pgoodSelType); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10685, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetConfigPowerGood : Parameter validation for VCCA power good source - */ -static void test_pmic_powerSetConfigPowerGoodPrmValTest_vccaPgoodSrc(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pgoodSrcSel; - uint8_t pgoodSelType; - - test_pmic_print_unity_testcase_info(10686, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_LP8764X_POWER_PGOOD_SEL_VCCA_VMON_ENABLE; - pgoodSrcSel = 0x1U; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_TPS6594X_POWER_PGOOD_SEL_VCCA_ENABLE; - pgoodSrcSel = 0x1U; - } - - pmicStatus = Pmic_powerSetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - pgoodSelType); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10686, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetConfigPowerGood : Parameter validation for power good source - */ -static void test_pmic_powerSetConfigPowerGoodPrmValTest_pgoodSrcType(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pgoodSrcSel; - uint8_t pgoodSelType; - - test_pmic_print_unity_testcase_info(10687, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_LP8764X_POWER_PGOOD_SEL_VCCA_VMON_ENABLE; - pgoodSrcSel = 0x507U; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSelType = PMIC_TPS6594X_POWER_PGOOD_SEL_SRC_MASKED; - pgoodSrcSel = 0x607U; - } - - pmicStatus = Pmic_powerSetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - pgoodSelType); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10687, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter validation for power resource - */ -static void test_pmic_powerSetPwrResourceCfgPrmValTest_rvCheckEnPwrRsrc(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_VMON_RV_SEL_VALID_SHIFT, - }; - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = 0x406U; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = 0x406U; - } - - test_pmic_print_unity_testcase_info(10688, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10688, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test to set vmonRange as - * PMIC_LP8764X_VMON_RANGE_3V35_5V and voltage_mV as 3350mV - */ -static void test_pmic_powerSetPwrResourceCfg_vmonRange(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_VMON_RANGE_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_VMON_RANGE_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(10689, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.vmonRange = PMIC_LP8764X_VMON_RANGE_3V35_5V; - pwrRsrc = PMIC_LP8764X_POWER_SOURCE_VMON2; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - /* VMON1 and VMON2 are not present in LEO pmic */ - pmic_testResultUpdate_ignore(10689, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.vmonRange, powerCfg_rd.vmonRange); - - powerCfg_rd.validParams = PMIC_CFG_REGULATOR_VMON_VOLTAGE_SET_VALID_SHIFT; - - pPowerCfg.validParams = PMIC_CFG_REGULATOR_VMON_VOLTAGE_SET_VALID_SHIFT; - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_POWER_SOURCE_VMON2; - pPowerCfg.voltage_mV = 3350U; - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(10689, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter validation for vmonRange as - * PMIC_LP8764X_VMON_RANGE_0V3_3V34 and voltage_mV as 299mV minVal - */ -static void test_pmic_powerSetPwrResourceCfgPrmValTest_vmonRangeVoltage_mV_299mV(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_VMON_RANGE_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_VMON_RANGE_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(10690, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.vmonRange = PMIC_LP8764X_VMON_RANGE_0V3_3V34; - pwrRsrc = PMIC_LP8764X_POWER_SOURCE_VMON2; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - /* VMON1 and VMON2 are not present in LEO pmic */ - pmic_testResultUpdate_ignore(10690, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.vmonRange, powerCfg_rd.vmonRange); - - powerCfg_rd.validParams = PMIC_CFG_REGULATOR_VMON_VOLTAGE_SET_VALID_SHIFT; - - pPowerCfg.validParams = PMIC_CFG_REGULATOR_VMON_VOLTAGE_SET_VALID_SHIFT; - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_POWER_SOURCE_VMON2; - pPowerCfg.voltage_mV = 299U; - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - - pmic_testResultUpdate_pass(10690, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter validation for voltage_mV - * when vmonRange as PMIC_LP8764X_VMON_RANGE_0V3_3V34 and voltage_mV - * as 3341 mV max Val - */ -static void test_pmic_powerSetPwrResourceCfgPrmValTest_vmonRangeVoltage_mV_3341mV(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_VMON_RANGE_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_VMON_RANGE_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(10691, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.vmonRange = PMIC_LP8764X_VMON_RANGE_0V3_3V34; - pwrRsrc = PMIC_LP8764X_POWER_SOURCE_VMON2; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - /* VMON1 and VMON2 are not present in LEO pmic */ - pmic_testResultUpdate_ignore(10691, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.vmonRange, powerCfg_rd.vmonRange); - - powerCfg_rd.validParams = PMIC_CFG_REGULATOR_VMON_VOLTAGE_SET_VALID_SHIFT; - - pPowerCfg.validParams = PMIC_CFG_REGULATOR_VMON_VOLTAGE_SET_VALID_SHIFT; - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_POWER_SOURCE_VMON2; - pPowerCfg.voltage_mV = 3341U; - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - - pmic_testResultUpdate_pass(10691, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter validation for voltage_mV - * when vmonRange as PMIC_LP8764X_VMON_RANGE_3V35_5V and voltage_mV - * as 3349 mV max Val - */ -static void test_pmic_powerSetPwrResourceCfgPrmValTest_vmonRangeVoltage_mV_3349mV(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_VMON_RANGE_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_VMON_RANGE_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(10692, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.vmonRange = PMIC_LP8764X_VMON_RANGE_3V35_5V; - pwrRsrc = PMIC_LP8764X_POWER_SOURCE_VMON2; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - /* VMON1 and VMON2 are not present in LEO pmic */ - pmic_testResultUpdate_ignore(10692, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.vmonRange, powerCfg_rd.vmonRange); - - powerCfg_rd.validParams = PMIC_CFG_REGULATOR_VMON_VOLTAGE_SET_VALID_SHIFT; - - pPowerCfg.validParams = PMIC_CFG_REGULATOR_VMON_VOLTAGE_SET_VALID_SHIFT; - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_POWER_SOURCE_VMON2; - pPowerCfg.voltage_mV = 3349U; - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - - pmic_testResultUpdate_pass(10692, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter validation for voltage_mV - * when vmonRange as PMIC_LP8764X_VMON_RANGE_3V35_5V and voltage_mV - * as 5001 mV max Val - */ -static void test_pmic_powerSetPwrResourceCfgPrmValTest_vmonRangeVoltage_mV_5001mV(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_VMON_RANGE_VALID_SHIFT, - }; - uint16_t pwrRsrc = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_VMON_RANGE_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(10693, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.vmonRange = PMIC_LP8764X_VMON_RANGE_3V35_5V; - pwrRsrc = PMIC_LP8764X_POWER_SOURCE_VMON2; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - /* VMON1 and VMON2 are not present in LEO pmic */ - pmic_testResultUpdate_ignore(10693, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.vmonRange, powerCfg_rd.vmonRange); - - powerCfg_rd.validParams = PMIC_CFG_REGULATOR_VMON_VOLTAGE_SET_VALID_SHIFT; - - pPowerCfg.validParams = PMIC_CFG_REGULATOR_VMON_VOLTAGE_SET_VALID_SHIFT; - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_POWER_SOURCE_VMON2; - pPowerCfg.voltage_mV = 5001U; - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - - pmic_testResultUpdate_pass(10693, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter validation for vccaPwrGudLvl power resource - */ -static void test_pmic_powerSetPwrResourceCfgPrmValTest_vccaPwrGudLvlPwrRsrc(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_VCCA_PWR_GOOD_LVL_VALID_SHIFT, - }; - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = 0x1U; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = 0x1U; - } - - test_pmic_print_unity_testcase_info(10694, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10694, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerGetPwrResourceCfg : Negative for ldoSlowRampEn configuration on PG1.0 Silicon Revision - */ -static void test_pmic_powerGetPwrResourceCfg_ldoSlowRampEn(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrRsrc; - - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_LDO_SLOW_RAMP_EN_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(10695, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev)) - { - pmic_testResultUpdate_ignore(10695, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_LP8764X_REGULATOR_BUCK1; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrc = PMIC_TPS6594X_REGULATOR_LDO1; - } - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NOT_SUPPORTED, pmicStatus); - - pmic_testResultUpdate_pass(10695, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Parameter range validation for voltage_mV as (min value+1) - */ -static void test_pmic_powerSetPowerResourceConfigPrmRangeTest_voltage_mV(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - uint16_t pwrRsrc = 0U, pwrRsrcMin = 0U, pwrRsrcMax = 0U; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_VMON_VOLTAGE_SET_VALID_SHIFT, - }; - - test_pmic_print_unity_testcase_info(10696, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - pPowerCfg.voltage_mV = PMIC_UT_TPS6594X_REGULATOR_BUCK_MIN_VOLTAGE + 1; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - pPowerCfg.voltage_mV = PMIC_UT_LP8764X_REGULATOR_BUCK_MIN_VOLTAGE + 1; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_LDO1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_LDO4; - pPowerCfg.voltage_mV = PMIC_UT_TPS6594X_POWER_LDO1_2_3_MIN_VOLTAGE + 1; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - if(pwrRsrc == PMIC_TPS6594X_REGULATOR_LDO4) - { - pPowerCfg.voltage_mV = PMIC_UT_TPS6594X_POWER_LDO4_MIN_VOLTAGE + 1; - } - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - } - - pmic_testResultUpdate_pass(10696, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - -/*! - * \brief Added for Coverage - */ -static void test_pmic_power_coverageGaps(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint16_t pwrResource; - uint8_t pPgoodSelType_rd; - uint16_t pgoodSrcSel; - bool ldortcEnable = false, ldortcEnable_rd = false; - Pmic_PowerResourceStat_t pPwrRsrcStatCfg = - { - PMIC_POWER_RESOURCE_UV_STAT_VALID_SHIFT, - }; - Pmic_PowerCommonCfg_t pwrCommonCfg_rd = - { - PMIC_SEVERE_ERR_TRIG_VALID_SHIFT, - }; - Pmic_PowerCommonCfg_t pwrCommonCfg = - { - PMIC_MODERATE_ERR_TRIG_VALID_SHIFT, - }; - Pmic_PowerResourceCfg_t powerRsrcCfg_rd = - { - PMIC_CFG_REGULATOR_LDO_BYPASS_MODE_EN_VALID_SHIFT, - }; - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_VCCA_PWR_GOOD_LVL_VALID_SHIFT, - }; - Pmic_PowerThermalCfg_t thermalThreshold_rd = - { - PMIC_THERMAL_SHTDWN_VALID_SHIFT, - }; - Pmic_PowerThermalCfg_t thermalThreshold = - { - PMIC_THERMAL_SHTDWN_VALID_SHIFT, - }; - Pmic_PowerThermalStat_t pPwrThermalStatCfg = - { - PMIC_THERMAL_STAT_IMM_SHTDWN_VALID_SHIFT, - }; - int32_t crcTestFlag = PMIC_STATUS_CRC_INIT_VAL; - -#if defined(SOC_J721E) - crcTestFlag = gCrcTestFlag_J721E; -#endif - -#if defined(SOC_J7200) - crcTestFlag = gCrcTestFlag_J7VCL; -#endif - - test_pmic_print_unity_testcase_info(10697, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); - - gPmic_faultInjectCfg.enableFaultInjectionRead = 1U; - - //Pmic_powerGetUvOvVccaVoltageStat - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pPwrRsrcStatCfg.validParams = PMIC_POWER_RESOURCE_UV_STAT_VALID_SHIFT; - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_TPS6594X_REGULATOR_BUCK1; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_LP8764X_REGULATOR_BUCK1; - } - pmicStatus = Pmic_powerGetPwrRsrcStat(pPmicCoreHandle, - pwrResource, - &pPwrRsrcStatCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerGetOverVoltageTholdStat - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pPwrRsrcStatCfg.validParams = PMIC_POWER_RESOURCE_OV_STAT_VALID_SHIFT; - pmicStatus = Pmic_powerGetPwrRsrcStat(pPmicCoreHandle, - pwrResource, - &pPwrRsrcStatCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - - //Pmic_powerGetUnderVoltageTholdStat - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pPwrRsrcStatCfg.validParams = PMIC_POWER_RESOURCE_UV_STAT_VALID_SHIFT; - pmicStatus = Pmic_powerGetPwrRsrcStat(pPmicCoreHandle, - pwrResource, - &pPwrRsrcStatCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerGetCurrentLimitLvlStat - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pPwrRsrcStatCfg.validParams = PMIC_POWER_REGULATOR_ILIM_STAT_VALID_SHIFT; - pmicStatus = Pmic_powerGetPwrRsrcStat(pPmicCoreHandle, - pwrResource, - &pPwrRsrcStatCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerGetOverVoltageProtectionLvlStat - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pPwrRsrcStatCfg.validParams = PMIC_POWER_VCCA_OV_LVL_STAT_VALID_SHIFT; - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_TPS6594X_POWER_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - pmicStatus = Pmic_powerGetPwrRsrcStat(pPmicCoreHandle, - pwrResource, - &pPwrRsrcStatCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - - //Pmic_powerGetTriggerSelCfg - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pwrCommonCfg_rd.validParams = PMIC_SEVERE_ERR_TRIG_VALID_SHIFT; - pmicStatus = Pmic_powerGetCommonConfig(pPmicCoreHandle, &pwrCommonCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - //Pmic_powerSetLdoRvTimeoutSel - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pwrResource = PMIC_TPS6594X_REGULATOR_LDO1; - pPowerCfg.ldoRvTimeoutSel = PMIC_TPS6594X_REGULATOR_LDO_RV_TIMEOUT_16MS; - pPowerCfg.validParams = PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID_SHIFT; - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrResource, - pPowerCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerSetLdoBypassModeEn - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pwrResource = PMIC_TPS6594X_REGULATOR_LDO1; - pPowerCfg.ldoBypassModeEn = PMIC_TPS6594X_REGULATOR_LDO_LINEAR_REGULATOR_MODE; - pPowerCfg.validParams = PMIC_CFG_REGULATOR_LDO_BYPASS_MODE_EN_VALID_SHIFT; - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrResource, - pPowerCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerGetLdobypassLdorvtoselRailgrpselVoltagemvCfg - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - powerRsrcCfg_rd.validParams = PMIC_CFG_REGULATOR_LDO_BYPASS_MODE_EN_VALID_SHIFT; - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrResource, - &powerRsrcCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerGetLdoRvTimeoutSel - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - powerRsrcCfg_rd.validParams = PMIC_CFG_REGULATOR_LDO_RV_TIMEOUT_SEL_VALID_SHIFT; - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrResource, - &powerRsrcCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerSetRegulatorEn - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pPowerCfg.validParams = PMIC_CFG_REGULATOR_EN_VALID_SHIFT; - pPowerCfg.regulatorEn = PMIC_TPS6594X_REGULATOR_ENABLE; - pwrResource = PMIC_TPS6594X_REGULATOR_LDO1; - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, pwrResource, pPowerCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerGetRegulatorEn - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - powerRsrcCfg_rd.validParams = PMIC_CFG_REGULATOR_EN_VALID_SHIFT; - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrResource, - &powerRsrcCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerSetLdoPullDownSel - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pPowerCfg.validParams = PMIC_CFG_REGULATOR_LDO_PLDN_SEL_VALID_SHIFT; - pPowerCfg.ldoPullDownSel = PMIC_TPS6594X_REGULATOR_LDO_PLDN_VAL_500OHM; - pwrResource = PMIC_TPS6594X_REGULATOR_LDO1; - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, pwrResource, pPowerCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerGetLdoPullDownSel - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - powerRsrcCfg_rd.validParams = PMIC_CFG_REGULATOR_LDO_PLDN_SEL_VALID_SHIFT; - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrResource, - &powerRsrcCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerLdoRtcEnable - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - ldortcEnable = PMIC_TPS6594X_REGULATOR_LDORTC_ENABLE; - } - pmicStatus = Pmic_powerSetLdoRtc(pPmicCoreHandle, ldortcEnable); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerGetLdoRtcEnable - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pmicStatus = Pmic_powerGetLdoRtc(pPmicCoreHandle, &ldortcEnable_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - } - - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev)) - { - //Pmic_powerSetLdoSlowRampEn - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pPowerCfg.validParams = PMIC_CFG_REGULATOR_LDO_SLOW_RAMP_EN_VALID_SHIFT; - pPowerCfg.ldoSlowRampEn = PMIC_TPS6594X_REGULATOR_LDO_SLOW_RAMP_DISABLE; - pwrResource = PMIC_TPS6594X_REGULATOR_LDO1; - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, pwrResource, pPowerCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerGetLdoSlowRampEn - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - powerRsrcCfg_rd.validParams = PMIC_CFG_REGULATOR_LDO_SLOW_RAMP_EN_VALID_SHIFT; - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrResource, - &powerRsrcCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - //Pmic_powerSetVmonRange - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pPowerCfg.validParams = PMIC_CFG_VMON_RANGE_VALID_SHIFT; - pPowerCfg.vmonRange = PMIC_LP8764X_VMON_RANGE_3V35_5V; - pwrResource = PMIC_LP8764X_POWER_SOURCE_VMON1; - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, pwrResource, pPowerCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerGetVmonRange - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - powerRsrcCfg_rd.validParams = PMIC_CFG_VMON_RANGE_VALID_SHIFT; - pwrResource = PMIC_LP8764X_POWER_SOURCE_VMON1; - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrResource, - &powerRsrcCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerLP8764xConvertVoltage2VSetVal - pPowerCfg.validParams = PMIC_CFG_VMON_RANGE_VALID_SHIFT; - pPowerCfg.vmonRange = PMIC_LP8764X_VMON_RANGE_0V3_3V34; - pwrResource = PMIC_LP8764X_POWER_SOURCE_VMON1; - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrResource, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 2; - pPowerCfg.validParams = PMIC_CFG_REGULATOR_VMON_VOLTAGE_SET_VALID_SHIFT; - pPowerCfg.voltage_mV = 600U; - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, pwrResource, pPowerCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerLP8764xValidateVoltageLevel - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pPowerCfg.validParams = PMIC_CFG_REGULATOR_VMON_VOLTAGE_SET_VALID_SHIFT; - pPowerCfg.voltage_mV = 3351U; - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, pwrResource, pPowerCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerLP8764xConvertVSetVal2Voltage - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 2; - powerRsrcCfg_rd.validParams = PMIC_CFG_REGULATOR_VMON_VOLTAGE_SET_VALID_SHIFT; - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrResource, - &powerRsrcCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - } - - //Pmic_getThermalWarnThold - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - thermalThreshold_rd.validParams = PMIC_THERMAL_WARN_VALID_SHIFT; - pmicStatus = Pmic_powerGetThermalConfig(pPmicCoreHandle, &thermalThreshold_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_setThermalWarnThold - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - thermalThreshold.validParams = PMIC_THERMAL_WARN_VALID_SHIFT; - - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType)&& - (PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev)) - { - thermalThreshold.thermalWarnThold = PMIC_TPS6594X_PG_2_0_THERMAL_TEMP_WARN_140C; - } - - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType)&& - (PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev)) - { - thermalThreshold.thermalWarnThold = PMIC_TPS6594X_THERMAL_TEMP_WARN_130C; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - thermalThreshold.thermalWarnThold = PMIC_LP8764X_THERMAL_TEMP_WARN_130C; - } - - pmicStatus = Pmic_powerSetThermalConfig(pPmicCoreHandle, thermalThreshold); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_getImmediateShutdownStat - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pPwrThermalStatCfg.validParams = PMIC_THERMAL_STAT_IMM_SHTDWN_VALID_SHIFT; - pmicStatus = Pmic_powerGetPwrThermalStat(pPmicCoreHandle, &pPwrThermalStatCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_getOderlyShutdownStat - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pPwrThermalStatCfg.validParams = PMIC_THERMAL_STAT_ORD_SHTDWN_VALID_SHIFT; - pmicStatus = Pmic_powerGetPwrThermalStat(pPmicCoreHandle, &pPwrThermalStatCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_getThermalWarnStat - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pPwrThermalStatCfg.validParams = PMIC_THERMAL_STAT_WARN_VALID_SHIFT; - pmicStatus = Pmic_powerGetPwrThermalStat(pPmicCoreHandle, &pPwrThermalStatCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerSetModerateRailTrig - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pwrCommonCfg.validParams = PMIC_MODERATE_ERR_TRIG_VALID_SHIFT; - pwrCommonCfg.moderateRailTrig = PMIC_POWER_TRIG_SOC_PWR_ERR; - pmicStatus = Pmic_powerSetCommonConfig(pPmicCoreHandle, pwrCommonCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerSetMcuRailTrig - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pwrCommonCfg.validParams = PMIC_MCU_RAIL_TRIG_VALID_SHIFT; - pwrCommonCfg.mcuRailTrig = PMIC_POWER_TRIG_SOC_PWR_ERR; - pmicStatus = Pmic_powerSetCommonConfig(pPmicCoreHandle, pwrCommonCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerSetSocRailTrig - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pwrCommonCfg.validParams = PMIC_SOC_RAIL_TRIG_VALID_SHIFT; - pwrCommonCfg.socRailTrig = PMIC_POWER_TRIG_SOC_PWR_ERR; - pmicStatus = Pmic_powerSetCommonConfig(pPmicCoreHandle, pwrCommonCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerSetOtherRailTrig - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pwrCommonCfg.validParams = PMIC_OTHER_RAIL_TRIG_VALID_SHIFT; - pwrCommonCfg.otherRailTrig = PMIC_POWER_TRIG_SOC_PWR_ERR; - pmicStatus = Pmic_powerSetCommonConfig(pPmicCoreHandle, pwrCommonCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerSetSevereErrorTrig - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pwrCommonCfg.validParams = PMIC_SEVERE_ERR_TRIG_VALID_SHIFT; - pwrCommonCfg.severeErrorTrig = PMIC_POWER_TRIG_SOC_PWR_ERR; - pmicStatus = Pmic_powerSetCommonConfig(pPmicCoreHandle, pwrCommonCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerGetModerateRailTrig - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pwrCommonCfg_rd.validParams = PMIC_MODERATE_ERR_TRIG_VALID_SHIFT; - pmicStatus = Pmic_powerGetCommonConfig(pPmicCoreHandle, &pwrCommonCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerGetMcuRailTrig - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pwrCommonCfg_rd.validParams = PMIC_MCU_RAIL_TRIG_VALID_SHIFT; - pmicStatus = Pmic_powerGetCommonConfig(pPmicCoreHandle, &pwrCommonCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerGetSocRailTrig - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pwrCommonCfg_rd.validParams = PMIC_SOC_RAIL_TRIG_VALID_SHIFT; - pmicStatus = Pmic_powerGetCommonConfig(pPmicCoreHandle, &pwrCommonCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerGetOtherRailTrig - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pwrCommonCfg_rd.validParams = PMIC_OTHER_RAIL_TRIG_VALID_SHIFT; - pmicStatus = Pmic_powerGetCommonConfig(pPmicCoreHandle, &pwrCommonCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerSetPgoodPolarity - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pwrCommonCfg.validParams = PMIC_POWER_PGOOD_POL_VALID_SHIFT; - pwrCommonCfg.pgoodPolarity = PMIC_POWER_PGOOD_POL_HIGH; - pmicStatus = Pmic_powerSetCommonConfig(pPmicCoreHandle, pwrCommonCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerGetPgoodPolarity - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pwrCommonCfg_rd.validParams = PMIC_POWER_PGOOD_POL_VALID_SHIFT; - pmicStatus = Pmic_powerGetCommonConfig(pPmicCoreHandle, &pwrCommonCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerSetPgoodWindow - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pwrCommonCfg.validParams = PMIC_POWER_PGOOD_WINDOW_VALID_SHIFT; - pwrCommonCfg.pgoodWindow = PMIC_POWER_GOOD_UV_OV_MONITOR_ENABLE; - pmicStatus = Pmic_powerSetCommonConfig(pPmicCoreHandle, pwrCommonCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerGetVoltageMonitoringPg - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pwrCommonCfg_rd.validParams = PMIC_POWER_PGOOD_WINDOW_VALID_SHIFT; - pmicStatus = Pmic_powerGetCommonConfig(pPmicCoreHandle, &pwrCommonCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerSetVccaPwrGudLvl - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.vccaPwrGudLvl = PMIC_TPS6594X_VCCA_PG_3V3_LEVEL; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.vccaPwrGudLvl = PMIC_LP8764X_VCCA_PG_3V3_LEVEL; - } - pwrResource = 0U; - pPowerCfg.validParams = PMIC_CFG_VCCA_PWR_GOOD_LVL_VALID_SHIFT; - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, pwrResource, pPowerCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerGetVccaPwrGudLvl - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - powerRsrcCfg_rd.validParams = PMIC_CFG_VCCA_PWR_GOOD_LVL_VALID_SHIFT; - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrResource, - &powerRsrcCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_setPwrRsrcPgoodRegBitfieldCfg - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 2; - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckVoutSel = PMIC_TPS6594X_REGULATOR_BUCK_VOUT_SEL_VOUT1; - pwrResource = PMIC_TPS6594X_REGULATOR_BUCK1; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckVoutSel = PMIC_LP8764X_REGULATOR_BUCK_VOUT_SEL_VOUT1; - pwrResource = PMIC_LP8764X_REGULATOR_BUCK1; - } - - pPowerCfg.validParams = PMIC_CFG_REGULATOR_VMON_VOLTAGE_SET_VALID_SHIFT; - pPowerCfg.voltage_mV = 600U; - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, pwrResource, pPowerCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerSetRvCheckEn - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_TPS6594X_REGULATOR_BUCK1; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_LP8764X_REGULATOR_BUCK1; - } - - pPowerCfg.validParams = PMIC_CFG_REGULATOR_VMON_RV_SEL_VALID_SHIFT; - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, pwrResource, pPowerCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerGetRvCheckEn - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - powerRsrcCfg_rd.validParams = PMIC_CFG_REGULATOR_VMON_RV_SEL_VALID_SHIFT; - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrResource, - &powerRsrcCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerSetBuckVoutSel - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pPowerCfg.validParams = PMIC_CFG_REGULATOR_BUCK_VOUT_SEL_VALID_SHIFT; - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckVoutSel = PMIC_TPS6594X_REGULATOR_BUCK_VOUT_SEL_VOUT2; - pwrResource = PMIC_TPS6594X_REGULATOR_BUCK1; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckVoutSel = PMIC_LP8764X_REGULATOR_BUCK_VOUT_SEL_VOUT2; - pwrResource = PMIC_LP8764X_REGULATOR_BUCK1; - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, pwrResource, pPowerCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerGetBuckVoutSel - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - powerRsrcCfg_rd.validParams = PMIC_CFG_REGULATOR_BUCK_VOUT_SEL_VALID_SHIFT; - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrResource, - &powerRsrcCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - - //Pmic_powerSetBuckFpwmMode - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pPowerCfg.validParams = PMIC_CFG_REGULATOR_BUCK_FPWM_VALID_SHIFT; - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckFpwmMode = PMIC_TPS6594X_REGULATOR_PWM_MODE; - pwrResource = PMIC_TPS6594X_REGULATOR_BUCK1; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckFpwmMode = PMIC_LP8764X_REGULATOR_PWM_MODE; - pwrResource = PMIC_LP8764X_REGULATOR_BUCK1; - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, pwrResource, pPowerCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerGetBuckFpwmMode - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - powerRsrcCfg_rd.validParams = PMIC_CFG_REGULATOR_BUCK_FPWM_VALID_SHIFT; - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrResource, - &powerRsrcCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerSetBuckFpwmMpMode - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pPowerCfg.validParams = PMIC_CFG_REGULATOR_BUCK_PWM_MP_VALID_SHIFT; - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckFpwmMpMode = PMIC_TPS6594X_REGULATOR_AUTO_PHASE_MODE; - pwrResource = PMIC_TPS6594X_REGULATOR_BUCK1; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckFpwmMpMode = PMIC_LP8764X_REGULATOR_AUTO_PHASE_MODE; - pwrResource = PMIC_LP8764X_REGULATOR_BUCK1; - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, pwrResource, pPowerCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - - //Pmic_powerGetBuckPwmMpMode - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - powerRsrcCfg_rd.validParams = PMIC_CFG_REGULATOR_BUCK_PWM_MP_VALID_SHIFT; - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrResource, - &powerRsrcCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerSetLowThreshold - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pPowerCfg.validParams = PMIC_CFG_PWR_RESOURCE_PG_UV_THRESHOLD_LVL_VALID_SHIFT; - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.pgUvThresholdLvl = PMIC_LP8764X_PG_OV_UV_THRESHOLD_LVL_30_OR_3; - pwrResource = PMIC_LP8764X_REGULATOR_BUCK1; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.pgUvThresholdLvl = PMIC_TPS6594X_PG_OV_UV_THRESHOLD_LVL_30_OR_3; - pwrResource = PMIC_TPS6594X_REGULATOR_BUCK1; - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, pwrResource, pPowerCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerGetLowThreshold - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - powerRsrcCfg_rd.validParams = PMIC_CFG_PWR_RESOURCE_PG_UV_THRESHOLD_LVL_VALID_SHIFT; - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrResource, - &powerRsrcCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerSetHighThreshold - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pPowerCfg.validParams = PMIC_CFG_PWR_RESOURCE_PG_OV_THRESHOLD_LVL_VALID_SHIFT; - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.pgUvThresholdLvl = PMIC_LP8764X_PG_OV_UV_THRESHOLD_LVL_30_OR_3; - pwrResource = PMIC_LP8764X_REGULATOR_BUCK1; - } - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.pgUvThresholdLvl = PMIC_TPS6594X_PG_OV_UV_THRESHOLD_LVL_30_OR_3; - pwrResource = PMIC_TPS6594X_REGULATOR_BUCK1; - } - - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, pwrResource, pPowerCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerGetHighThreshold - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - powerRsrcCfg_rd.validParams = PMIC_CFG_PWR_RESOURCE_PG_OV_THRESHOLD_LVL_VALID_SHIFT; - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrResource, - &powerRsrcCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerGetBuckVoutRegAddr - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - powerRsrcCfg_rd.validParams = PMIC_CFG_REGULATOR_VMON_VOLTAGE_SET_VALID_SHIFT; - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrResource, - &powerRsrcCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerSetRailGrpSel - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pPowerCfg.validParams = PMIC_CFG_PWR_RESOURCE_RAIL_GRP_SEL_VALID_SHIFT; - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.railGrpSel = PMIC_TPS6594X_POWER_RAIL_SEL_OTHER; - pwrResource = PMIC_TPS6594X_POWER_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.railGrpSel = PMIC_LP8764X_POWER_RAIL_SEL_OTHER; - pwrResource = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, pwrResource, pPowerCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerGetRailGrpSel - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - powerRsrcCfg_rd.validParams = PMIC_CFG_PWR_RESOURCE_RAIL_GRP_SEL_VALID_SHIFT; - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrResource, - &powerRsrcCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerSetVmonEn - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.vmonEn = PMIC_TPS6594X_VMON_DISABLE; - pwrResource = PMIC_TPS6594X_POWER_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.vmonEn = PMIC_LP8764X_VMON_DISABLE; - pwrResource = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - pPowerCfg.validParams = PMIC_CFG_VMON_EN_VALID_SHIFT; - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, pwrResource, pPowerCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerGetvmonEn - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - powerRsrcCfg_rd.validParams = PMIC_CFG_VMON_EN_VALID_SHIFT; - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrResource, - &powerRsrcCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerSetVoltage - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_TPS6594X_REGULATOR_BUCK1; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_LP8764X_REGULATOR_BUCK1; - } - - powerRsrcCfg_rd.validParams = PMIC_CFG_REGULATOR_VMON_VOLTAGE_SET_VALID_SHIFT; - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrResource, - &powerRsrcCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - pPowerCfg.voltage_mV = powerRsrcCfg_rd.voltage_mV; - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pPowerCfg.validParams = PMIC_CFG_REGULATOR_VMON_VOLTAGE_SET_VALID_SHIFT; - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, pwrResource, pPowerCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerSetBuckPullDownEn - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pwrCommonCfg.validParams = PMIC_CFG_REGULATOR_BUCK_PLDN_EN_VALID_SHIFT; - pwrCommonCfg.pgoodPolarity = PMIC_POWER_PGOOD_POL_LOW; - pmicStatus = Pmic_powerSetCommonConfig(pPmicCoreHandle, pwrCommonCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerGetBuckPullDownEn - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pwrCommonCfg_rd.validParams = PMIC_CFG_REGULATOR_BUCK_PLDN_EN_VALID_SHIFT; - pmicStatus = Pmic_powerGetCommonConfig(pPmicCoreHandle, &pwrCommonCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_getPgoodSelType - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSrcSel = PMIC_TPS6594X_PGOOD_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pgoodSrcSel = PMIC_LP8764X_PGOOD_SOURCE_VCCA; - } - pmicStatus = Pmic_powerGetConfigPowerGood(pPmicCoreHandle, - pgoodSrcSel, - &pPgoodSelType_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerSetBuckPullDownEn - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pPowerCfg.validParams = PMIC_CFG_REGULATOR_BUCK_PLDN_EN_VALID_SHIFT; - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckPullDownEn = PMIC_TPS6594X_REGULATOR_BUCK_PLDN_DISABLE; - pwrResource = PMIC_TPS6594X_REGULATOR_BUCK1; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckPullDownEn = PMIC_LP8764X_REGULATOR_BUCK_PLDN_DISABLE; - pwrResource = PMIC_LP8764X_REGULATOR_BUCK1; - } - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, pwrResource, pPowerCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerGetBuckPullDownEn - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - powerRsrcCfg_rd.validParams = PMIC_CFG_REGULATOR_BUCK_PLDN_EN_VALID_SHIFT; - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrResource, - &powerRsrcCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerGetBuckVmonSlewRate - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - powerRsrcCfg_rd.validParams = PMIC_CFG_REGULATOR_BUCK_VMON_SLEW_RATE_VALID_SHIFT; - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_TPS6594X_REGULATOR_BUCK1; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_LP8764X_REGULATOR_BUCK1; - } - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrResource, - &powerRsrcCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerSetBuckCurrentLimit - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pPowerCfg.validParams = PMIC_CFG_REGULATOR_BUCK_ILIM_VALID_SHIFT; - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckCurrentLimit = PMIC_TPS6594X_REGULATOR_BUCK_CURRENT_LIMIT_2A5; - pwrResource = PMIC_TPS6594X_REGULATOR_BUCK1; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckCurrentLimit = PMIC_LP8764X_REGULATOR_BUCK_CURRENT_LIMIT_2A5; - pwrResource = PMIC_LP8764X_REGULATOR_BUCK1; - } - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, pwrResource, pPowerCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerGetBuckCurrentLimit - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - powerRsrcCfg_rd.validParams = PMIC_CFG_REGULATOR_BUCK_ILIM_VALID_SHIFT; - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrResource, - &powerRsrcCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - if(((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType)&& - (PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev)) || - ((PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType)&& - (PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev))) - { - //Pmic_setThermalShutdownThold - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - thermalThreshold.validParams = PMIC_THERMAL_SHTDWN_VALID_SHIFT; - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - thermalThreshold.thermalShutdownThold = - PMIC_TPS6594X_THERMAL_TEMP_TSD_ORD_140C; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - thermalThreshold.thermalShutdownThold = - PMIC_LP8764X_THERMAL_TEMP_TSD_ORD_140C; - } - pmicStatus = Pmic_powerSetThermalConfig(pPmicCoreHandle, thermalThreshold); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_getThermalShutdownThold - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - thermalThreshold_rd.validParams = PMIC_THERMAL_SHTDWN_VALID_SHIFT; - pmicStatus = Pmic_powerGetThermalConfig(pPmicCoreHandle, &thermalThreshold_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerSetDeglitchTimeSel - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pwrCommonCfg.validParams = PMIC_CFG_DEGLITCH_TIME_SEL_VALID_SHIFT; - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrCommonCfg.deglitchTimeSel = - PMIC_TPS6594X_POWER_RESOURCE_DEGLITCH_SEL_20US; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrCommonCfg.deglitchTimeSel = - PMIC_LP8764X_POWER_RESOURCE_DEGLITCH_SEL_20US; - } - - pmicStatus = Pmic_powerSetCommonConfig(pPmicCoreHandle, pwrCommonCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - - //Pmic_powerGetDeglitchTimeSel - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - pwrCommonCfg_rd.validParams = PMIC_CFG_DEGLITCH_TIME_SEL_VALID_SHIFT; - pmicStatus = Pmic_powerGetCommonConfig(pPmicCoreHandle, &pwrCommonCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, pmicStatus); - } - - gPmic_faultInjectCfg.enableFaultInjectionRead = 0U; - - if((PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) && - (PMIC_STATUS_CRC_INIT_VAL == crcTestFlag)) - { - //Pmic_powerSetLdoBypassModeEn - gLdoBypassModeEnTestFlag = 1U; - pPowerCfg.validParams = PMIC_CFG_REGULATOR_LDO_BYPASS_MODE_EN_VALID_SHIFT; - pwrResource = PMIC_TPS6594X_REGULATOR_LDO3; - pPowerCfg.ldoBypassModeEn = PMIC_TPS6594X_REGULATOR_LDO_BYPASS_MODE; - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrResource, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - //Pmic_powerGetLdoBypassModeEn - powerRsrcCfg_rd.validParams = PMIC_CFG_REGULATOR_LDO_BYPASS_MODE_EN_VALID_SHIFT; - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrResource, - &powerRsrcCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - gLdoBypassModeEnTestFlag = 0U; - } - - if(PMIC_STATUS_CRC_INIT_VAL == crcTestFlag) - { - //Pmic_getThermalWarnStat - //Pmic_getOderlyShutdownStat - //Pmic_getImmediateShutdownStat - gThermalStatusTestFlag = 1U; - pPwrThermalStatCfg.validParams = PMIC_THERMAL_STAT_WARN_VALID_SHIFT | - PMIC_THERMAL_STAT_ORD_SHTDWN_VALID_SHIFT | - PMIC_THERMAL_STAT_IMM_SHTDWN_VALID_SHIFT; - pmicStatus = Pmic_powerGetPwrThermalStat(pPmicCoreHandle, &pPwrThermalStatCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - gThermalStatusTestFlag = 0U; - - //Pmic_powerGetUnderVoltageTholdStat - //Pmic_powerGetCurrentLimitLvlStat - gPwrRsrcStatusTestFlag = 1U; - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_TPS6594X_REGULATOR_BUCK1; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_LP8764X_REGULATOR_BUCK1; - } - pPwrRsrcStatCfg.validParams = PMIC_POWER_RESOURCE_UV_STAT_VALID_SHIFT | - PMIC_POWER_REGULATOR_ILIM_STAT_VALID_SHIFT; - pmicStatus = Pmic_powerGetPwrRsrcStat(pPmicCoreHandle, - pwrResource, - &pPwrRsrcStatCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - //Pmic_powerGetOverVoltageProtectionLvlStat - pPwrRsrcStatCfg.validParams = PMIC_POWER_VCCA_OV_LVL_STAT_VALID_SHIFT; - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_TPS6594X_POWER_SOURCE_VCCA; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_LP8764X_POWER_SOURCE_VCCA; - } - - pmicStatus = Pmic_powerGetPwrRsrcStat(pPmicCoreHandle, - pwrResource, - &pPwrRsrcStatCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - gPwrRsrcStatusTestFlag = 0U; - } - - Pmic_DevSubSysInfo_t pmicDevSubSysInfo = - { - .gpioEnable = (bool)true, - .rtcEnable = (bool)true, - .wdgEnable = (bool)true, - .buckEnable = (bool)false, - .ldoEnable = (bool)false, - .esmEnable = (bool)true - }; - - //Pmic_powerLP8764xValidatePwrRsrcLimit - //Pmic_powerTPS6594xValidatePwrRsrcLimit - pPmicCoreHandle->pPmic_SubSysInfo = (&pmicDevSubSysInfo); - pwrResource = PMIC_TPS6594X_REGULATOR_LDO1; - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, pwrResource, pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_TPS6594X_REGULATOR_BUCK1; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_LP8764X_REGULATOR_BUCK1; - } - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, pwrResource, pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - Pmic_DevSubSysInfo_t testpmicDevSubSysInfo = - { - .gpioEnable = (bool)true, - .rtcEnable = (bool)true, - .wdgEnable = (bool)true, - .buckEnable = (bool)true, - .ldoEnable = (bool)true, - .esmEnable = (bool)true - }; - - pPmicCoreHandle->pPmic_SubSysInfo = (&testpmicDevSubSysInfo); - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pwrResource = PMIC_TPS6594X_REGULATOR_LDO1; - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, pwrResource, pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - } - - pmic_testResultUpdate_pass(10697, - pmic_power_tests, - PMIC_POWER_NUM_OF_TESTCASES); -} - - -#if defined(UNITY_INCLUDE_CONFIG_V2_H) && \ - (defined(SOC_J721E) || defined(SOC_J7200)) - -/*! - * \brief Run power unity test cases - */ -static void test_pmic_run_testcases(void) -{ - pmic_log("\n\n%s(): %d: Begin Unity Test Cases...\n", __func__, __LINE__); - UNITY_BEGIN(); - - pmic_testResult_init(pmic_power_tests, PMIC_POWER_NUM_OF_TESTCASES); - - RUN_TEST(test_pmic_powerSetPowerResourceConfigPrmValTest_handle); - RUN_TEST(test_pmic_powerGetPowerResourceConfigPrmValTest_handle); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_rvCheckEn_enable); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_rvCheckEn_disable); - RUN_TEST(test_pmic_powerSetPowerResourceConfigPrmValTest_PwrRsrc_rvCheckEn); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_buckPullDownEn_enable); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_buckPullDownEn_disable); - RUN_TEST(test_pmic_powerSetPowerResourceConfigPrmValTest_PwrRsrc_buckPullDownEn); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_vmonEn_enable); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_vmonEn_disable); - RUN_TEST(test_pmic_powerSetPowerResourceConfigPrmValTest_PwrRsrc_vmonEn); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_buckVoutSel_vout1); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_buckVoutSel_vout2); - RUN_TEST(test_pmic_powerSetPowerResourceConfigPrmValTest_PwrRsrc_buckVoutSel); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_buckFpwmMode_auto); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_buckFpwmMode_pwm); - RUN_TEST(test_pmic_powerSetPowerResourceConfigPrmValTest_PwrRsrc_buckFpwmMode); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_buckFpwmMpMode_multiPhase); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_buckFpwmMpMode_auto); - RUN_TEST(test_pmic_powerSetPowerResourceConfigPrmValTest_PwrRsrc_buckFpwmMpMode); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_regulatorEn_disable); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_regulatorEn_enable); - RUN_TEST(test_pmic_powerSetPowerResourceConfigPrmValTest_PwrRsrc_regulatorEn); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_buckCurrentLimit_6A5); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_buckCurrentLimit_5A5); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_buckCurrentLimit_4A5); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_buckCurrentLimit_3A5); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_buckCurrentLimit_2A5); - RUN_TEST(test_pmic_powerSetPowerResourceConfigPrmValTest_PwrRsrc_buckCurrentLimit); - RUN_TEST(test_pmic_powerSetPowerResourceConfigPrmRangeTest_buckCurrentLimit); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_buckVmonSlewRate_33MV); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_buckVmonSlewRate_20MV); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_buckVmonSlewRate_10MV); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_buckVmonSlewRate_2MV5); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_buckVmonSlewRate_1MV3); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_buckVmonSlewRate_0MV63); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_buckVmonSlewRate_05MV); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_buckVmonSlewRate_0MV31); - RUN_TEST(test_pmic_powerSetPowerResourceConfigPrmValTest_PwrRsrc_buckVmonSlewRate); - RUN_TEST(test_pmic_powerSetPowerResourceConfigPrmRangeTest_buckVmonSlewRate); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_ldoPullDownSel_50KOHM); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_ldoPullDownSel_125OHM); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_ldoPullDownSel_250OHM); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_ldoPullDownSel_500OHM); - RUN_TEST(test_pmic_powerSetPowerResourceConfigPrmValTest_PwrRsrc_ldoPullDownSel); - RUN_TEST(test_pmic_powerSetPowerResourceConfigPrmRangeTest_ldoPullDownSel); - - RUN_TEST(test_pmic_powerSetPowerResourceConfig_ldoSlowRampEn_enable); - - RUN_TEST(test_pmic_powerSetPowerResourceConfig_ldoSlowRampEn_disable); - RUN_TEST(test_pmic_powerSetPowerResourceConfigPrmValTest_PwrRsrc_ldoSlowRampEn); - - RUN_TEST(test_pmic_powerSetPowerResourceConfig_voltage_mV); - RUN_TEST(test_pmic_powerSetPowerResourceConfigPrmValTest_PwrRsrc_voltage_mV); - RUN_TEST(test_pmic_powerSetPowerResourceConfigPrmRangeTest_voltage_mV_maxVal); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_vccaPwrGudLvl_5V); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_vccaPwrGudLvl_3V3); - RUN_TEST(test_pmic_powerSetPowerResourceConfigPrmValTest_PwrRsrc_vccaPwrGudLvl); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_railGrpSel_none); - - RUN_TEST(test_pmic_powerSetPowerResourceConfig_railGrpSel_mcu); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_railGrpSel_soc); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_railGrpSel_other); - - RUN_TEST(test_pmic_powerSetPowerResourceConfigPrmValTest_PwrRsrc_railGrpSel); - RUN_TEST(test_pmic_powerSetPowerResourceConfigPrmRangeTest_railGrpSel); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_ldoBypassModeEn_bypass); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_ldoBypassModeEn_linear); - - RUN_TEST(test_pmic_powerSetPowerResourceConfigPrmValTest_PwrRsrc_ldoBypassModeEn); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_ldoRvTimeoutSel_0MS5); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_ldoRvTimeoutSel_1MS); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_ldoRvTimeoutSel_1MS5); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_ldoRvTimeoutSel_2MS); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_ldoRvTimeoutSel_2MS5); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_ldoRvTimeoutSel_3MS); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_ldoRvTimeoutSel_3MS5); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_ldoRvTimeoutSel_4MS); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_ldoRvTimeoutSel_6MS); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_ldoRvTimeoutSel_8MS); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_ldoRvTimeoutSel_10MS); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_ldoRvTimeoutSel_12MS); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_ldoRvTimeoutSel_14MS); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_ldoRvTimeoutSel_16MS); - RUN_TEST(test_pmic_powerSetPowerResourceConfigPrmValTest_PwrRsrc_ldoRvTimeoutSel); - RUN_TEST(test_pmic_powerSetPowerResourceConfigPrmRangeTest_ldoRvTimeoutSel); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_vmonRange_range1); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_vmonRange_range2); - RUN_TEST(test_pmic_powerSetPowerResourceConfigPrmValTest_PwrRsrc_vmonRange); - RUN_TEST(test_pmic_powerGetPowerResourceConfigPrmValTest_Pmic_PowerResourceCfg_t); - RUN_TEST(test_pmic_powerSetCommonConfigPrmValTest_handle); - RUN_TEST(test_pmic_powerGetCommonConfigPrmValTest_handle); - RUN_TEST(test_pmic_powerSetCommonConfig_pgoodWindow_uv); - RUN_TEST(test_pmic_powerSetCommonConfig_pgoodWindow_uv_ov); - RUN_TEST(test_pmic_powerSetCommonConfig_pgoodPolarity_high); - RUN_TEST(test_pmic_powerSetCommonConfig_pgoodPolarity_low); - RUN_TEST(test_pmic_powerSetConfigPowerGood_pgoodSelType_voltageCurrent); - RUN_TEST(test_pmic_powerSetConfigPowerGood_pgoodSelType_voltage); - RUN_TEST(test_pmic_powerSetConfigPowerGood_pgoodSelType_masked); - RUN_TEST(test_pmic_powerSetConfigPowerGood_pgoodSelType_nRSTOUT); - RUN_TEST(test_pmic_powerSetConfigPowerGood_pgoodSelType_nRSTOUTSoc); - RUN_TEST(test_pmic_powerSetConfigPowerGood_pgoodSelType_tdieWarn); - RUN_TEST(test_pmic_powerSetConfigPowerGood_pgoodSelType_vcca); - RUN_TEST(test_pmic_powerSetConfigPowerGood_pgoodSelType_vmon); - RUN_TEST(test_pmic_powerGetPwrRsrcStat_currentLimitLvlStat); - RUN_TEST(test_pmic_powerGetPwrRsrcStat_underVoltageTholdStat); - RUN_TEST(test_pmic_powerGetPwrRsrcStat_overVoltageTholdStat); - RUN_TEST(test_pmic_powerGetPwrRsrcStat_overVoltageProtectionLvlStat); - RUN_TEST(test_pmic_powerSetThermalConfig_thermalWarnThold_low); - RUN_TEST(test_pmic_powerSetThermalConfig_thermalWarnThold_high); - RUN_TEST(test_pmic_powerSetThermalConfig_thermalShutdownThold_low); - - RUN_TEST(test_pmic_powerSetThermalConfig_thermalShutdownThold_high); - - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_ov_enable); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_ov_disable); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_uv_enable); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_uv_disable); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_ilim_enable); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_ilim_disable); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_twarn_enable); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_twarn_disable); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_nrstout_readback_enable); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_nrstout_readback_disable); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_soc_pwr_err_enable); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_soc_pwr_err_disable); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_mcu_pwr_err_enable); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_mcu_pwr_err_disable); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_ord_shutdown_enable); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_ord_shutdown_disable); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_imm_shutdown_enable); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_imm_shutdown_disable); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_nrstout_soc_readback_enable); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_nrstout_soc_readback_disable); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_en_drv_readback_enable); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_en_drv_readback_disable); - RUN_TEST(test_pmic_powerSetCommonConfig_deglitchTimeSel_4); - - RUN_TEST(test_pmic_powerSetCommonConfig_deglitchTimeSel_20); - - RUN_TEST(test_pmic_powerSetCommonConfig_severeErrorTrig_imm); - RUN_TEST(test_pmic_powerSetCommonConfig_severeErrorTrig_odrShtDwn); - RUN_TEST(test_pmic_powerSetCommonConfig_severeErrorTrig_McuPwrErr); - RUN_TEST(test_pmic_powerSetCommonConfig_severeErrorTrig_SocPwrErr); - RUN_TEST(test_pmic_powerSetCommonConfig_otherRailTrig_imm); - RUN_TEST(test_pmic_powerSetCommonConfig_otherRailTrig_odrShtDwn); - RUN_TEST(test_pmic_powerSetCommonConfig_otherRailTrig_McuPwrErr); - RUN_TEST(test_pmic_powerSetCommonConfig_otherRailTrig_SocPwrErr); - RUN_TEST(test_pmic_powerSetCommonConfig_socRailTrig_imm); - RUN_TEST(test_pmic_powerSetCommonConfig_socRailTrig_odrShtDwn); - RUN_TEST(test_pmic_powerSetCommonConfig_socRailTrig_McuPwrErr); - RUN_TEST(test_pmic_powerSetCommonConfig_socRailTrig_SocPwrErr); - RUN_TEST(test_pmic_powerSetCommonConfig_mcuRailTrig_imm); - RUN_TEST(test_pmic_powerSetCommonConfig_mcuRailTrig_odrShtDwn); - RUN_TEST(test_pmic_powerSetCommonConfig_mcuRailTrig_McuPwrErr); - RUN_TEST(test_pmic_powerSetCommonConfig_mcuRailTrig_SocPwrErr); - RUN_TEST(test_pmic_powerSetCommonConfig_moderateRailTrig_imm); - RUN_TEST(test_pmic_powerSetCommonConfig_moderateRailTrig_odrShtDwn); - RUN_TEST(test_pmic_powerSetCommonConfig_moderateRailTrig_McuPwrErr); - RUN_TEST(test_pmic_powerSetCommonConfig_moderateRailTrig_SocPwrErr); - RUN_TEST(test_pmic_powerSetLdoRtc_ldortcEnable_enable); - RUN_TEST(test_pmic_powerSetLdoRtc_ldortcEnable_disable); - RUN_TEST(test_Pmic_powerSetPwrRsrcIntrPrmValTest_PwrRsrc_intrEnable); - RUN_TEST(test_pmic_powerSetPowerResourceConfigPrmValTest_intrType); - RUN_TEST(test_pmic_powerSetCommonConfigPrmValTest_severeErrorTrig_SocPwrErr); - RUN_TEST(test_pmic_powerSetCommonConfigPrmValTest_otherRailTrig_SocPwrErr); - RUN_TEST(test_pmic_powerSetCommonConfigPrmValTest_socRailTrig_SocPwrErr); - RUN_TEST(test_pmic_powerSetCommonConfigPrmValTest_mcuRailTrig_SocPwrErr); - RUN_TEST(test_pmic_powerSetCommonConfigPrmValTest_moderateRailTrig_SocPwrErr); - RUN_TEST(test_pmic_powerSetConfigPowerGoodgPrmValTest_handle); - RUN_TEST(test_pmic_powerGetConfigPowerGoodPrmValTest_handle); - RUN_TEST(test_pmic_powerGetPwrRsrcStatPrmValTest_handle); - RUN_TEST(test_pmic_powerSetThermalConfigPrmValTest_handle); - RUN_TEST(test_pmic_powerGetThermalConfigPrmValTest_handle); - RUN_TEST(test_Pmic_powerSetPwrRsrcIntrConfigPrmValTest_handle); - RUN_TEST(test_pmic_powerSetPwrRsrcIntrPrmValTest_handle); - -#if defined(ENABLE_SAMPLE_TESTCASES) -/* The below taest cases aer dummy, as power/thermal related interrupts cannot - * be generated to test masking APIs - * - * 7463 PMIC: PMIC Power regulators, VCC and VMON Interrupts features can't - * be tested - */ - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_ov_enabled); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_ov_disabled); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_uv_enabled); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_uv_disabled); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_ilim_enabled); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_ilim_disabled); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_twarn_enabled); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_twarn_disabled); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_nrstout_readback_enabled); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_nrstout_readback_disabled); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_soc_pwr_err_enabled); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_soc_pwr_err_disabled); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_mcu_pwr_err_enabled); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_mcu_pwr_err_disabled); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_ord_shutdown_enabled); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_ord_shutdown_disabled); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_imm_shutdown_enabled); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_imm_shutdown_disabled); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_nrstout_soc_readback_enabled); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_nrstout_soc_readback_disabled); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_en_drv_readback_enabled); - RUN_TEST(test_pmic_powerSetPwrRsrcIntr_en_drv_readback_disabled); -#endif - - RUN_TEST(test_pmic_powerGetPwrThermalStatPrmValTest_handle); - RUN_TEST(test_pmic_powerGetPwrThermalStatPrmValTest_pPwrThermalStatCfg); - RUN_TEST(test_pmic_powerGetPwrThermalStat_thermalStatus); - RUN_TEST(test_pmic_powerGetPwrThermalStat_OderlyShtDwnStatus); - RUN_TEST(test_pmic_powerGetPwrThermalStat_ImmShtDwnStatus); - - RUN_TEST(test_pmic_powerSetPowerResourceConfig_hera_ldo); - RUN_TEST(test_pmic_powerSetPowerResourceConfig_leo_vmon); - - RUN_TEST(test_pmic_powerSetThermalConfig_thermalShutdownThold); - RUN_TEST(test_pmic_powerGetThermalConfig_thermalShutdownThold); - - RUN_TEST(test_pmic_powerSetLdoRtc_HERA_ldortcEnable_disable); - RUN_TEST(test_pmic_powerGetPowerResourceConfig_buck5); - - RUN_TEST(test_pmic_powerGetThermalConfigPrmValTest_pThermalThreshold); - RUN_TEST(test_pmic_powerGetPwrRsrcStatPrmValTest_pPwrRsrcStatCfg); - RUN_TEST(test_pmic_powerGetConfigPowerGoodPrmValTest_pPgoodSelType); - RUN_TEST(test_pmic_powerGetCommonConfigPrmValTest_pPowerCommonCfg); - RUN_TEST(test_pmic_powerSetPwrResourceCfg_ldoRvTimeoutSel); - RUN_TEST(test_pmic_powerSetPwrResourceCfg_buck2PwmMpMode); - RUN_TEST(test_pmic_powerSetPwrResourceCfg_ldo4ByPassMode); - RUN_TEST(test_pmic_powerSetIntrPrmValTest_intrType); -#if defined(SOC_J7200) - RUN_TEST(test_pmic_powerSetPwrResourceCfg_pgOvThresholdLvl); -#endif - RUN_TEST(test_pmic_powerSetPwrResourceCfgPrmValTest_pgOvThresholdLvl); - RUN_TEST(test_pmic_powerSetPwrResourceCfg_pgUvThresholdLvl); - RUN_TEST(test_pmic_powerSetPwrResourceCfgPrmValTest_pgUvThresholdLvl); - RUN_TEST(test_pmic_powerGetPwrRsrcStatPrmValTest_ilimStatPwrRsrc); - RUN_TEST(test_pmic_powerGetPwrRsrcStatPrmValTest_vccaOvLvlStatPwrRsrc); - - RUN_TEST(test_pmic_powerGetCommonConfig_deglitchTimeSel); - RUN_TEST(test_pmic_powerSetCommonConfig_deglitchTimeSel); - RUN_TEST(test_pmic_powerGetPwrResourceCfgPrmValTest_vccaPwrGudLvlPwrRsrc); - RUN_TEST(test_pmic_powerGetPwrResourceCfgPrmValTest_vmonRangePwrRsrc); - RUN_TEST(test_pmic_powerGetPwrResourceCfgPrmValTest_buckIlimPwrRsrc); - RUN_TEST(test_pmic_powerGetPwrResourceCfgPrmValTest_buckVmonSlewRatePwrRsrc); - RUN_TEST(test_pmic_powerSetPwrResourceCfgPrmValTest_rvCheckPwrRsrc); - RUN_TEST(test_pmic_powerGetPwrResourceCfgPrmValTest_rvCheckPwrRsrc); - RUN_TEST(test_pmic_powerGetPwrResourceCfgPrmValTest_buckPullDownEnPwrRsrc); - RUN_TEST(test_pmic_powerGetPwrResourceCfgPrmValTest_buckVoutSelPwrRsrc); - RUN_TEST(test_pmic_powerGetPwrResourceCfgPrmValTest_buckFpwmModePwrRsrc); - RUN_TEST(test_pmic_powerGetPwrResourceCfgPrmValTest_buckFpwmMpModePwrRsrc); - RUN_TEST(test_pmic_powerGetPwrResourceCfgPrmValTest_regulatorEnPwrRsrc); - RUN_TEST(test_pmic_powerGetPwrResourceCfgPrmValTest_ldoPullDownSelPwrRsrc); - RUN_TEST(test_pmic_powerSetPwrResourceCfgPrmValTest_buckIlimMinVal); - RUN_TEST(test_pmic_powerGetPwrResourceCfgPrmValTest_ldoBypassModeEnPwrRsrc); - RUN_TEST(test_pmic_powerGetPwrResourceCfgPrmValTest_ldoRvTimeoutSelPwrRsrc); - RUN_TEST(test_pmic_powerGetPwrResourceCfgPrmValTest_voltage_mV_pwrRsrc); - RUN_TEST(test_pmic_powerSetPwrResourceCfgPrmValTest_voltage_mV_599mV); - RUN_TEST(test_pmic_powerSetPwrResourceCfgPrmValTest_voltage_mV_1099mV); - RUN_TEST(test_pmic_powerSetPwrResourceCfgPrmValTest_voltage_mV_1659mV); - RUN_TEST(test_pmic_powerSetPwrResourceCfg_ldoSlowRampEn); - RUN_TEST(test_pmic_powerSetLdoRtcPrmValTest_handle); - RUN_TEST(test_pmic_powerGetLdoRtcPrmValTest_handle); - RUN_TEST(test_pmic_powerGetLdoRtcPrmValTest_pLdortcEnable); - RUN_TEST(test_pmic_powerSetPwrResourceCfgPrmValTest_buckMinVoltage); - RUN_TEST(test_pmic_powerSetPwrResourceCfgPrmValTest_buckMaxVoltage); - RUN_TEST(test_pmic_powerSetPwrResourceCfgPrmValTest_ldoMinVoltage); - RUN_TEST(test_pmic_powerSetPwrResourceCfgPrmValTest_vccaMinVoltage); - RUN_TEST(test_pmic_powerSetPwrResourceCfgPrmValTest_buckPwrRsrcLimitMaxVal); - RUN_TEST(test_pmic_powerSetPwrResourceCfgPrmValTest_buckPwrRsrcLimitMinVal); - RUN_TEST(test_pmic_powerSetPwrResourceCfgPrmValTest_ldoVmonPwrRsrcLimitMinVal); - RUN_TEST(test_Pmic_powerSetPwrRsrcIntrPrmValTest_intrTypePwrRsrc); - RUN_TEST(test_pmic_powerSetConfigPowerGoodPrmValTest_tdieWarnPgoodSelType); - RUN_TEST(test_pmic_powerSetConfigPowerGoodPrmValTest_voltCurrentPgoodSelType); - RUN_TEST(test_pmic_powerSetConfigPowerGoodPrmValTest_nRstOutPgoodSelType); - RUN_TEST(test_pmic_powerSetConfigPowerGoodPrmValTest_nRstOutSocPgoodSelType); - - RUN_TEST(test_pmic_powerSetConfigPowerGoodPrmValTest_vccaVmonPgoodSelType); - RUN_TEST(test_pmic_powerGetLdoRtc_pLdortcEnable); - - RUN_TEST(test_pmic_powerSetConfigPowerGoodPrmValTest_buckPgoodSrcMaxVal); - RUN_TEST(test_pmic_powerSetConfigPowerGoodPrmValTest_buckPgoodSrcMinVal); - RUN_TEST(test_pmic_powerSetConfigPowerGoodPrmValTest_vmonPgoodSrcMaxVal); - RUN_TEST(test_pmic_powerSetConfigPowerGoodPrmValTest_vmonPgoodSrcMinVal); - RUN_TEST(test_pmic_powerSetConfigPowerGoodPrmValTest_ldoPgoodSrcMaxVal); - RUN_TEST(test_pmic_powerSetConfigPowerGoodPrmValTest_ldoPgoodSrcMinVal); - RUN_TEST(test_pmic_powerSetConfigPowerGoodPrmValTest_nRstOutPgoodSrc); - RUN_TEST(test_pmic_powerSetConfigPowerGoodPrmValTest_nRstOutSocPgoodSrc); - RUN_TEST(test_pmic_powerSetConfigPowerGoodPrmValTest_tdieWarnPgoodSrc); - RUN_TEST(test_pmic_powerSetConfigPowerGoodPrmValTest_vccaPgoodSrc); - RUN_TEST(test_pmic_powerSetConfigPowerGoodPrmValTest_pgoodSrcType); - RUN_TEST(test_pmic_powerSetPwrResourceCfgPrmValTest_rvCheckEnPwrRsrc); - - RUN_TEST(test_pmic_powerSetPwrResourceCfg_vmonRange); - RUN_TEST(test_pmic_powerSetPwrResourceCfgPrmValTest_vmonRangeVoltage_mV_299mV); - RUN_TEST(test_pmic_powerSetPwrResourceCfgPrmValTest_vmonRangeVoltage_mV_3341mV); - RUN_TEST(test_pmic_powerSetPwrResourceCfgPrmValTest_vmonRangeVoltage_mV_3349mV); - RUN_TEST(test_pmic_powerSetPwrResourceCfgPrmValTest_vmonRangeVoltage_mV_5001mV); - RUN_TEST(test_pmic_powerSetPwrResourceCfgPrmValTest_vccaPwrGudLvlPwrRsrc); - RUN_TEST(test_pmic_powerGetPwrResourceCfg_ldoSlowRampEn); - RUN_TEST(test_pmic_powerSetPowerResourceConfigPrmRangeTest_voltage_mV); - RUN_TEST(test_pmic_power_coverageGaps); - - pmic_updateTestResults(pmic_power_tests, PMIC_POWER_NUM_OF_TESTCASES); - - UNITY_END(); -} - -/*! - * \brief POWER Unity Test App wrapper Function for LEO PMIC-A - */ -static int32_t test_pmic_leo_pmicA_power_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_LEO_TPS6594X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_DUAL_I2C; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.i2c1Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C1_SPEED_VALID_SHIFT; - - pmicConfigData.i2c2Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C2_SPEED_VALID_SHIFT; - - if(J721E_LEO_PMICA_DEVICE == pmic_device_info) - { - pmicConfigData.slaveAddr = J721E_LEO_PMICA_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J721E_LEO_PMICA_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J721E_LEO_PMICA_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - - } - if(J7VCL_LEO_PMICA_DEVICE == pmic_device_info) - { - pmicConfigData.slaveAddr = J7VCL_LEO_PMICA_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J7VCL_LEO_PMICA_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J7VCL_LEO_PMICA_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - } - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; -} - -/*! - * \brief POWER Unity Test App wrapper Function for LEO PMIC-B - */ -static int32_t test_pmic_leo_pmicB_power_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_LEO_TPS6594X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_SINGLE_I2C; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.i2c1Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C1_SPEED_VALID_SHIFT; - - pmicConfigData.slaveAddr = J721E_LEO_PMICB_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J721E_LEO_PMICB_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J721E_LEO_PMICB_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; - -} - -/*! - * \brief POWER Unity Test App wrapper Function for HERA PMIC - */ -static int32_t test_pmic_hera_power_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_HERA_LP8764X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_SINGLE_I2C; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.i2c1Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C1_SPEED_VALID_SHIFT; - - pmicConfigData.slaveAddr = J7VCL_HERA_PMIC_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J7VCL_HERA_PMIC_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J7VCL_HERA_PMIC_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; - -} - -/*! - * \brief POWER Unity Test App wrapper Function for LEO PMIC-A - */ -static int32_t test_pmic_leo_pmicA_spiStub_power_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_LEO_TPS6594X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_SPI; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; -} - -static int32_t setup_pmic_interrupt(uint32_t board, bool enableCRC) -{ - int32_t status = PMIC_ST_SUCCESS; - - if(J721E_BOARD == board) - { - if(enableCRC == true) - { - if(PMIC_STATUS_CRC_INIT_VAL == gCrcTestFlag_J721E) - { - gCrcTestFlag_J721E = PMIC_CFG_TO_ENABLE_CRC; - } - } - else - { - gCrcTestFlag_J721E = PMIC_STATUS_CRC_INIT_VAL; - } - - pmic_device_info = J721E_LEO_PMICA_DEVICE; - status = test_pmic_leo_pmicA_power_testApp(); - /* Deinit pmic handle */ - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - - if(PMIC_ST_SUCCESS == status) - { - status = test_pmic_leo_pmicB_power_testApp(); - /* Deinit pmic handle */ - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } - } - else if(J7VCL_BOARD == board) - { - if(enableCRC == true) - { - if(PMIC_STATUS_CRC_INIT_VAL == gCrcTestFlag_J7VCL) - { - gCrcTestFlag_J7VCL = PMIC_CFG_TO_ENABLE_CRC; - } - } - else - { - gCrcTestFlag_J7VCL = PMIC_STATUS_CRC_INIT_VAL; - } - - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - status = test_pmic_leo_pmicA_power_testApp(); - /* Deinit pmic handle */ - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - - if(PMIC_ST_SUCCESS == status) - { - pmic_device_info = J7VCL_HERA_PMICB_DEVICE; - status = test_pmic_hera_power_testApp(); - /* Deinit pmic handle */ - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } - } - else - { - status = PMIC_ST_ERR_INV_DEVICE; - } - - return status; -} - -static const char pmicTestMenu[] = -{ - " \r\n =================================================================" - " \r\n Test Menu:" - " \r\n =================================================================" - " \r\n 0: Automatic run for all board specific Power options" - " \r\n 1: Manual run for Power options" - " \r\n 2: quit" - " \r\n" - " \r\n Enter option: " -}; - -volatile static const char pmicTestAppMenu[] = -{ - " \r\n =================================================================" - " \r\n Menu:" - " \r\n =================================================================" - " \r\n 0: Pmic Leo device(PMIC A on J721E EVM)" - " \r\n 1: Pmic Leo device(PMIC B on J721E EVM)" - " \r\n 2: Pmic Leo device(PMIC A on J7VCL EVM)" - " \r\n 3: Pmic Hera device(PMIC B on J7VCL EVM)" - " \r\n 4: Pmic Leo device(PMIC A on J721E EVM Using SPI Stub Functions)" - " \r\n 5: Pmic Leo device(PMIC A on J7VCL EVM Using SPI Stub Functions)" - " \r\n 6: Pmic Leo device(PMIC A on J721E EVM Manual Testcase with CRC Disable on PG2.0 Silicon revision)" - " \r\n 7: Back to Test Menu" - " \r\n" - " \r\n Enter option: " -}; - -static void test_pmic_power_testapp_run_options(int8_t option) -{ - int8_t num = -1; - int8_t idx = 0; -#if defined(SOC_J721E) - int8_t automatic_options[] = {0, 1, 4}; - int8_t userInput = 0; -#elif defined(SOC_J7200) - int8_t automatic_options[] = {2, 3, 5}; -#endif - - while(1U) - { - if(idx >= (sizeof(automatic_options)/sizeof(automatic_options[0]))) - { - pmic_printTestResult(pmic_power_tests, PMIC_POWER_NUM_OF_TESTCASES); - } - pmic_log("%s", pmicTestAppMenu); - if(option == PMIC_UT_AUTOMATE_OPTION) - { - if(idx < (sizeof(automatic_options)/sizeof(automatic_options[0]))) - { - num = automatic_options[idx++]; - } - else - { - num = 7; - } - pmic_log("%d\n", num); - } - else - { - if(UART_scanFmt("%d", &num) != 0U) - { - pmic_log("Read from UART Console failed\n"); - return; - } - } - switch(num) - { - case 0U: -#if defined(SOC_J721E) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J721E_BOARD, true)) - { - pmic_device_info = J721E_LEO_PMICA_DEVICE; - - /* POWER Unity Test App wrapper Function for LEO PMIC-A */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_power_testApp()) - { - /* Run power test cases for Leo PMIC-A */ - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 1U: -#if defined(SOC_J721E) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J721E_BOARD, true)) - { - pmic_device_info = J721E_LEO_PMICB_DEVICE; - - /* POWER Unity Test App wrapper Function for LEO PMIC-B */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicB_power_testApp()) - { - /* Run power test cases for Leo PMIC-B */ - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 2U: -#if defined(SOC_J7200) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J7VCL_BOARD, true)) - { - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - - /* POWER Unity Test App wrapper Function for LEO PMIC-A */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_power_testApp()) - { - /* Run power test cases for Leo PMIC-A */ - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 3U: -#if defined(SOC_J7200) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J7VCL_BOARD, true)) - { - pmic_device_info = J7VCL_HERA_PMICB_DEVICE; - - /* POWER Unity Test App wrapper Function for HERA PMIC */ - if(PMIC_ST_SUCCESS == test_pmic_hera_power_testApp()) - { - /* Run power test cases for Hera PMIC */ - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 4U: -#if defined(SOC_J721E) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J721E_BOARD, true)) - { - pmic_device_info = J721E_LEO_PMICA_DEVICE; - - /* POWER Unity Test App wrapper Function for LEO PMIC-A - * using SPI stub functions */ - if(PMIC_ST_SUCCESS == - test_pmic_leo_pmicA_spiStub_power_testApp()) - { - /* Run power test cases for Leo PMIC-A */ - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 5U: -#if defined(SOC_J7200) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J7VCL_BOARD, true)) - { - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - /* POWER Unity Test App wrapper Function for LEO PMIC-A - * using SPI stub functions */ - if(PMIC_ST_SUCCESS == - test_pmic_leo_pmicA_spiStub_power_testApp()) - { - /* Run power test cases for Leo PMIC-A */ - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 6U: -#if defined(SOC_J721E) - pmic_log("\r\n Run the test only on Leo PMIC-A PG2.0 after Board Power cycle !!!\n"); - pmic_log("\r\n Enter 1 to continue"); - UART_scanFmt("%d", &userInput); - - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J721E_BOARD, false)) - { - pmic_device_info = J721E_LEO_PMICA_DEVICE; - - /* POWER Unity Test App wrapper Function for LEO PMIC-A */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_power_testApp()) - { - /* Run power test cases for Leo PMIC-A */ - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 7U: - pmic_log(" \r\n Back to Test Menu options\n"); - return; - default: - pmic_log(" \r\n Invalid option... Try Again!!!\n"); - break; - } - } -} - -/*! - * \brief Function to register POWER Unity Test App wrapper to Unity framework - */ -static void test_pmic_power_testapp_runner(void) -{ - /* @description : Test runner for POWER Test App - * - * @requirements: 5841, 5850 - * - * @cores : mcu1_0, mcu1_1 - */ - - int8_t option = -1; - - while(1U) - { - pmic_log("%s", pmicTestMenu); - if(UART_scanFmt("%d", &option) != 0U) - { - pmic_log("Read from UART Console failed\n"); - return; - } - - switch(option) - { - case PMIC_UT_AUTOMATE_OPTION: - test_pmic_power_testapp_run_options(PMIC_UT_AUTOMATE_OPTION); - break; - case PMIC_UT_MANUAL_OPTION: - test_pmic_power_testapp_run_options(PMIC_UT_MANUAL_OPTION); - break; - case 2U: - pmic_log(" \r\n Quit from application\n"); - return; - default: - pmic_log(" \r\n Invalid option... Try Again!!!\n"); - break; - } - } -} -#endif - -/*! - * \brief TI RTOS specific POWER TEST APP main Function - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values see \ref Pmic_ErrorCodes - */ -int main() -{ - Board_initUART(); - - pmic_print_banner("PMIC Power Unity Test Application"); - -#if defined(UNITY_INCLUDE_CONFIG_V2_H) && \ - (defined(SOC_J721E) || \ - defined(SOC_J7200)) - test_pmic_power_testapp_runner(); -#endif -} diff --git a/test/power_test/pmic_ut_power.h b/test/power_test/pmic_ut_power.h deleted file mode 100644 index 223e72f..0000000 --- a/test/power_test/pmic_ut_power.h +++ /dev/null @@ -1,80 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ -/** - * \file pmic_ut_power.h - * - * \brief Header file for PMIC POWER Unit Tests - * - */ - -#include - -/* ========================================================================= */ -/* Macros & Typedefs */ -/* ========================================================================= */ - -#define PMIC_TPS6594X_LDO_MAX PMIC_TPS6594X_REGULATOR_LDO4 -#define PMIC_TPS6594X_BUCK1_4_CURRENT_LIMIT_MAX \ - PMIC_TPS6594X_REGULATOR_BUCK_CURRENT_LIMIT_5A5 -#define PMIC_TPS6594X_BUCK5_CURRENT_LIMIT_MAX \ - PMIC_TPS6594X_REGULATOR_BUCK_CURRENT_LIMIT_3A5 -#define PMIC_TPS6594X_BUCK_SLEW_RATE_MAX \ - PMIC_TPS6594X_REGULATOR_BUCK_SLEW_RATE_0MV31 -#define PMIC_TPS6594X_REGULATOR_LDO_PLDN_VAL_MAX \ - PMIC_TPS6594X_REGULATOR_LDO_PLDN_VAL_500OHM -#define PMIC_TPS6594X_REGULATOR_LDO_MAX_VOLTAGE (3300U) -#define PMIC_TPS6594X_POWER_RAIL_SEL_MAX \ - PMIC_TPS6594X_POWER_RAIL_SEL_OTHER -#define PMIC_TPS6594X_REGULATOR_LDO_RV_TIMEOUT_MAX \ - PMIC_TPS6594X_REGULATOR_LDO_RV_TIMEOUT_16MS - -#define PMIC_LP8764X_VMON_MAX PMIC_LP8764X_POWER_SOURCE_VMON2 -#define PMIC_LP8764X_BUCK_CURRENT_LIMIT_MAX \ - PMIC_LP8764X_REGULATOR_BUCK_CURRENT_LIMIT_6A5 -#define PMIC_LP8764X_BUCK_SLEW_RATE_MAX \ - PMIC_LP8764X_REGULATOR_BUCK_VMON_SLEW_RATE_0MV31 -#define PMIC_LP8764X_RANGE1_VMON_MAX_VOLTAGE (5000U) -#define PMIC_LP8764X_BUCK_MAX PMIC_LP8764X_REGULATOR_BUCK4 -#define PMIC_LP8764X_POWER_RAIL_SEL_MAX \ - PMIC_LP8764X_POWER_RAIL_SEL_OTHER - -#define PMIC_POWER_NUM_OF_TESTCASES \ - (sizeof(pmic_power_tests)/sizeof(pmic_power_tests[0])) - -#define PMIC_UT_TPS6594X_REGULATOR_BUCK_MAX_VOLTAGE (3340U) -#define PMIC_UT_LP8764X_REGULATOR_BUCK_MAX_VOLTAGE (3340U) -#define PMIC_UT_TPS6594X_REGULATOR_BUCK_MIN_VOLTAGE (300U) -#define PMIC_UT_LP8764X_REGULATOR_BUCK_MIN_VOLTAGE (300U) -#define PMIC_UT_TPS6594X_POWER_LDO1_2_3_MIN_VOLTAGE (600U) -#define PMIC_UT_TPS6594X_POWER_LDO4_MIN_VOLTAGE (1200U) -/* None */ diff --git a/test/rtc_test/makefile b/test/rtc_test/makefile deleted file mode 100644 index 366f9bf..0000000 --- a/test/rtc_test/makefile +++ /dev/null @@ -1,84 +0,0 @@ -# Filename: Makefile -# -# This file is the makefile for building PMIC RTC Test Code. -# -# Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com/ -# -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# -# Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the -# distribution. -# -# Neither the name of Texas Instruments Incorporated nor the names of -# its contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -#File - pmic_lld\test\rtc_test\makefile - -APP_NAME = pmic_rtc_testapp - -include $(PDK_INSTALL_PATH)/ti/build/Rules.make - -BUILD_OS_TYPE = baremetal - -SRCDIR = . ../common -INCDIR = . ../../include/ ../../include/cfg/tps6594x ../../include/cfg/lp8764x -INCDIR += ../common - -# Common source files across all platforms and cores -SRCS_COMMON += pmic_ut_rtc.c pmic_ut_common.c - -SRCDIR += $(PDK_INSTALL_PATH)/ti/build/unit-test/Unity/src $(PDK_INSTALL_PATH)/ti/build/unit-test/config -INCDIR += $(PDK_INSTALL_PATH)/ti/build/unit-test/Unity/src $(PDK_INSTALL_PATH)/ti/build/unit-test/config -SRCS_COMMON += unity.c - -# List all the external components/interfaces, whose interface header files -# need to be included for this component -INCLUDE_EXTERNAL_INTERFACES = pdk i2c gpio csl -INCLUDE_INTERNAL_INTERFACES = pmic - -# List all the components required by the application -COMP_LIST_COMMON = $(PDK_COMMON_BAREMETAL_COMP) - -# Common source files and CFLAGS across all platforms and cores -PACKAGE_SRCS_COMMON = . ../common - -CFLAGS_LOCAL_COMMON += -DUNITY_INCLUDE_CONFIG_V2_H $(PMIC_CFLAGS) - -# Core/SoC/platform specific source files and CFLAGS -# Example: -# SRCS_ = -# CFLAGS_LOCAL_ = - -# Include common make files -ifeq ($(MAKERULEDIR), ) -#Makerule path not defined, define this and assume relative path from ROOTDIR - MAKERULEDIR := $(ROOTDIR)/ti/build/makerules - export MAKERULEDIR -endif -include $(MAKERULEDIR)/common.mk - -# OBJs and libraries are built by using rule defined in rules_.mk -# and need not be explicitly specified here - -# Nothing beyond this point diff --git a/test/rtc_test/pmic_ut_rtc.c b/test/rtc_test/pmic_ut_rtc.c deleted file mode 100644 index 5328a01..0000000 --- a/test/rtc_test/pmic_ut_rtc.c +++ /dev/null @@ -1,6066 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ -/** - * \file pmic_ut_rtc.c - * - * \brief PMIC Uint Test for testing PMIC RTC APIs - * - */ - -#include - -/* Pointer to Pmic Core Handle */ -Pmic_CoreHandle_t *pPmicCoreHandle = NULL; - -extern uint16_t pmic_device_info; -extern int32_t gCrcTestFlag_J721E; -extern int32_t gCrcTestFlag_J7VCL; -volatile uint32_t pmic_intr_triggered; - -extern int8_t gEnableRtcTestFlag; - -extern Pmic_Ut_FaultInject_t gPmic_faultInjectCfg; - -/*! - * \brief PMIC RTC Test Cases - */ -static Pmic_Ut_Tests_t pmic_rtc_tests[] = -{ - { - 5990, - "Pmic_rtcSetAlarmInfo : Set RTC Alarm interrupt" - }, - { - 5991, - "Pmic_rtcSetAlarmInfo : Parameter validation for handle" - }, - { - 6090, - "Pmic_rtcSetAlarmInfo : Parameter validation for seconds" - }, - { - 6091, - "Pmic_rtcSetAlarmInfo : Parameter validation for minutes" - }, - { - 6092, - "Pmic_rtcSetAlarmInfo : Parameter validation for timeMode" - }, - { - 6093, - "Pmic_rtcSetAlarmInfo : Parameter validation for meridianMode" - }, - { - 6094, - "Pmic_rtcSetAlarmInfo : Parameter validation for hour when timeMode = 1" - }, - { - 6095, - "Pmic_rtcSetAlarmInfo : Parameter validation for hour when timeMode = 0" - }, - { - 6096, - "Pmic_rtcSetAlarmInfo : Negative test for hour = 0, when timeMode = 1" - }, - { - 6099, - "Pmic_rtcSetAlarmInfo : Negative test for month = 0" - }, - { - 6100, - "Pmic_rtcSetAlarmInfo : Negative test for day = 0" - }, - { - 6101, - "Pmic_rtcSetAlarmInfo : Parameter range validation for year" - }, - { - 6102, - "Pmic_rtcSetAlarmInfo : Parameter range validation for month" - }, - { - 6103, - "Pmic_rtcSetAlarmInfo : Parameter range validation for day for months with 30 days" - }, - { - 6104, - "Pmic_rtcSetAlarmInfo : Parameter range validation for day for leap year(year %4 = 0 ) and month = 2 (february)" - }, - { - 6107, - "Pmic_rtcSetAlarmInfo : Parameter range validation for day for Non-leap year(year %4 != 0 ) and month = 2 (february)" - }, - { - 6108, - "Pmic_rtcSetAlarmInfo : Parameter range validation for day, for months with 31 days)" - }, - { - 6109, - "Pmic_rtcGetAlarmInfo : Test Get RTC Alarm interrupt API" - }, - { - 6110, - "Pmic_rtcGetAlarmInfo : Parameter validation for handle" - }, - { - 6111, - "Pmic_rtcGetAlarmInfo : Parameter validation for timeCfg" - }, - { - 6112, - "Pmic_rtcGetAlarmInfo : Parameter validation for dataCfg" - }, - { - 6113, - "Pmic_rtcSetTimerPeriod : Test Set RTC Timer interrupt" - }, - { - 6114, - "Pmic_rtcSetTimerPeriod : Parameter validation for handle" - }, - { - 6115, - "Pmic_rtcSetTimerPeriod : Parameter validation for timerPeriod" - }, - { - 6116, - "Pmic_rtcSetTimerPeriod : Test Get RTC Timer interrupt" - }, - { - 6117, - "Pmic_rtcSetTimerPeriod : Parameter validation for handle" - }, - { - 6118, - "Pmic_rtcSetTimerPeriod : Parameter validation for timerPeriod" - }, - { - 6119, - "Pmic_rtcEnable : Test RTC Disable" - }, - { - 6120, - "Pmic_rtcEnable : Parameter validation for handle" - }, - { - 6121, - "Pmic_rtcEnable : Test RTC Enable" - }, - { - 6122, - "Pmic_rtcEnable : Parameter validation for handle" - }, - { - 6158, - "Pmic_rtcSetTimeDateInfo : Test RTC Set Time" - }, - { - 6159, - "Pmic_rtcSetTimeDateInfo : Parameter validation for handle" - }, - { - 6162, - "Pmic_rtcSetTimeDateInfo : Parameter validation for seconds" - }, - { - 6163, - "Pmic_rtcSetTimeDateInfo : Parameter validation for minutes" - }, - { - 6164, - "Pmic_rtcSetTimeDateInfo : Parameter validation for timeMode" - }, - { - 6165, - "Pmic_rtcSetTimeDateInfo : Parameter validation for meridianMode" - }, - { - 6166, - "Pmic_rtcSetTimeDateInfo : Parameter validation for hour when timeMode = 1" - }, - { - 6167, - "Pmic_rtcSetTimeDateInfo : Parameter validation for hour when timeMode = 0" - }, - { - 6168, - "Pmic_rtcSetTimeDateInfo : Negative test for hour = 0, when timeMode = 1" - }, - { - 6169, - "Pmic_rtcSetTimeDateInfo : Negative test for month = 0" - }, - { - 6290, - "Pmic_rtcSetTimeDateInfo : Negative test for day = 0" - }, - { - 7021, - "Pmic_rtcSetTimeDateInfo: Parameter range validation for year" - }, - { - 6170, - "Pmic_rtcSetTimeDateInfo : Parameter range validation for month" - }, - { - 6171, - "Pmic_rtcSetTimeDateInfo : Parameter range validation for day" - }, - { - 6172, - "Pmic_rtcSetTimeDateInfo : Parameter range validation for day for months with 30 days" - }, - { - 6173, - "Pmic_rtcSetTimeDateInfo : Parameter range validation for day for leap year(year %4 = 0 ) and month = 2 (february)" - }, - { - 6174, - "Pmic_rtcSetTimeDateInfo : Parameter range validation for day for Non-leap year(year %4 != 0 ) and month = 2 (february)" - }, - { - 6175, - "Pmic_rtcSetTimeDateInfo : Parameter range validation for day, for months with 31 days)" - }, - { - 6176, - "Pmic_rtcGetTimeDateInfo : Test RTC Get Time" - }, - { - 6177, - "Pmic_rtcGetTimeDateInfo : Parameter validation for handle" - }, - { - 6178, - "Pmic_rtcGetTimeDateInfo : Parameter validation for timeCfg" - }, - { - 6179, - "Pmic_rtcGetTimeDateInfo : Parameter validation for dataCfg" - }, - { - 6180, - "Pmic_rtcSetFreqComp : Test RTC set RTC frequency compensation" - }, - { - 6181, - "Pmic_rtcSetFreqComp : Parameter validation for handle" - }, - { - 6182, - "Pmic_rtcGetFreqComp : Test RTC get RTC frequency compensation" - }, - { - 6183, - "Pmic_rtcGetFreqComp : Parameter validation for handle" - }, - { - 6287, - "Pmic_rtcGetFreqComp : Parameter validation for compensation" - }, - { - 6266, - "test_rtc_timer_irq : Test rtc timer interrupt" - }, - { - 6267, - "test_rtc_alarm_irq : Test rtc alarm interrupt" - }, - { - 6268, - "Pmic_rtcEnableTimerIntr : Parameter validation for handle" - }, - { - 6269, - "Pmic_rtcEnableAlarmIntr : Parameter validation for handle" - }, - { - 6194, - "Pmic_rtcGetStatus : RTC Live Status Validation RTC Current state Running" - }, - { - 6089, - "Pmic_rtcGetStatus : RTC Live Status Validation RTC Current state Frozen" - }, - { - 7465, - "Pmic_rtcGetRstStatus : Parameter validation for handle" - }, - { - 7466, - "Pmic_rtcGetRstStatus : Parameter validation for rtcRstStatus" - }, - { - 7467, - "Pmic_rtcGetRstStatus : Parameter validation for ValidParams" - }, - { - 7358, - "Pmic_fsmSetMissionState : RTC Wakeup using Timer Interrupt using LP Standby State" - }, - { - 7359, - "Pmic_fsmSetMissionState : RTC Wakeup using Alarm Interrupt using LP Standby State" - }, - { - 7888, - "test_rtc_timer_irq : Test rtc timer asynchronous interrupt" - }, - { - 7889, - "test_rtc_alarm_irq: Test rtc alarm asynchronous interrupt" - }, - { - 7860, - "Pmic_rtcEnable : Negative test for RTC state for HERA" - }, - { - 7861, - "Pmic_rtcEnableAlarmIntr : Negative test for RTC Alarm interrupt for HERA" - }, - { - 7862, - "Pmic_rtcEnableTimerIntr :Negative test for RTC Timer interrupt for HERA" - }, - { - 7863, - "Pmic_rtcGetFreqComp :Negative test for Test RTC for set RTC frequency compensation for HERA" - }, - { - 7864, - "Pmic_rtcSetTimeDateInfo : Negative test for Test RTC for Get Time for HERA" - }, - { - 7865, - "Pmic_rtcGetAlarmInfo : Negative test for Test RTC Get Alarm for HERA" - }, - { - 7866, - "Pmic_rtcSetAlarmInfo : Negative test for Set RTC Alarm interrupt for HERA" - }, - { - 7867, - "Pmic_rtcSetTimerPeriod : Negative test for Test Set RTC Timer interrupt Period for hera" - }, - { - 7868, - "Pmic_rtcGetTimerPeriod : Negative test for Test Get RTC Timer interrupt for hera" - }, - { - 7869, - "Pmic_getRtcStatus : Negative test for RTC Get Status for hera" - }, - { - 7870, - "Pmic_rtcGetTimeDateInfo : Negative test for Test RTC for Get Time for HERA" - }, - { - 7871, - "Pmic_rtcGetFreqComp : Negative test for Test RTC for get RTC frequency compensation for HERA" - }, - { - 8015, - "Pmic_fsmSetMissionState : RTC Wakeup using Timer Interrupt using Standby State" - }, - { - 8016, - "Pmic_fsmSetMissionState : RTC Wakeup using Alarm Interrupt using Standby State" - }, - { - 9895, - "Pmic_rtcGetStatus : Parameter validation for handle" - }, - { - 9896, - "Pmic_rtcGetStatus : Parameter validation for pRtcstatus" - }, - { - 9897, - "Pmic_rtcGetConfiguration : Parameter validation for handle" - }, - { - 9898, - "Pmic_rtcGetConfiguration : Parameter validation for pRtcCfg" - }, - { - 9899, - "Pmic_rtcClrRstStatus : Clear RTC Reset status using powerupStatus" - }, - { - 9900, - "Pmic_rtcClrRstStatus : Clear RTC Reset status using rtcRstStatus" - }, - { - 9901, - "Pmic_rtcClrRstStatus : Parameter validation for handle" - }, - { - 9902, - "Pmic_rtcClrRstStatus : Parameter validation for rtcRstStatType" - }, - { - 9903, - "Pmic_rtcSetConfiguration : Set 32K counter with compensation values" - }, - { - 9904, - "Pmic_rtcSetConfiguration : Configure Enable/Disable Crystal Oscillator" - }, - { - 9905, - "Pmic_rtcSetConfiguration: Configure RTC time to round the time to closest minute" - }, - { - 9907, - "Pmic_rtcSetConfiguration : Select RTC Time and Date Register read from Dynamic Registers" - }, - { - 9908, - "Pmic_rtcSetConfiguration : Select RTC Time and Date Register read from Static Shadowed Registers" - }, - { - 9909, - "Pmic_rtcSetConfiguration : Select Crystal Oscillator type as 9PF/ 6PF/ 12.5PF" - }, - { - 9910, - "Pmic_rtcSetConfiguration : Parameter validation for handle" - }, - { - 9911, - "Pmic_rtcSetConfiguration : Parameter validation for RTC Config Param - setRtcTimeRound30s" - }, - { - 9912, - "Pmic_rtcSetConfiguration : Parameter validation for RTC Config Param - timeDateRegSel" - }, - { - 9913, - "Pmic_rtcSetConfiguration : Parameter validation for RTC Config Param - crystalOScType" - }, - { - 9914, - "Pmic_rtcSetConfiguration : Parameter validation for RTC Config Param - set32KCounterCompVal" - }, - { - 10605, - "Pmic_rtcSetAlarmInfo : Parameter Validation for RTC day min value in Feb Month" - }, - { - 10606, - "Pmic_rtcSetAlarmInfo : Parameter Validation for RTC day min value" - }, - { - 10607, - "Pmic_rtcSetAlarmInfo : Parameter Validation for RTC day max value" - }, - { - 10608, - "Pmic_rtcSetAlarmInfo : Parameter Validation for RTC month min value" - }, - { - 10609, - "Pmic_rtcSetAlarmInfo : Parameter Validation for RTC month max value" - }, - { - 10610, - "Pmic_rtcSetAlarmInfo : Parameter Validation for RTC year min value" - }, - { - 10611, - "Pmic_rtcSetAlarmInfo : Parameter Validation for RTC weekday min value" - }, - { - 10612, - "Pmic_rtcSetAlarmInfo : Parameter Validation for RTC Meridian Mode" - }, - { - 10613, - "Pmic_rtcSetAlarmInfo : Parameter Validation for RTC weekday" - }, - { - 10614, - "Pmic_rtcSetAlarmInfo : Parameter Validation for dateCfg and timeCfg" - }, - { - 10615, - "Pmic_rtcSetTimeDateInfo : Parameter Validation for dateCfg and timeCfg" - }, - { - 10616, - "Pmic_rtcGetAlarmInfo : Parameter Validation for pDateCfg and pTimeCfg" - }, - { - 10617, - "Pmic_rtcGetTimeDateInfo : Parameter Validation for pDateCfg and pTimeCfg" - }, - { - 10618, - "Pmic_rtcGetRstStatus : Test to get RTC Power Up status" - }, - { - 10619, - "Pmic_rtcSetTimeDateInfo : Parameter validation to RTC day min value in leap year" - }, - { - 10620, - "Pmic_rtcGetTimeDateInfo : Test to set RTC timeDateRegSel as static shadowed registers" - }, - { - 10621, - "Pmic_rtcSetConfiguration : Test to set rtc configuration when RTC is started" - }, - { - 8814, - "Pmic_rtcTests: Added for Coverage" - }, -}; - -/*! - * \brief Set RTC Alarm interrupt - */ -static void test_pmic_rtc_testSetAlarm(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg = {PMIC_RTC_VALID_PARAM_TIME_CFG_VAL, 30U, 30U, - 6U, 0U, 1U}; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_VALID_PARAM_DATE_CFG_VAL, 15U, 6U, - 2055U, 1U}; - - Pmic_RtcTime_t timeCfg_rd; - Pmic_RtcDate_t dateCfg_rd; - - test_pmic_print_unity_testcase_info(5990, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - timeCfg.timeMode = PMIC_RTC_12_HOUR_MODE; - - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - timeCfg_rd.validParams = PMIC_RTC_VALID_PARAM_TIME_CFG_VAL; - dateCfg_rd.validParams = PMIC_RTC_VALID_PARAM_DATE_CFG_VAL; - status = Pmic_rtcGetAlarmInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - TEST_ASSERT_EQUAL(timeCfg.seconds, timeCfg_rd.seconds); - TEST_ASSERT_EQUAL(timeCfg.minutes, timeCfg_rd.minutes); - TEST_ASSERT_EQUAL(timeCfg.hour, timeCfg_rd.hour); - TEST_ASSERT_EQUAL(timeCfg.timeMode, timeCfg_rd.timeMode); - TEST_ASSERT_EQUAL(timeCfg.meridianMode, timeCfg_rd.meridianMode); - - TEST_ASSERT_EQUAL(dateCfg.day, dateCfg_rd.day); - TEST_ASSERT_EQUAL(dateCfg.month, dateCfg_rd.month); - TEST_ASSERT_EQUAL(dateCfg.year, dateCfg_rd.year); - - timeCfg.validParams = PMIC_RTC_VALID_PARAM_TIME_CFG_VAL; - dateCfg.validParams = PMIC_RTC_VALID_PARAM_DATE_CFG_VAL; - dateCfg.day = 1U; - dateCfg.month = 2U; - dateCfg.year = 2040U; - - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - timeCfg_rd.validParams = PMIC_RTC_VALID_PARAM_TIME_CFG_VAL; - dateCfg_rd.validParams = PMIC_RTC_VALID_PARAM_DATE_CFG_VAL; - status = Pmic_rtcGetAlarmInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - TEST_ASSERT_EQUAL(dateCfg.day, dateCfg_rd.day); - TEST_ASSERT_EQUAL(dateCfg.month, dateCfg_rd.month); - TEST_ASSERT_EQUAL(dateCfg.year, dateCfg_rd.year); - - dateCfg.month = 4U; - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcGetAlarmInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - TEST_ASSERT_EQUAL(dateCfg.month, dateCfg_rd.month); - - dateCfg.month = 9U; - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcGetAlarmInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - TEST_ASSERT_EQUAL(dateCfg.month, dateCfg_rd.month); - - dateCfg.month = 11U; - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcGetAlarmInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - TEST_ASSERT_EQUAL(dateCfg.month, dateCfg_rd.month); - - dateCfg.day = 15U; - dateCfg.month = 1U; - dateCfg.year = 2055U; - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcGetAlarmInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - TEST_ASSERT_EQUAL(dateCfg.day, dateCfg_rd.day); - TEST_ASSERT_EQUAL(dateCfg.month, dateCfg_rd.month); - TEST_ASSERT_EQUAL(dateCfg.year, dateCfg_rd.year); - - /* Checking for Valid Params PMIC_RTC_DATE_CFG_DAY_VALID and Valid - Params not equal to PMIC_RTC_DATE_CFG_MONTH_VALID */ - dateCfg.day = 1U; - dateCfg.validParams = PMIC_RTC_DATE_CFG_DAY_VALID_SHIFT; - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - dateCfg_rd.validParams = PMIC_RTC_DATE_CFG_DAY_VALID_SHIFT; - status = Pmic_rtcGetAlarmInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - TEST_ASSERT_EQUAL(dateCfg.day, dateCfg_rd.day); - - pmic_testResultUpdate_pass(5990, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for handle - */ -static void test_pmic_rtc_setAlarmInfoPrmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg = {PMIC_RTC_VALID_PARAM_TIME_CFG_VAL, 30U, 30U, 6U, - 0U, 1U}; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_VALID_PARAM_DATE_CFG_VAL, 15U, 6U, - 2055U,1U}; - - test_pmic_print_unity_testcase_info(5991, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - status = Pmic_rtcSetAlarmInfo(NULL, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - pmic_testResultUpdate_pass(5991, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for seconds - */ -static void test_pmic_rtc_setAlarmInfoPrmValTest_seconds(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg = {PMIC_RTC_TIME_CFG_SEC_VALID_SHIFT, 30U, 30U, - 6U, 0U, 1U}; - Pmic_RtcDate_t dateCfg = {0x00U, 15U, 6U, 2055U, 1U}; - - test_pmic_print_unity_testcase_info(6090, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - timeCfg.seconds = PMIC_RTC_INVALID_SEC_MINUTE; - - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_TIME, status); - - pmic_testResultUpdate_pass(6090, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for minutes - */ -static void test_pmic_rtc_setAlarmInfoPrmValTest_minutes(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg = {PMIC_RTC_TIME_CFG_MIN_VALID_SHIFT, 30U, 30U, - 6U, 0U, 1U}; - Pmic_RtcDate_t dateCfg = {0x00U, 15U, 6U, 2055U, 1U}; - - test_pmic_print_unity_testcase_info(6091, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - timeCfg.minutes = PMIC_RTC_INVALID_SEC_MINUTE; - - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_TIME, status); - - pmic_testResultUpdate_pass(6091, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for timeMode - */ -static void test_pmic_rtc_setAlarmInfoPrmValTest_timeMode(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg = {PMIC_RTC_TIME_CFG_TIMEMODE_VALID_SHIFT, 30U, - 30U, 6U, 0U, 1U}; - Pmic_RtcDate_t dateCfg = {0x00U, 15U, 6U, 2055U, 1U}; - - test_pmic_print_unity_testcase_info(6092, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - timeCfg.timeMode = PMIC_RTC_INVALID_TIME_MODE; - - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_TIME, status); - - pmic_testResultUpdate_pass(6092, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for meridianMode - */ -static void test_pmic_rtc_setAlarmInfoPrmValTest_meridianMode(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg = {PMIC_RTC_TIME_CFG_MERIDIAN_VALID_SHIFT, 30U, - 30U, 6U, 0U, 1U}; - Pmic_RtcDate_t dateCfg = {0x00U, 15U, 6U, 2055U, 1U}; - - test_pmic_print_unity_testcase_info(6093, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - timeCfg.timeMode = PMIC_RTC_12_HOUR_MODE; - timeCfg.meridianMode = PMIC_RTC_INVALID_MERIDIEN_MODE; - - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_TIME, status); - - pmic_testResultUpdate_pass(6093, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for hour when timeMode = 1 - */ -static void test_pmic_rtc_setAlarmInfoPrmValTest_hour12(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg = - {PMIC_RTC_VALID_PARAM_TIME_HRS_TIMEMODE_CFG_VAL, - 30U, 30U, 6U, 0U, 1U}; - Pmic_RtcDate_t dateCfg = {0x00U, 15U, 6U, 2055U, 1U}; - - test_pmic_print_unity_testcase_info(6094, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - timeCfg.timeMode = PMIC_RTC_12_HOUR_MODE; - timeCfg.hour = PMIC_RTC_INVALID_HOUR_13; - - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_TIME, status); - - pmic_testResultUpdate_pass(6094, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for hour when timeMode = 0 - */ -static void test_pmic_rtc_setAlarmInfoPrmValTest_hour24(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg = - {PMIC_RTC_VALID_PARAM_TIME_HRS_TIMEMODE_CFG_VAL, - 30U, 30U, 6U, 0U, 1U}; - Pmic_RtcDate_t dateCfg = {0x00U, 15U, 6U, 2055U, 1U}; - - test_pmic_print_unity_testcase_info(6095, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - timeCfg.timeMode = PMIC_RTC_24_HOUR_MODE; - timeCfg.hour = PMIC_RTC_INVALID_HOUR_25; - - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_TIME, status); - - pmic_testResultUpdate_pass(6095, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Negative test for hour = 0U, when timeMode = 1 - */ -static void test_pmic_rtc_setAlarmInfoPrmValTest_hour(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg = - {PMIC_RTC_VALID_PARAM_TIME_HRS_TIMEMODE_CFG_VAL, - 30U, 30U,6U, 0U, 1U}; - Pmic_RtcDate_t dateCfg = {0x00, 15U, 6U, 2055U, 1U}; - - test_pmic_print_unity_testcase_info(6096, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - timeCfg.timeMode = PMIC_RTC_12_HOUR_MODE; - timeCfg.hour = PMIC_RTC_HOUR_0; - - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_TIME, status); - - pmic_testResultUpdate_pass(6096, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Negative test for month = 0 - */ -static void test_pmic_rtc_setAlarmInfoPrmValTest_month(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg = {0x00U, 30U, 30U, 6U, 0U, 1U}; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_DATE_CFG_MONTH_VALID_SHIFT, 15U, 6U, - 2055U, 1U}; - - test_pmic_print_unity_testcase_info(6099, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - dateCfg.month = PMIC_RTC_INVALID_MONTH_0; - - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DATE, status); - - pmic_testResultUpdate_pass(6099, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Negative test for day = 0 - */ -static void test_pmic_rtc_setAlarmInfoPrmValTest_day(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg = {0x00U, 30U, 30U, 6U, 0U, 1U}; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_DATE_CFG_DAY_VALID_SHIFT, 15U, 6U, - 2055U, 1U}; - - dateCfg.day = PMIC_RTC_INVALID_DAY_0; - - test_pmic_print_unity_testcase_info(6100, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DATE, status); - - pmic_testResultUpdate_pass(6100, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter range validation for year - */ -static void test_pmic_rtc_setAlarmInfoPrmValTest_year(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg = {0U, 30U, 30U, 6U, 0U, 1U}; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_DATE_CFG_YEAR_VALID_SHIFT, 15U, 6U, - 2055U, 1U}; - - test_pmic_print_unity_testcase_info(6101, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - dateCfg.year = PMIC_RTC_INVALID_YEAR; - - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DATE, status); - - pmic_testResultUpdate_pass(6101, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter range validation for month - */ -static void test_pmic_rtc_setAlarmInfoPrmValTest_month_range(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg = {0U, 30U, 30U, 6U, 0U, 1U}; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_DATE_CFG_MONTH_VALID_SHIFT, 15U, 6U, - 2055U, 1U}; - - test_pmic_print_unity_testcase_info(6102, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - dateCfg.month = PMIC_RTC_INVALID_MONTH; - - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DATE, status); - - pmic_testResultUpdate_pass(6102, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter range validation for dayfor months with 30 days - */ -static void test_pmic_rtc_setAlarmInfoPrmValTest_day_month(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg = {0U, 30U, 30U, 6U, 0U, 1U}; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_VALID_PARAM_DATE_CFG_DAY_MNTH_VAL, - 15U, 6U,2055U, 1U}; - - test_pmic_print_unity_testcase_info(6103, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - dateCfg.month = PMIC_RTC_MONTH_APR; - dateCfg.day = PMIC_RTC_INVALID_DAY_31; - - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DATE, status); - - pmic_testResultUpdate_pass(6103, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter range validation for day for leap - * year(year %4 = 0 ) and month = 2 (february) - */ -static void test_pmic_rtc_setAlarmInfoPrmValTest_feb_leapyear(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg = {0x0U, 30U, 30U, 6U, 0U, 1U}; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_VALID_PARAM_DATE_CFG_DAY_MNTH_YR_VAL, - 15U, 6U,2055U, 1U}; - - test_pmic_print_unity_testcase_info(6104, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - dateCfg.month = PMIC_RTC_MONTH_FEB; - dateCfg.year = PMIC_RTC_YEAR_2044; - dateCfg.day = PMIC_RTC_INVALID_DAY_30; - - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DATE, status); - - pmic_testResultUpdate_pass(6104, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter range validation for day for Non-leap - * year(year %4 != 0 ) and month = 2 (february) - */ -static void test_pmic_rtc_setAlarmInfoPrmValTest_feb_nonleapyear(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg = {0U, 30U, 30U, 6U, 0U, 1U}; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_VALID_PARAM_DATE_CFG_DAY_MNTH_YR_VAL, - 15U, 6U,2055U, 1U}; - - test_pmic_print_unity_testcase_info(6107, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - dateCfg.month = PMIC_RTC_MONTH_FEB; - dateCfg.year = PMIC_RTC_YEAR_2045; - dateCfg.day = PMIC_RTC_INVALID_DAY; - - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DATE, status); - - pmic_testResultUpdate_pass(6107, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter range validation for day, for months with 31 days - */ -static void test_pmic_rtc_setAlarmInfoPrmValTest_day_month31(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg = {0U, 30U, 30U, 6U, 0U, 1U}; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_VALID_PARAM_DATE_CFG_DAY_MNTH_VAL, - 15U, 6U,2055U, 1U}; - - test_pmic_print_unity_testcase_info(6108, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - dateCfg.month = PMIC_RTC_MONTH_JUL; - dateCfg.day = PMIC_RTC_INVALID_DAY_32; - - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DATE, status); - - pmic_testResultUpdate_pass(6108, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Get RTC Alarm interrupt - */ -static void test_pmic_rtc_testGetAlarm(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg = {PMIC_RTC_VALID_PARAM_TIME_CFG_VAL, 30U, 30U, - 6U, 0U, 1U}; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_VALID_PARAM_DATE_CFG_VAL, 15U, 6U, - 2055U, 1U}; - - Pmic_RtcTime_t timeCfg_rd; - Pmic_RtcDate_t dateCfg_rd; - - test_pmic_print_unity_testcase_info(6109, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - timeCfg.timeMode = PMIC_RTC_12_HOUR_MODE; - - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - timeCfg_rd.validParams = 0x1FU; - dateCfg_rd.validParams = 0x1FU; - status = Pmic_rtcGetAlarmInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - TEST_ASSERT_EQUAL(timeCfg.seconds, timeCfg_rd.seconds); - TEST_ASSERT_EQUAL(timeCfg.minutes, timeCfg_rd.minutes); - TEST_ASSERT_EQUAL(timeCfg.hour, timeCfg_rd.hour); - TEST_ASSERT_EQUAL(timeCfg.timeMode, timeCfg_rd.timeMode); - TEST_ASSERT_EQUAL(timeCfg.meridianMode, timeCfg_rd.meridianMode); - - TEST_ASSERT_EQUAL(dateCfg.day, dateCfg_rd.day); - TEST_ASSERT_EQUAL(dateCfg.month, dateCfg_rd.month); - TEST_ASSERT_EQUAL(dateCfg.year, dateCfg_rd.year); - - pmic_testResultUpdate_pass(6109, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for handle - */ -static void test_pmic_rtc_getAlarmInfoPrmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg = {PMIC_RTC_VALID_PARAM_TIME_CFG_VAL, 30U, 30U, - 6U, 0U, 1U}; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_VALID_PARAM_DATE_CFG_VAL, 15U, 6U, - 2055U, 1U}; - - test_pmic_print_unity_testcase_info(6110, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - status = Pmic_rtcGetAlarmInfo(NULL, &timeCfg, &dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - pmic_testResultUpdate_pass(6110, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for timeCfg - */ -static void test_pmic_rtc_getAlarmInfoPrmValTest_timeCfg(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_VALID_PARAM_DATE_CFG_VAL, 15U, 6U, - 2055U, 1U}; - - test_pmic_print_unity_testcase_info(6111, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - status = Pmic_rtcGetAlarmInfo(pPmicCoreHandle, NULL, &dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, status); - - pmic_testResultUpdate_pass(6111, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for dataCfg - */ -static void test_pmic_rtc_getAlarmInfoPrmValTest_dateCfg(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg = {PMIC_RTC_VALID_PARAM_TIME_CFG_VAL, 30U, 30U, - 6U, 0U, 1U}; - - test_pmic_print_unity_testcase_info(6112, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - status = Pmic_rtcGetAlarmInfo(pPmicCoreHandle, &timeCfg, NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, status); - - pmic_testResultUpdate_pass(6112, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Test Set RTC Timer interrupt Period - */ -static void test_pmic_rtc_testSetTimer(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t timerPeriod, timerPeriod_rd; - - test_pmic_print_unity_testcase_info(6113, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - timerPeriod = PMIC_RTC_HOUR_INTR_PERIOD; - - status = Pmic_rtcSetTimerPeriod(pPmicCoreHandle, timerPeriod); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcGetTimerPeriod(pPmicCoreHandle, &timerPeriod_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - TEST_ASSERT_EQUAL(timerPeriod, timerPeriod_rd); - - pmic_testResultUpdate_pass(6113, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for handle - */ -static void test_pmic_rtc_setTimerPeriodPrmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t timerPeriod = PMIC_RTC_HOUR_INTR_PERIOD; - - test_pmic_print_unity_testcase_info(6114, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - status = Pmic_rtcSetTimerPeriod(NULL, timerPeriod); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - pmic_testResultUpdate_pass(6114, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for timerPeriod - */ -static void test_pmic_rtc_setTimerPeriodPrmValTest_timerPeriod(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t timerPeriod = PMIC_RTC_HOUR_INTR_PERIOD; - - test_pmic_print_unity_testcase_info(6115, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - timerPeriod = 5; - - status = Pmic_rtcSetTimerPeriod(pPmicCoreHandle, timerPeriod); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, status); - - pmic_testResultUpdate_pass(6115, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Test Get RTC Timer interrupt - */ -static void test_pmic_rtc_testGetTimer(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t timerPeriod, timerPeriod_rd; - - test_pmic_print_unity_testcase_info(6116, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - timerPeriod = PMIC_RTC_HOUR_INTR_PERIOD; - - status = Pmic_rtcSetTimerPeriod(pPmicCoreHandle, timerPeriod); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcGetTimerPeriod(pPmicCoreHandle, &timerPeriod_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - TEST_ASSERT_EQUAL(timerPeriod, timerPeriod_rd); - - pmic_testResultUpdate_pass(6116, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for handle - */ -static void test_pmic_rtc_getTimerPeriodPrmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t timerPeriod = PMIC_RTC_HOUR_INTR_PERIOD; - - test_pmic_print_unity_testcase_info(6117, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - status = Pmic_rtcGetTimerPeriod(NULL, &timerPeriod); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - pmic_testResultUpdate_pass(6117, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for timerPeriod - */ -static void test_pmic_rtc_getTimerPeriodPrmValTest_timerPeriod(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(6118, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - status = Pmic_rtcGetTimerPeriod(pPmicCoreHandle, NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, status); - - pmic_testResultUpdate_pass(6118, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Test RTC Disable - */ -static void test_pmic_rtc_testDisable(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(6119, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - status = Pmic_rtcEnable(pPmicCoreHandle, PMIC_RTC_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - pmic_testResultUpdate_pass(6119, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for handle - */ -static void test_pmic_rtc_disablePrmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(6120, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - status = Pmic_rtcEnable(NULL, PMIC_RTC_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - pmic_testResultUpdate_pass(6120, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Test RTC Enable - */ -static void test_pmic_rtc_testEnable(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(6121, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - status = Pmic_rtcEnable(pPmicCoreHandle, PMIC_RTC_START); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - pmic_testResultUpdate_pass(6121, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for handle - */ -static void test_pmic_rtc_enablePrmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(6122, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - status = Pmic_rtcEnable(NULL, PMIC_RTC_START); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - pmic_testResultUpdate_pass(6122, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Test RTC for Set Time - */ -static void test_pmic_rtc_testSetTime(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - /* To test this case user must ensure below condition: - * timeCfg.seconds sholud be in range (0 to 50) - * - * So that, other than seconds of time and date parameters - * are same as setRtc while reading back RTC parameters - * using GetRTC - */ - Pmic_RtcTime_t timeCfg = {PMIC_RTC_VALID_PARAM_TIME_CFG_VAL, 30U, 30U, 6U, - 0U, 1U}; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_VALID_PARAM_DATE_CFG_VAL, 15U, 6U, - 2055U, 1U}; - Pmic_RtcTime_t timeCfg_rd; - Pmic_RtcDate_t dateCfg_rd; - - test_pmic_print_unity_testcase_info(6158, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - timeCfg.timeMode = PMIC_RTC_12_HOUR_MODE; - - status = Pmic_rtcSetTimeDateInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - timeCfg_rd.validParams = PMIC_RTC_VALID_PARAM_TIME_CFG_VAL; - dateCfg_rd.validParams = PMIC_RTC_VALID_PARAM_DATE_CFG_VAL; - - status = Pmic_rtcGetTimeDateInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - TEST_ASSERT_EQUAL(timeCfg.minutes, timeCfg_rd.minutes); - TEST_ASSERT_EQUAL(timeCfg.hour, timeCfg_rd.hour); - TEST_ASSERT_EQUAL(timeCfg.timeMode, timeCfg_rd.timeMode); - TEST_ASSERT_EQUAL(timeCfg.meridianMode, timeCfg_rd.meridianMode); - - TEST_ASSERT_EQUAL(dateCfg.day, dateCfg_rd.day); - TEST_ASSERT_EQUAL(dateCfg.month, dateCfg_rd.month); - TEST_ASSERT_EQUAL(dateCfg.year, dateCfg_rd.year); - TEST_ASSERT_EQUAL(dateCfg.weekday, dateCfg_rd.weekday); - - dateCfg.month = 2U; - dateCfg.day = 2U; - status = Pmic_rtcSetTimeDateInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcGetTimeDateInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - TEST_ASSERT_EQUAL(dateCfg.day, dateCfg_rd.day); - TEST_ASSERT_EQUAL(dateCfg.month, dateCfg_rd.month); - - /* Checking for Valid Params not equal to PMIC_RTC_DATE_CFG_MONTH_VALID */ - dateCfg.validParams = PMIC_RTC_DATE_CFG_MONTH_VALID_SHIFT; - status = Pmic_rtcSetTimeDateInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcGetTimeDateInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - TEST_ASSERT_EQUAL(dateCfg.month, dateCfg_rd.month); - - /* Checking for Valid Params not equal to PMIC_RTC_DATE_CFG_YEAR_VALID */ - dateCfg.validParams = PMIC_RTC_DATE_CFG_YEAR_VALID_SHIFT; - status = Pmic_rtcSetTimeDateInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcGetTimeDateInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - TEST_ASSERT_EQUAL(dateCfg.year, dateCfg_rd.year); - - pmic_testResultUpdate_pass(6158, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for handle - */ -static void test_pmic_rtc_setTimePrmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg = {PMIC_RTC_VALID_PARAM_TIME_CFG_VAL, 30U, 30U, - 6U, 0U, 1U}; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_VALID_PARAM_DATE_CFG_VAL, 15U, 6U, - 2055U, 1U}; - - test_pmic_print_unity_testcase_info(6159, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - status = Pmic_rtcSetTimeDateInfo(NULL, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - pmic_testResultUpdate_pass(6159, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for seconds - */ -static void test_pmic_rtc_setTimePrmValTest_seconds(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg = {PMIC_RTC_TIME_CFG_SEC_VALID_SHIFT, 30U, 30U, - 6U, 0U, 1U}; - Pmic_RtcDate_t dateCfg = {0U, 15U, 6U, 2055U, 1U}; - - test_pmic_print_unity_testcase_info(6162, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - timeCfg.seconds = PMIC_RTC_INVALID_SEC_MINUTE; - - status = Pmic_rtcSetTimeDateInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_TIME, status); - - pmic_testResultUpdate_pass(6162, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for minutes - */ -static void test_pmic_rtc_setTimePrmValTest_minutes(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg = {PMIC_RTC_TIME_CFG_MIN_VALID_SHIFT, 30U, 30U, - 6U, 0U, 1U}; - Pmic_RtcDate_t dateCfg = {0U, 15U, 6U, 2055U, 1U}; - - test_pmic_print_unity_testcase_info(6163, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - timeCfg.minutes = PMIC_RTC_INVALID_SEC_MINUTE; - - status = Pmic_rtcSetTimeDateInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_TIME, status); - - pmic_testResultUpdate_pass(6163, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for timeMode - */ -static void test_pmic_rtc_setTimePrmValTest_timeMode(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg = {PMIC_RTC_TIME_CFG_TIMEMODE_VALID_SHIFT, 30U, - 30U, 6U, 0U, 1U}; - Pmic_RtcDate_t dateCfg = {0x0U, 15U, 6U, 2055U, 1U}; - - test_pmic_print_unity_testcase_info(6164, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - timeCfg.timeMode = PMIC_RTC_INVALID_TIME_MODE; - - status = Pmic_rtcSetTimeDateInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_TIME, status); - - pmic_testResultUpdate_pass(6164, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for meridianMode - */ -static void test_pmic_rtc_setTimePrmValTest_meridianMode(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg = {PMIC_RTC_TIME_CFG_MERIDIAN_VALID_SHIFT, 30U, 30U, - 6U, 0U, 1U}; - Pmic_RtcDate_t dateCfg = {0U, 15U, 6U, 2055U, 1U}; - - test_pmic_print_unity_testcase_info(6165, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - timeCfg.timeMode = PMIC_RTC_12_HOUR_MODE; - timeCfg.meridianMode = PMIC_RTC_INVALID_MERIDIEN_MODE; - status = Pmic_rtcSetTimeDateInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_TIME, status); - - pmic_testResultUpdate_pass(6165, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for hour when timeMode = 1 - */ -static void test_pmic_rtc_setTimePrmValTest_hour12(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg = - {PMIC_RTC_VALID_PARAM_TIME_HRS_TIMEMODE_CFG_VAL, - 30U, 30U, 6U, 0U, 1U}; - Pmic_RtcDate_t dateCfg = {0x0U, 15U, 6U, 2055U, 1U}; - - test_pmic_print_unity_testcase_info(6166, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - timeCfg.timeMode = PMIC_RTC_12_HOUR_MODE; - timeCfg.hour = PMIC_RTC_INVALID_HOUR_13; - - status = Pmic_rtcSetTimeDateInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_TIME, status); - - pmic_testResultUpdate_pass(6166, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for hour when timeMode = 0 - */ -static void test_pmic_rtc_setTimePrmValTest_hour24(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg = - {PMIC_RTC_VALID_PARAM_TIME_HRS_TIMEMODE_CFG_VAL, - 30U, 30U, 6U, 0U, 1U}; - Pmic_RtcDate_t dateCfg = {0x0U, 15U, 6U, 2055U, 1U}; - - test_pmic_print_unity_testcase_info(6167, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - timeCfg.timeMode = PMIC_RTC_12_HOUR_MODE; - timeCfg.hour = PMIC_RTC_INVALID_HOUR_25; - - status = Pmic_rtcSetTimeDateInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_TIME, status); - - pmic_testResultUpdate_pass(6167, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - -} - -/*! - * \brief Negative test for hour = 0U, when timeMode = 1 - */ -static void test_pmic_rtc_setTimePrmValTest_hour(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg = - {PMIC_RTC_VALID_PARAM_TIME_HRS_TIMEMODE_CFG_VAL, - 30U, 30U, 6U, 0U, 1U}; - Pmic_RtcDate_t dateCfg = {0U, 15U, 6U, 2055U, 1U}; - - test_pmic_print_unity_testcase_info(6168, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - timeCfg.timeMode = PMIC_RTC_12_HOUR_MODE; - timeCfg.hour = PMIC_RTC_INVALID_HOUR_0; - - status = Pmic_rtcSetTimeDateInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_TIME, status); - - pmic_testResultUpdate_pass(6168, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Negative test for month = 0 - */ -static void test_pmic_rtc_setTimePrmValTest_month(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg = {0U, 30U, 30U, 6U, 0U, 1U}; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_DATE_CFG_MONTH_VALID_SHIFT, 15U, 6U, - 2055U, 1U}; - - test_pmic_print_unity_testcase_info(6169, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - dateCfg.month = PMIC_RTC_INVALID_MONTH_0; - - status = Pmic_rtcSetTimeDateInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DATE, status); - - pmic_testResultUpdate_pass(6169, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Negative test for day = 0 - */ -static void test_pmic_rtc_setTimePrmValTest_day(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg = {0x0U, 30U, 30U, 6U, 0U, 1U}; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_DATE_CFG_DAY_VALID_SHIFT, 15U, 6U, - 2055U, 1U}; - - test_pmic_print_unity_testcase_info(6290, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - dateCfg.day = PMIC_RTC_INVALID_DAY_0; - - status = Pmic_rtcSetTimeDateInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DATE, status); - - pmic_testResultUpdate_pass(6290, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter range validation for year - */ -static void test_pmic_rtc_setTimePrmValTest_year(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg = {0x0U, 30U, 30U, 6U, 0U, 1U}; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_DATE_CFG_YEAR_VALID_SHIFT, 15U, 6U, - 2055U, 1U}; - - test_pmic_print_unity_testcase_info(7021, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - dateCfg.year = PMIC_RTC_INVALID_YEAR; - - status = Pmic_rtcSetTimeDateInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DATE, status); - - pmic_testResultUpdate_pass(7021, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter range validation for month - */ -static void test_pmic_rtc_setTimePrmValTest_pvmonth(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg = {0x0U, 30U, 30U, 6U, 0U, 1U}; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_DATE_CFG_MONTH_VALID_SHIFT, 15U, 6U, - 2055U, 1U}; - - test_pmic_print_unity_testcase_info(6170, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - dateCfg.month = PMIC_RTC_INVALID_MONTH; - - status = Pmic_rtcSetTimeDateInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DATE, status); - - pmic_testResultUpdate_pass(6170, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter range validation for day - */ -static void test_pmic_rtc_setTimePrmValTest_month_range(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg = {0U, 30U, 30U, 6U, 0U, 1U}; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_DATE_CFG_DAY_VALID_SHIFT, 15U, 6U, - 2055U, 1U}; - - test_pmic_print_unity_testcase_info(6171, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - dateCfg.day = PMIC_RTC_INVALID_DAY_32; - - status = Pmic_rtcSetTimeDateInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DATE, status); - - pmic_testResultUpdate_pass(6171, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter range validation for dayfor months with 30 days - */ -static void test_pmic_rtc_setTimePrmValTest_day_month(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg = {0x0, 30U, 30U, 6U, 0U, 1U}; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_VALID_PARAM_DATE_CFG_DAY_MNTH_VAL, 15U, - 6U, 2055U, 1U}; - - test_pmic_print_unity_testcase_info(6172, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - dateCfg.month = PMIC_RTC_MONTH_APR; - dateCfg.day = PMIC_RTC_INVALID_DAY_31; - - status = Pmic_rtcSetTimeDateInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DATE, status); - - pmic_testResultUpdate_pass(6172, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter range validation for day for leap - * year(year %4 = 0 ) and month = 2 (february) - */ -static void test_pmic_rtc_setTimePrmValTest_feb_leapyear(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg = {0x0U, 30U, 30U, 6U, 0U, 1U}; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_VALID_PARAM_DATE_CFG_DAY_MNTH_YR_VAL, - 15U, 6U, 2055U, 1U}; - - test_pmic_print_unity_testcase_info(6173, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - dateCfg.month = PMIC_RTC_MONTH_FEB; - dateCfg.year = PMIC_RTC_YEAR_2044; - dateCfg.day = PMIC_RTC_INVALID_DAY_30; - - status = Pmic_rtcSetTimeDateInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DATE, status); - - pmic_testResultUpdate_pass(6173, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter range validation for day for Non-leap - * year(year %4 != 0 ) and month = 2 (february) - */ -static void test_pmic_rtc_setTimePrmValTest_feb_nonleapyear(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg = {0U, 30U, 30U, 6U, 0U, 1U}; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_VALID_PARAM_DATE_CFG_DAY_MNTH_YR_VAL, - 15U, 6U, 2055U, 1U}; - - test_pmic_print_unity_testcase_info(6174, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - dateCfg.month = PMIC_RTC_MONTH_FEB; - dateCfg.year = 2045U; - dateCfg.day = PMIC_RTC_INVALID_DAY; - - status = Pmic_rtcSetTimeDateInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DATE, status); - - pmic_testResultUpdate_pass(6174, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter range validation for day, for months with 31 days - */ -static void test_pmic_rtc_setTimePrmValTest_day_month31(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg = {0U, 30U, 30U, 6U, 0U, 1U}; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_VALID_PARAM_DATE_CFG_DAY_MNTH_VAL, - 15U, 6U, 2055U, 1U}; - - test_pmic_print_unity_testcase_info(6175, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - dateCfg.month = PMIC_RTC_MONTH_JUL; - dateCfg.day = PMIC_RTC_INVALID_DAY_32; - - status = Pmic_rtcSetTimeDateInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DATE, status); - - pmic_testResultUpdate_pass(6175, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} -/*! - * \brief Test RTC for Get Time - */ -static void test_pmic_rtc_testGetTime(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - /* To test this case user must ensure below condition: - * timeCfg.seconds sholud be in range (0 to 50) - * - * So that, other than seconds of time and date parameters - * are same as setRtc while reading back RTC parameters - * using GetRTC - */ - Pmic_RtcTime_t timeCfg = {PMIC_RTC_VALID_PARAM_TIME_CFG_VAL, 30U, 30U, 6U, - 0U, 1U}; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_VALID_PARAM_DATE_CFG_VAL, 15U, 6U, - 2055U, 1U}; - Pmic_RtcTime_t timeCfg_rd; - Pmic_RtcDate_t dateCfg_rd; - - test_pmic_print_unity_testcase_info(6176, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - timeCfg.timeMode = PMIC_RTC_12_HOUR_MODE; - - status = Pmic_rtcSetTimeDateInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - timeCfg_rd.validParams = PMIC_RTC_VALID_PARAM_TIME_CFG_VAL; - dateCfg_rd.validParams = PMIC_RTC_VALID_PARAM_DATE_CFG_VAL; - - status = Pmic_rtcGetTimeDateInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - TEST_ASSERT_EQUAL(timeCfg.minutes, timeCfg_rd.minutes); - TEST_ASSERT_EQUAL(timeCfg.hour, timeCfg_rd.hour); - TEST_ASSERT_EQUAL(timeCfg.timeMode, timeCfg_rd.timeMode); - TEST_ASSERT_EQUAL(timeCfg.meridianMode, timeCfg_rd.meridianMode); - - TEST_ASSERT_EQUAL(dateCfg.day, dateCfg_rd.day); - TEST_ASSERT_EQUAL(dateCfg.month, dateCfg_rd.month); - TEST_ASSERT_EQUAL(dateCfg.year, dateCfg_rd.year); - TEST_ASSERT_EQUAL(dateCfg.weekday, dateCfg_rd.weekday); - - pmic_testResultUpdate_pass(6176, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for handle - */ -static void test_pmic_rtc_getTimePrmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg = {PMIC_RTC_VALID_PARAM_TIME_CFG_VAL, 30U, 30U, - 6U, 0U, 1U}; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_VALID_PARAM_DATE_CFG_VAL, 15U, 6U, - 2055U, 1U}; - - test_pmic_print_unity_testcase_info(6177, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - status = Pmic_rtcGetTimeDateInfo(NULL, &timeCfg, &dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - pmic_testResultUpdate_pass(6177, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for timeCfg - */ -static void test_pmic_rtc_getTimePrmValTest_timeCfg(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_VALID_PARAM_DATE_CFG_VAL, 15U, 6U, - 2055U, 1U}; - - test_pmic_print_unity_testcase_info(6178, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - status = Pmic_rtcGetTimeDateInfo(pPmicCoreHandle, NULL, &dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, status); - - pmic_testResultUpdate_pass(6178, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for dataCfg - */ -static void test_pmic_rtc_getTimePrmValTest_dateCfg(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg = {PMIC_RTC_VALID_PARAM_TIME_CFG_VAL, 30U, 30U, 6U, - 0U, 1U}; - - test_pmic_print_unity_testcase_info(6179, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - status = Pmic_rtcGetTimeDateInfo(pPmicCoreHandle, &timeCfg, NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, status); - - pmic_testResultUpdate_pass(6179, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Test RTC for set RTC frequency compensation - */ -static void test_pmic_rtc_testSetFreqComp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint16_t compensation = 34952; - uint16_t compensation_rd = 0U; - - test_pmic_print_unity_testcase_info(6180, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - status = Pmic_rtcSetFreqComp(pPmicCoreHandle, compensation); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcGetFreqComp(pPmicCoreHandle, &compensation_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - TEST_ASSERT_EQUAL(compensation_rd, compensation); - - pmic_testResultUpdate_pass(6180, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for handle - */ -static void test_pmic_rtc_setFreqCompPrmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint16_t compensation = 34952U; - - test_pmic_print_unity_testcase_info(6181, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - status = Pmic_rtcSetFreqComp(NULL, compensation); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - pmic_testResultUpdate_pass(6181, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Test RTC for get RTC frequency compensation - */ -static void test_pmic_rtc_testGetFreqComp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint16_t compensation = 34952U; - uint16_t compensation_rd; - - test_pmic_print_unity_testcase_info(6182, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - status = Pmic_rtcSetFreqComp(pPmicCoreHandle, compensation); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcGetFreqComp(pPmicCoreHandle, &compensation_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - TEST_ASSERT_EQUAL(compensation, compensation_rd); - - pmic_testResultUpdate_pass(6182, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for handle - */ -static void test_pmic_rtc_getFreqCompPrmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint16_t compensation = 34952U; - - test_pmic_print_unity_testcase_info(6183, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - status = Pmic_rtcGetFreqComp(NULL, &compensation); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - pmic_testResultUpdate_pass(6183, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for compensation - */ -static void test_pmic_rtc_getFreqCompPrmValTest_compensation(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(6287, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - status = Pmic_rtcGetFreqComp(pPmicCoreHandle, NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, status); - - pmic_testResultUpdate_pass(6287, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief RTC time interrupt - */ -static void test_pmic_rtc_testTimerIntr(void) -{ - int32_t status = PMIC_ST_SUCCESS; - int8_t timeout = 10U; - Pmic_CoreHandle_t *pHandle = NULL; - Pmic_RtcTime_t timeCfg_cr = { 0x1F, 0U, 0U, 0U, 0U, 0U}; - Pmic_RtcDate_t dateCfg_cr = { 0x0F, 0U, 0U, 0U, 0U}; - Pmic_RtcTime_t timeCfg_rd = { 0x1F, 0U, 0U, 0U, 0U, 0U}; - Pmic_RtcDate_t dateCfg_rd = { 0x0F, 0U, 0U, 0U, 0U}; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - uint8_t timerPeriod = 0U; - - Pmic_RtcDate_t validDateCfg = { 0x0F, 15U, 6U, 2055U, 1U}; - Pmic_RtcTime_t validTimeCfg = { 0x1F, 30U, 30U, 6U, 0U, 1U}; - - test_pmic_print_unity_testcase_info(6266, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - -#if defined(SOC_J7200) - if(PMIC_INTF_SPI == pPmicCoreHandle->commMode) - { - pmic_testResultUpdate_ignore(6266, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - } -#endif - - pHandle = pPmicCoreHandle; - - status = Pmic_rtcSetTimeDateInfo(pHandle, validTimeCfg, validDateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcGetTimeDateInfo(pHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - /* To clear the interrupts*/ - status = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcGetTimerPeriod(pHandle, &timerPeriod); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcSetTimerPeriod(pHandle, - PMIC_RTC_SECOND_INTR_PERIOD); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcEnableTimerIntr(pHandle, PMIC_RTC_TIMER_INTR_ENABLE); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - status = Pmic_irqGetErrStatus(pHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == status) && - ((errStat.intStatus[PMIC_TPS6594X_RTC_TIMER_INT/32U] & - (1U << (PMIC_TPS6594X_RTC_TIMER_INT % 32U))) != 0U)) - { - while(PMIC_TPS6594X_RTC_TIMER_INT != irqNum) - { - status = Pmic_getNextErrorStatus(pHandle, - &errStat, - &irqNum); - } - - if(PMIC_ST_SUCCESS == status) - { - /* clear the interrupt */ - status = Pmic_irqClrErrStatus(pPmicCoreHandle, - PMIC_TPS6594X_RTC_TIMER_INT); - } - - if(PMIC_ST_SUCCESS == status) - { - /* Disable the timer interrupt */ - status = Pmic_rtcEnableTimerIntr(pHandle, - PMIC_RTC_TIMER_INTR_DISABLE); - - break; - } - } - - status = Pmic_rtcGetTimeDateInfo(pHandle, &timeCfg_cr, &dateCfg_cr); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - } - - if(0 > timeout) - { - status = PMIC_ST_ERR_FAIL; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcSetTimerPeriod(pHandle, timerPeriod); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - pmic_testResultUpdate_pass(6266, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief RTC Alarm interrupt - */ -static void test_pmic_rtc_testAlarmIntr(void) -{ - int32_t status = PMIC_ST_SUCCESS; - int8_t timeout = 10U; - Pmic_CoreHandle_t *pHandle = NULL; - pHandle = pPmicCoreHandle; - Pmic_RtcTime_t timeCfg_cr = { 0x1F, 0U, 0U, 0U, 0U, 0U}; - Pmic_RtcDate_t dateCfg_cr = { 0x0F, 0U, 0U, 0U, 0U}; - Pmic_RtcTime_t timeCfg_rd = { 0x1F, 0U, 0U, 0U, 0U, 0U}; - Pmic_RtcDate_t dateCfg_rd = { 0x0F, 0U, 0U, 0U, 0U}; - Pmic_IrqStatus_t errStat = {0U}; - bool clearIRQ = false; - uint8_t irqNum = 0U; - Pmic_RtcDate_t validDateCfg = { 0x0F, 15U, 6U, 2055U, 1U}; - Pmic_RtcTime_t validTimeCfg = { 0x1F, 30U, 30U, 6U, 0U, 1U}; - - test_pmic_print_unity_testcase_info(6267, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - -#if defined(SOC_J7200) - if(PMIC_INTF_SPI == pPmicCoreHandle->commMode) - { - pmic_testResultUpdate_ignore(6267, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - } -#endif - - status = Pmic_rtcSetTimeDateInfo(pHandle, validTimeCfg, validDateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - /* Get the current time value */ - status = Pmic_rtcGetTimeDateInfo(pHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - /* To clear the interrupts*/ - status = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - timeCfg_rd.seconds = timeCfg_rd.seconds + 3U; - status = Pmic_rtcSetAlarmInfo(pHandle, timeCfg_rd, dateCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - /* Set Alarm Interupt */ - status = Pmic_rtcEnableAlarmIntr(pHandle, PMIC_RTC_ALARM_INTR_ENABLE); - /* Get the current time for timeout */ - status = Pmic_rtcGetTimeDateInfo(pHandle, &timeCfg_cr, &dateCfg_cr); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - while(timeout--) - { - /* Delay added to avoid timeout */ - Osal_delay(1000); - - status = Pmic_irqGetErrStatus(pHandle, &errStat, clearIRQ); - if((PMIC_ST_SUCCESS == status) && - ((errStat.intStatus[PMIC_TPS6594X_RTC_ALARM_INT/32U] & - (1U << (PMIC_TPS6594X_RTC_ALARM_INT % 32U))) != 0U)) - { - while(PMIC_TPS6594X_RTC_ALARM_INT != irqNum) - { - status = Pmic_getNextErrorStatus(pHandle, - &errStat, - &irqNum); - } - - if(PMIC_ST_SUCCESS == status) - { - /* clear the interrupt */ - status = Pmic_irqClrErrStatus(pPmicCoreHandle, - PMIC_TPS6594X_RTC_ALARM_INT); - } - - if(PMIC_ST_SUCCESS == status) - { - /* Interrupt received */ - /* Disable the alarm interrupt */ - status = Pmic_rtcEnableAlarmIntr(pHandle, - PMIC_RTC_ALARM_INTR_DISABLE); - - /* clear the interrupt */ - if(PMIC_ST_SUCCESS == status) - { - break; - } - } - } - - status = Pmic_rtcGetTimeDateInfo(pHandle, &timeCfg_cr, &dateCfg_cr); - if(PMIC_ST_SUCCESS != status) - { - break; - } - } - - if(0 > timeout) - { - status = PMIC_ST_ERR_FAIL; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - pmic_testResultUpdate_pass(6267, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for handle - */ -static void test_pmic_rtc_enableAlarmInterrupt_PrmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(6268, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - status = Pmic_rtcEnableAlarmIntr(NULL, PMIC_RTC_ALARM_INTR_DISABLE); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - pmic_testResultUpdate_pass(6268, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for handle - */ -static void test_pmic_rtc_enableTimerInterrupt_PrmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(6269, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - status = Pmic_rtcEnableTimerIntr(NULL, PMIC_RTC_TIMER_INTR_DISABLE); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - pmic_testResultUpdate_pass(6269, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief RTC Status Validation RTC Current state Running - */ -static void test_pmic_rtc_testGetStatus_running(void) -{ - int32_t status = PMIC_ST_SUCCESS; - bool rtcStatus; - - test_pmic_print_unity_testcase_info(6194, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - status = Pmic_rtcEnable(pPmicCoreHandle, PMIC_RTC_START); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcGetStatus(pPmicCoreHandle, &rtcStatus); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - TEST_ASSERT_EQUAL(PMIC_RTC_STATUS_RUNNING, rtcStatus); - - pmic_testResultUpdate_pass(6194, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief RTC Status Validation RTC Current state Frozen - */ -static void test_pmic_rtc_testGetStatus_frozen(void) -{ - int32_t status = PMIC_ST_SUCCESS; - bool rtcStatus; - - test_pmic_print_unity_testcase_info(6089, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - status = Pmic_rtcEnable(pPmicCoreHandle, PMIC_RTC_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcGetStatus(pPmicCoreHandle, &rtcStatus); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - TEST_ASSERT_EQUAL(PMIC_RTC_STATUS_FROZEN, rtcStatus); - - pmic_testResultUpdate_pass(6089, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for handle - */ -static void test_pmic_rtc_getRstStatus_PrmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcRstStatus_t pRtcRstStatus = {0}; - - test_pmic_print_unity_testcase_info(7465, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - status = Pmic_rtcEnable(pPmicCoreHandle, PMIC_RTC_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcGetRstStatus(NULL, &pRtcRstStatus); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - pmic_testResultUpdate_pass(7465, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for rtcStatus - */ -static void test_pmic_rtc_getRstStatus_PrmValTest_rtcStatus(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(7466, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - status = Pmic_rtcGetRstStatus(pPmicCoreHandle, NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, status); - - pmic_testResultUpdate_pass(7466, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for ValidParams - */ -static void test_pmic_rtc_getRstStatus_PrmValTest_validParams(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcRstStatus_t pRtcRstStatus = {0}; - - test_pmic_print_unity_testcase_info(7467, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - status = Pmic_rtcGetRstStatus(pPmicCoreHandle, &pRtcRstStatus); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INSUFFICIENT_CFG, status); - - pmic_testResultUpdate_pass(7467, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief RTC wakeup using time interrupt for LP Standby State - */ -static void test_pmic_rtc_testWakeup_TimerIntr_lpStandbyState(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreHandle_t *pHandle = NULL; - uint8_t timerPeriod = 0U; - int8_t num = 0; - Pmic_RtcDate_t validDateCfg = { 0x0F, 15U, 6U, 2055U, 1U}; - Pmic_RtcTime_t validTimeCfg = { 0x1F, 1U, 30U, 6U, 0U, 1U}; - Pmic_IrqStatus_t errStat = {0U}; - - test_pmic_print_unity_testcase_info(7358, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - /*Refer the Bug PDK-10450 for more details*/ - pmic_testResultUpdate_ignore(7358, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - } - - pHandle = pPmicCoreHandle; -#if defined(SOC_J721E) - pmic_log("\r\n Probe TP134 and TP133 and it should be High"); -#endif -#if defined(SOC_J7200) - pmic_log("\r\n Probe TP46 and TP29 and it should be High"); -#endif - pmic_log("\r\n Enter 1 to continue"); - UART_scanFmt("%d", &num); - - status = Pmic_rtcGetTimerPeriod(pHandle, &timerPeriod); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcSetTimerPeriod(pHandle, PMIC_RTC_MINUTE_INTR_PERIOD); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcSetTimeDateInfo(pHandle, validTimeCfg, validDateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - /* To clear the interrupts*/ - status = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - { - int i = 0; - for(i=0;i<4; i++) - { - pmic_log("\r\nINT STAT[%d]: 0x%08x", i, errStat.intStatus[i]); - } - } -#if defined(SOC_J721E) - pmic_log("\r\n Probe TP134 and TP133 and it should be low after 2 sec"); - - pmic_log("\r\n Probe TP134 and TP133 and it should be High after 60 sec"); -#endif -#if defined(SOC_J7200) - pmic_log("\r\n Probe TP46 and TP29 and it should be low after 2 sec"); - - pmic_log("\r\n Probe TP46 and TP29 and it should be High after 60 sec"); -#endif - - pmic_log("\r\n After 60sec Rerun the application in UART Boot mode"); - - pmic_log("\r\n Also check for RTC Timer interrupt in Interrupt status register"); - - status = Pmic_rtcEnableTimerIntr(pHandle, PMIC_RTC_TIMER_INTR_ENABLE); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmSetNsleepSignalMask(pHandle, - PMIC_NSLEEP1_SIGNAL, - PMIC_NSLEEPX_MASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmSetNsleepSignalMask(pHandle, - PMIC_NSLEEP2_SIGNAL, - PMIC_NSLEEPX_MASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - /* Needs Delay to mask Nsleep1B and Nsleep2B signals for LP Stand-By State */ - Osal_delay(10U); - - status = Pmic_fsmSetMissionState(pPmicCoreHandle, PMIC_FSM_LP_STANBY_STATE); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); -} - -/*! - * \brief RTC wakeup using time interrupt for Standby State - */ -static void test_pmic_rtc_testWakeup_TimerIntr_standbyState(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreHandle_t *pHandle = NULL; - uint8_t timerPeriod = 0U; - int8_t num = 0; - Pmic_IrqStatus_t errStat = {0U}; - - Pmic_RtcDate_t validDateCfg = { 0x0F, 15U, 6U, 2055U, 1U}; - Pmic_RtcTime_t validTimeCfg = { 0x1F, 0U, 30U, 6U, 0U, 1U}; - - test_pmic_print_unity_testcase_info(8015, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - pHandle = pPmicCoreHandle; -#if defined(SOC_J721E) - pmic_log("\r\n Probe TP134 and TP133 and it should be High"); -#endif -#if defined(SOC_J7200) - pmic_log("\r\n Probe TP46 and TP29 and it should be High"); -#endif - pmic_log("\r\n Enter 1 to continue"); - UART_scanFmt("%d", &num); - - status = Pmic_rtcSetTimeDateInfo(pHandle, validTimeCfg, validDateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcGetTimerPeriod(pHandle, &timerPeriod); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - /* To clear the interrupts*/ - status = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - { - int i = 0; - for(i=0;i<4; i++) - { - pmic_log("\r\nINT STAT[%d]: 0x%08x", i, errStat.intStatus[i]); - } - } -#if defined(SOC_J721E) - pmic_log("\r\n Probe TP134 and TP133 and it should be low after 2 sec"); - - pmic_log("\r\n Probe TP134 and TP133 and it should be High after 60 sec"); -#endif -#if defined(SOC_J7200) - pmic_log("\r\n Probe TP46 and TP29 and it should be low after 2 sec"); - - pmic_log("\r\n Probe TP46 and TP29 and it should be High after 60 sec"); -#endif - - pmic_log("\r\n After 60sec Rerun the application in UART Boot mode"); - - pmic_log("\r\n Also check for RTC Timer interrupt in Interrupt status register"); - - status = Pmic_rtcSetTimerPeriod(pHandle, - PMIC_RTC_MINUTE_INTR_PERIOD); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcEnableTimerIntr(pHandle, PMIC_RTC_TIMER_INTR_ENABLE); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmSetNsleepSignalMask(pHandle, - PMIC_NSLEEP1_SIGNAL, - PMIC_NSLEEPX_MASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmSetNsleepSignalMask(pHandle, - PMIC_NSLEEP2_SIGNAL, - PMIC_NSLEEPX_MASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - /* Needs Delay to mask Nsleep1B and Nsleep2B signals for Stand-By State */ - Osal_delay(10U); - - status = Pmic_fsmSetMissionState(pPmicCoreHandle, PMIC_FSM_STANBY_STATE); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); -} - -/*! - * \brief RTC wakeup using Alarm interrupt for Lp Standby State - */ -static void test_pmic_rtc_testWakeup_AlarmIntr_lpStandbyState(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreHandle_t *pHandle = NULL; - pHandle = pPmicCoreHandle; - Pmic_RtcTime_t timeCfg_cr = { 0x1F, 0U, 0U, 0U, 0U, 0U}; - Pmic_RtcDate_t dateCfg_cr = { 0x0F, 0U, 0U, 0U, 0U}; - Pmic_RtcTime_t timeCfg_rd = { 0U}; - Pmic_RtcDate_t dateCfg_rd = { 0U}; - Pmic_RtcDate_t validDateCfg = { 0x0F, 15U, 6U, 2055U, 1U}; - Pmic_RtcTime_t validTimeCfg = { 0x1F, 0U, 30U, 6U, 0U, 1U}; - int8_t num = 0; - Pmic_IrqStatus_t errStat = {0U}; - - test_pmic_print_unity_testcase_info(7359, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - -#if defined(SOC_J721E) - pmic_log("\r\n Probe TP134 and TP133 and it should be High"); -#endif -#if defined(SOC_J7200) - pmic_log("\r\n Probe TP46 and TP29 and it should be High"); -#endif - pmic_log("\r\n Enter 1 to continue"); - UART_scanFmt("%d", &num); - - status = Pmic_rtcSetTimeDateInfo(pHandle, validTimeCfg, validDateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - dateCfg_rd.validParams = 0xF; - timeCfg_rd.validParams = 0x1F; - - /* Get the current time value */ - status = Pmic_rtcGetTimeDateInfo(pHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - /* To clear the interrupts*/ - status = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - { - int i = 0; - for(i=0;i<4; i++) - { - pmic_log("\r\nINT STAT[%d]: 0x%08x", i, errStat.intStatus[i]); - } - } -#if defined(SOC_J721E) - pmic_log("\r\n Probe TP134 and TP133 and it should be low after 2 sec"); - - pmic_log("\r\n Probe TP134 and TP133 and it should be High after 60 sec"); -#endif -#if defined(SOC_J7200) - pmic_log("\r\n Probe TP46 and TP29 and it should be low after 2 sec"); - - pmic_log("\r\n Probe TP46 and TP29 and it should be High after 60 sec"); -#endif - - pmic_log("\r\n After 60sec Rerun the application in UART Boot mode"); - - pmic_log("\r\n Also check for RTC Alarm interrupt in Interrupt status register"); - - - timeCfg_rd.minutes = timeCfg_rd.minutes + 1U; - status = Pmic_rtcSetAlarmInfo(pHandle, timeCfg_rd, dateCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - /* Set Alarm Interupt */ - status = Pmic_rtcEnableAlarmIntr(pHandle, PMIC_RTC_ALARM_INTR_ENABLE); - - /* Get the current time for timeout */ - status = Pmic_rtcGetTimeDateInfo(pHandle, &timeCfg_cr, &dateCfg_cr); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmSetNsleepSignalMask(pHandle, - PMIC_NSLEEP1_SIGNAL, - PMIC_NSLEEPX_MASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmSetNsleepSignalMask(pHandle, - PMIC_NSLEEP2_SIGNAL, - PMIC_NSLEEPX_MASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - /* Needs Delay to mask Nsleep1B and Nsleep2B signals LP Stand-By State */ - Osal_delay(10U); - - status = Pmic_fsmSetMissionState(pPmicCoreHandle, PMIC_FSM_STANBY_STATE); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); -} - -/*! - * \brief RTC wakeup using Alarm interrupt for Standby State - */ -static void test_pmic_rtc_testWakeup_AlarmIntr_standbyState(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreHandle_t *pHandle = NULL; - pHandle = pPmicCoreHandle; - Pmic_RtcTime_t timeCfg_cr = { 0x1F, 0U, 0U, 0U, 0U, 0U}; - Pmic_RtcDate_t dateCfg_cr = { 0x0F, 0U, 0U, 0U, 0U}; - Pmic_RtcTime_t timeCfg_rd = { 0U}; - Pmic_RtcDate_t dateCfg_rd = { 0U}; - Pmic_RtcDate_t validDateCfg = { 0x0F, 15U, 6U, 2055U, 1U}; - Pmic_RtcTime_t validTimeCfg = { 0x1F, 0U, 30U, 6U, 0U, 1U}; - bool standByState = 0U; - int8_t num = 0; - Pmic_IrqStatus_t errStat = {0U}; - - test_pmic_print_unity_testcase_info(8016, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - -#if defined(SOC_J721E) - pmic_log("\r\n Probe TP134 and TP133 and it should be High"); -#endif -#if defined(SOC_J7200) - pmic_log("\r\n Probe TP46 and TP29 and it should be High"); -#endif - pmic_log("\r\n Enter 1 to continue"); - UART_scanFmt("%d", &num); - - status = Pmic_rtcSetTimeDateInfo(pHandle, validTimeCfg, validDateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - dateCfg_rd.validParams = 0xF; - timeCfg_rd.validParams = 0x1F; - - /* Get the current time value */ - status = Pmic_rtcGetTimeDateInfo(pHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - /* To clear the interrupts*/ - status = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - { - int i = 0; - for(i=0;i<4; i++) - { - pmic_log("\r\nINT STAT[%d]: 0x%08x", i, errStat.intStatus[i]); - } - } -#if defined(SOC_J721E) - pmic_log("\r\n Probe TP134 and TP133 and it should be low after 2 sec"); - - pmic_log("\r\n Probe TP134 and TP133 and it should be High after 60 sec"); -#endif -#if defined(SOC_J7200) - pmic_log("\r\n Probe TP46 and TP29 and it should be low after 2 sec"); - - pmic_log("\r\n Probe TP46 and TP29 and it should be High after 60 sec"); -#endif - - pmic_log("\r\n After 60sec Rerun the application in UART Boot mode"); - - pmic_log("\r\n Also check for RTC Alarm interrupt in Interrupt status register"); - - timeCfg_rd.minutes = timeCfg_rd.minutes + 1U; - status = Pmic_rtcSetAlarmInfo(pHandle, timeCfg_rd, dateCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - /* Set Alarm Interupt */ - status = Pmic_rtcEnableAlarmIntr(pHandle, PMIC_RTC_ALARM_INTR_ENABLE); - - /* Get the current time for timeout */ - status = Pmic_rtcGetTimeDateInfo(pHandle, &timeCfg_cr, &dateCfg_cr); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmSetNsleepSignalMask(pHandle, - PMIC_NSLEEP1_SIGNAL, - PMIC_NSLEEPX_MASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmSetNsleepSignalMask(pHandle, - PMIC_NSLEEP2_SIGNAL, - PMIC_NSLEEPX_MASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - /* Needs Delay to mask Nsleep1B and Nsleep2B signals for Stand-By State */ - Osal_delay(10U); - - status = Pmic_fsmSetMissionState(pPmicCoreHandle, standByState); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); -} - -/*! - * \brief RTC timer Asynchronous Interrupt - */ -static void test_pmic_rtc_testTimerAsyncIntr(void) -{ - int32_t status = PMIC_ST_SUCCESS; - int8_t timeout = 10U; - Pmic_CoreHandle_t *pHandle = NULL; - uint8_t timerPeriod = 0U; - Pmic_IrqStatus_t errStat = {0U}; - Pmic_RtcDate_t validDateCfg = { 0x0F, 15U, 6U, 2055U, 1U}; - Pmic_RtcTime_t validTimeCfg = { 0x1F, 30U, 30U, 6U, 0U, 1U}; - - test_pmic_print_unity_testcase_info(7888, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - -#if ((defined(SOC_J7200) && (defined(BUILD_MCU2_0) || defined(BUILD_MCU2_1))) || \ - (defined(SOC_J721E) && (defined(BUILD_MCU3_0) || defined(BUILD_MCU3_1)))) - /*Refer the Bug-PDK-10394 for more details*/ - pmic_testResultUpdate_ignore(7888, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -#endif - /* Enable GPIO interrupt on the specific gpio pin */ - GPIO_enableInt(0); - - pHandle = pPmicCoreHandle; - pmic_intr_triggered = 0U; - - status = Pmic_rtcSetTimeDateInfo(pHandle, validTimeCfg, validDateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - /* To clear the interrupts*/ - status = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcGetTimerPeriod(pHandle, &timerPeriod); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcSetTimerPeriod(pHandle, - PMIC_RTC_SECOND_INTR_PERIOD); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcEnableTimerIntr(pHandle, PMIC_RTC_TIMER_INTR_ENABLE); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - while(timeout--) - { - /* Wait for Interrupt */ - if(pmic_intr_triggered != 1U) - { - status = PMIC_ST_ERR_FAIL; - } - else - { - status = PMIC_ST_SUCCESS; - break; - } - - /* Delay added to avoid timeout */ - Osal_delay(1000); - } - - if(0 > timeout) - { - status = PMIC_ST_ERR_FAIL; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - /* Disable the timer interrupt */ - status = Pmic_rtcEnableTimerIntr(pHandle, PMIC_RTC_TIMER_INTR_DISABLE); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcSetTimerPeriod(pHandle, timerPeriod); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - /* Disable GPIO interrupt on the specific gpio pin */ - GPIO_disableInt(0); - - pmic_testResultUpdate_pass(7888, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief RTC Alarm Asynchronous interrupt - */ -static void test_pmic_rtc_testAlarmAsyncIntr(void) -{ - int32_t status = PMIC_ST_SUCCESS; - int8_t timeout = 10U; - Pmic_CoreHandle_t *pHandle = NULL; - pHandle = pPmicCoreHandle; - Pmic_RtcTime_t timeCfg_rd = { 0x1F, 0U, 0U, 0U, 0U, 0U}; - Pmic_RtcDate_t dateCfg_rd = { 0x0F, 0U, 0U, 0U, 0U}; - Pmic_RtcDate_t validDateCfg = { 0x0F, 15U, 6U, 2055U, 1U}; - Pmic_RtcTime_t validTimeCfg = { 0x1F, 30U, 30U, 6U, 0U, 1U}; - Pmic_IrqStatus_t errStat = {0U}; - - test_pmic_print_unity_testcase_info(7889, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - -#if ((defined(SOC_J7200) && (defined(BUILD_MCU2_0) || defined(BUILD_MCU2_1))) || \ - (defined(SOC_J721E) && (defined(BUILD_MCU3_0) || defined(BUILD_MCU3_1)))) - /*Refer the Bug-PDK-10394 for more details*/ - pmic_testResultUpdate_ignore(7889, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -#endif - /* Enable GPIO interrupt on the specific gpio pin */ - GPIO_enableInt(0); - - pmic_intr_triggered = 0U; - - status = Pmic_rtcSetTimeDateInfo(pHandle, validTimeCfg, validDateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - /* To clear the interrupts*/ - status = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - /* Get the current time value */ - status = Pmic_rtcGetTimeDateInfo(pHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - timeCfg_rd.seconds = timeCfg_rd.seconds + 3U; - status = Pmic_rtcSetAlarmInfo(pHandle, timeCfg_rd, dateCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - /* Set Alarm Interupt */ - status = Pmic_rtcEnableAlarmIntr(pHandle, PMIC_RTC_ALARM_INTR_ENABLE); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - while(timeout--) - { - /* Wait for Interrupt */ - if(pmic_intr_triggered != 2U) - { - status = PMIC_ST_ERR_FAIL; - } - else - { - status = PMIC_ST_SUCCESS; - break; - } - - /* Delay added to avoid timeout */ - Osal_delay(1000); - } - - if(0 > timeout) - { - status = PMIC_ST_ERR_FAIL; - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - /* Disable the timer interrupt */ - status = Pmic_rtcEnableTimerIntr(pHandle, PMIC_RTC_TIMER_INTR_DISABLE); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - /* Disable GPIO interrupt on the specific gpio pin */ - GPIO_disableInt(0); - - pmic_testResultUpdate_pass(7889, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_rtcEnable : Negative test for RTC state for HERA - */ -static void test_Pmic_rtcEnable_hera(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(7860, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(7860, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - } - status = Pmic_rtcEnable(pPmicCoreHandle, PMIC_RTC_START); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, status); - - pmic_testResultUpdate_pass(7860, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - -} - -/*! - * \brief Pmic_rtcEnableAlarmIntr : Negative test for RTC Alarm interrupt for HERA - */ -static void test_Pmic_rtcEnableAlarmIntr_hera(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(7861, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(7861, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - } - - status = Pmic_rtcEnableAlarmIntr(pPmicCoreHandle, PMIC_RTC_ALARM_INTR_DISABLE); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, status); - - pmic_testResultUpdate_pass(7861, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - -} - -/*! - * \brief Pmic_rtcEnableTimerIntr :Negative test for RTC Timer interrupt for HERA - */ -static void test_Pmic_rtcEnableTimerIntr_hera(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(7862, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - } - - test_pmic_print_unity_testcase_info(7862, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - status = Pmic_rtcEnableTimerIntr(pPmicCoreHandle, PMIC_RTC_TIMER_INTR_DISABLE); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, status); - - pmic_testResultUpdate_pass(7862, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - -} - -/*! - * \brief Pmic_rtcGetFreqComp :Negative test for Test RTC for set RTC frequency compensation for HERA - */ -static void test_pmic_rtc_testSetFreqComp_hera(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint16_t compensation_rd = 34952; - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(7863, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - } - - test_pmic_print_unity_testcase_info(7863, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - status = Pmic_rtcSetFreqComp(pPmicCoreHandle, compensation_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, status); - - pmic_testResultUpdate_pass(7863, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - -} - -/*! - * \brief Pmic_rtcSetTimeDateInfo : Negative test for Test RTC for Set Time for HERA - */ -static void test_Pmic_rtcSetTimeDateInfo_hera(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(7864, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - } - Pmic_RtcTime_t timeCfg = {PMIC_RTC_VALID_PARAM_TIME_CFG_VAL, 30U, 30U, 6U, - 0U, 1U}; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_VALID_PARAM_DATE_CFG_VAL, 15U, 6U, - 2055U, 1U}; - - test_pmic_print_unity_testcase_info(7864, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - timeCfg.timeMode = PMIC_RTC_12_HOUR_MODE; - - status = Pmic_rtcSetTimeDateInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, status); - - pmic_testResultUpdate_pass(7864, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - -} - -/*! - * \brief Pmic_rtcGetAlarmInfo : Negative test for Test RTC Get Alarm for HERA - */ -static void test_Pmic_rtcGetAlarmInfo_hera(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - Pmic_RtcTime_t timeCfg_rd; - Pmic_RtcDate_t dateCfg_rd; - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(7865, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - } - - test_pmic_print_unity_testcase_info(7865, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - status = Pmic_rtcGetAlarmInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, status); - - pmic_testResultUpdate_pass(7865, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_rtcSetAlarmInfo : Negative test for Set RTC Alarm interrupt for HERA - */ -static void test_pmic_rtc_testSetAlarm_hera(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(7866, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - } - - Pmic_RtcTime_t timeCfg = {PMIC_RTC_VALID_PARAM_TIME_CFG_VAL, 30U, 30U, - 6U, 0U, 1U}; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_VALID_PARAM_DATE_CFG_VAL, 15U, 6U, - 2055U, 1U}; - - test_pmic_print_unity_testcase_info(7866, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - timeCfg.timeMode = PMIC_RTC_12_HOUR_MODE; - - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, status); - - pmic_testResultUpdate_pass(7866, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - - -/*! - * \brief Pmic_rtcSetTimerPeriod : Negative test for Test Set RTC Timer interrupt Period for hera - */ -static void test_pmic_rtc_testSetTimer_hera(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t timerPeriod; - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(7867, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - } - - test_pmic_print_unity_testcase_info(7867, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - timerPeriod = PMIC_RTC_HOUR_INTR_PERIOD; - - status = Pmic_rtcSetTimerPeriod(pPmicCoreHandle, timerPeriod); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, status); - - pmic_testResultUpdate_pass(7867, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_rtcGetTimerPeriod : Negative test for Test Get RTC Timer period for hera - */ -static void test_pmic_rtc_testGetTimer_hera(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t timerPeriod_rd; - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(7868, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - } - - test_pmic_print_unity_testcase_info(7868, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - status = Pmic_rtcGetTimerPeriod(pPmicCoreHandle, &timerPeriod_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, status); - - pmic_testResultUpdate_pass(7868, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - - -/*! - * \brief Pmic_rtcGetRstStatus : Negative test for RTC Get Status for hera - */ -static void test_pmic_rtc_testGetRstStatus_running_hera(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcRstStatus_t pRtcRstStatus = {0}; - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(7869, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - } - - test_pmic_print_unity_testcase_info(7869, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - pRtcRstStatus.validParams |= PMIC_RTC_RESET_STATUS_VALID_SHIFT; - status = Pmic_rtcGetRstStatus(pPmicCoreHandle, &pRtcRstStatus); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, status); - - pmic_testResultUpdate_pass(7869, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - - -/*! - * \brief Pmic_rtcGetTimeDateInfo : Negative test for Test RTC for Get Time for HERA - */ -static void test_pmic_rtc_testGetTime_hera(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg_rd; - Pmic_RtcDate_t dateCfg_rd; - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(7870, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - } - - test_pmic_print_unity_testcase_info(7870, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - timeCfg_rd.validParams = PMIC_RTC_VALID_PARAM_TIME_CFG_VAL; - dateCfg_rd.validParams = PMIC_RTC_VALID_PARAM_DATE_CFG_VAL; - - status = Pmic_rtcGetTimeDateInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, status); - - pmic_testResultUpdate_pass(7870, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_rtcGetFreqComp : Negative test for Test RTC for get RTC frequency compensation for HERA - */ -static void test_pmic_rtc_testGetFreqComp_hera(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint16_t compensation_rd = 0U; - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pmic_testResultUpdate_ignore(7871, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - } - - test_pmic_print_unity_testcase_info(7871, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - status = Pmic_rtcGetFreqComp(pPmicCoreHandle, &compensation_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, status); - - pmic_testResultUpdate_pass(7871, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - - -/*! - * \brief Pmic_rtcSetAlarmInfo : Parameter Validation for RTC day min value in Feb Month - */ -static void test_pmic_rtc_setAlarmInfoPrmValTest_febMonth_day(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_VALID_PARAM_DATE_CFG_VAL, 15U, 6U, - 2055U, 1U}; - Pmic_RtcTime_t timeCfg = {PMIC_RTC_VALID_PARAM_TIME_CFG_VAL, 30U, 30U, - 6U, 1U, 1U}; - - test_pmic_print_unity_testcase_info(10605, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - dateCfg.month = 2U; - dateCfg.day = 0U; - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DATE, status); - - pmic_testResultUpdate_pass(10605, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_rtcSetAlarmInfo : Parameter Validation for RTC day min value - */ -static void test_pmic_rtc_setAlarmInfoPrmValTest_day_min(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_VALID_PARAM_DATE_CFG_VAL, 15U, 6U, - 2055U, 1U}; - Pmic_RtcTime_t timeCfg = {PMIC_RTC_VALID_PARAM_TIME_CFG_VAL, 30U, 30U, - 6U, 1U, 1U}; - - test_pmic_print_unity_testcase_info(10606, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - dateCfg.month = 1U; - dateCfg.day = 0U; - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DATE, status); - - pmic_testResultUpdate_pass(10606, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_rtcSetAlarmInfo : Parameter Validation for RTC day max value - */ -static void test_pmic_rtc_setAlarmInfoPrmValTest_day_max(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_VALID_PARAM_DATE_CFG_VAL, 15U, 6U, - 2055U, 1U}; - Pmic_RtcTime_t timeCfg = {PMIC_RTC_VALID_PARAM_TIME_CFG_VAL, 30U, 30U, - 6U, 1U, 1U}; - - test_pmic_print_unity_testcase_info(10607, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - dateCfg.month = 1U; - dateCfg.day = 32U; - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DATE, status); - - pmic_testResultUpdate_pass(10607, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_rtcSetAlarmInfo : Parameter Validation for RTC month min value - */ -static void test_pmic_rtc_setAlarmInfoPrmValTest_month_min(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_VALID_PARAM_DATE_CFG_VAL, 15U, 6U, - 2055U, 1U}; - Pmic_RtcTime_t timeCfg = {PMIC_RTC_VALID_PARAM_TIME_CFG_VAL, 30U, 30U, - 6U, 1U, 1U}; - - test_pmic_print_unity_testcase_info(10608, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - dateCfg.month = 0U; - dateCfg.day = 1U; - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DATE, status); - - pmic_testResultUpdate_pass(10608, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_rtcSetAlarmInfo : Parameter Validation for RTC month max value - */ -static void test_pmic_rtc_setAlarmInfoPrmValTest_month_max(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_VALID_PARAM_DATE_CFG_VAL, 15U, 6U, - 2055U, 1U}; - Pmic_RtcTime_t timeCfg = {PMIC_RTC_VALID_PARAM_TIME_CFG_VAL, 30U, 30U, - 6U, 1U, 1U}; - - test_pmic_print_unity_testcase_info(10609, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - dateCfg.month = 13U; - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DATE, status); - - pmic_testResultUpdate_pass(10609, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_rtcSetAlarmInfo : Parameter Validation for RTC year min value - */ -static void test_pmic_rtc_setAlarmInfoPrmValTest_year_min(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_VALID_PARAM_DATE_CFG_VAL, 15U, 6U, - 2055U, 1U}; - Pmic_RtcTime_t timeCfg = {PMIC_RTC_VALID_PARAM_TIME_CFG_VAL, 30U, 30U, - 6U, 1U, 1U}; - - test_pmic_print_unity_testcase_info(10610, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - dateCfg.month = 12U; - dateCfg.year = 1996U; - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DATE, status); - - pmic_testResultUpdate_pass(10610, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_rtcSetAlarmInfo : Parameter Validation for RTC weekday min value - */ -static void test_pmic_rtc_setAlarmInfoPrmValTest_weekday_min(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_VALID_PARAM_DATE_CFG_VAL, 15U, 6U, - 2055U, 1U}; - Pmic_RtcTime_t timeCfg = {PMIC_RTC_VALID_PARAM_TIME_CFG_VAL, 30U, 30U, - 6U, 1U, 1U}; - - test_pmic_print_unity_testcase_info(10611, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - dateCfg.year = 2055U; - dateCfg.weekday =0U; - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DATE, status); - - pmic_testResultUpdate_pass(10611, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_rtcSetAlarmInfo : Parameter Validation for RTC Meridian Mode - */ -static void test_pmic_rtc_setAlarmInfoPrmValTest_meridianMode_12HrMode(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_VALID_PARAM_DATE_CFG_VAL, 15U, 6U, - 2055U, 1U}; - Pmic_RtcTime_t timeCfg = {PMIC_RTC_VALID_PARAM_TIME_CFG_VAL, 30U, 30U, - 6U, 1U, 1U}; - - test_pmic_print_unity_testcase_info(10612, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - /* Checking for valid params Hrs and Timemode for invalid meridianMode */ - timeCfg.validParams = PMIC_RTC_TIME_CFG_HRS_VALID_SHIFT | - PMIC_RTC_TIME_CFG_TIMEMODE_VALID_SHIFT; - timeCfg.meridianMode = 0x2U; - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_TIME, status); - - pmic_testResultUpdate_pass(10612, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_rtcSetAlarmInfo : Parameter Validation for RTC weekday - */ -static void test_pmic_rtc_setAlarmInfoPrmValTest_weekday(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_VALID_PARAM_DATE_CFG_VAL, 15U, 6U, - 2055U, 1U}; - Pmic_RtcTime_t timeCfg = {PMIC_RTC_VALID_PARAM_TIME_CFG_VAL, 30U, 30U, - 6U, 1U, 1U}; - - test_pmic_print_unity_testcase_info(10613, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - timeCfg.meridianMode = 1U; - dateCfg.weekday = 8U; - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DATE, status); - - pmic_testResultUpdate_pass(10613, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_rtcSetAlarmInfo : Parameter Validation for dateCfg and timeCfg - */ -static void test_pmic_rtc_setAlarmInfoPrmValTest_dateTimeCfg(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_VALID_PARAM_DATE_CFG_VAL, 15U, 6U, - 2055U, 1U}; - Pmic_RtcTime_t timeCfg = {PMIC_RTC_VALID_PARAM_TIME_CFG_VAL, 30U, 30U, - 6U, 1U, 1U}; - - test_pmic_print_unity_testcase_info(10614, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - dateCfg.weekday = 1U; - dateCfg.validParams = 0U; - timeCfg.validParams = 0U; - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INSUFFICIENT_CFG, status); - - pmic_testResultUpdate_pass(10614, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_rtcSetTimeDateInfo : Parameter Validation for dateCfg and timeCfg - */ -static void test_pmic_rtc_setTimeDateInfoPrmValTest_dateTimeCfg(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_VALID_PARAM_DATE_CFG_VAL, 15U, 6U, - 2055U, 1U}; - Pmic_RtcTime_t timeCfg = {PMIC_RTC_VALID_PARAM_TIME_CFG_VAL, 30U, 30U, - 6U, 1U, 1U}; - - test_pmic_print_unity_testcase_info(10615, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - dateCfg.weekday = 1U; - dateCfg.validParams = 0U; - timeCfg.validParams = 0U; - status = Pmic_rtcSetTimeDateInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INSUFFICIENT_CFG, status); - - pmic_testResultUpdate_pass(10615, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_rtcGetAlarmInfo : Parameter Validation for pDateCfg and pTimeCfg - */ -static void test_pmic_rtc_getAlarmInfoPrmValTest_pDatePtimeCfg(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg_rd; - Pmic_RtcDate_t dateCfg_rd; - - test_pmic_print_unity_testcase_info(10616, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - timeCfg_rd.validParams = 0x0U; - dateCfg_rd.validParams = 0x0U; - status = Pmic_rtcGetAlarmInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INSUFFICIENT_CFG, status); - - pmic_testResultUpdate_pass(10616, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_rtcGetTimeDateInfo : Parameter Validation for pDateCfg and pTimeCfg - */ -static void test_pmic_rtc_getTimeDateInfoPrmValTest_pDatePtimeCfg(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcTime_t timeCfg_rd; - Pmic_RtcDate_t dateCfg_rd; - - test_pmic_print_unity_testcase_info(10617, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - timeCfg_rd.validParams = 0x0U; - dateCfg_rd.validParams = 0x0U; - status = Pmic_rtcGetTimeDateInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INSUFFICIENT_CFG, status); - - pmic_testResultUpdate_pass(10617, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_rtcGetRstStatus : Test to get RTC Power Up status - */ -static void test_pmic_rtc_getRstStatus_powerUpStatus(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcRstStatus_t pRtcRstStatus = {0}; - - test_pmic_print_unity_testcase_info(10618, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - pRtcRstStatus.validParams |= PMIC_RTC_POWERUP_STATUS_VALID_SHIFT; - status = Pmic_rtcGetRstStatus(pPmicCoreHandle, &pRtcRstStatus); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - pmic_testResultUpdate_pass(10618, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_rtcSetTimeDateInfo : Parameter validation to day min value in leap year - */ -static void test_pmic_rtc_setTimeDateInfoPrmValTest_day_min_leapyear(void) -{ - int32_t status = PMIC_ST_SUCCESS; - - Pmic_RtcTime_t timeCfg = {PMIC_RTC_VALID_PARAM_TIME_CFG_VAL, 30U, 30U, 6U, - 0U, 1U}; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_VALID_PARAM_DATE_CFG_VAL, 15U, 6U, - 2055U, 1U}; - - test_pmic_print_unity_testcase_info(10619, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - dateCfg.validParams = PMIC_RTC_DATE_CFG_DAY_VALID_SHIFT | - PMIC_RTC_DATE_CFG_YEAR_VALID_SHIFT | - PMIC_RTC_DATE_CFG_MONTH_VALID_SHIFT; - dateCfg.month = 2U; - dateCfg.year = 2056U; - dateCfg.day = 0U; - status = Pmic_rtcSetTimeDateInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DATE, status); - - pmic_testResultUpdate_pass(10619, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_rtcGetTimeDateInfo : Test to set RTC timeDateRegSel as static shadowed registers - */ -static void test_pmic_rtc_getTimeDateInfo_timeDateRegSel_staticShadow(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreHandle_t *pHandle = NULL; - pHandle = pPmicCoreHandle; - Pmic_RtcCfg_t rtcCfg_rd = {PMIC_RTC_CFG_TIME_DATE_REG_SEL_VALID_SHIFT,}; - Pmic_RtcCfg_t rtcCfg_default = {PMIC_RTC_CFG_TIME_DATE_REG_SEL_VALID_SHIFT,}; - Pmic_RtcCfg_t rtcCfg = - { - PMIC_RTC_CFG_TIME_DATE_REG_SEL_VALID_SHIFT, - PMIC_RTC_CRYSTAL_OSC_ENABLE, - PMIC_RTC_32K_COUNTER_COMP_VAL_SET, - PMIC_RTC_ROUND_TIME_SET, - PMIC_RTC_STATIC_SHADOWED_REG_SEL, - PMIC_RTC_CRYSTAL_OSC_TYPE_9PF - }; - - Pmic_RtcTime_t timeCfg_rd; - Pmic_RtcDate_t dateCfg_rd; - - test_pmic_print_unity_testcase_info(10620, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - status = Pmic_rtcEnable(pHandle, PMIC_RTC_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcGetConfiguration(pHandle, &rtcCfg_default); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcSetConfiguration(pHandle, rtcCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcGetConfiguration(pHandle, &rtcCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - TEST_ASSERT_EQUAL(rtcCfg.timeDateRegSel, - rtcCfg_rd.timeDateRegSel); - - status = Pmic_rtcGetTimeDateInfo(pHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcSetConfiguration(pHandle, rtcCfg_default); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcGetConfiguration(pHandle, &rtcCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - TEST_ASSERT_EQUAL(rtcCfg_default.timeDateRegSel, - rtcCfg_rd.timeDateRegSel); - - status = Pmic_rtcEnable(pHandle, PMIC_RTC_START); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - pmic_testResultUpdate_pass(10620, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_rtcSetConfiguration : Test to set rtc configuration when RTC is started - */ -static void test_pmic_rtc_setConfiguration_rtcIsStarted(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcCfg_t rtcCfg = - { - PMIC_RTC_CFG_32K_COUNTER_COMP_VAL_SET_VALID_SHIFT, - PMIC_RTC_CRYSTAL_OSC_ENABLE, - PMIC_RTC_32K_COUNTER_COMP_VAL_SET, - PMIC_RTC_ROUND_TIME_SET, - PMIC_RTC_STATIC_SHADOWED_REG_SEL, - PMIC_RTC_CRYSTAL_OSC_TYPE_9PF - }; - - test_pmic_print_unity_testcase_info(10621, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - status = Pmic_rtcEnable(pPmicCoreHandle, PMIC_RTC_START); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcSetConfiguration(pPmicCoreHandle, rtcCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_FAIL, status); - - pmic_testResultUpdate_pass(10621, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Added for Coverage - */ -static void test_pmic_rtc_coverageGaps(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_RtcRstStatus_t pRtcRstStatus = {0}; - Pmic_RtcRstStatus_t rtcRstStatus = {PMIC_RTC_POWERUP_STATUS_VALID_SHIFT, 0U, 0U}; - Pmic_RtcTime_t timeCfg = {PMIC_RTC_VALID_PARAM_TIME_CFG_VAL, 30U, 30U, - 6U, 1U, 1U}; - Pmic_RtcDate_t dateCfg = {PMIC_RTC_VALID_PARAM_DATE_CFG_VAL, 15U, 6U, - 2055U, 1U}; - Pmic_RtcCfg_t rtcCfg_rd; - Pmic_RtcCfg_t rtcCfg_default = {PMIC_RTC_CFG_TIME_DATE_REG_SEL_VALID_SHIFT,}; - Pmic_RtcCfg_t rtcCfg = - { - PMIC_RTC_CFG_CRYSTAL_OSC_TYPE_VALID_SHIFT, - PMIC_RTC_CRYSTAL_OSC_DISABLE, - PMIC_RTC_32K_COUNTER_COMP_VAL_SET, - PMIC_RTC_ROUND_TIME_SET, - PMIC_RTC_STATIC_SHADOWED_REG_SEL, - PMIC_RTC_CRYSTAL_OSC_TYPE_6PF - }; - - Pmic_RtcTime_t timeCfg_rd; - Pmic_RtcDate_t dateCfg_rd; - int32_t crcTestFlag = PMIC_STATUS_CRC_INIT_VAL; - -#if defined(SOC_J721E) - crcTestFlag = gCrcTestFlag_J721E; -#endif - -#if defined(SOC_J7200) - crcTestFlag = gCrcTestFlag_J7VCL; -#endif - - test_pmic_print_unity_testcase_info(8814, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - timeCfg_rd.validParams = PMIC_RTC_VALID_PARAM_TIME_CFG_VAL; - dateCfg_rd.validParams = PMIC_RTC_VALID_PARAM_DATE_CFG_VAL; - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - /* Fault Injection Tests for Branch Coverage */ - //Pmic_rtcGetSeconds - gPmic_faultInjectCfg.enableFaultInjectionRead = 1U; - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - status = Pmic_rtcGetAlarmInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_rtcGetMinutes - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - timeCfg_rd.validParams = PMIC_RTC_TIME_CFG_MIN_VALID_SHIFT; - status = Pmic_rtcGetAlarmInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_rtcGetTimeMode - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - timeCfg_rd.validParams = PMIC_RTC_TIME_CFG_TIMEMODE_VALID_SHIFT; - status = Pmic_rtcGetAlarmInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_rtcSetTimeMode - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - timeCfg.validParams = PMIC_RTC_TIME_CFG_TIMEMODE_VALID_SHIFT; - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_rtcSetMeridianMode Alarm - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 2; - timeCfg.validParams = PMIC_RTC_TIME_CFG_MERIDIAN_VALID_SHIFT; - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 3; - timeCfg.validParams = PMIC_RTC_TIME_CFG_MERIDIAN_VALID_SHIFT; - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_rtcGetMeridianMode alarm - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - timeCfg_rd.validParams = PMIC_RTC_TIME_CFG_MERIDIAN_VALID_SHIFT; - status = Pmic_rtcGetAlarmInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 2; - timeCfg_rd.validParams = PMIC_RTC_TIME_CFG_MERIDIAN_VALID_SHIFT; - status = Pmic_rtcGetAlarmInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_rtcSetMeridianMode Timer - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 5; - timeCfg.validParams = PMIC_RTC_TIME_CFG_MERIDIAN_VALID_SHIFT; - status = Pmic_rtcSetTimeDateInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_rtcGetMeridianMode Timer - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 3; - timeCfg_rd.validParams = PMIC_RTC_TIME_CFG_MERIDIAN_VALID_SHIFT; - status = Pmic_rtcGetTimeDateInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_rtcSetHours alarm - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 2; - timeCfg.validParams = PMIC_RTC_TIME_CFG_HRS_VALID_SHIFT; - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_rtcGetHours alarm - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - timeCfg_rd.validParams = PMIC_RTC_TIME_CFG_HRS_VALID_SHIFT; - status = Pmic_rtcGetAlarmInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_rtcSetHours Timer - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 4; - timeCfg.validParams = PMIC_RTC_TIME_CFG_HRS_VALID_SHIFT; - status = Pmic_rtcSetTimeDateInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_rtcGetHours Timer - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 2; - timeCfg_rd.validParams = PMIC_RTC_TIME_CFG_HRS_VALID_SHIFT; - status = Pmic_rtcGetTimeDateInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_rtcGetDay - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - timeCfg_rd.validParams = 0U; - dateCfg_rd.validParams = PMIC_RTC_DATE_CFG_DAY_VALID_SHIFT; - status = Pmic_rtcGetAlarmInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_rtcGetMonth - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - dateCfg_rd.validParams = PMIC_RTC_DATE_CFG_MONTH_VALID_SHIFT; - status = Pmic_rtcGetAlarmInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_rtcGetYear - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - dateCfg_rd.validParams = PMIC_RTC_DATE_CFG_YEAR_VALID_SHIFT; - status = Pmic_rtcGetAlarmInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_rtcGetWeekday - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 2; - dateCfg_rd.validParams = PMIC_RTC_DATE_CFG_WEEKDAY_VALID_SHIFT; - status = Pmic_rtcGetTimeDateInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_rtcCheckHoursMode - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - dateCfg.validParams = PMIC_RTC_VALID_PARAM_DATE_CFG_VAL; - timeCfg.validParams = PMIC_RTC_TIME_CFG_HRS_VALID_SHIFT; - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_rtcCheckDate 1 - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - dateCfg.validParams = PMIC_RTC_DATE_CFG_WEEKDAY_VALID_SHIFT; - timeCfg.validParams = PMIC_RTC_TIME_CFG_TIMEMODE_VALID_SHIFT; - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_rtcCheckDate 2 - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - dateCfg.validParams = PMIC_RTC_DATE_CFG_YEAR_VALID_SHIFT; - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - dateCfg.validParams = 0U; - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_alarmSetTime - gPmic_faultInjectCfg.enableFaultInjectionRead = 0U; - gPmic_faultInjectCfg.enableFaultInjectionWrite = 1U; - gPmic_faultInjectCfg.writeCount = 0; - gPmic_faultInjectCfg.skipWriteCount = 1; - timeCfg.validParams = PMIC_RTC_TIME_CFG_MIN_VALID_SHIFT | PMIC_RTC_TIME_CFG_HRS_VALID_SHIFT | PMIC_RTC_TIME_CFG_TIMEMODE_VALID_SHIFT | PMIC_RTC_TIME_CFG_MERIDIAN_VALID_SHIFT; - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.writeCount = 0; - gPmic_faultInjectCfg.skipWriteCount = 1; - timeCfg.validParams = PMIC_RTC_VALID_PARAM_TIME_CFG_VAL; - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - gPmic_faultInjectCfg.enableFaultInjectionRead = 1U; - gPmic_faultInjectCfg.enableFaultInjectionWrite = 0U; - - //Pmic_alarmSetDate - gPmic_faultInjectCfg.enableFaultInjectionRead = 0U; - gPmic_faultInjectCfg.enableFaultInjectionWrite = 1U; - gPmic_faultInjectCfg.writeCount = 0; - gPmic_faultInjectCfg.skipWriteCount = 1; - timeCfg.validParams = 0U; - dateCfg.validParams = PMIC_RTC_DATE_CFG_MONTH_VALID_SHIFT | PMIC_RTC_DATE_CFG_YEAR_VALID_SHIFT; - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.writeCount = 0; - gPmic_faultInjectCfg.skipWriteCount = 1; - dateCfg.validParams = PMIC_RTC_VALID_PARAM_DATE_CFG_VAL; - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - gPmic_faultInjectCfg.enableFaultInjectionWrite = 0U; - gPmic_faultInjectCfg.enableFaultInjectionRead = 1U; - - //Pmic_setAlarmIntr - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - status = Pmic_rtcEnableAlarmIntr(pPmicCoreHandle, PMIC_RTC_ALARM_INTR_ENABLE); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_alarmGetTime - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - timeCfg_rd.validParams = PMIC_RTC_VALID_PARAM_TIME_CFG_VAL; - dateCfg_rd.validParams = 0U; - status = Pmic_rtcGetAlarmInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_alarmGetDate - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - timeCfg_rd.validParams = 0U; - dateCfg_rd.validParams = PMIC_RTC_VALID_PARAM_DATE_CFG_DAY_MNTH_YR_VAL; - status = Pmic_rtcGetAlarmInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_rtcSetTime - gPmic_faultInjectCfg.enableFaultInjectionRead = 0U; - gPmic_faultInjectCfg.enableFaultInjectionWrite = 1U; - gPmic_faultInjectCfg.writeCount = 0; - gPmic_faultInjectCfg.skipWriteCount = 2; - timeCfg.validParams = PMIC_RTC_TIME_CFG_MIN_VALID_SHIFT | PMIC_RTC_TIME_CFG_HRS_VALID_SHIFT | PMIC_RTC_TIME_CFG_TIMEMODE_VALID_SHIFT | PMIC_RTC_TIME_CFG_MERIDIAN_VALID_SHIFT; - status = Pmic_rtcSetTimeDateInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.writeCount = 0; - gPmic_faultInjectCfg.skipWriteCount = 2; - timeCfg.validParams = PMIC_RTC_VALID_PARAM_TIME_CFG_VAL; - status = Pmic_rtcSetTimeDateInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - gPmic_faultInjectCfg.enableFaultInjectionRead = 1U; - gPmic_faultInjectCfg.enableFaultInjectionWrite = 0U; - - //Pmic_rtcSetDate - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 4; - timeCfg.validParams = 0U; - dateCfg.validParams = PMIC_RTC_DATE_CFG_MONTH_VALID_SHIFT | PMIC_RTC_DATE_CFG_YEAR_VALID_SHIFT | PMIC_RTC_DATE_CFG_WEEKDAY_VALID_SHIFT; - status = Pmic_rtcSetTimeDateInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.enableFaultInjectionRead = 0U; - gPmic_faultInjectCfg.enableFaultInjectionWrite = 1U; - gPmic_faultInjectCfg.writeCount = 0; - gPmic_faultInjectCfg.skipWriteCount = 2; - timeCfg.validParams = 0U; - dateCfg.validParams = PMIC_RTC_DATE_CFG_DAY_VALID_SHIFT | PMIC_RTC_DATE_CFG_YEAR_VALID_SHIFT | PMIC_RTC_DATE_CFG_WEEKDAY_VALID_SHIFT; - status = Pmic_rtcSetTimeDateInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - gPmic_faultInjectCfg.enableFaultInjectionRead = 1U; - gPmic_faultInjectCfg.enableFaultInjectionWrite = 0U; - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 4; - timeCfg.validParams = 0U; - dateCfg.validParams = PMIC_RTC_DATE_CFG_DAY_VALID_SHIFT | PMIC_RTC_DATE_CFG_MONTH_VALID_SHIFT | PMIC_RTC_DATE_CFG_WEEKDAY_VALID_SHIFT; - status = Pmic_rtcSetTimeDateInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 4; - timeCfg.validParams = 0U; - dateCfg.validParams = PMIC_RTC_DATE_CFG_DAY_VALID_SHIFT | PMIC_RTC_DATE_CFG_MONTH_VALID_SHIFT | PMIC_RTC_DATE_CFG_YEAR_VALID_SHIFT; - status = Pmic_rtcSetTimeDateInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.enableFaultInjectionRead = 0U; - gPmic_faultInjectCfg.enableFaultInjectionWrite = 1U; - gPmic_faultInjectCfg.writeCount = 0; - gPmic_faultInjectCfg.skipWriteCount = 2; - dateCfg.validParams = PMIC_RTC_VALID_PARAM_DATE_CFG_VAL; - status = Pmic_rtcSetTimeDateInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - gPmic_faultInjectCfg.enableFaultInjectionRead = 1U; - gPmic_faultInjectCfg.enableFaultInjectionWrite = 0U; - - //Pmic_rtcTriggerShadowRegisters - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - timeCfg_rd.validParams = PMIC_RTC_TIME_CFG_HRS_VALID_SHIFT; - status = Pmic_rtcGetTimeDateInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_rtcGetTime - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 2; - timeCfg_rd.validParams = PMIC_RTC_TIME_CFG_MIN_VALID_SHIFT | PMIC_RTC_TIME_CFG_HRS_VALID_SHIFT | PMIC_RTC_TIME_CFG_TIMEMODE_VALID_SHIFT | PMIC_RTC_TIME_CFG_MERIDIAN_VALID_SHIFT; - status = Pmic_rtcGetTimeDateInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 2; - timeCfg_rd.validParams = PMIC_RTC_TIME_CFG_SEC_VALID_SHIFT | PMIC_RTC_TIME_CFG_HRS_VALID_SHIFT | PMIC_RTC_TIME_CFG_TIMEMODE_VALID_SHIFT | PMIC_RTC_TIME_CFG_MERIDIAN_VALID_SHIFT; - status = Pmic_rtcGetTimeDateInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 2; - timeCfg_rd.validParams = PMIC_RTC_TIME_CFG_MIN_VALID_SHIFT | PMIC_RTC_TIME_CFG_SEC_VALID_SHIFT | PMIC_RTC_TIME_CFG_TIMEMODE_VALID_SHIFT | PMIC_RTC_TIME_CFG_MERIDIAN_VALID_SHIFT; - status = Pmic_rtcGetTimeDateInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 2; - timeCfg_rd.validParams = PMIC_RTC_TIME_CFG_MIN_VALID_SHIFT | PMIC_RTC_TIME_CFG_HRS_VALID_SHIFT | PMIC_RTC_TIME_CFG_SEC_VALID_SHIFT | PMIC_RTC_TIME_CFG_MERIDIAN_VALID_SHIFT; - status = Pmic_rtcGetTimeDateInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 2; - timeCfg_rd.validParams = PMIC_RTC_TIME_CFG_MIN_VALID_SHIFT | PMIC_RTC_TIME_CFG_HRS_VALID_SHIFT | PMIC_RTC_TIME_CFG_TIMEMODE_VALID_SHIFT | PMIC_RTC_TIME_CFG_SEC_VALID_SHIFT; - status = Pmic_rtcGetTimeDateInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_rtcGetDate - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 2; - timeCfg_rd.validParams = 0U; - dateCfg_rd.validParams = PMIC_RTC_DATE_CFG_MONTH_VALID_SHIFT | PMIC_RTC_DATE_CFG_YEAR_VALID_SHIFT | PMIC_RTC_DATE_CFG_WEEKDAY_VALID_SHIFT; - status = Pmic_rtcGetTimeDateInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 2; - timeCfg_rd.validParams = 0U; - dateCfg_rd.validParams = PMIC_RTC_DATE_CFG_DAY_VALID_SHIFT | PMIC_RTC_DATE_CFG_YEAR_VALID_SHIFT | PMIC_RTC_DATE_CFG_WEEKDAY_VALID_SHIFT; - status = Pmic_rtcGetTimeDateInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 2; - timeCfg_rd.validParams = 0U; - dateCfg_rd.validParams = PMIC_RTC_DATE_CFG_MONTH_VALID_SHIFT | PMIC_RTC_DATE_CFG_DAY_VALID_SHIFT | PMIC_RTC_DATE_CFG_WEEKDAY_VALID_SHIFT; - status = Pmic_rtcGetTimeDateInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 2; - timeCfg_rd.validParams = 0U; - dateCfg_rd.validParams = PMIC_RTC_DATE_CFG_MONTH_VALID_SHIFT | PMIC_RTC_DATE_CFG_YEAR_VALID_SHIFT | PMIC_RTC_DATE_CFG_DAY_VALID_SHIFT; - status = Pmic_rtcGetTimeDateInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_rtcSetFreqCompensateVal - gPmic_faultInjectCfg.enableFaultInjectionRead = 0U; - gPmic_faultInjectCfg.enableFaultInjectionWrite = 1U; - gPmic_faultInjectCfg.writeCount = 0; - gPmic_faultInjectCfg.skipWriteCount = 1; - status = Pmic_rtcSetFreqComp(pPmicCoreHandle, 34952U); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - gPmic_faultInjectCfg.enableFaultInjectionRead = 1U; - gPmic_faultInjectCfg.enableFaultInjectionWrite = 0U; - - //Pmic_rtcGetFreqCompensateVal - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - uint16_t compensation = 0U; - status = Pmic_rtcGetFreqComp(pPmicCoreHandle, &compensation); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_rtcSetTimerIntr - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - status = Pmic_rtcEnableTimerIntr(pPmicCoreHandle, PMIC_RTC_TIMER_INTR_DISABLE); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_rtcEnableRtc - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - status = Pmic_rtcEnable(pPmicCoreHandle, PMIC_RTC_STOP); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 2; - status = Pmic_rtcEnable(pPmicCoreHandle, PMIC_RTC_START); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 2; - status = Pmic_rtcEnable(pPmicCoreHandle, PMIC_RTC_STOP); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_rtcSetTimerPeriod - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - status = Pmic_rtcSetTimerPeriod(pPmicCoreHandle, PMIC_RTC_HOUR_INTR_PERIOD); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_rtcGetTimerPeriod - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - uint8_t timePeriod = 0U; - status = Pmic_rtcGetTimerPeriod(pPmicCoreHandle, &timePeriod); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_rtcSetCrystalOscCfg - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - rtcCfg.validParams = PMIC_RTC_CFG_CRYSTAL_OSC_EN_VALID_SHIFT; - status = Pmic_rtcSetConfiguration(pPmicCoreHandle, rtcCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_rtcSelectCrystalOscType - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - rtcCfg.validParams = PMIC_RTC_CFG_CRYSTAL_OSC_TYPE_VALID_SHIFT; - status = Pmic_rtcSetConfiguration(pPmicCoreHandle, rtcCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_rtcGetCrystalOscTypeCfg - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - rtcCfg_rd.validParams = PMIC_RTC_CFG_CRYSTAL_OSC_TYPE_VALID_SHIFT; - status = Pmic_rtcGetConfiguration(pPmicCoreHandle, &rtcCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_rtcSelectTimeDateReg - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - rtcCfg.validParams = PMIC_RTC_CFG_TIME_DATE_REG_SEL_VALID_SHIFT; - status = Pmic_rtcSetConfiguration(pPmicCoreHandle, rtcCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_rtcGetTimeDateRegCfg - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - rtcCfg_rd.validParams = PMIC_RTC_CFG_TIME_DATE_REG_SEL_VALID_SHIFT; - status = Pmic_rtcGetConfiguration(pPmicCoreHandle, &rtcCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_rtcSetRtcTimeRound30s - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - rtcCfg.validParams = PMIC_RTC_CFG_RTC_TIME_ROUND_30S_SET_VALID_SHIFT; - status = Pmic_rtcSetConfiguration(pPmicCoreHandle, rtcCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_rtcGetRtcTimeRound30s - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - rtcCfg_rd.validParams = PMIC_RTC_CFG_RTC_TIME_ROUND_30S_SET_VALID_SHIFT; - status = Pmic_rtcGetConfiguration(pPmicCoreHandle, &rtcCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_rtcEnableCrystalOsc - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - rtcCfg.validParams = PMIC_RTC_CFG_CRYSTAL_OSC_EN_VALID_SHIFT; - status = Pmic_rtcSetConfiguration(pPmicCoreHandle, rtcCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_rtcGetCrystalOscEnCfg - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - rtcCfg_rd.validParams = PMIC_RTC_CFG_CRYSTAL_OSC_EN_VALID_SHIFT; - status = Pmic_rtcGetConfiguration(pPmicCoreHandle, &rtcCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_rtcSetHours - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 6; - timeCfg.validParams = PMIC_RTC_TIME_CFG_HRS_VALID_SHIFT | PMIC_RTC_TIME_CFG_TIMEMODE_VALID_SHIFT; - status = Pmic_rtcSetTimeDateInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_rtcSetMeridianMode - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 6; - timeCfg.validParams = PMIC_RTC_TIME_CFG_MERIDIAN_VALID_SHIFT; - status = Pmic_rtcSetTimeDateInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - rtcCfg_rd.validParams= PMIC_RTC_CFG_TIME_DATE_REG_SEL_VALID_SHIFT; - rtcCfg.validParams = PMIC_RTC_CFG_TIME_DATE_REG_SEL_VALID_SHIFT; - status = Pmic_rtcSetConfiguration(pPmicCoreHandle, rtcCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - //Pmic_rtcTriggerShadowRegisters - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 2; - status = Pmic_rtcGetTimeDateInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - status = Pmic_rtcSetConfiguration(pPmicCoreHandle, rtcCfg_default); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcGetConfiguration(pPmicCoreHandle, &rtcCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - TEST_ASSERT_EQUAL(rtcCfg_default.timeDateRegSel, rtcCfg_rd.timeDateRegSel); - - //Pmic_rtcClrRstStatus - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - status = Pmic_rtcClrRstStatus(pPmicCoreHandle, PMIC_RTC_RST_STATUS); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_rtcClrRstStatus - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - status = Pmic_rtcClrRstStatus(pPmicCoreHandle, PMIC_RTC_POWERUP_STATUS); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_rtcSet32KCounterCompVal - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - rtcCfg.validParams = PMIC_RTC_CFG_32K_COUNTER_COMP_VAL_SET_VALID_SHIFT; - status = Pmic_rtcSetConfiguration(pPmicCoreHandle, rtcCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - status = Pmic_rtcEnable(pPmicCoreHandle, PMIC_RTC_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - //Pmic_rtcSet32KCounterCompVal - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 2; - rtcCfg.validParams = PMIC_RTC_CFG_32K_COUNTER_COMP_VAL_SET_VALID_SHIFT; - status = Pmic_rtcSetConfiguration(pPmicCoreHandle, rtcCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - status = Pmic_rtcEnable(pPmicCoreHandle, PMIC_RTC_START); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - //Pmic_rtcGet32KCounterCompValCfg - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - rtcCfg_rd.validParams = PMIC_RTC_CFG_32K_COUNTER_COMP_VAL_SET_VALID_SHIFT; - status = Pmic_rtcGetConfiguration(pPmicCoreHandle, &rtcCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.enableFaultInjectionRead = 0U; - gPmic_faultInjectCfg.enableFaultInjectionWrite = 0U; - gPmic_faultInjectCfg.skipReadCount = 0U; - gPmic_faultInjectCfg.skipWriteCount = 0U; - gPmic_faultInjectCfg.readCount = 0xFFU; - gPmic_faultInjectCfg.writeCount = 0xFFU; - - gPmic_faultInjectCfg.enableFaultInjectionRead = 1U; - - //Pmic_rtcGetPowerupStatus - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - status = Pmic_rtcGetRstStatus(pPmicCoreHandle, &rtcRstStatus); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - //Pmic_rtcGetRstStatus - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - rtcRstStatus.validParams = PMIC_RTC_RESET_STATUS_VALID_SHIFT; - status = Pmic_rtcGetRstStatus(pPmicCoreHandle, &rtcRstStatus); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.enableFaultInjectionRead = 0U; - - if(PMIC_STATUS_CRC_INIT_VAL == crcTestFlag) - { - //Pmic_rtcEnableRtc - gEnableRtcTestFlag = 1U; - status = Pmic_rtcEnable(pPmicCoreHandle, PMIC_RTC_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_RTC_STOP_FAIL, status); - gEnableRtcTestFlag = 0U; - } - - Pmic_DevSubSysInfo_t pmicDevSubSysInfo = - { - .gpioEnable = (bool)true, - .rtcEnable = (bool)false, - .wdgEnable = (bool)true, - .buckEnable = (bool)true, - .ldoEnable = (bool)true, - .esmEnable = (bool)true - }; - - //Pmic_rtcSetConfiguration - pPmicCoreHandle->pPmic_SubSysInfo = (&pmicDevSubSysInfo); - status = Pmic_rtcSetConfiguration(pPmicCoreHandle, rtcCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, status); - - //Pmic_rtcGetConfiguration - status = Pmic_rtcGetConfiguration(pPmicCoreHandle, &rtcCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, status); - - //Pmic_rtcClrRstStatus - uint8_t rstStatType = PMIC_RTC_POWERUP_STATUS; - status = Pmic_rtcClrRstStatus(pPmicCoreHandle, rstStatType); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, status); - - //Pmic_rtcClrRstStatus - bool rtcStatus; - status = Pmic_rtcGetStatus(pPmicCoreHandle, &rtcStatus); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, status); - - //Pmic_rtcEnableTimerIntr - status = Pmic_rtcEnableTimerIntr(pPmicCoreHandle, PMIC_RTC_TIMER_INTR_DISABLE); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, status); - - //Pmic_rtcEnableAlarmIntr - status = Pmic_rtcEnableAlarmIntr(pPmicCoreHandle, PMIC_RTC_ALARM_INTR_DISABLE); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, status); - - //Pmic_rtcEnable - status = Pmic_rtcEnable(pPmicCoreHandle, PMIC_RTC_START); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, status); - - //Pmic_rtcSetFreqComp - status = Pmic_rtcSetFreqComp(pPmicCoreHandle, 34952U); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, status); - - //Pmic_rtcGetFreqComp - status = Pmic_rtcGetFreqComp(pPmicCoreHandle, &compensation); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, status); - - //Pmic_rtcSetTimeDateInfo - status = Pmic_rtcSetTimeDateInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, status); - - //Pmic_rtcGetTimeDateInfo - status = Pmic_rtcGetTimeDateInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, status); - - //Pmic_rtcSetTimerPeriod - status = Pmic_rtcSetTimerPeriod(pPmicCoreHandle, PMIC_RTC_HOUR_INTR_PERIOD); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, status); - - //Pmic_rtcGetTimerPeriod - status = Pmic_rtcGetTimerPeriod(pPmicCoreHandle, &timePeriod); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, status); - - //Pmic_rtcSetAlarmInfo - status = Pmic_rtcSetAlarmInfo(pPmicCoreHandle, timeCfg, dateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, status); - - //Pmic_rtcGetAlarmInfo - status = Pmic_rtcGetAlarmInfo(pPmicCoreHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, status); - - //Pmic_rtcGetRstStatus - status = Pmic_rtcGetRstStatus(pPmicCoreHandle, &pRtcRstStatus); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, status); - - Pmic_DevSubSysInfo_t testpmicDevSubSysInfo = - { - .gpioEnable = (bool)true, - .rtcEnable = (bool)true, - .wdgEnable = (bool)true, - .buckEnable = (bool)true, - .ldoEnable = (bool)true, - .esmEnable = (bool)true - }; - - pPmicCoreHandle->pPmic_SubSysInfo = (&testpmicDevSubSysInfo); - - pmic_testResultUpdate_pass(8814, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_rtcGetStatus : Parameter validation for handle - */ -static void test_pmic_rtc_getStatus_PrmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - bool rtcStatus; - - test_pmic_print_unity_testcase_info(9895, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - status = Pmic_rtcGetStatus(NULL, &rtcStatus); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - pmic_testResultUpdate_pass(9895, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_rtcGetStatus : Parameter validation for pRtcstatus - */ -static void test_pmic_rtc_getStatus_PrmValTest_pRtcstatus(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreHandle_t *pHandle = NULL; - pHandle = pPmicCoreHandle; - - test_pmic_print_unity_testcase_info(9896, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - status = Pmic_rtcGetStatus(pHandle, NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, status); - - pmic_testResultUpdate_pass(9896, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_rtcGetConfiguration : Parameter validation for handle - */ -static void test_pmic_rtc_getCfgPrmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CoreHandle_t *pHandle = NULL; - Pmic_RtcCfg_t rtcCfg; - - test_pmic_print_unity_testcase_info(9897, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_rtcGetConfiguration(pHandle, &rtcCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(9897, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_rtcGetConfiguration : Parameter validation for pRtcCfg - */ -static void test_pmic_rtc_getCfgPrmValTest_pRtcCfg(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CoreHandle_t *pHandle = NULL; - pHandle = pPmicCoreHandle; - - test_pmic_print_unity_testcase_info(9898, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_rtcGetConfiguration(pHandle, NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(9898, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_rtcClrRstStatus : Clear RTC Reset status using powerupStatus - */ -static void test_pmic_rtc_clrRstStatus_powerupStatus(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreHandle_t *pHandle = NULL; - pHandle = pPmicCoreHandle; - Pmic_RtcRstStatus_t rtcRstStatus = {0U}; - uint8_t rstStatType = PMIC_RTC_POWERUP_STATUS; - int8_t num = 0; - - pmic_log("\r\n Run this test alone after POR"); - pmic_log("\r\n Enter 1 to continue"); - UART_scanFmt("%d", &num); - - rtcRstStatus.validParams = PMIC_RTC_POWERUP_STATUS_VALID_SHIFT; - - test_pmic_print_unity_testcase_info(9899, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - status = Pmic_rtcGetRstStatus(pHandle, &rtcRstStatus); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - TEST_ASSERT_EQUAL(PMIC_RTC_POWERUP_STATUS_RESET_VAL, - rtcRstStatus.powerupStatus); - - status = Pmic_rtcClrRstStatus(pHandle, rstStatType); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcGetRstStatus(pHandle, &rtcRstStatus); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - TEST_ASSERT_EQUAL(PMIC_RTC_POWERUP_STATUS_CLR_VAL, - rtcRstStatus.powerupStatus); - - pmic_testResultUpdate_pass(9899, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_rtcClrRstStatus : Clear RTC Reset status using rtcRstStatus - */ -static void test_pmic_rtc_clrRstStatus_rtcRstStatus(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreHandle_t *pHandle = NULL; - pHandle = pPmicCoreHandle; - Pmic_RtcRstStatus_t rtcRstStatus = {0U}; - uint8_t rstStatType = PMIC_RTC_RST_STATUS; - int8_t num = 0; - - pmic_log("\r\n Run this test alone after POR"); - pmic_log("\r\n Enter 1 to continue"); - UART_scanFmt("%d", &num); - - rtcRstStatus.validParams = PMIC_RTC_RESET_STATUS_VALID_SHIFT; - - test_pmic_print_unity_testcase_info(9900, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - status = Pmic_rtcGetRstStatus(pHandle, &rtcRstStatus); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - TEST_ASSERT_EQUAL(PMIC_RTC_RST_STATUS_RESET_VAL, - rtcRstStatus.rtcRstStatus); - - status = Pmic_rtcClrRstStatus(pHandle, rstStatType); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcGetRstStatus(pHandle, &rtcRstStatus); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - TEST_ASSERT_EQUAL(PMIC_RTC_RST_STATUS_SET_VAL, - rtcRstStatus.rtcRstStatus); - - pmic_testResultUpdate_pass(9900, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_rtcClrRstStatus : Parameter validation for handle - */ -static void test_pmic_rtc_clrRstStatus_PrmValTest_handle(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t rstStatType = PMIC_RTC_RST_STATUS; - - test_pmic_print_unity_testcase_info(9901, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - status = Pmic_rtcClrRstStatus(NULL, rstStatType); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - - pmic_testResultUpdate_pass(9901, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_rtcClrRstStatus : Parameter validation for rtcRstStatType - */ -static void test_pmic_rtc_clrRstStatus_PrmValTest_rtcRstStatType(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreHandle_t *pHandle = NULL; - pHandle = pPmicCoreHandle; - uint8_t rstStatType = 2U; - - test_pmic_print_unity_testcase_info(9902, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - status = Pmic_rtcClrRstStatus(pHandle, rstStatType); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, status); - - pmic_testResultUpdate_pass(9902, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_rtcSetConfiguration : Set 32K counter with compensation values - */ -static void test_pmic_rtc_setCfg_set32KCounterCompVal(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_RtcCfg_t rtcCfg_rd = {PMIC_RTC_CFG_32K_COUNTER_COMP_VAL_SET_VALID_SHIFT,}; - Pmic_CoreHandle_t *pHandle = NULL; - pHandle = pPmicCoreHandle; - int8_t num = 0; - Pmic_RtcCfg_t rtcCfg = - { - PMIC_RTC_CFG_32K_COUNTER_COMP_VAL_SET_VALID_SHIFT, - PMIC_RTC_CRYSTAL_OSC_ENABLE, - PMIC_RTC_32K_COUNTER_COMP_VAL_SET, - PMIC_RTC_ROUND_TIME_SET, - PMIC_RTC_STATIC_SHADOWED_REG_SEL, - PMIC_RTC_CRYSTAL_OSC_TYPE_9PF - }; - - test_pmic_print_unity_testcase_info(9903, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_rtcEnable(pPmicCoreHandle, PMIC_RTC_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_rtcSetConfiguration(pHandle, rtcCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_rtcGetConfiguration(pHandle, &rtcCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(rtcCfg.set32KCounterCompVal, - rtcCfg_rd.set32KCounterCompVal); - - pmicStatus = Pmic_rtcEnable(pPmicCoreHandle, PMIC_RTC_START); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(9903, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - pmic_log("\r\n Do the power cycle to test the other RTC tests\n"); - pmic_log("\r\n Enter 1 to continue"); - UART_scanFmt("%d", &num); -} - -/*! - * \brief Pmic_rtcSetConfiguration : Configure Enable/Disable Crystal Oscillator - */ -static void test_pmic_rtc_setCfg_crystalOScEn(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_RtcCfg_t rtcCfg_rd = {PMIC_RTC_CFG_CRYSTAL_OSC_EN_VALID_SHIFT,}; - Pmic_RtcCfg_t rtcCfg_default = {PMIC_RTC_CFG_CRYSTAL_OSC_EN_VALID_SHIFT,}; - Pmic_CoreHandle_t *pHandle = NULL; - pHandle = pPmicCoreHandle; - Pmic_RtcCfg_t rtcCfg = - { - PMIC_RTC_CFG_CRYSTAL_OSC_EN_VALID_SHIFT, - PMIC_RTC_CRYSTAL_OSC_DISABLE, - PMIC_RTC_32K_COUNTER_COMP_VAL_SET, - PMIC_RTC_ROUND_TIME_SET, - PMIC_RTC_STATIC_SHADOWED_REG_SEL, - PMIC_RTC_CRYSTAL_OSC_TYPE_9PF - }; - - test_pmic_print_unity_testcase_info(9904, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_rtcGetConfiguration(pHandle, &rtcCfg_default); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_rtcSetConfiguration(pHandle, rtcCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_rtcGetConfiguration(pHandle, &rtcCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(rtcCfg.crystalOScEn, rtcCfg_rd.crystalOScEn); - - rtcCfg.crystalOScEn = PMIC_RTC_CRYSTAL_OSC_ENABLE; - pmicStatus = Pmic_rtcSetConfiguration(pHandle, rtcCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_rtcGetConfiguration(pHandle, &rtcCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(rtcCfg.crystalOScEn, rtcCfg_rd.crystalOScEn); - - pmicStatus = Pmic_rtcSetConfiguration(pHandle, rtcCfg_default); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_rtcGetConfiguration(pHandle, &rtcCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(rtcCfg_default.crystalOScEn, rtcCfg_rd.crystalOScEn); - - pmic_testResultUpdate_pass(9904, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_rtcSetConfiguration : Configure RTC time to round the time to closest minute - */ -static void test_pmic_rtc_setCfg_rtcTimeRound30s(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_RtcCfg_t rtcCfg_rd = {PMIC_RTC_CFG_RTC_TIME_ROUND_30S_SET_VALID_SHIFT,}; - Pmic_CoreHandle_t *pHandle = NULL; - pHandle = pPmicCoreHandle; - Pmic_RtcCfg_t rtcCfg = - { - PMIC_RTC_CFG_RTC_TIME_ROUND_30S_SET_VALID_SHIFT, - PMIC_RTC_CRYSTAL_OSC_ENABLE, - PMIC_RTC_32K_COUNTER_COMP_VAL_SET, - PMIC_RTC_ROUND_TIME_SET, - PMIC_RTC_STATIC_SHADOWED_REG_SEL, - PMIC_RTC_CRYSTAL_OSC_TYPE_9PF - }; - - test_pmic_print_unity_testcase_info(9905, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_rtcSetConfiguration(pHandle, rtcCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_rtcGetConfiguration(pHandle, &rtcCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(rtcCfg.setRtcTimeRound30s, rtcCfg_rd.setRtcTimeRound30s); - - pmic_testResultUpdate_pass(9905, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_rtcSetConfiguration : Select RTC Time and Date Register read from Dynamic Registers - */ -static void test_pmic_rtc_setCfg_timeDateRegSel_dynamic(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_RtcCfg_t rtcCfg_rd = {PMIC_RTC_CFG_TIME_DATE_REG_SEL_VALID_SHIFT,}; - Pmic_RtcCfg_t rtcCfg_default = {PMIC_RTC_CFG_TIME_DATE_REG_SEL_VALID_SHIFT,}; - Pmic_CoreHandle_t *pHandle = NULL; - pHandle = pPmicCoreHandle; - Pmic_RtcCfg_t rtcCfg = - { - PMIC_RTC_CFG_TIME_DATE_REG_SEL_VALID_SHIFT, - PMIC_RTC_CRYSTAL_OSC_ENABLE, - PMIC_RTC_32K_COUNTER_COMP_VAL_SET, - PMIC_RTC_ROUND_TIME_SET, - PMIC_RTC_DYNAMIC_REG_SEL, - PMIC_RTC_CRYSTAL_OSC_TYPE_9PF - }; - - test_pmic_print_unity_testcase_info(9907, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_rtcGetConfiguration(pHandle, &rtcCfg_default); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_rtcSetConfiguration(pHandle, rtcCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_rtcGetConfiguration(pHandle, &rtcCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(rtcCfg.timeDateRegSel, rtcCfg_rd.timeDateRegSel); - - pmicStatus = Pmic_rtcSetConfiguration(pHandle, rtcCfg_default); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_rtcGetConfiguration(pHandle, &rtcCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(rtcCfg_default.timeDateRegSel, - rtcCfg_rd.timeDateRegSel); - - pmic_testResultUpdate_pass(9907, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_rtcSetConfiguration : Select RTC Time and Date Register read from Static Shadowed Registers - */ -static void test_pmic_rtc_setCfg_timeDateRegSel_staticShadow(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_RtcCfg_t rtcCfg_rd = {PMIC_RTC_CFG_TIME_DATE_REG_SEL_VALID_SHIFT,}; - Pmic_RtcCfg_t rtcCfg_default = {PMIC_RTC_CFG_TIME_DATE_REG_SEL_VALID_SHIFT,}; - Pmic_CoreHandle_t *pHandle = NULL; - pHandle = pPmicCoreHandle; - Pmic_RtcCfg_t rtcCfg = - { - PMIC_RTC_CFG_TIME_DATE_REG_SEL_VALID_SHIFT, - PMIC_RTC_CRYSTAL_OSC_ENABLE, - PMIC_RTC_32K_COUNTER_COMP_VAL_SET, - PMIC_RTC_ROUND_TIME_SET, - PMIC_RTC_STATIC_SHADOWED_REG_SEL, - PMIC_RTC_CRYSTAL_OSC_TYPE_9PF - }; - - test_pmic_print_unity_testcase_info(9908, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_rtcGetConfiguration(pHandle, &rtcCfg_default); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_rtcSetConfiguration(pHandle, rtcCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_rtcGetConfiguration(pHandle, &rtcCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(rtcCfg.timeDateRegSel, rtcCfg_rd.timeDateRegSel); - - pmicStatus = Pmic_rtcSetConfiguration(pHandle, rtcCfg_default); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_rtcGetConfiguration(pHandle, &rtcCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(rtcCfg_default.timeDateRegSel, - rtcCfg_rd.timeDateRegSel); - - pmic_testResultUpdate_pass(9908, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_rtcSetConfiguration : Select Crystal Oscillator type as 9PF/ 6PF/ 12.5PF - */ -static void test_pmic_rtc_setCfg_crystalOScType(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_RtcCfg_t rtcCfg_rd = {PMIC_RTC_CFG_CRYSTAL_OSC_TYPE_VALID_SHIFT,}; - Pmic_RtcCfg_t rtcCfg_default = {PMIC_RTC_CFG_CRYSTAL_OSC_TYPE_VALID_SHIFT,}; - Pmic_CoreHandle_t *pHandle = NULL; - pHandle = pPmicCoreHandle; - Pmic_RtcCfg_t rtcCfg = - { - PMIC_RTC_CFG_CRYSTAL_OSC_TYPE_VALID_SHIFT, - PMIC_RTC_CRYSTAL_OSC_DISABLE, - PMIC_RTC_32K_COUNTER_COMP_VAL_SET, - PMIC_RTC_ROUND_TIME_SET, - PMIC_RTC_STATIC_SHADOWED_REG_SEL, - PMIC_RTC_CRYSTAL_OSC_TYPE_6PF - }; - - rtcCfg.validParams = rtcCfg.validParams | - PMIC_RTC_CFG_CRYSTAL_OSC_EN_VALID_SHIFT; - rtcCfg_default.validParams = rtcCfg.validParams ; - rtcCfg_rd.validParams = rtcCfg.validParams ; - - test_pmic_print_unity_testcase_info(9909, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_rtcGetConfiguration(pHandle, &rtcCfg_default); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_rtcSetConfiguration(pHandle, rtcCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_rtcGetConfiguration(pHandle, &rtcCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(rtcCfg.crystalOScType, rtcCfg_rd.crystalOScType); - - rtcCfg.crystalOScType = PMIC_RTC_CRYSTAL_OSC_TYPE_12_5PF; - pmicStatus = Pmic_rtcSetConfiguration(pHandle, rtcCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_rtcGetConfiguration(pHandle, &rtcCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(rtcCfg.crystalOScType, rtcCfg_rd.crystalOScType); - - rtcCfg.crystalOScType = PMIC_RTC_CRYSTAL_OSC_TYPE_9PF; - pmicStatus = Pmic_rtcSetConfiguration(pHandle, rtcCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_rtcGetConfiguration(pHandle, &rtcCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(rtcCfg.crystalOScType, rtcCfg_rd.crystalOScType); - - pmicStatus = Pmic_rtcSetConfiguration(pHandle, rtcCfg_default); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_rtcGetConfiguration(pHandle, &rtcCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(rtcCfg_default.timeDateRegSel, - rtcCfg_rd.timeDateRegSel); - - pmic_testResultUpdate_pass(9909, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_rtcSetConfiguration : Parameter validation for handle - */ -static void test_pmic_rtc_setCfgPrmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CoreHandle_t *pHandle = NULL; - Pmic_RtcCfg_t rtcCfg = - { - PMIC_RTC_CFG_CRYSTAL_OSC_EN_VALID_SHIFT, - PMIC_RTC_CRYSTAL_OSC_ENABLE, - PMIC_RTC_32K_COUNTER_COMP_VAL_SET, - PMIC_RTC_ROUND_TIME_SET, - PMIC_RTC_STATIC_SHADOWED_REG_SEL, - PMIC_RTC_CRYSTAL_OSC_TYPE_6PF - }; - - test_pmic_print_unity_testcase_info(9910, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_rtcSetConfiguration(pHandle, rtcCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(9910, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_rtcSetConfiguration : Parameter validation for RTC Config Param - setRtcTimeRound30s - */ -static void test_pmic_rtc_setCfgPrmValTest_setRtcTimeRound30s(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CoreHandle_t *pHandle = NULL; - pHandle = pPmicCoreHandle; - Pmic_RtcCfg_t rtcCfg = - { - PMIC_RTC_CFG_RTC_TIME_ROUND_30S_SET_VALID_SHIFT, - PMIC_RTC_CRYSTAL_OSC_ENABLE, - PMIC_RTC_32K_COUNTER_COMP_VAL_SET, - 0U, - PMIC_RTC_STATIC_SHADOWED_REG_SEL, - PMIC_RTC_CRYSTAL_OSC_TYPE_6PF - }; - - test_pmic_print_unity_testcase_info(9911, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_rtcSetConfiguration(pHandle, rtcCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(9911, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_rtcSetConfiguration : Parameter validation for RTC Config Param - timeDateRegSel - */ -static void test_pmic_rtc_setCfgPrmValTest_timeDateRegSel(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CoreHandle_t *pHandle = NULL; - pHandle = pPmicCoreHandle; - Pmic_RtcCfg_t rtcCfg = - { - PMIC_RTC_CFG_TIME_DATE_REG_SEL_VALID_SHIFT, - PMIC_RTC_CRYSTAL_OSC_ENABLE, - PMIC_RTC_32K_COUNTER_COMP_VAL_SET, - PMIC_RTC_ROUND_TIME_SET, - 2U, - PMIC_RTC_CRYSTAL_OSC_TYPE_6PF - }; - - test_pmic_print_unity_testcase_info(9912, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_rtcSetConfiguration(pHandle, rtcCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(9912, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_rtcSetConfiguration : Parameter validation for RTC Config Param - crystalOScType - */ -static void test_pmic_rtc_setCfgPrmValTest_crystalOScType(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CoreHandle_t *pHandle = NULL; - pHandle = pPmicCoreHandle; - Pmic_RtcCfg_t rtcCfg = - { - PMIC_RTC_CFG_CRYSTAL_OSC_TYPE_VALID_SHIFT, - PMIC_RTC_CRYSTAL_OSC_ENABLE, - PMIC_RTC_32K_COUNTER_COMP_VAL_SET, - PMIC_RTC_ROUND_TIME_SET, - PMIC_RTC_STATIC_SHADOWED_REG_SEL, - 3U - }; - - test_pmic_print_unity_testcase_info(9913, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_rtcSetConfiguration(pHandle, rtcCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(9913, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_rtcSetConfiguration : Parameter validation for RTC Config Param - set32KCounterCompVal - */ -static void test_pmic_rtc_setCfgPrmValTest_set32KCounterCompVal(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_CoreHandle_t *pHandle = NULL; - pHandle = pPmicCoreHandle; - Pmic_RtcCfg_t rtcCfg = - { - PMIC_RTC_CFG_32K_COUNTER_COMP_VAL_SET_VALID_SHIFT, - PMIC_RTC_CRYSTAL_OSC_ENABLE, - 0U, - PMIC_RTC_ROUND_TIME_SET, - PMIC_RTC_STATIC_SHADOWED_REG_SEL, - PMIC_RTC_CRYSTAL_OSC_TYPE_6PF - }; - - test_pmic_print_unity_testcase_info(9914, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); - - pmicStatus = Pmic_rtcSetConfiguration(pHandle, rtcCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(9914, - pmic_rtc_tests, - PMIC_RTC_NUM_OF_TESTCASES); -} - -#if defined(UNITY_INCLUDE_CONFIG_V2_H) && \ - (defined(SOC_J721E) || defined(SOC_J7200)) - -/*! - * \brief Run RTC unity test cases - */ -static void test_pmic_run_testcases(void) -{ - pmic_log("\n\n%s(): %d: Begin Unity Test Cases...\n", __func__, __LINE__); - UNITY_BEGIN(); - - pmic_testResult_init(pmic_rtc_tests, PMIC_RTC_NUM_OF_TESTCASES); - - RUN_TEST(test_pmic_rtc_testSetAlarm); - RUN_TEST(test_pmic_rtc_setAlarmInfoPrmValTest_handle); - RUN_TEST(test_pmic_rtc_setAlarmInfoPrmValTest_seconds); - RUN_TEST(test_pmic_rtc_setAlarmInfoPrmValTest_minutes); - RUN_TEST(test_pmic_rtc_setAlarmInfoPrmValTest_timeMode); - RUN_TEST(test_pmic_rtc_setAlarmInfoPrmValTest_meridianMode); - RUN_TEST(test_pmic_rtc_setAlarmInfoPrmValTest_hour12); - RUN_TEST(test_pmic_rtc_setAlarmInfoPrmValTest_hour24); - RUN_TEST(test_pmic_rtc_setAlarmInfoPrmValTest_hour); - RUN_TEST(test_pmic_rtc_setAlarmInfoPrmValTest_month); - RUN_TEST(test_pmic_rtc_setAlarmInfoPrmValTest_day); - RUN_TEST(test_pmic_rtc_setAlarmInfoPrmValTest_year); - RUN_TEST(test_pmic_rtc_setAlarmInfoPrmValTest_month_range); - RUN_TEST(test_pmic_rtc_setAlarmInfoPrmValTest_day_month); - RUN_TEST(test_pmic_rtc_setAlarmInfoPrmValTest_feb_leapyear); - RUN_TEST(test_pmic_rtc_setAlarmInfoPrmValTest_feb_nonleapyear); - RUN_TEST(test_pmic_rtc_setAlarmInfoPrmValTest_day_month31); - RUN_TEST(test_pmic_rtc_testGetAlarm); - RUN_TEST(test_pmic_rtc_getAlarmInfoPrmValTest_handle); - RUN_TEST(test_pmic_rtc_getAlarmInfoPrmValTest_timeCfg); - RUN_TEST(test_pmic_rtc_getAlarmInfoPrmValTest_dateCfg); - RUN_TEST(test_pmic_rtc_testSetTimer); - RUN_TEST(test_pmic_rtc_setTimerPeriodPrmValTest_handle); - RUN_TEST(test_pmic_rtc_setTimerPeriodPrmValTest_timerPeriod); - RUN_TEST(test_pmic_rtc_testGetTimer); - RUN_TEST(test_pmic_rtc_getTimerPeriodPrmValTest_handle); - RUN_TEST(test_pmic_rtc_getTimerPeriodPrmValTest_timerPeriod); - RUN_TEST(test_pmic_rtc_testDisable); - RUN_TEST(test_pmic_rtc_disablePrmValTest_handle); - RUN_TEST(test_pmic_rtc_testEnable); - RUN_TEST(test_pmic_rtc_enablePrmValTest_handle); - RUN_TEST(test_pmic_rtc_testSetTime); - RUN_TEST(test_pmic_rtc_setTimePrmValTest_handle); - RUN_TEST(test_pmic_rtc_setTimePrmValTest_seconds); - RUN_TEST(test_pmic_rtc_setTimePrmValTest_minutes); - RUN_TEST(test_pmic_rtc_setTimePrmValTest_timeMode); - RUN_TEST(test_pmic_rtc_setTimePrmValTest_meridianMode); - RUN_TEST(test_pmic_rtc_setTimePrmValTest_hour12); - RUN_TEST(test_pmic_rtc_setTimePrmValTest_hour24); - RUN_TEST(test_pmic_rtc_setTimePrmValTest_hour); - RUN_TEST(test_pmic_rtc_setTimePrmValTest_year); - RUN_TEST(test_pmic_rtc_setTimePrmValTest_month); - RUN_TEST(test_pmic_rtc_setTimePrmValTest_day); - RUN_TEST(test_pmic_rtc_setTimePrmValTest_pvmonth); - RUN_TEST(test_pmic_rtc_setTimePrmValTest_month_range); - RUN_TEST(test_pmic_rtc_setTimePrmValTest_day_month); - RUN_TEST(test_pmic_rtc_setTimePrmValTest_feb_leapyear); - RUN_TEST(test_pmic_rtc_setTimePrmValTest_feb_nonleapyear); - RUN_TEST(test_pmic_rtc_setTimePrmValTest_day_month31); - RUN_TEST(test_pmic_rtc_testGetTime); - RUN_TEST(test_pmic_rtc_getTimePrmValTest_handle); - RUN_TEST(test_pmic_rtc_getTimePrmValTest_timeCfg); - RUN_TEST(test_pmic_rtc_getTimePrmValTest_dateCfg); - RUN_TEST(test_pmic_rtc_testSetFreqComp); - RUN_TEST(test_pmic_rtc_setFreqCompPrmValTest_handle); - RUN_TEST(test_pmic_rtc_testGetFreqComp); - RUN_TEST(test_pmic_rtc_getFreqCompPrmValTest_handle); - RUN_TEST(test_pmic_rtc_getFreqCompPrmValTest_compensation); - RUN_TEST(test_pmic_rtc_testTimerIntr); - RUN_TEST(test_pmic_rtc_testAlarmIntr); - RUN_TEST(test_pmic_rtc_enableTimerInterrupt_PrmValTest_handle); - RUN_TEST(test_pmic_rtc_enableAlarmInterrupt_PrmValTest_handle); - RUN_TEST(test_pmic_rtc_testGetStatus_running); - RUN_TEST(test_pmic_rtc_testGetStatus_frozen); - RUN_TEST(test_pmic_rtc_getRstStatus_PrmValTest_handle); - RUN_TEST(test_pmic_rtc_getRstStatus_PrmValTest_rtcStatus); - RUN_TEST(test_pmic_rtc_getRstStatus_PrmValTest_validParams); - RUN_TEST(test_pmic_rtc_testTimerAsyncIntr); - RUN_TEST(test_pmic_rtc_testAlarmAsyncIntr); - RUN_TEST(test_pmic_rtc_getStatus_PrmValTest_handle); - RUN_TEST(test_pmic_rtc_getStatus_PrmValTest_pRtcstatus); - RUN_TEST(test_pmic_rtc_getCfgPrmValTest_handle); - RUN_TEST(test_pmic_rtc_getCfgPrmValTest_pRtcCfg); - RUN_TEST(test_pmic_rtc_clrRstStatus_PrmValTest_handle); - RUN_TEST(test_pmic_rtc_clrRstStatus_PrmValTest_rtcRstStatType); - RUN_TEST(test_pmic_rtc_setCfg_crystalOScEn); - RUN_TEST(test_pmic_rtc_setCfg_rtcTimeRound30s); - RUN_TEST(test_pmic_rtc_setCfg_timeDateRegSel_dynamic); - RUN_TEST(test_pmic_rtc_setCfg_timeDateRegSel_staticShadow); - RUN_TEST(test_pmic_rtc_setCfg_crystalOScType); - RUN_TEST(test_pmic_rtc_setCfgPrmValTest_handle); - RUN_TEST(test_pmic_rtc_setCfgPrmValTest_setRtcTimeRound30s); - RUN_TEST(test_pmic_rtc_setCfgPrmValTest_timeDateRegSel); - RUN_TEST(test_pmic_rtc_setCfgPrmValTest_crystalOScType); - RUN_TEST(test_pmic_rtc_setCfgPrmValTest_set32KCounterCompVal); - - RUN_TEST(test_pmic_rtc_setAlarmInfoPrmValTest_febMonth_day); - RUN_TEST(test_pmic_rtc_setAlarmInfoPrmValTest_day_min); - RUN_TEST(test_pmic_rtc_setAlarmInfoPrmValTest_day_max); - RUN_TEST(test_pmic_rtc_setAlarmInfoPrmValTest_month_min); - RUN_TEST(test_pmic_rtc_setAlarmInfoPrmValTest_month_max); - RUN_TEST(test_pmic_rtc_setAlarmInfoPrmValTest_year_min); - RUN_TEST(test_pmic_rtc_setAlarmInfoPrmValTest_weekday_min); - RUN_TEST(test_pmic_rtc_setAlarmInfoPrmValTest_meridianMode_12HrMode); - RUN_TEST(test_pmic_rtc_setAlarmInfoPrmValTest_weekday); - RUN_TEST(test_pmic_rtc_setAlarmInfoPrmValTest_dateTimeCfg); - RUN_TEST(test_pmic_rtc_setTimeDateInfoPrmValTest_dateTimeCfg); - RUN_TEST(test_pmic_rtc_getAlarmInfoPrmValTest_pDatePtimeCfg); - RUN_TEST(test_pmic_rtc_getTimeDateInfoPrmValTest_pDatePtimeCfg); - RUN_TEST(test_pmic_rtc_getRstStatus_powerUpStatus); - RUN_TEST(test_pmic_rtc_setTimeDateInfoPrmValTest_day_min_leapyear); - RUN_TEST(test_pmic_rtc_getTimeDateInfo_timeDateRegSel_staticShadow); - RUN_TEST(test_pmic_rtc_setConfiguration_rtcIsStarted); - RUN_TEST(test_pmic_rtc_coverageGaps); - - pmic_updateTestResults(pmic_rtc_tests, PMIC_RTC_NUM_OF_TESTCASES); - - UNITY_END(); -} - -/*! - * \brief Run RTC unity test cases for HERA PMIC - */ -void test_pmic_hera_run_testcases(void) -{ - pmic_log("\n\n%s(): %d: Begin Unity Test Cases...\n", __func__, __LINE__); - UNITY_BEGIN(); - - pmic_testResult_init(pmic_rtc_tests, PMIC_RTC_NUM_OF_TESTCASES); - - RUN_TEST(test_Pmic_rtcEnable_hera); - RUN_TEST(test_Pmic_rtcEnableAlarmIntr_hera); - RUN_TEST(test_Pmic_rtcEnableTimerIntr_hera); - RUN_TEST(test_pmic_rtc_testSetFreqComp_hera); - RUN_TEST(test_Pmic_rtcSetTimeDateInfo_hera); - RUN_TEST(test_Pmic_rtcGetAlarmInfo_hera); - RUN_TEST(test_pmic_rtc_testSetAlarm_hera); - RUN_TEST(test_pmic_rtc_testSetTimer_hera); - RUN_TEST(test_pmic_rtc_testGetTimer_hera); - RUN_TEST(test_pmic_rtc_testGetRstStatus_running_hera); - RUN_TEST(test_pmic_rtc_testGetTime_hera); - RUN_TEST(test_pmic_rtc_testGetFreqComp_hera); - - pmic_updateTestResults(pmic_rtc_tests, PMIC_RTC_NUM_OF_TESTCASES); - - UNITY_END(); -} - -/*! - * \brief RTC Unity Test App wrapper Function for LEO PMIC-A - */ -static int32_t test_pmic_leo_pmicA_rtc_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_LEO_TPS6594X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_DUAL_I2C; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.i2c1Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C1_SPEED_VALID_SHIFT; - - pmicConfigData.i2c2Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C2_SPEED_VALID_SHIFT; - - if(J721E_LEO_PMICA_DEVICE == pmic_device_info) - { - pmicConfigData.slaveAddr = J721E_LEO_PMICA_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J721E_LEO_PMICA_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J721E_LEO_PMICA_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - } - if(J7VCL_LEO_PMICA_DEVICE == pmic_device_info) - { - pmicConfigData.slaveAddr = J7VCL_LEO_PMICA_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J7VCL_LEO_PMICA_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J7VCL_LEO_PMICA_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - } - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; -} - -/*! - * \brief RTC Unity Test App wrapper Function for LEO PMIC-A - */ -static int32_t test_pmic_leo_pmicA_spiStub_rtc_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_LEO_TPS6594X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_SPI; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; -} - -/*! - * \brief RTC Unity Test App wrapper Function for HERA PMIC - */ -static int32_t test_pmic_hera_rtc_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_HERA_LP8764X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_SINGLE_I2C; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.i2c1Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C1_SPEED_VALID_SHIFT; - - pmicConfigData.slaveAddr = J7VCL_HERA_PMIC_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J7VCL_HERA_PMIC_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J7VCL_HERA_PMIC_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; - -} - -/*! - * \brief RTC Unity Test App wrapper Function for LEO PMIC-B - */ -static int32_t test_pmic_leo_pmicB_rtc_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_LEO_TPS6594X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_SINGLE_I2C; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.i2c1Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C1_SPEED_VALID_SHIFT; - - pmicConfigData.slaveAddr = J721E_LEO_PMICB_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J721E_LEO_PMICB_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J721E_LEO_PMICB_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; -} - -static int32_t setup_pmic_interrupt(uint32_t board, bool enableCRC) -{ - int32_t status = PMIC_ST_SUCCESS; - - if(J721E_BOARD == board) - { - if(enableCRC == true) - { - if(PMIC_STATUS_CRC_INIT_VAL == gCrcTestFlag_J721E) - { - gCrcTestFlag_J721E = PMIC_CFG_TO_ENABLE_CRC; - } - } - else - { - gCrcTestFlag_J721E = PMIC_STATUS_CRC_INIT_VAL; - } - - pmic_device_info = J721E_LEO_PMICA_DEVICE; - status = test_pmic_leo_pmicA_rtc_testApp(); - /* Deinit pmic handle */ - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - - if(PMIC_ST_SUCCESS == status) - { - pmic_device_info = J721E_LEO_PMICB_DEVICE; - status = test_pmic_leo_pmicB_rtc_testApp(); - /* Deinit pmic handle */ - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } - } - else if(J7VCL_BOARD == board) - { - if(enableCRC == true) - { - if(PMIC_STATUS_CRC_INIT_VAL == gCrcTestFlag_J7VCL) - { - gCrcTestFlag_J7VCL = PMIC_CFG_TO_ENABLE_CRC; - } - } - else - { - gCrcTestFlag_J7VCL = PMIC_STATUS_CRC_INIT_VAL; - } - - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - status = test_pmic_leo_pmicA_rtc_testApp(); - /* Deinit pmic handle */ - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - - if(PMIC_ST_SUCCESS == status) - { - pmic_device_info = J7VCL_HERA_PMICB_DEVICE; - status = test_pmic_hera_rtc_testApp(); - /* Deinit pmic handle */ - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } - } - else - { - status = PMIC_ST_ERR_INV_DEVICE; - } - return status; -} - -/*! - * \brief PMIC Application Callback Function - */ -void AppPmicCallbackFxn(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_IrqStatus_t errStat = {0U}; - uint8_t irqNum = 0U; - - status = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, false); - - if(PMIC_ST_SUCCESS == status) - { - status = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - if(PMIC_ST_SUCCESS == status) - { - switch(irqNum) - { - case PMIC_TPS6594X_RTC_TIMER_INT: - pmic_intr_triggered = 1U; - /* clear the interrupt */ - status = Pmic_irqClrErrStatus(pPmicCoreHandle, - PMIC_TPS6594X_RTC_TIMER_INT); - break; - case PMIC_TPS6594X_RTC_ALARM_INT: - pmic_intr_triggered = 2U; - /* clear the interrupt */ - status = Pmic_irqClrErrStatus(pPmicCoreHandle, - PMIC_TPS6594X_RTC_ALARM_INT); - break; - default: - break; - } - } - } -} - -static const char pmicTestMenu[] = -{ - " \r\n =================================================================" - " \r\n Test Menu:" - " \r\n =================================================================" - " \r\n 0: Automatic run for all board specific RTC options" - " \r\n 1: Manual run for RTC options" - " \r\n 2: quit" - " \r\n" - " \r\n Enter option: " -}; - -volatile static const char pmicTestAppMenu[] = -{ - " \r\n =================================================================" - " \r\n Menu Options:" - " \r\n =================================================================" - " \r\n 0: Pmic Leo device(PMIC A on J721E EVM Using I2C Interface)" - " \r\n 1: Pmic Leo device(PMIC A on J721E EVM Using SPI Stub Functions)" - " \r\n 2: Pmic Leo device(PMIC B on J721E EVM)" - " \r\n 3: Pmic Leo device(PMIC A on J7VCL EVM Using I2C Interface)" - " \r\n 4: Pmic Leo device(PMIC A on J7VCL EVM Using SPI Stub Functions)" - " \r\n 5: Pmic HERA device(PMIC B on J7VCL EVM)" - " \r\n 6: Pmic Leo device(PMIC A on J721E EVM RTC Manual Testcase)" - " \r\n 7: Pmic Leo device(PMIC A on J7VCL EVM RTC Manual Testcase)" - " \r\n 8: Pmic Leo device(PMIC A on J721E EVM Manual Testcase with CRC Disable on PG2.0 Silicon revision)" - " \r\n 9: Back to Test Menu" - " \r\n" - " \r\n Enter option: " -}; - -static void print_pmicTestAppManualTestMenu(uint32_t board) -{ - char board_name[10] = {0}; - - if(J721E_BOARD == board) - { - strcpy(board_name, "J721E"); - } - else if(J7VCL_BOARD == board) - { - strcpy(board_name, "J7VCL"); - } - - pmic_log(" \r\n ================================================================="); - pmic_log(" \r\n Manual Testcase Menu:"); - pmic_log(" \r\n ================================================================="); - pmic_log(" \r\n 0: Pmic Leo device(PMIC A on %s EVM for RTC WKUP using Timer Interrupt from LP Standby State)", board_name); - pmic_log(" \r\n 1: Pmic Leo device(PMIC A on %s EVM for RTC WKUP using Timer Interrupt from Standby State)", board_name); - pmic_log(" \r\n 2: Pmic Leo device(PMIC A on %s EVM for RTC WKUP using Alarm Interrupt from LP Standby State)", board_name); - pmic_log(" \r\n 3: Pmic Leo device(PMIC A on %s EVM for RTC WKUP using Alarm Interrupt from Standby State)", board_name); - pmic_log(" \r\n 4: Pmic Leo device(PMIC A on %s EVM for Get RTC Reset status and then Clear RTC Reset status using powerupStatus)", board_name); - pmic_log(" \r\n 5: Pmic Leo device(PMIC A on %s EVM for Get RTC Reset status and then Clear RTC Reset status using rtcRstStatus)", board_name); - pmic_log(" \r\n 6: Pmic Leo device(PMIC A on %s EVM for Set 32K counter with compensation values)", board_name); - pmic_log(" \r\n 7: Back to Main Menu"); - pmic_log(" \r\n"); - pmic_log(" \r\n Enter option: "); -} - -/*! - * \brief Run RTC manual test cases - */ -static void test_pmic_run_testcases_manual(uint32_t board) -{ - int8_t menuOption = -1; - - while(1U) - { - print_pmicTestAppManualTestMenu(board); - if(UART_scanFmt("%d", &menuOption) != 0U) - { - pmic_log("Read from UART Console failed\n"); - return; - } - - switch(menuOption) - { - case 0U: - RUN_TEST(test_pmic_rtc_testWakeup_TimerIntr_lpStandbyState); - break; - case 1U: - RUN_TEST(test_pmic_rtc_testWakeup_TimerIntr_standbyState); - break; - case 2U: - RUN_TEST(test_pmic_rtc_testWakeup_AlarmIntr_lpStandbyState); - break; - case 3U: - RUN_TEST(test_pmic_rtc_testWakeup_AlarmIntr_standbyState); - break; - case 4U: - RUN_TEST(test_pmic_rtc_clrRstStatus_powerupStatus); - break; - case 5U: - RUN_TEST(test_pmic_rtc_clrRstStatus_rtcRstStatus); - break; - case 6U: - RUN_TEST(test_pmic_rtc_setCfg_set32KCounterCompVal); - break; - case 7U: - pmic_log(" \r\n Back to Test Menu options\n"); - return; - default: - pmic_log(" \r\n Invalid option... Try Again!!!\n"); - break; - } - } -} - -static void test_pmic_rtc_testapp_run_options(int8_t option) -{ - int8_t num = -1; - int8_t idx = 0; -#if defined(SOC_J721E) - int8_t automatic_options[] = {0, 1}; - int8_t userInput = 0; -#elif defined(SOC_J7200) - int8_t automatic_options[] = {3, 4, 5}; -#endif - - while(1U) - { - if(idx >= (sizeof(automatic_options)/sizeof(automatic_options[0]))) - { - pmic_printTestResult(pmic_rtc_tests, PMIC_RTC_NUM_OF_TESTCASES); - } - pmic_log("%s", pmicTestAppMenu); - if(option == PMIC_UT_AUTOMATE_OPTION) - { - if(idx < (sizeof(automatic_options)/sizeof(automatic_options[0]))) - { - num = automatic_options[idx++]; - } - else - { - num = 9; - } - pmic_log("%d\n", num); - } - else - { - if(UART_scanFmt("%d", &num) != 0U) - { - pmic_log("Read from UART Console failed\n"); - return; - } - } - - switch(num) - { - case 0U: -#if defined(SOC_J721E) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J721E_BOARD, true)) - { - pmic_device_info = J721E_LEO_PMICA_DEVICE; - - /* RTC Unity Test App wrapper Function for LEO PMIC-A */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_rtc_testApp()) - { - if(PMIC_SILICON_REV_ID_PG_2_0 == - pPmicCoreHandle->pmicDevSiliconRev) - { - test_pmic_rtc_setCfg_xtalOScEnType(pPmicCoreHandle); - } - /* Run rtc test cases for Leo PMIC-A */ - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 1U: -#if defined(SOC_J721E) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J721E_BOARD, true)) - { - pmic_device_info = J721E_LEO_PMICA_DEVICE; - - /* RTC Unity Test App wrapper Function for LEO PMIC-A using - * SPI stub functions */ - if(PMIC_ST_SUCCESS == - test_pmic_leo_pmicA_spiStub_rtc_testApp()) - { - if(PMIC_SILICON_REV_ID_PG_2_0 == - pPmicCoreHandle->pmicDevSiliconRev) - { - test_pmic_rtc_setCfg_xtalOScEnType(pPmicCoreHandle); - } - /* Run rtc test cases for Leo PMIC-A */ - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 2U: -#if defined(SOC_J721E) - /* RTC Unity Test App wrapper Function for LEO PMIC-B */ - pmic_log("RTC on LEO PMIC-B is not supported due to HW limitation\n"); -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 3U: -#if defined(SOC_J7200) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J7VCL_BOARD, true)) - { - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - - /* RTC Unity Test App wrapper Function for LEO PMIC-A */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_rtc_testApp()) - { - /* Run rtc test cases for Leo PMIC-A */ - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 4U: -#if defined(SOC_J7200) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J7VCL_BOARD, true)) - { - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - /* RTC Unity Test App wrapper Function for LEO PMIC-A - * using SPI stub functions */ - if(PMIC_ST_SUCCESS == - test_pmic_leo_pmicA_spiStub_rtc_testApp()) - { - /* Run rtc test cases for Leo PMIC-A */ - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 5U: -#if defined(SOC_J7200) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J7VCL_BOARD, true)) - { - pmic_device_info = J7VCL_HERA_PMICB_DEVICE; - - /* RTC Unity Test App wrapper Function for HERA */ - if(PMIC_ST_SUCCESS == test_pmic_hera_rtc_testApp()) - { - /* Run rtc test cases for Leo PMIC-A */ - test_pmic_hera_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 6U: -#if defined(SOC_J721E) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J721E_BOARD, true)) - { - pmic_device_info = J721E_LEO_PMICA_DEVICE; - - /* RTC Manual Test App wrapper Function for LEO PMIC-A */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_rtc_testApp()) - { - if(PMIC_SILICON_REV_ID_PG_2_0 == - pPmicCoreHandle->pmicDevSiliconRev) - { - test_pmic_rtc_setCfg_xtalOScEnType(pPmicCoreHandle); - } - - /* Run Rtc manual test cases */ - test_pmic_run_testcases_manual(J721E_BOARD); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - return; - case 7U: -#if defined(SOC_J7200) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J7VCL_BOARD, true)) - { - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - - /* RTC Manual Test App wrapper Function for LEO PMIC-A */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_rtc_testApp()) - { - /* Run Rtc manual test cases */ - test_pmic_run_testcases_manual(J7VCL_BOARD); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - return; - case 8U: -#if defined(SOC_J721E) - pmic_log("\r\n Run the test only on Leo PMIC-A PG2.0 after Board Power cycle !!!\n"); - pmic_log("\r\n Enter 1 to continue"); - UART_scanFmt("%d", &userInput); - - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J721E_BOARD, false)) - { - pmic_device_info = J721E_LEO_PMICA_DEVICE; - - /* RTC Unity Test App wrapper Function for LEO PMIC-A */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_rtc_testApp()) - { - if(PMIC_SILICON_REV_ID_PG_2_0 == - pPmicCoreHandle->pmicDevSiliconRev) - { - test_pmic_rtc_setCfg_xtalOScEnType(pPmicCoreHandle); - } - /* Run rtc test cases for Leo PMIC-A */ - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 9U: - pmic_log(" \r\n Back to Test Menu options\n"); - return; - default: - pmic_log(" \r\n Invalid option... Try Again!!!\n"); - break; - } - } -} - -/*! - * \brief Function to register RTC Unity Test App wrapper to Unity framework - */ -static void test_pmic_rtc_testapp_runner(void) -{ - /* @description : Test runner for RTC Test App - * - * @requirements: 5855, 5813, 5806 - * - * @cores : mcu1_0, mcu1_1 - */ - - int8_t option = -1; - - while(1U) - { - pmic_log("%s", pmicTestMenu); - if(UART_scanFmt("%d", &option) != 0U) - { - pmic_log("Read from UART Console failed\n"); - return; - } - - switch(option) - { - case PMIC_UT_AUTOMATE_OPTION: - test_pmic_rtc_testapp_run_options(PMIC_UT_AUTOMATE_OPTION); - break; - case PMIC_UT_MANUAL_OPTION: - test_pmic_rtc_testapp_run_options(PMIC_UT_MANUAL_OPTION); - break; - case 2U: - pmic_log(" \r\n Quit from application\n"); - return; - default: - pmic_log(" \r\n Invalid option... Try Again!!!\n"); - break; - } - } -} -#endif - -/*! - * \brief TI RTOS specific RTC TEST APP main Function - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values see \ref Pmic_ErrorCodes - */ -int main() -{ - Board_initUART(); - - /* - * Initialze and Register ISR handler to J7 Interrupts - */ - App_initGPIO(AppPmicCallbackFxn); - - pmic_print_banner("PMIC RTC Unity Test Application"); - -#if defined(UNITY_INCLUDE_CONFIG_V2_H) && \ - (defined(SOC_J721E) || \ - defined(SOC_J7200)) - test_pmic_rtc_testapp_runner(); -#endif -} diff --git a/test/rtc_test/pmic_ut_rtc.h b/test/rtc_test/pmic_ut_rtc.h deleted file mode 100644 index c7df6f8..0000000 --- a/test/rtc_test/pmic_ut_rtc.h +++ /dev/null @@ -1,102 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ -/** - * \file pmic_ut_rtc.h - * - * \brief Header file for PMIC RTC Unit Tests - * - */ - -#include - -/*! - * \brief RTC invalid date/time macros - */ -#define PMIC_RTC_INVALID_SEC_MINUTE (61U) -#define PMIC_RTC_INVALID_TIME_MODE (2U) -#define PMIC_RTC_INVALID_MERIDIEN_MODE (2U) -#define PMIC_RTC_INVALID_DAY (29U) -#define PMIC_RTC_INVALID_DAY_32 (32U) -#define PMIC_RTC_INVALID_HOUR_25 (25U) -#define PMIC_RTC_INVALID_DAY_31 (31U) -#define PMIC_RTC_INVALID_DAY_30 (30U) -#define PMIC_RTC_INVALID_YEAR (3000U) -#define PMIC_RTC_INVALID_MONTH_0 (0U) -#define PMIC_RTC_INVALID_MONTH (13U) -#define PMIC_RTC_INVALID_DAY_0 (0U) -#define PMIC_RTC_INVALID_HOUR_13 (13U) -#define PMIC_RTC_INVALID_HOUR_0 (0U) - -/*! - * \brief RTC Date limit Macros - */ -#define PMIC_RTC_YEAR_2044 (2044U) -#define PMIC_RTC_YEAR_2045 (2045U) -#define PMIC_RTC_HOUR_0 (0U) - -/*! - * \brief PMIC RTC Valid Params configuration for Time and Date - */ -#define PMIC_RTC_VALID_PARAM_TIME_CFG_VAL \ - (PMIC_RTC_TIME_CFG_SEC_VALID_SHIFT | \ - PMIC_RTC_TIME_CFG_MIN_VALID_SHIFT | \ - PMIC_RTC_TIME_CFG_HRS_VALID_SHIFT | \ - PMIC_RTC_TIME_CFG_TIMEMODE_VALID_SHIFT | \ - PMIC_RTC_TIME_CFG_MERIDIAN_VALID_SHIFT) - -#define PMIC_RTC_VALID_PARAM_TIME_HRS_TIMEMODE_CFG_VAL \ - (PMIC_RTC_TIME_CFG_HRS_VALID_SHIFT | \ - PMIC_RTC_TIME_CFG_TIMEMODE_VALID_SHIFT) - -#define PMIC_RTC_VALID_PARAM_DATE_CFG_VAL \ - (PMIC_RTC_DATE_CFG_DAY_VALID_SHIFT | \ - PMIC_RTC_DATE_CFG_MONTH_VALID_SHIFT | \ - PMIC_RTC_DATE_CFG_YEAR_VALID_SHIFT | \ - PMIC_RTC_DATE_CFG_WEEKDAY_VALID_SHIFT) - -#define PMIC_RTC_VALID_PARAM_DATE_CFG_DAY_MNTH_VAL \ - (PMIC_RTC_DATE_CFG_DAY_VALID_SHIFT | \ - PMIC_RTC_DATE_CFG_MONTH_VALID_SHIFT) - -#define PMIC_RTC_VALID_PARAM_DATE_CFG_DAY_MNTH_YR_VAL \ - (PMIC_RTC_DATE_CFG_DAY_VALID_SHIFT | \ - PMIC_RTC_DATE_CFG_MONTH_VALID_SHIFT | \ - PMIC_RTC_DATE_CFG_YEAR_VALID_SHIFT) - -#define PMIC_RTC_TIMEOUT (5U) - -/*! - * \brief Number of RTC testcases - */ -#define PMIC_RTC_NUM_OF_TESTCASES \ - (sizeof(pmic_rtc_tests)/sizeof(pmic_rtc_tests[0])) diff --git a/test/stress_test/makefile b/test/stress_test/makefile deleted file mode 100644 index e7d694d..0000000 --- a/test/stress_test/makefile +++ /dev/null @@ -1,84 +0,0 @@ -# Filename: Makefile -# -# This file is the makefile for building PMIC RTC Test Code. -# -# Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com/ -# -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# -# Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the -# distribution. -# -# Neither the name of Texas Instruments Incorporated nor the names of -# its contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -#File - pmic_lld\test\stress_test\makefile - -APP_NAME = pmic_stress_testapp - -include $(PDK_INSTALL_PATH)/ti/build/Rules.make - -BUILD_OS_TYPE = baremetal - -SRCDIR = . ../common -INCDIR = . ../../include/ ../../include/cfg/tps6594x ../../include/cfg/lp8764x -INCDIR += ../common - -# Common source files across all platforms and cores -SRCS_COMMON += pmic_ut_stress.c pmic_ut_common.c - -SRCDIR += $(PDK_INSTALL_PATH)/ti/build/unit-test/Unity/src $(PDK_INSTALL_PATH)/ti/build/unit-test/config -INCDIR += $(PDK_INSTALL_PATH)/ti/build/unit-test/Unity/src $(PDK_INSTALL_PATH)/ti/build/unit-test/config -SRCS_COMMON += unity.c - -# List all the external components/interfaces, whose interface header files -# need to be included for this component -INCLUDE_EXTERNAL_INTERFACES = pdk i2c gpio csl -INCLUDE_INTERNAL_INTERFACES = pmic - -# List all the components required by the application -COMP_LIST_COMMON = $(PDK_COMMON_BAREMETAL_COMP) - -# Common source files and CFLAGS across all platforms and cores -PACKAGE_SRCS_COMMON = . ../common - -CFLAGS_LOCAL_COMMON += -DUNITY_INCLUDE_CONFIG_V2_H $(PMIC_CFLAGS) - -# Core/SoC/platform specific source files and CFLAGS -# Example: -# SRCS_ = -# CFLAGS_LOCAL_ = - -# Include common make files -ifeq ($(MAKERULEDIR), ) -#Makerule path not defined, define this and assume relative path from ROOTDIR - MAKERULEDIR := $(ROOTDIR)/ti/build/makerules - export MAKERULEDIR -endif -include $(MAKERULEDIR)/common.mk - -# OBJs and libraries are built by using rule defined in rules_.mk -# and need not be explicitly specified here - -# Nothing beyond this point diff --git a/test/stress_test/pmic_ut_stress.c b/test/stress_test/pmic_ut_stress.c deleted file mode 100644 index 0050fae..0000000 --- a/test/stress_test/pmic_ut_stress.c +++ /dev/null @@ -1,1394 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ -/** - * \file pmic_ut_stress.c - * - * \brief PMIC Unit Test for testing PMIC STRESS APIs - * - */ - -#include - -/* Pointer to Pmic Core Handle */ -Pmic_CoreHandle_t *pPmicCoreHandle = NULL; - -extern uint16_t pmic_device_info; -extern int32_t gCrcTestFlag_J721E; -extern int32_t gCrcTestFlag_J7VCL; - -volatile uint32_t pmic_intr_triggered_stress_tst_timer = 1U; -volatile uint32_t pmic_intr_triggered_stress_tst_alarm = 1U; - -/*! - * \brief PMIC STRESS Test Cases - */ -static Pmic_Ut_Tests_t pmic_stress_tests[] = -{ - { - 8230, - "Pmic_rtcEnableTimer_Alarm_Intr : Stress test for RTC alarm and timer interrupt" - }, - { - 8239, - "test_pmic_rtc_testWakeup_TimerIntr_lpStandbyState : Stress test for pmic sleep and wakeup" - }, - { - 8231, - "test_pmic_appInit_appDeInit : Stress test for pmic init/deinit with single i2c" - }, - { - 8235, - "test_pmic_appInit_appDeInit : Stress test for pmic init/deinit with dual i2c" - }, - { - 8232, - "test_pmic_appInit_appDeInit : Stress test for pmic init/deinit with gpio cfg with single i2c'" - }, - { - 8237, - "test_pmic_appInit_appDeInit : Stress test for pmic init/deinit with gpio cfg dual i2c" - } -}; - -/*! - * \brief configure gpio pin as I2C2 SCLK function - */ -static void test_pmic_gpio_setCfgGpioPin_i2c2_sclk(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - int pin = 1U; - Pmic_GpioCfg_t gpioCfg_rd = {PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT,}; - Pmic_GpioCfg_t gpioCfg = - { - PMIC_GPIO_CFG_PINFUNC_VALID_SHIFT, - PMIC_GPIO_OUTPUT, - PMIC_GPIO_OPEN_DRAIN_OUTPUT, - PMIC_GPIO_PULL_DOWN, - PMIC_GPIO_DEGLITCH_ENABLE, - PMIC_TPS6594X_GPIO_PINFUNC_GPIO1_SCL_I2C2_CS_SPI, - PMIC_GPIO_HIGH - }; - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pin = 1U; - gpioCfg.pinFunc = PMIC_TPS6594X_GPIO_PINFUNC_GPIO1_SCL_I2C2_CS_SPI; - } - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pin = 2U; - gpioCfg.pinFunc = PMIC_LP8764X_GPIO_PINFUNC_GPIO2_SCL_I2C2; - } - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - /* Should not break SPI Comm Lines */ - if((PMIC_INTF_SPI == pPmicCoreHandle->commMode) && - ((1U == pin) || (2U == pin))) - { - TEST_IGNORE(); - } - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - /* Should not break SPI Comm Lines */ - if((PMIC_INTF_SPI == pPmicCoreHandle->commMode) && - ((2U == pin) || (3U == pin))) - { - TEST_IGNORE(); - } - } - - pmicStatus = Pmic_gpioSetConfiguration(pPmicCoreHandle, pin, gpioCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_gpioGetConfiguration(pPmicCoreHandle, pin, &gpioCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(gpioCfg.pinFunc, gpioCfg_rd.pinFunc); - -} - -/*! - * \brief Pmic_powerSetPwrResourceCfg : Test Enable buck pull down checking for Buck regulator - */ -static void test_pmic_powerSetPowerResourceConfig_buckPullDownEn_enable(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_PowerResourceCfg_t powerCfg_rd = - { - PMIC_CFG_REGULATOR_BUCK_PLDN_EN_VALID_SHIFT, - }; - uint16_t pwrRsrc, pwrRsrcMin, pwrRsrcMax; - - Pmic_PowerResourceCfg_t pPowerCfg = - { - PMIC_CFG_REGULATOR_BUCK_PLDN_EN_VALID_SHIFT, - }; - - if(PMIC_DEV_LEO_TPS6594X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckPullDownEn = PMIC_TPS6594X_REGULATOR_BUCK_PLDN_ENABLE; - pwrRsrcMin = PMIC_TPS6594X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_TPS6594X_REGULATOR_BUCK5; - } - - if(PMIC_DEV_HERA_LP8764X == pPmicCoreHandle->pmicDeviceType) - { - pPowerCfg.buckPullDownEn = PMIC_LP8764X_REGULATOR_BUCK_PLDN_ENABLE; - pwrRsrcMin = PMIC_LP8764X_REGULATOR_BUCK1; - pwrRsrcMax = PMIC_LP8764X_REGULATOR_BUCK4; - } - - for(pwrRsrc = pwrRsrcMin; pwrRsrc <= pwrRsrcMax ; pwrRsrc++) - { - pmicStatus = Pmic_powerSetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - pPowerCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_powerGetPwrResourceCfg(pPmicCoreHandle, - pwrRsrc, - &powerCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(pPowerCfg.buckPullDownEn, powerCfg_rd.buckPullDownEn); - } - -} - -/*! - * \brief Test to verify PMIC ESM MCU Set configuration for ESM MCU - * Level Mode - */ -static void test_pmic_esm_setConfiguration_esmMcuLevelMode(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - bool esmType = PMIC_ESM_MODE_MCU; - Pmic_EsmCfg_t esmCfg_rd = {PMIC_ESM_CFG_DELAY1_VALID_SHIFT | - PMIC_ESM_CFG_DELAY2_VALID_SHIFT | - PMIC_ESM_CFG_MODE_VALID_SHIFT,}; - Pmic_EsmCfg_t esmCfg = - { - PMIC_ESM_CFG_DELAY1_VALID_SHIFT | PMIC_ESM_CFG_DELAY2_VALID_SHIFT | PMIC_ESM_CFG_MODE_VALID_SHIFT, - 4096U, - 2048U, - 30U, - 30U, - 30U, - 30U, - 4U, - PMIC_ESM_ERR_EN_DRV_CLEAR_ENABLE, - PMIC_ESM_LEVEL_MODE - }; - - pmicStatus = Pmic_esmStart(pPmicCoreHandle, esmType, PMIC_ESM_STOP); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmSetConfiguration(pPmicCoreHandle, esmType, esmCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_esmGetConfiguration(pPmicCoreHandle, - esmType, - &esmCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(esmCfg.esmDelay1_us, esmCfg_rd.esmDelay1_us); - TEST_ASSERT_EQUAL(esmCfg.esmDelay2_us, esmCfg_rd.esmDelay2_us); - TEST_ASSERT_EQUAL(esmCfg.esmMode, esmCfg_rd.esmMode); - -} - -/*! - * \brief Test to configure a wdg for all params - */ -static void test_pmic_wdg_setCfg_forallparams(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_WdgCfg_t wdgCfg_rd = {PMIC_WDG_CFG_SETPARAMS_FORALL, }; - Pmic_WdgCfg_t wdgCfg = - { - PMIC_WDG_CFG_SETPARAMS_FORALL, - 750000U, - 4950U, - 4950U, - PMIC_WDG_FAIL_THRESHOLD_COUNT_5, - PMIC_WDG_RESET_THRESHOLD_COUNT_6, - PMIC_WDG_QA_MODE, - PMIC_WDG_PWRHOLD_DISABLE, - PMIC_WDG_RESET_ENABLE, - PMIC_WDG_RETLONGWIN_ENABLE, - PMIC_WDG_QA_FEEDBACK_VALUE_2, - PMIC_WDG_QA_LFSR_VALUE_1, - PMIC_WDG_QA_QUES_SEED_VALUE_5, - }; - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - wdgCfg.longWinDuration_ms = 752000U; - } - - /* Enable WDG Timer */ - pmicStatus = Pmic_wdgEnable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_wdgGetCfg(pPmicCoreHandle, &wdgCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(wdgCfg.longWinDuration_ms, wdgCfg_rd.longWinDuration_ms); - TEST_ASSERT_EQUAL(wdgCfg.win1Duration_us, wdgCfg_rd.win1Duration_us); - TEST_ASSERT_EQUAL(wdgCfg.win2Duration_us, wdgCfg_rd.win2Duration_us); - TEST_ASSERT_EQUAL(wdgCfg.failThreshold, wdgCfg_rd.failThreshold); - TEST_ASSERT_EQUAL(wdgCfg.rstThreshold, wdgCfg_rd.rstThreshold); - TEST_ASSERT_EQUAL(wdgCfg.wdgMode, wdgCfg_rd.wdgMode); - TEST_ASSERT_EQUAL(wdgCfg.pwrHold, wdgCfg_rd.pwrHold); - TEST_ASSERT_EQUAL(wdgCfg.rstEnable, wdgCfg_rd.rstEnable); - TEST_ASSERT_EQUAL(wdgCfg.retLongWin, wdgCfg_rd.retLongWin); - TEST_ASSERT_EQUAL(wdgCfg.qaFdbk, wdgCfg_rd.qaFdbk); - TEST_ASSERT_EQUAL(wdgCfg.qaLfsr, wdgCfg_rd.qaLfsr); - TEST_ASSERT_EQUAL(wdgCfg.qaQuesSeed, wdgCfg_rd.qaQuesSeed); - - /* Disable WDG Timer */ - pmicStatus = Pmic_wdgDisable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - -} - -/*! - * \brief Stress test for RTC alarm and timer interrupt - */ -static void test_pmic_rtc_stressTestTimerAsyncIntr(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreHandle_t *pHandle = NULL; - uint8_t timerPeriod = 0U; - Pmic_IrqStatus_t errStat = {0U}; - Pmic_RtcTime_t timeCfg_rd = { 0x1F, 0U, 0U, 0U, 0U, 0U}; - Pmic_RtcDate_t dateCfg_rd = { 0x0F, 0U, 0U, 0U, 0U}; - Pmic_RtcDate_t validDateCfg = { 0x0F, 15U, 6U, 2055U, 1U}; - Pmic_RtcTime_t validTimeCfg = { 0x1F, 30U, 30U, 6U, 0U, 1U}; - uint32_t durationInHrs = 24U; - uint32_t pmic_stress_tst_alarm_count = 0U; - uint32_t pmic_stress_tst_timer_count = 0U; - - test_pmic_print_unity_testcase_info(8230, - pmic_stress_tests, - PMIC_STRESS_NUM_OF_TESTCASES); - -#if ((defined(SOC_J7200) && (defined(BUILD_MCU2_0) || defined(BUILD_MCU2_1))) || \ - (defined(SOC_J721E) && (defined(BUILD_MCU3_0) || defined(BUILD_MCU3_1)))) - /*Refer the Bug-PDK-10394 for more details*/ - pmic_testResultUpdate_ignore(8230, - pmic_stress_tests, - PMIC_STRESS_NUM_OF_TESTCASES); -#endif - - /* Enable GPIO interrupt on the specific gpio pin */ - GPIO_enableInt(0); - - pHandle = pPmicCoreHandle; - - status = Pmic_rtcSetTimeDateInfo(pHandle, validTimeCfg, validDateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - /* To clear the interrupts*/ - status = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - /* Get the current time value */ - status = Pmic_rtcGetTimeDateInfo(pHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcGetTimerPeriod(pHandle, &timerPeriod); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcSetTimerPeriod(pHandle, - PMIC_RTC_SECOND_INTR_PERIOD); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - timeCfg_rd.hour = timeCfg_rd.hour + 1U; - status = Pmic_rtcSetAlarmInfo(pHandle, timeCfg_rd, dateCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcEnableAlarmIntr(pHandle, PMIC_RTC_ALARM_INTR_ENABLE); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcEnableTimerIntr(pHandle, PMIC_RTC_TIMER_INTR_ENABLE); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - while((pmic_intr_triggered_stress_tst_alarm - 1U) != durationInHrs) - { - } - - pmic_stress_tst_alarm_count = durationInHrs; - pmic_stress_tst_timer_count = (durationInHrs * 3600U); - - TEST_ASSERT_EQUAL(pmic_stress_tst_alarm_count, - (pmic_intr_triggered_stress_tst_alarm - 1U)); - - TEST_ASSERT_EQUAL(pmic_stress_tst_timer_count, - (pmic_intr_triggered_stress_tst_timer - 1U)); - - pmic_log("Total count of Alarm interrupts triggered %d ", - (pmic_intr_triggered_stress_tst_alarm - 1U)); - pmic_log("Total count of Timer interrupts triggered %d ", - (pmic_intr_triggered_stress_tst_timer - 1U)); - - /* Disable the timer interrupt */ - status = Pmic_rtcEnableTimerIntr(pHandle, PMIC_RTC_TIMER_INTR_DISABLE); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - /* Disable the alarm interrupt */ - status = Pmic_rtcEnableAlarmIntr(pHandle, PMIC_RTC_ALARM_INTR_DISABLE); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcSetTimerPeriod(pHandle, timerPeriod); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - /* Disable GPIO interrupt on the specific gpio pin */ - GPIO_disableInt(0); - - pmic_testResultUpdate_pass(8230, - pmic_stress_tests, - PMIC_STRESS_NUM_OF_TESTCASES); -} - -/*! - * \brief PMIC Application Callback Function - */ -void AppPmicCallbackFxn(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_IrqStatus_t errStat = {0U}; - uint8_t irqNum = 0U; - Pmic_CoreHandle_t *pHandle = NULL; - Pmic_RtcTime_t timeCfg_rd = { 0x1F, 0U, 0U, 0U, 0U, 0U}; - Pmic_RtcDate_t dateCfg_rd = { 0x0F, 0U, 0U, 0U, 0U}; - - pHandle = pPmicCoreHandle; - - status = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, false); - - if(PMIC_ST_SUCCESS == status) - { - while(PMIC_ST_ERR_INV_INT != status) - { - status = Pmic_getNextErrorStatus(pPmicCoreHandle, - &errStat, - &irqNum); - if(PMIC_ST_SUCCESS == status) - { - switch(irqNum) - { - case PMIC_TPS6594X_RTC_TIMER_INT: - if(pmic_intr_triggered_stress_tst_timer % 4U == 1U) - { - test_pmic_gpio_setCfgGpioPin_i2c2_sclk(); - } - - if(pmic_intr_triggered_stress_tst_timer % 4U == 2U) - { - test_pmic_powerSetPowerResourceConfig_buckPullDownEn_enable(); - } - - if(pmic_intr_triggered_stress_tst_timer % 4U == 3U) - { - test_pmic_esm_setConfiguration_esmMcuLevelMode(); - } - - if(pmic_intr_triggered_stress_tst_timer % 4U == 0U) - { - test_pmic_wdg_setCfg_forallparams(); - } - - pmic_intr_triggered_stress_tst_timer++; - - /* clear the interrupt */ - status = Pmic_irqClrErrStatus(pPmicCoreHandle, - PMIC_TPS6594X_RTC_TIMER_INT); - - break; - case PMIC_TPS6594X_RTC_ALARM_INT: - - pmic_intr_triggered_stress_tst_alarm++; - - /* clear the interrupt */ - status = Pmic_irqClrErrStatus(pPmicCoreHandle, - PMIC_TPS6594X_RTC_ALARM_INT); - - /* Get the current time value */ - status = Pmic_rtcGetTimeDateInfo(pHandle, &timeCfg_rd, &dateCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - if(23U == timeCfg_rd.hour) - { - timeCfg_rd.hour = 0U; - dateCfg_rd.day = dateCfg_rd.day + 1U; - } - else - { - timeCfg_rd.hour = timeCfg_rd.hour + 1U; - } - - status = Pmic_rtcSetAlarmInfo(pHandle, timeCfg_rd, dateCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - break; - default: - break; - } - } - } - } -} - -/*! - * \brief STRESS Unity Test App wrapper Function for LEO PMIC-A - */ -static int32_t test_pmic_leo_pmicA_stress_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_LEO_TPS6594X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_DUAL_I2C; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.i2c1Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C1_SPEED_VALID_SHIFT; - - pmicConfigData.i2c2Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C2_SPEED_VALID_SHIFT; - - if(J721E_LEO_PMICA_DEVICE == pmic_device_info) - { - pmicConfigData.slaveAddr = J721E_LEO_PMICA_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J721E_LEO_PMICA_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J721E_LEO_PMICA_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - - } - if(J7VCL_LEO_PMICA_DEVICE == pmic_device_info) - { - pmicConfigData.slaveAddr = J7VCL_LEO_PMICA_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J7VCL_LEO_PMICA_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J7VCL_LEO_PMICA_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - - } - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; -} - -/*! - * \brief STRESS Unity Test App wrapper Function for Single I2C LEO PMIC-A - */ -static int32_t test_pmic_leo_singleI2C_pmicA_stress_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_LEO_TPS6594X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_SINGLE_I2C; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.i2c1Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C1_SPEED_VALID_SHIFT; - - if(J721E_LEO_PMICA_DEVICE == pmic_device_info) - { - pmicConfigData.slaveAddr = J721E_LEO_PMICA_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J721E_LEO_PMICA_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J721E_LEO_PMICA_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - - } - if(J7VCL_LEO_PMICA_DEVICE == pmic_device_info) - { - pmicConfigData.slaveAddr = J7VCL_LEO_PMICA_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J7VCL_LEO_PMICA_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J7VCL_LEO_PMICA_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - - } - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; -} - -/*! - * \brief STRESS Unity Test App wrapper Function for HERA PMIC - */ -static int32_t test_pmic_hera_stress_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_HERA_LP8764X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_SINGLE_I2C; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.i2c1Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C1_SPEED_VALID_SHIFT; - - pmicConfigData.slaveAddr = J7VCL_HERA_PMIC_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J7VCL_HERA_PMIC_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J7VCL_HERA_PMIC_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; - -} - -/*! - * \brief STRESS Unity Test App wrapper Function for LEO PMIC-B - */ -static int32_t test_pmic_leo_pmicB_stress_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_LEO_TPS6594X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_SINGLE_I2C; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.i2c1Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C1_SPEED_VALID_SHIFT; - - pmicConfigData.slaveAddr = J721E_LEO_PMICB_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J721E_LEO_PMICB_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J721E_LEO_PMICB_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; -} - -/*! - * \brief STRESS Unity Test App wrapper Function for LEO PMIC-A - */ -static int32_t test_pmic_leo_pmicA_spiStub_stress_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_LEO_TPS6594X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_SPI; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; -} - -static void test_pmic_singleI2C_init_deinit_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - int8_t count = 0; - int8_t loopcount = 100; - - test_pmic_print_unity_testcase_info(8231, - pmic_stress_tests, - PMIC_STRESS_NUM_OF_TESTCASES); - - if(J721E_LEO_PMICA_DEVICE == pmic_device_info) - { - - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - - for (count = 0;count < loopcount;count++) - { - status = test_pmic_leo_singleI2C_pmicA_stress_testApp(); - - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - pmic_testResultUpdate_pass(8231, - pmic_stress_tests, - PMIC_STRESS_NUM_OF_TESTCASES); -} - -static void test_pmic_dualI2C_init_deinit_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - int8_t count = 0; - int8_t loopcount = 100; - - test_pmic_print_unity_testcase_info(8235, - pmic_stress_tests, - PMIC_STRESS_NUM_OF_TESTCASES); - - if(J721E_LEO_PMICA_DEVICE == pmic_device_info) - { - - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - - for (count = 0;count < loopcount;count++) - { - status = test_pmic_leo_pmicA_stress_testApp(); - - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - pmic_testResultUpdate_pass(8235, - pmic_stress_tests, - PMIC_STRESS_NUM_OF_TESTCASES); -} - -static void test_pmic_singleI2C_init_gpio_deinit_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - int8_t count = 0; - int8_t loopcount = 100; - - test_pmic_print_unity_testcase_info(8232, - pmic_stress_tests, - PMIC_STRESS_NUM_OF_TESTCASES); - - if(J721E_LEO_PMICA_DEVICE == pmic_device_info) - { - - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - - for (count = 0;count < loopcount;count++) - { - status = test_pmic_leo_singleI2C_pmicA_stress_testApp(); - - if(PMIC_ST_SUCCESS == status) - { - test_pmic_gpio_setCfgGpioPin_i2c2_sclk(); - } - - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - pmic_testResultUpdate_pass(8232, - pmic_stress_tests, - PMIC_STRESS_NUM_OF_TESTCASES); -} - -static void test_pmic_dualI2C_init_gpio_deinit_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - int8_t count = 0; - int8_t loopcount = 100; - - test_pmic_print_unity_testcase_info(8237, - pmic_stress_tests, - PMIC_STRESS_NUM_OF_TESTCASES); - - if(J721E_LEO_PMICA_DEVICE == pmic_device_info) - { - - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - - for (count = 0;count < loopcount;count++) - { - status = test_pmic_leo_pmicA_stress_testApp(); - - if(PMIC_ST_SUCCESS == status) - { - test_pmic_gpio_setCfgGpioPin_i2c2_sclk(); - } - - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } - } - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - pmic_testResultUpdate_pass(8237, - pmic_stress_tests, - PMIC_STRESS_NUM_OF_TESTCASES); -} - -/*! - * \brief RTC wakeup using time interrupt for LP Standby State - */ -static void test_pmic_rtc_testWakeup_TimerIntr_lpStandbyState(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreHandle_t *pHandle = NULL; - uint8_t timerPeriod = 0U; - int8_t num = 0; - Pmic_RtcDate_t validDateCfg = { 0x0F, 15U, 6U, 2055U, 1U}; - Pmic_RtcTime_t validTimeCfg = { 0x1F, 1U, 30U, 6U, 0U, 1U}; - Pmic_IrqStatus_t errStat = {0U}; - - test_pmic_print_unity_testcase_info(8239, - pmic_stress_tests, - PMIC_STRESS_NUM_OF_TESTCASES); - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - /*Refer the Bug PDK-10450 for more details*/ - pmic_testResultUpdate_ignore(8239, - pmic_stress_tests, - PMIC_STRESS_NUM_OF_TESTCASES); - } - pHandle = pPmicCoreHandle; - -#if defined(SOC_J721E) - pmic_log("\r\n Probe TP134 and TP133 and it should be High"); -#endif -#if defined(SOC_J7200) - pmic_log("\r\n Probe TP46 and TP29 and it should be High"); -#endif - pmic_log("\r\n Enter 1 to continue"); - UART_scanFmt("%d", &num); - - status = Pmic_rtcGetTimerPeriod(pHandle, &timerPeriod); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcSetTimerPeriod(pHandle, PMIC_RTC_MINUTE_INTR_PERIOD); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_rtcSetTimeDateInfo(pHandle, validTimeCfg, validDateCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - /* To clear the interrupts*/ - status = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - { - int i = 0; - for(i=0;i<4; i++) - { - pmic_log("\r\nINT STAT[%d]: 0x%08x", i, errStat.intStatus[i]); - } - } -#if defined(SOC_J721E) - pmic_log("\r\n Probe TP134 and TP133 and it should be low after 2 sec"); - - pmic_log("\r\n Probe TP134 and TP133 and it should be High after 60 sec"); -#endif -#if defined(SOC_J7200) - pmic_log("\r\n Probe TP46 and TP29 and it should be low after 2 sec"); - - pmic_log("\r\n Probe TP46 and TP29 and it should be High after 60 sec"); -#endif - - pmic_log("\r\n After 60sec Rerun the application in UART Boot mode"); - - pmic_log("\r\n Also check for RTC Timer interrupt in Interrupt status register"); - - status = Pmic_rtcEnableTimerIntr(pHandle, PMIC_RTC_TIMER_INTR_ENABLE); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmSetNsleepSignalMask(pHandle, - PMIC_NSLEEP1_SIGNAL, - PMIC_NSLEEPX_MASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_fsmSetNsleepSignalMask(pHandle, - PMIC_NSLEEP2_SIGNAL, - PMIC_NSLEEPX_MASK); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - /* Needs Delay to mask Nsleep1B and Nsleep2B signals for LP Stand-By State */ - Osal_delay(10U); - - status = Pmic_fsmSetMissionState(pPmicCoreHandle, PMIC_FSM_LP_STANBY_STATE); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); -} - - -#if defined(UNITY_INCLUDE_CONFIG_V2_H) && \ - (defined(SOC_J721E) || defined(SOC_J7200)) - -/*! - * \brief Run stress unity test cases - */ -static void test_pmic_run_testcases(void) -{ - pmic_log("\n\n%s(): %d: Begin Unity Test Cases...\n", __func__, __LINE__); - UNITY_BEGIN(); - - pmic_testResult_init(pmic_stress_tests, PMIC_STRESS_NUM_OF_TESTCASES); - - RUN_TEST(test_pmic_singleI2C_init_deinit_testApp); - RUN_TEST(test_pmic_dualI2C_init_deinit_testApp); - RUN_TEST(test_pmic_singleI2C_init_gpio_deinit_testApp); - RUN_TEST(test_pmic_dualI2C_init_gpio_deinit_testApp); - - pmic_updateTestResults(pmic_stress_tests, PMIC_STRESS_NUM_OF_TESTCASES); - - UNITY_END(); -} - -static int32_t setup_pmic_interrupt(uint32_t board) -{ - int32_t status = PMIC_ST_SUCCESS; - - if(J721E_BOARD == board) - { - if(PMIC_STATUS_CRC_INIT_VAL == gCrcTestFlag_J721E) - { - gCrcTestFlag_J721E = PMIC_CFG_TO_ENABLE_CRC; - } - - pmic_device_info = J721E_LEO_PMICA_DEVICE; - status = test_pmic_leo_pmicA_stress_testApp(); - /* Deinit pmic handle */ - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - - if(PMIC_ST_SUCCESS == status) - { - pmic_device_info = J721E_LEO_PMICB_DEVICE; - status = test_pmic_leo_pmicB_stress_testApp(); - /* Deinit pmic handle */ - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } - } - else if(J7VCL_BOARD == board) - { - if(PMIC_STATUS_CRC_INIT_VAL == gCrcTestFlag_J7VCL) - { - gCrcTestFlag_J7VCL = PMIC_CFG_TO_ENABLE_CRC; - } - - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - status = test_pmic_leo_pmicA_stress_testApp(); - /* Deinit pmic handle */ - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - - if(PMIC_ST_SUCCESS == status) - { - pmic_device_info = J7VCL_HERA_PMICB_DEVICE; - status = test_pmic_hera_stress_testApp(); - /* Deinit pmic handle */ - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } - } - else - { - status = PMIC_ST_ERR_INV_DEVICE; - } - return status; -} - -static const char pmicTestMenu[] = -{ - " \r\n =================================================================" - " \r\n Test Menu:" - " \r\n =================================================================" - " \r\n 0: Automatic run for all board specific STRESS options" - " \r\n 1: Manual run for STRESS options" - " \r\n 2: quit" - " \r\n" - " \r\n Enter option: " -}; - -volatile static const char pmicTestAppMenu[] = -{ - " \r\n =================================================================" - " \r\n Menu Options:" - " \r\n =================================================================" - " \r\n 0: Pmic Leo device(PMIC A on J721E EVM Using I2C Interface)" - " \r\n 1: Pmic Leo device(PMIC A on J7VCL EVM Using I2C Interface)" - " \r\n 2: Pmic Leo device with SPI Stub Functions(PMIC-A on J721E EVM)" - " \r\n 3: Pmic Leo device with SPI Stub Functions(PMIC-A on J7VCL EVM)" - " \r\n 4: Pmic Leo device(PMIC A on J721E EVM Manual Stress Testcases)" - " \r\n 5: Pmic Leo device(PMIC A on J7VCL EVM Manual Stress Testcases)" - " \r\n 6: Back to Test Menu" - " \r\n" - " \r\n Enter option: " -}; - -static void print_pmicTestAppManualTestMenu(uint32_t board) -{ - char board_name[10] = {0}; - - if(J721E_BOARD == board) - { - strcpy(board_name, "J721E"); - } - else if(J7VCL_BOARD == board) - { - strcpy(board_name, "J7VCL"); - } - - pmic_log(" \r\n ================================================================="); - pmic_log(" \r\n Manual Testcase Menu:"); - pmic_log(" \r\n ================================================================="); - pmic_log(" \r\n 0: Pmic Leo device(PMIC A on %s EVM for RTC WKUP using Timer Interrupt from LP Standby State)", board_name); - pmic_log(" \r\n 1: Pmic Leo device(PMIC A on %s EVM for RTC Alarm and Timer Asynchronous Interrupts for 24 hours)", board_name); - pmic_log(" \r\n 2: Back to Main Menu"); - pmic_log(" \r\n"); - pmic_log(" \r\n Enter option: "); -} - -/*! - * \brief Run STRESS manual test cases - */ -static void test_pmic_run_testcases_manual(uint32_t board) -{ - int8_t menuOption = -1; - - while(1U) - { - print_pmicTestAppManualTestMenu(board); - if(UART_scanFmt("%d", &menuOption) != 0U) - { - pmic_log("Read from UART Console failed\n"); - return; - } - - switch(menuOption) - { - case 0U: - RUN_TEST(test_pmic_rtc_testWakeup_TimerIntr_lpStandbyState); - break; - case 1U: - RUN_TEST(test_pmic_rtc_stressTestTimerAsyncIntr); - break; - case 2U: - pmic_log(" \r\n Back to Test Menu options\n"); - return; - default: - pmic_log(" \r\n Invalid option... Try Again!!!\n"); - break; - } - } -} - -static void test_pmic_stress_testapp_run_options(int8_t option) -{ - int8_t num = -1; - int8_t idx = 0; -#if defined(SOC_J721E) - int8_t automatic_options[] = {0, 2}; -#elif defined(SOC_J7200) - int8_t automatic_options[] = {1, 3}; -#endif - - while(1U) - { - if(idx >= (sizeof(automatic_options)/sizeof(automatic_options[0]))) - { - pmic_printTestResult(pmic_stress_tests, PMIC_STRESS_NUM_OF_TESTCASES); - } - pmic_log("%s", pmicTestAppMenu); - if(option == PMIC_UT_AUTOMATE_OPTION) - { - if(idx < (sizeof(automatic_options)/sizeof(automatic_options[0]))) - { - num = automatic_options[idx++]; - } - else - { - num = 6; - } - pmic_log("%d\n", num); - } - else - { - if(UART_scanFmt("%d", &num) != 0U) - { - pmic_log("Read from UART Console failed\n"); - return; - } - } - - switch(num) - { - case 0U: -#if defined(SOC_J721E) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J721E_BOARD)) - { - pmic_device_info = J721E_LEO_PMICA_DEVICE; - - /* STRESS Unity Test App wrapper Function for LEO PMIC-A */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_stress_testApp()) - { - if(PMIC_SILICON_REV_ID_PG_2_0 == - pPmicCoreHandle->pmicDevSiliconRev) - { - test_pmic_rtc_setCfg_xtalOScEnType(pPmicCoreHandle); - } - /* Run stress test cases for Leo PMIC-A */ - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 1U: -#if defined(SOC_J7200) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J7VCL_BOARD)) - { - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - - /* STRESS Unity Test App wrapper Function for LEO PMIC-A */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_stress_testApp()) - { - /* Run stress test cases for Leo PMIC-A */ - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 2U: -#if defined(SOC_J721E) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J721E_BOARD)) - { - pmic_device_info = J721E_LEO_PMICA_DEVICE; - - /* STRESS Unity Test App wrapper Function for LEO PMIC-A - * using SPI stub functions */ - if(PMIC_ST_SUCCESS == - test_pmic_leo_pmicA_spiStub_stress_testApp()) - { - if(PMIC_SILICON_REV_ID_PG_2_0 == - pPmicCoreHandle->pmicDevSiliconRev) - { - test_pmic_rtc_setCfg_xtalOScEnType(pPmicCoreHandle); - } - /* Run stress test cases for Leo PMIC-A */ - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 3U: -#if defined(SOC_J7200) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J7VCL_BOARD)) - { - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - /* STRESS Unity Test App wrapper Function for LEO PMIC-A - * using SPI stub functions */ - if(PMIC_ST_SUCCESS == - test_pmic_leo_pmicA_spiStub_stress_testApp()) - { - /* Run stress test cases for Leo PMIC-A */ - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 4U: -#if defined(SOC_J721E) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J721E_BOARD)) - { - pmic_device_info = J721E_LEO_PMICA_DEVICE; - - /* STRESS Manual Test App wrapper Function for LEO PMIC-A */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_stress_testApp()) - { - if(PMIC_SILICON_REV_ID_PG_2_0 == - pPmicCoreHandle->pmicDevSiliconRev) - { - test_pmic_rtc_setCfg_xtalOScEnType(pPmicCoreHandle); - } - /* Run Stress manual test cases */ - test_pmic_run_testcases_manual(J721E_BOARD); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - return; - case 5U: -#if defined(SOC_J7200) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J7VCL_BOARD)) - { - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - - /* STRESS Manual Test App wrapper Function for LEO PMIC-A */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_stress_testApp()) - { - /* Run Stress manual test cases */ - test_pmic_run_testcases_manual(J7VCL_BOARD); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - return; - case 6U: - pmic_log(" \r\n Back to Test Menu options\n"); - return; - default: - pmic_log(" \r\n Invalid option... Try Again!!!\n"); - break; - } - } -} - -/*! - * \brief Function to register STRESS Unity Test App wrapper to Unity framework - */ -static void test_pmic_stress_testapp_runner(void) -{ - /* @description : Test runner for STRESS Test App - * - * @requirements: XXXX - * - * @cores : mcu1_0, mcu1_1 - */ - - int8_t option = -1; - - while(1U) - { - pmic_log("%s", pmicTestMenu); - if(UART_scanFmt("%d", &option) != 0U) - { - pmic_log("Read from UART Console failed\n"); - return; - } - - switch(option) - { - case PMIC_UT_AUTOMATE_OPTION: - test_pmic_stress_testapp_run_options(PMIC_UT_AUTOMATE_OPTION); - break; - case PMIC_UT_MANUAL_OPTION: - test_pmic_stress_testapp_run_options(PMIC_UT_MANUAL_OPTION); - break; - case 2U: - pmic_log(" \r\n Quit from application\n"); - return; - default: - pmic_log(" \r\n Invalid option... Try Again!!!\n"); - break; - } - } -} -#endif - -/*! - * \brief TI RTOS specific STRESS TEST APP main Function - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values see \ref Pmic_ErrorCodes - */ -int main() -{ - Board_initUART(); - - /* - * Initialze and Register ISR handler to J7 Interrupts - */ - App_initGPIO(AppPmicCallbackFxn); - - pmic_print_banner("PMIC STRESS Unity Test Application"); -#if defined(UNITY_INCLUDE_CONFIG_V2_H) && \ - (defined(SOC_J721E) || \ - defined(SOC_J7200)) - test_pmic_stress_testapp_runner(); -#endif -} diff --git a/test/stress_test/pmic_ut_stress.h b/test/stress_test/pmic_ut_stress.h deleted file mode 100644 index 1093547..0000000 --- a/test/stress_test/pmic_ut_stress.h +++ /dev/null @@ -1,68 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ -/** - * \file pmic_ut_stress.h - * - * \brief Header file for PMIC STRESS Unit Tests - * - */ - -#include - -/* ========================================================================= */ -/* Macros & Typedefs */ -/* ========================================================================= */ - -/*! - * \brief PMIC WDG Valid Params configuration for all - */ -#define PMIC_WDG_CFG_SETPARAMS_FORALL \ - (PMIC_CFG_WDG_LONGWINDURATION_VALID_SHIFT | \ - PMIC_CFG_WDG_WIN1DURATION_VALID_SHIFT | \ - PMIC_CFG_WDG_WIN2DURATION_VALID_SHIFT | \ - PMIC_CFG_WDG_FAILTHRESHOLD_VALID_SHIFT | \ - PMIC_CFG_WDG_RSTTHRESHOLD_VALID_SHIFT | \ - PMIC_CFG_WDG_RSTENABLE_VALID_SHIFT | \ - PMIC_CFG_WDG_WDGMODE_VALID_SHIFT | \ - PMIC_CFG_WDG_PWRHOLD_VALID_SHIFT | \ - PMIC_CFG_WDG_RETLONGWIN_VALID_SHIFT | \ - PMIC_CFG_WDG_QA_FDBK_VALID_SHIFT | \ - PMIC_CFG_WDG_QA_LFSR_VALID_SHIFT | \ - PMIC_CFG_WDG_QA_QUES_SEED_VALID_SHIFT) - -/*! - * \brief Numbers of STRESS testcases - */ -#define PMIC_STRESS_NUM_OF_TESTCASES \ - (sizeof(pmic_stress_tests)/sizeof(pmic_stress_tests[0])) -/* None */ diff --git a/test/wdg_test/makefile b/test/wdg_test/makefile deleted file mode 100644 index a30f101..0000000 --- a/test/wdg_test/makefile +++ /dev/null @@ -1,84 +0,0 @@ -# Filename: Makefile -# -# This file is the makefile for building PMIC RTC Test Code. -# -# Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com/ -# -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# -# Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the -# distribution. -# -# Neither the name of Texas Instruments Incorporated nor the names of -# its contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -#File - pmic_lld\test\wdg_test\makefile - -APP_NAME = pmic_wdg_testapp - -include $(PDK_INSTALL_PATH)/ti/build/Rules.make - -BUILD_OS_TYPE = baremetal - -SRCDIR = . ../common -INCDIR = . ../../include/ ../../include/cfg/tps6594x ../../include/cfg/lp8764x -INCDIR += ../common - -# Common source files across all platforms and cores -SRCS_COMMON += pmic_ut_wdg.c pmic_ut_common.c - -SRCDIR += $(PDK_INSTALL_PATH)/ti/build/unit-test/Unity/src $(PDK_INSTALL_PATH)/ti/build/unit-test/config -INCDIR += $(PDK_INSTALL_PATH)/ti/build/unit-test/Unity/src $(PDK_INSTALL_PATH)/ti/build/unit-test/config -SRCS_COMMON += unity.c - -# List all the external components/interfaces, whose interface header files -# need to be included for this component -INCLUDE_EXTERNAL_INTERFACES = pdk i2c -INCLUDE_INTERNAL_INTERFACES = pmic - -# List all the components required by the application -COMP_LIST_COMMON = $(PDK_COMMON_BAREMETAL_COMP) - -# Common source files and CFLAGS across all platforms and cores -PACKAGE_SRCS_COMMON = . ../common - -CFLAGS_LOCAL_COMMON += -DUNITY_INCLUDE_CONFIG_V2_H $(PMIC_CFLAGS) - -# Core/SoC/platform specific source files and CFLAGS -# Example: -# SRCS_ = -# CFLAGS_LOCAL_ = - -# Include common make files -ifeq ($(MAKERULEDIR), ) -#Makerule path not defined, define this and assume relative path from ROOTDIR - MAKERULEDIR := $(ROOTDIR)/ti/build/makerules - export MAKERULEDIR -endif -include $(MAKERULEDIR)/common.mk - -# OBJs and libraries are built by using rule defined in rules_.mk -# and need not be explicitly specified here - -# Nothing beyond this point diff --git a/test/wdg_test/pmic_ut_wdg.c b/test/wdg_test/pmic_ut_wdg.c deleted file mode 100644 index 6d3289e..0000000 --- a/test/wdg_test/pmic_ut_wdg.c +++ /dev/null @@ -1,4239 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ -/** - * \file pmic_ut_wdg.c - * - * \brief PMIC Unit Test for testing PMIC WDG APIs - * - */ - -#include - -/* Pointer holds the pPmicCoreHandle */ -Pmic_CoreHandle_t *pPmicCoreHandle = NULL; - -extern uint16_t pmic_device_info; -extern int32_t gCrcTestFlag_J721E; -extern int32_t gCrcTestFlag_J7VCL; - -extern Pmic_Ut_FaultInject_t gPmic_faultInjectCfg; -extern int8_t gFailCntStatTestFlag; -extern int8_t gFailCount; -extern int8_t gSkipFailStatusCount; - -extern int8_t gErrorStatusTestFlag; -extern int8_t gErrStatusCount; -extern int8_t gSkipErrStatusCount; - -extern int8_t gWdgErrStatusTestFlag; - -/*! - * \brief PMIC WDG Test Cases - */ -static Pmic_Ut_Tests_t pmic_wdg_tests[] = -{ - /*! testID - * testDesc - */ - { - 7327, - "Pmic_wdgSetCfg : configure all watchdog parameters" - }, - { - 7328, - "Pmic_wdgSetCfg : Parameter validation for handle" - }, - { - 7329, - "Pmic_wdgSetCfg : Parameter validation for longWindowi_ms min value" - }, - { - 7330, - "Pmic_wdgSetCfg : Parameter validation for longWindow_ms max value" - }, - { - 7331, - "Pmic_wdgSetCfg : Parameter validation for win1Duration_us min value" - }, - { - 7332, - "Pmic_wdgSetCfg : Parameter validation for win1Duration_us max value" - }, - { - 7333, - "Pmic_wdgSetCfg : Parameter validation for win2Duration_us min value" - }, - { - 7334, - "Pmic_wdgSetCfg : Parameter validation for win2Duration_us max value" - }, - { - 7335, - "Pmic_wdgSetCfg : Parameter validation for failThreshold max value" - }, - { - 7336, - "Pmic_wdgSetCfg : Parameter validation for rstThreshold max Value" - }, - { - 7337, - "Pmic_wdgSetCfg : Parameter validation for qaFdbk max value" - }, - { - 7338, - "Pmic_wdgSetCfg : Parameter validation for qaLfsr max value" - }, - { - 7339, - "Pmic_wdgSetCfg : Parameter validation for qaQuesSeed max Value" - }, - { - 7340, - "Pmic_wdgGetCfg : Get all watchdog parameters" - }, - { - 7341, - "Pmic_wdgGetCfg : Parameter validation for handle" - }, - { - 7342, - "Pmic_wdgGetCfg : Parameter validation for WdgCfg" - }, - { - 7343, - "Pmic_wdgEnable : Parameter validation for handle" - }, - { - 7344, - "Pmic_wdgDisable : Parameter validation for WdgCfg" - }, - { - 7345, - "Pmic_wdgStartQaSequence : Parameter validation for handle" - }, - { - 7346, - "Pmic_wdgStartQaSequence : Test wdg QA sequences" - }, - { - 7347, - "Pmic_wdgStartQaSequence : Test wdg QA sequences with different QA feedback values" - }, - { - 7348, - "Pmic_wdgStartQaSequence : Test wdg QA sequences with different QA LFSR values" - }, - { - 7349, - "Pmic_wdgStartQaSequence : Test wdg QA sequences with different QA Question Seed values" - }, - { - 7350, - "Pmic_wdgGetFailCntStat : Test get wdg failcount status" - }, - { - 7351, - "Pmic_wdgGetFailCntStat : Parameter validation for handle" - }, - { - 7352, - "Pmic_wdgGetFailCntStat : Parameter validation for failCount" - }, - { - 7353, - "Pmic_wdgGetErrorStatus: Get all watchdog error status" - }, - { - 7354, - "Pmic_wdgGetErrorStatus : Parameter validation for handle" - }, - { - 7355, - "Pmic_wdgGetErrorStatus : Parameter validation for errStatus" - }, - { - 0xAB17, - "Pmic_wdgStartTriggerSequence : Test wdg trigger sequence" - }, - { - 7357, - "Pmic_wdgStartTriggerSequence : Parameter validation for handle" - }, - { - 7958, - "Pmic_wdgStartQaSequence : Parameter validation for maxCnt" - }, - { - 10075, - "Pmic_wdgClrErrStatus: Test to clear all watchdog error status" - }, - { - 10076, - "Pmic_wdgClrErrStatus : Parameter validation for handle" - }, - { - 10077, - "Pmic_wdgClrErrStatus : Parameter validation for wdgErrType" - }, - { - 10071, - "Pmic_wdgQaSequenceWriteAnswer : Test wdg QA sequences" - }, - { - 10072, - "Pmic_wdgQaSequenceWriteAnswer : Test wdg QA sequences with different QA feedback values" - }, - { - 10073, - "Pmic_wdgQaSequenceWriteAnswer : Test wdg QA sequences with different QA lfsr values" - }, - { - 10074, - "Pmic_wdgQaSequenceWriteAnswer : Test wdg QA sequences with different QA seed values" - }, - { - 10780, - "Pmic_wdgSetCfg : Test to set longWinDuration as 100ms" - }, - { - 10781, - "Pmic_wdgSetCfg : Parameter validation for longWinDuration min Value as 2999 ms" - }, - { - 10782, - "Pmic_wdgStartTriggerSequence - Code coverage test for wdg Trigger sequence" - }, - { - 10783, - "Pmic_wdgClrErrStatus : Test to clear wdg error based on WDG Error type - TimeOut, SeqErr, AnsEarly, FailInt" - }, - { - 10784, - "Pmic_wdgQaSequenceWriteAnswer : Manual Test case to test WDG RST INT and WDG LONGWIN TIMEOUT INT" - }, - { - 10785, - "Pmic_wdgStartQaSequence : Test wdg QA sequences for Early Answer Error" - }, - { - 8917, - "Pmic_wdgTests : Added for Coverage" - }, -}; - -/*! - * \brief Test to configure a wdg for all params - */ -static void test_pmic_wdg_setCfg_forallparams(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_WdgCfg_t wdgCfg_rd = {PMIC_WDG_CFG_SETPARAMS_FORALL, }; - Pmic_WdgCfg_t wdgCfg = - { - PMIC_WDG_CFG_SETPARAMS_FORALL, - 750000U, - 4950U, - 4950U, - PMIC_WDG_FAIL_THRESHOLD_COUNT_5, - PMIC_WDG_RESET_THRESHOLD_COUNT_6, - PMIC_WDG_QA_MODE, - PMIC_WDG_PWRHOLD_ENABLE, - PMIC_WDG_RESET_DISABLE, - PMIC_WDG_RETLONGWIN_ENABLE, - PMIC_WDG_QA_FEEDBACK_VALUE_2, - PMIC_WDG_QA_LFSR_VALUE_1, - PMIC_WDG_QA_QUES_SEED_VALUE_5, - }; - - test_pmic_print_unity_testcase_info(7327, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - if((PMIC_INTF_SINGLE_I2C == pPmicCoreHandle->commMode) || - (PMIC_INTF_SPI == pPmicCoreHandle->commMode)) - { - pmic_testResultUpdate_ignore(7327, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - } - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - wdgCfg.longWinDuration_ms = 752000U; - } - - /* Enable WDG Timer */ - pmicStatus = Pmic_wdgEnable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_wdgGetCfg(pPmicCoreHandle, &wdgCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(wdgCfg.longWinDuration_ms, wdgCfg_rd.longWinDuration_ms); - TEST_ASSERT_EQUAL(wdgCfg.win1Duration_us, wdgCfg_rd.win1Duration_us); - TEST_ASSERT_EQUAL(wdgCfg.win2Duration_us, wdgCfg_rd.win2Duration_us); - TEST_ASSERT_EQUAL(wdgCfg.failThreshold, wdgCfg_rd.failThreshold); - TEST_ASSERT_EQUAL(wdgCfg.rstThreshold, wdgCfg_rd.rstThreshold); - TEST_ASSERT_EQUAL(wdgCfg.wdgMode, wdgCfg_rd.wdgMode); - TEST_ASSERT_EQUAL(wdgCfg.pwrHold, wdgCfg_rd.pwrHold); - TEST_ASSERT_EQUAL(wdgCfg.rstEnable, wdgCfg_rd.rstEnable); - TEST_ASSERT_EQUAL(wdgCfg.retLongWin, wdgCfg_rd.retLongWin); - TEST_ASSERT_EQUAL(wdgCfg.qaFdbk, wdgCfg_rd.qaFdbk); - TEST_ASSERT_EQUAL(wdgCfg.qaLfsr, wdgCfg_rd.qaLfsr); - TEST_ASSERT_EQUAL(wdgCfg.qaQuesSeed, wdgCfg_rd.qaQuesSeed); - - /* Disable WDG Timer */ - pmicStatus = Pmic_wdgDisable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Delay is needed to sattle down watchdog to longwindow */ - Osal_delay(20U); - - if((PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) && - (PMIC_INTF_DUAL_I2C == pPmicCoreHandle->commMode)) - { - wdgCfg.validParams = PMIC_CFG_WDG_LONGWINDURATION_VALID_SHIFT; - wdgCfg_rd.validParams = PMIC_CFG_WDG_LONGWINDURATION_VALID_SHIFT; - - wdgCfg.longWinDuration_ms = 80U; - - /* Enable WDG Timer */ - pmicStatus = Pmic_wdgEnable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_wdgGetCfg(pPmicCoreHandle, &wdgCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(wdgCfg.longWinDuration_ms, wdgCfg_rd.longWinDuration_ms); - - wdgCfg.longWinDuration_ms = 250U; - - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_wdgGetCfg(pPmicCoreHandle, &wdgCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(wdgCfg.longWinDuration_ms, wdgCfg_rd.longWinDuration_ms); - - /* Disable WDG Timer */ - pmicStatus = Pmic_wdgDisable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Delay is needed to sattle down watchdog to longwindow */ - Osal_delay(20U); - } - - /* Enable WDG Timer */ - pmicStatus = Pmic_wdgEnable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Set Reset Enable */ - wdgCfg.validParams = PMIC_CFG_WDG_RSTENABLE_VALID_SHIFT; - wdgCfg_rd.validParams = PMIC_CFG_WDG_RSTENABLE_VALID_SHIFT; - wdgCfg.rstEnable = PMIC_WDG_RESET_ENABLE; - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_wdgGetCfg(pPmicCoreHandle, &wdgCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(wdgCfg.rstEnable, wdgCfg_rd.rstEnable); - - /* Disable WDG Timer */ - pmicStatus = Pmic_wdgDisable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Enable WDG Timer */ - pmicStatus = Pmic_wdgEnable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Set Reset Disable */ - wdgCfg.validParams = PMIC_CFG_WDG_RSTENABLE_VALID_SHIFT; - wdgCfg_rd.validParams = PMIC_CFG_WDG_RSTENABLE_VALID_SHIFT; - wdgCfg.rstEnable = PMIC_WDG_RESET_DISABLE; - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_wdgGetCfg(pPmicCoreHandle, &wdgCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(wdgCfg.rstEnable, wdgCfg_rd.rstEnable); - - /* Set WDG Mode */ - wdgCfg.validParams = PMIC_CFG_WDG_WDGMODE_VALID_SHIFT; - wdgCfg_rd.validParams = PMIC_CFG_WDG_WDGMODE_VALID_SHIFT; - wdgCfg.wdgMode = PMIC_WDG_TRIGGER_MODE; - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_wdgGetCfg(pPmicCoreHandle, &wdgCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(wdgCfg.wdgMode, wdgCfg_rd.wdgMode); - - /* Set Power Hold Enable */ - wdgCfg.validParams = PMIC_CFG_WDG_PWRHOLD_VALID_SHIFT; - wdgCfg_rd.validParams = PMIC_CFG_WDG_PWRHOLD_VALID_SHIFT; - wdgCfg.pwrHold = PMIC_WDG_PWRHOLD_ENABLE; - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_wdgGetCfg(pPmicCoreHandle, &wdgCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(wdgCfg.pwrHold, wdgCfg_rd.pwrHold); - - /* Set Return to Long Window */ - wdgCfg.validParams = PMIC_CFG_WDG_RETLONGWIN_VALID_SHIFT; - wdgCfg_rd.validParams = PMIC_CFG_WDG_RETLONGWIN_VALID_SHIFT; - wdgCfg.retLongWin = PMIC_WDG_RETLONGWIN_DISABLE; - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_wdgGetCfg(pPmicCoreHandle, &wdgCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - TEST_ASSERT_EQUAL(wdgCfg.retLongWin, wdgCfg_rd.retLongWin); - - /* Disable WDG Timer */ - pmicStatus = Pmic_wdgDisable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Delay is needed to sattle down watchdog to longwindow */ - Osal_delay(20U); - - pmic_testResultUpdate_pass(7327, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for handle - */ -static void test_pmic_wdg_setCfg_prmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_WdgCfg_t wdgCfg = - { - PMIC_WDG_CFG_SETPARAMS_FORALL, - 750000U, - 4950U, - 4950U, - PMIC_WDG_FAIL_THRESHOLD_COUNT_5, - PMIC_WDG_RESET_THRESHOLD_COUNT_6, - PMIC_WDG_QA_MODE, - PMIC_WDG_PWRHOLD_DISABLE, - PMIC_WDG_RESET_DISABLE, - PMIC_WDG_RETLONGWIN_ENABLE, - PMIC_WDG_QA_FEEDBACK_VALUE_2, - PMIC_WDG_QA_LFSR_VALUE_1, - PMIC_WDG_QA_QUES_SEED_VALUE_5, - }; - - test_pmic_print_unity_testcase_info(7328, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - wdgCfg.longWinDuration_ms = 752000U; - } - - pmicStatus = Pmic_wdgSetCfg(NULL, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(7328, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for longWinDuration_ms min Value as 98ms for - * Leo PMIC PG1.0 and 78ms for Leo PMIC PG2.0 - */ -static void test_pmic_wdg_setCfg_prmValTest_longwinMin(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_WdgCfg_t wdgCfg = - { - PMIC_CFG_WDG_LONGWINDURATION_VALID_SHIFT, - 98U, - 4950U, - 4950U, - PMIC_WDG_FAIL_THRESHOLD_COUNT_5, - PMIC_WDG_RESET_THRESHOLD_COUNT_6, - PMIC_WDG_QA_MODE, - PMIC_WDG_PWRHOLD_DISABLE, - PMIC_WDG_RESET_DISABLE, - PMIC_WDG_RETLONGWIN_ENABLE, - PMIC_WDG_QA_FEEDBACK_VALUE_2, - PMIC_WDG_QA_LFSR_VALUE_1, - PMIC_WDG_QA_QUES_SEED_VALUE_5, - }; - - test_pmic_print_unity_testcase_info(7329, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - wdgCfg.longWinDuration_ms = 78U; - } - - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_WDG_WINDOW, pmicStatus); - - pmic_testResultUpdate_pass(7329, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for longWinDuration_ms max Value as 768000 ms - * for Leo PMIC PG1.0 and 775000 ms for Leo PMIC PG2.0 - */ -static void test_pmic_wdg_setCfg_prmValTest_longwinMax(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_WdgCfg_t wdgCfg = - { - PMIC_CFG_WDG_LONGWINDURATION_VALID_SHIFT, - 768000U, - 4950U, - 4950U, - PMIC_WDG_FAIL_THRESHOLD_COUNT_5, - PMIC_WDG_RESET_THRESHOLD_COUNT_6, - PMIC_WDG_QA_MODE, - PMIC_WDG_PWRHOLD_DISABLE, - PMIC_WDG_RESET_DISABLE, - PMIC_WDG_RETLONGWIN_ENABLE, - PMIC_WDG_QA_FEEDBACK_VALUE_2, - PMIC_WDG_QA_LFSR_VALUE_1, - PMIC_WDG_QA_QUES_SEED_VALUE_5, - }; - - test_pmic_print_unity_testcase_info(7330, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - wdgCfg.longWinDuration_ms = 775000U; - } - - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_WDG_WINDOW, pmicStatus); - - pmic_testResultUpdate_pass(7330, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for win1Duration_us min Value - */ -static void test_pmic_wdg_setCfg_prmValTest_win1Min(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_WdgCfg_t wdgCfg = - { - PMIC_CFG_WDG_WIN1DURATION_VALID_SHIFT, - 750000U, - 500U, - 4950U, - PMIC_WDG_FAIL_THRESHOLD_COUNT_5, - PMIC_WDG_RESET_THRESHOLD_COUNT_6, - PMIC_WDG_QA_MODE, - PMIC_WDG_PWRHOLD_DISABLE, - PMIC_WDG_RESET_DISABLE, - PMIC_WDG_RETLONGWIN_ENABLE, - PMIC_WDG_QA_FEEDBACK_VALUE_2, - PMIC_WDG_QA_LFSR_VALUE_1, - PMIC_WDG_QA_QUES_SEED_VALUE_5, - }; - - test_pmic_print_unity_testcase_info(7331, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - wdgCfg.longWinDuration_ms = 752000U; - } - - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_WDG_WINDOW, pmicStatus); - - pmic_testResultUpdate_pass(7331, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for win1Duration_us max Value - */ -static void test_pmic_wdg_setCfg_prmValTest_win1Max(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_WdgCfg_t wdgCfg = - { - PMIC_CFG_WDG_WIN1DURATION_VALID_SHIFT, - 750000U, - 70500U, - 4950U, - PMIC_WDG_FAIL_THRESHOLD_COUNT_5, - PMIC_WDG_RESET_THRESHOLD_COUNT_6, - PMIC_WDG_QA_MODE, - PMIC_WDG_PWRHOLD_DISABLE, - PMIC_WDG_RESET_DISABLE, - PMIC_WDG_RETLONGWIN_ENABLE, - PMIC_WDG_QA_FEEDBACK_VALUE_2, - PMIC_WDG_QA_LFSR_VALUE_1, - PMIC_WDG_QA_QUES_SEED_VALUE_5, - }; - - test_pmic_print_unity_testcase_info(7332, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - wdgCfg.longWinDuration_ms = 752000U; - } - - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_WDG_WINDOW, pmicStatus); - - pmic_testResultUpdate_pass(7332, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for win2Duration_us min Value - */ -static void test_pmic_wdg_setCfg_prmValTest_win2Min(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_WdgCfg_t wdgCfg = - { - PMIC_CFG_WDG_WIN2DURATION_VALID_SHIFT, - 750000U, - 4950U, - 500U, - PMIC_WDG_FAIL_THRESHOLD_COUNT_5, - PMIC_WDG_RESET_THRESHOLD_COUNT_6, - PMIC_WDG_QA_MODE, - PMIC_WDG_PWRHOLD_DISABLE, - PMIC_WDG_RESET_DISABLE, - PMIC_WDG_RETLONGWIN_ENABLE, - PMIC_WDG_QA_FEEDBACK_VALUE_2, - PMIC_WDG_QA_LFSR_VALUE_1, - PMIC_WDG_QA_QUES_SEED_VALUE_5, - }; - - test_pmic_print_unity_testcase_info(7333, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - wdgCfg.longWinDuration_ms = 752000U; - } - - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_WDG_WINDOW, pmicStatus); - - pmic_testResultUpdate_pass(7333, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for win2Duration_us max Value - */ -static void test_pmic_wdg_setCfg_prmValTest_win2Max(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_WdgCfg_t wdgCfg = - { - PMIC_CFG_WDG_WIN2DURATION_VALID_SHIFT, - 750000U, - 4950U, - 70500U, - PMIC_WDG_FAIL_THRESHOLD_COUNT_5, - PMIC_WDG_RESET_THRESHOLD_COUNT_6, - PMIC_WDG_QA_MODE, - PMIC_WDG_PWRHOLD_DISABLE, - PMIC_WDG_RESET_DISABLE, - PMIC_WDG_RETLONGWIN_ENABLE, - PMIC_WDG_QA_FEEDBACK_VALUE_2, - PMIC_WDG_QA_LFSR_VALUE_1, - PMIC_WDG_QA_QUES_SEED_VALUE_5, - }; - - test_pmic_print_unity_testcase_info(7334, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - wdgCfg.longWinDuration_ms = 752000U; - } - - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_WDG_WINDOW, pmicStatus); - - pmic_testResultUpdate_pass(7334, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for failThreshold max Value - */ -static void test_pmic_wdg_setCfg_prmValTest_failThresholdMax(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_WdgCfg_t wdgCfg = - { - PMIC_CFG_WDG_FAILTHRESHOLD_VALID_SHIFT, - 750000U, - 4950U, - 500U, - 8U, - PMIC_WDG_RESET_THRESHOLD_COUNT_6, - PMIC_WDG_QA_MODE, - PMIC_WDG_PWRHOLD_DISABLE, - PMIC_WDG_RESET_DISABLE, - PMIC_WDG_RETLONGWIN_ENABLE, - PMIC_WDG_QA_FEEDBACK_VALUE_2, - PMIC_WDG_QA_LFSR_VALUE_1, - PMIC_WDG_QA_QUES_SEED_VALUE_5, - }; - - test_pmic_print_unity_testcase_info(7335, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - wdgCfg.longWinDuration_ms = 752000U; - } - - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(7335, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for rstThreshold max Value - */ -static void test_pmic_wdg_setCfg_prmValTest_rstThresholdMax(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_WdgCfg_t wdgCfg = - { - PMIC_CFG_WDG_RSTTHRESHOLD_VALID_SHIFT, - 750000U, - 4950U, - 70500U, - PMIC_WDG_FAIL_THRESHOLD_COUNT_5, - 8U, - PMIC_WDG_QA_MODE, - PMIC_WDG_PWRHOLD_DISABLE, - PMIC_WDG_RESET_DISABLE, - PMIC_WDG_RETLONGWIN_ENABLE, - PMIC_WDG_QA_FEEDBACK_VALUE_2, - PMIC_WDG_QA_LFSR_VALUE_1, - PMIC_WDG_QA_QUES_SEED_VALUE_5, - }; - - test_pmic_print_unity_testcase_info(7336, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - wdgCfg.longWinDuration_ms = 752000U; - } - - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(7336, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for qaFdbk max Value - */ -static void test_pmic_wdg_setCfg_prmValTest_qaFdbkMax(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_WdgCfg_t wdgCfg = - { - PMIC_CFG_WDG_QA_FDBK_VALID_SHIFT, - 750000U, - 4950U, - 70500U, - PMIC_WDG_FAIL_THRESHOLD_COUNT_5, - PMIC_WDG_RESET_THRESHOLD_COUNT_6, - PMIC_WDG_QA_MODE, - PMIC_WDG_PWRHOLD_DISABLE, - PMIC_WDG_RESET_DISABLE, - PMIC_WDG_RETLONGWIN_ENABLE, - 4U, - PMIC_WDG_QA_LFSR_VALUE_1, - PMIC_WDG_QA_QUES_SEED_VALUE_5, - }; - - test_pmic_print_unity_testcase_info(7337, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - wdgCfg.longWinDuration_ms = 752000U; - } - - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(7337, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for qaLfsr max Value - */ -static void test_pmic_wdg_setCfg_prmValTest_qaLfsrMax(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_WdgCfg_t wdgCfg = - { - PMIC_CFG_WDG_QA_LFSR_VALID_SHIFT, - 750000U, - 4950U, - 500U, - 8U, - PMIC_WDG_RESET_THRESHOLD_COUNT_6, - PMIC_WDG_QA_MODE, - PMIC_WDG_PWRHOLD_DISABLE, - PMIC_WDG_RESET_DISABLE, - PMIC_WDG_RETLONGWIN_ENABLE, - PMIC_WDG_QA_FEEDBACK_VALUE_2, - 4U, - PMIC_WDG_QA_QUES_SEED_VALUE_5, - }; - - test_pmic_print_unity_testcase_info(7338, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - wdgCfg.longWinDuration_ms = 752000U; - } - - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(7338, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for qaQuesSeed max Value - */ -static void test_pmic_wdg_setCfg_prmValTest_qaQuesSeedMax(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_WdgCfg_t wdgCfg = - { - PMIC_CFG_WDG_QA_QUES_SEED_VALID_SHIFT, - 750000U, - 4950U, - 70500U, - PMIC_WDG_FAIL_THRESHOLD_COUNT_5, - 8U, - PMIC_WDG_QA_MODE, - PMIC_WDG_PWRHOLD_DISABLE, - PMIC_WDG_RESET_DISABLE, - PMIC_WDG_RETLONGWIN_ENABLE, - PMIC_WDG_QA_FEEDBACK_VALUE_2, - PMIC_WDG_QA_LFSR_VALUE_1, - 16, - }; - - test_pmic_print_unity_testcase_info(7339, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - wdgCfg.longWinDuration_ms = 752000U; - } - - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(7339, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/*! - * \brief Test to get configuration of a wdg for all params - */ -static void test_pmic_wdg_getCfg_forallparams(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_WdgCfg_t wdgCfg_rd = {PMIC_WDG_CFG_SETPARAMS_FORALL, }; - Pmic_WdgCfg_t wdgCfg = - { - PMIC_WDG_CFG_SETPARAMS_FORALL, - 750000U, - 4950U, - 4950U, - PMIC_WDG_FAIL_THRESHOLD_COUNT_5, - PMIC_WDG_RESET_THRESHOLD_COUNT_6, - PMIC_WDG_QA_MODE, - PMIC_WDG_PWRHOLD_DISABLE, - PMIC_WDG_RESET_DISABLE, - PMIC_WDG_RETLONGWIN_ENABLE, - PMIC_WDG_QA_FEEDBACK_VALUE_2, - PMIC_WDG_QA_LFSR_VALUE_1, - PMIC_WDG_QA_QUES_SEED_VALUE_5, - }; - - test_pmic_print_unity_testcase_info(7340, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - if((PMIC_INTF_SINGLE_I2C == pPmicCoreHandle->commMode) || - (PMIC_INTF_SPI == pPmicCoreHandle->commMode)) - { - pmic_testResultUpdate_ignore(7340, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - } - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - wdgCfg.longWinDuration_ms = 752000U; - } - - /* Enable WDG Timer */ - pmicStatus = Pmic_wdgEnable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_wdgGetCfg(pPmicCoreHandle, &wdgCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(wdgCfg.longWinDuration_ms, wdgCfg_rd.longWinDuration_ms); - TEST_ASSERT_EQUAL(wdgCfg.win1Duration_us, wdgCfg_rd.win1Duration_us); - TEST_ASSERT_EQUAL(wdgCfg.win2Duration_us, wdgCfg_rd.win2Duration_us); - TEST_ASSERT_EQUAL(wdgCfg.failThreshold, wdgCfg_rd.failThreshold); - TEST_ASSERT_EQUAL(wdgCfg.rstThreshold, wdgCfg_rd.rstThreshold); - TEST_ASSERT_EQUAL(wdgCfg.wdgMode, wdgCfg_rd.wdgMode); - TEST_ASSERT_EQUAL(wdgCfg.pwrHold, wdgCfg_rd.pwrHold); - TEST_ASSERT_EQUAL(wdgCfg.rstEnable, wdgCfg_rd.rstEnable); - TEST_ASSERT_EQUAL(wdgCfg.retLongWin, wdgCfg_rd.retLongWin); - TEST_ASSERT_EQUAL(wdgCfg.qaFdbk, wdgCfg_rd.qaFdbk); - TEST_ASSERT_EQUAL(wdgCfg.qaLfsr, wdgCfg_rd.qaLfsr); - TEST_ASSERT_EQUAL(wdgCfg.qaQuesSeed, wdgCfg_rd.qaQuesSeed); - - /* Disable WDG Timer */ - pmicStatus = Pmic_wdgDisable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(7340, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for handle - */ -static void test_pmic_wdg_getCfg_prmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_WdgCfg_t wdgCfg = {PMIC_WDG_CFG_SETPARAMS_FORALL, }; - - test_pmic_print_unity_testcase_info(7341, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - pmicStatus = Pmic_wdgGetCfg(NULL, &wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(7341, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for wdgCfg - */ -static void test_pmic_wdg_getCfg_prmValTest_wdgcfgParam(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(7342, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - pmicStatus = Pmic_wdgGetCfg(pPmicCoreHandle, NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(7342, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for handle - */ -static void test_pmic_wdg_enable_prmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(7343, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - pmicStatus = Pmic_wdgEnable(NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(7343, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/*! - * \brief Parameter validation for handle - */ -static void test_pmic_wdg_disable_prmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(7344, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - pmicStatus = Pmic_wdgDisable(NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(7344, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/*! - * \brief Test wdg QA sequence Parameter validation for handle - */ -static void test_pmic_wdg_startQaSequence_prmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint32_t maxCnt = 0xFFFFFFFFU; - Pmic_WdgCfg_t wdgCfg = - { - PMIC_WDG_CFG_SETPARAMS_FORALL, - 24000U, - 6050U, - 4950U, - PMIC_WDG_FAIL_THRESHOLD_COUNT_7, - PMIC_WDG_RESET_THRESHOLD_COUNT_7, - PMIC_WDG_QA_MODE, - PMIC_WDG_PWRHOLD_DISABLE, - PMIC_WDG_RESET_DISABLE, - PMIC_WDG_RETLONGWIN_ENABLE, - PMIC_WDG_QA_FEEDBACK_VALUE_0, - PMIC_WDG_QA_LFSR_VALUE_0, - PMIC_WDG_QA_QUES_SEED_VALUE_10, - }; - - test_pmic_print_unity_testcase_info(7345, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - /* Enable WDG Timer */ - pmicStatus = Pmic_wdgEnable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Set QA parameters */ - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Start Watchdog QA sequence */ - pmicStatus = Pmic_wdgStartQaSequence(NULL, 5U, maxCnt); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - /* Disable WDG Timer */ - pmicStatus = Pmic_wdgDisable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(7345, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/*! - * \brief Test wdg QA sequence - */ -static void test_pmic_wdg_startQaSequence(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint32_t maxCnt = PMIC_WDG_WAIT_CNT_MIN_VAL; - Pmic_WdgCfg_t wdgCfg = - { - PMIC_WDG_CFG_SETPARAMS_FORALL, - 750000U, - 6600U, - 4950U, - PMIC_WDG_FAIL_THRESHOLD_COUNT_7, - PMIC_WDG_RESET_THRESHOLD_COUNT_7, - PMIC_WDG_QA_MODE, - PMIC_WDG_PWRHOLD_DISABLE, - PMIC_WDG_RESET_DISABLE, - PMIC_WDG_RETLONGWIN_DISABLE, - PMIC_WDG_QA_FEEDBACK_VALUE_0, - PMIC_WDG_QA_LFSR_VALUE_0, - PMIC_WDG_QA_QUES_SEED_VALUE_10, - }; - - if((gCrcTestFlag_J721E == PMIC_STATUS_CRC_ENABLED)|| - (gCrcTestFlag_J7VCL == PMIC_STATUS_CRC_ENABLED)) - { - wdgCfg.win1Duration_us = 8250U; - } - - test_pmic_print_unity_testcase_info(7346, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - wdgCfg.longWinDuration_ms = 752000U; - } - - /* Enable WDG Timer */ - pmicStatus = Pmic_wdgEnable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Set QA parameters */ - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Start Watchdog QA sequence */ - pmicStatus = Pmic_wdgStartQaSequence(pPmicCoreHandle, 5U, maxCnt); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Disable WDG Timer */ - pmicStatus = Pmic_wdgDisable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(7346, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_wdgStartQaSequence - Test wdg QA sequences for Early Answer Error - */ -static void test_pmic_wdg_startQaSequence_answerEarlyErr(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint32_t maxCnt = PMIC_WDG_WAIT_CNT_MIN_VAL; - Pmic_WdgCfg_t wdgCfg = - { - PMIC_WDG_CFG_SETPARAMS_FORALL, - 750000U, - 8800U, - 4950U, - PMIC_WDG_FAIL_THRESHOLD_COUNT_7, - PMIC_WDG_RESET_THRESHOLD_COUNT_7, - PMIC_WDG_QA_MODE, - PMIC_WDG_PWRHOLD_DISABLE, - PMIC_WDG_RESET_DISABLE, - PMIC_WDG_RETLONGWIN_DISABLE, - PMIC_WDG_QA_FEEDBACK_VALUE_0, - PMIC_WDG_QA_LFSR_VALUE_0, - PMIC_WDG_QA_QUES_SEED_VALUE_10, - }; - - if((gCrcTestFlag_J721E == PMIC_STATUS_CRC_ENABLED)|| - (gCrcTestFlag_J7VCL == PMIC_STATUS_CRC_ENABLED)) - { - wdgCfg.win1Duration_us = 10350U; - } - - test_pmic_print_unity_testcase_info(10785, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - wdgCfg.longWinDuration_ms = 752000U; - } - - /* Enable WDG Timer */ - pmicStatus = Pmic_wdgEnable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Set QA parameters */ - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Start Watchdog QA sequence */ - pmicStatus = Pmic_wdgStartQaSequence(pPmicCoreHandle, 1U, maxCnt); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_WDG_EARLY_ANSWER, pmicStatus); - - /* Disable WDG Timer */ - pmicStatus = Pmic_wdgDisable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(10785, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/*! - * \brief Test wdg QA sequences with different QA feedback values - */ -static void test_pmic_wdg_startQaSequence_testFdbkValues(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t fdbk = 0U; - Pmic_WdgCfg_t wdgCfg_rd = {0U}; - uint32_t maxCnt = 0xFFFFFFFFU; - Pmic_WdgCfg_t wdgCfg = - { - PMIC_WDG_CFG_SETPARAMS_FORALL, - 750000U, - 6600U, - 4950U, - PMIC_WDG_FAIL_THRESHOLD_COUNT_7, - PMIC_WDG_RESET_THRESHOLD_COUNT_7, - PMIC_WDG_QA_MODE, - PMIC_WDG_PWRHOLD_DISABLE, - PMIC_WDG_RESET_DISABLE, - PMIC_WDG_RETLONGWIN_ENABLE, - PMIC_WDG_QA_FEEDBACK_VALUE_0, - PMIC_WDG_QA_LFSR_VALUE_0, - PMIC_WDG_QA_QUES_SEED_VALUE_10, - }; - - if((gCrcTestFlag_J721E == PMIC_STATUS_CRC_ENABLED)|| - (gCrcTestFlag_J7VCL == PMIC_STATUS_CRC_ENABLED)) - { - wdgCfg.win1Duration_us = 8350U; - } - - test_pmic_print_unity_testcase_info(7347, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - wdgCfg.longWinDuration_ms = 752000U; - } - - for(fdbk = PMIC_WDG_QA_FEEDBACK_VALUE_0; - fdbk <= PMIC_WDG_QA_FEEDBACK_VALUE_3; - fdbk++) - { - /* Enable WDG Timer */ - pmicStatus = Pmic_wdgEnable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - wdgCfg.qaFdbk = fdbk; - /* Set QA parameters */ - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Get wdg config to check fdbk value */ - wdgCfg_rd.validParams = PMIC_CFG_WDG_QA_FDBK_VALID_SHIFT; - pmicStatus = Pmic_wdgGetCfg(pPmicCoreHandle, &wdgCfg_rd); - TEST_ASSERT_EQUAL(wdgCfg.qaFdbk, wdgCfg_rd.qaFdbk); - - /* Start Watchdog QA sequence */ - pmicStatus = Pmic_wdgStartQaSequence(pPmicCoreHandle, 5, maxCnt); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Disable WDG Timer */ - pmicStatus = Pmic_wdgDisable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Delay is needed to sattle down watchdog to longwindow */ - Osal_delay(20U); - } - - pmic_testResultUpdate_pass(7347, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/*! - * \brief Test wdg QA sequences with different QA LFSR values - */ -static void test_pmic_wdg_startQaSequence_testLfsrValues(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t lfsr = 0U; - Pmic_WdgCfg_t wdgCfg_rd = {0U}; - uint32_t maxCnt = 0xFFFFFFFU; - Pmic_WdgCfg_t wdgCfg = - { - PMIC_WDG_CFG_SETPARAMS_FORALL, - 750000U, - 6600U, - 4950U, - PMIC_WDG_FAIL_THRESHOLD_COUNT_7, - PMIC_WDG_RESET_THRESHOLD_COUNT_7, - PMIC_WDG_QA_MODE, - PMIC_WDG_PWRHOLD_DISABLE, - PMIC_WDG_RESET_DISABLE, - PMIC_WDG_RETLONGWIN_ENABLE, - PMIC_WDG_QA_FEEDBACK_VALUE_0, - PMIC_WDG_QA_LFSR_VALUE_0, - PMIC_WDG_QA_QUES_SEED_VALUE_10, - }; - - if((gCrcTestFlag_J721E == PMIC_STATUS_CRC_ENABLED)|| - (gCrcTestFlag_J7VCL == PMIC_STATUS_CRC_ENABLED)) - { - wdgCfg.win1Duration_us = 8350U; - } - - test_pmic_print_unity_testcase_info(7348, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - wdgCfg.longWinDuration_ms = 752000U; - } - - for(lfsr = PMIC_WDG_QA_LFSR_VALUE_0; - lfsr <= PMIC_WDG_QA_LFSR_VALUE_3; - lfsr++) - { - /* Enable WDG Timer */ - pmicStatus = Pmic_wdgEnable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - wdgCfg.qaLfsr = lfsr; - /* Set QA parameters */ - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Get wdg config to check lfsr value */ - wdgCfg_rd.validParams = PMIC_CFG_WDG_QA_LFSR_VALID_SHIFT; - pmicStatus = Pmic_wdgGetCfg(pPmicCoreHandle, &wdgCfg_rd); - TEST_ASSERT_EQUAL(wdgCfg.qaLfsr, wdgCfg_rd.qaLfsr); - - /* Start Watchdog QA sequence */ - pmicStatus = Pmic_wdgStartQaSequence(pPmicCoreHandle, 5, maxCnt); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Disable WDG Timer */ - pmicStatus = Pmic_wdgDisable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Delay is needed to sattle down watchdog to longwindow */ - Osal_delay(20U); - } - - pmic_testResultUpdate_pass(7348, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/*! - * \brief Test wdg QA sequences with different QA Question Seed values - */ -static void test_pmic_wdg_startQaSequence_testQuesSeedValues(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t quesSeed = 0U; - Pmic_WdgCfg_t wdgCfg_rd = {0U}; - uint32_t maxCnt = 0xFFFFFFFFU; - Pmic_WdgCfg_t wdgCfg = - { - PMIC_WDG_CFG_SETPARAMS_FORALL, - 750000U, - 6600U, - 4950U, - PMIC_WDG_FAIL_THRESHOLD_COUNT_7, - PMIC_WDG_RESET_THRESHOLD_COUNT_7, - PMIC_WDG_QA_MODE, - PMIC_WDG_PWRHOLD_DISABLE, - PMIC_WDG_RESET_DISABLE, - PMIC_WDG_RETLONGWIN_DISABLE, - PMIC_WDG_QA_FEEDBACK_VALUE_0, - PMIC_WDG_QA_LFSR_VALUE_0, - PMIC_WDG_QA_QUES_SEED_VALUE_10, - }; - - if((gCrcTestFlag_J721E == PMIC_STATUS_CRC_ENABLED)|| - (gCrcTestFlag_J7VCL == PMIC_STATUS_CRC_ENABLED)) - { - wdgCfg.win1Duration_us = 8350U; - } - - test_pmic_print_unity_testcase_info(7349, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - wdgCfg.longWinDuration_ms = 752000U; - } - - for(quesSeed = PMIC_WDG_QA_QUES_SEED_VALUE_0; - quesSeed <= PMIC_WDG_QA_QUES_SEED_VALUE_15; - quesSeed++) - { - /* Enable WDG Timer */ - pmicStatus = Pmic_wdgEnable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - wdgCfg.qaQuesSeed = quesSeed; - /* Set QA parameters */ - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Get wdg config to check Question Seed value */ - wdgCfg_rd.validParams = PMIC_CFG_WDG_QA_QUES_SEED_VALID_SHIFT; - pmicStatus = Pmic_wdgGetCfg(pPmicCoreHandle, &wdgCfg_rd); - TEST_ASSERT_EQUAL(wdgCfg.qaQuesSeed, wdgCfg_rd.qaQuesSeed); - - /* Start Watchdog QA sequence */ - pmicStatus = Pmic_wdgStartQaSequence(pPmicCoreHandle, 5, maxCnt); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Disable WDG Timer */ - pmicStatus = Pmic_wdgDisable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Delay is needed to sattle down watchdog to longwindow */ - Osal_delay(20U); - } - - pmic_testResultUpdate_pass(7349, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/*! - * \brief Test get wdg failcount status - */ -static void test_pmic_wdg_GetFailCount(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_WdgFailCntStat_t failCntStat = {0U}; - - test_pmic_print_unity_testcase_info(7350, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - failCntStat.validParams = PMIC_CFG_WD_ALL_FAILCNTSTAT_VALID_PARAMS; - /* Get watchdog failcount status */ - pmicStatus = Pmic_wdgGetFailCntStat(pPmicCoreHandle, &failCntStat); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - failCntStat.validParams = PMIC_CFG_WD_GOOD_EVENT_STAT_VALID_SHIFT; - /* Get watchdog failcount status */ - pmicStatus = Pmic_wdgGetFailCntStat(pPmicCoreHandle, &failCntStat); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(7350, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/*! - * \brief Test get wdg failcount Parameter validation for handle - */ -static void test_pmic_wdg_GetFailCount_prmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_WdgFailCntStat_t failCntStat = {0U}; - - test_pmic_print_unity_testcase_info(7351, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - failCntStat.validParams = PMIC_CFG_WD_ALL_FAILCNTSTAT_VALID_PARAMS; - /* Get watchdog failcount */ - pmicStatus = Pmic_wdgGetFailCntStat(NULL, &failCntStat); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(7351, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/*! - * \brief Test get wdg failcount Parameter validation for failCount - */ -static void test_pmic_wdg_GetFailCount_prmValTest_invFailCountParam(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(7352, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - /* Get watchdog failcount */ - pmicStatus = Pmic_wdgGetFailCntStat(pPmicCoreHandle, NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(7352, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/*! - * \brief Test get wdg error status - */ -static void test_pmic_wdg_GetErrorStatus(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_WdgErrStatus_t errStatus = {0U}; - - test_pmic_print_unity_testcase_info(7353, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - errStatus.validParams = PMIC_CFG_WD_ALL_ERRSTAT_VALID_PARAMS; - /* Get watchdog error Status */ - pmicStatus = Pmic_wdgGetErrorStatus(pPmicCoreHandle, &errStatus); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(7353, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/*! - * \brief Test get wdg error status Parameter validation for handle - */ -static void test_pmic_wdg_GetErrorStatus_prmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_WdgErrStatus_t errStatus = {0U}; - - test_pmic_print_unity_testcase_info(7354, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - errStatus.validParams = PMIC_CFG_WD_ALL_ERRSTAT_VALID_PARAMS; - /* Get watchdog error Status */ - pmicStatus = Pmic_wdgGetErrorStatus(NULL, &errStatus); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - pmic_testResultUpdate_pass(7354, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/*! - * \brief Test get wdg failcount Parameter validation for errStatus - */ -static void test_pmic_wdg_GetErrorStatus_prmValTest_invErrStatParam(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(7355, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - /* Get watchdog error Status */ - pmicStatus = Pmic_wdgGetErrorStatus(pPmicCoreHandle, NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_NULL_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(7355, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -#if defined(ENABLE_SAMPLE_TESTCASES) -/*! - * Below test cases are not tested because of HW limitation. - * Added below test cases as sample for reference. - * - * PDK-7461 : PMIC: WDG Trigger mode can't be tested on J721E EVM - */ - -/*! - * \brief Test wdg Trigger sequence - */ -static void test_pmic_wdg_StartTriggerSequence(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_WdgCfg_t wdgCfg = - { - PMIC_WDG_CFG_SETPARAMS_FORALL, - 750000U, - 6050U, - 4950U, - PMIC_WDG_FAIL_THRESHOLD_COUNT_7, - PMIC_WDG_RESET_THRESHOLD_COUNT_7, - PMIC_WDG_TRIGGER_MODE, - PMIC_WDG_PWRHOLD_DISABLE, - PMIC_WDG_RESET_ENABLE, - PMIC_WDG_RETLONGWIN_DISABLE, - PMIC_WDG_QA_FEEDBACK_VALUE_0, - PMIC_WDG_QA_LFSR_VALUE_0, - PMIC_WDG_QA_QUES_SEED_VALUE_10, - }; - - test_pmic_print_unity_testcase_info(0xAB17, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(0xAB17, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - } - - /* Test ignored, due to unsupported HW */ - pmic_testResultUpdate_ignore(0xAB17, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - wdgCfg.longWinDuration_ms = 752000U; - } - - /* Enable WDG Timer */ - pmicStatus = Pmic_wdgEnable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Set Trigger parameters */ - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Start Watchdog trigger sequence */ - pmicStatus = Pmic_wdgStartTriggerSequence(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Disable WDG Timer */ - pmicStatus = Pmic_wdgDisable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(0xAB17, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} -#endif - -/*! - * \brief Test Watchdog trigger mode Parameter validation for handle - */ -static void test_pmic_wdg_StartTriggerSequence_prmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_WdgCfg_t wdgCfg = - { - PMIC_WDG_CFG_SETPARAMS_FORALL, - 750000U, - 6050U, - 4950U, - PMIC_WDG_FAIL_THRESHOLD_COUNT_7, - PMIC_WDG_RESET_THRESHOLD_COUNT_7, - PMIC_WDG_TRIGGER_MODE, - PMIC_WDG_PWRHOLD_DISABLE, - PMIC_WDG_RESET_DISABLE, - PMIC_WDG_RETLONGWIN_DISABLE, - PMIC_WDG_QA_FEEDBACK_VALUE_0, - PMIC_WDG_QA_LFSR_VALUE_0, - PMIC_WDG_QA_QUES_SEED_VALUE_10, - }; - - test_pmic_print_unity_testcase_info(7357, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - wdgCfg.longWinDuration_ms = 752000U; - } - - /* Enable WDG Timer */ - pmicStatus = Pmic_wdgEnable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Set Trigger parameters */ - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Start Watchdog trigger sequence */ - pmicStatus = Pmic_wdgStartTriggerSequence(NULL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - /* Disable WDG Timer */ - pmicStatus = Pmic_wdgDisable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(7357, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_wdgStartQaSequence : Parameter validation for maxCnt - */ -static void test_pmic_wdg_startQaSequence_prmValTest_maxCnt(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint32_t maxCnt = PMIC_WDG_WAIT_CNT_MIN_VAL - 1U; - Pmic_WdgCfg_t wdgCfg = - { - PMIC_WDG_CFG_SETPARAMS_FORALL, - 24000U, - 6050U, - 4950U, - PMIC_WDG_FAIL_THRESHOLD_COUNT_7, - PMIC_WDG_RESET_THRESHOLD_COUNT_7, - PMIC_WDG_QA_MODE, - PMIC_WDG_PWRHOLD_DISABLE, - PMIC_WDG_RESET_DISABLE, - PMIC_WDG_RETLONGWIN_ENABLE, - PMIC_WDG_QA_FEEDBACK_VALUE_0, - PMIC_WDG_QA_LFSR_VALUE_0, - PMIC_WDG_QA_QUES_SEED_VALUE_10, - }; - - test_pmic_print_unity_testcase_info(7958, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - /* Enable WDG Timer */ - pmicStatus = Pmic_wdgEnable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Set QA parameters */ - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Start Watchdog QA sequence */ - pmicStatus = Pmic_wdgStartQaSequence(pPmicCoreHandle, 5U, maxCnt); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - /* Disable WDG Timer */ - pmicStatus = Pmic_wdgDisable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(7958, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_wdgClrErrStatus: Test to Clear all watchdog error status and - * to clear watchdog error status based on WDG Error Type - */ -static void test_pmic_wdg_ClrErrorStatus(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_WdgErrStatus_t errStatus = {0U}; - - test_pmic_print_unity_testcase_info(10075, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - /* Enable WDG Timer */ - pmicStatus = Pmic_wdgEnable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - errStatus.validParams = PMIC_CFG_WD_ALL_ERRSTAT_VALID_PARAMS; - /* Get watchdog error Status */ - pmicStatus = Pmic_wdgGetErrorStatus(pPmicCoreHandle, &errStatus); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Clear watchdog error Status */ - pmicStatus = Pmic_wdgClrErrStatus(pPmicCoreHandle, PMIC_WDG_ERR_ALL); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Disable WDG Timer */ - pmicStatus = Pmic_wdgDisable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(10075, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/*! - * \brief Test get wdg clear status Parameter validation for handle - */ -static void test_pmic_wdg_ClrErrorStatus_prmValTest_handle(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(10076, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - /* Clear watchdog error Status */ - pmicStatus = Pmic_wdgClrErrStatus(NULL, PMIC_WDG_ERR_ALL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, pmicStatus); - - - pmic_testResultUpdate_pass(10076, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/*! - * \brief Test get wdg clear Parameter validation for wdgErrType - */ -static void test_pmic_wdg_ClrErrorStatus_prmValTest_wdgErrType(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - - test_pmic_print_unity_testcase_info(10077, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - /* Clear watchdog error Status */ - pmicStatus = Pmic_wdgClrErrStatus(pPmicCoreHandle, 0x9U); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_PARAM, pmicStatus); - - pmic_testResultUpdate_pass(10077, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_wdgQaSequenceWriteAnswer : Test wdg QA sequences - */ -static void test_pmic_wdgQaSequenceWriteAnswer_startQaSequence(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - int8_t ansIndex = 0; - int32_t test_failure = PMIC_ST_SUCCESS; - uint32_t numSequences = 5U, sequenceId; - Pmic_WdgErrStatus_t errStatus = {0U}; - Pmic_WdgFailCntStat_t failCntStat = {0U}; - bool wdgBadEventStat = false; - bool wdgGudEventStat = true; - uint32_t failCntVal = 0; - Pmic_WdgCfg_t wdgCfg = - { - PMIC_WDG_CFG_SETPARAMS_FORALL, - 750000U, - 6050U, - 8250U, - PMIC_WDG_FAIL_THRESHOLD_COUNT_7, - PMIC_WDG_RESET_THRESHOLD_COUNT_7, - PMIC_WDG_QA_MODE, - PMIC_WDG_PWRHOLD_DISABLE, - PMIC_WDG_RESET_ENABLE, - PMIC_WDG_RETLONGWIN_DISABLE, - PMIC_WDG_QA_FEEDBACK_VALUE_0, - PMIC_WDG_QA_LFSR_VALUE_0, - PMIC_WDG_QA_QUES_SEED_VALUE_10, - }; - - test_pmic_print_unity_testcase_info(10071, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - wdgCfg.longWinDuration_ms = 752000U; - wdgCfg.win1Duration_us = 7150U; - } - - /* Enable WDG Timer */ - pmicStatus = Pmic_wdgEnable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Set QA parameters */ - wdgCfg.wdgMode = PMIC_WDG_QA_MODE; - wdgCfg.retLongWin = PMIC_WDG_RETLONGWIN_DISABLE; - - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - errStatus.validParams = PMIC_CFG_WD_ALL_ERRSTAT_VALID_PARAMS; - /* Get watchdog error Status */ - pmicStatus = Pmic_wdgGetErrorStatus(pPmicCoreHandle, &errStatus); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Clear WDG Error bits */ - if((errStatus.wdLongWinTimeout != 0U) || - (errStatus.wdTimeout != 0U) || - (errStatus.wdTrigEarly != 0U) || - (errStatus.wdAnswearly != 0U) || - (errStatus.wdSeqErr != 0U) || - (errStatus.wdAnswErr != 0U) || - (errStatus.wdFailInt != 0U) || - (errStatus.wdRstInt != 0U)) - { - pmicStatus = Pmic_wdgClrErrStatus(pPmicCoreHandle, PMIC_WDG_ERR_ALL); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - - /* Write Answers for Long Window */ - for(ansIndex = 3; ansIndex >= 0; ansIndex--) - { - pmicStatus = Pmic_wdgQaSequenceWriteAnswer(pPmicCoreHandle); - if(PMIC_ST_SUCCESS != pmicStatus) - { - errStatus.validParams = PMIC_CFG_WD_ALL_ERRSTAT_VALID_PARAMS; - /* Get watchdog error Status */ - pmicStatus = Pmic_wdgGetErrorStatus(pPmicCoreHandle, &errStatus); - TEST_ASSERT_EQUAL(0U, errStatus.wdLongWinTimeout); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - - /* Start Watchdog QA sequence */ - for(sequenceId = 0; sequenceId < numSequences; sequenceId++) - { - for(ansIndex = 3; ansIndex >= 0; ansIndex--) - { - pmicStatus = Pmic_wdgQaSequenceWriteAnswer(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - - errStatus.validParams = PMIC_CFG_WD_ALL_ERRSTAT_VALID_PARAMS; - /* Get watchdog error Status */ - pmicStatus = Pmic_wdgGetErrorStatus(pPmicCoreHandle, &errStatus); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - failCntStat.validParams = PMIC_CFG_WD_ALL_FAILCNTSTAT_VALID_PARAMS; - /* Get watchdog Fail Count Status */ - pmicStatus = Pmic_wdgGetFailCntStat(pPmicCoreHandle, &failCntStat); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - if((errStatus.wdTimeout != 0U) || (errStatus.wdAnswearly != 0U) || - (errStatus.wdSeqErr != 0U) || (errStatus.wdAnswErr != 0U) || - (errStatus.wdFailInt != 0U)) - { - test_failure = PMIC_ST_ERR_FAIL; - break; - } - - if((failCntStat.wdBadEvent != false) || (failCntStat.wdFailCnt != 0U)) - { - test_failure = PMIC_ST_ERR_FAIL; - break; - } - } - - if(failCntStat.wdGudEvent != true) - { - test_failure = PMIC_ST_ERR_FAIL; - } - - /* Set QA parameters */ - wdgCfg.retLongWin = PMIC_WDG_RETLONGWIN_ENABLE; - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Disable WDG Timer */ - pmicStatus = Pmic_wdgDisable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, test_failure); - TEST_ASSERT_EQUAL(wdgGudEventStat, failCntStat.wdGudEvent); - TEST_ASSERT_EQUAL(wdgBadEventStat, failCntStat.wdBadEvent); - TEST_ASSERT_EQUAL(failCntVal, failCntStat.wdFailCnt); - - pmic_testResultUpdate_pass(10071, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_wdgQaSequenceWriteAnswer : Test wdg QA sequences with different QA feedback values - */ -static void test_pmic_wdgQaSeqWriteAns_testFdbkValues(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_WdgCfg_t wdgCfg_rd = {0U}; - int8_t ansIndex = 0; - int32_t test_failure = PMIC_ST_SUCCESS; - uint32_t numSequences = 5U, sequenceId; - uint32_t fdbk = 0; - Pmic_WdgErrStatus_t errStatus = {0U}; - Pmic_WdgCfg_t wdgCfg = - { - PMIC_WDG_CFG_SETPARAMS_FORALL, - 750000U, - 6050U, - 8250U, - PMIC_WDG_FAIL_THRESHOLD_COUNT_1, - PMIC_WDG_RESET_THRESHOLD_COUNT_1, - PMIC_WDG_QA_MODE, - PMIC_WDG_PWRHOLD_DISABLE, - PMIC_WDG_RESET_DISABLE, - PMIC_WDG_RETLONGWIN_DISABLE, - PMIC_WDG_QA_FEEDBACK_VALUE_0, - PMIC_WDG_QA_LFSR_VALUE_0, - PMIC_WDG_QA_QUES_SEED_VALUE_10, - }; - Pmic_WdgFailCntStat_t failCntStat = {0U}; - bool wdgBadEventStat = false; - bool wdgGudEventStat = true; - uint32_t failCntVal = 0; - - test_pmic_print_unity_testcase_info(10072, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - /*Refer the Bug PDK-10395 for more details*/ - pmic_testResultUpdate_ignore(10072, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - wdgCfg.longWinDuration_ms = 752000U; - wdgCfg.win1Duration_us = 7150U; - } - - for(fdbk = PMIC_WDG_QA_FEEDBACK_VALUE_0; - fdbk <= PMIC_WDG_QA_FEEDBACK_VALUE_3; - fdbk++) - { - /* Enable WDG Timer */ - pmicStatus = Pmic_wdgEnable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Set QA parameters */ - wdgCfg.wdgMode = PMIC_WDG_QA_MODE; - wdgCfg.retLongWin = PMIC_WDG_RETLONGWIN_DISABLE; - wdgCfg.qaFdbk = fdbk; - - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Get wdg config to check fdbk value */ - wdgCfg_rd.validParams = PMIC_CFG_WDG_QA_FDBK_VALID_SHIFT; - pmicStatus = Pmic_wdgGetCfg(pPmicCoreHandle, &wdgCfg_rd); - TEST_ASSERT_EQUAL(wdgCfg.qaFdbk, wdgCfg_rd.qaFdbk); - - errStatus.validParams = PMIC_CFG_WD_ALL_ERRSTAT_VALID_PARAMS; - /* Get watchdog error Status */ - pmicStatus = Pmic_wdgGetErrorStatus(pPmicCoreHandle, &errStatus); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Clear WDG Error bits */ - if((errStatus.wdLongWinTimeout != 0U) || - (errStatus.wdTimeout != 0U) || - (errStatus.wdTrigEarly != 0U) || - (errStatus.wdAnswearly != 0U) || - (errStatus.wdSeqErr != 0U) || - (errStatus.wdAnswErr != 0U) || - (errStatus.wdFailInt != 0U) || - (errStatus.wdRstInt != 0U)) - { - pmicStatus = Pmic_wdgClrErrStatus(pPmicCoreHandle, PMIC_WDG_ERR_ALL); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - - /* Write Answers for Long Window */ - for(ansIndex = 3; ansIndex >= 0; ansIndex--) - { - pmicStatus = Pmic_wdgQaSequenceWriteAnswer(pPmicCoreHandle); - if(PMIC_ST_SUCCESS != pmicStatus) - { - errStatus.validParams = PMIC_CFG_WD_ALL_ERRSTAT_VALID_PARAMS; - /* Get watchdog error Status */ - pmicStatus = Pmic_wdgGetErrorStatus(pPmicCoreHandle, &errStatus); - TEST_ASSERT_EQUAL(0U, errStatus.wdLongWinTimeout); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - - /* Start Watchdog QA sequence */ - for(sequenceId = 0; sequenceId < numSequences; sequenceId++) - { - for(ansIndex = 3; ansIndex >= 0; ansIndex--) - { - pmicStatus = Pmic_wdgQaSequenceWriteAnswer(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - - errStatus.validParams = PMIC_CFG_WD_ALL_ERRSTAT_VALID_PARAMS; - /* Get watchdog error Status */ - pmicStatus = Pmic_wdgGetErrorStatus(pPmicCoreHandle, &errStatus); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - failCntStat.validParams = PMIC_CFG_WD_ALL_FAILCNTSTAT_VALID_PARAMS; - /* Get watchdog Fail Count Status */ - pmicStatus = Pmic_wdgGetFailCntStat(pPmicCoreHandle, &failCntStat); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - if((errStatus.wdTimeout != 0U) || (errStatus.wdAnswearly != 0U) || - (errStatus.wdSeqErr != 0U) || (errStatus.wdAnswErr != 0U) || - (errStatus.wdFailInt != 0U)) - { - test_failure = PMIC_ST_ERR_FAIL; - break; - } - - if((failCntStat.wdBadEvent != false) || (failCntStat.wdFailCnt != 0U)) - { - test_failure = PMIC_ST_ERR_FAIL; - break; - } - } - - if(failCntStat.wdGudEvent != true) - { - test_failure = PMIC_ST_ERR_FAIL; - } - - /* Set QA parameters */ - wdgCfg.retLongWin = PMIC_WDG_RETLONGWIN_ENABLE; - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Disable WDG Timer */ - pmicStatus = Pmic_wdgDisable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, test_failure); - TEST_ASSERT_EQUAL(wdgGudEventStat, failCntStat.wdGudEvent); - TEST_ASSERT_EQUAL(wdgBadEventStat, failCntStat.wdBadEvent); - TEST_ASSERT_EQUAL(failCntVal, failCntStat.wdFailCnt); - - /* Delay is needed to sattle down watchdog to longwindow */ - Osal_delay(20U); - } - - pmic_testResultUpdate_pass(10072, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_wdgQaSequenceWriteAnswer : Test wdg QA sequences with different QA lfsr values - */ -static void test_pmic_wdgQaSeqWriteAns_testLfsrValues(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t lfsr = 0U; - Pmic_WdgCfg_t wdgCfg_rd = {0U}; - int8_t ansIndex = 0; - int32_t test_failure = PMIC_ST_SUCCESS; - uint32_t numSequences = 5U, sequenceId; - Pmic_WdgErrStatus_t errStatus = {0U}; - Pmic_WdgCfg_t wdgCfg = - { - PMIC_WDG_CFG_SETPARAMS_FORALL, - 750000U, - 6050U, - 8250U, - PMIC_WDG_FAIL_THRESHOLD_COUNT_7, - PMIC_WDG_RESET_THRESHOLD_COUNT_7, - PMIC_WDG_QA_MODE, - PMIC_WDG_PWRHOLD_DISABLE, - PMIC_WDG_RESET_DISABLE, - PMIC_WDG_RETLONGWIN_DISABLE, - PMIC_WDG_QA_FEEDBACK_VALUE_0, - PMIC_WDG_QA_LFSR_VALUE_0, - PMIC_WDG_QA_QUES_SEED_VALUE_10, - }; - Pmic_WdgFailCntStat_t failCntStat = {0U}; - bool wdgBadEventStat = false; - bool wdgGudEventStat = true; - uint32_t failCntVal = 0; - - test_pmic_print_unity_testcase_info(10073, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - wdgCfg.longWinDuration_ms = 752000U; - wdgCfg.win1Duration_us = 7150U; - } - - for(lfsr = PMIC_WDG_QA_LFSR_VALUE_0; - lfsr <= PMIC_WDG_QA_LFSR_VALUE_3; - lfsr++) - { - /* Enable WDG Timer */ - pmicStatus = Pmic_wdgEnable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Set QA parameters */ - wdgCfg.wdgMode = PMIC_WDG_QA_MODE; - wdgCfg.retLongWin = PMIC_WDG_RETLONGWIN_DISABLE; - wdgCfg.qaLfsr = lfsr; - - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Get wdg config to check fdbk value */ - wdgCfg_rd.validParams = PMIC_CFG_WDG_QA_LFSR_VALID_SHIFT; - pmicStatus = Pmic_wdgGetCfg(pPmicCoreHandle, &wdgCfg_rd); - TEST_ASSERT_EQUAL(wdgCfg.qaLfsr, wdgCfg_rd.qaLfsr); - - errStatus.validParams = PMIC_CFG_WD_ALL_ERRSTAT_VALID_PARAMS; - /* Get watchdog error Status */ - pmicStatus = Pmic_wdgGetErrorStatus(pPmicCoreHandle, &errStatus); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Clear WDG Error bits */ - if((errStatus.wdLongWinTimeout != 0U) || - (errStatus.wdTimeout != 0U) || - (errStatus.wdTrigEarly != 0U) || - (errStatus.wdAnswearly != 0U) || - (errStatus.wdSeqErr != 0U) || - (errStatus.wdAnswErr != 0U) || - (errStatus.wdFailInt != 0U) || - (errStatus.wdRstInt != 0U)) - { - pmicStatus = Pmic_wdgClrErrStatus(pPmicCoreHandle, PMIC_WDG_ERR_ALL); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - - /* Write Answers for Long Window */ - for(ansIndex = 3; ansIndex >= 0; ansIndex--) - { - pmicStatus = Pmic_wdgQaSequenceWriteAnswer(pPmicCoreHandle); - if(PMIC_ST_SUCCESS != pmicStatus) - { - errStatus.validParams = PMIC_CFG_WD_ALL_ERRSTAT_VALID_PARAMS; - /* Get watchdog error Status */ - pmicStatus = Pmic_wdgGetErrorStatus(pPmicCoreHandle, &errStatus); - TEST_ASSERT_EQUAL(0U, errStatus.wdLongWinTimeout); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - - /* Start Watchdog QA sequence */ - for(sequenceId = 0; sequenceId < numSequences; sequenceId++) - { - for(ansIndex = 3; ansIndex >= 0; ansIndex--) - { - pmicStatus = Pmic_wdgQaSequenceWriteAnswer(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - - errStatus.validParams = PMIC_CFG_WD_ALL_ERRSTAT_VALID_PARAMS; - /* Get watchdog error Status */ - pmicStatus = Pmic_wdgGetErrorStatus(pPmicCoreHandle, &errStatus); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - failCntStat.validParams = PMIC_CFG_WD_ALL_FAILCNTSTAT_VALID_PARAMS; - /* Get watchdog Fail Count Status */ - pmicStatus = Pmic_wdgGetFailCntStat(pPmicCoreHandle, &failCntStat); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - if((errStatus.wdTimeout != 0U) || (errStatus.wdAnswearly != 0U) || - (errStatus.wdSeqErr != 0U) || (errStatus.wdAnswErr != 0U) || - (errStatus.wdFailInt != 0U)) - { - test_failure = PMIC_ST_ERR_FAIL; - break; - } - - if((failCntStat.wdBadEvent != false) || (failCntStat.wdFailCnt != 0U)) - { - test_failure = PMIC_ST_ERR_FAIL; - break; - } - } - - if(failCntStat.wdGudEvent != true) - { - test_failure = PMIC_ST_ERR_FAIL; - } - - /* Set QA parameters */ - wdgCfg.retLongWin = PMIC_WDG_RETLONGWIN_ENABLE; - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Disable WDG Timer */ - pmicStatus = Pmic_wdgDisable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, test_failure); - TEST_ASSERT_EQUAL(wdgGudEventStat, failCntStat.wdGudEvent); - TEST_ASSERT_EQUAL(wdgBadEventStat, failCntStat.wdBadEvent); - TEST_ASSERT_EQUAL(failCntVal, failCntStat.wdFailCnt); - - /* Delay is needed to sattle down watchdog to longwindow */ - Osal_delay(20U); - } - - pmic_testResultUpdate_pass(10073, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_wdgQaSequenceWriteAnswer : Test wdg QA sequences with different QA seed values - */ -static void test_pmic_wdgQaSeqWriteAns_testSeedValues(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - uint8_t quesSeed = 0U; - Pmic_WdgCfg_t wdgCfg_rd = {0U}; - int8_t ansIndex = 0; - int32_t test_failure = PMIC_ST_SUCCESS; - uint32_t numSequences = 5U, sequenceId; - Pmic_WdgErrStatus_t errStatus = {0U}; - Pmic_WdgCfg_t wdgCfg = - { - PMIC_WDG_CFG_SETPARAMS_FORALL, - 750000U, - 6050U, - 8250U, - PMIC_WDG_FAIL_THRESHOLD_COUNT_7, - PMIC_WDG_RESET_THRESHOLD_COUNT_7, - PMIC_WDG_QA_MODE, - PMIC_WDG_PWRHOLD_DISABLE, - PMIC_WDG_RESET_DISABLE, - PMIC_WDG_RETLONGWIN_DISABLE, - PMIC_WDG_QA_FEEDBACK_VALUE_0, - PMIC_WDG_QA_LFSR_VALUE_0, - PMIC_WDG_QA_QUES_SEED_VALUE_10, - }; - Pmic_WdgFailCntStat_t failCntStat = {0U}; - bool wdgBadEventStat = false; - bool wdgGudEventStat = true; - uint32_t failCntVal = 0; - - test_pmic_print_unity_testcase_info(10074, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - wdgCfg.longWinDuration_ms = 752000U; - wdgCfg.win1Duration_us = 7150U; - } - - for(quesSeed = PMIC_WDG_QA_QUES_SEED_VALUE_0; - quesSeed <= PMIC_WDG_QA_QUES_SEED_VALUE_15; - quesSeed++) - { - /* Enable WDG Timer */ - pmicStatus = Pmic_wdgEnable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Set QA parameters */ - wdgCfg.wdgMode = PMIC_WDG_QA_MODE; - wdgCfg.retLongWin = PMIC_WDG_RETLONGWIN_DISABLE; - wdgCfg.qaQuesSeed = quesSeed; - - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Get wdg config to check fdbk value */ - wdgCfg_rd.validParams = PMIC_CFG_WDG_QA_QUES_SEED_VALID_SHIFT; - pmicStatus = Pmic_wdgGetCfg(pPmicCoreHandle, &wdgCfg_rd); - TEST_ASSERT_EQUAL(wdgCfg.qaQuesSeed, wdgCfg_rd.qaQuesSeed); - - errStatus.validParams = PMIC_CFG_WD_ALL_ERRSTAT_VALID_PARAMS; - /* Get watchdog error Status */ - pmicStatus = Pmic_wdgGetErrorStatus(pPmicCoreHandle, &errStatus); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Clear WDG Error bits */ - if((errStatus.wdLongWinTimeout != 0U) || - (errStatus.wdTimeout != 0U) || - (errStatus.wdTrigEarly != 0U) || - (errStatus.wdAnswearly != 0U) || - (errStatus.wdSeqErr != 0U) || - (errStatus.wdAnswErr != 0U) || - (errStatus.wdFailInt != 0U) || - (errStatus.wdRstInt != 0U)) - { - pmicStatus = Pmic_wdgClrErrStatus(pPmicCoreHandle, PMIC_WDG_ERR_ALL); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - - /* Write Answers for Long Window */ - for(ansIndex = 3; ansIndex >= 0; ansIndex--) - { - pmicStatus = Pmic_wdgQaSequenceWriteAnswer(pPmicCoreHandle); - if(PMIC_ST_SUCCESS != pmicStatus) - { - errStatus.validParams = PMIC_CFG_WD_ALL_ERRSTAT_VALID_PARAMS; - /* Get watchdog error Status */ - pmicStatus = Pmic_wdgGetErrorStatus(pPmicCoreHandle, &errStatus); - TEST_ASSERT_EQUAL(0U, errStatus.wdLongWinTimeout); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - - /* Start Watchdog QA sequence */ - for(sequenceId = 0; sequenceId < numSequences; sequenceId++) - { - for(ansIndex = 3; ansIndex >= 0; ansIndex--) - { - pmicStatus = Pmic_wdgQaSequenceWriteAnswer(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - - errStatus.validParams = PMIC_CFG_WD_ALL_ERRSTAT_VALID_PARAMS; - /* Get watchdog error Status */ - pmicStatus = Pmic_wdgGetErrorStatus(pPmicCoreHandle, &errStatus); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - failCntStat.validParams = PMIC_CFG_WD_ALL_FAILCNTSTAT_VALID_PARAMS; - /* Get watchdog Fail Count Status */ - pmicStatus = Pmic_wdgGetFailCntStat(pPmicCoreHandle, &failCntStat); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - if((errStatus.wdTimeout != 0U) || (errStatus.wdAnswearly != 0U) || - (errStatus.wdSeqErr != 0U) || (errStatus.wdAnswErr != 0U) || - (errStatus.wdFailInt != 0U)) - { - test_failure = PMIC_ST_ERR_FAIL; - break; - } - - if((failCntStat.wdBadEvent != false) || (failCntStat.wdFailCnt != 0U)) - { - test_failure = PMIC_ST_ERR_FAIL; - break; - } - } - - if(failCntStat.wdGudEvent != true) - { - test_failure = PMIC_ST_ERR_FAIL; - } - - /* Set QA parameters */ - wdgCfg.retLongWin = PMIC_WDG_RETLONGWIN_ENABLE; - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Disable WDG Timer */ - pmicStatus = Pmic_wdgDisable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, test_failure); - TEST_ASSERT_EQUAL(wdgGudEventStat, failCntStat.wdGudEvent); - TEST_ASSERT_EQUAL(wdgBadEventStat, failCntStat.wdBadEvent); - TEST_ASSERT_EQUAL(failCntVal, failCntStat.wdFailCnt); - - /* Delay is needed to sattle down watchdog to longwindow */ - Osal_delay(20U); - } - - pmic_testResultUpdate_pass(10074, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_wdgSetCfg : Test to set longWinDuration as 100ms - */ -static void test_pmic_wdgsetCfg_longwin(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_WdgCfg_t wdgCfg_rd = {PMIC_WDG_CFG_SETPARAMS_FORALL, }; - Pmic_WdgCfg_t wdgCfg = - { - PMIC_WDG_CFG_SETPARAMS_FORALL, - 100U, - 4950U, - 4950U, - PMIC_WDG_FAIL_THRESHOLD_COUNT_5, - PMIC_WDG_RESET_THRESHOLD_COUNT_6, - PMIC_WDG_TRIGGER_MODE, - PMIC_WDG_PWRHOLD_ENABLE, - PMIC_WDG_RESET_DISABLE, - PMIC_WDG_RETLONGWIN_DISABLE, - PMIC_WDG_QA_FEEDBACK_VALUE_2, - PMIC_WDG_QA_LFSR_VALUE_1, - PMIC_WDG_QA_QUES_SEED_VALUE_5, - }; - - test_pmic_print_unity_testcase_info(10780, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - pmic_testResultUpdate_ignore(10780, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - } - - status = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - status = Pmic_wdgGetCfg(pPmicCoreHandle, &wdgCfg_rd); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - TEST_ASSERT_EQUAL(wdgCfg.longWinDuration_ms, wdgCfg_rd.longWinDuration_ms); - - pmic_testResultUpdate_pass(10780, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_wdgSetCfg : Parameter validation for longWinDuration_ min Value as 2999 ms for - * Leo PMIC PG1.0 - */ -static void test_pmic_wdgsetCfg_prmValTest_longwinMin_2999ms(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_WdgCfg_t wdgCfg = - { - PMIC_WDG_CFG_SETPARAMS_FORALL, - 2999U, - 4950U, - 4950U, - PMIC_WDG_FAIL_THRESHOLD_COUNT_5, - PMIC_WDG_RESET_THRESHOLD_COUNT_6, - PMIC_WDG_TRIGGER_MODE, - PMIC_WDG_PWRHOLD_ENABLE, - PMIC_WDG_RESET_DISABLE, - PMIC_WDG_RETLONGWIN_DISABLE, - PMIC_WDG_QA_FEEDBACK_VALUE_2, - PMIC_WDG_QA_LFSR_VALUE_1, - PMIC_WDG_QA_QUES_SEED_VALUE_5, - }; - - test_pmic_print_unity_testcase_info(10781, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - pmic_testResultUpdate_ignore(10781, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - } - - status = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_WDG_WINDOW, status); - - pmic_testResultUpdate_pass(10781, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_wdgStartTriggerSequence - Code coverage test for wdg Trigger sequence - * Added for code coverage test. Functionality Test is not done due to - * EVM Limitation - */ -static void test_pmic_wdg_StartTriggerSequence(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_WdgCfg_t wdgCfg = - { - PMIC_WDG_CFG_SETPARAMS_FORALL, - 750000U, - 6050U, - 4950U, - PMIC_WDG_FAIL_THRESHOLD_COUNT_7, - PMIC_WDG_RESET_THRESHOLD_COUNT_7, - PMIC_WDG_TRIGGER_MODE, - PMIC_WDG_PWRHOLD_DISABLE, - PMIC_WDG_RESET_DISABLE, - PMIC_WDG_RETLONGWIN_DISABLE, - PMIC_WDG_QA_FEEDBACK_VALUE_0, - PMIC_WDG_QA_LFSR_VALUE_0, - PMIC_WDG_QA_QUES_SEED_VALUE_10, - }; - - test_pmic_print_unity_testcase_info(10782, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - if(J721E_LEO_PMICB_DEVICE == pmic_device_info) - { - pmic_testResultUpdate_ignore(10782, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - } - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - wdgCfg.longWinDuration_ms = 752000U; - } - - /* Enable WDG Timer */ - pmicStatus = Pmic_wdgEnable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Set Trigger parameters */ - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Start Watchdog trigger sequence */ - pmicStatus = Pmic_wdgStartTriggerSequence(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Disable WDG Timer */ - pmicStatus = Pmic_wdgDisable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(10782, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/*! - * \brief Pmic_wdgClrErrStatus : Test to clear wdg error based on WDG Error - * type - TimeOut, SeqErr, AnsEarly, FailInt - */ -static void test_pmic_wdgClrErrStatus_wdgErrType(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_WdgErrStatus_t errStatus = {0U}; - Pmic_IrqStatus_t errStat = {0U}; - int8_t ansIndex = 0; - uint32_t numSequences = 1U, sequenceId; - Pmic_WdgFailCntStat_t failCntStat = {0U}; - - Pmic_WdgCfg_t wdgCfg = - { - PMIC_WDG_CFG_SETPARAMS_FORALL, - 750000U, - 8050U, - 8250U, - PMIC_WDG_FAIL_THRESHOLD_COUNT_0, - PMIC_WDG_RESET_THRESHOLD_COUNT_0, - PMIC_WDG_QA_MODE, - PMIC_WDG_PWRHOLD_DISABLE, - PMIC_WDG_RESET_DISABLE, - PMIC_WDG_RETLONGWIN_DISABLE, - PMIC_WDG_QA_FEEDBACK_VALUE_0, - PMIC_WDG_QA_LFSR_VALUE_0, - PMIC_WDG_QA_QUES_SEED_VALUE_10, - }; - - test_pmic_print_unity_testcase_info(10783, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - wdgCfg.longWinDuration_ms = 752000U; - wdgCfg.win1Duration_us = 9150U; - } - - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Enable WDG Timer */ - pmicStatus = Pmic_wdgEnable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Write Answers for Long Window - To generate Long Window Timeout error*/ - for(ansIndex = 3; ansIndex >= 0; ansIndex--) - { - pmicStatus = Pmic_wdgQaSequenceWriteAnswer(pPmicCoreHandle); - if(PMIC_ST_SUCCESS != pmicStatus) - { - errStatus.validParams = PMIC_CFG_WD_ALL_ERRSTAT_VALID_PARAMS; - /* Get watchdog error Status */ - pmicStatus = Pmic_wdgGetErrorStatus(pPmicCoreHandle, &errStatus); - TEST_ASSERT_EQUAL(0U, errStatus.wdLongWinTimeout); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - - /* Start Watchdog QA sequence */ - for(sequenceId = 0; sequenceId < numSequences; sequenceId++) - { - for(ansIndex = 3; ansIndex >= 0; ansIndex--) - { - pmicStatus = Pmic_wdgQaSequenceWriteAnswer(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - - errStatus.validParams = PMIC_CFG_WD_ALL_ERRSTAT_VALID_PARAMS; - /* Get watchdog error Status */ - pmicStatus = Pmic_wdgGetErrorStatus(pPmicCoreHandle, &errStatus); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - failCntStat.validParams = PMIC_CFG_WD_ALL_FAILCNTSTAT_VALID_PARAMS; - /* Get watchdog Fail Count Status */ - pmicStatus = Pmic_wdgGetFailCntStat(pPmicCoreHandle, &failCntStat); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - if(failCntStat.wdFailCnt != 0U) - { - break; - } - } - - /* Set QA parameters */ - wdgCfg.retLongWin = PMIC_WDG_RETLONGWIN_ENABLE; - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Disable WDG Timer */ - pmicStatus = Pmic_wdgDisable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - errStatus.validParams = PMIC_CFG_WD_ALL_ERRSTAT_VALID_PARAMS; - /* Get watchdog error Status */ - pmicStatus = Pmic_wdgGetErrorStatus(pPmicCoreHandle, &errStatus); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, false); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - if((errStat.intStatus[PMIC_TPS6594X_WD_FAIL_INT/32U] & - (1U << (PMIC_TPS6594X_WD_FAIL_INT % 32U))) == 0U) - { - pmicStatus = PMIC_ST_ERR_FAIL; - } - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - - /* Clear WDG Timeout Error bits */ - pmicStatus = Pmic_wdgClrErrStatus(pPmicCoreHandle, PMIC_WDG_ERR_TIMEOUT); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Clear WDG Seq Error bits */ - pmicStatus = Pmic_wdgClrErrStatus(pPmicCoreHandle, PMIC_WDG_ERR_SEQ_ERR); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Clear WDG Timeout Error bits - for code coverage false case of PMIC_WDG_ERR_TIMEOUT second if case*/ - pmicStatus = Pmic_wdgClrErrStatus(pPmicCoreHandle, PMIC_WDG_ERR_TIMEOUT); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Clear WDG Seq Error bits - for code coverage false case of PMIC_WDG_ERR_SEQ_ERR second if case */ - pmicStatus = Pmic_wdgClrErrStatus(pPmicCoreHandle, PMIC_WDG_ERR_SEQ_ERR); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Clear WDG Seq Error bits - for code coverage false case of PMIC_WDG_ERR_LONG_WIN_TIMEOUT second if case */ - pmicStatus = Pmic_wdgClrErrStatus(pPmicCoreHandle, PMIC_WDG_ERR_LONG_WIN_TIMEOUT); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Clear WDG Seq Error bits - for code coverage false case of PMIC_WDG_ERR_TRIGGER_EARLY second if case */ - pmicStatus = Pmic_wdgClrErrStatus(pPmicCoreHandle, PMIC_WDG_ERR_TRIGGER_EARLY); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Clear WDG Seq Error bits - for code coverage false case of PMIC_WDG_ERR_ANS_ERR second if case */ - pmicStatus = Pmic_wdgClrErrStatus(pPmicCoreHandle, PMIC_WDG_ERR_ANS_ERR); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Clear WDG Answer Early timeout Error bits */ - pmicStatus = Pmic_wdgClrErrStatus(pPmicCoreHandle, PMIC_WDG_ERR_ANSWER_EARLY); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Clear WDG Seq Error bits - for code coverage false case of PMIC_WDG_ERR_ANSWER_EARLY second if case */ - pmicStatus = Pmic_wdgClrErrStatus(pPmicCoreHandle, PMIC_WDG_ERR_ANSWER_EARLY); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Clear WDG Fail Int timeout Error bits */ - pmicStatus = Pmic_wdgClrErrStatus(pPmicCoreHandle, PMIC_WDG_ERR_FAIL_INT); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_testResultUpdate_pass(10783, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - - -/*! - * \brief Pmic_wdgQaSequenceWriteAnswer : Manual Test case to test WDG RST INT and - * WDG LONGWIN TIMEOUT INT - */ -static void test_pmic_wdgQaSequenceWriteAnswer_RstIntLongWinTimeoutInt(void) -{ - int32_t pmicStatus = PMIC_ST_SUCCESS; - Pmic_WdgErrStatus_t errStatus = {0U}; - Pmic_IrqStatus_t errStat = {0U}; - int8_t ansIndex = 0; - - Pmic_WdgCfg_t wdgCfg = - { - PMIC_WDG_CFG_SETPARAMS_FORALL, - 750000U, - 6050U, - 8250U, - PMIC_WDG_FAIL_THRESHOLD_COUNT_0, - PMIC_WDG_RESET_THRESHOLD_COUNT_0, - PMIC_WDG_QA_MODE, - PMIC_WDG_PWRHOLD_DISABLE, - PMIC_WDG_RESET_ENABLE, - PMIC_WDG_RETLONGWIN_DISABLE, - PMIC_WDG_QA_FEEDBACK_VALUE_0, - PMIC_WDG_QA_LFSR_VALUE_0, - PMIC_WDG_QA_QUES_SEED_VALUE_10, - }; - - test_pmic_print_unity_testcase_info(10784, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - wdgCfg.longWinDuration_ms = 752000U; - wdgCfg.win1Duration_us = 7150U; - } - - pmicStatus = Pmic_irqGetErrStatus(pPmicCoreHandle, &errStat, true); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmic_log("\r\n After reset Rerun the test and check for WD_RST_INT and WD_LONGWIN_TIMEOUT_INT bit is set on Interrupt status register\n"); - - /* Enable WDG Timer */ - pmicStatus = Pmic_wdgEnable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - pmicStatus = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - - /* Write Answers for Long Window - To generate Long Window Timeout error*/ - for(ansIndex = 3; ansIndex >= 0; ansIndex--) - { - pmicStatus = Pmic_wdgQaSequenceWriteAnswer(pPmicCoreHandle); - if(PMIC_ST_SUCCESS != pmicStatus) - { - errStatus.validParams = PMIC_CFG_WD_ALL_ERRSTAT_VALID_PARAMS; - /* Get watchdog error Status */ - pmicStatus = Pmic_wdgGetErrorStatus(pPmicCoreHandle, &errStatus); - TEST_ASSERT_EQUAL(0U, errStatus.wdLongWinTimeout); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, pmicStatus); - } - - pmic_testResultUpdate_pass(10784, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -/* - * \brief Added for Coverage - */ -static void test_pmic_wdg_coverageGaps(void) -{ - int32_t status = PMIC_ST_SUCCESS; - uint8_t testCommMode; - Pmic_WdgFailCntStat_t failCntStat = {0U}; - Pmic_WdgErrStatus_t errStatus = {0U}; - Pmic_WdgCfg_t wdgCfg_rd = {PMIC_WDG_CFG_SETPARAMS_FORALL, }; - Pmic_WdgCfg_t wdgCfg = - { - PMIC_WDG_CFG_SETPARAMS_FORALL, - 750000U, - 4950U, - 4950U, - PMIC_WDG_FAIL_THRESHOLD_COUNT_5, - PMIC_WDG_RESET_THRESHOLD_COUNT_6, - PMIC_WDG_TRIGGER_MODE, - PMIC_WDG_PWRHOLD_ENABLE, - PMIC_WDG_RESET_DISABLE, - PMIC_WDG_RETLONGWIN_DISABLE, - PMIC_WDG_QA_FEEDBACK_VALUE_2, - PMIC_WDG_QA_LFSR_VALUE_1, - PMIC_WDG_QA_QUES_SEED_VALUE_5, - }; - - test_pmic_print_unity_testcase_info(8917, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - - if(PMIC_INTF_SPI == pPmicCoreHandle->commMode) - { - pmic_testResultUpdate_ignore(8917, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); - } - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - wdgCfg.longWinDuration_ms = 752000U; - } - - status = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - //Fault Injection Tests - gPmic_faultInjectCfg.enableFaultInjectionRead = 1U; - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - wdgCfg_rd.validParams = PMIC_WDG_CFG_SETPARAMS_FORALL; - status = Pmic_wdgGetCfg(pPmicCoreHandle, &wdgCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 2; - status = Pmic_wdgGetCfg(pPmicCoreHandle, &wdgCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 3; - status = Pmic_wdgGetCfg(pPmicCoreHandle, &wdgCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 4; - status = Pmic_wdgGetCfg(pPmicCoreHandle, &wdgCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 5; - status = Pmic_wdgGetCfg(pPmicCoreHandle, &wdgCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - wdgCfg.validParams = PMIC_CFG_WDG_RETLONGWIN_VALID_SHIFT; - status = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - wdgCfg.validParams = PMIC_CFG_WDG_WDGMODE_VALID_SHIFT | - PMIC_CFG_WDG_RSTENABLE_VALID_SHIFT | - PMIC_CFG_WDG_PWRHOLD_VALID_SHIFT | - PMIC_CFG_WDG_RETLONGWIN_VALID_SHIFT; - status = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - wdgCfg.validParams = PMIC_CFG_WDG_RSTENABLE_VALID_SHIFT; - status = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - wdgCfg.validParams = PMIC_CFG_WDG_RSTENABLE_VALID_SHIFT | - PMIC_CFG_WDG_PWRHOLD_VALID_SHIFT | - PMIC_CFG_WDG_RETLONGWIN_VALID_SHIFT; - status = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - wdgCfg.validParams = PMIC_CFG_WDG_PWRHOLD_VALID_SHIFT | - PMIC_CFG_WDG_RETLONGWIN_VALID_SHIFT; - status = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - wdgCfg.validParams = PMIC_CFG_WDG_RETLONGWIN_VALID_SHIFT; - status = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - wdgCfg.validParams = PMIC_CFG_WDG_QA_FDBK_VALID_SHIFT | - PMIC_CFG_WDG_QA_LFSR_VALID_SHIFT; - status = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - wdgCfg.validParams = PMIC_CFG_WDG_QA_LFSR_VALID_SHIFT | - PMIC_CFG_WDG_QA_QUES_SEED_VALID_SHIFT; - status = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - wdgCfg.validParams = PMIC_CFG_WDG_QA_FDBK_VALID_SHIFT | - PMIC_CFG_WDG_QA_QUES_SEED_VALID_SHIFT; - status = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 3; - wdgCfg_rd.validParams = PMIC_CFG_WDG_QA_FDBK_VALID_SHIFT | - PMIC_CFG_WDG_QA_QUES_SEED_VALID_SHIFT | - PMIC_CFG_WDG_QA_LFSR_VALID_SHIFT; - status = Pmic_wdgGetCfg(pPmicCoreHandle, &wdgCfg_rd); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - status = Pmic_wdgEnable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.enableFaultInjectionRead = 0U; - //WdgQACOunt - uint32_t maxCnt = PMIC_WDG_WAIT_CNT_MIN_VAL; - Pmic_WdgCfg_t wdgCfg_QA = - { - PMIC_WDG_CFG_SETPARAMS_FORALL, - 750000U, - 6150U, - 4950U, - PMIC_WDG_FAIL_THRESHOLD_COUNT_7, - PMIC_WDG_RESET_THRESHOLD_COUNT_7, - PMIC_WDG_QA_MODE, - PMIC_WDG_PWRHOLD_DISABLE, - PMIC_WDG_RESET_DISABLE, - PMIC_WDG_RETLONGWIN_DISABLE, - PMIC_WDG_QA_FEEDBACK_VALUE_0, - PMIC_WDG_QA_LFSR_VALUE_0, - PMIC_WDG_QA_QUES_SEED_VALUE_10, - }; - - if(PMIC_SILICON_REV_ID_PG_2_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - wdgCfg.longWinDuration_ms = 752000U; - } - - /* Enable WDG Timer */ - status = Pmic_wdgEnable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - /* Set QA parameters */ - status = Pmic_wdgSetCfg(pPmicCoreHandle, wdgCfg_QA); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - /* Start Watchdog QA sequence */ - gPmic_faultInjectCfg.enableFaultInjectionRead = 1U; - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 5; - status = Pmic_wdgStartQaSequence(pPmicCoreHandle, 5U, maxCnt); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 7; - status = Pmic_wdgStartQaSequence(pPmicCoreHandle, 5U, maxCnt); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 8; - status = Pmic_wdgStartQaSequence(pPmicCoreHandle, 5U, maxCnt); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 4; - status = Pmic_wdgStartQaSequence(pPmicCoreHandle, 5U, maxCnt); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - status = Pmic_wdgStartQaSequence(pPmicCoreHandle, 5U, maxCnt); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - status = Pmic_wdgStartTriggerSequence(pPmicCoreHandle); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - /* Disable WDG Timer */ - status = Pmic_wdgDisable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - Osal_delay(20U); - - - //Pmic_wdgClrErrStatus - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 1; - status = Pmic_wdgClrErrStatus(pPmicCoreHandle, PMIC_WDG_ERR_ALL); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_FAIL, status); - - -/* TBD - Due to these code coverage tests in this below if case - if(PMIC_INTF_DUAL_I2C == pPmicCoreHandle->commMode) - * 7327, 7340 tests is failed for Single I2C So ignored for time being - */ - if(PMIC_INTF_DUAL_I2C == pPmicCoreHandle->commMode) - { - /* Enable WDG Timer */ - status = Pmic_wdgEnable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - //Pmic_wdgStartQaSequence - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 20; - status = Pmic_wdgStartQaSequence(pPmicCoreHandle, 1U, maxCnt); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - /* Disable WDG Timer */ - status = Pmic_wdgDisable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - Osal_delay(20U); - - if(PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - /* Enable WDG Timer */ - status = Pmic_wdgEnable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - //is_wdgBadEventDetected - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 10; - status = Pmic_wdgStartQaSequence(pPmicCoreHandle, 1U, maxCnt); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - /* Disable WDG Timer */ - status = Pmic_wdgDisable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - Osal_delay(20U); - } - - /* Enable WDG Timer */ - status = Pmic_wdgEnable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - //Pmic_wdgQaSetModeRetlongwinCfgWriteAnswersLongwindow - gFailCntStatTestFlag = 1U; - gFailCount = 0; - gSkipFailStatusCount = 1; - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 11; - - status = Pmic_wdgStartQaSequence(pPmicCoreHandle, 1U, maxCnt); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - gFailCntStatTestFlag = 0U; - - /* Disable WDG Timer */ - status = Pmic_wdgDisable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - Osal_delay(20U); - - /* Enable WDG Timer */ - status = Pmic_wdgEnable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - //Pmic_wdgQaWriteAnswersNumSequence - gFailCntStatTestFlag = 1U; - gFailCount = 0; - gSkipFailStatusCount = 5; - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 22; - status = Pmic_wdgStartQaSequence(pPmicCoreHandle, 1U, maxCnt); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - gFailCntStatTestFlag = 0U; - - /* Disable WDG Timer */ - status = Pmic_wdgDisable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - Osal_delay(20U); - - if(pmic_device_info == J721E_LEO_PMICA_DEVICE) - { - /* Enable WDG Timer */ - status = Pmic_wdgEnable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - //Pmic_wdgQaWriteAnswersNumSequence - gPmic_faultInjectCfg.readCount = 0; - gPmic_faultInjectCfg.skipReadCount = 25; - status = Pmic_wdgStartQaSequence(pPmicCoreHandle, 1U, maxCnt); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - /* Disable WDG Timer */ - status = Pmic_wdgDisable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - Osal_delay(20U); - } - } - - if((PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev) && - (PMIC_INTF_DUAL_I2C == pPmicCoreHandle->commMode)) - { - /* Enable WDG Timer */ - status = Pmic_wdgEnable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - //Pmic_wdgQaSetModeRetlongwinCfgWriteAnswersLongwindow - gErrorStatusTestFlag = 1U; - gFailCntStatTestFlag = 1U; - gFailCount = 0; - gSkipFailStatusCount = 1; - gErrStatusCount = 0; - gSkipErrStatusCount = 2; - status = Pmic_wdgStartQaSequence(pPmicCoreHandle, 1U, maxCnt); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_WDG_WINDOW, status); - gFailCntStatTestFlag = 0U; - gErrorStatusTestFlag = 0U; - - /* Disable WDG Timer */ - status = Pmic_wdgDisable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - } - - gPmic_faultInjectCfg.enableFaultInjectionRead = 0U; - - if((PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev) && - (PMIC_INTF_DUAL_I2C == pPmicCoreHandle->commMode)) - { - /* Enable WDG Timer */ - status = Pmic_wdgEnable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - //Pmic_wdgQaSetModeRetlongwinCfgWriteAnswersLongwindow - gErrorStatusTestFlag = 1U; - gFailCntStatTestFlag = 1U; - gFailCount = 0; - gSkipFailStatusCount = 1; - gErrStatusCount = 0; - gSkipErrStatusCount = 2; - status = Pmic_wdgStartQaSequence(pPmicCoreHandle, 1U, maxCnt); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_WDG_WINDOW, status); - gFailCntStatTestFlag = 0U; - gErrorStatusTestFlag = 0U; - - /* Disable WDG Timer */ - status = Pmic_wdgDisable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - } - - gPmic_faultInjectCfg.enableFaultInjectionWrite = 1U; - - /* Enable WDG Timer */ - status = Pmic_wdgEnable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - //Pmic_wdgQaEvaluateAndWriteAnswers - gPmic_faultInjectCfg.writeCount = 0; - gPmic_faultInjectCfg.skipWriteCount = 4; - status = Pmic_wdgStartQaSequence(pPmicCoreHandle, 1U, maxCnt); - TEST_ASSERT_EQUAL(gPmic_faultInjectCfg.commError, status); - - gPmic_faultInjectCfg.enableFaultInjectionWrite = 0U; - - /* Disable WDG Timer */ - status = Pmic_wdgDisable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - if(PMIC_SILICON_REV_ID_PG_1_0 == pPmicCoreHandle->pmicDevSiliconRev) - { - gFailCntStatTestFlag = 1U; - gFailCount = 0; - gSkipFailStatusCount = 1; - failCntStat.validParams = PMIC_CFG_WD_BAD_EVENT_STAT_VALID_SHIFT; - /* Get watchdog failcount status */ - status = Pmic_wdgGetFailCntStat(pPmicCoreHandle, &failCntStat); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - gFailCntStatTestFlag = 0U; - - gErrorStatusTestFlag = 1U; - gErrStatusCount = 0; - gSkipErrStatusCount = 1; - errStatus.validParams = PMIC_CFG_WD_LONGWIN_TIMEOUT_ERRSTAT_VALID_SHIFT; - /* Get watchdog error Status */ - status = Pmic_wdgGetErrorStatus(pPmicCoreHandle, &errStatus); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - gErrStatusCount = 0; - gSkipErrStatusCount = 1; - /* Clear WDG Long Window timeout Error bits */ - status = Pmic_wdgClrErrStatus(pPmicCoreHandle, PMIC_WDG_ERR_LONG_WIN_TIMEOUT); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - gErrStatusCount = 0; - gSkipErrStatusCount = 1; - errStatus.validParams = PMIC_CFG_WD_TIMEOUT_ERRSTAT_VALID_SHIFT; - /* Get watchdog error Status */ - status = Pmic_wdgGetErrorStatus(pPmicCoreHandle, &errStatus); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - gErrStatusCount = 0; - gSkipErrStatusCount = 1; - /* Clear WDG Timeout Error bits */ - status = Pmic_wdgClrErrStatus(pPmicCoreHandle, PMIC_WDG_ERR_TIMEOUT); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - gErrStatusCount = 0; - gSkipErrStatusCount = 1; - errStatus.validParams = PMIC_CFG_WD_TRIG_EARLY_ERRSTAT_VALID_SHIFT; - /* Get watchdog error Status */ - status = Pmic_wdgGetErrorStatus(pPmicCoreHandle, &errStatus); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - gErrStatusCount = 0; - gSkipErrStatusCount = 1; - /* Clear WDG Trigger Early timeout Error bits */ - status = Pmic_wdgClrErrStatus(pPmicCoreHandle, PMIC_WDG_ERR_TRIGGER_EARLY); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - gErrStatusCount = 0; - gSkipErrStatusCount = 1; - errStatus.validParams = PMIC_CFG_WD_ANSW_EARLY_ERRSTAT_VALID_SHIFT; - /* Get watchdog error Status */ - status = Pmic_wdgGetErrorStatus(pPmicCoreHandle, &errStatus); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - gErrStatusCount = 0; - gSkipErrStatusCount = 1; - /* Clear WDG Answer Early timeout Error bits */ - status = Pmic_wdgClrErrStatus(pPmicCoreHandle, PMIC_WDG_ERR_ANSWER_EARLY); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - gErrStatusCount = 0; - gSkipErrStatusCount = 1; - errStatus.validParams = PMIC_CFG_WD_SEQ_ERR_ERRSTAT_VALID_SHIFT; - /* Get watchdog error Status */ - status = Pmic_wdgGetErrorStatus(pPmicCoreHandle, &errStatus); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - gErrStatusCount = 0; - gSkipErrStatusCount = 1; - /* Clear WDG Sequence timeout Error bits */ - status = Pmic_wdgClrErrStatus(pPmicCoreHandle, PMIC_WDG_ERR_SEQ_ERR); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - gErrStatusCount = 0; - gSkipErrStatusCount = 1; - errStatus.validParams = PMIC_CFG_WD_ANSW_ERR_ERRSTAT_VALID_SHIFT; - /* Get watchdog error Status */ - status = Pmic_wdgGetErrorStatus(pPmicCoreHandle, &errStatus); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - gErrStatusCount = 0; - gSkipErrStatusCount = 1; - /* Clear Answer timeout Error bits */ - status = Pmic_wdgClrErrStatus(pPmicCoreHandle, PMIC_WDG_ERR_ANS_ERR); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - gErrStatusCount = 0; - gSkipErrStatusCount = 1; - errStatus.validParams = PMIC_CFG_WD_FAIL_INT_ERRSTAT_VALID_SHIFT; - /* Get watchdog error Status */ - status = Pmic_wdgGetErrorStatus(pPmicCoreHandle, &errStatus); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - gErrStatusCount = 0; - gSkipErrStatusCount = 1; - /* Clear WDG Fail timeout Error bits */ - status = Pmic_wdgClrErrStatus(pPmicCoreHandle, PMIC_WDG_ERR_FAIL_INT); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - gErrStatusCount = 0; - gSkipErrStatusCount = 1; - errStatus.validParams = PMIC_CFG_WD_RST_INT_ERRSTAT_VALID_SHIFT; - /* Get watchdog error Status */ - status = Pmic_wdgGetErrorStatus(pPmicCoreHandle, &errStatus); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - gErrStatusCount = 0; - gSkipErrStatusCount = 1; - /* Clear WDG Reset timeout Error bits */ - status = Pmic_wdgClrErrStatus(pPmicCoreHandle, PMIC_WDG_ERR_RST_INT); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - gErrorStatusTestFlag = 0U; - gWdgErrStatusTestFlag = 1U; - - /* Clear WDG Long Window timeout Error bits */ - status = Pmic_wdgClrErrStatus(pPmicCoreHandle, PMIC_WDG_ERR_LONG_WIN_TIMEOUT); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - /* Clear PMIC_WDG_ERR_FAIL_INT - false case of PMIC_WDG_ERR_FAIL_INT second if case */ - status = Pmic_wdgClrErrStatus(pPmicCoreHandle, PMIC_WDG_ERR_FAIL_INT); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - /* Clear WDG Trigger Early timeout Error bits */ - status = Pmic_wdgClrErrStatus(pPmicCoreHandle, PMIC_WDG_ERR_TRIGGER_EARLY); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - /* Clear WDG Answer timeout Error bits */ - status = Pmic_wdgClrErrStatus(pPmicCoreHandle, PMIC_WDG_ERR_ANS_ERR); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - /* Clear WDG Rest ERR timeout Error bits */ - status = Pmic_wdgClrErrStatus(pPmicCoreHandle, PMIC_WDG_ERR_RST_INT); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - gWdgErrStatusTestFlag = 0U; - - } - - Pmic_DevSubSysInfo_t pmicDevSubSysInfo = - { - .gpioEnable = (bool)true, - .rtcEnable = (bool)true, - .wdgEnable = (bool)false, - .buckEnable = (bool)true, - .ldoEnable = (bool)true, - .esmEnable = (bool)true - }; - - pPmicCoreHandle->pPmic_SubSysInfo = (&pmicDevSubSysInfo); - status = Pmic_wdgEnable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, status); - - //Pmic_wdgQaSequenceWriteAnswer - status = Pmic_wdgQaSequenceWriteAnswer(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_DEVICE, status); - - Pmic_DevSubSysInfo_t testpmicDevSubSysInfo = - { - .gpioEnable = (bool)true, - .rtcEnable = (bool)true, - .wdgEnable = (bool)true, - .buckEnable = (bool)true, - .ldoEnable = (bool)true, - .esmEnable = (bool)true - }; - - pPmicCoreHandle->pPmic_SubSysInfo = (&testpmicDevSubSysInfo); - - testCommMode = pPmicCoreHandle->commMode; - pPmicCoreHandle->commMode = 3U; - status = Pmic_wdgEnable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_ERR_INV_HANDLE, status); - pPmicCoreHandle->commMode = testCommMode; - - /* Disable WDG Timer */ - status = Pmic_wdgDisable(pPmicCoreHandle); - TEST_ASSERT_EQUAL(PMIC_ST_SUCCESS, status); - - Osal_delay(1000U); - - pmic_log("\r\n WDG coverage test completed\n"); - - pmic_testResultUpdate_pass(8917, - pmic_wdg_tests, - PMIC_WDG_NUM_OF_TESTCASES); -} - -#if defined(UNITY_INCLUDE_CONFIG_V2_H) && \ - (defined(SOC_J721E) || defined(SOC_J7200)) - -/*! - * \brief Run wdg unity test cases - */ -static void test_pmic_run_testcases(void) -{ - pmic_log("\n\n%s(): %d: Begin Unity Test Cases...\n", __func__, __LINE__); - UNITY_BEGIN(); - - pmic_testResult_init(pmic_wdg_tests, PMIC_WDG_NUM_OF_TESTCASES); - - RUN_TEST(test_pmic_wdg_setCfg_forallparams); - RUN_TEST(test_pmic_wdg_setCfg_prmValTest_handle); - RUN_TEST(test_pmic_wdg_setCfg_prmValTest_longwinMin); - RUN_TEST(test_pmic_wdg_setCfg_prmValTest_longwinMax); - RUN_TEST(test_pmic_wdg_setCfg_prmValTest_win1Min); - RUN_TEST(test_pmic_wdg_setCfg_prmValTest_win1Max); - RUN_TEST(test_pmic_wdg_setCfg_prmValTest_win2Min); - RUN_TEST(test_pmic_wdg_setCfg_prmValTest_win2Max); - RUN_TEST(test_pmic_wdg_setCfg_prmValTest_failThresholdMax); - RUN_TEST(test_pmic_wdg_setCfg_prmValTest_rstThresholdMax); - RUN_TEST(test_pmic_wdg_setCfg_prmValTest_qaFdbkMax); - RUN_TEST(test_pmic_wdg_setCfg_prmValTest_qaLfsrMax); - RUN_TEST(test_pmic_wdg_setCfg_prmValTest_qaQuesSeedMax); - - RUN_TEST(test_pmic_wdg_getCfg_forallparams); - RUN_TEST(test_pmic_wdg_getCfg_prmValTest_handle); - RUN_TEST(test_pmic_wdg_getCfg_prmValTest_wdgcfgParam); - - RUN_TEST(test_pmic_wdg_enable_prmValTest_handle); - RUN_TEST(test_pmic_wdg_disable_prmValTest_handle); - - RUN_TEST(test_pmic_wdg_startQaSequence_prmValTest_handle); - RUN_TEST(test_pmic_wdg_startQaSequence); - RUN_TEST(test_pmic_wdg_startQaSequence_testFdbkValues); - RUN_TEST(test_pmic_wdg_startQaSequence_testLfsrValues); - RUN_TEST(test_pmic_wdg_startQaSequence_testQuesSeedValues); - - RUN_TEST(test_pmic_wdg_GetFailCount); - RUN_TEST(test_pmic_wdg_GetFailCount_prmValTest_handle); - RUN_TEST(test_pmic_wdg_GetFailCount_prmValTest_invFailCountParam); - - RUN_TEST(test_pmic_wdg_GetErrorStatus); - RUN_TEST(test_pmic_wdg_GetErrorStatus_prmValTest_handle); - RUN_TEST(test_pmic_wdg_GetErrorStatus_prmValTest_invErrStatParam); - -#if defined(ENABLE_SAMPLE_TESTCASES) - RUN_TEST(test_pmic_wdg_StartTriggerSequence); -#endif - - RUN_TEST(test_pmic_wdg_StartTriggerSequence_prmValTest_handle); - RUN_TEST(test_pmic_wdg_startQaSequence_prmValTest_maxCnt); - RUN_TEST(test_pmic_wdg_ClrErrorStatus); - RUN_TEST(test_pmic_wdg_ClrErrorStatus_prmValTest_handle); - RUN_TEST(test_pmic_wdg_ClrErrorStatus_prmValTest_wdgErrType); - - RUN_TEST(test_pmic_wdgQaSequenceWriteAnswer_startQaSequence); - RUN_TEST(test_pmic_wdgQaSeqWriteAns_testFdbkValues); - RUN_TEST(test_pmic_wdgQaSeqWriteAns_testLfsrValues); - RUN_TEST(test_pmic_wdgQaSeqWriteAns_testSeedValues); - - RUN_TEST(test_pmic_wdgsetCfg_longwin); - RUN_TEST(test_pmic_wdgsetCfg_prmValTest_longwinMin_2999ms); - RUN_TEST(test_pmic_wdg_StartTriggerSequence); - - RUN_TEST(test_pmic_wdgClrErrStatus_wdgErrType); - RUN_TEST(test_pmic_wdg_startQaSequence_answerEarlyErr); - pmic_updateTestResults(pmic_wdg_tests, PMIC_WDG_NUM_OF_TESTCASES); - - UNITY_END(); -} - -#if defined(SOC_J7200) -/*! - * \brief Run wdg unity test cases for slave device - */ -static void test_pmic_run_slave_device_testcases(void) -{ - pmic_log("\n\n%s(): %d: Begin Unity Test Cases...\n", __func__, __LINE__); - UNITY_BEGIN(); - - pmic_testResult_init(pmic_wdg_tests, PMIC_WDG_NUM_OF_TESTCASES); - - RUN_TEST(test_pmic_wdg_setCfg_forallparams); - RUN_TEST(test_pmic_wdg_setCfg_prmValTest_handle); - RUN_TEST(test_pmic_wdg_setCfg_prmValTest_longwinMin); - RUN_TEST(test_pmic_wdg_setCfg_prmValTest_longwinMax); - RUN_TEST(test_pmic_wdg_setCfg_prmValTest_win1Min); - RUN_TEST(test_pmic_wdg_setCfg_prmValTest_win1Max); - RUN_TEST(test_pmic_wdg_setCfg_prmValTest_win2Min); - RUN_TEST(test_pmic_wdg_setCfg_prmValTest_win2Max); - RUN_TEST(test_pmic_wdg_setCfg_prmValTest_failThresholdMax); - RUN_TEST(test_pmic_wdg_setCfg_prmValTest_rstThresholdMax); - RUN_TEST(test_pmic_wdg_setCfg_prmValTest_qaFdbkMax); - RUN_TEST(test_pmic_wdg_setCfg_prmValTest_qaLfsrMax); - RUN_TEST(test_pmic_wdg_setCfg_prmValTest_qaQuesSeedMax); - - RUN_TEST(test_pmic_wdg_getCfg_forallparams); - RUN_TEST(test_pmic_wdg_getCfg_prmValTest_handle); - RUN_TEST(test_pmic_wdg_getCfg_prmValTest_wdgcfgParam); - - RUN_TEST(test_pmic_wdg_enable_prmValTest_handle); - RUN_TEST(test_pmic_wdg_disable_prmValTest_handle); - - RUN_TEST(test_pmic_wdg_startQaSequence_prmValTest_handle); - - RUN_TEST(test_pmic_wdg_GetFailCount); - RUN_TEST(test_pmic_wdg_GetFailCount_prmValTest_handle); - RUN_TEST(test_pmic_wdg_GetFailCount_prmValTest_invFailCountParam); - - RUN_TEST(test_pmic_wdg_GetErrorStatus); - RUN_TEST(test_pmic_wdg_GetErrorStatus_prmValTest_handle); - RUN_TEST(test_pmic_wdg_GetErrorStatus_prmValTest_invErrStatParam); - - RUN_TEST(test_pmic_wdg_StartTriggerSequence_prmValTest_handle); - RUN_TEST(test_pmic_wdg_startQaSequence_prmValTest_maxCnt); - RUN_TEST(test_pmic_wdg_ClrErrorStatus_prmValTest_handle); - RUN_TEST(test_pmic_wdg_ClrErrorStatus_prmValTest_wdgErrType); - - pmic_updateTestResults(pmic_wdg_tests, PMIC_WDG_NUM_OF_TESTCASES); - - UNITY_END(); -} -#endif - -/*! - * \brief WDG Unity Test App wrapper Function for LEO PMIC-A - */ -static int32_t test_pmic_leo_pmicA_wdg_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_LEO_TPS6594X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_DUAL_I2C; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.i2c1Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C1_SPEED_VALID_SHIFT; - - pmicConfigData.i2c2Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C2_SPEED_VALID_SHIFT; - - if(J721E_LEO_PMICA_DEVICE == pmic_device_info) - { - pmicConfigData.slaveAddr = J721E_LEO_PMICA_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J721E_LEO_PMICA_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J721E_LEO_PMICA_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - - } - if(J7VCL_LEO_PMICA_DEVICE == pmic_device_info) - { - pmicConfigData.slaveAddr = J7VCL_LEO_PMICA_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J7VCL_LEO_PMICA_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J7VCL_LEO_PMICA_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - - } - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; -} - -#if defined(SOC_J721E) -/*! - * \brief WDG Unity Test App wrapper Function for LEO PMIC-A Single I2C - */ -static int32_t test_pmic_leo_pmicA_wdg_single_i2c_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_LEO_TPS6594X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_SINGLE_I2C; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.i2c1Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C1_SPEED_VALID_SHIFT; - - pmicConfigData.slaveAddr = J721E_LEO_PMICA_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J721E_LEO_PMICA_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J721E_LEO_PMICA_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; - -} -#endif - -/*! - * \brief WDG Unity Test App wrapper Function for HERA PMIC - */ -static int32_t test_pmic_hera_wdg_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_HERA_LP8764X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_SINGLE_I2C; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.i2c1Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C1_SPEED_VALID_SHIFT; - - pmicConfigData.slaveAddr = J7VCL_HERA_PMIC_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J7VCL_HERA_PMIC_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J7VCL_HERA_PMIC_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; - -} - -/*! - * \brief RTC Unity Test App wrapper Function for LEO PMIC-B - */ -static int32_t test_pmic_leo_pmicB_wdg_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_LEO_TPS6594X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_SINGLE_I2C; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.i2c1Speed = PMIC_I2C_STANDARD_MODE; - pmicConfigData.validParams |= PMIC_CFG_I2C1_SPEED_VALID_SHIFT; - - pmicConfigData.slaveAddr = J721E_LEO_PMICB_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_SLAVEADDR_VALID_SHIFT; - - pmicConfigData.qaSlaveAddr = J721E_LEO_PMICB_WDG_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_QASLAVEADDR_VALID_SHIFT; - - pmicConfigData.nvmSlaveAddr = J721E_LEO_PMICB_PAGE1_SLAVE_ADDR; - pmicConfigData.validParams |= PMIC_CFG_NVMSLAVEADDR_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; - -} - -/*! - * \brief WDG Unity Test App wrapper Function for LEO PMIC-A - */ -static int32_t test_pmic_leo_pmicA_spiStub_wdg_testApp(void) -{ - int32_t status = PMIC_ST_SUCCESS; - Pmic_CoreCfg_t pmicConfigData = {0U}; - - /* Fill parameters to pmicConfigData */ - pmicConfigData.pmicDeviceType = PMIC_DEV_LEO_TPS6594X; - pmicConfigData.validParams |= PMIC_CFG_DEVICE_TYPE_VALID_SHIFT; - - pmicConfigData.commMode = PMIC_INTF_SPI; - pmicConfigData.validParams |= PMIC_CFG_COMM_MODE_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoRead = test_pmic_regRead; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_RD_VALID_SHIFT; - - pmicConfigData.pFnPmicCommIoWrite = test_pmic_regWrite; - pmicConfigData.validParams |= PMIC_CFG_COMM_IO_WR_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStart = test_pmic_criticalSectionStartFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_START_VALID_SHIFT; - - pmicConfigData.pFnPmicCritSecStop = test_pmic_criticalSectionStopFn; - pmicConfigData.validParams |= PMIC_CFG_CRITSEC_STOP_VALID_SHIFT; - - status = test_pmic_appInit(&pPmicCoreHandle, &pmicConfigData); - return status; -} - -static int32_t setup_pmic_interrupt(uint32_t board) -{ - int32_t status = PMIC_ST_SUCCESS; - - if(J721E_BOARD == board) - { - if(PMIC_STATUS_CRC_INIT_VAL == gCrcTestFlag_J721E) - { - gCrcTestFlag_J721E = PMIC_CFG_TO_ENABLE_CRC; - } - - pmic_device_info = J721E_LEO_PMICA_DEVICE; - status = test_pmic_leo_pmicA_wdg_testApp(); - /* Deinit pmic handle */ - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - - if(PMIC_ST_SUCCESS == status) - { - pmic_device_info = J721E_LEO_PMICB_DEVICE; - status = test_pmic_leo_pmicB_wdg_testApp(); - /* Deinit pmic handle */ - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } - } - else if(J7VCL_BOARD == board) - { - if(PMIC_STATUS_CRC_INIT_VAL == gCrcTestFlag_J7VCL) - { - gCrcTestFlag_J7VCL = PMIC_CFG_TO_ENABLE_CRC; - } - - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - status = test_pmic_leo_pmicA_wdg_testApp(); - /* Deinit pmic handle */ - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - - if(PMIC_ST_SUCCESS == status) - { - pmic_device_info = J7VCL_HERA_PMICB_DEVICE; - status = test_pmic_hera_wdg_testApp(); - /* Deinit pmic handle */ - if((pPmicCoreHandle != NULL) && (PMIC_ST_SUCCESS == status)) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } - } - else - { - status = PMIC_ST_ERR_INV_DEVICE; - } - return status; -} - -static const char pmicTestMenu[] = -{ - " \r\n =================================================================" - " \r\n Test Menu:" - " \r\n =================================================================" - " \r\n 0: Automatic run for all board specific WDG options" - " \r\n 1: Manual run for WDG options" - " \r\n 2: quit" - " \r\n" - " \r\n Enter option: " -}; - -volatile static const char pmicTestAppMenu[] = -{ - " \r\n =================================================================" - " \r\n Menu:" - " \r\n =================================================================" - " \r\n 0: Pmic Leo device with Dual I2C(PMIC-A on J721E EVM)" - " \r\n 1: Pmic Leo device with Single I2C(PMIC-A on J721E EVM)" - " \r\n 2: Pmic Leo device with Dual I2C(PMIC-A on J7VCL EVM)" - " \r\n 3: Pmic Hera device with Single I2C(PMIC-B on J7VCL EVM)" - " \r\n 4: Pmic Leo device with SPI Stub Functions(PMIC-A on J721E EVM)" - " \r\n 5: Pmic Leo device with SPI Stub Functions(PMIC-A on J7VCL EVM)" - " \r\n 6: Pmic Leo Manual test for WDG RST INT and WDG LONGWIN TIMEOUT INT(PMIC-A on J721E EVM)" - " \r\n 7: Pmic Leo Manual test for WDG RST INT and WDG LONGWIN TIMEOUT INT(PMIC-A on J7VCL EVM)" - " \r\n 8: Pmic Leo Manual test for WDG Dynamic code coverage(PMIC-A on J721E EVM)" - " \r\n 9: Pmic Leo Manual test for WDG Dynamic code coverage(PMIC-A on J7VCL EVM)" - " \r\n 10: Back to Test Menu" - " \r\n" - " \r\n Enter option: " -}; - - -static void test_pmic_wdg_testapp_run_options(int8_t option) -{ - int8_t num = -1; - int8_t idx = 0; -#if defined(SOC_J721E) - int8_t automatic_options[] = {0, 1, 4}; -#elif defined(SOC_J7200) - int8_t automatic_options[] = {2, 3, 5}; -#endif - - while(1U) - { - if(idx >= (sizeof(automatic_options)/sizeof(automatic_options[0]))) - { - pmic_printTestResult(pmic_wdg_tests, PMIC_WDG_NUM_OF_TESTCASES); - } - pmic_log("%s", pmicTestAppMenu); - if(option == PMIC_UT_AUTOMATE_OPTION) - { - if(idx < (sizeof(automatic_options)/sizeof(automatic_options[0]))) - { - num = automatic_options[idx++]; - } - else - { - num = 10; - } - pmic_log("%d\n", num); - } - else - { - if(UART_scanFmt("%d", &num) != 0U) - { - pmic_log("Read from UART Console failed\n"); - return; - } - } - - switch(num) - { - case 0U: -#if defined(SOC_J721E) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J721E_BOARD)) - { - pmic_device_info = J721E_LEO_PMICA_DEVICE; - - /* WDG Unity Test App wrapper Function for LEO PMIC-A */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_wdg_testApp()) - { - /* Run WDG test cases for Leo PMIC-A */ - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 1U: -#if defined(SOC_J721E) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J721E_BOARD)) - { - pmic_device_info = J721E_LEO_PMICA_DEVICE; - - /* WDG Unity Test App wrapper Function for LEO PMIC-A */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_wdg_single_i2c_testApp()) - { - /* Run WDG test cases for Leo PMIC-A using Single I2C */ - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 2U: -#if defined(SOC_J7200) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J7VCL_BOARD)) - { - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - - /* WDG Unity Test App wrapper Function for LEO PMIC-A */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_wdg_testApp()) - { - /* Run WDG test cases for Leo PMIC-A */ - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 3U: -#if defined(SOC_J7200) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J7VCL_BOARD)) - { - pmic_device_info = J7VCL_HERA_PMICB_DEVICE; - - /* WDG Unity Test App wrapper Function for HERA PMIC */ - if(PMIC_ST_SUCCESS == test_pmic_hera_wdg_testApp()) - { - /* Run wdg test cases for Hera PMIC as slave device */ - test_pmic_run_slave_device_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 4U: -#if defined(SOC_J721E) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J721E_BOARD)) - { - pmic_device_info = J721E_LEO_PMICA_DEVICE; - - /* WDG Unity Test App wrapper Function for LEO PMIC-A - * using SPI stub functions */ - if(PMIC_ST_SUCCESS == - test_pmic_leo_pmicA_spiStub_wdg_testApp()) - { - /* Run wdg test cases for Leo PMIC-A */ - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 5U: -#if defined(SOC_J7200) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J7VCL_BOARD)) - { - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - /* WDG Unity Test App wrapper Function for LEO PMIC-A - * using SPI stub functions */ - if(PMIC_ST_SUCCESS == - test_pmic_leo_pmicA_spiStub_wdg_testApp()) - { - /* Run wdg test cases for Leo PMIC-A */ - test_pmic_run_testcases(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 6U: -#if defined(SOC_J721E) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J721E_BOARD)) - { - pmic_device_info = J721E_LEO_PMICA_DEVICE; - - /* WDG Unity Test App wrapper Function for LEO PMIC-A */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_wdg_single_i2c_testApp()) - { - /* Run WDG test cases for Leo PMIC-A using Single I2C */ - test_pmic_wdgQaSequenceWriteAnswer_RstIntLongWinTimeoutInt(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 7U: -#if defined(SOC_J7200) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J7VCL_BOARD)) - { - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - - /* WDG Unity Test App wrapper Function for LEO PMIC-A */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_wdg_testApp()) - { - /* Run WDG test cases for Leo PMIC-A */ - test_pmic_wdgQaSequenceWriteAnswer_RstIntLongWinTimeoutInt(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - break; - case 8U: -#if defined(SOC_J721E) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J721E_BOARD)) - { - pmic_device_info = J721E_LEO_PMICA_DEVICE; - - /* WDG Unity Test App wrapper Function for LEO PMIC-A */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_wdg_testApp()) - { - /* Run WDG test cases for Leo PMIC-A using Single I2C */ - test_pmic_wdg_coverageGaps(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - return; - case 9U: -#if defined(SOC_J7200) - if(PMIC_ST_SUCCESS == setup_pmic_interrupt(J7VCL_BOARD)) - { - pmic_device_info = J7VCL_LEO_PMICA_DEVICE; - - /* WDG Unity Test App wrapper Function for LEO PMIC-A */ - if(PMIC_ST_SUCCESS == test_pmic_leo_pmicA_wdg_testApp()) - { - /* Run WDG test cases for Leo PMIC-A */ - test_pmic_wdg_coverageGaps(); - } - /* Deinit pmic handle */ - if(pPmicCoreHandle != NULL) - { - test_pmic_appDeInit(pPmicCoreHandle); - } - } -#else - pmic_log("\nInvalid Board!!!\n"); -#endif - return; - case 10U: - pmic_log(" \r\n Back to Test Menu options\n"); - return; - default: - pmic_log(" \r\n Invalid option... Try Again!!!\n"); - break; - } - } -} - - -/*! - * \brief Function to register WDG Unity Test App wrapper to Unity framework - */ -static void test_pmic_wdg_testapp_runner(void) -{ - /* @description : Test runner for wdg Test App - * - * @requirements: PDK-5813, PDK-5810, PDK-5805, PDK-5807, PDK-5854, PDK-5839 - * - * @cores : mcu1_0, mcu1_1 - */ - - int8_t option = -1; - - while(1U) - { - pmic_log("%s", pmicTestMenu); - if(UART_scanFmt("%d", &option) != 0U) - { - pmic_log("Read from UART Console failed\n"); - return; - } - - switch(option) - { - case PMIC_UT_AUTOMATE_OPTION: - test_pmic_wdg_testapp_run_options(PMIC_UT_AUTOMATE_OPTION); - break; - case PMIC_UT_MANUAL_OPTION: - test_pmic_wdg_testapp_run_options(PMIC_UT_MANUAL_OPTION); - break; - case 2U: - pmic_log(" \r\n Quit from application\n"); - return; - default: - pmic_log(" \r\n Invalid option... Try Again!!!\n"); - break; - } - } -} -#endif - -/*! - * \brief TI RTOS specific WDG TEST APP main Function - * - * \retval PMIC_ST_SUCCESS in case of success or appropriate error code. - * For valid values see \ref Pmic_ErrorCodes - */ -int main() -{ - Board_initUART(); - - pmic_print_banner("PMIC Watchdog Unity Test Application"); - -#if defined(UNITY_INCLUDE_CONFIG_V2_H) && \ - (defined(SOC_J721E) || \ - defined(SOC_J7200)) - test_pmic_wdg_testapp_runner(); -#endif -} diff --git a/test/wdg_test/pmic_ut_wdg.h b/test/wdg_test/pmic_ut_wdg.h deleted file mode 100644 index 57f5677..0000000 --- a/test/wdg_test/pmic_ut_wdg.h +++ /dev/null @@ -1,84 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *****************************************************************************/ -/** - * \file pmic_ut_wdg.h - * - * \brief Header file for PMIC WDG Unit Tests - * - */ - -#include - -/*! - * \brief PMIC WDG Valid Params configuration for all - */ -#define PMIC_WDG_CFG_SETPARAMS_FORALL \ - (PMIC_CFG_WDG_LONGWINDURATION_VALID_SHIFT | \ - PMIC_CFG_WDG_WIN1DURATION_VALID_SHIFT | \ - PMIC_CFG_WDG_WIN2DURATION_VALID_SHIFT | \ - PMIC_CFG_WDG_FAILTHRESHOLD_VALID_SHIFT | \ - PMIC_CFG_WDG_RSTTHRESHOLD_VALID_SHIFT | \ - PMIC_CFG_WDG_RSTENABLE_VALID_SHIFT | \ - PMIC_CFG_WDG_WDGMODE_VALID_SHIFT | \ - PMIC_CFG_WDG_PWRHOLD_VALID_SHIFT | \ - PMIC_CFG_WDG_RETLONGWIN_VALID_SHIFT | \ - PMIC_CFG_WDG_QA_FDBK_VALID_SHIFT | \ - PMIC_CFG_WDG_QA_LFSR_VALID_SHIFT | \ - PMIC_CFG_WDG_QA_QUES_SEED_VALID_SHIFT) - -/*! - * \brief Numbers of WDG testcases - */ -#define PMIC_WDG_NUM_OF_TESTCASES \ - (sizeof(pmic_wdg_tests)/sizeof(pmic_wdg_tests[0])) - -/*! - * \brief PMIC WDG Valid Params configuration for all error status - */ -#define PMIC_CFG_WD_ALL_ERRSTAT_VALID_PARAMS \ - (PMIC_CFG_WD_LONGWIN_TIMEOUT_ERRSTAT_VALID_SHIFT | \ - PMIC_CFG_WD_TIMEOUT_ERRSTAT_VALID_SHIFT | \ - PMIC_CFG_WD_TRIG_EARLY_ERRSTAT_VALID_SHIFT | \ - PMIC_CFG_WD_ANSW_EARLY_ERRSTAT_VALID_SHIFT | \ - PMIC_CFG_WD_SEQ_ERR_ERRSTAT_VALID_SHIFT | \ - PMIC_CFG_WD_ANSW_ERR_ERRSTAT_VALID_SHIFT | \ - PMIC_CFG_WD_FAIL_INT_ERRSTAT_VALID_SHIFT | \ - PMIC_CFG_WD_RST_INT_ERRSTAT_VALID_SHIFT) - -/*! - * \brief PMIC WDG Valid Params configuration for all Fail Count status - */ -#define PMIC_CFG_WD_ALL_FAILCNTSTAT_VALID_PARAMS \ - (PMIC_CFG_WD_BAD_EVENT_STAT_VALID_SHIFT | \ - PMIC_CFG_WD_GOOD_EVENT_STAT_VALID_SHIFT | \ - PMIC_CFG_WD_FAIL_CNT_VAL_VALID_SHIFT)

    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

    +PLaZt=>v7BCZ-&nfyrclz@ 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%0A5v!-h< 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�W*$-3pid4*3`-X5Ov@sOf-0(y;3EEeF?aQ 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