"Das U-Boot" Source Tree
at master 83 lines 2.2 kB view raw
1// SPDX-License-Identifier: GPL-2.0+ 2/* 3 * Copyright (C) 2015 Google, Inc 4 */ 5 6#include <dm.h> 7#include <log.h> 8#include <syscon.h> 9#include <regmap.h> 10#include <asm/test.h> 11#include <dm/test.h> 12#include <linux/err.h> 13#include <test/test.h> 14#include <test/ut.h> 15 16/* Base test of system controllers */ 17static int dm_test_syscon_base(struct unit_test_state *uts) 18{ 19 struct udevice *dev; 20 21 ut_assertok(uclass_get_device(UCLASS_SYSCON, 0, &dev)); 22 ut_asserteq(SYSCON0, dev->driver_data); 23 24 ut_assertok(uclass_get_device(UCLASS_SYSCON, 1, &dev)); 25 ut_asserteq(SYSCON1, dev->driver_data); 26 27 ut_asserteq(-ENODEV, uclass_get_device(UCLASS_SYSCON, 2, &dev)); 28 29 return 0; 30} 31DM_TEST(dm_test_syscon_base, UTF_SCAN_PDATA | UTF_SCAN_FDT); 32 33/* Test system controller finding */ 34static int dm_test_syscon_by_driver_data(struct unit_test_state *uts) 35{ 36 struct udevice *dev; 37 38 ut_assertok(syscon_get_by_driver_data(SYSCON0, &dev)); 39 ut_asserteq(SYSCON0, dev->driver_data); 40 41 ut_assertok(syscon_get_by_driver_data(SYSCON1, &dev)); 42 ut_asserteq(SYSCON1, dev->driver_data); 43 44 ut_asserteq(-ENODEV, syscon_get_by_driver_data(2, &dev)); 45 46 return 0; 47} 48DM_TEST(dm_test_syscon_by_driver_data, UTF_SCAN_PDATA | UTF_SCAN_FDT); 49 50/* Test system controller by phandle */ 51static int dm_test_syscon_by_phandle(struct unit_test_state *uts) 52{ 53 struct udevice *dev; 54 struct regmap *map; 55 56 ut_assertok(uclass_get_device_by_name(UCLASS_TEST_PROBE, "test4", 57 &dev)); 58 59 ut_assertok_ptr(syscon_regmap_lookup_by_phandle(dev, "first-syscon")); 60 map = syscon_regmap_lookup_by_phandle(dev, "first-syscon"); 61 ut_assert(map); 62 ut_assert(!IS_ERR(map)); 63 ut_asserteq(1, map->range_count); 64 65 ut_assertok_ptr(syscon_regmap_lookup_by_phandle(dev, 66 "second-sys-ctrl")); 67 map = syscon_regmap_lookup_by_phandle(dev, "second-sys-ctrl"); 68 ut_assert(map); 69 ut_assert(!IS_ERR(map)); 70 ut_asserteq(4, map->range_count); 71 72 ut_assertok_ptr(syscon_regmap_lookup_by_phandle(dev, 73 "third-syscon")); 74 map = syscon_regmap_lookup_by_phandle(dev, "third-syscon"); 75 ut_assert(map); 76 ut_assert(!IS_ERR(map)); 77 ut_asserteq(4, map->range_count); 78 79 ut_assert(IS_ERR(syscon_regmap_lookup_by_phandle(dev, "not-present"))); 80 81 return 0; 82} 83DM_TEST(dm_test_syscon_by_phandle, UTF_SCAN_PDATA | UTF_SCAN_FDT);