trb->ctrl |= (DWC3_TRB_CTRL_IOC
                                | DWC3_TRB_CTRL_LST);
 
-       dwc3_flush_cache((long)buf_dma, len);
-       dwc3_flush_cache((long)trb, sizeof(*trb));
+       dwc3_flush_cache((uintptr_t)buf_dma, len);
+       dwc3_flush_cache((uintptr_t)trb, sizeof(*trb));
 
        if (chain)
                return 0;
        if (!r)
                return;
 
-       dwc3_flush_cache((long)trb, sizeof(*trb));
+       dwc3_flush_cache((uintptr_t)trb, sizeof(*trb));
 
        status = DWC3_TRB_SIZE_TRBSTS(trb->size);
        if (status == DWC3_TRBSTS_SETUP_PENDING) {
                        ur->actual += transferred;
 
                        trb++;
-                       dwc3_flush_cache((long)trb, sizeof(*trb));
+                       dwc3_flush_cache((uintptr_t)trb, sizeof(*trb));
                        length = trb->size & DWC3_TRB_SIZE_MASK;
 
                        ep0->free_slot = 0;
                                        maxp);
                transferred = min_t(u32, ur->length - transferred,
                                    transfer_size - length);
-               dwc3_flush_cache((long)dwc->ep0_bounce, DWC3_EP0_BOUNCE_SIZE);
+               dwc3_flush_cache((uintptr_t)dwc->ep0_bounce, DWC3_EP0_BOUNCE_SIZE);
                memcpy(buf, dwc->ep0_bounce, transferred);
        } else {
                transferred = ur->length - length;
 
 
        list_del(&req->list);
        req->trb = NULL;
-       dwc3_flush_cache((long)req->request.dma, req->request.length);
+       dwc3_flush_cache((uintptr_t)req->request.dma, req->request.length);
 
        if (req->request.status == -EINPROGRESS)
                req->request.status = status;
 
        trb->ctrl |= DWC3_TRB_CTRL_HWO;
 
-       dwc3_flush_cache((long)dma, length);
-       dwc3_flush_cache((long)trb, sizeof(*trb));
+       dwc3_flush_cache((uintptr_t)dma, length);
+       dwc3_flush_cache((uintptr_t)trb, sizeof(*trb));
 }
 
 /*
        slot %= DWC3_TRB_NUM;
        trb = &dep->trb_pool[slot];
 
-       dwc3_flush_cache((long)trb, sizeof(*trb));
+       dwc3_flush_cache((uintptr_t)trb, sizeof(*trb));
        __dwc3_cleanup_done_trbs(dwc, dep, req, trb, event, status);
        dwc3_gadget_giveback(dep, req, status);
 
 
                for (i = 0; i < dwc->num_event_buffers; i++) {
                        evt = dwc->ev_buffs[i];
-                       dwc3_flush_cache((long)evt->buf, evt->length);
+                       dwc3_flush_cache((uintptr_t)evt->buf, evt->length);
                }
 
                dwc3_thread_interrupt(0, dwc);
 
        writel(value, base + offs);
 }
 
-static inline void dwc3_flush_cache(int addr, int length)
+static inline void dwc3_flush_cache(uintptr_t addr, int length)
 {
        flush_dcache_range(addr, addr + ROUND(length, CACHELINE_SIZE));
 }