Add doc on tflm op support in Kelvin.
Change-Id: Ie1a033eeb00d331fc88ef197960ce1abad5a34cf
diff --git a/docs/tflm_ops.md b/docs/tflm_ops.md
new file mode 100644
index 0000000..1154ebf
--- /dev/null
+++ b/docs/tflm_ops.md
@@ -0,0 +1,25 @@
+# Optimized ops in Kelvin TFLM
+
+The following table is a list of currently optimized ops in Kelvin TFLM. The
+relevant source code can be found located [here](https://opensecura.googlesource.com/sw/kelvin/+/refs/heads/master/tflm/opt).
+
+## Non-Convolutional Ops
+
+| Op | Supported Data Type | Comments |
+| :-------------- | :-----------------: | :---------------------------------------- |
+| Elementwise Add | s8, s16, s32 | Rescaling with offset and shift, clamping |
+| Leaky ReLU | s8, s16 | |
+| Max Pooling | s8 | |
+
+## Convolutional Ops
+
+| Op | Weights | Activation | Bias | Comments |
+| :--------------- | :-----: | :--------: | :--: | :-------------------------------------- |
+| Depthwise Conv2d | s8 | s16 | s64 | filter size 3x1 |
+| Depthwise Conv2d | s8 | s8 | s64 | output depth % 32 == 0 |
+| Conv2d | s8 | s16 | s32 | |
+| Conv2d | s8 | s16 | s64 | filter size 1x1, filter depth % 32 == 0 |
+| Conv2d | s8 | s16 | s64 | filter size 1xn, grouped or ungroups |
+| Conv2d | s8 | s8 | s32 | filter size 1x1, output depth % 8 == 0 |
+| Conv2d | s8 | s8 | s32 | filter depth % 32 == 0 |
+| Conv2d | s8 | s8 | s32 | filter shape == (48x3x1x48) |