Lines Matching +full:0 +full:x18000000
94 …pr_debug() call with brcmf_sdiod_regrl() inside to addr #define SI_ENUM_BASE 0x18000000.
95 * Return value is 0x16044330.
96 * Then turns off PLL: byte-write BRCMF_INIT_CLKCTL1 (0x28) -> SBSDIO_FUNC1_CHIPCLKCSR (0x1000E)
97 * Then it reads value back, should be 0xe8.
106 * SBSDIO_FORCE_HW_CLKREQ_OFF | SBSDIO_FORCE_ALP (0x21)-> SBSDIO_FUNC1_CHIPCLKCSR
108 * byte 0 -> SBSDIO_FUNC1_SDIOPULLUP (0x0001000f)
112 * Read 0x18000000. Get 0x16044330: chip 4330 rev 4
119 * brcmf_chip_get_raminfo: RAM: base=0x0 size=294912 (0x48000) sr=0 (0x0)
123 * brcmf_chip_setup: ccrev=39, pmurev=12, pmucaps=0x19583c0c
128 * Here it first reads 0x1 from SBSDIO_FUNC1_SLEEPCSR 0x18000650 and then writes it back... WTF?
142 * - SBSDIO_FUNC1_SBADDRLOW 0x1000A
143 * - SBSDIO_FUNC1_SBADDRMID 0x1000B
144 * - SBSDIO_FUNC1_SBADDRHIGH 0x1000C
145 …is 32-bit read , a flag is set. The address is ANDed with SBSDIO_SB_OFT_ADDR_MASK which is 0x07FFF.
159 #define SI_ENUM_BASE 0x18000000
160 #define REPLY_MAGIC 0x16044330
161 #define brcmf_err(fmt, ...) brcmf_dbg(0, fmt, ##__VA_ARGS__)
185 if (ret == 0) in bailout()
243 brcmf_dbg(SDIO, "rw=%d, func=%d, addr=0x%05x, nbytes=%d\n", in brcmf_sdiod_request_data()
284 brcmf_dbg(SDIO, "failed to %s data F%d@0x%05x, err: %d\n", in brcmf_sdiod_request_data()
294 int err = 0; in brcmf_sdiod_addrprep()
309 return 0; in brcmf_sdiod_addrprep()
314 s32 retry = 0; in brcmf_sdiod_regrw_helper()
322 * 0x00 ~ 0x7FF: function 0 CCCR and FBR in brcmf_sdiod_regrw_helper()
323 * 0x10000 ~ 0x1FFFF: function 1 miscellaneous registers in brcmf_sdiod_regrw_helper()
326 if ((addr & ~REG_F0_REG_MASK) == 0) in brcmf_sdiod_regrw_helper()
333 memset(data, 0, regsz); in brcmf_sdiod_regrw_helper()
339 } while (ret != 0 && ret != -ENOMEDIUM && in brcmf_sdiod_regrw_helper()
344 else if (ret != 0) { in brcmf_sdiod_regrw_helper()
351 brcmf_err("failed to %s data F%d@0x%05x, err: %d\n", in brcmf_sdiod_regrw_helper()
354 brcmf_dbg(SDIO, "failed to %s data F%d@0x%05x, err: %d\n", in brcmf_sdiod_regrw_helper()
363 int err = 0, i; in brcmf_sdiod_set_sbaddr_window()
369 addr[0] = (address >> 8) & SBSDIO_SBADDRLOW_MASK; in brcmf_sdiod_set_sbaddr_window()
373 for (i = 0; i < 3; i++) { in brcmf_sdiod_set_sbaddr_window()
378 brcmf_err("failed at addr: 0x%0x\n", in brcmf_sdiod_set_sbaddr_window()
389 u32 data = 0; in brcmf_sdiod_regrl()
392 brcmf_dbg(SDIO, "addr:0x%08x\n", addr); in brcmf_sdiod_regrl()
398 brcmf_dbg(SDIO, "data:0x%08x\n", data); in brcmf_sdiod_regrl()
418 memset(&info, 0, sizeof(info)); in probe_bcrm()
419 sdio_func_read_cis(dev, 0, cis_addr, &info); in probe_bcrm()
420 printf("Vendor 0x%04X product 0x%04X\n", info.man_id, info.prod_id); in probe_bcrm()
430 if (fd < 0) in mmap_fw()
432 if (fstat(fd, &sb) < 0) in mmap_fw()
434 fw_ptr = mmap(NULL, sb.st_size, PROT_READ, 0, fd, 0); in mmap_fw()
444 exit(0); in usage()
455 * of checking for man_id = 0x00 for detecting number of functions
465 memset(ci, 0, sizeof(struct card_info)); in get_sdio_card_info()
466 sdio_func_read_cis(dev, 0, cis_addr, &ci->f[0]); in get_sdio_card_info()
467 printf("F0: Vendor 0x%04X product 0x%04X max block size %d bytes\n", in get_sdio_card_info()
468 ci->f[0].man_id, ci->f[0].prod_id, ci->f[0].max_block_size); in get_sdio_card_info()
470 fbr_addr = SD_IO_FBR_START * i + 0x9; in get_sdio_card_info()
471 cis_addr = sdio_read_1(dev, 0, fbr_addr++, &ret);bailout(ret); in get_sdio_card_info()
472 cis_addr |= sdio_read_1(dev, 0, fbr_addr++, &ret) << 8; in get_sdio_card_info()
473 cis_addr |= sdio_read_1(dev, 0, fbr_addr++, &ret) << 16; in get_sdio_card_info()
475 printf("F%d: Vendor 0x%04X product 0x%04X max block size %d bytes\n", in get_sdio_card_info()
477 if (ci->f[i].man_id == 0) { in get_sdio_card_info()
488 int unit = 0; in main()
489 int func = 0; in main()
520 if (ci.f[0].man_id != 0x02D0) { in main()
534 brcmf_dev.func[0] = &f0; in main()
538 brcmf_dev.func[0]->dev = brcmf_dev.func[1]->dev in main()
540 brcmf_dev.func[0]->num = 0; in main()
545 uint32_t magic = brcmf_sdiod_regrl(&brcmf_dev, 0x18000000, &ret); in main()