diff --git a/py/py.mk b/py/py.mk
index 658ad10dde8b508b57598f4f4d82caf1e5ced59b..741ad52f98af72916a38f953e02ad228d4f94f23 100644
--- a/py/py.mk
+++ b/py/py.mk
@@ -24,6 +24,11 @@ CFLAGS_MOD += -DMICROPY_PY_USSL=1
 ifeq ($(MICROPY_SSL_AXTLS),1)
 CFLAGS_MOD += -DMICROPY_SSL_AXTLS=1 -I../lib/axtls/ssl -I../lib/axtls/crypto -I../lib/axtls/config
 LDFLAGS_MOD += -Lbuild -laxtls
+else ifeq ($(MICROPY_SSL_MBEDTLS),1)
+# Can be overriden by ports which have "builtin" mbedTLS
+MICROPY_SSL_MBEDTLS_INCLUDE ?= ../lib/mbedtls/include
+CFLAGS_MOD += -DMICROPY_SSL_MBEDTLS=1 -I$(MICROPY_SSL_MBEDTLS_INCLUDE)
+LDFLAGS_MOD += -L../lib/mbedtls/library -lmbedx509 -lmbedtls -lmbedcrypto
 endif
 endif
 
@@ -212,6 +217,7 @@ PY_O_BASENAME = \
 	../extmod/machine_i2c.o \
 	../extmod/machine_spi.o \
 	../extmod/modussl_axtls.o \
+	../extmod/modussl_mbedtls.o \
 	../extmod/modurandom.o \
 	../extmod/modwebsocket.o \
 	../extmod/modwebrepl.o \
diff --git a/unix/mpconfigport.mk b/unix/mpconfigport.mk
index f7912141af0fcbbb397ba488457780722c01729a..3b335ae78ee9c04a976a2e6760cba9fab3cb9ac7 100644
--- a/unix/mpconfigport.mk
+++ b/unix/mpconfigport.mk
@@ -29,6 +29,7 @@ MICROPY_PY_FFI = 1
 # ussl module requires axtls
 MICROPY_PY_USSL = 1
 MICROPY_SSL_AXTLS = 1
+MICROPY_SSL_MBEDTLS = 0
 
 # jni module requires JVM/JNI
 MICROPY_PY_JNI = 0