Re: [PATCH] gpio: driver for the NXP 74HC153 chip

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Mauri,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on gpio/for-next]
[also build test ERROR on v5.11 next-20210223]
[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/Mauri-Sandberg/gpio-driver-for-the-NXP-74HC153-chip/20210224-040026
base:   https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git for-next
config: s390-allmodconfig (attached as .config)
compiler: s390-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/04cf14b1b4dad0702e35202513962925fdf8113f
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Mauri-Sandberg/gpio-driver-for-the-NXP-74HC153-chip/20210224-040026
        git checkout 04cf14b1b4dad0702e35202513962925fdf8113f
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=s390 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

   drivers/gpio/gpio-nxp-74hc153.c: In function 'nxp_74hc153_get_value':
   drivers/gpio/gpio-nxp-74hc153.c:75:36: warning: variable 'pdata' set but not used [-Wunused-but-set-variable]
      75 |  struct nxp_74hc153_platform_data *pdata;
         |                                    ^~~~~
   drivers/gpio/gpio-nxp-74hc153.c: In function 'nxp_74hc153_probe':
>> drivers/gpio/gpio-nxp-74hc153.c:216:4: error: 'struct gpio_chip' has no member named 'of_node'
     216 |  gc->of_node = np;
         |    ^~


vim +216 drivers/gpio/gpio-nxp-74hc153.c

   103	
   104	static int nxp_74hc153_probe(struct platform_device *pdev)
   105	{
   106		struct device_node *np = pdev->dev.of_node;
   107		struct nxp_74hc153_chip *nxp;
   108		struct gpio_chip *gc;
   109		int err;
   110		unsigned gpio_s0;
   111		unsigned gpio_s1;
   112		unsigned gpio_1y;
   113	        unsigned gpio_2y;
   114	
   115		nxp = kzalloc(sizeof(struct nxp_74hc153_chip), GFP_KERNEL);
   116		if (nxp == NULL) {
   117			dev_err(&pdev->dev, "no memory for private data\n");
   118			return -ENOMEM;
   119		}
   120	
   121		gpio_s0 = of_get_named_gpio(np, "gpio-s0", 0);
   122		gpio_s1 = of_get_named_gpio(np, "gpio-s1", 0);
   123		gpio_1y = of_get_named_gpio(np, "gpio-1y", 0);
   124		gpio_2y = of_get_named_gpio(np, "gpio-2y", 0);
   125	
   126		if (!gpio_is_valid(gpio_s0) || !gpio_is_valid(gpio_s1) ||
   127	  	    !gpio_is_valid(gpio_1y) || !gpio_is_valid(gpio_2y)) {
   128	
   129			dev_err(&pdev->dev, "control GPIO(s) are missing\n");
   130			err = -EINVAL;
   131			goto err_free_nxp;
   132		} else {
   133			nxp->config.gpio_pin_s0 = gpio_s0;
   134			nxp->config.gpio_pin_s1 = gpio_s1;
   135			nxp->config.gpio_pin_1y = gpio_1y;
   136			nxp->config.gpio_pin_2y = gpio_2y;
   137		}
   138	
   139		// apply pin configuration
   140		err = gpio_request(nxp->config.gpio_pin_s0, dev_name(&pdev->dev));
   141		if (err) {
   142			dev_err(&pdev->dev, "unable to claim gpio %u, err=%d\n",
   143				nxp->config.gpio_pin_s0, err);
   144			goto err_free_nxp;
   145		}
   146	
   147		err = gpio_request(nxp->config.gpio_pin_s1, dev_name(&pdev->dev));
   148		if (err) {
   149			dev_err(&pdev->dev, "unable to claim gpio %u, err=%d\n",
   150				nxp->config.gpio_pin_s1, err);
   151			goto err_free_s0;
   152		}
   153	
   154		err = gpio_request(nxp->config.gpio_pin_1y, dev_name(&pdev->dev));
   155		if (err) {
   156			dev_err(&pdev->dev, "unable to claim gpio %u, err=%d\n",
   157				nxp->config.gpio_pin_1y, err);
   158			goto err_free_s1;
   159		}
   160	
   161		err = gpio_request(nxp->config.gpio_pin_2y, dev_name(&pdev->dev));
   162		if (err) {
   163			dev_err(&pdev->dev, "unable to claim gpio %u, err=%d\n",
   164				nxp->config.gpio_pin_2y, err);
   165			goto err_free_1y;
   166		}
   167	
   168		err = gpio_direction_output(nxp->config.gpio_pin_s0, 0);
   169		if (err) {
   170			dev_err(&pdev->dev,
   171				"unable to set direction of gpio %u, err=%d\n",
   172				nxp->config.gpio_pin_s0, err);
   173			goto err_free_2y;
   174		}
   175	
   176		err = gpio_direction_output(nxp->config.gpio_pin_s1, 0);
   177		if (err) {
   178			dev_err(&pdev->dev,
   179				"unable to set direction of gpio %u, err=%d\n",
   180				nxp->config.gpio_pin_s1, err);
   181			goto err_free_2y;
   182		}
   183	
   184		err = gpio_direction_input(nxp->config.gpio_pin_1y);
   185		if (err) {
   186			dev_err(&pdev->dev,
   187				"unable to set direction of gpio %u, err=%d\n",
   188				nxp->config.gpio_pin_1y, err);
   189			goto err_free_2y;
   190		}
   191	
   192		err = gpio_direction_input(nxp->config.gpio_pin_2y);
   193		if (err) {
   194			dev_err(&pdev->dev,
   195				"unable to set direction of gpio %u, err=%d\n",
   196				nxp->config.gpio_pin_2y, err);
   197			goto err_free_2y;
   198		}
   199	
   200		nxp->parent = &pdev->dev;
   201		mutex_init(&nxp->lock);
   202	
   203		gc = &nxp->gpio_chip;
   204	
   205		gc->direction_input  = nxp_74hc153_direction_input;
   206		gc->direction_output = nxp_74hc153_direction_output;
   207		gc->get = nxp_74hc153_get_value;
   208		gc->set = nxp_74hc153_set_value;
   209		gc->can_sleep = 1;
   210	
   211		gc->base = -1;
   212		gc->ngpio = NXP_74HC153_NUM_GPIOS;
   213		gc->label = dev_name(nxp->parent);
   214		gc->parent = nxp->parent;
   215		gc->owner = THIS_MODULE;
 > 216		gc->of_node = np;
   217	
   218		err = gpiochip_add(&nxp->gpio_chip);
   219		if (err) {
   220			dev_err(&pdev->dev, "unable to add gpio chip, err=%d\n", err);
   221			goto err_free_2y;
   222		}
   223	
   224		platform_set_drvdata(pdev, nxp);
   225		return 0;
   226	
   227	err_free_2y:
   228		gpio_free(nxp->config.gpio_pin_2y);
   229	err_free_1y:
   230		gpio_free(nxp->config.gpio_pin_1y);
   231	err_free_s1:
   232		gpio_free(nxp->config.gpio_pin_s1);
   233	err_free_s0:
   234		gpio_free(nxp->config.gpio_pin_s0);
   235	err_free_nxp:
   236		kfree(nxp);
   237		return err;
   238	}
   239	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [Linux SPI]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux