/* * Copyright (c) 2025 Microchip Technology Inc. * * SPDX-License-Identifier: Apache-2.0 */ #include #include /* Pin configuration for test device */ #define TEST_DEVICE DT_NODELABEL(test_device) PINCTRL_DT_DEV_CONFIG_DECLARE(TEST_DEVICE); static const struct pinctrl_dev_config *pcfg = PINCTRL_DT_DEV_CONFIG_GET(TEST_DEVICE); #define MCHP_PINCTRL_FLAG_GET(pincfg, pos) (((pincfg.pinflag) >> pos) & MCHP_PINCTRL_FLAG_MASK) ZTEST(pinctrl_mchp, test_pullup_pulldown_none) { const struct pinctrl_state *scfg; scfg = &pcfg->states[0]; zassert_equal(MCHP_PINCTRL_FLAG_GET(scfg->pins[0], MCHP_PINCTRL_PULLUP_POS), 0); zassert_equal(MCHP_PINCTRL_FLAG_GET(scfg->pins[0], MCHP_PINCTRL_PULLDOWN_POS), 0); zassert_equal(MCHP_PINCTRL_FLAG_GET(scfg->pins[1], MCHP_PINCTRL_PULLUP_POS), 0); zassert_equal(MCHP_PINCTRL_FLAG_GET(scfg->pins[1], MCHP_PINCTRL_PULLDOWN_POS), 0); } ZTEST(pinctrl_mchp, test_pullup) { const struct pinctrl_state *scfg; scfg = &pcfg->states[0]; zassert_equal(MCHP_PINCTRL_FLAG_GET(scfg->pins[2], MCHP_PINCTRL_PULLUP_POS), 1); } ZTEST(pinctrl_mchp, test_pulldown) { const struct pinctrl_state *scfg; scfg = &pcfg->states[0]; zassert_equal(MCHP_PINCTRL_FLAG_GET(scfg->pins[3], MCHP_PINCTRL_PULLDOWN_POS), 1); } ZTEST(pinctrl_mchp, test_input_output_enable) { const struct pinctrl_state *scfg; scfg = &pcfg->states[0]; zassert_equal(MCHP_PINCTRL_FLAG_GET(scfg->pins[4], MCHP_PINCTRL_INPUTENABLE_POS), 1); zassert_equal(MCHP_PINCTRL_FLAG_GET(scfg->pins[4], MCHP_PINCTRL_OUTPUTENABLE_POS), 1); } #if defined(CONFIG_TEST_PINCTRL_MCHP_SAM) ZTEST(pinctrl_mchp, test_drive_strength) { const struct pinctrl_state *scfg; scfg = &pcfg->states[0]; zassert_equal(MCHP_PINCTRL_FLAG_GET(scfg->pins[5], MCHP_PINCTRL_DRIVESTRENGTH_POS), 1); } #endif ZTEST(pinctrl_mchp, test_apply_state) { int ret; ret = pinctrl_apply_state(pcfg, PINCTRL_STATE_DEFAULT); zassert_equal(ret, 0); } ZTEST_SUITE(pinctrl_mchp, NULL, NULL, NULL, NULL, NULL);