Re: [U-Boot] [PATCH v2 17/34] sandbox: pch: Add a test for the PCH uclass

2019-02-19 Thread Simon Glass
On Mon, 18 Feb 2019 at 02:46, Bin Meng  wrote:
>
> Hi Simon,
>
> On Sun, Feb 17, 2019 at 11:26 AM Simon Glass  wrote:
> >
> > This uclass currently has no tests. Add a sandbox driver and some simple
> > tests to provide basic coverage.
> >
> > Signed-off-by: Simon Glass 
> > Reviewed-by: Bin Meng 
> > ---
> >
> > Changes in v2:
> > - Use "sandbox-pch" for the compatible string, for consistency
>
> I think it should be "sandbox,pch" instead. If you agree, I can fix
> this when applying.

That's fine with me, it is more consistent with what we have.


>
> >
> >  arch/sandbox/dts/test.dts   |  4 ++
> >  arch/sandbox/include/asm/test.h |  8 
> >  drivers/pch/Makefile|  1 +
> >  drivers/pch/sandbox_pch.c   | 69 +
> >  test/dm/Makefile|  1 +
> >  test/dm/pch.c   | 36 +
> >  6 files changed, 119 insertions(+)
> >  create mode 100644 drivers/pch/sandbox_pch.c
> >  create mode 100644 test/dm/pch.c
> >
>
> Regards,
> Bin
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH v2 17/34] sandbox: pch: Add a test for the PCH uclass

2019-02-18 Thread Bin Meng
Hi Simon,

On Sun, Feb 17, 2019 at 11:26 AM Simon Glass  wrote:
>
> This uclass currently has no tests. Add a sandbox driver and some simple
> tests to provide basic coverage.
>
> Signed-off-by: Simon Glass 
> Reviewed-by: Bin Meng 
> ---
>
> Changes in v2:
> - Use "sandbox-pch" for the compatible string, for consistency

I think it should be "sandbox,pch" instead. If you agree, I can fix
this when applying.

>
>  arch/sandbox/dts/test.dts   |  4 ++
>  arch/sandbox/include/asm/test.h |  8 
>  drivers/pch/Makefile|  1 +
>  drivers/pch/sandbox_pch.c   | 69 +
>  test/dm/Makefile|  1 +
>  test/dm/pch.c   | 36 +
>  6 files changed, 119 insertions(+)
>  create mode 100644 drivers/pch/sandbox_pch.c
>  create mode 100644 test/dm/pch.c
>

Regards,
Bin
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


[U-Boot] [PATCH v2 17/34] sandbox: pch: Add a test for the PCH uclass

2019-02-16 Thread Simon Glass
This uclass currently has no tests. Add a sandbox driver and some simple
tests to provide basic coverage.

Signed-off-by: Simon Glass 
Reviewed-by: Bin Meng 
---

Changes in v2:
- Use "sandbox-pch" for the compatible string, for consistency

 arch/sandbox/dts/test.dts   |  4 ++
 arch/sandbox/include/asm/test.h |  8 
 drivers/pch/Makefile|  1 +
 drivers/pch/sandbox_pch.c   | 69 +
 test/dm/Makefile|  1 +
 test/dm/pch.c   | 36 +
 6 files changed, 119 insertions(+)
 create mode 100644 drivers/pch/sandbox_pch.c
 create mode 100644 test/dm/pch.c

diff --git a/arch/sandbox/dts/test.dts b/arch/sandbox/dts/test.dts
index 1d011ded7cc..f9a86f2596f 100644
--- a/arch/sandbox/dts/test.dts
+++ b/arch/sandbox/dts/test.dts
@@ -407,6 +407,10 @@
compatible = "sandbox,mmc";
};
 
+   pch {
+   compatible = "sandbox-pch";
+   };
+
pci0: pci-controller0 {
compatible = "sandbox,pci";
device_type = "pci";
diff --git a/arch/sandbox/include/asm/test.h b/arch/sandbox/include/asm/test.h
index 74f96188220..ce00ba51e47 100644
--- a/arch/sandbox/include/asm/test.h
+++ b/arch/sandbox/include/asm/test.h
@@ -161,4 +161,12 @@ int sandbox_get_setup_called(struct udevice *dev);
  */
 int sandbox_get_sound_sum(struct udevice *dev);
 
+/**
+ * sandbox_get_pch_spi_protect() - Get the PCI SPI protection status
+ *
+ * @dev: Device to check
+ * @return 0 if not protected, 1 if protected
+ */
+int sandbox_get_pch_spi_protect(struct udevice *dev);
+
 #endif
diff --git a/drivers/pch/Makefile b/drivers/pch/Makefile
index 696cdffedb6..8ea6b7852ac 100644
--- a/drivers/pch/Makefile
+++ b/drivers/pch/Makefile
@@ -3,3 +3,4 @@
 obj-y += pch-uclass.o
 obj-y += pch7.o
 obj-y += pch9.o
+obj-$(CONFIG_SANDBOX) += sandbox_pch.o
diff --git a/drivers/pch/sandbox_pch.c b/drivers/pch/sandbox_pch.c
new file mode 100644
index 000..004de901ac7
--- /dev/null
+++ b/drivers/pch/sandbox_pch.c
@@ -0,0 +1,69 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2018 Google LLC
+ */
+
+#include 
+#include 
+#include 
+
+struct sandbox_pch_priv {
+   bool protect;
+};
+
+int sandbox_get_pch_spi_protect(struct udevice *dev)
+{
+   struct sandbox_pch_priv *priv = dev_get_priv(dev);
+
+   return priv->protect;
+}
+
+static int sandbox_pch_get_spi_base(struct udevice *dev, ulong *sbasep)
+{
+   *sbasep = 0x10;
+
+   return 0;
+}
+
+static int sandbox_pch_set_spi_protect(struct udevice *dev, bool protect)
+{
+   struct sandbox_pch_priv *priv = dev_get_priv(dev);
+
+   priv->protect = protect;
+
+   return 0;
+}
+
+static int sandbox_pch_get_gpio_base(struct udevice *dev, u32 *gbasep)
+{
+   *gbasep = 0x20;
+
+   return 0;
+}
+
+static int sandbox_pch_get_io_base(struct udevice *dev, u32 *iobasep)
+{
+   *iobasep = 0x30;
+
+   return 0;
+}
+
+static const struct pch_ops sandbox_pch_ops = {
+   .get_spi_base   = sandbox_pch_get_spi_base,
+   .set_spi_protect = sandbox_pch_set_spi_protect,
+   .get_gpio_base  = sandbox_pch_get_gpio_base,
+   .get_io_base = sandbox_pch_get_io_base,
+};
+
+static const struct udevice_id sandbox_pch_ids[] = {
+   { .compatible = "sandbox-pch" },
+   { }
+};
+
+U_BOOT_DRIVER(sandbox_pch_drv) = {
+   .name   = "sandbox-pch",
+   .id = UCLASS_PCH,
+   .of_match   = sandbox_pch_ids,
+   .ops= _pch_ops,
+   .priv_auto_alloc_size   = sizeof(struct sandbox_pch_priv),
+};
diff --git a/test/dm/Makefile b/test/dm/Makefile
index 1b089960cbb..49857c50929 100644
--- a/test/dm/Makefile
+++ b/test/dm/Makefile
@@ -30,6 +30,7 @@ obj-y += ofnode.o
 obj-$(CONFIG_OSD) += osd.o
 obj-$(CONFIG_DM_VIDEO) += panel.o
 obj-$(CONFIG_DM_PCI) += pci.o
+obj-$(CONFIG_PCH) += pch.o
 obj-$(CONFIG_PHY) += phy.o
 obj-$(CONFIG_POWER_DOMAIN) += power-domain.o
 obj-$(CONFIG_DM_PWM) += pwm.o
diff --git a/test/dm/pch.c b/test/dm/pch.c
new file mode 100644
index 000..f184445342b
--- /dev/null
+++ b/test/dm/pch.c
@@ -0,0 +1,36 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2018 Google LLC
+ */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+/* Test that sandbox PCH works correctly */
+static int dm_test_pch_base(struct unit_test_state *uts)
+{
+   struct udevice *dev;
+   u32 gbase, iobase;
+   ulong sbase;
+
+   ut_assertok(uclass_first_device_err(UCLASS_PCH, ));
+   ut_assertok(pch_get_spi_base(dev, ));
+   ut_asserteq(0x10, sbase);
+
+   ut_asserteq(0, sandbox_get_pch_spi_protect(dev));
+   ut_assertok(pch_set_spi_protect(dev, true));
+   ut_asserteq(1, sandbox_get_pch_spi_protect(dev));
+
+   ut_assertok(pch_get_gpio_base(dev, ));
+   ut_asserteq(0x20, gbase);
+
+   ut_assertok(pch_get_io_base(dev, ));
+   ut_asserteq(0x30, iobase);
+
+   return 0;
+}