For each passable cell (,), the transition is: dp[][] = dp[-1][] + dp[][-1]. You add the ways from above and the ways from the left. If either neighbor is out of bounds or blocked, that contribution is 0.
Remember to take modulo at each step to avoid overflow. The answer is dp[][]. The transition is the core of any DP solution. It defines how the answer for the current state depends on answers for previous states. Getting the transition right is often the hardest and most rewarding part.