power: pmic: add SPL_DM_PMIC_PCA9450 symbol to Kconfig
[platform/kernel/u-boot.git] / drivers / pch / sandbox_pch.c
1 // SPDX-License-Identifier: GPL-2.0+
2 /*
3  * Copyright 2018 Google LLC
4  */
5
6 #include <common.h>
7 #include <dm.h>
8 #include <pch.h>
9
10 struct sandbox_pch_priv {
11         bool protect;
12 };
13
14 int sandbox_get_pch_spi_protect(struct udevice *dev)
15 {
16         struct sandbox_pch_priv *priv = dev_get_priv(dev);
17
18         return priv->protect;
19 }
20
21 static int sandbox_pch_get_spi_base(struct udevice *dev, ulong *sbasep)
22 {
23         *sbasep = 0x10;
24
25         return 0;
26 }
27
28 static int sandbox_pch_set_spi_protect(struct udevice *dev, bool protect)
29 {
30         struct sandbox_pch_priv *priv = dev_get_priv(dev);
31
32         priv->protect = protect;
33
34         return 0;
35 }
36
37 static int sandbox_pch_get_gpio_base(struct udevice *dev, u32 *gbasep)
38 {
39         *gbasep = 0x20;
40
41         return 0;
42 }
43
44 static int sandbox_pch_get_io_base(struct udevice *dev, u32 *iobasep)
45 {
46         *iobasep = 0x30;
47
48         return 0;
49 }
50
51 int sandbox_pch_ioctl(struct udevice *dev, enum pch_req_t req, void *data,
52                       int size)
53 {
54         switch (req) {
55         case PCH_REQ_TEST1:
56                 return -ENOSYS;
57         case PCH_REQ_TEST2:
58                 return *(char *)data;
59         case PCH_REQ_TEST3:
60                 *(char *)data = 'x';
61                 return 1;
62         default:
63                 return -ENOSYS;
64         }
65 }
66
67 static const struct pch_ops sandbox_pch_ops = {
68         .get_spi_base   = sandbox_pch_get_spi_base,
69         .set_spi_protect = sandbox_pch_set_spi_protect,
70         .get_gpio_base  = sandbox_pch_get_gpio_base,
71         .get_io_base = sandbox_pch_get_io_base,
72         .ioctl          = sandbox_pch_ioctl,
73 };
74
75 static const struct udevice_id sandbox_pch_ids[] = {
76         { .compatible = "sandbox,pch" },
77         { }
78 };
79
80 U_BOOT_DRIVER(sandbox_pch_drv) = {
81         .name           = "sandbox-pch",
82         .id             = UCLASS_PCH,
83         .of_match       = sandbox_pch_ids,
84         .ops            = &sandbox_pch_ops,
85         .priv_auto_alloc_size   = sizeof(struct sandbox_pch_priv),
86 };