Module Name: src Committed By: tnn Date: Tue Aug 13 17:15:55 UTC 2019
Modified Files: src/sys/arch/arm/rockchip: rk_spi.c Log Message: rk_spi: register controller with fdt To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/sys/arch/arm/rockchip/rk_spi.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/arm/rockchip/rk_spi.c diff -u src/sys/arch/arm/rockchip/rk_spi.c:1.2 src/sys/arch/arm/rockchip/rk_spi.c:1.3 --- src/sys/arch/arm/rockchip/rk_spi.c:1.2 Tue Aug 13 17:03:10 2019 +++ src/sys/arch/arm/rockchip/rk_spi.c Tue Aug 13 17:15:55 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: rk_spi.c,v 1.2 2019/08/13 17:03:10 tnn Exp $ */ +/* $NetBSD: rk_spi.c,v 1.3 2019/08/13 17:15:55 tnn Exp $ */ /* * Copyright (c) 2019 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rk_spi.c,v 1.2 2019/08/13 17:03:10 tnn Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rk_spi.c,v 1.3 2019/08/13 17:15:55 tnn Exp $"); #include <sys/param.h> #include <sys/device.h> @@ -170,6 +170,7 @@ struct rk_spi_softc { #define SPIREG_WRITE(sc, reg, val) \ bus_space_write_4((sc)->sc_bst, (sc)->sc_bsh, (reg), (val)) +static struct spi_controller *rk_spi_get_controller(device_t); static int rk_spi_match(device_t, cfdata_t, void *); static void rk_spi_attach(device_t, device_t, void *); @@ -186,6 +187,18 @@ static int rk_spi_intr(void *); CFATTACH_DECL_NEW(rk_spi, sizeof(struct rk_spi_softc), rk_spi_match, rk_spi_attach, NULL, NULL); +static const struct fdtbus_spi_controller_func rk_spi_funcs = { + .get_controller = rk_spi_get_controller +}; + +static struct spi_controller * +rk_spi_get_controller(device_t dev) +{ + struct rk_spi_softc * const sc = device_private(dev); + + return &sc->sc_spi; +} + static int rk_spi_match(device_t parent, cfdata_t cf, void *aux) { @@ -204,8 +217,7 @@ rk_spi_attach(device_t parent, device_t bus_size_t size; struct clk *sclk, *pclk; char intrstr[128]; - struct spibus_attach_args sba; - + sc->sc_dev = self; sc->sc_bst = faa->faa_bst; SIMPLEQ_INIT(&sc->sc_q); @@ -253,10 +265,8 @@ rk_spi_attach(device_t parent, device_t sc->sc_spi.sct_transfer = rk_spi_transfer; sc->sc_spi.sct_nslaves = 2; - memset(&sba, 0, sizeof(sba)); - sba.sba_controller = &sc->sc_spi; - - (void) config_found_ia(self, "spibus", &sba, spibus_print); + fdtbus_register_spi_controller(self, phandle, &rk_spi_funcs); + (void) fdtbus_attach_spibus(self, phandle, spibus_print); } static int