Source-Changes-HG archive

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

[src/thorpej-i2c-spi-conf]: src/sys/arch/sparc64/dev Adapt jbusi2c to the new...



details:   https://anonhg.NetBSD.org/src/rev/c829b2bf3c74
branches:  thorpej-i2c-spi-conf
changeset: 1020806:c829b2bf3c74
user:      thorpej <thorpej%NetBSD.org@localhost>
date:      Fri May 14 03:11:49 2021 +0000

description:
Adapt jbusi2c to the new i2c device enumeration scheme.

diffstat:

 sys/arch/sparc64/dev/jbus-i2c.c |  56 ++++------------------------------------
 1 files changed, 6 insertions(+), 50 deletions(-)

diffs (106 lines):

diff -r 53c3f545c837 -r c829b2bf3c74 sys/arch/sparc64/dev/jbus-i2c.c
--- a/sys/arch/sparc64/dev/jbus-i2c.c   Fri May 14 03:05:52 2021 +0000
+++ b/sys/arch/sparc64/dev/jbus-i2c.c   Fri May 14 03:11:49 2021 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: jbus-i2c.c,v 1.6 2021/04/24 23:36:49 thorpej Exp $     */
+/*     $NetBSD: jbus-i2c.c,v 1.6.2.1 2021/05/14 03:11:49 thorpej Exp $ */
 
 /*
  * Copyright (c) 2018 Michael Lorenz
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: jbus-i2c.c,v 1.6 2021/04/24 23:36:49 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: jbus-i2c.c,v 1.6.2.1 2021/05/14 03:11:49 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -79,11 +79,8 @@
        struct i2c_controller sc_i2c;
        bus_space_tag_t sc_bustag;
        bus_space_handle_t sc_regh;
-       int sc_node;
 };
 
-static void jbusi2c_setup_i2c(struct jbusi2c_softc *);
-
 CFATTACH_DECL_NEW(jbusi2c, sizeof(struct jbusi2c_softc),
     jbusi2c_match, jbusi2c_attach, NULL, NULL);
 
@@ -112,11 +109,11 @@
 {
        struct jbusi2c_softc *sc = device_private(self);
        struct mainbus_attach_args *ma = aux;
+       struct i2cbus_attach_args iba;
 
        aprint_normal(": addr %" PRIx64 "\n", ma->ma_reg[0].ur_paddr);
 
        sc->sc_dev = self;
-       sc->sc_node = ma->ma_node;
        sc->sc_bustag = ma->ma_bustag;
 
        if (bus_space_map(sc->sc_bustag, ma->ma_reg[0].ur_paddr, 16, 0,
@@ -125,21 +122,6 @@
                return;
        }
 
-       jbusi2c_setup_i2c(sc);
-}
-
-
-
-static void
-jbusi2c_setup_i2c(struct jbusi2c_softc *sc)
-{
-       struct i2cbus_attach_args iba;
-       prop_array_t cfg;
-       prop_dictionary_t dev;
-       prop_dictionary_t dict = device_properties(sc->sc_dev);
-       int devs, regs[2], addr;
-       char name[64], compat[256];
-
        iic_tag_init(&sc->sc_i2c);
        sc->sc_i2c.ic_cookie = sc;
        sc->sc_i2c.ic_send_start = jbusi2c_i2c_send_start;
@@ -148,37 +130,11 @@
        sc->sc_i2c.ic_read_byte = jbusi2c_i2c_read_byte;
        sc->sc_i2c.ic_write_byte = jbusi2c_i2c_write_byte;
 
-       /* round up i2c devices */
-       devs = OF_child(sc->sc_node);
-       cfg = prop_array_create();
-       prop_dictionary_set(dict, "i2c-child-devices", cfg);
-       prop_object_release(cfg);
-       while (devs != 0) {
-               if (OF_getprop(devs, "name", name, 256) <= 0)
-                       goto skip;
-               memset(compat, 0, sizeof(compat));
-               if (OF_getprop(devs, "compatible",
-                   compat, 255) <= 0)
-                       goto skip;
-               if (OF_getprop(devs, "reg", regs, 8) <= 0)
-                       goto skip;
-               if (regs[0] != 0) goto skip;
-               addr = (regs[1] & 0xff) >> 1;
-               DPRINTF("-> %s@%d,%x\n", name, regs[0], addr);
-               dev = prop_dictionary_create();
-               prop_dictionary_set_string(dev, "name", name);
-               prop_dictionary_set_data(dev, "compatible", compat,
-                   strlen(compat)+1);
-               prop_dictionary_set_uint32(dev, "addr", addr);
-               prop_dictionary_set_uint64(dev, "cookie", devs);
-               prop_array_add(cfg, dev);
-               prop_object_release(dev);
-       skip:
-               devs = OF_peer(devs);
-       }
        memset(&iba, 0, sizeof(iba));
        iba.iba_tag = &sc->sc_i2c;
-       config_found(sc->sc_dev, &iba, iicbus_print, CFARG_EOL);
+       config_found(sc->sc_dev, &iba, iicbus_print,
+           CFARG_DEVHANDLE, device_handle(self),
+           CFARG_EOL);
 }
 
 static inline void



Home | Main Index | Thread Index | Old Index