Lines Matching defs:bgi

920 bcm_gpio_isrc_eoi(struct bcm_gpio_softc *sc, struct bcm_gpio_irqsrc *bgi)
925 bank = BCM_GPIO_BANK(bgi->bgi_irq);
926 BCM_GPIO_WRITE(sc, BCM_GPIO_GPEDS(bank), bgi->bgi_mask);
930 bcm_gpio_isrc_is_level(struct bcm_gpio_irqsrc *bgi)
933 return (bgi->bgi_mode == GPIO_INTR_LEVEL_LOW ||
934 bgi->bgi_mode == GPIO_INTR_LEVEL_HIGH);
938 bcm_gpio_isrc_mask(struct bcm_gpio_softc *sc, struct bcm_gpio_irqsrc *bgi)
942 bank = BCM_GPIO_BANK(bgi->bgi_irq);
944 switch (bgi->bgi_mode) {
946 BCM_GPIO_CLEAR_BITS(sc, BCM_GPIO_GPLEN(bank), bgi->bgi_mask);
949 BCM_GPIO_CLEAR_BITS(sc, BCM_GPIO_GPHEN(bank), bgi->bgi_mask);
952 BCM_GPIO_CLEAR_BITS(sc, BCM_GPIO_GPREN(bank), bgi->bgi_mask);
955 BCM_GPIO_CLEAR_BITS(sc, BCM_GPIO_GPFEN(bank), bgi->bgi_mask);
958 BCM_GPIO_CLEAR_BITS(sc, BCM_GPIO_GPREN(bank), bgi->bgi_mask);
959 BCM_GPIO_CLEAR_BITS(sc, BCM_GPIO_GPFEN(bank), bgi->bgi_mask);
966 bcm_gpio_isrc_unmask(struct bcm_gpio_softc *sc, struct bcm_gpio_irqsrc *bgi)
970 bank = BCM_GPIO_BANK(bgi->bgi_irq);
972 switch (bgi->bgi_mode) {
974 BCM_GPIO_SET_BITS(sc, BCM_GPIO_GPLEN(bank), bgi->bgi_mask);
977 BCM_GPIO_SET_BITS(sc, BCM_GPIO_GPHEN(bank), bgi->bgi_mask);
980 BCM_GPIO_SET_BITS(sc, BCM_GPIO_GPREN(bank), bgi->bgi_mask);
983 BCM_GPIO_SET_BITS(sc, BCM_GPIO_GPFEN(bank), bgi->bgi_mask);
986 BCM_GPIO_SET_BITS(sc, BCM_GPIO_GPREN(bank), bgi->bgi_mask);
987 BCM_GPIO_SET_BITS(sc, BCM_GPIO_GPFEN(bank), bgi->bgi_mask);
997 struct bcm_gpio_irqsrc *bgi;
1004 bgi = sc->sc_isrcs + irq;
1005 if (!bcm_gpio_isrc_is_level(bgi))
1006 bcm_gpio_isrc_eoi(sc, bgi);
1007 if (intr_isrc_dispatch(&bgi->bgi_isrc,
1009 bcm_gpio_isrc_mask(sc, bgi);
1010 if (bcm_gpio_isrc_is_level(bgi))
1011 bcm_gpio_isrc_eoi(sc, bgi);
1015 reg &= ~bgi->bgi_mask;
1072 bcm_gpio_pic_config_intr(struct bcm_gpio_softc *sc, struct bcm_gpio_irqsrc *bgi,
1077 bank = BCM_GPIO_BANK(bgi->bgi_irq);
1079 bcm_gpio_modify(sc, BCM_GPIO_GPREN(bank), bgi->bgi_mask,
1081 bcm_gpio_modify(sc, BCM_GPIO_GPFEN(bank), bgi->bgi_mask,
1083 bcm_gpio_modify(sc, BCM_GPIO_GPHEN(bank), bgi->bgi_mask,
1085 bcm_gpio_modify(sc, BCM_GPIO_GPLEN(bank), bgi->bgi_mask,
1087 bgi->bgi_mode = mode;
1095 struct bcm_gpio_irqsrc *bgi = (struct bcm_gpio_irqsrc *)isrc;
1097 bcm_gpio_isrc_mask(sc, bgi);
1104 struct bcm_gpio_irqsrc *bgi = (struct bcm_gpio_irqsrc *)isrc;
1106 arm_irq_memory_barrier(bgi->bgi_irq);
1107 bcm_gpio_isrc_unmask(sc, bgi);
1212 struct bcm_gpio_irqsrc *bgi = (struct bcm_gpio_irqsrc *)isrc;
1214 if (bcm_gpio_isrc_is_level(bgi))
1215 bcm_gpio_isrc_eoi(sc, bgi);
1229 struct bcm_gpio_irqsrc *bgi = (struct bcm_gpio_irqsrc *)isrc;
1231 bcm_gpio_isrc_mask(sc, bgi);
1232 if (bcm_gpio_isrc_is_level(bgi))
1233 bcm_gpio_isrc_eoi(sc, bgi);
1243 struct bcm_gpio_irqsrc *bgi;
1249 bgi = (struct bcm_gpio_irqsrc *)isrc;
1252 if (bcm_gpio_pic_map(sc, data, &irq, &mode) != 0 || bgi->bgi_irq != irq)
1260 return (bgi->bgi_mode == mode ? 0 : EINVAL);
1262 bcm_gpio_pic_config_intr(sc, bgi, mode);
1271 struct bcm_gpio_irqsrc *bgi = (struct bcm_gpio_irqsrc *)isrc;
1274 bcm_gpio_pic_config_intr(sc, bgi, GPIO_INTR_CONFORM);