1 // SPDX-License-Identifier: GPL-2.0+ 2 /* 3 * Copyright (c) 2015 Google, Inc 4 * Written by Simon Glass <sjg@chromium.org> 5 */ 6 7 #include <common.h> 8 #include <dm.h> 9 #include <pch.h> 10 11 int pch_get_spi_base(struct udevice *dev, ulong *sbasep) 12 { 13 struct pch_ops *ops = pch_get_ops(dev); 14 15 *sbasep = 0; 16 if (!ops->get_spi_base) 17 return -ENOSYS; 18 19 return ops->get_spi_base(dev, sbasep); 20 } 21 22 int pch_set_spi_protect(struct udevice *dev, bool protect) 23 { 24 struct pch_ops *ops = pch_get_ops(dev); 25 26 if (!ops->set_spi_protect) 27 return -ENOSYS; 28 29 return ops->set_spi_protect(dev, protect); 30 } 31 32 int pch_get_gpio_base(struct udevice *dev, u32 *gbasep) 33 { 34 struct pch_ops *ops = pch_get_ops(dev); 35 36 *gbasep = 0; 37 if (!ops->get_gpio_base) 38 return -ENOSYS; 39 40 return ops->get_gpio_base(dev, gbasep); 41 } 42 43 int pch_get_io_base(struct udevice *dev, u32 *iobasep) 44 { 45 struct pch_ops *ops = pch_get_ops(dev); 46 47 *iobasep = 0; 48 if (!ops->get_io_base) 49 return -ENOSYS; 50 51 return ops->get_io_base(dev, iobasep); 52 } 53 54 int pch_ioctl(struct udevice *dev, ulong req, void *data, int size) 55 { 56 struct pch_ops *ops = pch_get_ops(dev); 57 58 if (!ops->ioctl) 59 return -ENOSYS; 60 61 return ops->ioctl(dev, req, data, size); 62 } 63 64 UCLASS_DRIVER(pch) = { 65 .id = UCLASS_PCH, 66 .name = "pch", 67 .post_bind = dm_scan_fdt_dev, 68 }; 69