Re: [PATCH 2/8] spmi: hi6421-spmi-pmic: move driver from staging

2020-11-17 Thread kernel test robot
Hi Mauro,

I love your patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[also build test WARNING on v5.10-rc4 next-20201117]
[cannot apply to staging/staging-testing robh/for-next lee-mfd/for-mfd-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:
https://github.com/0day-ci/linux/commits/Mauro-Carvalho-Chehab/Move-Hikey-970-USB-support-out-of-staging-and-add-DT/20201116-210334
base:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
09162bc32c880a791c6c0668ce0745cf7958f576
config: x86_64-randconfig-s022-20201115 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.3-107-gaf3512a6-dirty
# 
https://github.com/0day-ci/linux/commit/b972250f20fc571defa4b23c9cc959df61eb0803
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review 
Mauro-Carvalho-Chehab/Move-Hikey-970-USB-support-out-of-staging-and-add-DT/20201116-210334
git checkout b972250f20fc571defa4b23c9cc959df61eb0803
# save the attached .config to linux build tree
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=x86_64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot 


"sparse warnings: (new ones prefixed by >>)"
>> drivers/spmi/hisi-spmi-controller.c:164:24: sparse: sparse: cast to 
>> restricted __be32
>> drivers/spmi/hisi-spmi-controller.c:164:24: sparse: sparse: cast to 
>> restricted __be32
>> drivers/spmi/hisi-spmi-controller.c:164:24: sparse: sparse: cast to 
>> restricted __be32
>> drivers/spmi/hisi-spmi-controller.c:164:24: sparse: sparse: cast to 
>> restricted __be32
>> drivers/spmi/hisi-spmi-controller.c:164:24: sparse: sparse: cast to 
>> restricted __be32
>> drivers/spmi/hisi-spmi-controller.c:164:24: sparse: sparse: cast to 
>> restricted __be32
>> drivers/spmi/hisi-spmi-controller.c:239:25: sparse: sparse: cast from 
>> restricted __be32

vim +164 drivers/spmi/hisi-spmi-controller.c

70f59c90c8199e8 drivers/staging/hikey9xx/hisi-spmi-controller.c Mayulong
  2020-08-17  110  
70f59c90c8199e8 drivers/staging/hikey9xx/hisi-spmi-controller.c Mayulong
  2020-08-17  111  static int spmi_read_cmd(struct spmi_controller *ctrl,
7f3ac6c502fd7ff drivers/staging/hikey9xx/hisi-spmi-controller.c Mauro Carvalho 
Chehab 2020-08-17  112u8 opc, u8 slave_id, u16 slave_addr, 
u8 *__buf, size_t bc)
70f59c90c8199e8 drivers/staging/hikey9xx/hisi-spmi-controller.c Mayulong
  2020-08-17  113  {
70f59c90c8199e8 drivers/staging/hikey9xx/hisi-spmi-controller.c Mayulong
  2020-08-17  114   struct spmi_controller_dev *spmi_controller = 
dev_get_drvdata(>dev);
7f3ac6c502fd7ff drivers/staging/hikey9xx/hisi-spmi-controller.c Mauro Carvalho 
Chehab 2020-08-17  115   u32 chnl_ofst = SPMI_CHANNEL_OFFSET * 
spmi_controller->channel;
70f59c90c8199e8 drivers/staging/hikey9xx/hisi-spmi-controller.c Mayulong
  2020-08-17  116   unsigned long flags;
6af364501949d99 drivers/staging/hikey9xx/hisi-spmi-controller.c Mauro Carvalho 
Chehab 2020-08-17  117   u8 *buf = __buf;
70f59c90c8199e8 drivers/staging/hikey9xx/hisi-spmi-controller.c Mayulong
  2020-08-17  118   u32 cmd, data;
70f59c90c8199e8 drivers/staging/hikey9xx/hisi-spmi-controller.c Mayulong
  2020-08-17  119   int rc;
70f59c90c8199e8 drivers/staging/hikey9xx/hisi-spmi-controller.c Mayulong
  2020-08-17  120   u8 op_code, i;
70f59c90c8199e8 drivers/staging/hikey9xx/hisi-spmi-controller.c Mayulong
  2020-08-17  121  
70f59c90c8199e8 drivers/staging/hikey9xx/hisi-spmi-controller.c Mayulong
  2020-08-17  122   if (bc > SPMI_CONTROLLER_MAX_TRANS_BYTES) {
4d914a8c480c312 drivers/staging/hikey9xx/hisi-spmi-controller.c Mauro Carvalho 
Chehab 2020-08-17  123   dev_err(>dev,
4c6491a343e91a5 drivers/staging/hikey9xx/hisi-spmi-controller.c YueHaibing  
  2020-09-01  124   "spmi_controller supports 1..%d bytes 
per trans, but:%zu requested\n",
4d914a8c480c312 drivers/staging/hikey9xx/hisi-spmi-controller.c Mauro Carvalho 
Chehab 2020-08-17  125   SPMI_CONTROLLER_MAX_TRANS_BYTES, bc);
70f59c90c8199e8 drivers/staging/hikey9xx/hisi-spmi-controller.c Mayulong
  2020-08-17  126   return  -EINVAL;
70f59c90c8199e8 drivers/staging/hikey9xx/hisi-spmi-controller.c Mayulong
  2020-08-17  127   }
70f59c90c8199e8 drivers/staging/hikey9xx/hisi-spmi-controller.c Mayulong
  2020-08-17  128  
7f3ac6c502fd7ff drivers/staging/hikey9xx/hisi-spmi-controller.c Mauro Carvalho 
Chehab 2020-08-17  129   switch (opc) {
7f3ac6c502fd7ff drivers/staging/hikey9xx/hisi-spmi-controller.c Mauro Carvalho 
Chehab 

Re: [PATCH 2/8] spmi: hi6421-spmi-pmic: move driver from staging

2020-11-16 Thread Rob Herring
On Mon, 16 Nov 2020 13:59:28 +0100, Mauro Carvalho Chehab wrote:
> The Hisilicon 6421v600 SPMI driver is ready for mainstream.
> 
> So, move it from staging.
> 
> Signed-off-by: Mauro Carvalho Chehab 
> ---
>  .../spmi/hisilicon,hisi-spmi-controller.yaml  |  62 +++
>  MAINTAINERS   |   7 +
>  drivers/spmi/Kconfig  |   9 +
>  drivers/spmi/Makefile |   1 +
>  drivers/spmi/hisi-spmi-controller.c   | 358 ++
>  drivers/staging/hikey9xx/Kconfig  |  11 -
>  drivers/staging/hikey9xx/Makefile |   1 -
>  .../staging/hikey9xx/hisi-spmi-controller.c   | 358 --
>  .../hisilicon,hisi-spmi-controller.yaml   |  62 ---
>  9 files changed, 437 insertions(+), 432 deletions(-)
>  create mode 100644 
> Documentation/devicetree/bindings/spmi/hisilicon,hisi-spmi-controller.yaml
>  create mode 100644 drivers/spmi/hisi-spmi-controller.c
>  delete mode 100644 drivers/staging/hikey9xx/hisi-spmi-controller.c
>  delete mode 100644 
> drivers/staging/hikey9xx/hisilicon,hisi-spmi-controller.yaml
> 


My bot found errors running 'make dt_binding_check' on your patch:

yamllint warnings/errors:
./Documentation/devicetree/bindings/spmi/hisilicon,hisi-spmi-controller.yaml:34:2:
 [warning] wrong indentation: expected 2 but found 1 (indentation)

dtschema/dtc warnings/errors:
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/spmi/hisilicon,hisi-spmi-controller.yaml:
 'additionalProperties' is a required property
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/spmi/hisilicon,hisi-spmi-controller.yaml:
 ignoring, error in schema: 
warning: no schema found in file: 
./Documentation/devicetree/bindings/spmi/hisilicon,hisi-spmi-controller.yaml
Documentation/devicetree/bindings/spmi/hisilicon,hisi-spmi-controller.example.dts:29.20-31.15:
 Warning (unit_address_vs_reg): /example-0/bus/spmi@fff24000/pmic@0: node has a 
unit name, but no reg or ranges property
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/spmi/hisilicon,hisi-spmi-controller.example.dt.yaml:
 spmi@fff24000: pmic@0: 'reg' is a required property
From schema: 
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/spmi/spmi.yaml


See https://patchwork.ozlabs.org/patch/1400897

The base for the patch is generally the last rc1. Any dependencies
should be noted.

If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:

pip3 install dtschema --upgrade

Please check and re-submit.

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 2/8] spmi: hi6421-spmi-pmic: move driver from staging

2020-11-16 Thread Mauro Carvalho Chehab
The Hisilicon 6421v600 SPMI driver is ready for mainstream.

So, move it from staging.

Signed-off-by: Mauro Carvalho Chehab 
---
 .../spmi/hisilicon,hisi-spmi-controller.yaml  |  62 +++
 MAINTAINERS   |   7 +
 drivers/spmi/Kconfig  |   9 +
 drivers/spmi/Makefile |   1 +
 drivers/spmi/hisi-spmi-controller.c   | 358 ++
 drivers/staging/hikey9xx/Kconfig  |  11 -
 drivers/staging/hikey9xx/Makefile |   1 -
 .../staging/hikey9xx/hisi-spmi-controller.c   | 358 --
 .../hisilicon,hisi-spmi-controller.yaml   |  62 ---
 9 files changed, 437 insertions(+), 432 deletions(-)
 create mode 100644 
Documentation/devicetree/bindings/spmi/hisilicon,hisi-spmi-controller.yaml
 create mode 100644 drivers/spmi/hisi-spmi-controller.c
 delete mode 100644 drivers/staging/hikey9xx/hisi-spmi-controller.c
 delete mode 100644 drivers/staging/hikey9xx/hisilicon,hisi-spmi-controller.yaml

diff --git 
a/Documentation/devicetree/bindings/spmi/hisilicon,hisi-spmi-controller.yaml 
b/Documentation/devicetree/bindings/spmi/hisilicon,hisi-spmi-controller.yaml
new file mode 100644
index ..f2a56fa4e78e
--- /dev/null
+++ b/Documentation/devicetree/bindings/spmi/hisilicon,hisi-spmi-controller.yaml
@@ -0,0 +1,62 @@
+# SPDX-License-Identifier: GPL-2.0
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/spmi/hisilicon,hisi-spmi-controller.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: HiSilicon SPMI controller
+
+maintainers:
+  - Mauro Carvalho Chehab 
+
+description: |
+  The HiSilicon SPMI BUS controller is found on some Kirin-based designs.
+  It is a MIPI System Power Management (SPMI) controller.
+
+  The PMIC part is provided by
+  drivers/staging/hikey9xx/hisilicon,hi6421-spmi-pmic.yaml.
+
+properties:
+  $nodename:
+pattern: "spmi@[0-9a-f]"
+
+  compatible:
+const: hisilicon,kirin970-spmi-controller
+
+  reg:
+maxItems: 1
+
+  spmi-channel:
+description: |
+  number of the Kirin 970 SPMI channel where the SPMI devices are 
connected.
+
+required:
+ - compatible
+ - reg
+ - spmi-channel
+
+patternProperties:
+  "^pmic@[0-9a-f]$":
+description: |
+  PMIC properties, which are specific to the used SPMI PMIC device(s).
+  When used in combination with HiSilicon 6421v600, the properties
+  are documented at
+  drivers/staging/hikey9xx/hisilicon,hi6421-spmi-pmic.yaml.
+
+examples:
+  - |
+bus {
+  #address-cells = <2>;
+  #size-cells = <2>;
+
+  spmi: spmi@fff24000 {
+compatible = "hisilicon,kirin970-spmi-controller";
+status = "ok";
+reg = <0x0 0xfff24000 0x0 0x1000>;
+spmi-channel = <2>;
+
+pmic@0 {
+  /* pmic properties */
+};
+  };
+};
diff --git a/MAINTAINERS b/MAINTAINERS
index 14266bb79ff8..14bc7b45ed50 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -7987,6 +7987,13 @@ F:   drivers/crypto/hisilicon/sec2/sec_crypto.c
 F: drivers/crypto/hisilicon/sec2/sec_crypto.h
 F: drivers/crypto/hisilicon/sec2/sec_main.c
 
+HISILICON SPMI CONTROLLER DRIVER FOR HIKEY 970
+M: Mauro Carvalho Chehab 
+L: linux-ker...@vger.kernel.org
+S: Maintained
+F: 
Documentation/devicetree/bindings/spmi/hisilicon,hisi-spmi-controller.yaml
+F: drivers/spmi/hisi-spmi-controller.c
+
 HISILICON STAGING DRIVERS FOR HIKEY 960/970
 M: Mauro Carvalho Chehab 
 L: de...@driverdev.osuosl.org
diff --git a/drivers/spmi/Kconfig b/drivers/spmi/Kconfig
index a53bad541f1a..2874b6c26028 100644
--- a/drivers/spmi/Kconfig
+++ b/drivers/spmi/Kconfig
@@ -11,6 +11,15 @@ menuconfig SPMI
 
 if SPMI
 
+config SPMI_HISI3670
+   tristate "Hisilicon 3670 SPMI Controller"
+   select IRQ_DOMAIN_HIERARCHY
+   depends on HAS_IOMEM
+   help
+ If you say yes to this option, support will be included for the
+ built-in SPMI PMIC Arbiter interface on Hisilicon 3670
+ processors.
+
 config SPMI_MSM_PMIC_ARB
tristate "Qualcomm MSM SPMI Controller (PMIC Arbiter)"
select IRQ_DOMAIN_HIERARCHY
diff --git a/drivers/spmi/Makefile b/drivers/spmi/Makefile
index 55a94cadeffe..6e092e6f290c 100644
--- a/drivers/spmi/Makefile
+++ b/drivers/spmi/Makefile
@@ -4,4 +4,5 @@
 #
 obj-$(CONFIG_SPMI) += spmi.o
 
+obj-$(CONFIG_SPMI_HISI3670)+= hisi-spmi-controller.o
 obj-$(CONFIG_SPMI_MSM_PMIC_ARB)+= spmi-pmic-arb.o
diff --git a/drivers/spmi/hisi-spmi-controller.c 
b/drivers/spmi/hisi-spmi-controller.c
new file mode 100644
index ..f831c43f4783
--- /dev/null
+++ b/drivers/spmi/hisi-spmi-controller.c
@@ -0,0 +1,358 @@
+// SPDX-License-Identifier: GPL-2.0
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+/*
+ * SPMI register addr
+ */
+#define SPMI_CHANNEL_OFFSET0x0300
+#define SPMI_SLAVE_OFFSET