Lines Matching refs:td
363 static uint32_t pwm_read(QTestState *qts, const TestData *td, unsigned offset) in pwm_read() argument
365 return qtest_readl(qts, td->module->base_addr + offset); in pwm_read()
368 static void pwm_write(QTestState *qts, const TestData *td, unsigned offset, in pwm_write() argument
371 qtest_writel(qts, td->module->base_addr + offset, value); in pwm_write()
396 static uint32_t pwm_read_ppr(QTestState *qts, const TestData *td) in pwm_read_ppr() argument
398 return extract32(pwm_read(qts, td, PPR), ppr_base[pwm_index(td->pwm)], 8); in pwm_read_ppr()
401 static void pwm_write_ppr(QTestState *qts, const TestData *td, uint32_t value) in pwm_write_ppr() argument
403 pwm_write(qts, td, PPR, value << ppr_base[pwm_index(td->pwm)]); in pwm_write_ppr()
406 static uint32_t pwm_read_csr(QTestState *qts, const TestData *td) in pwm_read_csr() argument
408 return extract32(pwm_read(qts, td, CSR), csr_base[pwm_index(td->pwm)], 3); in pwm_read_csr()
411 static void pwm_write_csr(QTestState *qts, const TestData *td, uint32_t value) in pwm_write_csr() argument
413 pwm_write(qts, td, CSR, value << csr_base[pwm_index(td->pwm)]); in pwm_write_csr()
416 static uint32_t pwm_read_pcr(QTestState *qts, const TestData *td) in pwm_read_pcr() argument
418 return extract32(pwm_read(qts, td, PCR), pcr_base[pwm_index(td->pwm)], 4); in pwm_read_pcr()
421 static void pwm_write_pcr(QTestState *qts, const TestData *td, uint32_t value) in pwm_write_pcr() argument
423 pwm_write(qts, td, PCR, value << pcr_base[pwm_index(td->pwm)]); in pwm_write_pcr()
426 static uint32_t pwm_read_cnr(QTestState *qts, const TestData *td) in pwm_read_cnr() argument
428 return pwm_read(qts, td, td->pwm->cnr_offset); in pwm_read_cnr()
431 static void pwm_write_cnr(QTestState *qts, const TestData *td, uint32_t value) in pwm_write_cnr() argument
433 pwm_write(qts, td, td->pwm->cnr_offset, value); in pwm_write_cnr()
436 static uint32_t pwm_read_cmr(QTestState *qts, const TestData *td) in pwm_read_cmr() argument
438 return pwm_read(qts, td, td->pwm->cmr_offset); in pwm_read_cmr()
441 static void pwm_write_cmr(QTestState *qts, const TestData *td, uint32_t value) in pwm_write_cmr() argument
443 pwm_write(qts, td, td->pwm->cmr_offset, value); in pwm_write_cmr()
446 static int mft_compute_index(const TestData *td) in mft_compute_index() argument
448 int index = pwm_module_index(td->module) * ARRAY_SIZE(pwm_list) + in mft_compute_index()
449 pwm_index(td->pwm); in mft_compute_index()
467 static void mft_init(QTestState *qts, const TestData *td) in mft_init() argument
469 int index = mft_compute_index(td); in mft_init()
506 static void mft_verify_rpm(QTestState *qts, const TestData *td, uint64_t duty) in mft_verify_rpm() argument
508 int index = mft_compute_index(td); in mft_verify_rpm()
557 const TestData *td = test_data; in test_init() local
559 int module = pwm_module_index(td->module); in test_init()
560 int pwm = pwm_index(td->pwm); in test_init()
571 const TestData *td = test_data; in test_oneshot() local
573 int module = pwm_module_index(td->module); in test_oneshot()
574 int pwm = pwm_index(td->pwm); in test_oneshot()
581 pwm_write_ppr(qts, td, ppr); in test_oneshot()
585 pwm_write_csr(qts, td, csr); in test_oneshot()
586 pwm_write_pcr(qts, td, pcr); in test_oneshot()
588 g_assert_cmpuint(pwm_read_ppr(qts, td), ==, ppr); in test_oneshot()
589 g_assert_cmpuint(pwm_read_csr(qts, td), ==, csr); in test_oneshot()
590 g_assert_cmpuint(pwm_read_pcr(qts, td), ==, pcr); in test_oneshot()
602 const TestData *td = test_data; in test_toggle() local
604 int module = pwm_module_index(td->module); in test_toggle()
605 int pwm = pwm_index(td->pwm); in test_toggle()
611 mft_init(qts, td); in test_toggle()
616 pwm_write_ppr(qts, td, ppr); in test_toggle()
620 pwm_write_csr(qts, td, csr); in test_toggle()
624 pwm_write_cnr(qts, td, cnr); in test_toggle()
628 pwm_write_cmr(qts, td, cmr); in test_toggle()
632 pwm_write_pcr(qts, td, pcr); in test_toggle()
633 g_assert_cmpuint(pwm_read_ppr(qts, td), ==, ppr); in test_toggle()
634 g_assert_cmpuint(pwm_read_csr(qts, td), ==, csr); in test_toggle()
635 g_assert_cmpuint(pwm_read_pcr(qts, td), ==, pcr); in test_toggle()
636 g_assert_cmpuint(pwm_read_cnr(qts, td), ==, cnr); in test_toggle()
637 g_assert_cmpuint(pwm_read_cmr(qts, td), ==, cmr); in test_toggle()
647 mft_verify_rpm(qts, td, expected_duty); in test_toggle()
651 pwm_write_pcr(qts, td, pcr | CH_INV); in test_toggle()
652 g_assert_cmpuint(pwm_read_pcr(qts, td), ==, pcr | CH_INV); in test_toggle()
669 static void pwm_add_test(const char *name, const TestData* td, in pwm_add_test() argument
673 "npcm7xx_pwm/module[%d]/pwm[%d]/%s", pwm_module_index(td->module), in pwm_add_test()
674 pwm_index(td->pwm), name); in pwm_add_test()
675 qtest_add_data_func(full_name, td, fn); in pwm_add_test()
677 #define add_test(name, td) pwm_add_test(#name, td, test_##name) argument
699 TestData *td = &test_data_list[i * ARRAY_SIZE(pwm_list) + j]; in main() local
701 td->module = &pwm_module_list[i]; in main()
702 td->pwm = &pwm_list[j]; in main()
704 add_test(init, td); in main()
705 add_test(oneshot, td); in main()
706 add_test(toggle, td); in main()