Preheat the oven to 175 C. Line an 8 inch square baking pan with non-stick baking paper (or grease the pan). You can also use an 8 inch round baking pan.
In a mixing bowl, beat the butter and sugar together using a hand mixer until light and fluffy.
Add the egg and vanilla and beat briefly to combine, then add the banana, yoghurt and milk. Beat again. The batter may appear curdled but it will be ok in the next step.
Sift in the flour, baking soda, cinnamon and salt. Beat again on low speed until you have a smooth batter, then fold in the walnuts and chocolate chips. The batter is thick, but not super thick so add more milk if needed.
Pour the batter into the prepared pan and smoothen the top. Bake for 25 to 30 minutes until the top has browned and a toothpick poked in the center comes out clean.
Place the cake on a wire rack to cool completely at room temperature before frosting.
To make the frosting, combine all the ingredients in a mixing bowl and beat for about 2 minutes with a hand mixer, until creamy and fluffy. If it seems too soft, place the bowl in the fridge for 15 minutes, then spread all over the cake. Decorate with chopped walnuts or sprinkles or grated chocolate if you like. Slice it into 16 small pieces or 9 larger pieces. Dive in!
Once frosted, the cake should be stored in the fridge for 4 to 5 days. Bring to room temperature before eating. Unfrosted, the cake can be kept at room temperature in an airtight tin for 2 to 3 days, although personally, I prefer placing it in the fridge since it's getting so hot now! Happy baking :)