mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-20 17:08:52 +09:00
![Simon Glass](/assets/img/avatar_default.png)
At present the PCH has 4 operations and these are reasonably widely used in the drivers. But sometimes we want to add rarely used operations, and each of these currently adds to the size of the PCH operations table. Add an ioctl() method which can be easily expanded without any more impact on the operations table. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
69 lines
1.2 KiB
C
69 lines
1.2 KiB
C
// SPDX-License-Identifier: GPL-2.0+
|
|
/*
|
|
* Copyright (c) 2015 Google, Inc
|
|
* Written by Simon Glass <sjg@chromium.org>
|
|
*/
|
|
|
|
#include <common.h>
|
|
#include <dm.h>
|
|
#include <pch.h>
|
|
|
|
int pch_get_spi_base(struct udevice *dev, ulong *sbasep)
|
|
{
|
|
struct pch_ops *ops = pch_get_ops(dev);
|
|
|
|
*sbasep = 0;
|
|
if (!ops->get_spi_base)
|
|
return -ENOSYS;
|
|
|
|
return ops->get_spi_base(dev, sbasep);
|
|
}
|
|
|
|
int pch_set_spi_protect(struct udevice *dev, bool protect)
|
|
{
|
|
struct pch_ops *ops = pch_get_ops(dev);
|
|
|
|
if (!ops->set_spi_protect)
|
|
return -ENOSYS;
|
|
|
|
return ops->set_spi_protect(dev, protect);
|
|
}
|
|
|
|
int pch_get_gpio_base(struct udevice *dev, u32 *gbasep)
|
|
{
|
|
struct pch_ops *ops = pch_get_ops(dev);
|
|
|
|
*gbasep = 0;
|
|
if (!ops->get_gpio_base)
|
|
return -ENOSYS;
|
|
|
|
return ops->get_gpio_base(dev, gbasep);
|
|
}
|
|
|
|
int pch_get_io_base(struct udevice *dev, u32 *iobasep)
|
|
{
|
|
struct pch_ops *ops = pch_get_ops(dev);
|
|
|
|
*iobasep = 0;
|
|
if (!ops->get_io_base)
|
|
return -ENOSYS;
|
|
|
|
return ops->get_io_base(dev, iobasep);
|
|
}
|
|
|
|
int pch_ioctl(struct udevice *dev, ulong req, void *data, int size)
|
|
{
|
|
struct pch_ops *ops = pch_get_ops(dev);
|
|
|
|
if (!ops->ioctl)
|
|
return -ENOSYS;
|
|
|
|
return ops->ioctl(dev, req, data, size);
|
|
}
|
|
|
|
UCLASS_DRIVER(pch) = {
|
|
.id = UCLASS_PCH,
|
|
.name = "pch",
|
|
.post_bind = dm_scan_fdt_dev,
|
|
};
|